Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 18 additions & 18 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,9 @@ jobs:
with:
k3s-channel: "${{ matrix.kubernetes }}"
prefetch-images: |
docker.io/ivorysql/pgbackrest:ubi9-2.56.0-5.3-1
docker.io/ivorysql/pgbouncer:ubi9-1.24.0-5.3-1
docker.io/ivorysql/ivorysql:ubi9-5.3-5.3-1
docker.io/ivorysql/pgbackrest:ubi9-2.58.0-5.4-1
docker.io/ivorysql/pgbouncer:ubi9-1.25.2-5.4-1
docker.io/ivorysql/ivorysql:ubi9-5.4-5.4-1

- run: make createnamespaces check-envtest-existing
env:
Expand Down Expand Up @@ -98,13 +98,13 @@ jobs:
with:
k3s-channel: "${{ matrix.kubernetes }}"
prefetch-images: |
docker.io/ivorysql/pgadmin:ubi9-9.9-5.3-1
docker.io/ivorysql/pgbackrest:ubi9-2.56.0-5.3-1
docker.io/ivorysql/pgbouncer:ubi9-1.24.0-5.3-1
docker.io/ivorysql/postgres-exporter:ubi9-0.17.0-5.3-1
docker.io/ivorysql/ivorysql:ubi9-5.3-5.3-1
docker.io/ivorysql/postgis:ubi9-3.5-5.3-1
registry.developers.crunchydata.com/crunchydata/crunchy-upgrade:ubi9-5.3.1-0
docker.io/ivorysql/pgadmin:ubi9-9.11-5.4-1
docker.io/ivorysql/pgbackrest:ubi9-2.58.0-5.4-1
docker.io/ivorysql/pgbouncer:ubi9-1.25.2-5.4-1
docker.io/ivorysql/postgres-exporter:ubi9-0.17.0-5.4-1
docker.io/ivorysql/ivorysql:ubi9-5.4-5.4-1
docker.io/ivorysql/postgis:ubi9-3.5-5.4-1
registry.developers.crunchydata.com/crunchydata/crunchy-upgrade:ubi9-5.4.1-0
- run: go mod download
- name: Build executable
run: IVYO_VERSION='${{ github.sha }}' make build-ivory-operator
Expand All @@ -118,13 +118,13 @@ jobs:
docker run --detach --network host --read-only \
--volume "$(pwd):/mnt" --workdir '/mnt' --env 'PATH=/mnt/bin' \
--env 'KUBECONFIG=hack/.kube/ivory-operator/ivyo' \
--env 'RELATED_IMAGE_PGADMIN=docker.io/ivorysql/pgadmin:ubi9-9.9-5.3-1' \
--env 'RELATED_IMAGE_PGBACKREST=docker.io/ivorysql/pgbackrest:ubi9-2.56.0-5.3-1' \
--env 'RELATED_IMAGE_PGBOUNCER=docker.io/ivorysql/pgbouncer:ubi9-1.24.0-5.3-1' \
--env 'RELATED_IMAGE_PGEXPORTER=docker.io/ivorysql/postgres-exporter:ubi9-0.17.0-5.3-1' \
--env 'RELATED_IMAGE_PGUPGRADE=registry.developers.crunchydata.com/crunchydata/crunchy-upgrade:ubi9-5.3.1-0' \
--env 'RELATED_IMAGE_IVORY_18=docker.io/ivorysql/ivorysql:ubi9-5.3-5.3-1' \
--env 'RELATED_IMAGE_IVORY_18_GIS_3.5=docker.io/ivorysql/postgis:ubi9-3.5-5.3-1' \
--env 'RELATED_IMAGE_PGADMIN=docker.io/ivorysql/pgadmin:ubi9-9.11-5.4-1' \
--env 'RELATED_IMAGE_PGBACKREST=docker.io/ivorysql/pgbackrest:ubi9-2.58.0-5.4-1' \
--env 'RELATED_IMAGE_PGBOUNCER=docker.io/ivorysql/pgbouncer:ubi9-1.25.2-5.4-1' \
--env 'RELATED_IMAGE_PGEXPORTER=docker.io/ivorysql/postgres-exporter:ubi9-0.17.0-5.4-1' \
--env 'RELATED_IMAGE_PGUPGRADE=registry.developers.crunchydata.com/crunchydata/crunchy-upgrade:ubi9-5.4.1-0' \
--env 'RELATED_IMAGE_IVORY_18=docker.io/ivorysql/ivorysql:ubi9-5.4-5.4-1' \
--env 'RELATED_IMAGE_IVORY_18_GIS_3.5=docker.io/ivorysql/postgis:ubi9-3.5-5.4-1' \
--env 'IVYO_FEATURE_GATES=TablespaceVolumes=true' \
--name 'ivory-operator' ubuntu \
ivory-operator
Expand All @@ -139,7 +139,7 @@ jobs:
KUTTL_PG_UPGRADE_TO_VERSION: '18'
KUTTL_PG_VERSION: '18'
KUTTL_POSTGIS_VERSION: '3.5'
KUTTL_IVORY_IMAGE: 'docker.io/ivorysql/ivorysql:ubi9-5.3-5.3-1'
KUTTL_IVORY_IMAGE: 'docker.io/ivorysql/ivorysql:ubi9-5.4-5.4-1'
- run: |
make check-kuttl && exit
failed=$?
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ generate-kuttl: export KUTTL_PG_UPGRADE_FROM_VERSION ?= 14
generate-kuttl: export KUTTL_PG_UPGRADE_TO_VERSION ?= 15
generate-kuttl: export KUTTL_PG_VERSION ?= 15
generate-kuttl: export KUTTL_POSTGIS_VERSION ?= 3.5
generate-kuttl: export KUTTL_IVORY_IMAGE ?= docker.io/ivorysql/ivorysql:ubi9-5.3-5.3-1
generate-kuttl: export KUTTL_IVORY_IMAGE ?= docker.io/ivorysql/ivorysql:ubi9-5.4-5.4-1
generate-kuttl: ## Generate kuttl tests
[ ! -d testing/kuttl/e2e-generated ] || rm -r testing/kuttl/e2e-generated
[ ! -d testing/kuttl/e2e-generated-other ] || rm -r testing/kuttl/e2e-generated-other
Expand Down
14 changes: 7 additions & 7 deletions config/manager/manager.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,19 +19,19 @@ spec:
- name: IVORY_DEBUG
value: "true"
- name: RELATED_IMAGE_IVORY_18
value: "docker.io/ivorysql/ivorysql:ubi9-5.3-5.3-1"
value: "docker.io/ivorysql/ivorysql:ubi9-5.4-5.4-1"
- name: RELATED_IMAGE_PGADMIN
value: "docker.io/ivorysql/pgadmin:ubi9-9.9-5.3-1"
value: "docker.io/ivorysql/pgadmin:ubi9-9.11-5.4-1"
- name: RELATED_IMAGE_PGBACKREST
value: "docker.io/ivorysql/pgbackrest:ubi9-2.56.0-5.3-1"
value: "docker.io/ivorysql/pgbackrest:ubi9-2.58.0-5.4-1"
- name: RELATED_IMAGE_PGBOUNCER
value: "docker.io/ivorysql/pgbouncer:ubi9-1.24.0-5.3-1"
value: "docker.io/ivorysql/pgbouncer:ubi9-1.25.2-5.4-1"
- name: RELATED_IMAGE_PGEXPORTER
value: "docker.io/ivorysql/postgres-exporter:ubi9-0.17.0-5.3-1"
value: "docker.io/ivorysql/postgres-exporter:ubi9-0.17.0-5.4-1"
- name: RELATED_IMAGE_PGUPGRADE
value: "registry.developers.crunchydata.com/crunchydata/crunchy-upgrade:ubi9-5.3.1-0"
value: "registry.developers.crunchydata.com/crunchydata/crunchy-upgrade:ubi9-5.4.1-0"
- name: RELATED_IMAGE_POSTGRES_18_GIS_3.5
value: "docker.io/ivorysql/ivorysql-postgis:ubi9-3.5-5.3-1"
value: "docker.io/ivorysql/ivorysql-postgis:ubi9-3.5-5.4-1"
Comment on lines +22 to +34

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Image name and environment variable naming inconsistency detected.

