-
Notifications
You must be signed in to change notification settings - Fork 4
IvorySQL Operator Release 5.1 #82
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
WalkthroughContainer image references are systematically updated from UBI8-based tags to UBI9-based tags across CI/CD workflows, build configuration, manager deployment specs, example IvoryCluster manifests, kustomize overlays, test constants, and kuttl test fixtures. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes
Possibly related PRs
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (1 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
🧹 Nitpick comments (1)
internal/controller/ivorycluster/helpers_test.go (1)
46-48: Test image constants updated to UBI9 while keeping usages intact
IvoryHAImage,IvoryBackRestImage, andIvoryBouncerImagenow point to the ubi9 variants and are still wired correctly intotestCluster()for the main, backup, and proxy images. This keeps the test baseline aligned with the new image set; the existing TODO about sourcing from RELATED_IMAGE defaults remains a sensible future clean‑up.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (15)
.github/workflows/test.yaml(4 hunks)Makefile(1 hunks)config/manager/manager.yaml(1 hunks)examples/ivorycluster/ivorycluster.yaml(2 hunks)examples/kustomize/azure/ivory.yaml(2 hunks)examples/kustomize/gcs/ivory.yaml(2 hunks)examples/kustomize/high-availability/ha-ivory.yaml(2 hunks)examples/kustomize/install/manager/manager.yaml(1 hunks)examples/kustomize/ivory/ivory.yaml(2 hunks)examples/kustomize/keycloak/ivory.yaml(2 hunks)examples/kustomize/multi-backup-repo/ivory.yaml(2 hunks)examples/kustomize/s3/ivory.yaml(2 hunks)internal/controller/ivorycluster/helpers_test.go(1 hunks)testing/kuttl/e2e-other/exporter-upgrade/00--cluster.yaml(1 hunks)testing/kuttl/e2e-other/exporter-upgrade/02--update-cluster.yaml(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (8)
- GitHub Check: kubernetes-k3d (v1.25)
- GitHub Check: kuttl-k3d (v1.25)
- GitHub Check: kuttl-k3d (v1.21)
- GitHub Check: kubernetes-k3d (v1.28)
- GitHub Check: kuttl-k3d (v1.23)
- GitHub Check: kuttl-k3d (v1.24)
- GitHub Check: kubernetes-api (1.23.5)
- GitHub Check: kuttl-k3d (v1.22)
🔇 Additional comments (12)
testing/kuttl/e2e-other/exporter-upgrade/02--update-cluster.yaml (1)
7-7: LGTM! Image tag update is consistent with PR objectives.Makefile (1)
209-209: LGTM! TheKUTTL_IVORY_IMAGEupdate is consistent with the PR's image tag migration.Note: This updates the default image used in KUTTL test generation from version 2.2 to 5.1. Ensure this version bump is intentional and that generated KUTTL tests have been validated.
examples/kustomize/gcs/ivory.yaml (1)
6-6: LGTM! Image tags updated to ubi9 variants across both IvorySQL and pgBackRest.Also applies to: 17-17
testing/kuttl/e2e-other/exporter-upgrade/00--cluster.yaml (1)
7-7: LGTM! Image tag consistent with related test file in the exporter-upgrade scenario.examples/kustomize/azure/ivory.yaml (1)
6-6: LGTM! Image tags updated consistently with other example manifests.Also applies to: 17-17
examples/ivorycluster/ivorycluster.yaml (1)
6-6: LGTM! Image tags updated consistently with the majority of example manifests.Also applies to: 18-18
examples/kustomize/high-availability/ha-ivory.yaml (1)
6-6: LGTM! Image tags updated consistently across the high-availability example.Also applies to: 29-29
.github/workflows/test.yaml (1)
67-69: k3d prefetch images updated consistently to ubi9/5.1The pgBackRest, pgbouncer, and ivorysql prefetch tags are aligned with the new ubi9‑5.1 image set and consistent with RELATED_IMAGE_* values in the deployment spec. No functional changes here.
examples/kustomize/multi-backup-repo/ivory.yaml (1)
6-6: Example multi‑repo cluster images updated to ubi9/5.1The IvorySQL and pgBackRest images in this example are updated to the new ubi9‑5.1 tags and are consistent with the rest of the example manifests in the PR. No issues seen.
Also applies to: 17-17
examples/kustomize/ivory/ivory.yaml (1)
6-6: Base Ivory example updated to ubi9/5.1 imagesThe main IvorySQL and pgBackRest image tags are cleanly updated to the new ubi9‑5.1 variants and are consistent with other example manifests in this PR. Looks good.
Also applies to: 18-18
examples/kustomize/s3/ivory.yaml (1)
6-6: S3 example IvoryCluster images aligned with ubi9/5.1The IvorySQL and pgBackRest images now match the new ubi9‑5.1 set used elsewhere in the repo. No issues from a config perspective.
Also applies to: 17-17
examples/kustomize/keycloak/ivory.yaml (1)
6-6: Keycloak example updated to ubi9/5.1 imagesThe IvorySQL and pgBackRest image tags for the keycloak example are in line with the new ubi9‑5.1 baseline and consistent with other sample clusters. Looks fine.
Also applies to: 28-28
| docker.io/ivorysql/pgadmin:ubi9-9.9-5.1-1 | ||
| docker.io/ivorysql/pgbackrest:ubi9-2.56.0-5.1-1 | ||
| docker.io/ivorysql/pgbouncer:ubi9-1.24.0-5.1-1 | ||
| docker.io/ivorysql/postgres-exporter:ubi9-0.17.0-5.1-1 | ||
| docker.io/ivorysql/ivorysql:ubi9-5.1-5.1-1 | ||
| docker.io/ivorysql/postgis:ubi9-3.5-5.1-1 | ||
| registry.developers.crunchydata.com/crunchydata/crunchy-upgrade:ubi9-5.3.1-0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion | 🟠 Major
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Check for RELATED_IMAGE_* GIS variables
echo "=== Searching for RELATED_IMAGE_(IVORY|POSTGRES)_18_GIS_3.5 ==="
rg -n 'RELATED_IMAGE_(IVORY|POSTGRES)_18_GIS_3\.5' .
echo ""
echo "=== Checking .github/workflows/test.yaml lines 101-107 ==="
sed -n '101,107p' .github/workflows/test.yaml
echo ""
echo "=== Checking lines 121-127 ==="
sed -n '121,127p' .github/workflows/test.yaml
echo ""
echo "=== Checking line 142 ==="
sed -n '142p' .github/workflows/test.yaml
echo ""
echo "=== Searching for postgis/ivorysql-postgis image references ==="
rg -n 'ivorysql-postgis|/postgis:' --type yaml .Repository: IvorySQL/ivory-operator
Length of output: 1694
🏁 Script executed:
#!/bin/bash
# Verify where both env vars are actually used
echo "=== All references to RELATED_IMAGE_IVORY_18_GIS_3.5 ==="
rg -n 'RELATED_IMAGE_IVORY_18_GIS_3\.5' .
echo ""
echo "=== All references to RELATED_IMAGE_POSTGRES_18_GIS_3.5 ==="
rg -n 'RELATED_IMAGE_POSTGRES_18_GIS_3\.5' .
echo ""
echo "=== Check manager.yaml context around line 33 ==="
sed -n '30,40p' ./config/manager/manager.yaml
echo ""
echo "=== Search for references to both postgis and ivorysql-postgis in code ==="
rg -n 'postgis|ivorysql-postgis' --type go --type yaml . | grep -v test | head -20Repository: IvorySQL/ivory-operator
Length of output: 2145
🏁 Script executed:
#!/bin/bash
# Double-check the workflow file context to see full picture
echo "=== Full context around line 121-127 in test.yaml ==="
sed -n '116,128p' .github/workflows/test.yaml
echo ""
echo "=== Search for where these env vars might be consumed ==="
rg -n 'RELATED_IMAGE_IVORY_18_GIS|RELATED_IMAGE_POSTGRES_18_GIS' . --type yaml
echo ""
echo "=== Check if there are any references in examples or helm charts ==="
find . -type f \( -name "*.yaml" -o -name "*.yml" \) -exec grep -l "RELATED_IMAGE.*GIS" {} \;Repository: IvorySQL/ivory-operator
Length of output: 1599
Mismatched GIS env var names and image repositories between CI and manager configuration
The workflow uses RELATED_IMAGE_IVORY_18_GIS_3.5 pointing to docker.io/ivorysql/postgis:ubi9-3.5-5.1-1 (line 127), while config/manager/manager.yaml defines RELATED_IMAGE_POSTGRES_18_GIS_3.5 pointing to docker.io/ivorysql/ivorysql-postgis:ubi9-3.5-5.1-1. This creates divergence in both the env var names (IVORY vs POSTGRES prefix) and the image repositories (postgis vs ivorysql-postgis).
Align the env var names and image repository references across files to ensure CI and deployed behavior remain consistent.
| value: "docker.io/ivorysql/ivorysql:ubi9-5.1-5.1-1" | ||
| - name: RELATED_IMAGE_PGADMIN | ||
| value: "docker.io/ivorysql/pgadmin:ubi8-9.9-5.0-1" | ||
| value: "docker.io/ivorysql/pgadmin:ubi9-9.9-5.1-1" | ||
| - name: RELATED_IMAGE_PGBACKREST | ||
| value: "docker.io/ivorysql/pgbackrest:ubi8-2.56.0-5.0-1" | ||
| value: "docker.io/ivorysql/pgbackrest:ubi9-2.56.0-5.1-1" | ||
| - name: RELATED_IMAGE_PGBOUNCER | ||
| value: "docker.io/ivorysql/pgbouncer:ubi8-1.23.0-5.0-1" | ||
| value: "docker.io/ivorysql/pgbouncer:ubi9-1.24.0-5.1-1" | ||
| - name: RELATED_IMAGE_PGEXPORTER | ||
| value: "docker.io/ivorysql/postgres-exporter:ubi8-0.17.0-5.0-1" | ||
| value: "docker.io/ivorysql/postgres-exporter:ubi9-0.17.0-5.1-1" | ||
| - name: RELATED_IMAGE_PGUPGRADE | ||
| value: "registry.developers.crunchydata.com/crunchydata/crunchy-upgrade:ubi8-5.3.1-0" | ||
| value: "registry.developers.crunchydata.com/crunchydata/crunchy-upgrade:ubi9-5.3.1-0" | ||
| - name: RELATED_IMAGE_POSTGRES_18_GIS_3.5 | ||
| value: "docker.io/ivorysql/ivorysql-postgis:ubi8-3.5-5.0-1" | ||
| value: "docker.io/ivorysql/ivorysql-postgis:ubi9-3.5-5.1-1" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
# Search for all pgBackRest image references with different tag variants
echo "=== pgBackRest image references ==="
rg -n 'pgbackrest:ubi9-2\.56' . --type yaml
echo ""
echo "=== PostGIS image references ==="
rg -n '(ivorysql-postgis|postgis):ubi9-3\.5' . --type yaml
echo ""
echo "=== All RELATED_IMAGE_PGBACKREST references ==="
rg -n 'RELATED_IMAGE_PGBACKREST' . --type yaml -A 1Repository: IvorySQL/ivory-operator
Length of output: 2302
🏁 Script executed:
# Search for PostGIS references in workflow files
echo "=== PostGIS references in workflows ==="
rg -n 'postgis' .github/workflows --type yaml -i
echo ""
echo "=== Complete pgBackRest variant count ==="
rg 'pgbackrest:ubi9-2\.56' . --type yaml | wc -l
echo "With .0 (manager configs):"
rg 'pgbackrest:ubi9-2\.56\.0' . --type yaml | wc -l
echo "Without .0 (example clusters):"
rg 'pgbackrest:ubi9-2\.56-' . --type yaml | rg -v '2\.56\.0' | wc -lRepository: IvorySQL/ivory-operator
Length of output: 498
Manager RELATED_IMAGE_ values match the new ubi9/5.1 image set; resolve PostGIS and pgBackRest image tag inconsistencies*
The RELATED_IMAGE_* env vars are consistently bumped to the ubi9‑5.1 images, but two inconsistencies exist across the codebase:
- Manager config uses
docker.io/ivorysql/ivorysql-postgis:ubi9-3.5-5.1-1, while the CI workflow (.github/workflows/test.yaml) usesdocker.io/ivorysql/postgis:ubi9-3.5-5.1-1(different repo name). - Manager config uses
pgbackrest:ubi9-2.56.0-5.1-1, while all example cluster files usepgbackrest:ubi9-2.56-5.1-1(different patch version).
Standardize these to a single canonical image/tag across manager, examples, and workflows to ensure consistency between operator deployments, tests, and documentation.
🤖 Prompt for AI Agents
In config/manager/manager.yaml around lines 22 to 34, the
RELATED_IMAGE_POSTGRES_18_GIS and RELATED_IMAGE_PGBACKREST values are
inconsistent with the rest of the repo; update RELATED_IMAGE_POSTGRES_18_GIS to
use the canonical repo name docker.io/ivorysql/postgis:ubi9-3.5-5.1-1 (matching
CI) and change RELATED_IMAGE_PGBACKREST to the canonical tag
docker.io/ivorysql/pgbackrest:ubi9-2.56-5.1-1 (remove the extra .0), and then
propagate those exact values to the examples and .github/workflows/test.yaml so
manager, examples, and CI all use the same image names/tags.
| value: "true" | ||
| - name: RELATED_IMAGE_IVORY_5 | ||
| value: "docker.io/ivorysql/ivorysql:ubi8-5.0-5.0-1" | ||
| value: "docker.io/ivorysql/ivorysql:ubi9-5.1-5.1-1" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
# First, let's check the target file around line 30-32
echo "=== Checking examples/kustomize/install/manager/manager.yaml ==="
sed -n '28,35p' examples/kustomize/install/manager/manager.yamlRepository: IvorySQL/ivory-operator
Length of output: 431
🏁 Script executed:
# Search for all pgbackrest image references in the codebase
echo "=== Finding all pgbackrest image references ==="
rg "pgbackrest:" --type yaml -A 1 -B 1Repository: IvorySQL/ivory-operator
Length of output: 14395
🏁 Script executed:
# Also check the other files mentioned in the review comment
echo "=== Checking examples/kustomize/gcs/ivory.yaml ==="
grep -n "pgbackrest:" examples/kustomize/gcs/ivory.yaml
echo "=== Checking examples/kustomize/azure/ivory.yaml ==="
grep -n "pgbackrest:" examples/kustomize/azure/ivory.yaml
echo "=== Checking examples/ivorycluster/ivorycluster.yaml ==="
grep -n "pgbackrest:" examples/ivorycluster/ivorycluster.yaml
echo "=== Checking examples/kustomize/high-availability/ha-ivory.yaml ==="
grep -n "pgbackrest:" examples/kustomize/high-availability/ha-ivory.yamlRepository: IvorySQL/ivory-operator
Length of output: 619
🌐 Web query:
pgBackRest version 2.56 Docker image UBI9 tag format
💡 Result:
Short answer: pgBackRest images use plain version tags (e.g., 2.56.0). There is no separate ":2.56.0-ubi9" tag — some vendor images (e.g., Percona's percona-pgbackrest:2.56.0) are built FROM a UBI9/ubi9-minimal base (UBI9 appears in the image metadata), but the registry tag itself is just the pgBackRest version. [1][2][3]
Sources:
- woblerr/docker-pgbackrest supported tags (shows version-tag format like 2.56.0). [1]
- Percona percona-pgbackrest:2.56.0 image metadata (shows ubi9-minimal as the base inside the image). [2]
- Red Hat docs on UBI9 image naming/registry usage. [3]
Standardize pgBackRest image tag format across manager.yaml files.
examples/kustomize/install/manager/manager.yaml (line 32) and config/manager/manager.yaml use docker.io/ivorysql/pgbackrest:ubi9-2.56.0-5.1-1 (with .0), while all other example manifests consistently use docker.io/ivorysql/pgbackrest:ubi9-2.56-5.1-1 (without .0). Update both manager.yaml files to match the standard format used throughout the codebase.
🤖 Prompt for AI Agents
In examples/kustomize/install/manager/manager.yaml around line 30, the
pgBackRest image tag uses docker.io/ivorysql/ivorysql:ubi9-5.1-5.1-1 but the
pgBackRest tag in this file and config/manager/manager.yaml should follow the
standardized format used across examples; update the pgbackrest image tag in
both files to docker.io/ivorysql/pgbackrest:ubi9-2.56-5.1-1 (remove the
extraneous “.0”) so both manager.yaml files match the project-wide convention.
Checklist:
Type of Changes:
What is the current behavior (link to any open issues here)?
What is the new behavior (if this is a feature change)?
Other Information:
Summary by CodeRabbit
Release Notes
✏️ Tip: You can customize this high-level summary in your review settings.