There's a critical discrepancy between this file and .github/workflows/test.yaml:

  1. Image name mismatch (Line 34):

    • This file uses: docker.io/ivorysql/ivorysql-postgis:ubi9-3.5-5.4-1
    • Workflow uses: docker.io/ivorysql/postgis:ubi9-3.5-5.4-1
  2. Environment variable name mismatch (Line 33-34):

    • This file uses: RELATED_IMAGE_POSTGRES_18_GIS_3.5
    • Workflow uses: RELATED_IMAGE_IVORY_18_GIS_3.5

If the operator code expects RELATED_IMAGE_IVORY_18_GIS_3.5 but this deployment sets RELATED_IMAGE_POSTGRES_18_GIS_3.5, the PostGIS image reference may fail at runtime.

Run the following script to verify which environment variable name and image the operator actually expects:

#!/bin/bash
# Check which PostGIS-related env var name is referenced in operator code
rg -n -C3 'RELATED_IMAGE.*GIS' --type=go

# Check which postgis image name is used
rg -n -C3 'ivorysql-postgis|/postgis:' --type=go
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@config/manager/manager.yaml` around lines 22 - 34, The manager.yaml currently
defines RELATED_IMAGE_POSTGRES_18_GIS_3.5 with image
docker.io/ivorysql/ivorysql-postgis:ubi9-3.5-5.4-1 which mismatches the workflow
and likely the operator; run the suggested grep checks to confirm whether the
operator expects RELATED_IMAGE_IVORY_18_GIS_3.5 and/or
docker.io/ivorysql/postgis:ubi9-3.5-5.4-1, then update manager.yaml to use the
exact environment variable name the operator references (e.g.,
RELATED_IMAGE_IVORY_18_GIS_3.5 if found) and set the image value to the exact
image string used by the operator/workflow (e.g.,
docker.io/ivorysql/postgis:ubi9-3.5-5.4-1) so names and image references are
consistent.

securityContext:
allowPrivilegeEscalation: false
capabilities: { drop: [ALL] }
Expand Down
4 changes: 2 additions & 2 deletions examples/ivorycluster/ivorycluster.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ kind: IvoryCluster
metadata:
name: hippo
spec:
image: docker.io/ivorysql/ivorysql:ubi9-5.3-5.3-1
image: docker.io/ivorysql/ivorysql:ubi9-5.4-5.4-1
postgresVersion: 15
instances:
- name: instance1
Expand All @@ -15,7 +15,7 @@ spec:
storage: 1Gi
backups:
pgbackrest:
image: docker.io/ivorysql/pgbackrest:ubi9-2.56.0-5.3-1
image: docker.io/ivorysql/pgbackrest:ubi9-2.58.0-5.4-1
repos:
- name: repo1
volume:
Expand Down
4 changes: 2 additions & 2 deletions examples/kustomize/azure/ivory.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ kind: IvoryCluster
metadata:
name: hippo-azure
spec:
image: docker.io/ivorysql/ivorysql:ubi9-5.3-5.3-1
image: docker.io/ivorysql/ivorysql:ubi9-5.4-5.4-1
postgresVersion: 15
instances:
- dataVolumeClaimSpec:
Expand All @@ -14,7 +14,7 @@ spec:
storage: 1Gi
backups:
pgbackrest:
image: docker.io/ivorysql/pgbackrest:ubi9-2.56.0-5.3-1
image: docker.io/ivorysql/pgbackrest:ubi9-2.58.0-5.4-1
configuration:
- secret:
name: ivyo-azure-creds
Expand Down
4 changes: 2 additions & 2 deletions examples/kustomize/gcs/ivory.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ kind: IvoryCluster
metadata:
name: hippo-gcs
spec:
image: docker.io/ivorysql/ivorysql:ubi9-5.3-5.3-1
image: docker.io/ivorysql/ivorysql:ubi9-5.4-5.4-1
postgresVersion: 15
instances:
- dataVolumeClaimSpec:
Expand All @@ -14,7 +14,7 @@ spec:
storage: 1Gi
backups:
pgbackrest:
image: docker.io/ivorysql/pgbackrest:ubi9-2.56.0-5.3-1
image: docker.io/ivorysql/pgbackrest:ubi9-2.58.0-5.4-1
configuration:
- secret:
name: ivyo-gcs-creds
Expand Down
4 changes: 2 additions & 2 deletions examples/kustomize/high-availability/ha-ivory.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ kind: IvoryCluster
metadata:
name: hippo-ha
spec:
image: docker.io/ivorysql/ivorysql:ubi9-5.3-5.3-1
image: docker.io/ivorysql/ivorysql:ubi9-5.4-5.4-1
postgresVersion: 15
instances:
- name: pgha1
Expand All @@ -26,7 +26,7 @@ spec:
ivory-operator.ivorysql.org/instance-set: pgha1
backups:
pgbackrest:
image: docker.io/ivorysql/pgbackrest:ubi9-2.56.0-5.3-1
image: docker.io/ivorysql/pgbackrest:ubi9-2.58.0-5.4-1
repos:
- name: repo1
volume:
Expand Down
4 changes: 2 additions & 2 deletions examples/kustomize/install/manager/manager.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@ spec:
- name: IVORY_DEBUG
value: "true"
- name: RELATED_IMAGE_IVORY_5
value: "docker.io/ivorysql/ivorysql:ubi9-5.3-5.3-1"
value: "docker.io/ivorysql/ivorysql:ubi9-5.4-5.4-1"
- name: RELATED_IMAGE_PGBACKREST
value: "docker.io/ivorysql/pgbackrest:ubi9-2.56.0-5.3-1"
value: "docker.io/ivorysql/pgbackrest:ubi9-2.58.0-5.4-1"

securityContext:
allowPrivilegeEscalation: false
Expand Down
4 changes: 2 additions & 2 deletions examples/kustomize/ivory/ivory.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ kind: IvoryCluster
metadata:
name: hippo
spec:
image: docker.io/ivorysql/ivorysql:ubi9-5.3-5.3-1
image: docker.io/ivorysql/ivorysql:ubi9-5.4-5.4-1

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Verify the availability of the new container images in Docker Hub

# Check IvorySQL 5.4 image
echo "Checking IvorySQL 5.4 image..."
curl -s "https://hub.docker.com/v2/repositories/ivorysql/ivorysql/tags/ubi9-5.4-5.4-1" | jq -r '.name // "Image not found"'

# Check pgBackrest 2.58.0 image
echo "Checking pgBackrest 2.58.0 image..."
curl -s "https://hub.docker.com/v2/repositories/ivorysql/pgbackrest/tags/ubi9-2.58.0-5.4-1" | jq -r '.name // "Image not found"'

Repository: IvorySQL/ivory-operator

Length of output: 1998


🏁 Script executed:

#!/bin/bash
set -euo pipefail

check_tag() {
  local namespace="$1" repo="$2" tag="$3"
  local url="https://hub.docker.com/v2/repositories/${namespace}/${repo}/tags/${tag}"
  echo "Checking ${namespace}/${repo}:${tag}..."
  if json="$(curl -fsSL "$url")"; then
    echo "$json" | python3 -c 'import sys, json; d=json.load(sys.stdin); print(d.get("name","Image found"))'
  else
    echo "Image not found"
  fi
}

check_tag "ivorysql" "ivorysql" "ubi9-5.4-5.4-1"
check_tag "ivorysql" "pgbackrest" "ubi9-2.58.0-5.4-1"

Repository: IvorySQL/ivory-operator

Length of output: 1968


🏁 Script executed:

#!/bin/bash
set -euo pipefail

check_tag() {
  local repo="$1" tag="$2"
  local url="https://hub.docker.com/v2/repositories/${repo}/tags/${tag}"
  code="$(curl -s -o /dev/null -w "%{http_code}" "$url")"
  echo "${repo}:${tag} -> HTTP ${code}"
}

check_tag "ivorysql/ivorysql" "ubi9-5.4-5.4-1"
check_tag "ivorysql/pgbackrest" "ubi9-2.58.0-5.4-1"

Repository: IvorySQL/ivory-operator

Length of output: 1968


🌐 Web query:

Find whether Docker Hub tag ivorysql/ivorysql:ubi9-5.4-5.4-1 exists

💡 Result:

Based on the available information as of June 11, 2026, the specific Docker Hub tag ivorysql/ivorysql:ubi9-5.4-5.4-1 does not appear to exist [1]. While other tags following similar naming patterns exist (such as ubi9-5.3-5.3-1 [2] and various ubi9 or trixie versions [1]), the requested tag is not listed in the official IvorySQL Docker Hub repository [1][3]. The naming convention for IvorySQL tags generally incorporates the version, such as ubi9-5.3-5.3-1 [2], but there is no public record of a 5.4-5.4-1 release for the UBI9 platform at this time [1].

Citations:


🌐 Web query:

Find whether Docker Hub tag ivorysql/pgbackrest:ubi9-2.58.0-5.4-1 exists

💡 Result:

The Docker Hub tag ivorysql/pgbackrest:ubi9-2.58.0-5.4-1 does not appear to exist [1][2]. While IvorySQL does maintain a ivorysql/pgbackrest repository on Docker Hub, publicly accessible tag lists and related project documentation (such as the ivory-operator repository) show that IvorySQL tags typically follow a versioning scheme corresponding to their release cycles (e.g., ubi9-2.56.0-5.3-1) [1][3][4]. The most recent IvorySQL release updates in the ivory-operator project—which maintains these container image references—have been associated with 5.3-based tags [3][4]. Additionally, official pgBackRest software releases reached version 2.58.0 in January 2026 [5]. While other projects, such as woblerr/pgbackrest, have published Docker images for 2.58.0 [2][6], IvorySQL has not been documented as publishing a corresponding ubi9-2.58.0-5.4-1 tag in its official Docker Hub repository [1]. Users seeking specific pgBackRest 2.58.0 functionality may find it in other independent Docker repositories [2].

Citations:


Fix: example references Docker Hub image tags that don’t appear to be published

  • docker.io/ivorysql/ivorysql:ubi9-5.4-5.4-1 (examples/kustomize/ivory/ivory.yaml line 6) is not listed in the official ivorysql/ivorysql Docker Hub tags.
  • docker.io/ivorysql/pgbackrest:ubi9-2.58.0-5.4-1 (also line 18) is not listed in the official ivorysql/pgbackrest Docker Hub tags.

Update the image tags to existing published tags or publish the missing images before merging.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@examples/kustomize/ivory/ivory.yaml` at line 6, The example references two
non-existent Docker Hub tags—docker.io/ivorysql/ivorysql:ubi9-5.4-5.4-1 and
docker.io/ivorysql/pgbackrest:ubi9-2.58.0-5.4-1—so update those image fields to
valid published tags (or change them to a supported tag like a documented
release or :latest) or ensure the missing images are published before merging;
specifically locate the image entries that match those exact strings in
ivory.yaml and replace them with confirmed tags from the ivorysql Docker Hub
repositories.

postgresVersion: 15
instances:
- name: instance1
Expand All @@ -15,7 +15,7 @@ spec:
storage: 1Gi
backups:
pgbackrest:
image: docker.io/ivorysql/pgbackrest:ubi9-2.56.0-5.3-1
image: docker.io/ivorysql/pgbackrest:ubi9-2.58.0-5.4-1
repos:
- name: repo1
volume:
Expand Down
4 changes: 2 additions & 2 deletions examples/kustomize/keycloak/ivory.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ kind: IvoryCluster
metadata:
name: keycloakdb
spec:
image: docker.io/ivorysql/ivorysql:ubi9-5.3-5.3-1
image: docker.io/ivorysql/ivorysql:ubi9-5.4-5.4-1
postgresVersion: 15
instances:
- replicas: 2
Expand All @@ -25,7 +25,7 @@ spec:
ivory-operator.ivorysql.org/instance-set: "00"
backups:
pgbackrest:
image: docker.io/ivorysql/pgbackrest:ubi9-2.56.0-5.3-1
image: docker.io/ivorysql/pgbackrest:ubi9-2.58.0-5.4-1
repos:
- name: repo1
volume:
Expand Down
4 changes: 2 additions & 2 deletions examples/kustomize/multi-backup-repo/ivory.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ kind: IvoryCluster
metadata:
name: hippo-multi-repo
spec:
image: docker.io/ivorysql/ivorysql:ubi9-5.3-5.3-1
image: docker.io/ivorysql/ivorysql:ubi9-5.4-5.4-1
postgresVersion: 15
instances:
- dataVolumeClaimSpec:
Expand All @@ -14,7 +14,7 @@ spec:
storage: 1Gi
backups:
pgbackrest:
image: docker.io/ivorysql/pgbackrest:ubi9-2.56.0-5.3-1
image: docker.io/ivorysql/pgbackrest:ubi9-2.58.0-5.4-1
configuration:
- secret:
name: ivyo-multi-repo-creds
Expand Down
4 changes: 2 additions & 2 deletions examples/kustomize/s3/ivory.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ kind: IvoryCluster
metadata:
name: hippo-s3
spec:
image: docker.io/ivorysql/ivorysql:ubi9-5.3-5.3-1
image: docker.io/ivorysql/ivorysql:ubi9-5.4-5.4-1
postgresVersion: 15
instances:
- dataVolumeClaimSpec:
Expand All @@ -14,7 +14,7 @@ spec:
storage: 1Gi
backups:
pgbackrest:
image: docker.io/ivorysql/pgbackrest:ubi9-2.56.0-5.3-1
image: docker.io/ivorysql/pgbackrest:ubi9-2.58.0-5.4-1
configuration:
- secret:
name: ivyo-s3-creds
Expand Down
2 changes: 1 addition & 1 deletion testing/kuttl/e2e-other/exporter-upgrade/00--cluster.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ metadata:
name: exporter
spec:
postgresVersion: 18
image: docker.io/ivorysql/ivorysql:ubi9-5.3-5.3-1
image: docker.io/ivorysql/ivorysql:ubi9-5.4-5.4-1
instances:
- name: instance1
dataVolumeClaimSpec:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ metadata:
name: exporter
spec:
postgresVersion: 18
image: docker.io/ivorysql/ivorysql:ubi9-5.3-5.3-1
image: docker.io/ivorysql/ivorysql:ubi9-5.4-5.4-1
Loading