=== RUN kuttl harness.go:460: starting setup harness.go:258: running tests using configured kubeconfig. harness.go:281: Successful connection to cluster at: https://34.134.119.98 harness.go:366: running tests harness.go:77: going to run test suite with timeout of 600 seconds for each step harness.go:378: testsuite: e2e-tests/tests has 55 tests === RUN kuttl/harness === RUN kuttl/harness/extra-volumes === PAUSE kuttl/harness/extra-volumes === CONT kuttl/harness/extra-volumes logger.go:42: 14:32:40 | extra-volumes | Creating namespace "kuttl-test-central-quagga" logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | starting test step 0-deploy-operator logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | running command: [sh -c set -o errexit set -o xtrace source ../../functions init_temp_dir # do this only in the first TestStep deploy_operator deploy_client] logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | + source ../../functions logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | +++ realpath ../../.. logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | ++ ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770 logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | ++ CERT_MANAGER_VER=1.20.2 logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | ++ CERT_MANAGER_TEST_LABEL=e2e.percona.com/managed-by=percona-postgresql-operator-tests logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | ++ CHAOS_MESH_VER=2.5.1 logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | ++ BUSYBOX_VER=1.36 logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | ++++ pwd logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | +++ basename /mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/tests/extra-volumes logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | ++ test_name=extra-volumes logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | ++ source /mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/vars.sh logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | +++ export ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770 logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | +++ ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770 logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | +++ export DEPLOY_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/deploy logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | +++ DEPLOY_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/deploy logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | +++ export TESTS_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | +++ TESTS_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | +++ export TESTS_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/conf logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | +++ TESTS_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/conf logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | +++ export TEST_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/tests/extra-volumes/conf logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | +++ TEST_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/tests/extra-volumes/conf logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | +++ export TEMP_DIR=/tmp/kuttl/pg/extra-volumes logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | +++ TEMP_DIR=/tmp/kuttl/pg/extra-volumes logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | ++++ git rev-parse --abbrev-ref HEAD logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | +++ export GIT_BRANCH=PR-1770 logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | +++ GIT_BRANCH=PR-1770 logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | +++ export VERSION=PR-1770-8c67b09e6 logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | +++ VERSION=PR-1770-8c67b09e6 logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | +++ export SKIP_TEST_WARNINGS=true logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | +++ SKIP_TEST_WARNINGS=true logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | +++ export K8S_UPGRADE_PLATFORM=gke logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | +++ K8S_UPGRADE_PLATFORM=gke logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | +++ export K8S_UPGRADE_REGION=us-central1-a logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | +++ K8S_UPGRADE_REGION=us-central1-a logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | +++ export K8S_UPGRADE_INITIAL_VERSION= logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | +++ K8S_UPGRADE_INITIAL_VERSION= logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | +++ export K8S_UPGRADE_FINAL_VERSION= logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | +++ K8S_UPGRADE_FINAL_VERSION= logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | +++ [[ -z '' ]] logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | ++++ detect_k8s_platform logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | ++++ local detected_platform logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | ++++ local xtrace_enabled=false logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | ++++ [[ -o xtrace ]] logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | ++++ xtrace_enabled=true logger.go:42: 14:32:40 | extra-volumes/0-deploy-operator | ++++ set +o xtrace logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ PLATFORM=gke logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ export PLATFORM logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ export IMAGE_BASE=perconalab/percona-postgresql-operator logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ IMAGE_BASE=perconalab/percona-postgresql-operator logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ export IMAGE=perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ IMAGE=perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ [[ ! -n '' ]] logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ [[ -n '' ]] logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ export PG_VER=18 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ PG_VER=18 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ export PG_DISTRIBUTION= logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ PG_DISTRIBUTION= logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ [[ '' == community ]] logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ export IMAGE_PGBOUNCER=perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ IMAGE_PGBOUNCER=perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ export IMAGE_POSTGRESQL=perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ IMAGE_POSTGRESQL=perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ export IMAGE_BACKREST=perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ IMAGE_BACKREST=perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ export IMAGE_UPGRADE=perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ IMAGE_UPGRADE=perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ export BUCKET=pg-operator-testing logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ BUCKET=pg-operator-testing logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ export PMM_SERVER_VERSION=9.9.9 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ PMM_SERVER_VERSION=9.9.9 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ export IMAGE_PMM_CLIENT=perconalab/pmm-client:3-dev-latest logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ IMAGE_PMM_CLIENT=perconalab/pmm-client:3-dev-latest logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ export IMAGE_PMM_SERVER=perconalab/pmm-server:3-dev-latest logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ IMAGE_PMM_SERVER=perconalab/pmm-server:3-dev-latest logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ export IMAGE_LOGCOLLECTOR=perconalab/fluentbit:main-logcollector logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ IMAGE_LOGCOLLECTOR=perconalab/fluentbit:main-logcollector logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ export PGOV1_TAG=1.4.0 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ PGOV1_TAG=1.4.0 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ export PGOV1_VER=14 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ PGOV1_VER=14 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ export CPGO_VERSION=5.8.7 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ CPGO_VERSION=5.8.7 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ export MINIO_VER=5.4.0 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ MINIO_VER=5.4.0 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ export VAULT_VER=0.32.0 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ VAULT_VER=0.32.0 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ export REGISTRY_NAME=docker.io logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ REGISTRY_NAME=docker.io logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ export REGISTRY_NAME_FULL=docker.io/ logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ REGISTRY_NAME_FULL=docker.io/ logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | ++++ printenv logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | ++++ grep -E '^IMAGE' logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | ++++ awk -F= '{print $1}' logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | ++++ eval 'echo $IMAGE_BACKREST' logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++++ echo perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ var_value=perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ [[ perconalab/percona-postgresql-operator:main-pgbackrest18 == docker.io/* ]] logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ [[ perconalab/percona-postgresql-operator:main-pgbackrest18 == percona/* ]] logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ [[ perconalab/percona-postgresql-operator:main-pgbackrest18 == perconalab/* ]] logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ new_value=docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ export IMAGE_BACKREST=docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ IMAGE_BACKREST=docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ echo IMAGE_BACKREST=docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | IMAGE_BACKREST=docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ echo perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | ++++ eval 'echo $IMAGE' logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++++ echo perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ var_value=perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ [[ perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 == docker.io/* ]] logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ [[ perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 == percona/* ]] logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ [[ perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 == perconalab/* ]] logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ new_value=docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ export IMAGE=docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ IMAGE=docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ echo IMAGE=docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | IMAGE=docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | ++++ eval 'echo $IMAGE_UPGRADE' logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++++ echo perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ var_value=perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ [[ perconalab/percona-postgresql-operator:main-upgrade == docker.io/* ]] logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ [[ perconalab/percona-postgresql-operator:main-upgrade == percona/* ]] logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ [[ perconalab/percona-postgresql-operator:main-upgrade == perconalab/* ]] logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ new_value=docker.io/perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ export IMAGE_UPGRADE=docker.io/perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ IMAGE_UPGRADE=docker.io/perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ echo IMAGE_UPGRADE=docker.io/perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | IMAGE_UPGRADE=docker.io/perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | ++++ eval 'echo $IMAGE_LOGCOLLECTOR' logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++++ echo perconalab/fluentbit:main-logcollector logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ var_value=perconalab/fluentbit:main-logcollector logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ [[ perconalab/fluentbit:main-logcollector == docker.io/* ]] logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ [[ perconalab/fluentbit:main-logcollector == percona/* ]] logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ [[ perconalab/fluentbit:main-logcollector == perconalab/* ]] logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ new_value=docker.io/perconalab/fluentbit:main-logcollector logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ export IMAGE_LOGCOLLECTOR=docker.io/perconalab/fluentbit:main-logcollector logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ IMAGE_LOGCOLLECTOR=docker.io/perconalab/fluentbit:main-logcollector logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ echo IMAGE_LOGCOLLECTOR=docker.io/perconalab/fluentbit:main-logcollector logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | IMAGE_LOGCOLLECTOR=docker.io/perconalab/fluentbit:main-logcollector logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | ++++ eval 'echo $IMAGE_BASE' logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++++ echo perconalab/percona-postgresql-operator logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ var_value=perconalab/percona-postgresql-operator logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ [[ perconalab/percona-postgresql-operator == docker.io/* ]] logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ [[ perconalab/percona-postgresql-operator == percona/* ]] logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ [[ perconalab/percona-postgresql-operator == perconalab/* ]] logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ new_value=docker.io/perconalab/percona-postgresql-operator logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ export IMAGE_BASE=docker.io/perconalab/percona-postgresql-operator logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ IMAGE_BASE=docker.io/perconalab/percona-postgresql-operator logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ echo IMAGE_BASE=docker.io/perconalab/percona-postgresql-operator logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | IMAGE_BASE=docker.io/perconalab/percona-postgresql-operator logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | ++++ eval 'echo $IMAGE_PGBOUNCER' logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++++ echo perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ var_value=perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ [[ perconalab/percona-postgresql-operator:main-pgbouncer18 == docker.io/* ]] logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ [[ perconalab/percona-postgresql-operator:main-pgbouncer18 == percona/* ]] logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ [[ perconalab/percona-postgresql-operator:main-pgbouncer18 == perconalab/* ]] logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ new_value=docker.io/perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ export IMAGE_PGBOUNCER=docker.io/perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ IMAGE_PGBOUNCER=docker.io/perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ echo IMAGE_PGBOUNCER=docker.io/perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | IMAGE_PGBOUNCER=docker.io/perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | ++++ eval 'echo $IMAGE_POSTGRESQL' logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++++ echo perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ var_value=perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ [[ perconalab/percona-postgresql-operator:main-ppg18-postgres == docker.io/* ]] logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ [[ perconalab/percona-postgresql-operator:main-ppg18-postgres == percona/* ]] logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ [[ perconalab/percona-postgresql-operator:main-ppg18-postgres == perconalab/* ]] logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ new_value=docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ export IMAGE_POSTGRESQL=docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ IMAGE_POSTGRESQL=docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ echo IMAGE_POSTGRESQL=docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | IMAGE_POSTGRESQL=docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | ++++ eval 'echo $IMAGE_PMM_SERVER' logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++++ echo perconalab/pmm-server:3-dev-latest logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ var_value=perconalab/pmm-server:3-dev-latest logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ [[ perconalab/pmm-server:3-dev-latest == docker.io/* ]] logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ [[ perconalab/pmm-server:3-dev-latest == percona/* ]] logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ [[ perconalab/pmm-server:3-dev-latest == perconalab/* ]] logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ new_value=docker.io/perconalab/pmm-server:3-dev-latest logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ export IMAGE_PMM_SERVER=docker.io/perconalab/pmm-server:3-dev-latest logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ IMAGE_PMM_SERVER=docker.io/perconalab/pmm-server:3-dev-latest logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ echo IMAGE_PMM_SERVER=docker.io/perconalab/pmm-server:3-dev-latest logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | IMAGE_PMM_SERVER=docker.io/perconalab/pmm-server:3-dev-latest logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | ++++ eval 'echo $IMAGE_PMM_CLIENT' logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++++ echo perconalab/pmm-client:3-dev-latest logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ var_value=perconalab/pmm-client:3-dev-latest logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ [[ perconalab/pmm-client:3-dev-latest == docker.io/* ]] logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ [[ perconalab/pmm-client:3-dev-latest == percona/* ]] logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ [[ perconalab/pmm-client:3-dev-latest == perconalab/* ]] logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ new_value=docker.io/perconalab/pmm-client:3-dev-latest logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ export IMAGE_PMM_CLIENT=docker.io/perconalab/pmm-client:3-dev-latest logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ IMAGE_PMM_CLIENT=docker.io/perconalab/pmm-client:3-dev-latest logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ echo IMAGE_PMM_CLIENT=docker.io/perconalab/pmm-client:3-dev-latest logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | IMAGE_PMM_CLIENT=docker.io/perconalab/pmm-client:3-dev-latest logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | ++++ which gdate logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | which: no gdate in (/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/bin/:/root/.krew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/lib/snapd/snap/bin) logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | ++++ which date logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ date=/usr/sbin/date logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | ++++ which gsed logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | which: no gsed in (/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/bin/:/root/.krew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/lib/snapd/snap/bin) logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | ++++ which sed logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | +++ sed=/usr/sbin/sed logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | + init_temp_dir logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | + rm -rf /tmp/kuttl/pg/extra-volumes logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | + mkdir -p /tmp/kuttl/pg/extra-volumes logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | + deploy_operator logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | + local cw_prefix= logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | + destroy_operator logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | + kubectl -n pg-operator delete deployment percona-postgresql-operator --force --grace-period=0 logger.go:42: 14:32:42 | extra-volumes/0-deploy-operator | Warning: Immediate deletion does not wait for confirmation that the running resource has been terminated. The resource may continue to run on the cluster indefinitely. logger.go:42: 14:32:43 | extra-volumes/0-deploy-operator | Error from server (NotFound): deployments.apps "percona-postgresql-operator" not found logger.go:42: 14:32:43 | extra-volumes/0-deploy-operator | + true logger.go:42: 14:32:43 | extra-volumes/0-deploy-operator | + [[ -n pg-operator ]] logger.go:42: 14:32:43 | extra-volumes/0-deploy-operator | + kubectl delete namespace pg-operator --force --grace-period=0 logger.go:42: 14:32:43 | extra-volumes/0-deploy-operator | Warning: Immediate deletion does not wait for confirmation that the running resource has been terminated. The resource may continue to run on the cluster indefinitely. logger.go:42: 14:32:43 | extra-volumes/0-deploy-operator | Error from server (NotFound): namespaces "pg-operator" not found logger.go:42: 14:32:43 | extra-volumes/0-deploy-operator | + true logger.go:42: 14:32:43 | extra-volumes/0-deploy-operator | + [[ -n pg-operator ]] logger.go:42: 14:32:43 | extra-volumes/0-deploy-operator | + create_namespace pg-operator logger.go:42: 14:32:43 | extra-volumes/0-deploy-operator | + local namespace=pg-operator logger.go:42: 14:32:43 | extra-volumes/0-deploy-operator | + [[ gke == openshift ]] logger.go:42: 14:32:43 | extra-volumes/0-deploy-operator | + kubectl delete namespace pg-operator --ignore-not-found logger.go:42: 14:32:44 | extra-volumes/0-deploy-operator | + kubectl wait --for=delete namespace pg-operator logger.go:42: 14:32:44 | extra-volumes/0-deploy-operator | + kubectl create namespace pg-operator logger.go:42: 14:32:45 | extra-volumes/0-deploy-operator | namespace/pg-operator created logger.go:42: 14:32:45 | extra-volumes/0-deploy-operator | + cw_prefix=cw- logger.go:42: 14:32:45 | extra-volumes/0-deploy-operator | + kubectl -n pg-operator apply --server-side --force-conflicts -f /mnt/jenkins/workspace/cloud-pg-operator_PR-1770/deploy/crd.yaml logger.go:42: 14:32:46 | extra-volumes/0-deploy-operator | customresourcedefinition.apiextensions.k8s.io/crunchybridgeclusters.upstream.pgv2.percona.com serverside-applied logger.go:42: 14:32:46 | extra-volumes/0-deploy-operator | customresourcedefinition.apiextensions.k8s.io/perconapgbackups.pgv2.percona.com serverside-applied logger.go:42: 14:32:48 | extra-volumes/0-deploy-operator | customresourcedefinition.apiextensions.k8s.io/perconapgclusters.pgv2.percona.com serverside-applied logger.go:42: 14:32:48 | extra-volumes/0-deploy-operator | customresourcedefinition.apiextensions.k8s.io/perconapgrestores.pgv2.percona.com serverside-applied logger.go:42: 14:32:49 | extra-volumes/0-deploy-operator | customresourcedefinition.apiextensions.k8s.io/perconapgupgrades.pgv2.percona.com serverside-applied logger.go:42: 14:32:49 | extra-volumes/0-deploy-operator | customresourcedefinition.apiextensions.k8s.io/pgadmins.upstream.pgv2.percona.com serverside-applied logger.go:42: 14:32:49 | extra-volumes/0-deploy-operator | customresourcedefinition.apiextensions.k8s.io/pgupgrades.upstream.pgv2.percona.com serverside-applied logger.go:42: 14:32:52 | extra-volumes/0-deploy-operator | customresourcedefinition.apiextensions.k8s.io/postgresclusters.upstream.pgv2.percona.com serverside-applied logger.go:42: 14:32:52 | extra-volumes/0-deploy-operator | + kubectl -n pg-operator apply --server-side --force-conflicts -f /mnt/jenkins/workspace/cloud-pg-operator_PR-1770/deploy/cw-rbac.yaml logger.go:42: 14:32:52 | extra-volumes/0-deploy-operator | serviceaccount/percona-postgresql-operator serverside-applied logger.go:42: 14:32:53 | extra-volumes/0-deploy-operator | clusterrole.rbac.authorization.k8s.io/percona-postgresql-operator serverside-applied logger.go:42: 14:32:53 | extra-volumes/0-deploy-operator | clusterrolebinding.rbac.authorization.k8s.io/percona-postgresql-operator serverside-applied logger.go:42: 14:32:53 | extra-volumes/0-deploy-operator | + local disable_telemetry=true logger.go:42: 14:32:53 | extra-volumes/0-deploy-operator | + '[' extra-volumes == telemetry-transfer ']' logger.go:42: 14:32:53 | extra-volumes/0-deploy-operator | + yq eval '.spec.template.spec.containers[0].image = "docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6"' /mnt/jenkins/workspace/cloud-pg-operator_PR-1770/deploy/cw-operator.yaml logger.go:42: 14:32:53 | extra-volumes/0-deploy-operator | + yq eval '(.spec.template.spec.containers[] | select(.name=="operator") | .env[] | select(.name=="DISABLE_TELEMETRY") | .value) = "true"' - logger.go:42: 14:32:53 | extra-volumes/0-deploy-operator | + yq eval '(.spec.template.spec.containers[] | select(.name=="operator") | .env[] | select(.name=="LOG_LEVEL") | .value) = "DEBUG"' - logger.go:42: 14:32:53 | extra-volumes/0-deploy-operator | + yq eval '(.spec.template.spec.containers[] | select(.name=="operator") | .env[] | select(.name=="PGO_FEATURE_GATES") | .value) = ""' - logger.go:42: 14:32:53 | extra-volumes/0-deploy-operator | + kubectl -n pg-operator apply -f - logger.go:42: 14:32:54 | extra-volumes/0-deploy-operator | deployment.apps/percona-postgresql-operator created logger.go:42: 14:32:54 | extra-volumes/0-deploy-operator | + deploy_client logger.go:42: 14:32:54 | extra-volumes/0-deploy-operator | + kubectl -n kuttl-test-central-quagga apply -f /mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/conf/client.yaml logger.go:42: 14:32:55 | extra-volumes/0-deploy-operator | deployment.apps/pg-client created logger.go:42: 14:32:56 | extra-volumes/0-deploy-operator | running command: [sh -c kubectl assert exist-enhanced deployment percona-postgresql-operator -n ${OPERATOR_NS:-$NAMESPACE} --field-selector status.readyReplicas=1] logger.go:42: 14:32:56 | extra-volumes/0-deploy-operator | ASSERT deployment percona-postgresql-operator matching field criteria 'status.readyReplicas=1' should exist. logger.go:42: 14:32:56 | extra-volumes/0-deploy-operator | INFO Found 1 resource(s). logger.go:42: 14:32:56 | extra-volumes/0-deploy-operator | NAME NAMESPACE COL0 logger.go:42: 14:32:56 | extra-volumes/0-deploy-operator | percona-postgresql-operator pg-operator 1 logger.go:42: 14:32:56 | extra-volumes/0-deploy-operator | ASSERT PASS logger.go:42: 14:32:56 | extra-volumes/0-deploy-operator | test step completed 0-deploy-operator logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | starting test step 1-create-cluster logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | running command: [sh -c set -o errexit set -o xtrace source ../../functions kubectl -n "${NAMESPACE}" create configmap extra-dicts \ --from-literal=synonyms.txt="postgres pg pgsql" get_cr \ | yq eval '.spec.instances[0].replicas = 1' - \ | yq eval '.spec.proxy.pgBouncer.replicas = 1' - \ | yq eval '.spec.instances[0].extraVolumes = [ {"name": "fts-dicts", "volumeSource": {"configMap": {"name": "extra-dicts"}}, "mounts": [{"mountPath": "/pgdata/extra/dicts", "readOnly": true}]}, {"name": "extra-data", "volumeSource": {"emptyDir": {}}, "mounts": [{"mountPath": "/pgdata/extra/data"}]} ]' - \ | kubectl -n "${NAMESPACE}" apply -f -] logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | + source ../../functions logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | +++ realpath ../../.. logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | ++ ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770 logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | ++ CERT_MANAGER_VER=1.20.2 logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | ++ CERT_MANAGER_TEST_LABEL=e2e.percona.com/managed-by=percona-postgresql-operator-tests logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | ++ CHAOS_MESH_VER=2.5.1 logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | ++ BUSYBOX_VER=1.36 logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | ++++ pwd logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | +++ basename /mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/tests/extra-volumes logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | ++ test_name=extra-volumes logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | ++ source /mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/vars.sh logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | +++ export ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770 logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | +++ ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770 logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | +++ export DEPLOY_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/deploy logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | +++ DEPLOY_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/deploy logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | +++ export TESTS_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | +++ TESTS_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | +++ export TESTS_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/conf logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | +++ TESTS_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/conf logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | +++ export TEST_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/tests/extra-volumes/conf logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | +++ TEST_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/tests/extra-volumes/conf logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | +++ export TEMP_DIR=/tmp/kuttl/pg/extra-volumes logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | +++ TEMP_DIR=/tmp/kuttl/pg/extra-volumes logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | ++++ git rev-parse --abbrev-ref HEAD logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | +++ export GIT_BRANCH=PR-1770 logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | +++ GIT_BRANCH=PR-1770 logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | +++ export VERSION=PR-1770-8c67b09e6 logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | +++ VERSION=PR-1770-8c67b09e6 logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | +++ export SKIP_TEST_WARNINGS=true logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | +++ SKIP_TEST_WARNINGS=true logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | +++ export K8S_UPGRADE_PLATFORM=gke logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | +++ K8S_UPGRADE_PLATFORM=gke logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | +++ export K8S_UPGRADE_REGION=us-central1-a logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | +++ K8S_UPGRADE_REGION=us-central1-a logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | +++ export K8S_UPGRADE_INITIAL_VERSION= logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | +++ K8S_UPGRADE_INITIAL_VERSION= logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | +++ export K8S_UPGRADE_FINAL_VERSION= logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | +++ K8S_UPGRADE_FINAL_VERSION= logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | +++ [[ -z '' ]] logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | ++++ detect_k8s_platform logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | ++++ local detected_platform logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | ++++ local xtrace_enabled=false logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | ++++ [[ -o xtrace ]] logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | ++++ xtrace_enabled=true logger.go:42: 14:32:56 | extra-volumes/1-create-cluster | ++++ set +o xtrace logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ PLATFORM=gke logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ export PLATFORM logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ export IMAGE_BASE=perconalab/percona-postgresql-operator logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ IMAGE_BASE=perconalab/percona-postgresql-operator logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ export IMAGE=perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ IMAGE=perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ [[ ! -n '' ]] logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ [[ -n '' ]] logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ export PG_VER=18 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ PG_VER=18 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ export PG_DISTRIBUTION= logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ PG_DISTRIBUTION= logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ [[ '' == community ]] logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ export IMAGE_PGBOUNCER=perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ IMAGE_PGBOUNCER=perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ export IMAGE_POSTGRESQL=perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ IMAGE_POSTGRESQL=perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ export IMAGE_BACKREST=perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ IMAGE_BACKREST=perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ export IMAGE_UPGRADE=perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ IMAGE_UPGRADE=perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ export BUCKET=pg-operator-testing logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ BUCKET=pg-operator-testing logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ export PMM_SERVER_VERSION=9.9.9 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ PMM_SERVER_VERSION=9.9.9 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ export IMAGE_PMM_CLIENT=perconalab/pmm-client:3-dev-latest logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ IMAGE_PMM_CLIENT=perconalab/pmm-client:3-dev-latest logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ export IMAGE_PMM_SERVER=perconalab/pmm-server:3-dev-latest logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ IMAGE_PMM_SERVER=perconalab/pmm-server:3-dev-latest logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ export IMAGE_LOGCOLLECTOR=perconalab/fluentbit:main-logcollector logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ IMAGE_LOGCOLLECTOR=perconalab/fluentbit:main-logcollector logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ export PGOV1_TAG=1.4.0 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ PGOV1_TAG=1.4.0 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ export PGOV1_VER=14 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ PGOV1_VER=14 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ export CPGO_VERSION=5.8.7 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ CPGO_VERSION=5.8.7 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ export MINIO_VER=5.4.0 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ MINIO_VER=5.4.0 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ export VAULT_VER=0.32.0 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ VAULT_VER=0.32.0 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ export REGISTRY_NAME=docker.io logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ REGISTRY_NAME=docker.io logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ export REGISTRY_NAME_FULL=docker.io/ logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ REGISTRY_NAME_FULL=docker.io/ logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | ++++ printenv logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | ++++ grep -E '^IMAGE' logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | ++++ awk -F= '{print $1}' logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | ++++ eval 'echo $IMAGE_BACKREST' logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++++ echo perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ var_value=perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ [[ perconalab/percona-postgresql-operator:main-pgbackrest18 == docker.io/* ]] logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ [[ perconalab/percona-postgresql-operator:main-pgbackrest18 == percona/* ]] logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ [[ perconalab/percona-postgresql-operator:main-pgbackrest18 == perconalab/* ]] logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ new_value=docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ export IMAGE_BACKREST=docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ IMAGE_BACKREST=docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ echo IMAGE_BACKREST=docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | IMAGE_BACKREST=docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ echo perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | ++++ eval 'echo $IMAGE' logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++++ echo perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ var_value=perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ [[ perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 == docker.io/* ]] logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ [[ perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 == percona/* ]] logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ [[ perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 == perconalab/* ]] logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ new_value=docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ export IMAGE=docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ IMAGE=docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ echo IMAGE=docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | IMAGE=docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | ++++ eval 'echo $IMAGE_UPGRADE' logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++++ echo perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ var_value=perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ [[ perconalab/percona-postgresql-operator:main-upgrade == docker.io/* ]] logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ [[ perconalab/percona-postgresql-operator:main-upgrade == percona/* ]] logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ [[ perconalab/percona-postgresql-operator:main-upgrade == perconalab/* ]] logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ new_value=docker.io/perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ export IMAGE_UPGRADE=docker.io/perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ IMAGE_UPGRADE=docker.io/perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ echo IMAGE_UPGRADE=docker.io/perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | IMAGE_UPGRADE=docker.io/perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | ++++ eval 'echo $IMAGE_LOGCOLLECTOR' logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++++ echo perconalab/fluentbit:main-logcollector logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ var_value=perconalab/fluentbit:main-logcollector logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ [[ perconalab/fluentbit:main-logcollector == docker.io/* ]] logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ [[ perconalab/fluentbit:main-logcollector == percona/* ]] logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ [[ perconalab/fluentbit:main-logcollector == perconalab/* ]] logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ new_value=docker.io/perconalab/fluentbit:main-logcollector logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ export IMAGE_LOGCOLLECTOR=docker.io/perconalab/fluentbit:main-logcollector logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ IMAGE_LOGCOLLECTOR=docker.io/perconalab/fluentbit:main-logcollector logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ echo IMAGE_LOGCOLLECTOR=docker.io/perconalab/fluentbit:main-logcollector logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | IMAGE_LOGCOLLECTOR=docker.io/perconalab/fluentbit:main-logcollector logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | ++++ eval 'echo $IMAGE_BASE' logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++++ echo perconalab/percona-postgresql-operator logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ var_value=perconalab/percona-postgresql-operator logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ [[ perconalab/percona-postgresql-operator == docker.io/* ]] logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ [[ perconalab/percona-postgresql-operator == percona/* ]] logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ [[ perconalab/percona-postgresql-operator == perconalab/* ]] logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ new_value=docker.io/perconalab/percona-postgresql-operator logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ export IMAGE_BASE=docker.io/perconalab/percona-postgresql-operator logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ IMAGE_BASE=docker.io/perconalab/percona-postgresql-operator logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ echo IMAGE_BASE=docker.io/perconalab/percona-postgresql-operator logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | IMAGE_BASE=docker.io/perconalab/percona-postgresql-operator logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | ++++ eval 'echo $IMAGE_PGBOUNCER' logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++++ echo perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ var_value=perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ [[ perconalab/percona-postgresql-operator:main-pgbouncer18 == docker.io/* ]] logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ [[ perconalab/percona-postgresql-operator:main-pgbouncer18 == percona/* ]] logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ [[ perconalab/percona-postgresql-operator:main-pgbouncer18 == perconalab/* ]] logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ new_value=docker.io/perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ export IMAGE_PGBOUNCER=docker.io/perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ IMAGE_PGBOUNCER=docker.io/perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ echo IMAGE_PGBOUNCER=docker.io/perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | IMAGE_PGBOUNCER=docker.io/perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | ++++ eval 'echo $IMAGE_POSTGRESQL' logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++++ echo perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ var_value=perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ [[ perconalab/percona-postgresql-operator:main-ppg18-postgres == docker.io/* ]] logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ [[ perconalab/percona-postgresql-operator:main-ppg18-postgres == percona/* ]] logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ [[ perconalab/percona-postgresql-operator:main-ppg18-postgres == perconalab/* ]] logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ new_value=docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ export IMAGE_POSTGRESQL=docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ IMAGE_POSTGRESQL=docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ echo IMAGE_POSTGRESQL=docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | IMAGE_POSTGRESQL=docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | ++++ eval 'echo $IMAGE_PMM_SERVER' logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++++ echo perconalab/pmm-server:3-dev-latest logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ var_value=perconalab/pmm-server:3-dev-latest logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ [[ perconalab/pmm-server:3-dev-latest == docker.io/* ]] logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ [[ perconalab/pmm-server:3-dev-latest == percona/* ]] logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ [[ perconalab/pmm-server:3-dev-latest == perconalab/* ]] logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ new_value=docker.io/perconalab/pmm-server:3-dev-latest logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ export IMAGE_PMM_SERVER=docker.io/perconalab/pmm-server:3-dev-latest logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ IMAGE_PMM_SERVER=docker.io/perconalab/pmm-server:3-dev-latest logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ echo IMAGE_PMM_SERVER=docker.io/perconalab/pmm-server:3-dev-latest logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | IMAGE_PMM_SERVER=docker.io/perconalab/pmm-server:3-dev-latest logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | ++++ eval 'echo $IMAGE_PMM_CLIENT' logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++++ echo perconalab/pmm-client:3-dev-latest logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ var_value=perconalab/pmm-client:3-dev-latest logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ [[ perconalab/pmm-client:3-dev-latest == docker.io/* ]] logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ [[ perconalab/pmm-client:3-dev-latest == percona/* ]] logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ [[ perconalab/pmm-client:3-dev-latest == perconalab/* ]] logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ new_value=docker.io/perconalab/pmm-client:3-dev-latest logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ export IMAGE_PMM_CLIENT=docker.io/perconalab/pmm-client:3-dev-latest logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ IMAGE_PMM_CLIENT=docker.io/perconalab/pmm-client:3-dev-latest logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ echo IMAGE_PMM_CLIENT=docker.io/perconalab/pmm-client:3-dev-latest logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | IMAGE_PMM_CLIENT=docker.io/perconalab/pmm-client:3-dev-latest logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | ++++ which gdate logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | which: no gdate in (/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/bin/:/root/.krew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/lib/snapd/snap/bin) logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | ++++ which date logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ date=/usr/sbin/date logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | ++++ which gsed logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | which: no gsed in (/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/bin/:/root/.krew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/lib/snapd/snap/bin) logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | ++++ which sed logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | +++ sed=/usr/sbin/sed logger.go:42: 14:32:58 | extra-volumes/1-create-cluster | + kubectl -n kuttl-test-central-quagga create configmap extra-dicts '--from-literal=synonyms.txt=postgres pg pgsql' logger.go:42: 14:32:59 | extra-volumes/1-create-cluster | configmap/extra-dicts created logger.go:42: 14:32:59 | extra-volumes/1-create-cluster | + get_cr logger.go:42: 14:32:59 | extra-volumes/1-create-cluster | + local cr_name=extra-volumes logger.go:42: 14:32:59 | extra-volumes/1-create-cluster | + local repo_path= logger.go:42: 14:32:59 | extra-volumes/1-create-cluster | + local source_path= logger.go:42: 14:32:59 | extra-volumes/1-create-cluster | + local platform=gke logger.go:42: 14:32:59 | extra-volumes/1-create-cluster | + local cr_file=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/tests/extra-volumes/conf/extra-volumes.yaml logger.go:42: 14:32:59 | extra-volumes/1-create-cluster | + local platform_cr_file=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/tests/extra-volumes/conf/extra-volumes-gke.yaml logger.go:42: 14:32:59 | extra-volumes/1-create-cluster | + yq eval '.spec.instances[0].replicas = 1' - logger.go:42: 14:32:59 | extra-volumes/1-create-cluster | + local spaces_cr_file=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/tests/extra-volumes/conf/extra-volumes-spaces.yaml logger.go:42: 14:32:59 | extra-volumes/1-create-cluster | + [[ -f /mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/tests/extra-volumes/conf/extra-volumes-gke.yaml ]] logger.go:42: 14:32:59 | extra-volumes/1-create-cluster | + [[ gke == doks ]] logger.go:42: 14:32:59 | extra-volumes/1-create-cluster | + yq eval '.spec.proxy.pgBouncer.replicas = 1' - logger.go:42: 14:32:59 | extra-volumes/1-create-cluster | + crs=('/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/deploy/cr.yaml') logger.go:42: 14:32:59 | extra-volumes/1-create-cluster | + local crs logger.go:42: 14:32:59 | extra-volumes/1-create-cluster | + [[ -f /mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/tests/extra-volumes/conf/extra-volumes.yaml ]] logger.go:42: 14:32:59 | extra-volumes/1-create-cluster | + yq eval-all $'\n\t\tselect(fileIndex == 0) * (select(fileIndex == 1) // {}) |\n\t\t.metadata.name = "extra-volumes" |\n\t\t.metadata.labels = {"e2e":"extra-volumes"} |\n\t\t.spec.postgresVersion = 18 |\n\t\t.spec.users += [{"name":"postgres","password":{"type":"AlphaNumeric"}}] |\n\t\t.spec.users += [{"name":"extra-volumes","password":{"type":"AlphaNumeric"}}] |\n\t\t.spec.image = "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" |\n\t\t.spec.initContainer.image = "docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6" |\n\t\t.spec.backups.pgbackrest.image = "docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18" |\n\t\t.spec.proxy.pgBouncer.image = "docker.io/perconalab/percona-postgresql-operator:main-pgbouncer18" |\n\t\t.spec.logcollector.image = "docker.io/perconalab/fluentbit:main-logcollector" |\n\t\t.spec.pmm.image = "docker.io/perconalab/pmm-client:3-dev-latest" |\n\t\t.spec.pmm.secret = "extra-volumes-pmm-secret" |\n\t\t.spec.pmm.customClusterName = "extra-volumes-pmm-custom-name" |\n\t\t.spec.pmm.postgresParams = "--environment=dev-postgres"\n\t' /mnt/jenkins/workspace/cloud-pg-operator_PR-1770/deploy/cr.yaml logger.go:42: 14:32:59 | extra-volumes/1-create-cluster | + yq eval $'.spec.instances[0].extraVolumes = [\n {"name": "fts-dicts",\n "volumeSource": {"configMap": {"name": "extra-dicts"}},\n "mounts": [{"mountPath": "/pgdata/extra/dicts", "readOnly": true}]},\n {"name": "extra-data",\n "volumeSource": {"emptyDir": {}},\n "mounts": [{"mountPath": "/pgdata/extra/data"}]}\n ]' - logger.go:42: 14:32:59 | extra-volumes/1-create-cluster | + kubectl -n kuttl-test-central-quagga apply -f - logger.go:42: 14:32:59 | extra-volumes/1-create-cluster | + /usr/sbin/sed -i 's|||g' /tmp/kuttl/pg/extra-volumes/cr.yaml logger.go:42: 14:32:59 | extra-volumes/1-create-cluster | + /usr/sbin/sed -i 's|||g' /tmp/kuttl/pg/extra-volumes/cr.yaml logger.go:42: 14:32:59 | extra-volumes/1-create-cluster | + /usr/sbin/sed -i 's||pg-operator-testing|g' /tmp/kuttl/pg/extra-volumes/cr.yaml logger.go:42: 14:32:59 | extra-volumes/1-create-cluster | + /usr/sbin/sed -i 's||docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6|g' /tmp/kuttl/pg/extra-volumes/cr.yaml logger.go:42: 14:32:59 | extra-volumes/1-create-cluster | + [[ gke == openshift ]] logger.go:42: 14:32:59 | extra-volumes/1-create-cluster | + cat /tmp/kuttl/pg/extra-volumes/cr.yaml logger.go:42: 14:33:00 | extra-volumes/1-create-cluster | perconapgcluster.pgv2.percona.com/extra-volumes created logger.go:42: 14:33:42 | extra-volumes/1-create-cluster | test step completed 1-create-cluster logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | starting test step 2-verify-volumes logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | running command: [sh -c set -o errexit set -o xtrace source ../../functions sts=$(kubectl -n "${NAMESPACE}" get sts \ --selector postgres-operator.crunchydata.com/instance-set=instance1 -o json) printf '%s\n' "${sts}" | jq -e '.items[0].spec.template.spec.volumes[] | select(.name == "fts-dicts") | select(.configMap.name == "extra-dicts")' >/dev/null printf '%s\n' "${sts}" | jq -e '.items[0].spec.template.spec.volumes[] | select(.name == "extra-data") | select(.emptyDir != null)' >/dev/null printf '%s\n' "${sts}" | jq -e '.items[0].spec.template.spec.containers[] | select(.name == "database") | .volumeMounts[] | select(.mountPath == "/pgdata/extra/dicts") | select(.readOnly == true)' >/dev/null printf '%s\n' "${sts}" | jq -e '.items[0].spec.template.spec.containers[] | select(.name == "database") | .volumeMounts[] | select(.mountPath == "/pgdata/extra/data")' >/dev/null pod=$(get_instance_set_pods instance1 | head -n1) # /proc/mounts guards against a false positive where the mount silently # failed and reads/writes land on the container's own filesystem instead. kubectl -n "${NAMESPACE}" exec "${pod}" -c database -- \ grep -q ' /pgdata/extra/dicts ' /proc/mounts kubectl -n "${NAMESPACE}" exec "${pod}" -c database -- \ grep -q ' /pgdata/extra/data ' /proc/mounts content=$(kubectl -n "${NAMESPACE}" exec "${pod}" -c database -- cat /pgdata/extra/dicts/synonyms.txt) if [[ "${content}" != "postgres pg pgsql" ]]; then echo "unexpected dictionary content: ${content}" exit 1 fi if kubectl -n "${NAMESPACE}" exec "${pod}" -c database -- \ sh -c 'echo test > /pgdata/extra/dicts/should-fail' 2>/dev/null; then echo "read-only extra volume /pgdata/extra/dicts is writable" exit 1 fi token="rw-$(date +%s)-${RANDOM}" kubectl -n "${NAMESPACE}" exec "${pod}" -c database -- \ sh -c "printf '%s' '${token}' > /pgdata/extra/data/token" readback=$(kubectl -n "${NAMESPACE}" exec "${pod}" -c database -- cat /pgdata/extra/data/token) if [[ "${readback}" != "${token}" ]]; then echo "read-write extra volume /pgdata/extra/data round-trip failed: wrote '${token}', read '${readback}'" exit 1 fi] logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | + source ../../functions logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | +++ realpath ../../.. logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | ++ ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770 logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | ++ CERT_MANAGER_VER=1.20.2 logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | ++ CERT_MANAGER_TEST_LABEL=e2e.percona.com/managed-by=percona-postgresql-operator-tests logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | ++ CHAOS_MESH_VER=2.5.1 logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | ++ BUSYBOX_VER=1.36 logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | ++++ pwd logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | +++ basename /mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/tests/extra-volumes logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | ++ test_name=extra-volumes logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | ++ source /mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/vars.sh logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | +++ export ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770 logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | +++ ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770 logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | +++ export DEPLOY_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/deploy logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | +++ DEPLOY_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/deploy logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | +++ export TESTS_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | +++ TESTS_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | +++ export TESTS_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/conf logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | +++ TESTS_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/conf logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | +++ export TEST_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/tests/extra-volumes/conf logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | +++ TEST_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/tests/extra-volumes/conf logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | +++ export TEMP_DIR=/tmp/kuttl/pg/extra-volumes logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | +++ TEMP_DIR=/tmp/kuttl/pg/extra-volumes logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | ++++ git rev-parse --abbrev-ref HEAD logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | +++ export GIT_BRANCH=PR-1770 logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | +++ GIT_BRANCH=PR-1770 logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | +++ export VERSION=PR-1770-8c67b09e6 logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | +++ VERSION=PR-1770-8c67b09e6 logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | +++ export SKIP_TEST_WARNINGS=true logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | +++ SKIP_TEST_WARNINGS=true logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | +++ export K8S_UPGRADE_PLATFORM=gke logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | +++ K8S_UPGRADE_PLATFORM=gke logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | +++ export K8S_UPGRADE_REGION=us-central1-a logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | +++ K8S_UPGRADE_REGION=us-central1-a logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | +++ export K8S_UPGRADE_INITIAL_VERSION= logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | +++ K8S_UPGRADE_INITIAL_VERSION= logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | +++ export K8S_UPGRADE_FINAL_VERSION= logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | +++ K8S_UPGRADE_FINAL_VERSION= logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | +++ [[ -z '' ]] logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | ++++ detect_k8s_platform logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | ++++ local detected_platform logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | ++++ local xtrace_enabled=false logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | ++++ [[ -o xtrace ]] logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | ++++ xtrace_enabled=true logger.go:42: 14:33:42 | extra-volumes/2-verify-volumes | ++++ set +o xtrace logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ PLATFORM=gke logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ export PLATFORM logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ export IMAGE_BASE=perconalab/percona-postgresql-operator logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ IMAGE_BASE=perconalab/percona-postgresql-operator logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ export IMAGE=perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ IMAGE=perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ [[ ! -n '' ]] logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ [[ -n '' ]] logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ export PG_VER=18 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ PG_VER=18 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ export PG_DISTRIBUTION= logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ PG_DISTRIBUTION= logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ [[ '' == community ]] logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ export IMAGE_PGBOUNCER=perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ IMAGE_PGBOUNCER=perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ export IMAGE_POSTGRESQL=perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ IMAGE_POSTGRESQL=perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ export IMAGE_BACKREST=perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ IMAGE_BACKREST=perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ export IMAGE_UPGRADE=perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ IMAGE_UPGRADE=perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ export BUCKET=pg-operator-testing logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ BUCKET=pg-operator-testing logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ export PMM_SERVER_VERSION=9.9.9 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ PMM_SERVER_VERSION=9.9.9 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ export IMAGE_PMM_CLIENT=perconalab/pmm-client:3-dev-latest logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ IMAGE_PMM_CLIENT=perconalab/pmm-client:3-dev-latest logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ export IMAGE_PMM_SERVER=perconalab/pmm-server:3-dev-latest logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ IMAGE_PMM_SERVER=perconalab/pmm-server:3-dev-latest logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ export IMAGE_LOGCOLLECTOR=perconalab/fluentbit:main-logcollector logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ IMAGE_LOGCOLLECTOR=perconalab/fluentbit:main-logcollector logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ export PGOV1_TAG=1.4.0 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ PGOV1_TAG=1.4.0 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ export PGOV1_VER=14 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ PGOV1_VER=14 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ export CPGO_VERSION=5.8.7 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ CPGO_VERSION=5.8.7 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ export MINIO_VER=5.4.0 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ MINIO_VER=5.4.0 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ export VAULT_VER=0.32.0 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ VAULT_VER=0.32.0 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ export REGISTRY_NAME=docker.io logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ REGISTRY_NAME=docker.io logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ export REGISTRY_NAME_FULL=docker.io/ logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ REGISTRY_NAME_FULL=docker.io/ logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | ++++ printenv logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | ++++ grep -E '^IMAGE' logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | ++++ awk -F= '{print $1}' logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | ++++ eval 'echo $IMAGE_BACKREST' logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++++ echo perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ var_value=perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ [[ perconalab/percona-postgresql-operator:main-pgbackrest18 == docker.io/* ]] logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ [[ perconalab/percona-postgresql-operator:main-pgbackrest18 == percona/* ]] logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ [[ perconalab/percona-postgresql-operator:main-pgbackrest18 == perconalab/* ]] logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ new_value=docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ export IMAGE_BACKREST=docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ IMAGE_BACKREST=docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ echo IMAGE_BACKREST=docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | IMAGE_BACKREST=docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ echo perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | ++++ eval 'echo $IMAGE' logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++++ echo perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ var_value=perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ [[ perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 == docker.io/* ]] logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ [[ perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 == percona/* ]] logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ [[ perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 == perconalab/* ]] logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ new_value=docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ export IMAGE=docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ IMAGE=docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ echo IMAGE=docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | IMAGE=docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | ++++ eval 'echo $IMAGE_UPGRADE' logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++++ echo perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ var_value=perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ [[ perconalab/percona-postgresql-operator:main-upgrade == docker.io/* ]] logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ [[ perconalab/percona-postgresql-operator:main-upgrade == percona/* ]] logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ [[ perconalab/percona-postgresql-operator:main-upgrade == perconalab/* ]] logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ new_value=docker.io/perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ export IMAGE_UPGRADE=docker.io/perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ IMAGE_UPGRADE=docker.io/perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ echo IMAGE_UPGRADE=docker.io/perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | IMAGE_UPGRADE=docker.io/perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | ++++ eval 'echo $IMAGE_LOGCOLLECTOR' logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++++ echo perconalab/fluentbit:main-logcollector logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ var_value=perconalab/fluentbit:main-logcollector logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ [[ perconalab/fluentbit:main-logcollector == docker.io/* ]] logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ [[ perconalab/fluentbit:main-logcollector == percona/* ]] logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ [[ perconalab/fluentbit:main-logcollector == perconalab/* ]] logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ new_value=docker.io/perconalab/fluentbit:main-logcollector logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ export IMAGE_LOGCOLLECTOR=docker.io/perconalab/fluentbit:main-logcollector logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ IMAGE_LOGCOLLECTOR=docker.io/perconalab/fluentbit:main-logcollector logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ echo IMAGE_LOGCOLLECTOR=docker.io/perconalab/fluentbit:main-logcollector logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | IMAGE_LOGCOLLECTOR=docker.io/perconalab/fluentbit:main-logcollector logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | ++++ eval 'echo $IMAGE_BASE' logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++++ echo perconalab/percona-postgresql-operator logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ var_value=perconalab/percona-postgresql-operator logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ [[ perconalab/percona-postgresql-operator == docker.io/* ]] logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ [[ perconalab/percona-postgresql-operator == percona/* ]] logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ [[ perconalab/percona-postgresql-operator == perconalab/* ]] logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ new_value=docker.io/perconalab/percona-postgresql-operator logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ export IMAGE_BASE=docker.io/perconalab/percona-postgresql-operator logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ IMAGE_BASE=docker.io/perconalab/percona-postgresql-operator logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ echo IMAGE_BASE=docker.io/perconalab/percona-postgresql-operator logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | IMAGE_BASE=docker.io/perconalab/percona-postgresql-operator logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | ++++ eval 'echo $IMAGE_PGBOUNCER' logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++++ echo perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ var_value=perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ [[ perconalab/percona-postgresql-operator:main-pgbouncer18 == docker.io/* ]] logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ [[ perconalab/percona-postgresql-operator:main-pgbouncer18 == percona/* ]] logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ [[ perconalab/percona-postgresql-operator:main-pgbouncer18 == perconalab/* ]] logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ new_value=docker.io/perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ export IMAGE_PGBOUNCER=docker.io/perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ IMAGE_PGBOUNCER=docker.io/perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ echo IMAGE_PGBOUNCER=docker.io/perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | IMAGE_PGBOUNCER=docker.io/perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | ++++ eval 'echo $IMAGE_POSTGRESQL' logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++++ echo perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ var_value=perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ [[ perconalab/percona-postgresql-operator:main-ppg18-postgres == docker.io/* ]] logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ [[ perconalab/percona-postgresql-operator:main-ppg18-postgres == percona/* ]] logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ [[ perconalab/percona-postgresql-operator:main-ppg18-postgres == perconalab/* ]] logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ new_value=docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ export IMAGE_POSTGRESQL=docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ IMAGE_POSTGRESQL=docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ echo IMAGE_POSTGRESQL=docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | IMAGE_POSTGRESQL=docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | ++++ eval 'echo $IMAGE_PMM_SERVER' logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++++ echo perconalab/pmm-server:3-dev-latest logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ var_value=perconalab/pmm-server:3-dev-latest logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ [[ perconalab/pmm-server:3-dev-latest == docker.io/* ]] logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ [[ perconalab/pmm-server:3-dev-latest == percona/* ]] logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ [[ perconalab/pmm-server:3-dev-latest == perconalab/* ]] logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ new_value=docker.io/perconalab/pmm-server:3-dev-latest logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ export IMAGE_PMM_SERVER=docker.io/perconalab/pmm-server:3-dev-latest logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ IMAGE_PMM_SERVER=docker.io/perconalab/pmm-server:3-dev-latest logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ echo IMAGE_PMM_SERVER=docker.io/perconalab/pmm-server:3-dev-latest logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | IMAGE_PMM_SERVER=docker.io/perconalab/pmm-server:3-dev-latest logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | ++++ eval 'echo $IMAGE_PMM_CLIENT' logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++++ echo perconalab/pmm-client:3-dev-latest logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ var_value=perconalab/pmm-client:3-dev-latest logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ [[ perconalab/pmm-client:3-dev-latest == docker.io/* ]] logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ [[ perconalab/pmm-client:3-dev-latest == percona/* ]] logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ [[ perconalab/pmm-client:3-dev-latest == perconalab/* ]] logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ new_value=docker.io/perconalab/pmm-client:3-dev-latest logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ export IMAGE_PMM_CLIENT=docker.io/perconalab/pmm-client:3-dev-latest logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ IMAGE_PMM_CLIENT=docker.io/perconalab/pmm-client:3-dev-latest logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ echo IMAGE_PMM_CLIENT=docker.io/perconalab/pmm-client:3-dev-latest logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | IMAGE_PMM_CLIENT=docker.io/perconalab/pmm-client:3-dev-latest logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | ++++ which gdate logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | which: no gdate in (/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/bin/:/root/.krew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/lib/snapd/snap/bin) logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | ++++ which date logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ date=/usr/sbin/date logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | ++++ which gsed logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | which: no gsed in (/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/bin/:/root/.krew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/lib/snapd/snap/bin) logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | ++++ which sed logger.go:42: 14:33:43 | extra-volumes/2-verify-volumes | +++ sed=/usr/sbin/sed logger.go:42: 14:33:44 | extra-volumes/2-verify-volumes | ++ kubectl -n kuttl-test-central-quagga get sts --selector postgres-operator.crunchydata.com/instance-set=instance1 -o json logger.go:42: 14:33:44 | extra-volumes/2-verify-volumes | + sts=$'{\n "apiVersion": "v1",\n "items": [\n {\n "apiVersion": "apps/v1",\n "kind": "StatefulSet",\n "metadata": {\n "annotations": {\n "pgv2.percona.com/logcollector-config-hash": "d9a116e02b828bdc02165325e92799d82961fb499041814c7c765d0ce263ce77"\n },\n "creationTimestamp": "2026-08-20T14:33:02Z",\n "generation": 1,\n "labels": {\n "app.kubernetes.io/component": "pg",\n "app.kubernetes.io/instance": "extra-volumes",\n "app.kubernetes.io/managed-by": "percona-postgresql-operator",\n "app.kubernetes.io/name": "percona-postgresql",\n "app.kubernetes.io/part-of": "percona-postgresql",\n "pgv2.percona.com/version": "3.1.0",\n "postgres-operator.crunchydata.com/cluster": "extra-volumes",\n "postgres-operator.crunchydata.com/data": "postgres",\n "postgres-operator.crunchydata.com/instance": "extra-volumes-instance1-64h5",\n "postgres-operator.crunchydata.com/instance-set": "instance1"\n },\n "name": "extra-volumes-instance1-64h5",\n "namespace": "kuttl-test-central-quagga",\n "ownerReferences": [\n {\n "apiVersion": "upstream.pgv2.percona.com/v1beta1",\n "blockOwnerDeletion": true,\n "controller": true,\n "kind": "PostgresCluster",\n "name": "extra-volumes",\n "uid": "cd01aeaf-50df-49aa-8a8a-b2dcf5429808"\n }\n ],\n "resourceVersion": "1787236408110879020",\n "uid": "ba581077-f463-4e1a-a194-a89f51d3880c"\n },\n "spec": {\n "persistentVolumeClaimRetentionPolicy": {\n "whenDeleted": "Retain",\n "whenScaled": "Retain"\n },\n "podManagementPolicy": "OrderedReady",\n "replicas": 1,\n "revisionHistoryLimit": 0,\n "selector": {\n "matchLabels": {\n "postgres-operator.crunchydata.com/cluster": "extra-volumes",\n "postgres-operator.crunchydata.com/instance": "extra-volumes-instance1-64h5",\n "postgres-operator.crunchydata.com/instance-set": "instance1"\n }\n },\n "serviceName": "extra-volumes-pods",\n "template": {\n "metadata": {\n "annotations": {\n "kubectl.kubernetes.io/default-container": "database",\n "pgv2.percona.com/logcollector-config-hash": "d9a116e02b828bdc02165325e92799d82961fb499041814c7c765d0ce263ce77"\n },\n "creationTimestamp": null,\n "labels": {\n "app.kubernetes.io/component": "pg",\n "app.kubernetes.io/instance": "extra-volumes",\n "app.kubernetes.io/managed-by": "percona-postgresql-operator",\n "app.kubernetes.io/name": "percona-postgresql",\n "app.kubernetes.io/part-of": "percona-postgresql",\n "pgv2.percona.com/version": "3.1.0",\n "postgres-operator.crunchydata.com/cluster": "extra-volumes",\n "postgres-operator.crunchydata.com/data": "postgres",\n "postgres-operator.crunchydata.com/instance": "extra-volumes-instance1-64h5",\n "postgres-operator.crunchydata.com/instance-set": "instance1",\n "postgres-operator.crunchydata.com/patroni": "extra-volumes-ha"\n }\n },\n "spec": {\n "affinity": {\n "podAntiAffinity": {\n "preferredDuringSchedulingIgnoredDuringExecution": [\n {\n "podAffinityTerm": {\n "labelSelector": {\n "matchLabels": {\n "postgres-operator.crunchydata.com/data": "postgres"\n }\n },\n "topologyKey": "kubernetes.io/hostname"\n },\n "weight": 1\n }\n ]\n }\n },\n "containers": [\n {\n "command": [\n "/opt/crunchy/bin/postgres-entrypoint.sh",\n "patroni",\n "/etc/patroni"\n ],\n "env": [\n {\n "name": "PGDATA",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PGHOST",\n "value": "/tmp/postgres"\n },\n {\n "name": "PGPORT",\n "value": "5432"\n },\n {\n "name": "KRB5_CONFIG",\n "value": "/etc/postgres/krb5.conf"\n },\n {\n "name": "KRB5RCACHEDIR",\n "value": "/tmp"\n },\n {\n "name": "LDAPTLS_CACERT",\n "value": "/etc/postgres/ldap/ca.crt"\n },\n {\n "name": "LC_ALL",\n "value": "en_US.utf-8"\n },\n {\n "name": "LANG",\n "value": "en_US.utf-8"\n },\n {\n "name": "PATRONI_NAME",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.name"\n }\n }\n },\n {\n "name": "PATRONI_KUBERNETES_POD_IP",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "status.podIP"\n }\n }\n },\n {\n "name": "PATRONI_KUBERNETES_PORTS",\n "value": "- name: postgres\\n port: 5432\\n protocol: TCP\\n"\n },\n {\n "name": "PATRONI_POSTGRESQL_CONNECT_ADDRESS",\n "value": "$(PATRONI_NAME).extra-volumes-pods:5432"\n },\n {\n "name": "PATRONI_POSTGRESQL_LISTEN",\n "value": "*:5432"\n },\n {\n "name": "PATRONI_POSTGRESQL_CONFIG_DIR",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PATRONI_POSTGRESQL_DATA_DIR",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PATRONI_RESTAPI_CONNECT_ADDRESS",\n "value": "$(PATRONI_NAME).extra-volumes-pods:8008"\n },\n {\n "name": "PATRONI_RESTAPI_LISTEN",\n "value": "*:8008"\n },\n {\n "name": "PATRONICTL_CONFIG_FILE",\n "value": "/etc/patroni"\n },\n {\n "name": "LD_PRELOAD",\n "value": "/usr/lib64/libnss_wrapper.so"\n },\n {\n "name": "NSS_WRAPPER_PASSWD",\n "value": "/tmp/nss_wrapper/postgres/passwd"\n },\n {\n "name": "NSS_WRAPPER_GROUP",\n "value": "/tmp/nss_wrapper/postgres/group"\n }\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "livenessProbe": {\n "exec": {\n "command": [\n "bash",\n "-c",\n "/opt/crunchy/bin/postgres-liveness-check.sh"\n ]\n },\n "failureThreshold": 3,\n "initialDelaySeconds": 3,\n "periodSeconds": 10,\n "successThreshold": 1,\n "timeoutSeconds": 5\n },\n "name": "database",\n "ports": [\n {\n "containerPort": 5432,\n "name": "postgres",\n "protocol": "TCP"\n }\n ],\n "readinessProbe": {\n "exec": {\n "command": [\n "bash",\n "-c",\n "/opt/crunchy/bin/postgres-readiness-check.sh"\n ]\n },\n "failureThreshold": 3,\n "initialDelaySeconds": 3,\n "periodSeconds": 10,\n "successThreshold": 1,\n "timeoutSeconds": 5\n },\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgconf/tls",\n "name": "cert-volume",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/etc/database-containerinfo",\n "name": "database-containerinfo",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata/extra/dicts",\n "name": "fts-dicts",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata/extra/data",\n "name": "extra-data"\n },\n {\n "mountPath": "/etc/pgbackrest/conf.d",\n "name": "pgbackrest-config",\n "readOnly": true\n },\n {\n "mountPath": "/etc/patroni",\n "name": "patroni-config",\n "readOnly": true\n },\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n },\n {\n "mountPath": "/dev/shm",\n "name": "dshm"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-ceu",\n "--",\n "monitor() {\\n# Parameters for curl when managing autogrow annotation.\\nAPISERVER=\\"https://kubernetes.default.svc\\"\\nSERVICEACCOUNT=\\"/var/run/secrets/kubernetes.io/serviceaccount\\"\\nNAMESPACE=$(cat ${SERVICEACCOUNT}/namespace)\\nTOKEN=$(cat ${SERVICEACCOUNT}/token)\\nCACERT=${SERVICEACCOUNT}/ca.crt\\n\\ndeclare -r directory=\\"/pgconf/tls\\"\\nexec {fd}\\u003c\\u003e \\u003c(:||:)\\nwhile read -r -t 5 -u \\"${fd}\\" ||:; do\\n # Manage replication certificate.\\n if [[ \\"${directory}\\" -nt \\"/proc/self/fd/${fd}\\" ]] \\u0026\\u0026\\n install -D --mode=0600 -t \\"/tmp/replication\\" \\"${directory}\\"/{replication/tls.crt,replication/tls.key,replication/ca.crt} \\u0026\\u0026\\n pkill -HUP --exact --parent=1 postgres\\n then\\n exec {fd}\\u003e\\u0026- \\u0026\\u0026 exec {fd}\\u003c\\u003e \\u003c(:||:)\\n stat --format=\'Loaded certificates dated %y\' \\"${directory}\\"\\n fi\\n\\ndone\\n}; export -f monitor; exec -a \\"$0\\" bash -ceu monitor",\n "replication-cert-copy"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "replication-cert-copy",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgconf/tls",\n "name": "cert-volume",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "args": [\n "fluent-bit"\n ],\n "command": [\n "/opt/crunchy/logcollector/entrypoint.sh"\n ],\n "env": [\n {\n "name": "PG_LOG_DIR",\n "value": "/pgdata/pg18/log"\n },\n {\n "name": "PGBACKREST_LOG_DIR",\n "value": "/pgdata/pgbackrest/log"\n },\n {\n "name": "POD_NAMESPACE",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.namespace"\n }\n }\n },\n {\n "name": "POD_NAME",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.name"\n }\n }\n }\n ],\n "image": "docker.io/perconalab/fluentbit:main-logcollector",\n "imagePullPolicy": "IfNotPresent",\n "name": "logs",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "runAsGroup": 26,\n "runAsNonRoot": true,\n "runAsUser": 26,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "args": [\n "logrotate"\n ],\n "command": [\n "/opt/crunchy/logcollector/entrypoint.sh"\n ],\n "env": [\n {\n "name": "POD_NAMESPACE",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.namespace"\n }\n }\n },\n {\n "name": "POD_NAME",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.name"\n }\n }\n },\n {\n "name": "LOGROTATE_SCHEDULE",\n "value": "0 0 * * *"\n },\n {\n "name": "LD_PRELOAD",\n "value": "/tmp/nss_wrapper/libnss_wrapper.so"\n },\n {\n "name": "NSS_WRAPPER_PASSWD",\n "value": "/tmp/nss_wrapper/postgres/passwd"\n },\n {\n "name": "NSS_WRAPPER_GROUP",\n "value": "/tmp/nss_wrapper/postgres/group"\n }\n ],\n "image": "docker.io/perconalab/fluentbit:main-logcollector",\n "imagePullPolicy": "IfNotPresent",\n "name": "logrotate",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "runAsGroup": 26,\n "runAsNonRoot": true,\n "runAsUser": 26,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "pgbackrest",\n "server"\n ],\n "env": [\n {\n "name": "LD_PRELOAD",\n "value": "/usr/lib64/libnss_wrapper.so"\n },\n {\n "name": "NSS_WRAPPER_PASSWD",\n "value": "/tmp/nss_wrapper/postgres/passwd"\n },\n {\n "name": "NSS_WRAPPER_GROUP",\n "value": "/tmp/nss_wrapper/postgres/group"\n }\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18",\n "imagePullPolicy": "Always",\n "livenessProbe": {\n "exec": {\n "command": [\n "pgbackrest",\n "server-ping"\n ]\n },\n "failureThreshold": 3,\n "periodSeconds": 10,\n "successThreshold": 1,\n "timeoutSeconds": 1\n },\n "name": "pgbackrest",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/etc/pgbackrest/server",\n "name": "pgbackrest-server",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/etc/pgbackrest/conf.d",\n "name": "pgbackrest-config",\n "readOnly": true\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-ceu",\n "--",\n "monitor() {\\nexec {fd}\\u003c\\u003e \\u003c(:||:)\\nuntil read -r -t 5 -u \\"${fd}\\"; do\\n if\\n [[ \\"${filename}\\" -nt \\"/proc/self/fd/${fd}\\" ]] \\u0026\\u0026\\n pkill -HUP --exact --parent=0 pgbackrest\\n then\\n exec {fd}\\u003e\\u0026- \\u0026\\u0026 exec {fd}\\u003c\\u003e \\u003c(:||:)\\n stat --dereference --format=\'Loaded configuration dated %y\' \\"${filename}\\"\\n elif\\n { [[ \\"${directory}\\" -nt \\"/proc/self/fd/${fd}\\" ]] ||\\n [[ \\"${authority}\\" -nt \\"/proc/self/fd/${fd}\\" ]]\\n } \\u0026\\u0026\\n pkill -HUP --exact --parent=0 pgbackrest\\n then\\n exec {fd}\\u003e\\u0026- \\u0026\\u0026 exec {fd}\\u003c\\u003e \\u003c(:||:)\\n stat --format=\'Loaded certificates dated %y\' \\"${directory}\\"\\n fi\\ndone\\n}; export directory=\\"$1\\" authority=\\"$2\\" filename=\\"$3\\"; export -f monitor; exec -a \\"$0\\" bash -ceu monitor",\n "pgbackrest-config",\n "/etc/pgbackrest/server",\n "/etc/pgbackrest/conf.d/~postgres-operator/tls-ca.crt",\n "/etc/pgbackrest/conf.d/~postgres-operator_server.conf"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18",\n "imagePullPolicy": "Always",\n "name": "pgbackrest-config",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/etc/pgbackrest/server",\n "name": "pgbackrest-server",\n "readOnly": true\n },\n {\n "mountPath": "/etc/pgbackrest/conf.d",\n "name": "pgbackrest-config",\n "readOnly": true\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n }\n ],\n "dnsPolicy": "ClusterFirst",\n "enableServiceLinks": false,\n "initContainers": [\n {\n "command": [\n "/usr/local/bin/init-entrypoint.sh"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6",\n "imagePullPolicy": "Always",\n "name": "database-init",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-ceu",\n "--",\n "declare -r expected_major_version=\\"$1\\" pgwal_directory=\\"$2\\" pgbrLog_directory=\\"$3\\"\\npermissions() { while [[ -n \\"$1\\" ]]; do set \\"${1%/*}\\" \\"$@\\"; done; shift; stat -Lc \'%A %4u %4g %n\' \\"$@\\"; }\\nhalt() { local rc=$?; \\u003e\\u00262 echo \\"$@\\"; exit \\"${rc/#0/1}\\"; }\\nresults() { printf \'::postgres-operator: %s::%s\\\\n\' \\"$@\\"; }\\nrecreate() (\\n local tmp; tmp=$(mktemp -d -p \\"${1%/*}\\"); GLOBIGNORE=\'.:..\'; set -x\\n chmod \\"$2\\" \\"${tmp}\\"; mv \\"$1\\"/* \\"${tmp}\\"; rmdir \\"$1\\"; mv \\"${tmp}\\" \\"$1\\"\\n)\\nsafelink() (\\n local desired=\\"$1\\" name=\\"$2\\" current\\n current=$(realpath \\"${name}\\")\\n if [[ \\"${current}\\" == \\"${desired}\\" ]]; then return; fi\\n set -x; mv --no-target-directory \\"${current}\\" \\"${desired}\\"\\n ln --no-dereference --force --symbolic \\"${desired}\\" \\"${name}\\"\\n)\\necho Initializing ...\\nresults \'uid\' \\"$(id -u ||:)\\" \'gid\' \\"$(id -G ||:)\\"\\nif [[ \\"${pgwal_directory}\\" == *\\"pgwal/\\"* ]] \\u0026\\u0026 [[ ! -d \\"/pgwal/pgbackrest-spool\\" ]];then rm -rf \\"/pgdata/pgbackrest-spool\\" \\u0026\\u0026 mkdir -p \\"/pgwal/pgbackrest-spool\\" \\u0026\\u0026 ln --force --symbolic \\"/pgwal/pgbackrest-spool\\" \\"/pgdata/pgbackrest-spool\\";fi\\nif [[ ! -e \\"/pgdata/pgbackrest-spool\\" ]];then rm -rf /pgdata/pgbackrest-spool;fi\\nresults \'postgres path\' \\"$(command -v postgres ||:)\\"\\nresults \'postgres version\' \\"${postgres_version:=$(postgres --version ||:)}\\"\\n[[ \\"${postgres_version}\\" =~ \\") ${expected_major_version}\\"($|[^0-9]) ]] ||\\nhalt Expected PostgreSQL version \\"${expected_major_version}\\"\\nresults \'config directory\' \\"${PGDATA:?}\\"\\npostgres_data_directory=$([[ -d \\"${PGDATA}\\" ]] \\u0026\\u0026 postgres -C data_directory || echo \\"${PGDATA}\\")\\nresults \'data directory\' \\"${postgres_data_directory}\\"\\n[[ \\"${postgres_data_directory}\\" == \\"${PGDATA}\\" ]] ||\\nhalt Expected matching config and data directories\\nbootstrap_dir=\\"${postgres_data_directory}_bootstrap\\"\\n[[ -d \\"${bootstrap_dir}\\" ]] \\u0026\\u0026 results \'bootstrap directory\' \\"${bootstrap_dir}\\"\\n[[ -d \\"${bootstrap_dir}\\" ]] \\u0026\\u0026 postgres_data_directory=\\"${bootstrap_dir}\\"\\nif [[ ! -e \\"${postgres_data_directory}\\" || -O \\"${postgres_data_directory}\\" ]]; then\\ninstall --directory --mode=0700 \\"${postgres_data_directory}\\"\\nelif [[ -w \\"${postgres_data_directory}\\" \\u0026\\u0026 -g \\"${postgres_data_directory}\\" ]]; then\\nrecreate \\"${postgres_data_directory}\\" \'0700\'\\nelse (halt Permissions!); fi ||\\nhalt \\"$(permissions \\"${postgres_data_directory}\\" ||:)\\"\\nresults \'pgBackRest log directory\' \\"${pgbrLog_directory}\\"\\ninstall --directory --mode=0775 \\"${pgbrLog_directory}\\" ||\\nhalt \\"$(permissions \\"${pgbrLog_directory}\\" ||:)\\"\\ninstall -D --mode=0600 -t \\"/tmp/replication\\" \\"/pgconf/tls/replication\\"/{tls.crt,tls.key,ca.crt}\\n\\n[[ -f \\"${postgres_data_directory}/PG_VERSION\\" ]] || exit 0\\nresults \'data version\' \\"${postgres_data_version:=$(\\u003c \\"${postgres_data_directory}/PG_VERSION\\")}\\"\\n[[ \\"${postgres_data_version}\\" == \\"${expected_major_version}\\" ]] ||\\nhalt Expected PostgreSQL data version \\"${expected_major_version}\\"\\n[[ ! -f \\"${postgres_data_directory}/postgresql.conf\\" ]] \\u0026\\u0026\\ntouch \\"${postgres_data_directory}/postgresql.conf\\"\\nsafelink \\"${pgwal_directory}\\" \\"${postgres_data_directory}/pg_wal\\"\\nresults \'wal directory\' \\"$(realpath \\"${postgres_data_directory}/pg_wal\\" ||:)\\"\\nrm -f \\"${postgres_data_directory}/recovery.signal\\"",\n "startup",\n "18",\n "/pgdata/pg18_wal",\n "/pgdata/pgbackrest/log"\n ],\n "env": [\n {\n "name": "PGDATA",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PGHOST",\n "value": "/tmp/postgres"\n },\n {\n "name": "PGPORT",\n "value": "5432"\n },\n {\n "name": "KRB5_CONFIG",\n "value": "/etc/postgres/krb5.conf"\n },\n {\n "name": "KRB5RCACHEDIR",\n "value": "/tmp"\n },\n {\n "name": "LDAPTLS_CACERT",\n "value": "/etc/postgres/ldap/ca.crt"\n },\n {\n "name": "LC_ALL",\n "value": "en_US.utf-8"\n },\n {\n "name": "LANG",\n "value": "en_US.utf-8"\n }\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "postgres-startup",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgconf/tls",\n "name": "cert-volume",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-c",\n "mkdir -p /tmp/nss_wrapper \\u0026\\u0026 { [[ -f /tmp/nss_wrapper/libnss_wrapper.so ]] || cp /usr/lib64/libnss_wrapper.so /tmp/nss_wrapper/libnss_wrapper.so; }"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "nss-wrapper-init-logcollector",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "runAsGroup": 26,\n "runAsNonRoot": true,\n "runAsUser": 26,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-c",\n "export NSS_WRAPPER_SUBDIR=postgres CRUNCHY_NSS_USERNAME=postgres CRUNCHY_NSS_USER_DESC=\\"postgres\\" \\n# Define nss_wrapper directory and passwd \\u0026 group files that will be utilized by nss_wrapper. The\\n# nss_wrapper_env.sh script (which also sets these vars) isn\'t sourced here since the nss_wrapper\\n# has not yet been setup, and we therefore don\'t yet want the nss_wrapper vars in the environment.\\nmkdir -p /tmp/nss_wrapper\\nchmod g+rwx /tmp/nss_wrapper\\n\\nNSS_WRAPPER_DIR=\\"/tmp/nss_wrapper/${NSS_WRAPPER_SUBDIR}\\"\\nNSS_WRAPPER_PASSWD=\\"${NSS_WRAPPER_DIR}/passwd\\"\\nNSS_WRAPPER_GROUP=\\"${NSS_WRAPPER_DIR}/group\\"\\n\\n# create the nss_wrapper directory\\nmkdir -p \\"${NSS_WRAPPER_DIR}\\"\\n\\n# grab the current user ID and group ID\\nUSER_ID=$(id -u)\\nexport USER_ID\\nGROUP_ID=$(id -g)\\nexport GROUP_ID\\n\\n# get copies of the passwd and group files\\n[[ -f \\"${NSS_WRAPPER_PASSWD}\\" ]] || cp \\"/etc/passwd\\" \\"${NSS_WRAPPER_PASSWD}\\"\\n[[ -f \\"${NSS_WRAPPER_GROUP}\\" ]] || cp \\"/etc/group\\" \\"${NSS_WRAPPER_GROUP}\\"\\n\\n# if the username is missing from the passwd file, then add it\\nif [[ ! $(cat \\"${NSS_WRAPPER_PASSWD}\\") =~ ${CRUNCHY_NSS_USERNAME}:x:${USER_ID} ]]; then\\n echo \\"nss_wrapper: adding user\\"\\n passwd_tmp=\\"${NSS_WRAPPER_DIR}/passwd_tmp\\"\\n cp \\"${NSS_WRAPPER_PASSWD}\\" \\"${passwd_tmp}\\"\\n sed -i \\"/${CRUNCHY_NSS_USERNAME}:x:/d\\" \\"${passwd_tmp}\\"\\n # needed for OCP 4.x because crio updates /etc/passwd with an entry for USER_ID\\n sed -i \\"/${USER_ID}:x:/d\\" \\"${passwd_tmp}\\"\\n printf \'${CRUNCHY_NSS_USERNAME}:x:${USER_ID}:${GROUP_ID}:${CRUNCHY_NSS_USER_DESC}:${HOME}:/bin/bash\\\\n\' \\u003e\\u003e \\"${passwd_tmp}\\"\\n envsubst \\u003c \\"${passwd_tmp}\\" \\u003e \\"${NSS_WRAPPER_PASSWD}\\"\\n rm \\"${passwd_tmp}\\"\\nelse\\n echo \\"nss_wrapper: user exists\\"\\nfi\\n\\n# if the username (which will be the same as the group name) is missing from group file, then add it\\nif [[ ! $(cat \\"${NSS_WRAPPER_GROUP}\\") =~ ${CRUNCHY_NSS_USERNAME}:x:${USER_ID} ]]; then\\n echo \\"nss_wrapper: adding group\\"\\n group_tmp=\\"${NSS_WRAPPER_DIR}/group_tmp\\"\\n cp \\"${NSS_WRAPPER_GROUP}\\" \\"${group_tmp}\\"\\n sed -i \\"/${CRUNCHY_NSS_USERNAME}:x:/d\\" \\"${group_tmp}\\"\\n printf \'${CRUNCHY_NSS_USERNAME}:x:${USER_ID}:${CRUNCHY_NSS_USERNAME}\\\\n\' \\u003e\\u003e \\"${group_tmp}\\"\\n envsubst \\u003c \\"${group_tmp}\\" \\u003e \\"${NSS_WRAPPER_GROUP}\\"\\n rm \\"${group_tmp}\\"\\nelse\\n echo \\"nss_wrapper: group exists\\"\\nfi\\n\\n# export the nss_wrapper env vars\\n# define nss_wrapper directory and passwd \\u0026 group files that will be utilized by nss_wrapper\\nNSS_WRAPPER_DIR=\\"/tmp/nss_wrapper/${NSS_WRAPPER_SUBDIR}\\"\\nNSS_WRAPPER_PASSWD=\\"${NSS_WRAPPER_DIR}/passwd\\"\\nNSS_WRAPPER_GROUP=\\"${NSS_WRAPPER_DIR}/group\\"\\n\\nexport LD_PRELOAD=/usr/lib64/libnss_wrapper.so\\nexport NSS_WRAPPER_PASSWD=\\"${NSS_WRAPPER_PASSWD}\\"\\nexport NSS_WRAPPER_GROUP=\\"${NSS_WRAPPER_GROUP}\\"\\n\\necho \\"nss_wrapper: environment configured\\"\\n"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "nss-wrapper-init",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n }\n ],\n "restartPolicy": "Always",\n "schedulerName": "default-scheduler",\n "securityContext": {\n "fsGroup": 26,\n "fsGroupChangePolicy": "OnRootMismatch"\n },\n "serviceAccount": "extra-volumes-instance",\n "serviceAccountName": "extra-volumes-instance",\n "shareProcessNamespace": true,\n "terminationGracePeriodSeconds": 30,\n "topologySpreadConstraints": [\n {\n "labelSelector": {\n "matchExpressions": [\n {\n "key": "postgres-operator.crunchydata.com/data",\n "operator": "In",\n "values": [\n "postgres",\n "pgbackrest"\n ]\n }\n ],\n "matchLabels": {\n "postgres-operator.crunchydata.com/cluster": "extra-volumes"\n }\n },\n "maxSkew": 1,\n "topologyKey": "kubernetes.io/hostname",\n "whenUnsatisfiable": "ScheduleAnyway"\n },\n {\n "labelSelector": {\n "matchExpressions": [\n {\n "key": "postgres-operator.crunchydata.com/data",\n "operator": "In",\n "values": [\n "postgres",\n "pgbackrest"\n ]\n }\n ],\n "matchLabels": {\n "postgres-operator.crunchydata.com/cluster": "extra-volumes"\n }\n },\n "maxSkew": 1,\n "topologyKey": "topology.kubernetes.io/zone",\n "whenUnsatisfiable": "ScheduleAnyway"\n }\n ],\n "volumes": [\n {\n "name": "cert-volume",\n "projected": {\n "defaultMode": 384,\n "sources": [\n {\n "secret": {\n "items": [\n {\n "key": "tls.crt",\n "path": "tls.crt"\n },\n {\n "key": "tls.key",\n "path": "tls.key"\n },\n {\n "key": "ca.crt",\n "path": "ca.crt"\n }\n ],\n "name": "extra-volumes-cluster-cert"\n }\n },\n {\n "secret": {\n "items": [\n {\n "key": "tls.crt",\n "path": "replication/tls.crt"\n },\n {\n "key": "tls.key",\n "path": "replication/tls.key"\n },\n {\n "key": "ca.crt",\n "path": "replication/ca.crt"\n }\n ],\n "name": "extra-volumes-replication-cert"\n }\n }\n ]\n }\n },\n {\n "name": "postgres-data",\n "persistentVolumeClaim": {\n "claimName": "extra-volumes-instance1-64h5-pgdata"\n }\n },\n {\n "downwardAPI": {\n "defaultMode": 420,\n "items": [\n {\n "path": "cpu_limit",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1m",\n "resource": "limits.cpu"\n }\n },\n {\n "path": "cpu_request",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1m",\n "resource": "requests.cpu"\n }\n },\n {\n "path": "mem_limit",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1Mi",\n "resource": "limits.memory"\n }\n },\n {\n "path": "mem_request",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1Mi",\n "resource": "requests.memory"\n }\n },\n {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.labels"\n },\n "path": "labels"\n },\n {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.annotations"\n },\n "path": "annotations"\n }\n ]\n },\n "name": "database-containerinfo"\n },\n {\n "configMap": {\n "defaultMode": 420,\n "name": "extra-dicts"\n },\n "name": "fts-dicts"\n },\n {\n "emptyDir": {},\n "name": "extra-data"\n },\n {\n "name": "pgbackrest-server",\n "projected": {\n "defaultMode": 420,\n "sources": [\n {\n "secret": {\n "items": [\n {\n "key": "pgbackrest-server.crt",\n "path": "server-tls.crt"\n },\n {\n "key": "pgbackrest-server.key",\n "mode": 384,\n "path": "server-tls.key"\n }\n ],\n "name": "extra-volumes-instance1-64h5-certs"\n }\n }\n ]\n }\n },\n {\n "name": "pgbackrest-config",\n "projected": {\n "defaultMode": 420,\n "sources": [\n {\n "configMap": {\n "items": [\n {\n "key": "pgbackrest_instance.conf",\n "path": "pgbackrest_instance.conf"\n },\n {\n "key": "config-hash",\n "path": "config-hash"\n },\n {\n "key": "pgbackrest-server.conf",\n "path": "~postgres-operator_server.conf"\n }\n ],\n "name": "extra-volumes-pgbackrest-config"\n }\n },\n {\n "secret": {\n "items": [\n {\n "key": "pgbackrest.ca-roots",\n "path": "~postgres-operator/tls-ca.crt"\n },\n {\n "key": "pgbackrest-client.crt",\n "path": "~postgres-operator/client-tls.crt"\n },\n {\n "key": "pgbackrest-client.key",\n "mode": 384,\n "path": "~postgres-operator/client-tls.key"\n }\n ],\n "name": "extra-volumes-pgbackrest"\n }\n }\n ]\n }\n },\n {\n "name": "patroni-config",\n "projected": {\n "defaultMode": 420,\n "sources": [\n {\n "configMap": {\n "items": [\n {\n "key": "patroni.yaml",\n "path": "~postgres-operator_cluster.yaml"\n }\n ],\n "name": "extra-volumes-config"\n }\n },\n {\n "configMap": {\n "items": [\n {\n "key": "patroni.yaml",\n "path": "~postgres-operator_instance.yaml"\n }\n ],\n "name": "extra-volumes-instance1-64h5-config"\n }\n },\n {\n "secret": {\n "items": [\n {\n "key": "patroni.ca-roots",\n "path": "~postgres-operator/patroni.ca-roots"\n },\n {\n "key": "patroni.crt-combined",\n "path": "~postgres-operator/patroni.crt+key"\n }\n ],\n "name": "extra-volumes-instance1-64h5-certs"\n }\n }\n ]\n }\n },\n {\n "emptyDir": {},\n "name": "crunchy-bin"\n },\n {\n "emptyDir": {\n "sizeLimit": "2Gi"\n },\n "name": "tmp"\n },\n {\n "emptyDir": {\n "medium": "Memory"\n },\n "name": "dshm"\n }\n ]\n }\n },\n "updateStrategy": {\n "type": "OnDelete"\n }\n },\n "status": {\n "availableReplicas": 1,\n "collisionCount": 0,\n "currentReplicas": 1,\n "currentRevision": "extra-volumes-instance1-64h5-5945964768",\n "observedGeneration": 1,\n "readyReplicas": 1,\n "replicas": 1,\n "updateRevision": "extra-volumes-instance1-64h5-5945964768",\n "updatedReplicas": 1\n }\n }\n ],\n "kind": "List",\n "metadata": {\n "resourceVersion": ""\n }\n}' logger.go:42: 14:33:44 | extra-volumes/2-verify-volumes | + jq -e $'.items[0].spec.template.spec.volumes[]\n | select(.name == "fts-dicts") | select(.configMap.name == "extra-dicts")' logger.go:42: 14:33:44 | extra-volumes/2-verify-volumes | + printf '%s\n' $'{\n "apiVersion": "v1",\n "items": [\n {\n "apiVersion": "apps/v1",\n "kind": "StatefulSet",\n "metadata": {\n "annotations": {\n "pgv2.percona.com/logcollector-config-hash": "d9a116e02b828bdc02165325e92799d82961fb499041814c7c765d0ce263ce77"\n },\n "creationTimestamp": "2026-08-20T14:33:02Z",\n "generation": 1,\n "labels": {\n "app.kubernetes.io/component": "pg",\n "app.kubernetes.io/instance": "extra-volumes",\n "app.kubernetes.io/managed-by": "percona-postgresql-operator",\n "app.kubernetes.io/name": "percona-postgresql",\n "app.kubernetes.io/part-of": "percona-postgresql",\n "pgv2.percona.com/version": "3.1.0",\n "postgres-operator.crunchydata.com/cluster": "extra-volumes",\n "postgres-operator.crunchydata.com/data": "postgres",\n "postgres-operator.crunchydata.com/instance": "extra-volumes-instance1-64h5",\n "postgres-operator.crunchydata.com/instance-set": "instance1"\n },\n "name": "extra-volumes-instance1-64h5",\n "namespace": "kuttl-test-central-quagga",\n "ownerReferences": [\n {\n "apiVersion": "upstream.pgv2.percona.com/v1beta1",\n "blockOwnerDeletion": true,\n "controller": true,\n "kind": "PostgresCluster",\n "name": "extra-volumes",\n "uid": "cd01aeaf-50df-49aa-8a8a-b2dcf5429808"\n }\n ],\n "resourceVersion": "1787236408110879020",\n "uid": "ba581077-f463-4e1a-a194-a89f51d3880c"\n },\n "spec": {\n "persistentVolumeClaimRetentionPolicy": {\n "whenDeleted": "Retain",\n "whenScaled": "Retain"\n },\n "podManagementPolicy": "OrderedReady",\n "replicas": 1,\n "revisionHistoryLimit": 0,\n "selector": {\n "matchLabels": {\n "postgres-operator.crunchydata.com/cluster": "extra-volumes",\n "postgres-operator.crunchydata.com/instance": "extra-volumes-instance1-64h5",\n "postgres-operator.crunchydata.com/instance-set": "instance1"\n }\n },\n "serviceName": "extra-volumes-pods",\n "template": {\n "metadata": {\n "annotations": {\n "kubectl.kubernetes.io/default-container": "database",\n "pgv2.percona.com/logcollector-config-hash": "d9a116e02b828bdc02165325e92799d82961fb499041814c7c765d0ce263ce77"\n },\n "creationTimestamp": null,\n "labels": {\n "app.kubernetes.io/component": "pg",\n "app.kubernetes.io/instance": "extra-volumes",\n "app.kubernetes.io/managed-by": "percona-postgresql-operator",\n "app.kubernetes.io/name": "percona-postgresql",\n "app.kubernetes.io/part-of": "percona-postgresql",\n "pgv2.percona.com/version": "3.1.0",\n "postgres-operator.crunchydata.com/cluster": "extra-volumes",\n "postgres-operator.crunchydata.com/data": "postgres",\n "postgres-operator.crunchydata.com/instance": "extra-volumes-instance1-64h5",\n "postgres-operator.crunchydata.com/instance-set": "instance1",\n "postgres-operator.crunchydata.com/patroni": "extra-volumes-ha"\n }\n },\n "spec": {\n "affinity": {\n "podAntiAffinity": {\n "preferredDuringSchedulingIgnoredDuringExecution": [\n {\n "podAffinityTerm": {\n "labelSelector": {\n "matchLabels": {\n "postgres-operator.crunchydata.com/data": "postgres"\n }\n },\n "topologyKey": "kubernetes.io/hostname"\n },\n "weight": 1\n }\n ]\n }\n },\n "containers": [\n {\n "command": [\n "/opt/crunchy/bin/postgres-entrypoint.sh",\n "patroni",\n "/etc/patroni"\n ],\n "env": [\n {\n "name": "PGDATA",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PGHOST",\n "value": "/tmp/postgres"\n },\n {\n "name": "PGPORT",\n "value": "5432"\n },\n {\n "name": "KRB5_CONFIG",\n "value": "/etc/postgres/krb5.conf"\n },\n {\n "name": "KRB5RCACHEDIR",\n "value": "/tmp"\n },\n {\n "name": "LDAPTLS_CACERT",\n "value": "/etc/postgres/ldap/ca.crt"\n },\n {\n "name": "LC_ALL",\n "value": "en_US.utf-8"\n },\n {\n "name": "LANG",\n "value": "en_US.utf-8"\n },\n {\n "name": "PATRONI_NAME",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.name"\n }\n }\n },\n {\n "name": "PATRONI_KUBERNETES_POD_IP",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "status.podIP"\n }\n }\n },\n {\n "name": "PATRONI_KUBERNETES_PORTS",\n "value": "- name: postgres\\n port: 5432\\n protocol: TCP\\n"\n },\n {\n "name": "PATRONI_POSTGRESQL_CONNECT_ADDRESS",\n "value": "$(PATRONI_NAME).extra-volumes-pods:5432"\n },\n {\n "name": "PATRONI_POSTGRESQL_LISTEN",\n "value": "*:5432"\n },\n {\n "name": "PATRONI_POSTGRESQL_CONFIG_DIR",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PATRONI_POSTGRESQL_DATA_DIR",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PATRONI_RESTAPI_CONNECT_ADDRESS",\n "value": "$(PATRONI_NAME).extra-volumes-pods:8008"\n },\n {\n "name": "PATRONI_RESTAPI_LISTEN",\n "value": "*:8008"\n },\n {\n "name": "PATRONICTL_CONFIG_FILE",\n "value": "/etc/patroni"\n },\n {\n "name": "LD_PRELOAD",\n "value": "/usr/lib64/libnss_wrapper.so"\n },\n {\n "name": "NSS_WRAPPER_PASSWD",\n "value": "/tmp/nss_wrapper/postgres/passwd"\n },\n {\n "name": "NSS_WRAPPER_GROUP",\n "value": "/tmp/nss_wrapper/postgres/group"\n }\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "livenessProbe": {\n "exec": {\n "command": [\n "bash",\n "-c",\n "/opt/crunchy/bin/postgres-liveness-check.sh"\n ]\n },\n "failureThreshold": 3,\n "initialDelaySeconds": 3,\n "periodSeconds": 10,\n "successThreshold": 1,\n "timeoutSeconds": 5\n },\n "name": "database",\n "ports": [\n {\n "containerPort": 5432,\n "name": "postgres",\n "protocol": "TCP"\n }\n ],\n "readinessProbe": {\n "exec": {\n "command": [\n "bash",\n "-c",\n "/opt/crunchy/bin/postgres-readiness-check.sh"\n ]\n },\n "failureThreshold": 3,\n "initialDelaySeconds": 3,\n "periodSeconds": 10,\n "successThreshold": 1,\n "timeoutSeconds": 5\n },\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgconf/tls",\n "name": "cert-volume",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/etc/database-containerinfo",\n "name": "database-containerinfo",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata/extra/dicts",\n "name": "fts-dicts",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata/extra/data",\n "name": "extra-data"\n },\n {\n "mountPath": "/etc/pgbackrest/conf.d",\n "name": "pgbackrest-config",\n "readOnly": true\n },\n {\n "mountPath": "/etc/patroni",\n "name": "patroni-config",\n "readOnly": true\n },\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n },\n {\n "mountPath": "/dev/shm",\n "name": "dshm"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-ceu",\n "--",\n "monitor() {\\n# Parameters for curl when managing autogrow annotation.\\nAPISERVER=\\"https://kubernetes.default.svc\\"\\nSERVICEACCOUNT=\\"/var/run/secrets/kubernetes.io/serviceaccount\\"\\nNAMESPACE=$(cat ${SERVICEACCOUNT}/namespace)\\nTOKEN=$(cat ${SERVICEACCOUNT}/token)\\nCACERT=${SERVICEACCOUNT}/ca.crt\\n\\ndeclare -r directory=\\"/pgconf/tls\\"\\nexec {fd}\\u003c\\u003e \\u003c(:||:)\\nwhile read -r -t 5 -u \\"${fd}\\" ||:; do\\n # Manage replication certificate.\\n if [[ \\"${directory}\\" -nt \\"/proc/self/fd/${fd}\\" ]] \\u0026\\u0026\\n install -D --mode=0600 -t \\"/tmp/replication\\" \\"${directory}\\"/{replication/tls.crt,replication/tls.key,replication/ca.crt} \\u0026\\u0026\\n pkill -HUP --exact --parent=1 postgres\\n then\\n exec {fd}\\u003e\\u0026- \\u0026\\u0026 exec {fd}\\u003c\\u003e \\u003c(:||:)\\n stat --format=\'Loaded certificates dated %y\' \\"${directory}\\"\\n fi\\n\\ndone\\n}; export -f monitor; exec -a \\"$0\\" bash -ceu monitor",\n "replication-cert-copy"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "replication-cert-copy",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgconf/tls",\n "name": "cert-volume",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "args": [\n "fluent-bit"\n ],\n "command": [\n "/opt/crunchy/logcollector/entrypoint.sh"\n ],\n "env": [\n {\n "name": "PG_LOG_DIR",\n "value": "/pgdata/pg18/log"\n },\n {\n "name": "PGBACKREST_LOG_DIR",\n "value": "/pgdata/pgbackrest/log"\n },\n {\n "name": "POD_NAMESPACE",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.namespace"\n }\n }\n },\n {\n "name": "POD_NAME",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.name"\n }\n }\n }\n ],\n "image": "docker.io/perconalab/fluentbit:main-logcollector",\n "imagePullPolicy": "IfNotPresent",\n "name": "logs",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "runAsGroup": 26,\n "runAsNonRoot": true,\n "runAsUser": 26,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "args": [\n "logrotate"\n ],\n "command": [\n "/opt/crunchy/logcollector/entrypoint.sh"\n ],\n "env": [\n {\n "name": "POD_NAMESPACE",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.namespace"\n }\n }\n },\n {\n "name": "POD_NAME",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.name"\n }\n }\n },\n {\n "name": "LOGROTATE_SCHEDULE",\n "value": "0 0 * * *"\n },\n {\n "name": "LD_PRELOAD",\n "value": "/tmp/nss_wrapper/libnss_wrapper.so"\n },\n {\n "name": "NSS_WRAPPER_PASSWD",\n "value": "/tmp/nss_wrapper/postgres/passwd"\n },\n {\n "name": "NSS_WRAPPER_GROUP",\n "value": "/tmp/nss_wrapper/postgres/group"\n }\n ],\n "image": "docker.io/perconalab/fluentbit:main-logcollector",\n "imagePullPolicy": "IfNotPresent",\n "name": "logrotate",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "runAsGroup": 26,\n "runAsNonRoot": true,\n "runAsUser": 26,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "pgbackrest",\n "server"\n ],\n "env": [\n {\n "name": "LD_PRELOAD",\n "value": "/usr/lib64/libnss_wrapper.so"\n },\n {\n "name": "NSS_WRAPPER_PASSWD",\n "value": "/tmp/nss_wrapper/postgres/passwd"\n },\n {\n "name": "NSS_WRAPPER_GROUP",\n "value": "/tmp/nss_wrapper/postgres/group"\n }\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18",\n "imagePullPolicy": "Always",\n "livenessProbe": {\n "exec": {\n "command": [\n "pgbackrest",\n "server-ping"\n ]\n },\n "failureThreshold": 3,\n "periodSeconds": 10,\n "successThreshold": 1,\n "timeoutSeconds": 1\n },\n "name": "pgbackrest",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/etc/pgbackrest/server",\n "name": "pgbackrest-server",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/etc/pgbackrest/conf.d",\n "name": "pgbackrest-config",\n "readOnly": true\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-ceu",\n "--",\n "monitor() {\\nexec {fd}\\u003c\\u003e \\u003c(:||:)\\nuntil read -r -t 5 -u \\"${fd}\\"; do\\n if\\n [[ \\"${filename}\\" -nt \\"/proc/self/fd/${fd}\\" ]] \\u0026\\u0026\\n pkill -HUP --exact --parent=0 pgbackrest\\n then\\n exec {fd}\\u003e\\u0026- \\u0026\\u0026 exec {fd}\\u003c\\u003e \\u003c(:||:)\\n stat --dereference --format=\'Loaded configuration dated %y\' \\"${filename}\\"\\n elif\\n { [[ \\"${directory}\\" -nt \\"/proc/self/fd/${fd}\\" ]] ||\\n [[ \\"${authority}\\" -nt \\"/proc/self/fd/${fd}\\" ]]\\n } \\u0026\\u0026\\n pkill -HUP --exact --parent=0 pgbackrest\\n then\\n exec {fd}\\u003e\\u0026- \\u0026\\u0026 exec {fd}\\u003c\\u003e \\u003c(:||:)\\n stat --format=\'Loaded certificates dated %y\' \\"${directory}\\"\\n fi\\ndone\\n}; export directory=\\"$1\\" authority=\\"$2\\" filename=\\"$3\\"; export -f monitor; exec -a \\"$0\\" bash -ceu monitor",\n "pgbackrest-config",\n "/etc/pgbackrest/server",\n "/etc/pgbackrest/conf.d/~postgres-operator/tls-ca.crt",\n "/etc/pgbackrest/conf.d/~postgres-operator_server.conf"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18",\n "imagePullPolicy": "Always",\n "name": "pgbackrest-config",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/etc/pgbackrest/server",\n "name": "pgbackrest-server",\n "readOnly": true\n },\n {\n "mountPath": "/etc/pgbackrest/conf.d",\n "name": "pgbackrest-config",\n "readOnly": true\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n }\n ],\n "dnsPolicy": "ClusterFirst",\n "enableServiceLinks": false,\n "initContainers": [\n {\n "command": [\n "/usr/local/bin/init-entrypoint.sh"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6",\n "imagePullPolicy": "Always",\n "name": "database-init",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-ceu",\n "--",\n "declare -r expected_major_version=\\"$1\\" pgwal_directory=\\"$2\\" pgbrLog_directory=\\"$3\\"\\npermissions() { while [[ -n \\"$1\\" ]]; do set \\"${1%/*}\\" \\"$@\\"; done; shift; stat -Lc \'%A %4u %4g %n\' \\"$@\\"; }\\nhalt() { local rc=$?; \\u003e\\u00262 echo \\"$@\\"; exit \\"${rc/#0/1}\\"; }\\nresults() { printf \'::postgres-operator: %s::%s\\\\n\' \\"$@\\"; }\\nrecreate() (\\n local tmp; tmp=$(mktemp -d -p \\"${1%/*}\\"); GLOBIGNORE=\'.:..\'; set -x\\n chmod \\"$2\\" \\"${tmp}\\"; mv \\"$1\\"/* \\"${tmp}\\"; rmdir \\"$1\\"; mv \\"${tmp}\\" \\"$1\\"\\n)\\nsafelink() (\\n local desired=\\"$1\\" name=\\"$2\\" current\\n current=$(realpath \\"${name}\\")\\n if [[ \\"${current}\\" == \\"${desired}\\" ]]; then return; fi\\n set -x; mv --no-target-directory \\"${current}\\" \\"${desired}\\"\\n ln --no-dereference --force --symbolic \\"${desired}\\" \\"${name}\\"\\n)\\necho Initializing ...\\nresults \'uid\' \\"$(id -u ||:)\\" \'gid\' \\"$(id -G ||:)\\"\\nif [[ \\"${pgwal_directory}\\" == *\\"pgwal/\\"* ]] \\u0026\\u0026 [[ ! -d \\"/pgwal/pgbackrest-spool\\" ]];then rm -rf \\"/pgdata/pgbackrest-spool\\" \\u0026\\u0026 mkdir -p \\"/pgwal/pgbackrest-spool\\" \\u0026\\u0026 ln --force --symbolic \\"/pgwal/pgbackrest-spool\\" \\"/pgdata/pgbackrest-spool\\";fi\\nif [[ ! -e \\"/pgdata/pgbackrest-spool\\" ]];then rm -rf /pgdata/pgbackrest-spool;fi\\nresults \'postgres path\' \\"$(command -v postgres ||:)\\"\\nresults \'postgres version\' \\"${postgres_version:=$(postgres --version ||:)}\\"\\n[[ \\"${postgres_version}\\" =~ \\") ${expected_major_version}\\"($|[^0-9]) ]] ||\\nhalt Expected PostgreSQL version \\"${expected_major_version}\\"\\nresults \'config directory\' \\"${PGDATA:?}\\"\\npostgres_data_directory=$([[ -d \\"${PGDATA}\\" ]] \\u0026\\u0026 postgres -C data_directory || echo \\"${PGDATA}\\")\\nresults \'data directory\' \\"${postgres_data_directory}\\"\\n[[ \\"${postgres_data_directory}\\" == \\"${PGDATA}\\" ]] ||\\nhalt Expected matching config and data directories\\nbootstrap_dir=\\"${postgres_data_directory}_bootstrap\\"\\n[[ -d \\"${bootstrap_dir}\\" ]] \\u0026\\u0026 results \'bootstrap directory\' \\"${bootstrap_dir}\\"\\n[[ -d \\"${bootstrap_dir}\\" ]] \\u0026\\u0026 postgres_data_directory=\\"${bootstrap_dir}\\"\\nif [[ ! -e \\"${postgres_data_directory}\\" || -O \\"${postgres_data_directory}\\" ]]; then\\ninstall --directory --mode=0700 \\"${postgres_data_directory}\\"\\nelif [[ -w \\"${postgres_data_directory}\\" \\u0026\\u0026 -g \\"${postgres_data_directory}\\" ]]; then\\nrecreate \\"${postgres_data_directory}\\" \'0700\'\\nelse (halt Permissions!); fi ||\\nhalt \\"$(permissions \\"${postgres_data_directory}\\" ||:)\\"\\nresults \'pgBackRest log directory\' \\"${pgbrLog_directory}\\"\\ninstall --directory --mode=0775 \\"${pgbrLog_directory}\\" ||\\nhalt \\"$(permissions \\"${pgbrLog_directory}\\" ||:)\\"\\ninstall -D --mode=0600 -t \\"/tmp/replication\\" \\"/pgconf/tls/replication\\"/{tls.crt,tls.key,ca.crt}\\n\\n[[ -f \\"${postgres_data_directory}/PG_VERSION\\" ]] || exit 0\\nresults \'data version\' \\"${postgres_data_version:=$(\\u003c \\"${postgres_data_directory}/PG_VERSION\\")}\\"\\n[[ \\"${postgres_data_version}\\" == \\"${expected_major_version}\\" ]] ||\\nhalt Expected PostgreSQL data version \\"${expected_major_version}\\"\\n[[ ! -f \\"${postgres_data_directory}/postgresql.conf\\" ]] \\u0026\\u0026\\ntouch \\"${postgres_data_directory}/postgresql.conf\\"\\nsafelink \\"${pgwal_directory}\\" \\"${postgres_data_directory}/pg_wal\\"\\nresults \'wal directory\' \\"$(realpath \\"${postgres_data_directory}/pg_wal\\" ||:)\\"\\nrm -f \\"${postgres_data_directory}/recovery.signal\\"",\n "startup",\n "18",\n "/pgdata/pg18_wal",\n "/pgdata/pgbackrest/log"\n ],\n "env": [\n {\n "name": "PGDATA",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PGHOST",\n "value": "/tmp/postgres"\n },\n {\n "name": "PGPORT",\n "value": "5432"\n },\n {\n "name": "KRB5_CONFIG",\n "value": "/etc/postgres/krb5.conf"\n },\n {\n "name": "KRB5RCACHEDIR",\n "value": "/tmp"\n },\n {\n "name": "LDAPTLS_CACERT",\n "value": "/etc/postgres/ldap/ca.crt"\n },\n {\n "name": "LC_ALL",\n "value": "en_US.utf-8"\n },\n {\n "name": "LANG",\n "value": "en_US.utf-8"\n }\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "postgres-startup",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgconf/tls",\n "name": "cert-volume",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-c",\n "mkdir -p /tmp/nss_wrapper \\u0026\\u0026 { [[ -f /tmp/nss_wrapper/libnss_wrapper.so ]] || cp /usr/lib64/libnss_wrapper.so /tmp/nss_wrapper/libnss_wrapper.so; }"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "nss-wrapper-init-logcollector",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "runAsGroup": 26,\n "runAsNonRoot": true,\n "runAsUser": 26,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-c",\n "export NSS_WRAPPER_SUBDIR=postgres CRUNCHY_NSS_USERNAME=postgres CRUNCHY_NSS_USER_DESC=\\"postgres\\" \\n# Define nss_wrapper directory and passwd \\u0026 group files that will be utilized by nss_wrapper. The\\n# nss_wrapper_env.sh script (which also sets these vars) isn\'t sourced here since the nss_wrapper\\n# has not yet been setup, and we therefore don\'t yet want the nss_wrapper vars in the environment.\\nmkdir -p /tmp/nss_wrapper\\nchmod g+rwx /tmp/nss_wrapper\\n\\nNSS_WRAPPER_DIR=\\"/tmp/nss_wrapper/${NSS_WRAPPER_SUBDIR}\\"\\nNSS_WRAPPER_PASSWD=\\"${NSS_WRAPPER_DIR}/passwd\\"\\nNSS_WRAPPER_GROUP=\\"${NSS_WRAPPER_DIR}/group\\"\\n\\n# create the nss_wrapper directory\\nmkdir -p \\"${NSS_WRAPPER_DIR}\\"\\n\\n# grab the current user ID and group ID\\nUSER_ID=$(id -u)\\nexport USER_ID\\nGROUP_ID=$(id -g)\\nexport GROUP_ID\\n\\n# get copies of the passwd and group files\\n[[ -f \\"${NSS_WRAPPER_PASSWD}\\" ]] || cp \\"/etc/passwd\\" \\"${NSS_WRAPPER_PASSWD}\\"\\n[[ -f \\"${NSS_WRAPPER_GROUP}\\" ]] || cp \\"/etc/group\\" \\"${NSS_WRAPPER_GROUP}\\"\\n\\n# if the username is missing from the passwd file, then add it\\nif [[ ! $(cat \\"${NSS_WRAPPER_PASSWD}\\") =~ ${CRUNCHY_NSS_USERNAME}:x:${USER_ID} ]]; then\\n echo \\"nss_wrapper: adding user\\"\\n passwd_tmp=\\"${NSS_WRAPPER_DIR}/passwd_tmp\\"\\n cp \\"${NSS_WRAPPER_PASSWD}\\" \\"${passwd_tmp}\\"\\n sed -i \\"/${CRUNCHY_NSS_USERNAME}:x:/d\\" \\"${passwd_tmp}\\"\\n # needed for OCP 4.x because crio updates /etc/passwd with an entry for USER_ID\\n sed -i \\"/${USER_ID}:x:/d\\" \\"${passwd_tmp}\\"\\n printf \'${CRUNCHY_NSS_USERNAME}:x:${USER_ID}:${GROUP_ID}:${CRUNCHY_NSS_USER_DESC}:${HOME}:/bin/bash\\\\n\' \\u003e\\u003e \\"${passwd_tmp}\\"\\n envsubst \\u003c \\"${passwd_tmp}\\" \\u003e \\"${NSS_WRAPPER_PASSWD}\\"\\n rm \\"${passwd_tmp}\\"\\nelse\\n echo \\"nss_wrapper: user exists\\"\\nfi\\n\\n# if the username (which will be the same as the group name) is missing from group file, then add it\\nif [[ ! $(cat \\"${NSS_WRAPPER_GROUP}\\") =~ ${CRUNCHY_NSS_USERNAME}:x:${USER_ID} ]]; then\\n echo \\"nss_wrapper: adding group\\"\\n group_tmp=\\"${NSS_WRAPPER_DIR}/group_tmp\\"\\n cp \\"${NSS_WRAPPER_GROUP}\\" \\"${group_tmp}\\"\\n sed -i \\"/${CRUNCHY_NSS_USERNAME}:x:/d\\" \\"${group_tmp}\\"\\n printf \'${CRUNCHY_NSS_USERNAME}:x:${USER_ID}:${CRUNCHY_NSS_USERNAME}\\\\n\' \\u003e\\u003e \\"${group_tmp}\\"\\n envsubst \\u003c \\"${group_tmp}\\" \\u003e \\"${NSS_WRAPPER_GROUP}\\"\\n rm \\"${group_tmp}\\"\\nelse\\n echo \\"nss_wrapper: group exists\\"\\nfi\\n\\n# export the nss_wrapper env vars\\n# define nss_wrapper directory and passwd \\u0026 group files that will be utilized by nss_wrapper\\nNSS_WRAPPER_DIR=\\"/tmp/nss_wrapper/${NSS_WRAPPER_SUBDIR}\\"\\nNSS_WRAPPER_PASSWD=\\"${NSS_WRAPPER_DIR}/passwd\\"\\nNSS_WRAPPER_GROUP=\\"${NSS_WRAPPER_DIR}/group\\"\\n\\nexport LD_PRELOAD=/usr/lib64/libnss_wrapper.so\\nexport NSS_WRAPPER_PASSWD=\\"${NSS_WRAPPER_PASSWD}\\"\\nexport NSS_WRAPPER_GROUP=\\"${NSS_WRAPPER_GROUP}\\"\\n\\necho \\"nss_wrapper: environment configured\\"\\n"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "nss-wrapper-init",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n }\n ],\n "restartPolicy": "Always",\n "schedulerName": "default-scheduler",\n "securityContext": {\n "fsGroup": 26,\n "fsGroupChangePolicy": "OnRootMismatch"\n },\n "serviceAccount": "extra-volumes-instance",\n "serviceAccountName": "extra-volumes-instance",\n "shareProcessNamespace": true,\n "terminationGracePeriodSeconds": 30,\n "topologySpreadConstraints": [\n {\n "labelSelector": {\n "matchExpressions": [\n {\n "key": "postgres-operator.crunchydata.com/data",\n "operator": "In",\n "values": [\n "postgres",\n "pgbackrest"\n ]\n }\n ],\n "matchLabels": {\n "postgres-operator.crunchydata.com/cluster": "extra-volumes"\n }\n },\n "maxSkew": 1,\n "topologyKey": "kubernetes.io/hostname",\n "whenUnsatisfiable": "ScheduleAnyway"\n },\n {\n "labelSelector": {\n "matchExpressions": [\n {\n "key": "postgres-operator.crunchydata.com/data",\n "operator": "In",\n "values": [\n "postgres",\n "pgbackrest"\n ]\n }\n ],\n "matchLabels": {\n "postgres-operator.crunchydata.com/cluster": "extra-volumes"\n }\n },\n "maxSkew": 1,\n "topologyKey": "topology.kubernetes.io/zone",\n "whenUnsatisfiable": "ScheduleAnyway"\n }\n ],\n "volumes": [\n {\n "name": "cert-volume",\n "projected": {\n "defaultMode": 384,\n "sources": [\n {\n "secret": {\n "items": [\n {\n "key": "tls.crt",\n "path": "tls.crt"\n },\n {\n "key": "tls.key",\n "path": "tls.key"\n },\n {\n "key": "ca.crt",\n "path": "ca.crt"\n }\n ],\n "name": "extra-volumes-cluster-cert"\n }\n },\n {\n "secret": {\n "items": [\n {\n "key": "tls.crt",\n "path": "replication/tls.crt"\n },\n {\n "key": "tls.key",\n "path": "replication/tls.key"\n },\n {\n "key": "ca.crt",\n "path": "replication/ca.crt"\n }\n ],\n "name": "extra-volumes-replication-cert"\n }\n }\n ]\n }\n },\n {\n "name": "postgres-data",\n "persistentVolumeClaim": {\n "claimName": "extra-volumes-instance1-64h5-pgdata"\n }\n },\n {\n "downwardAPI": {\n "defaultMode": 420,\n "items": [\n {\n "path": "cpu_limit",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1m",\n "resource": "limits.cpu"\n }\n },\n {\n "path": "cpu_request",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1m",\n "resource": "requests.cpu"\n }\n },\n {\n "path": "mem_limit",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1Mi",\n "resource": "limits.memory"\n }\n },\n {\n "path": "mem_request",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1Mi",\n "resource": "requests.memory"\n }\n },\n {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.labels"\n },\n "path": "labels"\n },\n {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.annotations"\n },\n "path": "annotations"\n }\n ]\n },\n "name": "database-containerinfo"\n },\n {\n "configMap": {\n "defaultMode": 420,\n "name": "extra-dicts"\n },\n "name": "fts-dicts"\n },\n {\n "emptyDir": {},\n "name": "extra-data"\n },\n {\n "name": "pgbackrest-server",\n "projected": {\n "defaultMode": 420,\n "sources": [\n {\n "secret": {\n "items": [\n {\n "key": "pgbackrest-server.crt",\n "path": "server-tls.crt"\n },\n {\n "key": "pgbackrest-server.key",\n "mode": 384,\n "path": "server-tls.key"\n }\n ],\n "name": "extra-volumes-instance1-64h5-certs"\n }\n }\n ]\n }\n },\n {\n "name": "pgbackrest-config",\n "projected": {\n "defaultMode": 420,\n "sources": [\n {\n "configMap": {\n "items": [\n {\n "key": "pgbackrest_instance.conf",\n "path": "pgbackrest_instance.conf"\n },\n {\n "key": "config-hash",\n "path": "config-hash"\n },\n {\n "key": "pgbackrest-server.conf",\n "path": "~postgres-operator_server.conf"\n }\n ],\n "name": "extra-volumes-pgbackrest-config"\n }\n },\n {\n "secret": {\n "items": [\n {\n "key": "pgbackrest.ca-roots",\n "path": "~postgres-operator/tls-ca.crt"\n },\n {\n "key": "pgbackrest-client.crt",\n "path": "~postgres-operator/client-tls.crt"\n },\n {\n "key": "pgbackrest-client.key",\n "mode": 384,\n "path": "~postgres-operator/client-tls.key"\n }\n ],\n "name": "extra-volumes-pgbackrest"\n }\n }\n ]\n }\n },\n {\n "name": "patroni-config",\n "projected": {\n "defaultMode": 420,\n "sources": [\n {\n "configMap": {\n "items": [\n {\n "key": "patroni.yaml",\n "path": "~postgres-operator_cluster.yaml"\n }\n ],\n "name": "extra-volumes-config"\n }\n },\n {\n "configMap": {\n "items": [\n {\n "key": "patroni.yaml",\n "path": "~postgres-operator_instance.yaml"\n }\n ],\n "name": "extra-volumes-instance1-64h5-config"\n }\n },\n {\n "secret": {\n "items": [\n {\n "key": "patroni.ca-roots",\n "path": "~postgres-operator/patroni.ca-roots"\n },\n {\n "key": "patroni.crt-combined",\n "path": "~postgres-operator/patroni.crt+key"\n }\n ],\n "name": "extra-volumes-instance1-64h5-certs"\n }\n }\n ]\n }\n },\n {\n "emptyDir": {},\n "name": "crunchy-bin"\n },\n {\n "emptyDir": {\n "sizeLimit": "2Gi"\n },\n "name": "tmp"\n },\n {\n "emptyDir": {\n "medium": "Memory"\n },\n "name": "dshm"\n }\n ]\n }\n },\n "updateStrategy": {\n "type": "OnDelete"\n }\n },\n "status": {\n "availableReplicas": 1,\n "collisionCount": 0,\n "currentReplicas": 1,\n "currentRevision": "extra-volumes-instance1-64h5-5945964768",\n "observedGeneration": 1,\n "readyReplicas": 1,\n "replicas": 1,\n "updateRevision": "extra-volumes-instance1-64h5-5945964768",\n "updatedReplicas": 1\n }\n }\n ],\n "kind": "List",\n "metadata": {\n "resourceVersion": ""\n }\n}' logger.go:42: 14:33:44 | extra-volumes/2-verify-volumes | + jq -e $'.items[0].spec.template.spec.volumes[]\n | select(.name == "extra-data") | select(.emptyDir != null)' logger.go:42: 14:33:44 | extra-volumes/2-verify-volumes | + printf '%s\n' $'{\n "apiVersion": "v1",\n "items": [\n {\n "apiVersion": "apps/v1",\n "kind": "StatefulSet",\n "metadata": {\n "annotations": {\n "pgv2.percona.com/logcollector-config-hash": "d9a116e02b828bdc02165325e92799d82961fb499041814c7c765d0ce263ce77"\n },\n "creationTimestamp": "2026-08-20T14:33:02Z",\n "generation": 1,\n "labels": {\n "app.kubernetes.io/component": "pg",\n "app.kubernetes.io/instance": "extra-volumes",\n "app.kubernetes.io/managed-by": "percona-postgresql-operator",\n "app.kubernetes.io/name": "percona-postgresql",\n "app.kubernetes.io/part-of": "percona-postgresql",\n "pgv2.percona.com/version": "3.1.0",\n "postgres-operator.crunchydata.com/cluster": "extra-volumes",\n "postgres-operator.crunchydata.com/data": "postgres",\n "postgres-operator.crunchydata.com/instance": "extra-volumes-instance1-64h5",\n "postgres-operator.crunchydata.com/instance-set": "instance1"\n },\n "name": "extra-volumes-instance1-64h5",\n "namespace": "kuttl-test-central-quagga",\n "ownerReferences": [\n {\n "apiVersion": "upstream.pgv2.percona.com/v1beta1",\n "blockOwnerDeletion": true,\n "controller": true,\n "kind": "PostgresCluster",\n "name": "extra-volumes",\n "uid": "cd01aeaf-50df-49aa-8a8a-b2dcf5429808"\n }\n ],\n "resourceVersion": "1787236408110879020",\n "uid": "ba581077-f463-4e1a-a194-a89f51d3880c"\n },\n "spec": {\n "persistentVolumeClaimRetentionPolicy": {\n "whenDeleted": "Retain",\n "whenScaled": "Retain"\n },\n "podManagementPolicy": "OrderedReady",\n "replicas": 1,\n "revisionHistoryLimit": 0,\n "selector": {\n "matchLabels": {\n "postgres-operator.crunchydata.com/cluster": "extra-volumes",\n "postgres-operator.crunchydata.com/instance": "extra-volumes-instance1-64h5",\n "postgres-operator.crunchydata.com/instance-set": "instance1"\n }\n },\n "serviceName": "extra-volumes-pods",\n "template": {\n "metadata": {\n "annotations": {\n "kubectl.kubernetes.io/default-container": "database",\n "pgv2.percona.com/logcollector-config-hash": "d9a116e02b828bdc02165325e92799d82961fb499041814c7c765d0ce263ce77"\n },\n "creationTimestamp": null,\n "labels": {\n "app.kubernetes.io/component": "pg",\n "app.kubernetes.io/instance": "extra-volumes",\n "app.kubernetes.io/managed-by": "percona-postgresql-operator",\n "app.kubernetes.io/name": "percona-postgresql",\n "app.kubernetes.io/part-of": "percona-postgresql",\n "pgv2.percona.com/version": "3.1.0",\n "postgres-operator.crunchydata.com/cluster": "extra-volumes",\n "postgres-operator.crunchydata.com/data": "postgres",\n "postgres-operator.crunchydata.com/instance": "extra-volumes-instance1-64h5",\n "postgres-operator.crunchydata.com/instance-set": "instance1",\n "postgres-operator.crunchydata.com/patroni": "extra-volumes-ha"\n }\n },\n "spec": {\n "affinity": {\n "podAntiAffinity": {\n "preferredDuringSchedulingIgnoredDuringExecution": [\n {\n "podAffinityTerm": {\n "labelSelector": {\n "matchLabels": {\n "postgres-operator.crunchydata.com/data": "postgres"\n }\n },\n "topologyKey": "kubernetes.io/hostname"\n },\n "weight": 1\n }\n ]\n }\n },\n "containers": [\n {\n "command": [\n "/opt/crunchy/bin/postgres-entrypoint.sh",\n "patroni",\n "/etc/patroni"\n ],\n "env": [\n {\n "name": "PGDATA",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PGHOST",\n "value": "/tmp/postgres"\n },\n {\n "name": "PGPORT",\n "value": "5432"\n },\n {\n "name": "KRB5_CONFIG",\n "value": "/etc/postgres/krb5.conf"\n },\n {\n "name": "KRB5RCACHEDIR",\n "value": "/tmp"\n },\n {\n "name": "LDAPTLS_CACERT",\n "value": "/etc/postgres/ldap/ca.crt"\n },\n {\n "name": "LC_ALL",\n "value": "en_US.utf-8"\n },\n {\n "name": "LANG",\n "value": "en_US.utf-8"\n },\n {\n "name": "PATRONI_NAME",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.name"\n }\n }\n },\n {\n "name": "PATRONI_KUBERNETES_POD_IP",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "status.podIP"\n }\n }\n },\n {\n "name": "PATRONI_KUBERNETES_PORTS",\n "value": "- name: postgres\\n port: 5432\\n protocol: TCP\\n"\n },\n {\n "name": "PATRONI_POSTGRESQL_CONNECT_ADDRESS",\n "value": "$(PATRONI_NAME).extra-volumes-pods:5432"\n },\n {\n "name": "PATRONI_POSTGRESQL_LISTEN",\n "value": "*:5432"\n },\n {\n "name": "PATRONI_POSTGRESQL_CONFIG_DIR",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PATRONI_POSTGRESQL_DATA_DIR",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PATRONI_RESTAPI_CONNECT_ADDRESS",\n "value": "$(PATRONI_NAME).extra-volumes-pods:8008"\n },\n {\n "name": "PATRONI_RESTAPI_LISTEN",\n "value": "*:8008"\n },\n {\n "name": "PATRONICTL_CONFIG_FILE",\n "value": "/etc/patroni"\n },\n {\n "name": "LD_PRELOAD",\n "value": "/usr/lib64/libnss_wrapper.so"\n },\n {\n "name": "NSS_WRAPPER_PASSWD",\n "value": "/tmp/nss_wrapper/postgres/passwd"\n },\n {\n "name": "NSS_WRAPPER_GROUP",\n "value": "/tmp/nss_wrapper/postgres/group"\n }\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "livenessProbe": {\n "exec": {\n "command": [\n "bash",\n "-c",\n "/opt/crunchy/bin/postgres-liveness-check.sh"\n ]\n },\n "failureThreshold": 3,\n "initialDelaySeconds": 3,\n "periodSeconds": 10,\n "successThreshold": 1,\n "timeoutSeconds": 5\n },\n "name": "database",\n "ports": [\n {\n "containerPort": 5432,\n "name": "postgres",\n "protocol": "TCP"\n }\n ],\n "readinessProbe": {\n "exec": {\n "command": [\n "bash",\n "-c",\n "/opt/crunchy/bin/postgres-readiness-check.sh"\n ]\n },\n "failureThreshold": 3,\n "initialDelaySeconds": 3,\n "periodSeconds": 10,\n "successThreshold": 1,\n "timeoutSeconds": 5\n },\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgconf/tls",\n "name": "cert-volume",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/etc/database-containerinfo",\n "name": "database-containerinfo",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata/extra/dicts",\n "name": "fts-dicts",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata/extra/data",\n "name": "extra-data"\n },\n {\n "mountPath": "/etc/pgbackrest/conf.d",\n "name": "pgbackrest-config",\n "readOnly": true\n },\n {\n "mountPath": "/etc/patroni",\n "name": "patroni-config",\n "readOnly": true\n },\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n },\n {\n "mountPath": "/dev/shm",\n "name": "dshm"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-ceu",\n "--",\n "monitor() {\\n# Parameters for curl when managing autogrow annotation.\\nAPISERVER=\\"https://kubernetes.default.svc\\"\\nSERVICEACCOUNT=\\"/var/run/secrets/kubernetes.io/serviceaccount\\"\\nNAMESPACE=$(cat ${SERVICEACCOUNT}/namespace)\\nTOKEN=$(cat ${SERVICEACCOUNT}/token)\\nCACERT=${SERVICEACCOUNT}/ca.crt\\n\\ndeclare -r directory=\\"/pgconf/tls\\"\\nexec {fd}\\u003c\\u003e \\u003c(:||:)\\nwhile read -r -t 5 -u \\"${fd}\\" ||:; do\\n # Manage replication certificate.\\n if [[ \\"${directory}\\" -nt \\"/proc/self/fd/${fd}\\" ]] \\u0026\\u0026\\n install -D --mode=0600 -t \\"/tmp/replication\\" \\"${directory}\\"/{replication/tls.crt,replication/tls.key,replication/ca.crt} \\u0026\\u0026\\n pkill -HUP --exact --parent=1 postgres\\n then\\n exec {fd}\\u003e\\u0026- \\u0026\\u0026 exec {fd}\\u003c\\u003e \\u003c(:||:)\\n stat --format=\'Loaded certificates dated %y\' \\"${directory}\\"\\n fi\\n\\ndone\\n}; export -f monitor; exec -a \\"$0\\" bash -ceu monitor",\n "replication-cert-copy"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "replication-cert-copy",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgconf/tls",\n "name": "cert-volume",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "args": [\n "fluent-bit"\n ],\n "command": [\n "/opt/crunchy/logcollector/entrypoint.sh"\n ],\n "env": [\n {\n "name": "PG_LOG_DIR",\n "value": "/pgdata/pg18/log"\n },\n {\n "name": "PGBACKREST_LOG_DIR",\n "value": "/pgdata/pgbackrest/log"\n },\n {\n "name": "POD_NAMESPACE",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.namespace"\n }\n }\n },\n {\n "name": "POD_NAME",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.name"\n }\n }\n }\n ],\n "image": "docker.io/perconalab/fluentbit:main-logcollector",\n "imagePullPolicy": "IfNotPresent",\n "name": "logs",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "runAsGroup": 26,\n "runAsNonRoot": true,\n "runAsUser": 26,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "args": [\n "logrotate"\n ],\n "command": [\n "/opt/crunchy/logcollector/entrypoint.sh"\n ],\n "env": [\n {\n "name": "POD_NAMESPACE",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.namespace"\n }\n }\n },\n {\n "name": "POD_NAME",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.name"\n }\n }\n },\n {\n "name": "LOGROTATE_SCHEDULE",\n "value": "0 0 * * *"\n },\n {\n "name": "LD_PRELOAD",\n "value": "/tmp/nss_wrapper/libnss_wrapper.so"\n },\n {\n "name": "NSS_WRAPPER_PASSWD",\n "value": "/tmp/nss_wrapper/postgres/passwd"\n },\n {\n "name": "NSS_WRAPPER_GROUP",\n "value": "/tmp/nss_wrapper/postgres/group"\n }\n ],\n "image": "docker.io/perconalab/fluentbit:main-logcollector",\n "imagePullPolicy": "IfNotPresent",\n "name": "logrotate",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "runAsGroup": 26,\n "runAsNonRoot": true,\n "runAsUser": 26,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "pgbackrest",\n "server"\n ],\n "env": [\n {\n "name": "LD_PRELOAD",\n "value": "/usr/lib64/libnss_wrapper.so"\n },\n {\n "name": "NSS_WRAPPER_PASSWD",\n "value": "/tmp/nss_wrapper/postgres/passwd"\n },\n {\n "name": "NSS_WRAPPER_GROUP",\n "value": "/tmp/nss_wrapper/postgres/group"\n }\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18",\n "imagePullPolicy": "Always",\n "livenessProbe": {\n "exec": {\n "command": [\n "pgbackrest",\n "server-ping"\n ]\n },\n "failureThreshold": 3,\n "periodSeconds": 10,\n "successThreshold": 1,\n "timeoutSeconds": 1\n },\n "name": "pgbackrest",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/etc/pgbackrest/server",\n "name": "pgbackrest-server",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/etc/pgbackrest/conf.d",\n "name": "pgbackrest-config",\n "readOnly": true\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-ceu",\n "--",\n "monitor() {\\nexec {fd}\\u003c\\u003e \\u003c(:||:)\\nuntil read -r -t 5 -u \\"${fd}\\"; do\\n if\\n [[ \\"${filename}\\" -nt \\"/proc/self/fd/${fd}\\" ]] \\u0026\\u0026\\n pkill -HUP --exact --parent=0 pgbackrest\\n then\\n exec {fd}\\u003e\\u0026- \\u0026\\u0026 exec {fd}\\u003c\\u003e \\u003c(:||:)\\n stat --dereference --format=\'Loaded configuration dated %y\' \\"${filename}\\"\\n elif\\n { [[ \\"${directory}\\" -nt \\"/proc/self/fd/${fd}\\" ]] ||\\n [[ \\"${authority}\\" -nt \\"/proc/self/fd/${fd}\\" ]]\\n } \\u0026\\u0026\\n pkill -HUP --exact --parent=0 pgbackrest\\n then\\n exec {fd}\\u003e\\u0026- \\u0026\\u0026 exec {fd}\\u003c\\u003e \\u003c(:||:)\\n stat --format=\'Loaded certificates dated %y\' \\"${directory}\\"\\n fi\\ndone\\n}; export directory=\\"$1\\" authority=\\"$2\\" filename=\\"$3\\"; export -f monitor; exec -a \\"$0\\" bash -ceu monitor",\n "pgbackrest-config",\n "/etc/pgbackrest/server",\n "/etc/pgbackrest/conf.d/~postgres-operator/tls-ca.crt",\n "/etc/pgbackrest/conf.d/~postgres-operator_server.conf"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18",\n "imagePullPolicy": "Always",\n "name": "pgbackrest-config",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/etc/pgbackrest/server",\n "name": "pgbackrest-server",\n "readOnly": true\n },\n {\n "mountPath": "/etc/pgbackrest/conf.d",\n "name": "pgbackrest-config",\n "readOnly": true\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n }\n ],\n "dnsPolicy": "ClusterFirst",\n "enableServiceLinks": false,\n "initContainers": [\n {\n "command": [\n "/usr/local/bin/init-entrypoint.sh"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6",\n "imagePullPolicy": "Always",\n "name": "database-init",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-ceu",\n "--",\n "declare -r expected_major_version=\\"$1\\" pgwal_directory=\\"$2\\" pgbrLog_directory=\\"$3\\"\\npermissions() { while [[ -n \\"$1\\" ]]; do set \\"${1%/*}\\" \\"$@\\"; done; shift; stat -Lc \'%A %4u %4g %n\' \\"$@\\"; }\\nhalt() { local rc=$?; \\u003e\\u00262 echo \\"$@\\"; exit \\"${rc/#0/1}\\"; }\\nresults() { printf \'::postgres-operator: %s::%s\\\\n\' \\"$@\\"; }\\nrecreate() (\\n local tmp; tmp=$(mktemp -d -p \\"${1%/*}\\"); GLOBIGNORE=\'.:..\'; set -x\\n chmod \\"$2\\" \\"${tmp}\\"; mv \\"$1\\"/* \\"${tmp}\\"; rmdir \\"$1\\"; mv \\"${tmp}\\" \\"$1\\"\\n)\\nsafelink() (\\n local desired=\\"$1\\" name=\\"$2\\" current\\n current=$(realpath \\"${name}\\")\\n if [[ \\"${current}\\" == \\"${desired}\\" ]]; then return; fi\\n set -x; mv --no-target-directory \\"${current}\\" \\"${desired}\\"\\n ln --no-dereference --force --symbolic \\"${desired}\\" \\"${name}\\"\\n)\\necho Initializing ...\\nresults \'uid\' \\"$(id -u ||:)\\" \'gid\' \\"$(id -G ||:)\\"\\nif [[ \\"${pgwal_directory}\\" == *\\"pgwal/\\"* ]] \\u0026\\u0026 [[ ! -d \\"/pgwal/pgbackrest-spool\\" ]];then rm -rf \\"/pgdata/pgbackrest-spool\\" \\u0026\\u0026 mkdir -p \\"/pgwal/pgbackrest-spool\\" \\u0026\\u0026 ln --force --symbolic \\"/pgwal/pgbackrest-spool\\" \\"/pgdata/pgbackrest-spool\\";fi\\nif [[ ! -e \\"/pgdata/pgbackrest-spool\\" ]];then rm -rf /pgdata/pgbackrest-spool;fi\\nresults \'postgres path\' \\"$(command -v postgres ||:)\\"\\nresults \'postgres version\' \\"${postgres_version:=$(postgres --version ||:)}\\"\\n[[ \\"${postgres_version}\\" =~ \\") ${expected_major_version}\\"($|[^0-9]) ]] ||\\nhalt Expected PostgreSQL version \\"${expected_major_version}\\"\\nresults \'config directory\' \\"${PGDATA:?}\\"\\npostgres_data_directory=$([[ -d \\"${PGDATA}\\" ]] \\u0026\\u0026 postgres -C data_directory || echo \\"${PGDATA}\\")\\nresults \'data directory\' \\"${postgres_data_directory}\\"\\n[[ \\"${postgres_data_directory}\\" == \\"${PGDATA}\\" ]] ||\\nhalt Expected matching config and data directories\\nbootstrap_dir=\\"${postgres_data_directory}_bootstrap\\"\\n[[ -d \\"${bootstrap_dir}\\" ]] \\u0026\\u0026 results \'bootstrap directory\' \\"${bootstrap_dir}\\"\\n[[ -d \\"${bootstrap_dir}\\" ]] \\u0026\\u0026 postgres_data_directory=\\"${bootstrap_dir}\\"\\nif [[ ! -e \\"${postgres_data_directory}\\" || -O \\"${postgres_data_directory}\\" ]]; then\\ninstall --directory --mode=0700 \\"${postgres_data_directory}\\"\\nelif [[ -w \\"${postgres_data_directory}\\" \\u0026\\u0026 -g \\"${postgres_data_directory}\\" ]]; then\\nrecreate \\"${postgres_data_directory}\\" \'0700\'\\nelse (halt Permissions!); fi ||\\nhalt \\"$(permissions \\"${postgres_data_directory}\\" ||:)\\"\\nresults \'pgBackRest log directory\' \\"${pgbrLog_directory}\\"\\ninstall --directory --mode=0775 \\"${pgbrLog_directory}\\" ||\\nhalt \\"$(permissions \\"${pgbrLog_directory}\\" ||:)\\"\\ninstall -D --mode=0600 -t \\"/tmp/replication\\" \\"/pgconf/tls/replication\\"/{tls.crt,tls.key,ca.crt}\\n\\n[[ -f \\"${postgres_data_directory}/PG_VERSION\\" ]] || exit 0\\nresults \'data version\' \\"${postgres_data_version:=$(\\u003c \\"${postgres_data_directory}/PG_VERSION\\")}\\"\\n[[ \\"${postgres_data_version}\\" == \\"${expected_major_version}\\" ]] ||\\nhalt Expected PostgreSQL data version \\"${expected_major_version}\\"\\n[[ ! -f \\"${postgres_data_directory}/postgresql.conf\\" ]] \\u0026\\u0026\\ntouch \\"${postgres_data_directory}/postgresql.conf\\"\\nsafelink \\"${pgwal_directory}\\" \\"${postgres_data_directory}/pg_wal\\"\\nresults \'wal directory\' \\"$(realpath \\"${postgres_data_directory}/pg_wal\\" ||:)\\"\\nrm -f \\"${postgres_data_directory}/recovery.signal\\"",\n "startup",\n "18",\n "/pgdata/pg18_wal",\n "/pgdata/pgbackrest/log"\n ],\n "env": [\n {\n "name": "PGDATA",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PGHOST",\n "value": "/tmp/postgres"\n },\n {\n "name": "PGPORT",\n "value": "5432"\n },\n {\n "name": "KRB5_CONFIG",\n "value": "/etc/postgres/krb5.conf"\n },\n {\n "name": "KRB5RCACHEDIR",\n "value": "/tmp"\n },\n {\n "name": "LDAPTLS_CACERT",\n "value": "/etc/postgres/ldap/ca.crt"\n },\n {\n "name": "LC_ALL",\n "value": "en_US.utf-8"\n },\n {\n "name": "LANG",\n "value": "en_US.utf-8"\n }\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "postgres-startup",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgconf/tls",\n "name": "cert-volume",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-c",\n "mkdir -p /tmp/nss_wrapper \\u0026\\u0026 { [[ -f /tmp/nss_wrapper/libnss_wrapper.so ]] || cp /usr/lib64/libnss_wrapper.so /tmp/nss_wrapper/libnss_wrapper.so; }"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "nss-wrapper-init-logcollector",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "runAsGroup": 26,\n "runAsNonRoot": true,\n "runAsUser": 26,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-c",\n "export NSS_WRAPPER_SUBDIR=postgres CRUNCHY_NSS_USERNAME=postgres CRUNCHY_NSS_USER_DESC=\\"postgres\\" \\n# Define nss_wrapper directory and passwd \\u0026 group files that will be utilized by nss_wrapper. The\\n# nss_wrapper_env.sh script (which also sets these vars) isn\'t sourced here since the nss_wrapper\\n# has not yet been setup, and we therefore don\'t yet want the nss_wrapper vars in the environment.\\nmkdir -p /tmp/nss_wrapper\\nchmod g+rwx /tmp/nss_wrapper\\n\\nNSS_WRAPPER_DIR=\\"/tmp/nss_wrapper/${NSS_WRAPPER_SUBDIR}\\"\\nNSS_WRAPPER_PASSWD=\\"${NSS_WRAPPER_DIR}/passwd\\"\\nNSS_WRAPPER_GROUP=\\"${NSS_WRAPPER_DIR}/group\\"\\n\\n# create the nss_wrapper directory\\nmkdir -p \\"${NSS_WRAPPER_DIR}\\"\\n\\n# grab the current user ID and group ID\\nUSER_ID=$(id -u)\\nexport USER_ID\\nGROUP_ID=$(id -g)\\nexport GROUP_ID\\n\\n# get copies of the passwd and group files\\n[[ -f \\"${NSS_WRAPPER_PASSWD}\\" ]] || cp \\"/etc/passwd\\" \\"${NSS_WRAPPER_PASSWD}\\"\\n[[ -f \\"${NSS_WRAPPER_GROUP}\\" ]] || cp \\"/etc/group\\" \\"${NSS_WRAPPER_GROUP}\\"\\n\\n# if the username is missing from the passwd file, then add it\\nif [[ ! $(cat \\"${NSS_WRAPPER_PASSWD}\\") =~ ${CRUNCHY_NSS_USERNAME}:x:${USER_ID} ]]; then\\n echo \\"nss_wrapper: adding user\\"\\n passwd_tmp=\\"${NSS_WRAPPER_DIR}/passwd_tmp\\"\\n cp \\"${NSS_WRAPPER_PASSWD}\\" \\"${passwd_tmp}\\"\\n sed -i \\"/${CRUNCHY_NSS_USERNAME}:x:/d\\" \\"${passwd_tmp}\\"\\n # needed for OCP 4.x because crio updates /etc/passwd with an entry for USER_ID\\n sed -i \\"/${USER_ID}:x:/d\\" \\"${passwd_tmp}\\"\\n printf \'${CRUNCHY_NSS_USERNAME}:x:${USER_ID}:${GROUP_ID}:${CRUNCHY_NSS_USER_DESC}:${HOME}:/bin/bash\\\\n\' \\u003e\\u003e \\"${passwd_tmp}\\"\\n envsubst \\u003c \\"${passwd_tmp}\\" \\u003e \\"${NSS_WRAPPER_PASSWD}\\"\\n rm \\"${passwd_tmp}\\"\\nelse\\n echo \\"nss_wrapper: user exists\\"\\nfi\\n\\n# if the username (which will be the same as the group name) is missing from group file, then add it\\nif [[ ! $(cat \\"${NSS_WRAPPER_GROUP}\\") =~ ${CRUNCHY_NSS_USERNAME}:x:${USER_ID} ]]; then\\n echo \\"nss_wrapper: adding group\\"\\n group_tmp=\\"${NSS_WRAPPER_DIR}/group_tmp\\"\\n cp \\"${NSS_WRAPPER_GROUP}\\" \\"${group_tmp}\\"\\n sed -i \\"/${CRUNCHY_NSS_USERNAME}:x:/d\\" \\"${group_tmp}\\"\\n printf \'${CRUNCHY_NSS_USERNAME}:x:${USER_ID}:${CRUNCHY_NSS_USERNAME}\\\\n\' \\u003e\\u003e \\"${group_tmp}\\"\\n envsubst \\u003c \\"${group_tmp}\\" \\u003e \\"${NSS_WRAPPER_GROUP}\\"\\n rm \\"${group_tmp}\\"\\nelse\\n echo \\"nss_wrapper: group exists\\"\\nfi\\n\\n# export the nss_wrapper env vars\\n# define nss_wrapper directory and passwd \\u0026 group files that will be utilized by nss_wrapper\\nNSS_WRAPPER_DIR=\\"/tmp/nss_wrapper/${NSS_WRAPPER_SUBDIR}\\"\\nNSS_WRAPPER_PASSWD=\\"${NSS_WRAPPER_DIR}/passwd\\"\\nNSS_WRAPPER_GROUP=\\"${NSS_WRAPPER_DIR}/group\\"\\n\\nexport LD_PRELOAD=/usr/lib64/libnss_wrapper.so\\nexport NSS_WRAPPER_PASSWD=\\"${NSS_WRAPPER_PASSWD}\\"\\nexport NSS_WRAPPER_GROUP=\\"${NSS_WRAPPER_GROUP}\\"\\n\\necho \\"nss_wrapper: environment configured\\"\\n"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "nss-wrapper-init",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n }\n ],\n "restartPolicy": "Always",\n "schedulerName": "default-scheduler",\n "securityContext": {\n "fsGroup": 26,\n "fsGroupChangePolicy": "OnRootMismatch"\n },\n "serviceAccount": "extra-volumes-instance",\n "serviceAccountName": "extra-volumes-instance",\n "shareProcessNamespace": true,\n "terminationGracePeriodSeconds": 30,\n "topologySpreadConstraints": [\n {\n "labelSelector": {\n "matchExpressions": [\n {\n "key": "postgres-operator.crunchydata.com/data",\n "operator": "In",\n "values": [\n "postgres",\n "pgbackrest"\n ]\n }\n ],\n "matchLabels": {\n "postgres-operator.crunchydata.com/cluster": "extra-volumes"\n }\n },\n "maxSkew": 1,\n "topologyKey": "kubernetes.io/hostname",\n "whenUnsatisfiable": "ScheduleAnyway"\n },\n {\n "labelSelector": {\n "matchExpressions": [\n {\n "key": "postgres-operator.crunchydata.com/data",\n "operator": "In",\n "values": [\n "postgres",\n "pgbackrest"\n ]\n }\n ],\n "matchLabels": {\n "postgres-operator.crunchydata.com/cluster": "extra-volumes"\n }\n },\n "maxSkew": 1,\n "topologyKey": "topology.kubernetes.io/zone",\n "whenUnsatisfiable": "ScheduleAnyway"\n }\n ],\n "volumes": [\n {\n "name": "cert-volume",\n "projected": {\n "defaultMode": 384,\n "sources": [\n {\n "secret": {\n "items": [\n {\n "key": "tls.crt",\n "path": "tls.crt"\n },\n {\n "key": "tls.key",\n "path": "tls.key"\n },\n {\n "key": "ca.crt",\n "path": "ca.crt"\n }\n ],\n "name": "extra-volumes-cluster-cert"\n }\n },\n {\n "secret": {\n "items": [\n {\n "key": "tls.crt",\n "path": "replication/tls.crt"\n },\n {\n "key": "tls.key",\n "path": "replication/tls.key"\n },\n {\n "key": "ca.crt",\n "path": "replication/ca.crt"\n }\n ],\n "name": "extra-volumes-replication-cert"\n }\n }\n ]\n }\n },\n {\n "name": "postgres-data",\n "persistentVolumeClaim": {\n "claimName": "extra-volumes-instance1-64h5-pgdata"\n }\n },\n {\n "downwardAPI": {\n "defaultMode": 420,\n "items": [\n {\n "path": "cpu_limit",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1m",\n "resource": "limits.cpu"\n }\n },\n {\n "path": "cpu_request",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1m",\n "resource": "requests.cpu"\n }\n },\n {\n "path": "mem_limit",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1Mi",\n "resource": "limits.memory"\n }\n },\n {\n "path": "mem_request",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1Mi",\n "resource": "requests.memory"\n }\n },\n {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.labels"\n },\n "path": "labels"\n },\n {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.annotations"\n },\n "path": "annotations"\n }\n ]\n },\n "name": "database-containerinfo"\n },\n {\n "configMap": {\n "defaultMode": 420,\n "name": "extra-dicts"\n },\n "name": "fts-dicts"\n },\n {\n "emptyDir": {},\n "name": "extra-data"\n },\n {\n "name": "pgbackrest-server",\n "projected": {\n "defaultMode": 420,\n "sources": [\n {\n "secret": {\n "items": [\n {\n "key": "pgbackrest-server.crt",\n "path": "server-tls.crt"\n },\n {\n "key": "pgbackrest-server.key",\n "mode": 384,\n "path": "server-tls.key"\n }\n ],\n "name": "extra-volumes-instance1-64h5-certs"\n }\n }\n ]\n }\n },\n {\n "name": "pgbackrest-config",\n "projected": {\n "defaultMode": 420,\n "sources": [\n {\n "configMap": {\n "items": [\n {\n "key": "pgbackrest_instance.conf",\n "path": "pgbackrest_instance.conf"\n },\n {\n "key": "config-hash",\n "path": "config-hash"\n },\n {\n "key": "pgbackrest-server.conf",\n "path": "~postgres-operator_server.conf"\n }\n ],\n "name": "extra-volumes-pgbackrest-config"\n }\n },\n {\n "secret": {\n "items": [\n {\n "key": "pgbackrest.ca-roots",\n "path": "~postgres-operator/tls-ca.crt"\n },\n {\n "key": "pgbackrest-client.crt",\n "path": "~postgres-operator/client-tls.crt"\n },\n {\n "key": "pgbackrest-client.key",\n "mode": 384,\n "path": "~postgres-operator/client-tls.key"\n }\n ],\n "name": "extra-volumes-pgbackrest"\n }\n }\n ]\n }\n },\n {\n "name": "patroni-config",\n "projected": {\n "defaultMode": 420,\n "sources": [\n {\n "configMap": {\n "items": [\n {\n "key": "patroni.yaml",\n "path": "~postgres-operator_cluster.yaml"\n }\n ],\n "name": "extra-volumes-config"\n }\n },\n {\n "configMap": {\n "items": [\n {\n "key": "patroni.yaml",\n "path": "~postgres-operator_instance.yaml"\n }\n ],\n "name": "extra-volumes-instance1-64h5-config"\n }\n },\n {\n "secret": {\n "items": [\n {\n "key": "patroni.ca-roots",\n "path": "~postgres-operator/patroni.ca-roots"\n },\n {\n "key": "patroni.crt-combined",\n "path": "~postgres-operator/patroni.crt+key"\n }\n ],\n "name": "extra-volumes-instance1-64h5-certs"\n }\n }\n ]\n }\n },\n {\n "emptyDir": {},\n "name": "crunchy-bin"\n },\n {\n "emptyDir": {\n "sizeLimit": "2Gi"\n },\n "name": "tmp"\n },\n {\n "emptyDir": {\n "medium": "Memory"\n },\n "name": "dshm"\n }\n ]\n }\n },\n "updateStrategy": {\n "type": "OnDelete"\n }\n },\n "status": {\n "availableReplicas": 1,\n "collisionCount": 0,\n "currentReplicas": 1,\n "currentRevision": "extra-volumes-instance1-64h5-5945964768",\n "observedGeneration": 1,\n "readyReplicas": 1,\n "replicas": 1,\n "updateRevision": "extra-volumes-instance1-64h5-5945964768",\n "updatedReplicas": 1\n }\n }\n ],\n "kind": "List",\n "metadata": {\n "resourceVersion": ""\n }\n}' logger.go:42: 14:33:44 | extra-volumes/2-verify-volumes | + jq -e $'.items[0].spec.template.spec.containers[]\n | select(.name == "database") | .volumeMounts[]\n | select(.mountPath == "/pgdata/extra/dicts") | select(.readOnly == true)' logger.go:42: 14:33:44 | extra-volumes/2-verify-volumes | + printf '%s\n' $'{\n "apiVersion": "v1",\n "items": [\n {\n "apiVersion": "apps/v1",\n "kind": "StatefulSet",\n "metadata": {\n "annotations": {\n "pgv2.percona.com/logcollector-config-hash": "d9a116e02b828bdc02165325e92799d82961fb499041814c7c765d0ce263ce77"\n },\n "creationTimestamp": "2026-08-20T14:33:02Z",\n "generation": 1,\n "labels": {\n "app.kubernetes.io/component": "pg",\n "app.kubernetes.io/instance": "extra-volumes",\n "app.kubernetes.io/managed-by": "percona-postgresql-operator",\n "app.kubernetes.io/name": "percona-postgresql",\n "app.kubernetes.io/part-of": "percona-postgresql",\n "pgv2.percona.com/version": "3.1.0",\n "postgres-operator.crunchydata.com/cluster": "extra-volumes",\n "postgres-operator.crunchydata.com/data": "postgres",\n "postgres-operator.crunchydata.com/instance": "extra-volumes-instance1-64h5",\n "postgres-operator.crunchydata.com/instance-set": "instance1"\n },\n "name": "extra-volumes-instance1-64h5",\n "namespace": "kuttl-test-central-quagga",\n "ownerReferences": [\n {\n "apiVersion": "upstream.pgv2.percona.com/v1beta1",\n "blockOwnerDeletion": true,\n "controller": true,\n "kind": "PostgresCluster",\n "name": "extra-volumes",\n "uid": "cd01aeaf-50df-49aa-8a8a-b2dcf5429808"\n }\n ],\n "resourceVersion": "1787236408110879020",\n "uid": "ba581077-f463-4e1a-a194-a89f51d3880c"\n },\n "spec": {\n "persistentVolumeClaimRetentionPolicy": {\n "whenDeleted": "Retain",\n "whenScaled": "Retain"\n },\n "podManagementPolicy": "OrderedReady",\n "replicas": 1,\n "revisionHistoryLimit": 0,\n "selector": {\n "matchLabels": {\n "postgres-operator.crunchydata.com/cluster": "extra-volumes",\n "postgres-operator.crunchydata.com/instance": "extra-volumes-instance1-64h5",\n "postgres-operator.crunchydata.com/instance-set": "instance1"\n }\n },\n "serviceName": "extra-volumes-pods",\n "template": {\n "metadata": {\n "annotations": {\n "kubectl.kubernetes.io/default-container": "database",\n "pgv2.percona.com/logcollector-config-hash": "d9a116e02b828bdc02165325e92799d82961fb499041814c7c765d0ce263ce77"\n },\n "creationTimestamp": null,\n "labels": {\n "app.kubernetes.io/component": "pg",\n "app.kubernetes.io/instance": "extra-volumes",\n "app.kubernetes.io/managed-by": "percona-postgresql-operator",\n "app.kubernetes.io/name": "percona-postgresql",\n "app.kubernetes.io/part-of": "percona-postgresql",\n "pgv2.percona.com/version": "3.1.0",\n "postgres-operator.crunchydata.com/cluster": "extra-volumes",\n "postgres-operator.crunchydata.com/data": "postgres",\n "postgres-operator.crunchydata.com/instance": "extra-volumes-instance1-64h5",\n "postgres-operator.crunchydata.com/instance-set": "instance1",\n "postgres-operator.crunchydata.com/patroni": "extra-volumes-ha"\n }\n },\n "spec": {\n "affinity": {\n "podAntiAffinity": {\n "preferredDuringSchedulingIgnoredDuringExecution": [\n {\n "podAffinityTerm": {\n "labelSelector": {\n "matchLabels": {\n "postgres-operator.crunchydata.com/data": "postgres"\n }\n },\n "topologyKey": "kubernetes.io/hostname"\n },\n "weight": 1\n }\n ]\n }\n },\n "containers": [\n {\n "command": [\n "/opt/crunchy/bin/postgres-entrypoint.sh",\n "patroni",\n "/etc/patroni"\n ],\n "env": [\n {\n "name": "PGDATA",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PGHOST",\n "value": "/tmp/postgres"\n },\n {\n "name": "PGPORT",\n "value": "5432"\n },\n {\n "name": "KRB5_CONFIG",\n "value": "/etc/postgres/krb5.conf"\n },\n {\n "name": "KRB5RCACHEDIR",\n "value": "/tmp"\n },\n {\n "name": "LDAPTLS_CACERT",\n "value": "/etc/postgres/ldap/ca.crt"\n },\n {\n "name": "LC_ALL",\n "value": "en_US.utf-8"\n },\n {\n "name": "LANG",\n "value": "en_US.utf-8"\n },\n {\n "name": "PATRONI_NAME",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.name"\n }\n }\n },\n {\n "name": "PATRONI_KUBERNETES_POD_IP",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "status.podIP"\n }\n }\n },\n {\n "name": "PATRONI_KUBERNETES_PORTS",\n "value": "- name: postgres\\n port: 5432\\n protocol: TCP\\n"\n },\n {\n "name": "PATRONI_POSTGRESQL_CONNECT_ADDRESS",\n "value": "$(PATRONI_NAME).extra-volumes-pods:5432"\n },\n {\n "name": "PATRONI_POSTGRESQL_LISTEN",\n "value": "*:5432"\n },\n {\n "name": "PATRONI_POSTGRESQL_CONFIG_DIR",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PATRONI_POSTGRESQL_DATA_DIR",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PATRONI_RESTAPI_CONNECT_ADDRESS",\n "value": "$(PATRONI_NAME).extra-volumes-pods:8008"\n },\n {\n "name": "PATRONI_RESTAPI_LISTEN",\n "value": "*:8008"\n },\n {\n "name": "PATRONICTL_CONFIG_FILE",\n "value": "/etc/patroni"\n },\n {\n "name": "LD_PRELOAD",\n "value": "/usr/lib64/libnss_wrapper.so"\n },\n {\n "name": "NSS_WRAPPER_PASSWD",\n "value": "/tmp/nss_wrapper/postgres/passwd"\n },\n {\n "name": "NSS_WRAPPER_GROUP",\n "value": "/tmp/nss_wrapper/postgres/group"\n }\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "livenessProbe": {\n "exec": {\n "command": [\n "bash",\n "-c",\n "/opt/crunchy/bin/postgres-liveness-check.sh"\n ]\n },\n "failureThreshold": 3,\n "initialDelaySeconds": 3,\n "periodSeconds": 10,\n "successThreshold": 1,\n "timeoutSeconds": 5\n },\n "name": "database",\n "ports": [\n {\n "containerPort": 5432,\n "name": "postgres",\n "protocol": "TCP"\n }\n ],\n "readinessProbe": {\n "exec": {\n "command": [\n "bash",\n "-c",\n "/opt/crunchy/bin/postgres-readiness-check.sh"\n ]\n },\n "failureThreshold": 3,\n "initialDelaySeconds": 3,\n "periodSeconds": 10,\n "successThreshold": 1,\n "timeoutSeconds": 5\n },\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgconf/tls",\n "name": "cert-volume",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/etc/database-containerinfo",\n "name": "database-containerinfo",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata/extra/dicts",\n "name": "fts-dicts",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata/extra/data",\n "name": "extra-data"\n },\n {\n "mountPath": "/etc/pgbackrest/conf.d",\n "name": "pgbackrest-config",\n "readOnly": true\n },\n {\n "mountPath": "/etc/patroni",\n "name": "patroni-config",\n "readOnly": true\n },\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n },\n {\n "mountPath": "/dev/shm",\n "name": "dshm"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-ceu",\n "--",\n "monitor() {\\n# Parameters for curl when managing autogrow annotation.\\nAPISERVER=\\"https://kubernetes.default.svc\\"\\nSERVICEACCOUNT=\\"/var/run/secrets/kubernetes.io/serviceaccount\\"\\nNAMESPACE=$(cat ${SERVICEACCOUNT}/namespace)\\nTOKEN=$(cat ${SERVICEACCOUNT}/token)\\nCACERT=${SERVICEACCOUNT}/ca.crt\\n\\ndeclare -r directory=\\"/pgconf/tls\\"\\nexec {fd}\\u003c\\u003e \\u003c(:||:)\\nwhile read -r -t 5 -u \\"${fd}\\" ||:; do\\n # Manage replication certificate.\\n if [[ \\"${directory}\\" -nt \\"/proc/self/fd/${fd}\\" ]] \\u0026\\u0026\\n install -D --mode=0600 -t \\"/tmp/replication\\" \\"${directory}\\"/{replication/tls.crt,replication/tls.key,replication/ca.crt} \\u0026\\u0026\\n pkill -HUP --exact --parent=1 postgres\\n then\\n exec {fd}\\u003e\\u0026- \\u0026\\u0026 exec {fd}\\u003c\\u003e \\u003c(:||:)\\n stat --format=\'Loaded certificates dated %y\' \\"${directory}\\"\\n fi\\n\\ndone\\n}; export -f monitor; exec -a \\"$0\\" bash -ceu monitor",\n "replication-cert-copy"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "replication-cert-copy",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgconf/tls",\n "name": "cert-volume",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "args": [\n "fluent-bit"\n ],\n "command": [\n "/opt/crunchy/logcollector/entrypoint.sh"\n ],\n "env": [\n {\n "name": "PG_LOG_DIR",\n "value": "/pgdata/pg18/log"\n },\n {\n "name": "PGBACKREST_LOG_DIR",\n "value": "/pgdata/pgbackrest/log"\n },\n {\n "name": "POD_NAMESPACE",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.namespace"\n }\n }\n },\n {\n "name": "POD_NAME",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.name"\n }\n }\n }\n ],\n "image": "docker.io/perconalab/fluentbit:main-logcollector",\n "imagePullPolicy": "IfNotPresent",\n "name": "logs",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "runAsGroup": 26,\n "runAsNonRoot": true,\n "runAsUser": 26,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "args": [\n "logrotate"\n ],\n "command": [\n "/opt/crunchy/logcollector/entrypoint.sh"\n ],\n "env": [\n {\n "name": "POD_NAMESPACE",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.namespace"\n }\n }\n },\n {\n "name": "POD_NAME",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.name"\n }\n }\n },\n {\n "name": "LOGROTATE_SCHEDULE",\n "value": "0 0 * * *"\n },\n {\n "name": "LD_PRELOAD",\n "value": "/tmp/nss_wrapper/libnss_wrapper.so"\n },\n {\n "name": "NSS_WRAPPER_PASSWD",\n "value": "/tmp/nss_wrapper/postgres/passwd"\n },\n {\n "name": "NSS_WRAPPER_GROUP",\n "value": "/tmp/nss_wrapper/postgres/group"\n }\n ],\n "image": "docker.io/perconalab/fluentbit:main-logcollector",\n "imagePullPolicy": "IfNotPresent",\n "name": "logrotate",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "runAsGroup": 26,\n "runAsNonRoot": true,\n "runAsUser": 26,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "pgbackrest",\n "server"\n ],\n "env": [\n {\n "name": "LD_PRELOAD",\n "value": "/usr/lib64/libnss_wrapper.so"\n },\n {\n "name": "NSS_WRAPPER_PASSWD",\n "value": "/tmp/nss_wrapper/postgres/passwd"\n },\n {\n "name": "NSS_WRAPPER_GROUP",\n "value": "/tmp/nss_wrapper/postgres/group"\n }\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18",\n "imagePullPolicy": "Always",\n "livenessProbe": {\n "exec": {\n "command": [\n "pgbackrest",\n "server-ping"\n ]\n },\n "failureThreshold": 3,\n "periodSeconds": 10,\n "successThreshold": 1,\n "timeoutSeconds": 1\n },\n "name": "pgbackrest",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/etc/pgbackrest/server",\n "name": "pgbackrest-server",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/etc/pgbackrest/conf.d",\n "name": "pgbackrest-config",\n "readOnly": true\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-ceu",\n "--",\n "monitor() {\\nexec {fd}\\u003c\\u003e \\u003c(:||:)\\nuntil read -r -t 5 -u \\"${fd}\\"; do\\n if\\n [[ \\"${filename}\\" -nt \\"/proc/self/fd/${fd}\\" ]] \\u0026\\u0026\\n pkill -HUP --exact --parent=0 pgbackrest\\n then\\n exec {fd}\\u003e\\u0026- \\u0026\\u0026 exec {fd}\\u003c\\u003e \\u003c(:||:)\\n stat --dereference --format=\'Loaded configuration dated %y\' \\"${filename}\\"\\n elif\\n { [[ \\"${directory}\\" -nt \\"/proc/self/fd/${fd}\\" ]] ||\\n [[ \\"${authority}\\" -nt \\"/proc/self/fd/${fd}\\" ]]\\n } \\u0026\\u0026\\n pkill -HUP --exact --parent=0 pgbackrest\\n then\\n exec {fd}\\u003e\\u0026- \\u0026\\u0026 exec {fd}\\u003c\\u003e \\u003c(:||:)\\n stat --format=\'Loaded certificates dated %y\' \\"${directory}\\"\\n fi\\ndone\\n}; export directory=\\"$1\\" authority=\\"$2\\" filename=\\"$3\\"; export -f monitor; exec -a \\"$0\\" bash -ceu monitor",\n "pgbackrest-config",\n "/etc/pgbackrest/server",\n "/etc/pgbackrest/conf.d/~postgres-operator/tls-ca.crt",\n "/etc/pgbackrest/conf.d/~postgres-operator_server.conf"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18",\n "imagePullPolicy": "Always",\n "name": "pgbackrest-config",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/etc/pgbackrest/server",\n "name": "pgbackrest-server",\n "readOnly": true\n },\n {\n "mountPath": "/etc/pgbackrest/conf.d",\n "name": "pgbackrest-config",\n "readOnly": true\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n }\n ],\n "dnsPolicy": "ClusterFirst",\n "enableServiceLinks": false,\n "initContainers": [\n {\n "command": [\n "/usr/local/bin/init-entrypoint.sh"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6",\n "imagePullPolicy": "Always",\n "name": "database-init",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-ceu",\n "--",\n "declare -r expected_major_version=\\"$1\\" pgwal_directory=\\"$2\\" pgbrLog_directory=\\"$3\\"\\npermissions() { while [[ -n \\"$1\\" ]]; do set \\"${1%/*}\\" \\"$@\\"; done; shift; stat -Lc \'%A %4u %4g %n\' \\"$@\\"; }\\nhalt() { local rc=$?; \\u003e\\u00262 echo \\"$@\\"; exit \\"${rc/#0/1}\\"; }\\nresults() { printf \'::postgres-operator: %s::%s\\\\n\' \\"$@\\"; }\\nrecreate() (\\n local tmp; tmp=$(mktemp -d -p \\"${1%/*}\\"); GLOBIGNORE=\'.:..\'; set -x\\n chmod \\"$2\\" \\"${tmp}\\"; mv \\"$1\\"/* \\"${tmp}\\"; rmdir \\"$1\\"; mv \\"${tmp}\\" \\"$1\\"\\n)\\nsafelink() (\\n local desired=\\"$1\\" name=\\"$2\\" current\\n current=$(realpath \\"${name}\\")\\n if [[ \\"${current}\\" == \\"${desired}\\" ]]; then return; fi\\n set -x; mv --no-target-directory \\"${current}\\" \\"${desired}\\"\\n ln --no-dereference --force --symbolic \\"${desired}\\" \\"${name}\\"\\n)\\necho Initializing ...\\nresults \'uid\' \\"$(id -u ||:)\\" \'gid\' \\"$(id -G ||:)\\"\\nif [[ \\"${pgwal_directory}\\" == *\\"pgwal/\\"* ]] \\u0026\\u0026 [[ ! -d \\"/pgwal/pgbackrest-spool\\" ]];then rm -rf \\"/pgdata/pgbackrest-spool\\" \\u0026\\u0026 mkdir -p \\"/pgwal/pgbackrest-spool\\" \\u0026\\u0026 ln --force --symbolic \\"/pgwal/pgbackrest-spool\\" \\"/pgdata/pgbackrest-spool\\";fi\\nif [[ ! -e \\"/pgdata/pgbackrest-spool\\" ]];then rm -rf /pgdata/pgbackrest-spool;fi\\nresults \'postgres path\' \\"$(command -v postgres ||:)\\"\\nresults \'postgres version\' \\"${postgres_version:=$(postgres --version ||:)}\\"\\n[[ \\"${postgres_version}\\" =~ \\") ${expected_major_version}\\"($|[^0-9]) ]] ||\\nhalt Expected PostgreSQL version \\"${expected_major_version}\\"\\nresults \'config directory\' \\"${PGDATA:?}\\"\\npostgres_data_directory=$([[ -d \\"${PGDATA}\\" ]] \\u0026\\u0026 postgres -C data_directory || echo \\"${PGDATA}\\")\\nresults \'data directory\' \\"${postgres_data_directory}\\"\\n[[ \\"${postgres_data_directory}\\" == \\"${PGDATA}\\" ]] ||\\nhalt Expected matching config and data directories\\nbootstrap_dir=\\"${postgres_data_directory}_bootstrap\\"\\n[[ -d \\"${bootstrap_dir}\\" ]] \\u0026\\u0026 results \'bootstrap directory\' \\"${bootstrap_dir}\\"\\n[[ -d \\"${bootstrap_dir}\\" ]] \\u0026\\u0026 postgres_data_directory=\\"${bootstrap_dir}\\"\\nif [[ ! -e \\"${postgres_data_directory}\\" || -O \\"${postgres_data_directory}\\" ]]; then\\ninstall --directory --mode=0700 \\"${postgres_data_directory}\\"\\nelif [[ -w \\"${postgres_data_directory}\\" \\u0026\\u0026 -g \\"${postgres_data_directory}\\" ]]; then\\nrecreate \\"${postgres_data_directory}\\" \'0700\'\\nelse (halt Permissions!); fi ||\\nhalt \\"$(permissions \\"${postgres_data_directory}\\" ||:)\\"\\nresults \'pgBackRest log directory\' \\"${pgbrLog_directory}\\"\\ninstall --directory --mode=0775 \\"${pgbrLog_directory}\\" ||\\nhalt \\"$(permissions \\"${pgbrLog_directory}\\" ||:)\\"\\ninstall -D --mode=0600 -t \\"/tmp/replication\\" \\"/pgconf/tls/replication\\"/{tls.crt,tls.key,ca.crt}\\n\\n[[ -f \\"${postgres_data_directory}/PG_VERSION\\" ]] || exit 0\\nresults \'data version\' \\"${postgres_data_version:=$(\\u003c \\"${postgres_data_directory}/PG_VERSION\\")}\\"\\n[[ \\"${postgres_data_version}\\" == \\"${expected_major_version}\\" ]] ||\\nhalt Expected PostgreSQL data version \\"${expected_major_version}\\"\\n[[ ! -f \\"${postgres_data_directory}/postgresql.conf\\" ]] \\u0026\\u0026\\ntouch \\"${postgres_data_directory}/postgresql.conf\\"\\nsafelink \\"${pgwal_directory}\\" \\"${postgres_data_directory}/pg_wal\\"\\nresults \'wal directory\' \\"$(realpath \\"${postgres_data_directory}/pg_wal\\" ||:)\\"\\nrm -f \\"${postgres_data_directory}/recovery.signal\\"",\n "startup",\n "18",\n "/pgdata/pg18_wal",\n "/pgdata/pgbackrest/log"\n ],\n "env": [\n {\n "name": "PGDATA",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PGHOST",\n "value": "/tmp/postgres"\n },\n {\n "name": "PGPORT",\n "value": "5432"\n },\n {\n "name": "KRB5_CONFIG",\n "value": "/etc/postgres/krb5.conf"\n },\n {\n "name": "KRB5RCACHEDIR",\n "value": "/tmp"\n },\n {\n "name": "LDAPTLS_CACERT",\n "value": "/etc/postgres/ldap/ca.crt"\n },\n {\n "name": "LC_ALL",\n "value": "en_US.utf-8"\n },\n {\n "name": "LANG",\n "value": "en_US.utf-8"\n }\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "postgres-startup",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgconf/tls",\n "name": "cert-volume",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-c",\n "mkdir -p /tmp/nss_wrapper \\u0026\\u0026 { [[ -f /tmp/nss_wrapper/libnss_wrapper.so ]] || cp /usr/lib64/libnss_wrapper.so /tmp/nss_wrapper/libnss_wrapper.so; }"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "nss-wrapper-init-logcollector",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "runAsGroup": 26,\n "runAsNonRoot": true,\n "runAsUser": 26,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-c",\n "export NSS_WRAPPER_SUBDIR=postgres CRUNCHY_NSS_USERNAME=postgres CRUNCHY_NSS_USER_DESC=\\"postgres\\" \\n# Define nss_wrapper directory and passwd \\u0026 group files that will be utilized by nss_wrapper. The\\n# nss_wrapper_env.sh script (which also sets these vars) isn\'t sourced here since the nss_wrapper\\n# has not yet been setup, and we therefore don\'t yet want the nss_wrapper vars in the environment.\\nmkdir -p /tmp/nss_wrapper\\nchmod g+rwx /tmp/nss_wrapper\\n\\nNSS_WRAPPER_DIR=\\"/tmp/nss_wrapper/${NSS_WRAPPER_SUBDIR}\\"\\nNSS_WRAPPER_PASSWD=\\"${NSS_WRAPPER_DIR}/passwd\\"\\nNSS_WRAPPER_GROUP=\\"${NSS_WRAPPER_DIR}/group\\"\\n\\n# create the nss_wrapper directory\\nmkdir -p \\"${NSS_WRAPPER_DIR}\\"\\n\\n# grab the current user ID and group ID\\nUSER_ID=$(id -u)\\nexport USER_ID\\nGROUP_ID=$(id -g)\\nexport GROUP_ID\\n\\n# get copies of the passwd and group files\\n[[ -f \\"${NSS_WRAPPER_PASSWD}\\" ]] || cp \\"/etc/passwd\\" \\"${NSS_WRAPPER_PASSWD}\\"\\n[[ -f \\"${NSS_WRAPPER_GROUP}\\" ]] || cp \\"/etc/group\\" \\"${NSS_WRAPPER_GROUP}\\"\\n\\n# if the username is missing from the passwd file, then add it\\nif [[ ! $(cat \\"${NSS_WRAPPER_PASSWD}\\") =~ ${CRUNCHY_NSS_USERNAME}:x:${USER_ID} ]]; then\\n echo \\"nss_wrapper: adding user\\"\\n passwd_tmp=\\"${NSS_WRAPPER_DIR}/passwd_tmp\\"\\n cp \\"${NSS_WRAPPER_PASSWD}\\" \\"${passwd_tmp}\\"\\n sed -i \\"/${CRUNCHY_NSS_USERNAME}:x:/d\\" \\"${passwd_tmp}\\"\\n # needed for OCP 4.x because crio updates /etc/passwd with an entry for USER_ID\\n sed -i \\"/${USER_ID}:x:/d\\" \\"${passwd_tmp}\\"\\n printf \'${CRUNCHY_NSS_USERNAME}:x:${USER_ID}:${GROUP_ID}:${CRUNCHY_NSS_USER_DESC}:${HOME}:/bin/bash\\\\n\' \\u003e\\u003e \\"${passwd_tmp}\\"\\n envsubst \\u003c \\"${passwd_tmp}\\" \\u003e \\"${NSS_WRAPPER_PASSWD}\\"\\n rm \\"${passwd_tmp}\\"\\nelse\\n echo \\"nss_wrapper: user exists\\"\\nfi\\n\\n# if the username (which will be the same as the group name) is missing from group file, then add it\\nif [[ ! $(cat \\"${NSS_WRAPPER_GROUP}\\") =~ ${CRUNCHY_NSS_USERNAME}:x:${USER_ID} ]]; then\\n echo \\"nss_wrapper: adding group\\"\\n group_tmp=\\"${NSS_WRAPPER_DIR}/group_tmp\\"\\n cp \\"${NSS_WRAPPER_GROUP}\\" \\"${group_tmp}\\"\\n sed -i \\"/${CRUNCHY_NSS_USERNAME}:x:/d\\" \\"${group_tmp}\\"\\n printf \'${CRUNCHY_NSS_USERNAME}:x:${USER_ID}:${CRUNCHY_NSS_USERNAME}\\\\n\' \\u003e\\u003e \\"${group_tmp}\\"\\n envsubst \\u003c \\"${group_tmp}\\" \\u003e \\"${NSS_WRAPPER_GROUP}\\"\\n rm \\"${group_tmp}\\"\\nelse\\n echo \\"nss_wrapper: group exists\\"\\nfi\\n\\n# export the nss_wrapper env vars\\n# define nss_wrapper directory and passwd \\u0026 group files that will be utilized by nss_wrapper\\nNSS_WRAPPER_DIR=\\"/tmp/nss_wrapper/${NSS_WRAPPER_SUBDIR}\\"\\nNSS_WRAPPER_PASSWD=\\"${NSS_WRAPPER_DIR}/passwd\\"\\nNSS_WRAPPER_GROUP=\\"${NSS_WRAPPER_DIR}/group\\"\\n\\nexport LD_PRELOAD=/usr/lib64/libnss_wrapper.so\\nexport NSS_WRAPPER_PASSWD=\\"${NSS_WRAPPER_PASSWD}\\"\\nexport NSS_WRAPPER_GROUP=\\"${NSS_WRAPPER_GROUP}\\"\\n\\necho \\"nss_wrapper: environment configured\\"\\n"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "nss-wrapper-init",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n }\n ],\n "restartPolicy": "Always",\n "schedulerName": "default-scheduler",\n "securityContext": {\n "fsGroup": 26,\n "fsGroupChangePolicy": "OnRootMismatch"\n },\n "serviceAccount": "extra-volumes-instance",\n "serviceAccountName": "extra-volumes-instance",\n "shareProcessNamespace": true,\n "terminationGracePeriodSeconds": 30,\n "topologySpreadConstraints": [\n {\n "labelSelector": {\n "matchExpressions": [\n {\n "key": "postgres-operator.crunchydata.com/data",\n "operator": "In",\n "values": [\n "postgres",\n "pgbackrest"\n ]\n }\n ],\n "matchLabels": {\n "postgres-operator.crunchydata.com/cluster": "extra-volumes"\n }\n },\n "maxSkew": 1,\n "topologyKey": "kubernetes.io/hostname",\n "whenUnsatisfiable": "ScheduleAnyway"\n },\n {\n "labelSelector": {\n "matchExpressions": [\n {\n "key": "postgres-operator.crunchydata.com/data",\n "operator": "In",\n "values": [\n "postgres",\n "pgbackrest"\n ]\n }\n ],\n "matchLabels": {\n "postgres-operator.crunchydata.com/cluster": "extra-volumes"\n }\n },\n "maxSkew": 1,\n "topologyKey": "topology.kubernetes.io/zone",\n "whenUnsatisfiable": "ScheduleAnyway"\n }\n ],\n "volumes": [\n {\n "name": "cert-volume",\n "projected": {\n "defaultMode": 384,\n "sources": [\n {\n "secret": {\n "items": [\n {\n "key": "tls.crt",\n "path": "tls.crt"\n },\n {\n "key": "tls.key",\n "path": "tls.key"\n },\n {\n "key": "ca.crt",\n "path": "ca.crt"\n }\n ],\n "name": "extra-volumes-cluster-cert"\n }\n },\n {\n "secret": {\n "items": [\n {\n "key": "tls.crt",\n "path": "replication/tls.crt"\n },\n {\n "key": "tls.key",\n "path": "replication/tls.key"\n },\n {\n "key": "ca.crt",\n "path": "replication/ca.crt"\n }\n ],\n "name": "extra-volumes-replication-cert"\n }\n }\n ]\n }\n },\n {\n "name": "postgres-data",\n "persistentVolumeClaim": {\n "claimName": "extra-volumes-instance1-64h5-pgdata"\n }\n },\n {\n "downwardAPI": {\n "defaultMode": 420,\n "items": [\n {\n "path": "cpu_limit",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1m",\n "resource": "limits.cpu"\n }\n },\n {\n "path": "cpu_request",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1m",\n "resource": "requests.cpu"\n }\n },\n {\n "path": "mem_limit",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1Mi",\n "resource": "limits.memory"\n }\n },\n {\n "path": "mem_request",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1Mi",\n "resource": "requests.memory"\n }\n },\n {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.labels"\n },\n "path": "labels"\n },\n {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.annotations"\n },\n "path": "annotations"\n }\n ]\n },\n "name": "database-containerinfo"\n },\n {\n "configMap": {\n "defaultMode": 420,\n "name": "extra-dicts"\n },\n "name": "fts-dicts"\n },\n {\n "emptyDir": {},\n "name": "extra-data"\n },\n {\n "name": "pgbackrest-server",\n "projected": {\n "defaultMode": 420,\n "sources": [\n {\n "secret": {\n "items": [\n {\n "key": "pgbackrest-server.crt",\n "path": "server-tls.crt"\n },\n {\n "key": "pgbackrest-server.key",\n "mode": 384,\n "path": "server-tls.key"\n }\n ],\n "name": "extra-volumes-instance1-64h5-certs"\n }\n }\n ]\n }\n },\n {\n "name": "pgbackrest-config",\n "projected": {\n "defaultMode": 420,\n "sources": [\n {\n "configMap": {\n "items": [\n {\n "key": "pgbackrest_instance.conf",\n "path": "pgbackrest_instance.conf"\n },\n {\n "key": "config-hash",\n "path": "config-hash"\n },\n {\n "key": "pgbackrest-server.conf",\n "path": "~postgres-operator_server.conf"\n }\n ],\n "name": "extra-volumes-pgbackrest-config"\n }\n },\n {\n "secret": {\n "items": [\n {\n "key": "pgbackrest.ca-roots",\n "path": "~postgres-operator/tls-ca.crt"\n },\n {\n "key": "pgbackrest-client.crt",\n "path": "~postgres-operator/client-tls.crt"\n },\n {\n "key": "pgbackrest-client.key",\n "mode": 384,\n "path": "~postgres-operator/client-tls.key"\n }\n ],\n "name": "extra-volumes-pgbackrest"\n }\n }\n ]\n }\n },\n {\n "name": "patroni-config",\n "projected": {\n "defaultMode": 420,\n "sources": [\n {\n "configMap": {\n "items": [\n {\n "key": "patroni.yaml",\n "path": "~postgres-operator_cluster.yaml"\n }\n ],\n "name": "extra-volumes-config"\n }\n },\n {\n "configMap": {\n "items": [\n {\n "key": "patroni.yaml",\n "path": "~postgres-operator_instance.yaml"\n }\n ],\n "name": "extra-volumes-instance1-64h5-config"\n }\n },\n {\n "secret": {\n "items": [\n {\n "key": "patroni.ca-roots",\n "path": "~postgres-operator/patroni.ca-roots"\n },\n {\n "key": "patroni.crt-combined",\n "path": "~postgres-operator/patroni.crt+key"\n }\n ],\n "name": "extra-volumes-instance1-64h5-certs"\n }\n }\n ]\n }\n },\n {\n "emptyDir": {},\n "name": "crunchy-bin"\n },\n {\n "emptyDir": {\n "sizeLimit": "2Gi"\n },\n "name": "tmp"\n },\n {\n "emptyDir": {\n "medium": "Memory"\n },\n "name": "dshm"\n }\n ]\n }\n },\n "updateStrategy": {\n "type": "OnDelete"\n }\n },\n "status": {\n "availableReplicas": 1,\n "collisionCount": 0,\n "currentReplicas": 1,\n "currentRevision": "extra-volumes-instance1-64h5-5945964768",\n "observedGeneration": 1,\n "readyReplicas": 1,\n "replicas": 1,\n "updateRevision": "extra-volumes-instance1-64h5-5945964768",\n "updatedReplicas": 1\n }\n }\n ],\n "kind": "List",\n "metadata": {\n "resourceVersion": ""\n }\n}' logger.go:42: 14:33:44 | extra-volumes/2-verify-volumes | + jq -e $'.items[0].spec.template.spec.containers[]\n | select(.name == "database") | .volumeMounts[]\n | select(.mountPath == "/pgdata/extra/data")' logger.go:42: 14:33:44 | extra-volumes/2-verify-volumes | + printf '%s\n' $'{\n "apiVersion": "v1",\n "items": [\n {\n "apiVersion": "apps/v1",\n "kind": "StatefulSet",\n "metadata": {\n "annotations": {\n "pgv2.percona.com/logcollector-config-hash": "d9a116e02b828bdc02165325e92799d82961fb499041814c7c765d0ce263ce77"\n },\n "creationTimestamp": "2026-08-20T14:33:02Z",\n "generation": 1,\n "labels": {\n "app.kubernetes.io/component": "pg",\n "app.kubernetes.io/instance": "extra-volumes",\n "app.kubernetes.io/managed-by": "percona-postgresql-operator",\n "app.kubernetes.io/name": "percona-postgresql",\n "app.kubernetes.io/part-of": "percona-postgresql",\n "pgv2.percona.com/version": "3.1.0",\n "postgres-operator.crunchydata.com/cluster": "extra-volumes",\n "postgres-operator.crunchydata.com/data": "postgres",\n "postgres-operator.crunchydata.com/instance": "extra-volumes-instance1-64h5",\n "postgres-operator.crunchydata.com/instance-set": "instance1"\n },\n "name": "extra-volumes-instance1-64h5",\n "namespace": "kuttl-test-central-quagga",\n "ownerReferences": [\n {\n "apiVersion": "upstream.pgv2.percona.com/v1beta1",\n "blockOwnerDeletion": true,\n "controller": true,\n "kind": "PostgresCluster",\n "name": "extra-volumes",\n "uid": "cd01aeaf-50df-49aa-8a8a-b2dcf5429808"\n }\n ],\n "resourceVersion": "1787236408110879020",\n "uid": "ba581077-f463-4e1a-a194-a89f51d3880c"\n },\n "spec": {\n "persistentVolumeClaimRetentionPolicy": {\n "whenDeleted": "Retain",\n "whenScaled": "Retain"\n },\n "podManagementPolicy": "OrderedReady",\n "replicas": 1,\n "revisionHistoryLimit": 0,\n "selector": {\n "matchLabels": {\n "postgres-operator.crunchydata.com/cluster": "extra-volumes",\n "postgres-operator.crunchydata.com/instance": "extra-volumes-instance1-64h5",\n "postgres-operator.crunchydata.com/instance-set": "instance1"\n }\n },\n "serviceName": "extra-volumes-pods",\n "template": {\n "metadata": {\n "annotations": {\n "kubectl.kubernetes.io/default-container": "database",\n "pgv2.percona.com/logcollector-config-hash": "d9a116e02b828bdc02165325e92799d82961fb499041814c7c765d0ce263ce77"\n },\n "creationTimestamp": null,\n "labels": {\n "app.kubernetes.io/component": "pg",\n "app.kubernetes.io/instance": "extra-volumes",\n "app.kubernetes.io/managed-by": "percona-postgresql-operator",\n "app.kubernetes.io/name": "percona-postgresql",\n "app.kubernetes.io/part-of": "percona-postgresql",\n "pgv2.percona.com/version": "3.1.0",\n "postgres-operator.crunchydata.com/cluster": "extra-volumes",\n "postgres-operator.crunchydata.com/data": "postgres",\n "postgres-operator.crunchydata.com/instance": "extra-volumes-instance1-64h5",\n "postgres-operator.crunchydata.com/instance-set": "instance1",\n "postgres-operator.crunchydata.com/patroni": "extra-volumes-ha"\n }\n },\n "spec": {\n "affinity": {\n "podAntiAffinity": {\n "preferredDuringSchedulingIgnoredDuringExecution": [\n {\n "podAffinityTerm": {\n "labelSelector": {\n "matchLabels": {\n "postgres-operator.crunchydata.com/data": "postgres"\n }\n },\n "topologyKey": "kubernetes.io/hostname"\n },\n "weight": 1\n }\n ]\n }\n },\n "containers": [\n {\n "command": [\n "/opt/crunchy/bin/postgres-entrypoint.sh",\n "patroni",\n "/etc/patroni"\n ],\n "env": [\n {\n "name": "PGDATA",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PGHOST",\n "value": "/tmp/postgres"\n },\n {\n "name": "PGPORT",\n "value": "5432"\n },\n {\n "name": "KRB5_CONFIG",\n "value": "/etc/postgres/krb5.conf"\n },\n {\n "name": "KRB5RCACHEDIR",\n "value": "/tmp"\n },\n {\n "name": "LDAPTLS_CACERT",\n "value": "/etc/postgres/ldap/ca.crt"\n },\n {\n "name": "LC_ALL",\n "value": "en_US.utf-8"\n },\n {\n "name": "LANG",\n "value": "en_US.utf-8"\n },\n {\n "name": "PATRONI_NAME",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.name"\n }\n }\n },\n {\n "name": "PATRONI_KUBERNETES_POD_IP",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "status.podIP"\n }\n }\n },\n {\n "name": "PATRONI_KUBERNETES_PORTS",\n "value": "- name: postgres\\n port: 5432\\n protocol: TCP\\n"\n },\n {\n "name": "PATRONI_POSTGRESQL_CONNECT_ADDRESS",\n "value": "$(PATRONI_NAME).extra-volumes-pods:5432"\n },\n {\n "name": "PATRONI_POSTGRESQL_LISTEN",\n "value": "*:5432"\n },\n {\n "name": "PATRONI_POSTGRESQL_CONFIG_DIR",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PATRONI_POSTGRESQL_DATA_DIR",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PATRONI_RESTAPI_CONNECT_ADDRESS",\n "value": "$(PATRONI_NAME).extra-volumes-pods:8008"\n },\n {\n "name": "PATRONI_RESTAPI_LISTEN",\n "value": "*:8008"\n },\n {\n "name": "PATRONICTL_CONFIG_FILE",\n "value": "/etc/patroni"\n },\n {\n "name": "LD_PRELOAD",\n "value": "/usr/lib64/libnss_wrapper.so"\n },\n {\n "name": "NSS_WRAPPER_PASSWD",\n "value": "/tmp/nss_wrapper/postgres/passwd"\n },\n {\n "name": "NSS_WRAPPER_GROUP",\n "value": "/tmp/nss_wrapper/postgres/group"\n }\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "livenessProbe": {\n "exec": {\n "command": [\n "bash",\n "-c",\n "/opt/crunchy/bin/postgres-liveness-check.sh"\n ]\n },\n "failureThreshold": 3,\n "initialDelaySeconds": 3,\n "periodSeconds": 10,\n "successThreshold": 1,\n "timeoutSeconds": 5\n },\n "name": "database",\n "ports": [\n {\n "containerPort": 5432,\n "name": "postgres",\n "protocol": "TCP"\n }\n ],\n "readinessProbe": {\n "exec": {\n "command": [\n "bash",\n "-c",\n "/opt/crunchy/bin/postgres-readiness-check.sh"\n ]\n },\n "failureThreshold": 3,\n "initialDelaySeconds": 3,\n "periodSeconds": 10,\n "successThreshold": 1,\n "timeoutSeconds": 5\n },\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgconf/tls",\n "name": "cert-volume",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/etc/database-containerinfo",\n "name": "database-containerinfo",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata/extra/dicts",\n "name": "fts-dicts",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata/extra/data",\n "name": "extra-data"\n },\n {\n "mountPath": "/etc/pgbackrest/conf.d",\n "name": "pgbackrest-config",\n "readOnly": true\n },\n {\n "mountPath": "/etc/patroni",\n "name": "patroni-config",\n "readOnly": true\n },\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n },\n {\n "mountPath": "/dev/shm",\n "name": "dshm"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-ceu",\n "--",\n "monitor() {\\n# Parameters for curl when managing autogrow annotation.\\nAPISERVER=\\"https://kubernetes.default.svc\\"\\nSERVICEACCOUNT=\\"/var/run/secrets/kubernetes.io/serviceaccount\\"\\nNAMESPACE=$(cat ${SERVICEACCOUNT}/namespace)\\nTOKEN=$(cat ${SERVICEACCOUNT}/token)\\nCACERT=${SERVICEACCOUNT}/ca.crt\\n\\ndeclare -r directory=\\"/pgconf/tls\\"\\nexec {fd}\\u003c\\u003e \\u003c(:||:)\\nwhile read -r -t 5 -u \\"${fd}\\" ||:; do\\n # Manage replication certificate.\\n if [[ \\"${directory}\\" -nt \\"/proc/self/fd/${fd}\\" ]] \\u0026\\u0026\\n install -D --mode=0600 -t \\"/tmp/replication\\" \\"${directory}\\"/{replication/tls.crt,replication/tls.key,replication/ca.crt} \\u0026\\u0026\\n pkill -HUP --exact --parent=1 postgres\\n then\\n exec {fd}\\u003e\\u0026- \\u0026\\u0026 exec {fd}\\u003c\\u003e \\u003c(:||:)\\n stat --format=\'Loaded certificates dated %y\' \\"${directory}\\"\\n fi\\n\\ndone\\n}; export -f monitor; exec -a \\"$0\\" bash -ceu monitor",\n "replication-cert-copy"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "replication-cert-copy",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgconf/tls",\n "name": "cert-volume",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "args": [\n "fluent-bit"\n ],\n "command": [\n "/opt/crunchy/logcollector/entrypoint.sh"\n ],\n "env": [\n {\n "name": "PG_LOG_DIR",\n "value": "/pgdata/pg18/log"\n },\n {\n "name": "PGBACKREST_LOG_DIR",\n "value": "/pgdata/pgbackrest/log"\n },\n {\n "name": "POD_NAMESPACE",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.namespace"\n }\n }\n },\n {\n "name": "POD_NAME",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.name"\n }\n }\n }\n ],\n "image": "docker.io/perconalab/fluentbit:main-logcollector",\n "imagePullPolicy": "IfNotPresent",\n "name": "logs",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "runAsGroup": 26,\n "runAsNonRoot": true,\n "runAsUser": 26,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "args": [\n "logrotate"\n ],\n "command": [\n "/opt/crunchy/logcollector/entrypoint.sh"\n ],\n "env": [\n {\n "name": "POD_NAMESPACE",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.namespace"\n }\n }\n },\n {\n "name": "POD_NAME",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.name"\n }\n }\n },\n {\n "name": "LOGROTATE_SCHEDULE",\n "value": "0 0 * * *"\n },\n {\n "name": "LD_PRELOAD",\n "value": "/tmp/nss_wrapper/libnss_wrapper.so"\n },\n {\n "name": "NSS_WRAPPER_PASSWD",\n "value": "/tmp/nss_wrapper/postgres/passwd"\n },\n {\n "name": "NSS_WRAPPER_GROUP",\n "value": "/tmp/nss_wrapper/postgres/group"\n }\n ],\n "image": "docker.io/perconalab/fluentbit:main-logcollector",\n "imagePullPolicy": "IfNotPresent",\n "name": "logrotate",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "runAsGroup": 26,\n "runAsNonRoot": true,\n "runAsUser": 26,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "pgbackrest",\n "server"\n ],\n "env": [\n {\n "name": "LD_PRELOAD",\n "value": "/usr/lib64/libnss_wrapper.so"\n },\n {\n "name": "NSS_WRAPPER_PASSWD",\n "value": "/tmp/nss_wrapper/postgres/passwd"\n },\n {\n "name": "NSS_WRAPPER_GROUP",\n "value": "/tmp/nss_wrapper/postgres/group"\n }\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18",\n "imagePullPolicy": "Always",\n "livenessProbe": {\n "exec": {\n "command": [\n "pgbackrest",\n "server-ping"\n ]\n },\n "failureThreshold": 3,\n "periodSeconds": 10,\n "successThreshold": 1,\n "timeoutSeconds": 1\n },\n "name": "pgbackrest",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/etc/pgbackrest/server",\n "name": "pgbackrest-server",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/etc/pgbackrest/conf.d",\n "name": "pgbackrest-config",\n "readOnly": true\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-ceu",\n "--",\n "monitor() {\\nexec {fd}\\u003c\\u003e \\u003c(:||:)\\nuntil read -r -t 5 -u \\"${fd}\\"; do\\n if\\n [[ \\"${filename}\\" -nt \\"/proc/self/fd/${fd}\\" ]] \\u0026\\u0026\\n pkill -HUP --exact --parent=0 pgbackrest\\n then\\n exec {fd}\\u003e\\u0026- \\u0026\\u0026 exec {fd}\\u003c\\u003e \\u003c(:||:)\\n stat --dereference --format=\'Loaded configuration dated %y\' \\"${filename}\\"\\n elif\\n { [[ \\"${directory}\\" -nt \\"/proc/self/fd/${fd}\\" ]] ||\\n [[ \\"${authority}\\" -nt \\"/proc/self/fd/${fd}\\" ]]\\n } \\u0026\\u0026\\n pkill -HUP --exact --parent=0 pgbackrest\\n then\\n exec {fd}\\u003e\\u0026- \\u0026\\u0026 exec {fd}\\u003c\\u003e \\u003c(:||:)\\n stat --format=\'Loaded certificates dated %y\' \\"${directory}\\"\\n fi\\ndone\\n}; export directory=\\"$1\\" authority=\\"$2\\" filename=\\"$3\\"; export -f monitor; exec -a \\"$0\\" bash -ceu monitor",\n "pgbackrest-config",\n "/etc/pgbackrest/server",\n "/etc/pgbackrest/conf.d/~postgres-operator/tls-ca.crt",\n "/etc/pgbackrest/conf.d/~postgres-operator_server.conf"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18",\n "imagePullPolicy": "Always",\n "name": "pgbackrest-config",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/etc/pgbackrest/server",\n "name": "pgbackrest-server",\n "readOnly": true\n },\n {\n "mountPath": "/etc/pgbackrest/conf.d",\n "name": "pgbackrest-config",\n "readOnly": true\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n }\n ],\n "dnsPolicy": "ClusterFirst",\n "enableServiceLinks": false,\n "initContainers": [\n {\n "command": [\n "/usr/local/bin/init-entrypoint.sh"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6",\n "imagePullPolicy": "Always",\n "name": "database-init",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-ceu",\n "--",\n "declare -r expected_major_version=\\"$1\\" pgwal_directory=\\"$2\\" pgbrLog_directory=\\"$3\\"\\npermissions() { while [[ -n \\"$1\\" ]]; do set \\"${1%/*}\\" \\"$@\\"; done; shift; stat -Lc \'%A %4u %4g %n\' \\"$@\\"; }\\nhalt() { local rc=$?; \\u003e\\u00262 echo \\"$@\\"; exit \\"${rc/#0/1}\\"; }\\nresults() { printf \'::postgres-operator: %s::%s\\\\n\' \\"$@\\"; }\\nrecreate() (\\n local tmp; tmp=$(mktemp -d -p \\"${1%/*}\\"); GLOBIGNORE=\'.:..\'; set -x\\n chmod \\"$2\\" \\"${tmp}\\"; mv \\"$1\\"/* \\"${tmp}\\"; rmdir \\"$1\\"; mv \\"${tmp}\\" \\"$1\\"\\n)\\nsafelink() (\\n local desired=\\"$1\\" name=\\"$2\\" current\\n current=$(realpath \\"${name}\\")\\n if [[ \\"${current}\\" == \\"${desired}\\" ]]; then return; fi\\n set -x; mv --no-target-directory \\"${current}\\" \\"${desired}\\"\\n ln --no-dereference --force --symbolic \\"${desired}\\" \\"${name}\\"\\n)\\necho Initializing ...\\nresults \'uid\' \\"$(id -u ||:)\\" \'gid\' \\"$(id -G ||:)\\"\\nif [[ \\"${pgwal_directory}\\" == *\\"pgwal/\\"* ]] \\u0026\\u0026 [[ ! -d \\"/pgwal/pgbackrest-spool\\" ]];then rm -rf \\"/pgdata/pgbackrest-spool\\" \\u0026\\u0026 mkdir -p \\"/pgwal/pgbackrest-spool\\" \\u0026\\u0026 ln --force --symbolic \\"/pgwal/pgbackrest-spool\\" \\"/pgdata/pgbackrest-spool\\";fi\\nif [[ ! -e \\"/pgdata/pgbackrest-spool\\" ]];then rm -rf /pgdata/pgbackrest-spool;fi\\nresults \'postgres path\' \\"$(command -v postgres ||:)\\"\\nresults \'postgres version\' \\"${postgres_version:=$(postgres --version ||:)}\\"\\n[[ \\"${postgres_version}\\" =~ \\") ${expected_major_version}\\"($|[^0-9]) ]] ||\\nhalt Expected PostgreSQL version \\"${expected_major_version}\\"\\nresults \'config directory\' \\"${PGDATA:?}\\"\\npostgres_data_directory=$([[ -d \\"${PGDATA}\\" ]] \\u0026\\u0026 postgres -C data_directory || echo \\"${PGDATA}\\")\\nresults \'data directory\' \\"${postgres_data_directory}\\"\\n[[ \\"${postgres_data_directory}\\" == \\"${PGDATA}\\" ]] ||\\nhalt Expected matching config and data directories\\nbootstrap_dir=\\"${postgres_data_directory}_bootstrap\\"\\n[[ -d \\"${bootstrap_dir}\\" ]] \\u0026\\u0026 results \'bootstrap directory\' \\"${bootstrap_dir}\\"\\n[[ -d \\"${bootstrap_dir}\\" ]] \\u0026\\u0026 postgres_data_directory=\\"${bootstrap_dir}\\"\\nif [[ ! -e \\"${postgres_data_directory}\\" || -O \\"${postgres_data_directory}\\" ]]; then\\ninstall --directory --mode=0700 \\"${postgres_data_directory}\\"\\nelif [[ -w \\"${postgres_data_directory}\\" \\u0026\\u0026 -g \\"${postgres_data_directory}\\" ]]; then\\nrecreate \\"${postgres_data_directory}\\" \'0700\'\\nelse (halt Permissions!); fi ||\\nhalt \\"$(permissions \\"${postgres_data_directory}\\" ||:)\\"\\nresults \'pgBackRest log directory\' \\"${pgbrLog_directory}\\"\\ninstall --directory --mode=0775 \\"${pgbrLog_directory}\\" ||\\nhalt \\"$(permissions \\"${pgbrLog_directory}\\" ||:)\\"\\ninstall -D --mode=0600 -t \\"/tmp/replication\\" \\"/pgconf/tls/replication\\"/{tls.crt,tls.key,ca.crt}\\n\\n[[ -f \\"${postgres_data_directory}/PG_VERSION\\" ]] || exit 0\\nresults \'data version\' \\"${postgres_data_version:=$(\\u003c \\"${postgres_data_directory}/PG_VERSION\\")}\\"\\n[[ \\"${postgres_data_version}\\" == \\"${expected_major_version}\\" ]] ||\\nhalt Expected PostgreSQL data version \\"${expected_major_version}\\"\\n[[ ! -f \\"${postgres_data_directory}/postgresql.conf\\" ]] \\u0026\\u0026\\ntouch \\"${postgres_data_directory}/postgresql.conf\\"\\nsafelink \\"${pgwal_directory}\\" \\"${postgres_data_directory}/pg_wal\\"\\nresults \'wal directory\' \\"$(realpath \\"${postgres_data_directory}/pg_wal\\" ||:)\\"\\nrm -f \\"${postgres_data_directory}/recovery.signal\\"",\n "startup",\n "18",\n "/pgdata/pg18_wal",\n "/pgdata/pgbackrest/log"\n ],\n "env": [\n {\n "name": "PGDATA",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PGHOST",\n "value": "/tmp/postgres"\n },\n {\n "name": "PGPORT",\n "value": "5432"\n },\n {\n "name": "KRB5_CONFIG",\n "value": "/etc/postgres/krb5.conf"\n },\n {\n "name": "KRB5RCACHEDIR",\n "value": "/tmp"\n },\n {\n "name": "LDAPTLS_CACERT",\n "value": "/etc/postgres/ldap/ca.crt"\n },\n {\n "name": "LC_ALL",\n "value": "en_US.utf-8"\n },\n {\n "name": "LANG",\n "value": "en_US.utf-8"\n }\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "postgres-startup",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgconf/tls",\n "name": "cert-volume",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-c",\n "mkdir -p /tmp/nss_wrapper \\u0026\\u0026 { [[ -f /tmp/nss_wrapper/libnss_wrapper.so ]] || cp /usr/lib64/libnss_wrapper.so /tmp/nss_wrapper/libnss_wrapper.so; }"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "nss-wrapper-init-logcollector",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "runAsGroup": 26,\n "runAsNonRoot": true,\n "runAsUser": 26,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-c",\n "export NSS_WRAPPER_SUBDIR=postgres CRUNCHY_NSS_USERNAME=postgres CRUNCHY_NSS_USER_DESC=\\"postgres\\" \\n# Define nss_wrapper directory and passwd \\u0026 group files that will be utilized by nss_wrapper. The\\n# nss_wrapper_env.sh script (which also sets these vars) isn\'t sourced here since the nss_wrapper\\n# has not yet been setup, and we therefore don\'t yet want the nss_wrapper vars in the environment.\\nmkdir -p /tmp/nss_wrapper\\nchmod g+rwx /tmp/nss_wrapper\\n\\nNSS_WRAPPER_DIR=\\"/tmp/nss_wrapper/${NSS_WRAPPER_SUBDIR}\\"\\nNSS_WRAPPER_PASSWD=\\"${NSS_WRAPPER_DIR}/passwd\\"\\nNSS_WRAPPER_GROUP=\\"${NSS_WRAPPER_DIR}/group\\"\\n\\n# create the nss_wrapper directory\\nmkdir -p \\"${NSS_WRAPPER_DIR}\\"\\n\\n# grab the current user ID and group ID\\nUSER_ID=$(id -u)\\nexport USER_ID\\nGROUP_ID=$(id -g)\\nexport GROUP_ID\\n\\n# get copies of the passwd and group files\\n[[ -f \\"${NSS_WRAPPER_PASSWD}\\" ]] || cp \\"/etc/passwd\\" \\"${NSS_WRAPPER_PASSWD}\\"\\n[[ -f \\"${NSS_WRAPPER_GROUP}\\" ]] || cp \\"/etc/group\\" \\"${NSS_WRAPPER_GROUP}\\"\\n\\n# if the username is missing from the passwd file, then add it\\nif [[ ! $(cat \\"${NSS_WRAPPER_PASSWD}\\") =~ ${CRUNCHY_NSS_USERNAME}:x:${USER_ID} ]]; then\\n echo \\"nss_wrapper: adding user\\"\\n passwd_tmp=\\"${NSS_WRAPPER_DIR}/passwd_tmp\\"\\n cp \\"${NSS_WRAPPER_PASSWD}\\" \\"${passwd_tmp}\\"\\n sed -i \\"/${CRUNCHY_NSS_USERNAME}:x:/d\\" \\"${passwd_tmp}\\"\\n # needed for OCP 4.x because crio updates /etc/passwd with an entry for USER_ID\\n sed -i \\"/${USER_ID}:x:/d\\" \\"${passwd_tmp}\\"\\n printf \'${CRUNCHY_NSS_USERNAME}:x:${USER_ID}:${GROUP_ID}:${CRUNCHY_NSS_USER_DESC}:${HOME}:/bin/bash\\\\n\' \\u003e\\u003e \\"${passwd_tmp}\\"\\n envsubst \\u003c \\"${passwd_tmp}\\" \\u003e \\"${NSS_WRAPPER_PASSWD}\\"\\n rm \\"${passwd_tmp}\\"\\nelse\\n echo \\"nss_wrapper: user exists\\"\\nfi\\n\\n# if the username (which will be the same as the group name) is missing from group file, then add it\\nif [[ ! $(cat \\"${NSS_WRAPPER_GROUP}\\") =~ ${CRUNCHY_NSS_USERNAME}:x:${USER_ID} ]]; then\\n echo \\"nss_wrapper: adding group\\"\\n group_tmp=\\"${NSS_WRAPPER_DIR}/group_tmp\\"\\n cp \\"${NSS_WRAPPER_GROUP}\\" \\"${group_tmp}\\"\\n sed -i \\"/${CRUNCHY_NSS_USERNAME}:x:/d\\" \\"${group_tmp}\\"\\n printf \'${CRUNCHY_NSS_USERNAME}:x:${USER_ID}:${CRUNCHY_NSS_USERNAME}\\\\n\' \\u003e\\u003e \\"${group_tmp}\\"\\n envsubst \\u003c \\"${group_tmp}\\" \\u003e \\"${NSS_WRAPPER_GROUP}\\"\\n rm \\"${group_tmp}\\"\\nelse\\n echo \\"nss_wrapper: group exists\\"\\nfi\\n\\n# export the nss_wrapper env vars\\n# define nss_wrapper directory and passwd \\u0026 group files that will be utilized by nss_wrapper\\nNSS_WRAPPER_DIR=\\"/tmp/nss_wrapper/${NSS_WRAPPER_SUBDIR}\\"\\nNSS_WRAPPER_PASSWD=\\"${NSS_WRAPPER_DIR}/passwd\\"\\nNSS_WRAPPER_GROUP=\\"${NSS_WRAPPER_DIR}/group\\"\\n\\nexport LD_PRELOAD=/usr/lib64/libnss_wrapper.so\\nexport NSS_WRAPPER_PASSWD=\\"${NSS_WRAPPER_PASSWD}\\"\\nexport NSS_WRAPPER_GROUP=\\"${NSS_WRAPPER_GROUP}\\"\\n\\necho \\"nss_wrapper: environment configured\\"\\n"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "nss-wrapper-init",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n }\n ],\n "restartPolicy": "Always",\n "schedulerName": "default-scheduler",\n "securityContext": {\n "fsGroup": 26,\n "fsGroupChangePolicy": "OnRootMismatch"\n },\n "serviceAccount": "extra-volumes-instance",\n "serviceAccountName": "extra-volumes-instance",\n "shareProcessNamespace": true,\n "terminationGracePeriodSeconds": 30,\n "topologySpreadConstraints": [\n {\n "labelSelector": {\n "matchExpressions": [\n {\n "key": "postgres-operator.crunchydata.com/data",\n "operator": "In",\n "values": [\n "postgres",\n "pgbackrest"\n ]\n }\n ],\n "matchLabels": {\n "postgres-operator.crunchydata.com/cluster": "extra-volumes"\n }\n },\n "maxSkew": 1,\n "topologyKey": "kubernetes.io/hostname",\n "whenUnsatisfiable": "ScheduleAnyway"\n },\n {\n "labelSelector": {\n "matchExpressions": [\n {\n "key": "postgres-operator.crunchydata.com/data",\n "operator": "In",\n "values": [\n "postgres",\n "pgbackrest"\n ]\n }\n ],\n "matchLabels": {\n "postgres-operator.crunchydata.com/cluster": "extra-volumes"\n }\n },\n "maxSkew": 1,\n "topologyKey": "topology.kubernetes.io/zone",\n "whenUnsatisfiable": "ScheduleAnyway"\n }\n ],\n "volumes": [\n {\n "name": "cert-volume",\n "projected": {\n "defaultMode": 384,\n "sources": [\n {\n "secret": {\n "items": [\n {\n "key": "tls.crt",\n "path": "tls.crt"\n },\n {\n "key": "tls.key",\n "path": "tls.key"\n },\n {\n "key": "ca.crt",\n "path": "ca.crt"\n }\n ],\n "name": "extra-volumes-cluster-cert"\n }\n },\n {\n "secret": {\n "items": [\n {\n "key": "tls.crt",\n "path": "replication/tls.crt"\n },\n {\n "key": "tls.key",\n "path": "replication/tls.key"\n },\n {\n "key": "ca.crt",\n "path": "replication/ca.crt"\n }\n ],\n "name": "extra-volumes-replication-cert"\n }\n }\n ]\n }\n },\n {\n "name": "postgres-data",\n "persistentVolumeClaim": {\n "claimName": "extra-volumes-instance1-64h5-pgdata"\n }\n },\n {\n "downwardAPI": {\n "defaultMode": 420,\n "items": [\n {\n "path": "cpu_limit",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1m",\n "resource": "limits.cpu"\n }\n },\n {\n "path": "cpu_request",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1m",\n "resource": "requests.cpu"\n }\n },\n {\n "path": "mem_limit",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1Mi",\n "resource": "limits.memory"\n }\n },\n {\n "path": "mem_request",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1Mi",\n "resource": "requests.memory"\n }\n },\n {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.labels"\n },\n "path": "labels"\n },\n {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.annotations"\n },\n "path": "annotations"\n }\n ]\n },\n "name": "database-containerinfo"\n },\n {\n "configMap": {\n "defaultMode": 420,\n "name": "extra-dicts"\n },\n "name": "fts-dicts"\n },\n {\n "emptyDir": {},\n "name": "extra-data"\n },\n {\n "name": "pgbackrest-server",\n "projected": {\n "defaultMode": 420,\n "sources": [\n {\n "secret": {\n "items": [\n {\n "key": "pgbackrest-server.crt",\n "path": "server-tls.crt"\n },\n {\n "key": "pgbackrest-server.key",\n "mode": 384,\n "path": "server-tls.key"\n }\n ],\n "name": "extra-volumes-instance1-64h5-certs"\n }\n }\n ]\n }\n },\n {\n "name": "pgbackrest-config",\n "projected": {\n "defaultMode": 420,\n "sources": [\n {\n "configMap": {\n "items": [\n {\n "key": "pgbackrest_instance.conf",\n "path": "pgbackrest_instance.conf"\n },\n {\n "key": "config-hash",\n "path": "config-hash"\n },\n {\n "key": "pgbackrest-server.conf",\n "path": "~postgres-operator_server.conf"\n }\n ],\n "name": "extra-volumes-pgbackrest-config"\n }\n },\n {\n "secret": {\n "items": [\n {\n "key": "pgbackrest.ca-roots",\n "path": "~postgres-operator/tls-ca.crt"\n },\n {\n "key": "pgbackrest-client.crt",\n "path": "~postgres-operator/client-tls.crt"\n },\n {\n "key": "pgbackrest-client.key",\n "mode": 384,\n "path": "~postgres-operator/client-tls.key"\n }\n ],\n "name": "extra-volumes-pgbackrest"\n }\n }\n ]\n }\n },\n {\n "name": "patroni-config",\n "projected": {\n "defaultMode": 420,\n "sources": [\n {\n "configMap": {\n "items": [\n {\n "key": "patroni.yaml",\n "path": "~postgres-operator_cluster.yaml"\n }\n ],\n "name": "extra-volumes-config"\n }\n },\n {\n "configMap": {\n "items": [\n {\n "key": "patroni.yaml",\n "path": "~postgres-operator_instance.yaml"\n }\n ],\n "name": "extra-volumes-instance1-64h5-config"\n }\n },\n {\n "secret": {\n "items": [\n {\n "key": "patroni.ca-roots",\n "path": "~postgres-operator/patroni.ca-roots"\n },\n {\n "key": "patroni.crt-combined",\n "path": "~postgres-operator/patroni.crt+key"\n }\n ],\n "name": "extra-volumes-instance1-64h5-certs"\n }\n }\n ]\n }\n },\n {\n "emptyDir": {},\n "name": "crunchy-bin"\n },\n {\n "emptyDir": {\n "sizeLimit": "2Gi"\n },\n "name": "tmp"\n },\n {\n "emptyDir": {\n "medium": "Memory"\n },\n "name": "dshm"\n }\n ]\n }\n },\n "updateStrategy": {\n "type": "OnDelete"\n }\n },\n "status": {\n "availableReplicas": 1,\n "collisionCount": 0,\n "currentReplicas": 1,\n "currentRevision": "extra-volumes-instance1-64h5-5945964768",\n "observedGeneration": 1,\n "readyReplicas": 1,\n "replicas": 1,\n "updateRevision": "extra-volumes-instance1-64h5-5945964768",\n "updatedReplicas": 1\n }\n }\n ],\n "kind": "List",\n "metadata": {\n "resourceVersion": ""\n }\n}' logger.go:42: 14:33:44 | extra-volumes/2-verify-volumes | ++ get_instance_set_pods instance1 logger.go:42: 14:33:44 | extra-volumes/2-verify-volumes | ++ local instance=instance1 logger.go:42: 14:33:44 | extra-volumes/2-verify-volumes | ++ head -n1 logger.go:42: 14:33:44 | extra-volumes/2-verify-volumes | ++ kubectl get pods -n kuttl-test-central-quagga --selector postgres-operator.crunchydata.com/instance-set=instance1 -o custom-columns=NAME:.metadata.name --no-headers logger.go:42: 14:33:45 | extra-volumes/2-verify-volumes | + pod=extra-volumes-instance1-64h5-0 logger.go:42: 14:33:45 | extra-volumes/2-verify-volumes | + kubectl -n kuttl-test-central-quagga exec extra-volumes-instance1-64h5-0 -c database -- grep -q ' /pgdata/extra/dicts ' /proc/mounts logger.go:42: 14:33:46 | extra-volumes/2-verify-volumes | + kubectl -n kuttl-test-central-quagga exec extra-volumes-instance1-64h5-0 -c database -- grep -q ' /pgdata/extra/data ' /proc/mounts logger.go:42: 14:33:47 | extra-volumes/2-verify-volumes | ++ kubectl -n kuttl-test-central-quagga exec extra-volumes-instance1-64h5-0 -c database -- cat /pgdata/extra/dicts/synonyms.txt logger.go:42: 14:33:49 | extra-volumes/2-verify-volumes | + content='postgres pg pgsql' logger.go:42: 14:33:49 | extra-volumes/2-verify-volumes | + [[ postgres pg pgsql != postgres pg pgsql ]] logger.go:42: 14:33:49 | extra-volumes/2-verify-volumes | + kubectl -n kuttl-test-central-quagga exec extra-volumes-instance1-64h5-0 -c database -- sh -c 'echo test > /pgdata/extra/dicts/should-fail' logger.go:42: 14:33:50 | extra-volumes/2-verify-volumes | ++ date +%s logger.go:42: 14:33:50 | extra-volumes/2-verify-volumes | + token=rw-1787236430-1966 logger.go:42: 14:33:50 | extra-volumes/2-verify-volumes | + kubectl -n kuttl-test-central-quagga exec extra-volumes-instance1-64h5-0 -c database -- sh -c 'printf '\''%s'\'' '\''rw-1787236430-1966'\'' > /pgdata/extra/data/token' logger.go:42: 14:33:51 | extra-volumes/2-verify-volumes | ++ kubectl -n kuttl-test-central-quagga exec extra-volumes-instance1-64h5-0 -c database -- cat /pgdata/extra/data/token logger.go:42: 14:33:53 | extra-volumes/2-verify-volumes | + readback=rw-1787236430-1966 logger.go:42: 14:33:53 | extra-volumes/2-verify-volumes | + [[ rw-1787236430-1966 != rw\-1787236430\-1966 ]] logger.go:42: 14:33:53 | extra-volumes/2-verify-volumes | test step completed 2-verify-volumes logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | starting test step 3-verify-pvc-volume logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | running command: [sh -c set -o errexit set -o xtrace source ../../functions # Provisioning a bound PVC depends on the platform's default storage class; # skip where the CSI setup is unreliable, mirroring the PXC extra-PVC test. platform=$(detect_k8s_platform) if [[ "${platform}" == "eks" || "${platform}" == "openshift" ]]; then echo "platform ${platform} detected, skipping PVC extra-volume test" exit 0 fi kubectl -n "${NAMESPACE}" apply -f - <<'EOF' apiVersion: v1 kind: PersistentVolumeClaim metadata: name: extra-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi EOF kubectl -n "${NAMESPACE}" patch pg extra-volumes --type=json -p='[ { "op": "add", "path": "/spec/instances/0/extraVolumes/-", "value": { "name": "extra-pvc", "volumeSource": {"persistentVolumeClaim": {"claimName": "extra-pvc"}}, "mounts": [{"mountPath": "/pgdata/extra/pvc"}] } } ]' wait_cluster_consistency extra-volumes sts=$(kubectl -n "${NAMESPACE}" get sts \ --selector postgres-operator.crunchydata.com/instance-set=instance1 -o json) printf '%s\n' "${sts}" | jq -e '.items[0].spec.template.spec.volumes[] | select(.name == "extra-pvc") | select(.persistentVolumeClaim.claimName == "extra-pvc")' >/dev/null printf '%s\n' "${sts}" | jq -e '.items[0].spec.template.spec.containers[] | select(.name == "database") | .volumeMounts[] | select(.mountPath == "/pgdata/extra/pvc")' >/dev/null kubectl -n "${NAMESPACE}" wait --for=jsonpath='{.status.phase}'=Bound \ pvc/extra-pvc --timeout=120s pod=$(get_instance_set_pods instance1 | head -n1) kubectl -n "${NAMESPACE}" exec "${pod}" -c database -- \ grep -q ' /pgdata/extra/pvc ' /proc/mounts token="pvc-$(date +%s)-${RANDOM}" kubectl -n "${NAMESPACE}" exec "${pod}" -c database -- \ sh -c "printf '%s' '${token}' > /pgdata/extra/pvc/token" # Surviving a pod restart is the definitive proof the data lives on the # PVC and not on the pod's ephemeral filesystem. restart_pg_pods extra-volumes instance1 wait_cluster_consistency extra-volumes pod=$(get_instance_set_pods instance1 | head -n1) kubectl -n "${NAMESPACE}" exec "${pod}" -c database -- \ grep -q ' /pgdata/extra/pvc ' /proc/mounts readback=$(kubectl -n "${NAMESPACE}" exec "${pod}" -c database -- cat /pgdata/extra/pvc/token) if [[ "${readback}" != "${token}" ]]; then echo "PVC extra-volume did not persist across restart: wrote '${token}', read '${readback}'" exit 1 fi] logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | + source ../../functions logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | +++ realpath ../../.. logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | ++ ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770 logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | ++ CERT_MANAGER_VER=1.20.2 logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | ++ CERT_MANAGER_TEST_LABEL=e2e.percona.com/managed-by=percona-postgresql-operator-tests logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | ++ CHAOS_MESH_VER=2.5.1 logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | ++ BUSYBOX_VER=1.36 logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | ++++ pwd logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | +++ basename /mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/tests/extra-volumes logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | ++ test_name=extra-volumes logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | ++ source /mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/vars.sh logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | +++ export ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770 logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | +++ ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770 logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | +++ export DEPLOY_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/deploy logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | +++ DEPLOY_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/deploy logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | +++ export TESTS_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | +++ TESTS_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | +++ export TESTS_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/conf logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | +++ TESTS_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/conf logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | +++ export TEST_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/tests/extra-volumes/conf logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | +++ TEST_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/tests/extra-volumes/conf logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | +++ export TEMP_DIR=/tmp/kuttl/pg/extra-volumes logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | +++ TEMP_DIR=/tmp/kuttl/pg/extra-volumes logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | ++++ git rev-parse --abbrev-ref HEAD logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | +++ export GIT_BRANCH=PR-1770 logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | +++ GIT_BRANCH=PR-1770 logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | +++ export VERSION=PR-1770-8c67b09e6 logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | +++ VERSION=PR-1770-8c67b09e6 logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | +++ export SKIP_TEST_WARNINGS=true logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | +++ SKIP_TEST_WARNINGS=true logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | +++ export K8S_UPGRADE_PLATFORM=gke logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | +++ K8S_UPGRADE_PLATFORM=gke logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | +++ export K8S_UPGRADE_REGION=us-central1-a logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | +++ K8S_UPGRADE_REGION=us-central1-a logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | +++ export K8S_UPGRADE_INITIAL_VERSION= logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | +++ K8S_UPGRADE_INITIAL_VERSION= logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | +++ export K8S_UPGRADE_FINAL_VERSION= logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | +++ K8S_UPGRADE_FINAL_VERSION= logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | +++ [[ -z '' ]] logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | ++++ detect_k8s_platform logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | ++++ local detected_platform logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | ++++ local xtrace_enabled=false logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | ++++ [[ -o xtrace ]] logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | ++++ xtrace_enabled=true logger.go:42: 14:33:53 | extra-volumes/3-verify-pvc-volume | ++++ set +o xtrace logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ PLATFORM=gke logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ export PLATFORM logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ export IMAGE_BASE=perconalab/percona-postgresql-operator logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ IMAGE_BASE=perconalab/percona-postgresql-operator logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ export IMAGE=perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ IMAGE=perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ [[ ! -n '' ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ [[ -n '' ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ export PG_VER=18 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ PG_VER=18 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ export PG_DISTRIBUTION= logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ PG_DISTRIBUTION= logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ [[ '' == community ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ export IMAGE_PGBOUNCER=perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ IMAGE_PGBOUNCER=perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ export IMAGE_POSTGRESQL=perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ IMAGE_POSTGRESQL=perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ export IMAGE_BACKREST=perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ IMAGE_BACKREST=perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ export IMAGE_UPGRADE=perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ IMAGE_UPGRADE=perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ export BUCKET=pg-operator-testing logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ BUCKET=pg-operator-testing logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ export PMM_SERVER_VERSION=9.9.9 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ PMM_SERVER_VERSION=9.9.9 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ export IMAGE_PMM_CLIENT=perconalab/pmm-client:3-dev-latest logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ IMAGE_PMM_CLIENT=perconalab/pmm-client:3-dev-latest logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ export IMAGE_PMM_SERVER=perconalab/pmm-server:3-dev-latest logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ IMAGE_PMM_SERVER=perconalab/pmm-server:3-dev-latest logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ export IMAGE_LOGCOLLECTOR=perconalab/fluentbit:main-logcollector logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ IMAGE_LOGCOLLECTOR=perconalab/fluentbit:main-logcollector logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ export PGOV1_TAG=1.4.0 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ PGOV1_TAG=1.4.0 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ export PGOV1_VER=14 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ PGOV1_VER=14 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ export CPGO_VERSION=5.8.7 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ CPGO_VERSION=5.8.7 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ export MINIO_VER=5.4.0 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ MINIO_VER=5.4.0 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ export VAULT_VER=0.32.0 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ VAULT_VER=0.32.0 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ export REGISTRY_NAME=docker.io logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ REGISTRY_NAME=docker.io logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ export REGISTRY_NAME_FULL=docker.io/ logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ REGISTRY_NAME_FULL=docker.io/ logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | ++++ printenv logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | ++++ grep -E '^IMAGE' logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | ++++ awk -F= '{print $1}' logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | ++++ eval 'echo $IMAGE_BACKREST' logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++++ echo perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ var_value=perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ [[ perconalab/percona-postgresql-operator:main-pgbackrest18 == docker.io/* ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ [[ perconalab/percona-postgresql-operator:main-pgbackrest18 == percona/* ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ [[ perconalab/percona-postgresql-operator:main-pgbackrest18 == perconalab/* ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ new_value=docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ export IMAGE_BACKREST=docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ IMAGE_BACKREST=docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ echo IMAGE_BACKREST=docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | IMAGE_BACKREST=docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ echo perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | ++++ eval 'echo $IMAGE' logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++++ echo perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ var_value=perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ [[ perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 == docker.io/* ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ [[ perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 == percona/* ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ [[ perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 == perconalab/* ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ new_value=docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ export IMAGE=docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ IMAGE=docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ echo IMAGE=docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | IMAGE=docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | ++++ eval 'echo $IMAGE_UPGRADE' logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++++ echo perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ var_value=perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ [[ perconalab/percona-postgresql-operator:main-upgrade == docker.io/* ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ [[ perconalab/percona-postgresql-operator:main-upgrade == percona/* ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ [[ perconalab/percona-postgresql-operator:main-upgrade == perconalab/* ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ new_value=docker.io/perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ export IMAGE_UPGRADE=docker.io/perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ IMAGE_UPGRADE=docker.io/perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ echo IMAGE_UPGRADE=docker.io/perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | IMAGE_UPGRADE=docker.io/perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | ++++ eval 'echo $IMAGE_LOGCOLLECTOR' logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++++ echo perconalab/fluentbit:main-logcollector logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ var_value=perconalab/fluentbit:main-logcollector logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ [[ perconalab/fluentbit:main-logcollector == docker.io/* ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ [[ perconalab/fluentbit:main-logcollector == percona/* ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ [[ perconalab/fluentbit:main-logcollector == perconalab/* ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ new_value=docker.io/perconalab/fluentbit:main-logcollector logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ export IMAGE_LOGCOLLECTOR=docker.io/perconalab/fluentbit:main-logcollector logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ IMAGE_LOGCOLLECTOR=docker.io/perconalab/fluentbit:main-logcollector logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ echo IMAGE_LOGCOLLECTOR=docker.io/perconalab/fluentbit:main-logcollector logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | IMAGE_LOGCOLLECTOR=docker.io/perconalab/fluentbit:main-logcollector logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | ++++ eval 'echo $IMAGE_BASE' logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++++ echo perconalab/percona-postgresql-operator logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ var_value=perconalab/percona-postgresql-operator logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ [[ perconalab/percona-postgresql-operator == docker.io/* ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ [[ perconalab/percona-postgresql-operator == percona/* ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ [[ perconalab/percona-postgresql-operator == perconalab/* ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ new_value=docker.io/perconalab/percona-postgresql-operator logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ export IMAGE_BASE=docker.io/perconalab/percona-postgresql-operator logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ IMAGE_BASE=docker.io/perconalab/percona-postgresql-operator logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ echo IMAGE_BASE=docker.io/perconalab/percona-postgresql-operator logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | IMAGE_BASE=docker.io/perconalab/percona-postgresql-operator logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | ++++ eval 'echo $IMAGE_PGBOUNCER' logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++++ echo perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ var_value=perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ [[ perconalab/percona-postgresql-operator:main-pgbouncer18 == docker.io/* ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ [[ perconalab/percona-postgresql-operator:main-pgbouncer18 == percona/* ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ [[ perconalab/percona-postgresql-operator:main-pgbouncer18 == perconalab/* ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ new_value=docker.io/perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ export IMAGE_PGBOUNCER=docker.io/perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ IMAGE_PGBOUNCER=docker.io/perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ echo IMAGE_PGBOUNCER=docker.io/perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | IMAGE_PGBOUNCER=docker.io/perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | ++++ eval 'echo $IMAGE_POSTGRESQL' logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++++ echo perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ var_value=perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ [[ perconalab/percona-postgresql-operator:main-ppg18-postgres == docker.io/* ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ [[ perconalab/percona-postgresql-operator:main-ppg18-postgres == percona/* ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ [[ perconalab/percona-postgresql-operator:main-ppg18-postgres == perconalab/* ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ new_value=docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ export IMAGE_POSTGRESQL=docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ IMAGE_POSTGRESQL=docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ echo IMAGE_POSTGRESQL=docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | IMAGE_POSTGRESQL=docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | ++++ eval 'echo $IMAGE_PMM_SERVER' logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++++ echo perconalab/pmm-server:3-dev-latest logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ var_value=perconalab/pmm-server:3-dev-latest logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ [[ perconalab/pmm-server:3-dev-latest == docker.io/* ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ [[ perconalab/pmm-server:3-dev-latest == percona/* ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ [[ perconalab/pmm-server:3-dev-latest == perconalab/* ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ new_value=docker.io/perconalab/pmm-server:3-dev-latest logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ export IMAGE_PMM_SERVER=docker.io/perconalab/pmm-server:3-dev-latest logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ IMAGE_PMM_SERVER=docker.io/perconalab/pmm-server:3-dev-latest logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ echo IMAGE_PMM_SERVER=docker.io/perconalab/pmm-server:3-dev-latest logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | IMAGE_PMM_SERVER=docker.io/perconalab/pmm-server:3-dev-latest logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | ++++ eval 'echo $IMAGE_PMM_CLIENT' logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++++ echo perconalab/pmm-client:3-dev-latest logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ var_value=perconalab/pmm-client:3-dev-latest logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ [[ perconalab/pmm-client:3-dev-latest == docker.io/* ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ [[ perconalab/pmm-client:3-dev-latest == percona/* ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ [[ perconalab/pmm-client:3-dev-latest == perconalab/* ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ new_value=docker.io/perconalab/pmm-client:3-dev-latest logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ export IMAGE_PMM_CLIENT=docker.io/perconalab/pmm-client:3-dev-latest logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ IMAGE_PMM_CLIENT=docker.io/perconalab/pmm-client:3-dev-latest logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ echo IMAGE_PMM_CLIENT=docker.io/perconalab/pmm-client:3-dev-latest logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | IMAGE_PMM_CLIENT=docker.io/perconalab/pmm-client:3-dev-latest logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | ++++ which gdate logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | which: no gdate in (/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/bin/:/root/.krew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/lib/snapd/snap/bin) logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | ++++ which date logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ date=/usr/sbin/date logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | ++++ which gsed logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | which: no gsed in (/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/bin/:/root/.krew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/lib/snapd/snap/bin) logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | ++++ which sed logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | +++ sed=/usr/sbin/sed logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | ++ detect_k8s_platform logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | ++ local detected_platform logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | ++ local xtrace_enabled=false logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | ++ [[ -o xtrace ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | ++ xtrace_enabled=true logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | ++ set +o xtrace logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | + platform=gke logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | + [[ gke == eks ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | + [[ gke == openshift ]] logger.go:42: 14:33:55 | extra-volumes/3-verify-pvc-volume | + kubectl -n kuttl-test-central-quagga apply -f - logger.go:42: 14:33:56 | extra-volumes/3-verify-pvc-volume | persistentvolumeclaim/extra-pvc created logger.go:42: 14:33:56 | extra-volumes/3-verify-pvc-volume | + kubectl -n kuttl-test-central-quagga patch pg extra-volumes --type=json $'-p=[\n {\n "op": "add",\n "path": "/spec/instances/0/extraVolumes/-",\n "value": {\n "name": "extra-pvc",\n "volumeSource": {"persistentVolumeClaim": {"claimName": "extra-pvc"}},\n "mounts": [{"mountPath": "/pgdata/extra/pvc"}]\n }\n }\n]' logger.go:42: 14:33:57 | extra-volumes/3-verify-pvc-volume | perconapgcluster.pgv2.percona.com/extra-volumes patched logger.go:42: 14:33:57 | extra-volumes/3-verify-pvc-volume | + wait_cluster_consistency extra-volumes logger.go:42: 14:33:57 | extra-volumes/3-verify-pvc-volume | + local cluster_name=extra-volumes logger.go:42: 14:33:57 | extra-volumes/3-verify-pvc-volume | + local wait_time=32 logger.go:42: 14:33:57 | extra-volumes/3-verify-pvc-volume | + retry=0 logger.go:42: 14:33:57 | extra-volumes/3-verify-pvc-volume | + sleep 7 logger.go:42: 14:34:04 | extra-volumes/3-verify-pvc-volume | + echo -n 'waiting for cluster readyness' logger.go:42: 14:34:04 | extra-volumes/3-verify-pvc-volume | waiting for cluster readyness++ kubectl -n kuttl-test-central-quagga get pg extra-volumes -o 'jsonpath={.status.state}' logger.go:42: 14:34:04 | extra-volumes/3-verify-pvc-volume | + [[ initializing == ready ]] logger.go:42: 14:34:04 | extra-volumes/3-verify-pvc-volume | + let retry+=1 logger.go:42: 14:34:04 | extra-volumes/3-verify-pvc-volume | + '[' 1 -ge 32 ']' logger.go:42: 14:34:04 | extra-volumes/3-verify-pvc-volume | + echo -n . logger.go:42: 14:34:04 | extra-volumes/3-verify-pvc-volume | .+ sleep 10 logger.go:42: 14:34:14 | extra-volumes/3-verify-pvc-volume | ++ kubectl -n kuttl-test-central-quagga get pg extra-volumes -o 'jsonpath={.status.state}' logger.go:42: 14:34:15 | extra-volumes/3-verify-pvc-volume | + [[ initializing == ready ]] logger.go:42: 14:34:15 | extra-volumes/3-verify-pvc-volume | + let retry+=1 logger.go:42: 14:34:15 | extra-volumes/3-verify-pvc-volume | + '[' 2 -ge 32 ']' logger.go:42: 14:34:15 | extra-volumes/3-verify-pvc-volume | + echo -n . logger.go:42: 14:34:15 | extra-volumes/3-verify-pvc-volume | .+ sleep 10 logger.go:42: 14:34:25 | extra-volumes/3-verify-pvc-volume | ++ kubectl -n kuttl-test-central-quagga get pg extra-volumes -o 'jsonpath={.status.state}' logger.go:42: 14:34:25 | extra-volumes/3-verify-pvc-volume | + [[ initializing == ready ]] logger.go:42: 14:34:25 | extra-volumes/3-verify-pvc-volume | + let retry+=1 logger.go:42: 14:34:25 | extra-volumes/3-verify-pvc-volume | + '[' 3 -ge 32 ']' logger.go:42: 14:34:25 | extra-volumes/3-verify-pvc-volume | + echo -n . logger.go:42: 14:34:25 | extra-volumes/3-verify-pvc-volume | .+ sleep 10 logger.go:42: 14:34:35 | extra-volumes/3-verify-pvc-volume | ++ kubectl -n kuttl-test-central-quagga get pg extra-volumes -o 'jsonpath={.status.state}' logger.go:42: 14:34:36 | extra-volumes/3-verify-pvc-volume | + [[ initializing == ready ]] logger.go:42: 14:34:36 | extra-volumes/3-verify-pvc-volume | + let retry+=1 logger.go:42: 14:34:36 | extra-volumes/3-verify-pvc-volume | + '[' 4 -ge 32 ']' logger.go:42: 14:34:36 | extra-volumes/3-verify-pvc-volume | + echo -n . logger.go:42: 14:34:36 | extra-volumes/3-verify-pvc-volume | .+ sleep 10 logger.go:42: 14:34:46 | extra-volumes/3-verify-pvc-volume | ++ kubectl -n kuttl-test-central-quagga get pg extra-volumes -o 'jsonpath={.status.state}' logger.go:42: 14:34:46 | extra-volumes/3-verify-pvc-volume | + [[ ready == ready ]] logger.go:42: 14:34:46 | extra-volumes/3-verify-pvc-volume | ++ kubectl -n kuttl-test-central-quagga get sts --selector=postgres-operator.crunchydata.com/cluster=extra-volumes -o 'jsonpath={.items[*].metadata.name}' logger.go:42: 14:34:46 | extra-volumes/3-verify-pvc-volume | ++ grep extra-volumes logger.go:42: 14:34:47 | extra-volumes/3-verify-pvc-volume | + sts='extra-volumes-instance1-64h5 extra-volumes-repo-host' logger.go:42: 14:34:47 | extra-volumes/3-verify-pvc-volume | + for st in $sts logger.go:42: 14:34:47 | extra-volumes/3-verify-pvc-volume | + wait_sts_rollout extra-volumes-instance1-64h5 logger.go:42: 14:34:47 | extra-volumes/3-verify-pvc-volume | + local sts=extra-volumes-instance1-64h5 logger.go:42: 14:34:47 | extra-volumes/3-verify-pvc-volume | ++ get_ready_replicas extra-volumes-instance1-64h5 logger.go:42: 14:34:47 | extra-volumes/3-verify-pvc-volume | ++ kubectl get sts extra-volumes-instance1-64h5 -n kuttl-test-central-quagga -o 'jsonpath={.status.readyReplicas}' logger.go:42: 14:34:48 | extra-volumes/3-verify-pvc-volume | + local ready_replicas= logger.go:42: 14:34:48 | extra-volumes/3-verify-pvc-volume | ++ get_updated_replicas extra-volumes-instance1-64h5 logger.go:42: 14:34:48 | extra-volumes/3-verify-pvc-volume | ++ kubectl get statefulset extra-volumes-instance1-64h5 -n kuttl-test-central-quagga -o 'jsonpath={.status.updatedReplicas}' logger.go:42: 14:34:49 | extra-volumes/3-verify-pvc-volume | + local updated_replicas=1 logger.go:42: 14:34:49 | extra-volumes/3-verify-pvc-volume | ++ get_desired_replicas extra-volumes-instance1-64h5 logger.go:42: 14:34:49 | extra-volumes/3-verify-pvc-volume | ++ kubectl get statefulset extra-volumes-instance1-64h5 -n kuttl-test-central-quagga -o 'jsonpath={.spec.replicas}' logger.go:42: 14:34:49 | extra-volumes/3-verify-pvc-volume | + local desired_replicas=1 logger.go:42: 14:34:49 | extra-volumes/3-verify-pvc-volume | + echo 'ready_replicas desired_replicas 1' logger.go:42: 14:34:49 | extra-volumes/3-verify-pvc-volume | ready_replicas desired_replicas 1 logger.go:42: 14:34:49 | extra-volumes/3-verify-pvc-volume | + [[ '' -eq 1 ]] logger.go:42: 14:34:49 | extra-volumes/3-verify-pvc-volume | ++ get_ready_replicas extra-volumes-instance1-64h5 logger.go:42: 14:34:49 | extra-volumes/3-verify-pvc-volume | ++ kubectl get sts extra-volumes-instance1-64h5 -n kuttl-test-central-quagga -o 'jsonpath={.status.readyReplicas}' logger.go:42: 14:34:50 | extra-volumes/3-verify-pvc-volume | + ready_replicas= logger.go:42: 14:34:50 | extra-volumes/3-verify-pvc-volume | ++ get_desired_replicas extra-volumes-instance1-64h5 logger.go:42: 14:34:50 | extra-volumes/3-verify-pvc-volume | ++ kubectl get statefulset extra-volumes-instance1-64h5 -n kuttl-test-central-quagga -o 'jsonpath={.spec.replicas}' logger.go:42: 14:34:51 | extra-volumes/3-verify-pvc-volume | + desired_replicas=1 logger.go:42: 14:34:51 | extra-volumes/3-verify-pvc-volume | ++ get_updated_replicas extra-volumes-instance1-64h5 logger.go:42: 14:34:51 | extra-volumes/3-verify-pvc-volume | ++ kubectl get statefulset extra-volumes-instance1-64h5 -n kuttl-test-central-quagga -o 'jsonpath={.status.updatedReplicas}' logger.go:42: 14:34:51 | extra-volumes/3-verify-pvc-volume | + updated_replicas=1 logger.go:42: 14:34:51 | extra-volumes/3-verify-pvc-volume | + echo 'Waiting for sts/extra-volumes-instance1-64h5 to update... /1/1 pods updated.' logger.go:42: 14:34:51 | extra-volumes/3-verify-pvc-volume | Waiting for sts/extra-volumes-instance1-64h5 to update... /1/1 pods updated. logger.go:42: 14:34:51 | extra-volumes/3-verify-pvc-volume | + sleep 10 logger.go:42: 14:35:01 | extra-volumes/3-verify-pvc-volume | + [[ '' -eq 1 ]] logger.go:42: 14:35:01 | extra-volumes/3-verify-pvc-volume | ++ get_ready_replicas extra-volumes-instance1-64h5 logger.go:42: 14:35:01 | extra-volumes/3-verify-pvc-volume | ++ kubectl get sts extra-volumes-instance1-64h5 -n kuttl-test-central-quagga -o 'jsonpath={.status.readyReplicas}' logger.go:42: 14:35:02 | extra-volumes/3-verify-pvc-volume | + ready_replicas= logger.go:42: 14:35:02 | extra-volumes/3-verify-pvc-volume | ++ get_desired_replicas extra-volumes-instance1-64h5 logger.go:42: 14:35:02 | extra-volumes/3-verify-pvc-volume | ++ kubectl get statefulset extra-volumes-instance1-64h5 -n kuttl-test-central-quagga -o 'jsonpath={.spec.replicas}' logger.go:42: 14:35:03 | extra-volumes/3-verify-pvc-volume | + desired_replicas=1 logger.go:42: 14:35:03 | extra-volumes/3-verify-pvc-volume | ++ get_updated_replicas extra-volumes-instance1-64h5 logger.go:42: 14:35:03 | extra-volumes/3-verify-pvc-volume | ++ kubectl get statefulset extra-volumes-instance1-64h5 -n kuttl-test-central-quagga -o 'jsonpath={.status.updatedReplicas}' logger.go:42: 14:35:03 | extra-volumes/3-verify-pvc-volume | + updated_replicas=1 logger.go:42: 14:35:03 | extra-volumes/3-verify-pvc-volume | + echo 'Waiting for sts/extra-volumes-instance1-64h5 to update... /1/1 pods updated.' logger.go:42: 14:35:03 | extra-volumes/3-verify-pvc-volume | Waiting for sts/extra-volumes-instance1-64h5 to update... /1/1 pods updated. logger.go:42: 14:35:03 | extra-volumes/3-verify-pvc-volume | + sleep 10 logger.go:42: 14:35:13 | extra-volumes/3-verify-pvc-volume | + [[ '' -eq 1 ]] logger.go:42: 14:35:13 | extra-volumes/3-verify-pvc-volume | ++ get_ready_replicas extra-volumes-instance1-64h5 logger.go:42: 14:35:13 | extra-volumes/3-verify-pvc-volume | ++ kubectl get sts extra-volumes-instance1-64h5 -n kuttl-test-central-quagga -o 'jsonpath={.status.readyReplicas}' logger.go:42: 14:35:14 | extra-volumes/3-verify-pvc-volume | + ready_replicas= logger.go:42: 14:35:14 | extra-volumes/3-verify-pvc-volume | ++ get_desired_replicas extra-volumes-instance1-64h5 logger.go:42: 14:35:14 | extra-volumes/3-verify-pvc-volume | ++ kubectl get statefulset extra-volumes-instance1-64h5 -n kuttl-test-central-quagga -o 'jsonpath={.spec.replicas}' logger.go:42: 14:35:15 | extra-volumes/3-verify-pvc-volume | + desired_replicas=1 logger.go:42: 14:35:15 | extra-volumes/3-verify-pvc-volume | ++ get_updated_replicas extra-volumes-instance1-64h5 logger.go:42: 14:35:15 | extra-volumes/3-verify-pvc-volume | ++ kubectl get statefulset extra-volumes-instance1-64h5 -n kuttl-test-central-quagga -o 'jsonpath={.status.updatedReplicas}' logger.go:42: 14:35:15 | extra-volumes/3-verify-pvc-volume | + updated_replicas=1 logger.go:42: 14:35:15 | extra-volumes/3-verify-pvc-volume | + echo 'Waiting for sts/extra-volumes-instance1-64h5 to update... /1/1 pods updated.' logger.go:42: 14:35:15 | extra-volumes/3-verify-pvc-volume | Waiting for sts/extra-volumes-instance1-64h5 to update... /1/1 pods updated. logger.go:42: 14:35:15 | extra-volumes/3-verify-pvc-volume | + sleep 10 logger.go:42: 14:35:25 | extra-volumes/3-verify-pvc-volume | + [[ '' -eq 1 ]] logger.go:42: 14:35:25 | extra-volumes/3-verify-pvc-volume | ++ get_ready_replicas extra-volumes-instance1-64h5 logger.go:42: 14:35:25 | extra-volumes/3-verify-pvc-volume | ++ kubectl get sts extra-volumes-instance1-64h5 -n kuttl-test-central-quagga -o 'jsonpath={.status.readyReplicas}' logger.go:42: 14:35:26 | extra-volumes/3-verify-pvc-volume | + ready_replicas= logger.go:42: 14:35:26 | extra-volumes/3-verify-pvc-volume | ++ get_desired_replicas extra-volumes-instance1-64h5 logger.go:42: 14:35:26 | extra-volumes/3-verify-pvc-volume | ++ kubectl get statefulset extra-volumes-instance1-64h5 -n kuttl-test-central-quagga -o 'jsonpath={.spec.replicas}' logger.go:42: 14:35:27 | extra-volumes/3-verify-pvc-volume | + desired_replicas=1 logger.go:42: 14:35:27 | extra-volumes/3-verify-pvc-volume | ++ get_updated_replicas extra-volumes-instance1-64h5 logger.go:42: 14:35:27 | extra-volumes/3-verify-pvc-volume | ++ kubectl get statefulset extra-volumes-instance1-64h5 -n kuttl-test-central-quagga -o 'jsonpath={.status.updatedReplicas}' logger.go:42: 14:35:27 | extra-volumes/3-verify-pvc-volume | + updated_replicas=1 logger.go:42: 14:35:27 | extra-volumes/3-verify-pvc-volume | + echo 'Waiting for sts/extra-volumes-instance1-64h5 to update... /1/1 pods updated.' logger.go:42: 14:35:27 | extra-volumes/3-verify-pvc-volume | Waiting for sts/extra-volumes-instance1-64h5 to update... /1/1 pods updated. logger.go:42: 14:35:27 | extra-volumes/3-verify-pvc-volume | + sleep 10 logger.go:42: 14:35:37 | extra-volumes/3-verify-pvc-volume | + [[ '' -eq 1 ]] logger.go:42: 14:35:37 | extra-volumes/3-verify-pvc-volume | ++ get_ready_replicas extra-volumes-instance1-64h5 logger.go:42: 14:35:37 | extra-volumes/3-verify-pvc-volume | ++ kubectl get sts extra-volumes-instance1-64h5 -n kuttl-test-central-quagga -o 'jsonpath={.status.readyReplicas}' logger.go:42: 14:35:38 | extra-volumes/3-verify-pvc-volume | + ready_replicas= logger.go:42: 14:35:38 | extra-volumes/3-verify-pvc-volume | ++ get_desired_replicas extra-volumes-instance1-64h5 logger.go:42: 14:35:38 | extra-volumes/3-verify-pvc-volume | ++ kubectl get statefulset extra-volumes-instance1-64h5 -n kuttl-test-central-quagga -o 'jsonpath={.spec.replicas}' logger.go:42: 14:35:39 | extra-volumes/3-verify-pvc-volume | + desired_replicas=1 logger.go:42: 14:35:39 | extra-volumes/3-verify-pvc-volume | ++ get_updated_replicas extra-volumes-instance1-64h5 logger.go:42: 14:35:39 | extra-volumes/3-verify-pvc-volume | ++ kubectl get statefulset extra-volumes-instance1-64h5 -n kuttl-test-central-quagga -o 'jsonpath={.status.updatedReplicas}' logger.go:42: 14:35:39 | extra-volumes/3-verify-pvc-volume | + updated_replicas=1 logger.go:42: 14:35:39 | extra-volumes/3-verify-pvc-volume | + echo 'Waiting for sts/extra-volumes-instance1-64h5 to update... /1/1 pods updated.' logger.go:42: 14:35:39 | extra-volumes/3-verify-pvc-volume | Waiting for sts/extra-volumes-instance1-64h5 to update... /1/1 pods updated. logger.go:42: 14:35:39 | extra-volumes/3-verify-pvc-volume | + sleep 10 logger.go:42: 14:35:49 | extra-volumes/3-verify-pvc-volume | + [[ '' -eq 1 ]] logger.go:42: 14:35:49 | extra-volumes/3-verify-pvc-volume | ++ get_ready_replicas extra-volumes-instance1-64h5 logger.go:42: 14:35:49 | extra-volumes/3-verify-pvc-volume | ++ kubectl get sts extra-volumes-instance1-64h5 -n kuttl-test-central-quagga -o 'jsonpath={.status.readyReplicas}' logger.go:42: 14:35:50 | extra-volumes/3-verify-pvc-volume | + ready_replicas= logger.go:42: 14:35:50 | extra-volumes/3-verify-pvc-volume | ++ get_desired_replicas extra-volumes-instance1-64h5 logger.go:42: 14:35:50 | extra-volumes/3-verify-pvc-volume | ++ kubectl get statefulset extra-volumes-instance1-64h5 -n kuttl-test-central-quagga -o 'jsonpath={.spec.replicas}' logger.go:42: 14:35:51 | extra-volumes/3-verify-pvc-volume | + desired_replicas=1 logger.go:42: 14:35:51 | extra-volumes/3-verify-pvc-volume | ++ get_updated_replicas extra-volumes-instance1-64h5 logger.go:42: 14:35:51 | extra-volumes/3-verify-pvc-volume | ++ kubectl get statefulset extra-volumes-instance1-64h5 -n kuttl-test-central-quagga -o 'jsonpath={.status.updatedReplicas}' logger.go:42: 14:35:52 | extra-volumes/3-verify-pvc-volume | + updated_replicas=1 logger.go:42: 14:35:52 | extra-volumes/3-verify-pvc-volume | + echo 'Waiting for sts/extra-volumes-instance1-64h5 to update... /1/1 pods updated.' logger.go:42: 14:35:52 | extra-volumes/3-verify-pvc-volume | Waiting for sts/extra-volumes-instance1-64h5 to update... /1/1 pods updated. logger.go:42: 14:35:52 | extra-volumes/3-verify-pvc-volume | + sleep 10 logger.go:42: 14:36:02 | extra-volumes/3-verify-pvc-volume | + [[ '' -eq 1 ]] logger.go:42: 14:36:02 | extra-volumes/3-verify-pvc-volume | ++ get_ready_replicas extra-volumes-instance1-64h5 logger.go:42: 14:36:02 | extra-volumes/3-verify-pvc-volume | ++ kubectl get sts extra-volumes-instance1-64h5 -n kuttl-test-central-quagga -o 'jsonpath={.status.readyReplicas}' logger.go:42: 14:36:02 | extra-volumes/3-verify-pvc-volume | + ready_replicas= logger.go:42: 14:36:02 | extra-volumes/3-verify-pvc-volume | ++ get_desired_replicas extra-volumes-instance1-64h5 logger.go:42: 14:36:02 | extra-volumes/3-verify-pvc-volume | ++ kubectl get statefulset extra-volumes-instance1-64h5 -n kuttl-test-central-quagga -o 'jsonpath={.spec.replicas}' logger.go:42: 14:36:03 | extra-volumes/3-verify-pvc-volume | + desired_replicas=1 logger.go:42: 14:36:03 | extra-volumes/3-verify-pvc-volume | ++ get_updated_replicas extra-volumes-instance1-64h5 logger.go:42: 14:36:03 | extra-volumes/3-verify-pvc-volume | ++ kubectl get statefulset extra-volumes-instance1-64h5 -n kuttl-test-central-quagga -o 'jsonpath={.status.updatedReplicas}' logger.go:42: 14:36:04 | extra-volumes/3-verify-pvc-volume | + updated_replicas=1 logger.go:42: 14:36:04 | extra-volumes/3-verify-pvc-volume | + echo 'Waiting for sts/extra-volumes-instance1-64h5 to update... /1/1 pods updated.' logger.go:42: 14:36:04 | extra-volumes/3-verify-pvc-volume | Waiting for sts/extra-volumes-instance1-64h5 to update... /1/1 pods updated. logger.go:42: 14:36:04 | extra-volumes/3-verify-pvc-volume | + sleep 10 logger.go:42: 14:36:14 | extra-volumes/3-verify-pvc-volume | + [[ '' -eq 1 ]] logger.go:42: 14:36:14 | extra-volumes/3-verify-pvc-volume | ++ get_ready_replicas extra-volumes-instance1-64h5 logger.go:42: 14:36:14 | extra-volumes/3-verify-pvc-volume | ++ kubectl get sts extra-volumes-instance1-64h5 -n kuttl-test-central-quagga -o 'jsonpath={.status.readyReplicas}' logger.go:42: 14:36:14 | extra-volumes/3-verify-pvc-volume | + ready_replicas=1 logger.go:42: 14:36:14 | extra-volumes/3-verify-pvc-volume | ++ get_desired_replicas extra-volumes-instance1-64h5 logger.go:42: 14:36:14 | extra-volumes/3-verify-pvc-volume | ++ kubectl get statefulset extra-volumes-instance1-64h5 -n kuttl-test-central-quagga -o 'jsonpath={.spec.replicas}' logger.go:42: 14:36:15 | extra-volumes/3-verify-pvc-volume | + desired_replicas=1 logger.go:42: 14:36:15 | extra-volumes/3-verify-pvc-volume | ++ get_updated_replicas extra-volumes-instance1-64h5 logger.go:42: 14:36:15 | extra-volumes/3-verify-pvc-volume | ++ kubectl get statefulset extra-volumes-instance1-64h5 -n kuttl-test-central-quagga -o 'jsonpath={.status.updatedReplicas}' logger.go:42: 14:36:16 | extra-volumes/3-verify-pvc-volume | + updated_replicas=1 logger.go:42: 14:36:16 | extra-volumes/3-verify-pvc-volume | + echo 'Waiting for sts/extra-volumes-instance1-64h5 to update... 1/1/1 pods updated.' logger.go:42: 14:36:16 | extra-volumes/3-verify-pvc-volume | Waiting for sts/extra-volumes-instance1-64h5 to update... 1/1/1 pods updated. logger.go:42: 14:36:16 | extra-volumes/3-verify-pvc-volume | + sleep 10 logger.go:42: 14:36:26 | extra-volumes/3-verify-pvc-volume | + [[ 1 -eq 1 ]] logger.go:42: 14:36:26 | extra-volumes/3-verify-pvc-volume | + [[ 1 -eq 1 ]] logger.go:42: 14:36:26 | extra-volumes/3-verify-pvc-volume | + for st in $sts logger.go:42: 14:36:26 | extra-volumes/3-verify-pvc-volume | + wait_sts_rollout extra-volumes-repo-host logger.go:42: 14:36:26 | extra-volumes/3-verify-pvc-volume | + local sts=extra-volumes-repo-host logger.go:42: 14:36:26 | extra-volumes/3-verify-pvc-volume | ++ get_ready_replicas extra-volumes-repo-host logger.go:42: 14:36:26 | extra-volumes/3-verify-pvc-volume | ++ kubectl get sts extra-volumes-repo-host -n kuttl-test-central-quagga -o 'jsonpath={.status.readyReplicas}' logger.go:42: 14:36:26 | extra-volumes/3-verify-pvc-volume | + local ready_replicas=1 logger.go:42: 14:36:26 | extra-volumes/3-verify-pvc-volume | ++ get_updated_replicas extra-volumes-repo-host logger.go:42: 14:36:26 | extra-volumes/3-verify-pvc-volume | ++ kubectl get statefulset extra-volumes-repo-host -n kuttl-test-central-quagga -o 'jsonpath={.status.updatedReplicas}' logger.go:42: 14:36:27 | extra-volumes/3-verify-pvc-volume | + local updated_replicas=1 logger.go:42: 14:36:27 | extra-volumes/3-verify-pvc-volume | ++ get_desired_replicas extra-volumes-repo-host logger.go:42: 14:36:27 | extra-volumes/3-verify-pvc-volume | ++ kubectl get statefulset extra-volumes-repo-host -n kuttl-test-central-quagga -o 'jsonpath={.spec.replicas}' logger.go:42: 14:36:27 | extra-volumes/3-verify-pvc-volume | + local desired_replicas=1 logger.go:42: 14:36:27 | extra-volumes/3-verify-pvc-volume | + echo 'ready_replicas 1 desired_replicas 1' logger.go:42: 14:36:27 | extra-volumes/3-verify-pvc-volume | ready_replicas 1 desired_replicas 1 logger.go:42: 14:36:27 | extra-volumes/3-verify-pvc-volume | + [[ 1 -eq 1 ]] logger.go:42: 14:36:27 | extra-volumes/3-verify-pvc-volume | + [[ 1 -eq 1 ]] logger.go:42: 14:36:27 | extra-volumes/3-verify-pvc-volume | ++ kubectl -n kuttl-test-central-quagga get sts --selector postgres-operator.crunchydata.com/instance-set=instance1 -o json logger.go:42: 14:36:28 | extra-volumes/3-verify-pvc-volume | + sts=$'{\n "apiVersion": "v1",\n "items": [\n {\n "apiVersion": "apps/v1",\n "kind": "StatefulSet",\n "metadata": {\n "annotations": {\n "pgv2.percona.com/logcollector-config-hash": "d9a116e02b828bdc02165325e92799d82961fb499041814c7c765d0ce263ce77"\n },\n "creationTimestamp": "2026-08-20T14:33:02Z",\n "generation": 2,\n "labels": {\n "app.kubernetes.io/component": "pg",\n "app.kubernetes.io/instance": "extra-volumes",\n "app.kubernetes.io/managed-by": "percona-postgresql-operator",\n "app.kubernetes.io/name": "percona-postgresql",\n "app.kubernetes.io/part-of": "percona-postgresql",\n "pgv2.percona.com/version": "3.1.0",\n "postgres-operator.crunchydata.com/cluster": "extra-volumes",\n "postgres-operator.crunchydata.com/data": "postgres",\n "postgres-operator.crunchydata.com/instance": "extra-volumes-instance1-64h5",\n "postgres-operator.crunchydata.com/instance-set": "instance1"\n },\n "name": "extra-volumes-instance1-64h5",\n "namespace": "kuttl-test-central-quagga",\n "ownerReferences": [\n {\n "apiVersion": "upstream.pgv2.percona.com/v1beta1",\n "blockOwnerDeletion": true,\n "controller": true,\n "kind": "PostgresCluster",\n "name": "extra-volumes",\n "uid": "cd01aeaf-50df-49aa-8a8a-b2dcf5429808"\n }\n ],\n "resourceVersion": "1787236569847951020",\n "uid": "ba581077-f463-4e1a-a194-a89f51d3880c"\n },\n "spec": {\n "persistentVolumeClaimRetentionPolicy": {\n "whenDeleted": "Retain",\n "whenScaled": "Retain"\n },\n "podManagementPolicy": "OrderedReady",\n "replicas": 1,\n "revisionHistoryLimit": 0,\n "selector": {\n "matchLabels": {\n "postgres-operator.crunchydata.com/cluster": "extra-volumes",\n "postgres-operator.crunchydata.com/instance": "extra-volumes-instance1-64h5",\n "postgres-operator.crunchydata.com/instance-set": "instance1"\n }\n },\n "serviceName": "extra-volumes-pods",\n "template": {\n "metadata": {\n "annotations": {\n "kubectl.kubernetes.io/default-container": "database",\n "pgv2.percona.com/logcollector-config-hash": "d9a116e02b828bdc02165325e92799d82961fb499041814c7c765d0ce263ce77"\n },\n "creationTimestamp": null,\n "labels": {\n "app.kubernetes.io/component": "pg",\n "app.kubernetes.io/instance": "extra-volumes",\n "app.kubernetes.io/managed-by": "percona-postgresql-operator",\n "app.kubernetes.io/name": "percona-postgresql",\n "app.kubernetes.io/part-of": "percona-postgresql",\n "pgv2.percona.com/version": "3.1.0",\n "postgres-operator.crunchydata.com/cluster": "extra-volumes",\n "postgres-operator.crunchydata.com/data": "postgres",\n "postgres-operator.crunchydata.com/instance": "extra-volumes-instance1-64h5",\n "postgres-operator.crunchydata.com/instance-set": "instance1",\n "postgres-operator.crunchydata.com/patroni": "extra-volumes-ha"\n }\n },\n "spec": {\n "affinity": {\n "podAntiAffinity": {\n "preferredDuringSchedulingIgnoredDuringExecution": [\n {\n "podAffinityTerm": {\n "labelSelector": {\n "matchLabels": {\n "postgres-operator.crunchydata.com/data": "postgres"\n }\n },\n "topologyKey": "kubernetes.io/hostname"\n },\n "weight": 1\n }\n ]\n }\n },\n "containers": [\n {\n "command": [\n "/opt/crunchy/bin/postgres-entrypoint.sh",\n "patroni",\n "/etc/patroni"\n ],\n "env": [\n {\n "name": "PGDATA",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PGHOST",\n "value": "/tmp/postgres"\n },\n {\n "name": "PGPORT",\n "value": "5432"\n },\n {\n "name": "KRB5_CONFIG",\n "value": "/etc/postgres/krb5.conf"\n },\n {\n "name": "KRB5RCACHEDIR",\n "value": "/tmp"\n },\n {\n "name": "LDAPTLS_CACERT",\n "value": "/etc/postgres/ldap/ca.crt"\n },\n {\n "name": "LC_ALL",\n "value": "en_US.utf-8"\n },\n {\n "name": "LANG",\n "value": "en_US.utf-8"\n },\n {\n "name": "PATRONI_NAME",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.name"\n }\n }\n },\n {\n "name": "PATRONI_KUBERNETES_POD_IP",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "status.podIP"\n }\n }\n },\n {\n "name": "PATRONI_KUBERNETES_PORTS",\n "value": "- name: postgres\\n port: 5432\\n protocol: TCP\\n"\n },\n {\n "name": "PATRONI_POSTGRESQL_CONNECT_ADDRESS",\n "value": "$(PATRONI_NAME).extra-volumes-pods:5432"\n },\n {\n "name": "PATRONI_POSTGRESQL_LISTEN",\n "value": "*:5432"\n },\n {\n "name": "PATRONI_POSTGRESQL_CONFIG_DIR",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PATRONI_POSTGRESQL_DATA_DIR",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PATRONI_RESTAPI_CONNECT_ADDRESS",\n "value": "$(PATRONI_NAME).extra-volumes-pods:8008"\n },\n {\n "name": "PATRONI_RESTAPI_LISTEN",\n "value": "*:8008"\n },\n {\n "name": "PATRONICTL_CONFIG_FILE",\n "value": "/etc/patroni"\n },\n {\n "name": "LD_PRELOAD",\n "value": "/usr/lib64/libnss_wrapper.so"\n },\n {\n "name": "NSS_WRAPPER_PASSWD",\n "value": "/tmp/nss_wrapper/postgres/passwd"\n },\n {\n "name": "NSS_WRAPPER_GROUP",\n "value": "/tmp/nss_wrapper/postgres/group"\n }\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "livenessProbe": {\n "exec": {\n "command": [\n "bash",\n "-c",\n "/opt/crunchy/bin/postgres-liveness-check.sh"\n ]\n },\n "failureThreshold": 3,\n "initialDelaySeconds": 3,\n "periodSeconds": 10,\n "successThreshold": 1,\n "timeoutSeconds": 5\n },\n "name": "database",\n "ports": [\n {\n "containerPort": 5432,\n "name": "postgres",\n "protocol": "TCP"\n }\n ],\n "readinessProbe": {\n "exec": {\n "command": [\n "bash",\n "-c",\n "/opt/crunchy/bin/postgres-readiness-check.sh"\n ]\n },\n "failureThreshold": 3,\n "initialDelaySeconds": 3,\n "periodSeconds": 10,\n "successThreshold": 1,\n "timeoutSeconds": 5\n },\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgconf/tls",\n "name": "cert-volume",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/etc/database-containerinfo",\n "name": "database-containerinfo",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata/extra/dicts",\n "name": "fts-dicts",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata/extra/data",\n "name": "extra-data"\n },\n {\n "mountPath": "/pgdata/extra/pvc",\n "name": "extra-pvc"\n },\n {\n "mountPath": "/etc/pgbackrest/conf.d",\n "name": "pgbackrest-config",\n "readOnly": true\n },\n {\n "mountPath": "/etc/patroni",\n "name": "patroni-config",\n "readOnly": true\n },\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n },\n {\n "mountPath": "/dev/shm",\n "name": "dshm"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-ceu",\n "--",\n "monitor() {\\n# Parameters for curl when managing autogrow annotation.\\nAPISERVER=\\"https://kubernetes.default.svc\\"\\nSERVICEACCOUNT=\\"/var/run/secrets/kubernetes.io/serviceaccount\\"\\nNAMESPACE=$(cat ${SERVICEACCOUNT}/namespace)\\nTOKEN=$(cat ${SERVICEACCOUNT}/token)\\nCACERT=${SERVICEACCOUNT}/ca.crt\\n\\ndeclare -r directory=\\"/pgconf/tls\\"\\nexec {fd}\\u003c\\u003e \\u003c(:||:)\\nwhile read -r -t 5 -u \\"${fd}\\" ||:; do\\n # Manage replication certificate.\\n if [[ \\"${directory}\\" -nt \\"/proc/self/fd/${fd}\\" ]] \\u0026\\u0026\\n install -D --mode=0600 -t \\"/tmp/replication\\" \\"${directory}\\"/{replication/tls.crt,replication/tls.key,replication/ca.crt} \\u0026\\u0026\\n pkill -HUP --exact --parent=1 postgres\\n then\\n exec {fd}\\u003e\\u0026- \\u0026\\u0026 exec {fd}\\u003c\\u003e \\u003c(:||:)\\n stat --format=\'Loaded certificates dated %y\' \\"${directory}\\"\\n fi\\n\\ndone\\n}; export -f monitor; exec -a \\"$0\\" bash -ceu monitor",\n "replication-cert-copy"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "replication-cert-copy",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgconf/tls",\n "name": "cert-volume",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "args": [\n "fluent-bit"\n ],\n "command": [\n "/opt/crunchy/logcollector/entrypoint.sh"\n ],\n "env": [\n {\n "name": "PG_LOG_DIR",\n "value": "/pgdata/pg18/log"\n },\n {\n "name": "PGBACKREST_LOG_DIR",\n "value": "/pgdata/pgbackrest/log"\n },\n {\n "name": "POD_NAMESPACE",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.namespace"\n }\n }\n },\n {\n "name": "POD_NAME",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.name"\n }\n }\n }\n ],\n "image": "docker.io/perconalab/fluentbit:main-logcollector",\n "imagePullPolicy": "IfNotPresent",\n "name": "logs",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "runAsGroup": 26,\n "runAsNonRoot": true,\n "runAsUser": 26,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "args": [\n "logrotate"\n ],\n "command": [\n "/opt/crunchy/logcollector/entrypoint.sh"\n ],\n "env": [\n {\n "name": "POD_NAMESPACE",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.namespace"\n }\n }\n },\n {\n "name": "POD_NAME",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.name"\n }\n }\n },\n {\n "name": "LOGROTATE_SCHEDULE",\n "value": "0 0 * * *"\n },\n {\n "name": "LD_PRELOAD",\n "value": "/tmp/nss_wrapper/libnss_wrapper.so"\n },\n {\n "name": "NSS_WRAPPER_PASSWD",\n "value": "/tmp/nss_wrapper/postgres/passwd"\n },\n {\n "name": "NSS_WRAPPER_GROUP",\n "value": "/tmp/nss_wrapper/postgres/group"\n }\n ],\n "image": "docker.io/perconalab/fluentbit:main-logcollector",\n "imagePullPolicy": "IfNotPresent",\n "name": "logrotate",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "runAsGroup": 26,\n "runAsNonRoot": true,\n "runAsUser": 26,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "pgbackrest",\n "server"\n ],\n "env": [\n {\n "name": "LD_PRELOAD",\n "value": "/usr/lib64/libnss_wrapper.so"\n },\n {\n "name": "NSS_WRAPPER_PASSWD",\n "value": "/tmp/nss_wrapper/postgres/passwd"\n },\n {\n "name": "NSS_WRAPPER_GROUP",\n "value": "/tmp/nss_wrapper/postgres/group"\n }\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18",\n "imagePullPolicy": "Always",\n "livenessProbe": {\n "exec": {\n "command": [\n "pgbackrest",\n "server-ping"\n ]\n },\n "failureThreshold": 3,\n "periodSeconds": 10,\n "successThreshold": 1,\n "timeoutSeconds": 1\n },\n "name": "pgbackrest",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/etc/pgbackrest/server",\n "name": "pgbackrest-server",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/etc/pgbackrest/conf.d",\n "name": "pgbackrest-config",\n "readOnly": true\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-ceu",\n "--",\n "monitor() {\\nexec {fd}\\u003c\\u003e \\u003c(:||:)\\nuntil read -r -t 5 -u \\"${fd}\\"; do\\n if\\n [[ \\"${filename}\\" -nt \\"/proc/self/fd/${fd}\\" ]] \\u0026\\u0026\\n pkill -HUP --exact --parent=0 pgbackrest\\n then\\n exec {fd}\\u003e\\u0026- \\u0026\\u0026 exec {fd}\\u003c\\u003e \\u003c(:||:)\\n stat --dereference --format=\'Loaded configuration dated %y\' \\"${filename}\\"\\n elif\\n { [[ \\"${directory}\\" -nt \\"/proc/self/fd/${fd}\\" ]] ||\\n [[ \\"${authority}\\" -nt \\"/proc/self/fd/${fd}\\" ]]\\n } \\u0026\\u0026\\n pkill -HUP --exact --parent=0 pgbackrest\\n then\\n exec {fd}\\u003e\\u0026- \\u0026\\u0026 exec {fd}\\u003c\\u003e \\u003c(:||:)\\n stat --format=\'Loaded certificates dated %y\' \\"${directory}\\"\\n fi\\ndone\\n}; export directory=\\"$1\\" authority=\\"$2\\" filename=\\"$3\\"; export -f monitor; exec -a \\"$0\\" bash -ceu monitor",\n "pgbackrest-config",\n "/etc/pgbackrest/server",\n "/etc/pgbackrest/conf.d/~postgres-operator/tls-ca.crt",\n "/etc/pgbackrest/conf.d/~postgres-operator_server.conf"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18",\n "imagePullPolicy": "Always",\n "name": "pgbackrest-config",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/etc/pgbackrest/server",\n "name": "pgbackrest-server",\n "readOnly": true\n },\n {\n "mountPath": "/etc/pgbackrest/conf.d",\n "name": "pgbackrest-config",\n "readOnly": true\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n }\n ],\n "dnsPolicy": "ClusterFirst",\n "enableServiceLinks": false,\n "initContainers": [\n {\n "command": [\n "/usr/local/bin/init-entrypoint.sh"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6",\n "imagePullPolicy": "Always",\n "name": "database-init",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-ceu",\n "--",\n "declare -r expected_major_version=\\"$1\\" pgwal_directory=\\"$2\\" pgbrLog_directory=\\"$3\\"\\npermissions() { while [[ -n \\"$1\\" ]]; do set \\"${1%/*}\\" \\"$@\\"; done; shift; stat -Lc \'%A %4u %4g %n\' \\"$@\\"; }\\nhalt() { local rc=$?; \\u003e\\u00262 echo \\"$@\\"; exit \\"${rc/#0/1}\\"; }\\nresults() { printf \'::postgres-operator: %s::%s\\\\n\' \\"$@\\"; }\\nrecreate() (\\n local tmp; tmp=$(mktemp -d -p \\"${1%/*}\\"); GLOBIGNORE=\'.:..\'; set -x\\n chmod \\"$2\\" \\"${tmp}\\"; mv \\"$1\\"/* \\"${tmp}\\"; rmdir \\"$1\\"; mv \\"${tmp}\\" \\"$1\\"\\n)\\nsafelink() (\\n local desired=\\"$1\\" name=\\"$2\\" current\\n current=$(realpath \\"${name}\\")\\n if [[ \\"${current}\\" == \\"${desired}\\" ]]; then return; fi\\n set -x; mv --no-target-directory \\"${current}\\" \\"${desired}\\"\\n ln --no-dereference --force --symbolic \\"${desired}\\" \\"${name}\\"\\n)\\necho Initializing ...\\nresults \'uid\' \\"$(id -u ||:)\\" \'gid\' \\"$(id -G ||:)\\"\\nif [[ \\"${pgwal_directory}\\" == *\\"pgwal/\\"* ]] \\u0026\\u0026 [[ ! -d \\"/pgwal/pgbackrest-spool\\" ]];then rm -rf \\"/pgdata/pgbackrest-spool\\" \\u0026\\u0026 mkdir -p \\"/pgwal/pgbackrest-spool\\" \\u0026\\u0026 ln --force --symbolic \\"/pgwal/pgbackrest-spool\\" \\"/pgdata/pgbackrest-spool\\";fi\\nif [[ ! -e \\"/pgdata/pgbackrest-spool\\" ]];then rm -rf /pgdata/pgbackrest-spool;fi\\nresults \'postgres path\' \\"$(command -v postgres ||:)\\"\\nresults \'postgres version\' \\"${postgres_version:=$(postgres --version ||:)}\\"\\n[[ \\"${postgres_version}\\" =~ \\") ${expected_major_version}\\"($|[^0-9]) ]] ||\\nhalt Expected PostgreSQL version \\"${expected_major_version}\\"\\nresults \'config directory\' \\"${PGDATA:?}\\"\\npostgres_data_directory=$([[ -d \\"${PGDATA}\\" ]] \\u0026\\u0026 postgres -C data_directory || echo \\"${PGDATA}\\")\\nresults \'data directory\' \\"${postgres_data_directory}\\"\\n[[ \\"${postgres_data_directory}\\" == \\"${PGDATA}\\" ]] ||\\nhalt Expected matching config and data directories\\nbootstrap_dir=\\"${postgres_data_directory}_bootstrap\\"\\n[[ -d \\"${bootstrap_dir}\\" ]] \\u0026\\u0026 results \'bootstrap directory\' \\"${bootstrap_dir}\\"\\n[[ -d \\"${bootstrap_dir}\\" ]] \\u0026\\u0026 postgres_data_directory=\\"${bootstrap_dir}\\"\\nif [[ ! -e \\"${postgres_data_directory}\\" || -O \\"${postgres_data_directory}\\" ]]; then\\ninstall --directory --mode=0700 \\"${postgres_data_directory}\\"\\nelif [[ -w \\"${postgres_data_directory}\\" \\u0026\\u0026 -g \\"${postgres_data_directory}\\" ]]; then\\nrecreate \\"${postgres_data_directory}\\" \'0700\'\\nelse (halt Permissions!); fi ||\\nhalt \\"$(permissions \\"${postgres_data_directory}\\" ||:)\\"\\nresults \'pgBackRest log directory\' \\"${pgbrLog_directory}\\"\\ninstall --directory --mode=0775 \\"${pgbrLog_directory}\\" ||\\nhalt \\"$(permissions \\"${pgbrLog_directory}\\" ||:)\\"\\ninstall -D --mode=0600 -t \\"/tmp/replication\\" \\"/pgconf/tls/replication\\"/{tls.crt,tls.key,ca.crt}\\n\\n[[ -f \\"${postgres_data_directory}/PG_VERSION\\" ]] || exit 0\\nresults \'data version\' \\"${postgres_data_version:=$(\\u003c \\"${postgres_data_directory}/PG_VERSION\\")}\\"\\n[[ \\"${postgres_data_version}\\" == \\"${expected_major_version}\\" ]] ||\\nhalt Expected PostgreSQL data version \\"${expected_major_version}\\"\\n[[ ! -f \\"${postgres_data_directory}/postgresql.conf\\" ]] \\u0026\\u0026\\ntouch \\"${postgres_data_directory}/postgresql.conf\\"\\nsafelink \\"${pgwal_directory}\\" \\"${postgres_data_directory}/pg_wal\\"\\nresults \'wal directory\' \\"$(realpath \\"${postgres_data_directory}/pg_wal\\" ||:)\\"\\nrm -f \\"${postgres_data_directory}/recovery.signal\\"",\n "startup",\n "18",\n "/pgdata/pg18_wal",\n "/pgdata/pgbackrest/log"\n ],\n "env": [\n {\n "name": "PGDATA",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PGHOST",\n "value": "/tmp/postgres"\n },\n {\n "name": "PGPORT",\n "value": "5432"\n },\n {\n "name": "KRB5_CONFIG",\n "value": "/etc/postgres/krb5.conf"\n },\n {\n "name": "KRB5RCACHEDIR",\n "value": "/tmp"\n },\n {\n "name": "LDAPTLS_CACERT",\n "value": "/etc/postgres/ldap/ca.crt"\n },\n {\n "name": "LC_ALL",\n "value": "en_US.utf-8"\n },\n {\n "name": "LANG",\n "value": "en_US.utf-8"\n }\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "postgres-startup",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgconf/tls",\n "name": "cert-volume",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-c",\n "mkdir -p /tmp/nss_wrapper \\u0026\\u0026 { [[ -f /tmp/nss_wrapper/libnss_wrapper.so ]] || cp /usr/lib64/libnss_wrapper.so /tmp/nss_wrapper/libnss_wrapper.so; }"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "nss-wrapper-init-logcollector",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "runAsGroup": 26,\n "runAsNonRoot": true,\n "runAsUser": 26,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-c",\n "export NSS_WRAPPER_SUBDIR=postgres CRUNCHY_NSS_USERNAME=postgres CRUNCHY_NSS_USER_DESC=\\"postgres\\" \\n# Define nss_wrapper directory and passwd \\u0026 group files that will be utilized by nss_wrapper. The\\n# nss_wrapper_env.sh script (which also sets these vars) isn\'t sourced here since the nss_wrapper\\n# has not yet been setup, and we therefore don\'t yet want the nss_wrapper vars in the environment.\\nmkdir -p /tmp/nss_wrapper\\nchmod g+rwx /tmp/nss_wrapper\\n\\nNSS_WRAPPER_DIR=\\"/tmp/nss_wrapper/${NSS_WRAPPER_SUBDIR}\\"\\nNSS_WRAPPER_PASSWD=\\"${NSS_WRAPPER_DIR}/passwd\\"\\nNSS_WRAPPER_GROUP=\\"${NSS_WRAPPER_DIR}/group\\"\\n\\n# create the nss_wrapper directory\\nmkdir -p \\"${NSS_WRAPPER_DIR}\\"\\n\\n# grab the current user ID and group ID\\nUSER_ID=$(id -u)\\nexport USER_ID\\nGROUP_ID=$(id -g)\\nexport GROUP_ID\\n\\n# get copies of the passwd and group files\\n[[ -f \\"${NSS_WRAPPER_PASSWD}\\" ]] || cp \\"/etc/passwd\\" \\"${NSS_WRAPPER_PASSWD}\\"\\n[[ -f \\"${NSS_WRAPPER_GROUP}\\" ]] || cp \\"/etc/group\\" \\"${NSS_WRAPPER_GROUP}\\"\\n\\n# if the username is missing from the passwd file, then add it\\nif [[ ! $(cat \\"${NSS_WRAPPER_PASSWD}\\") =~ ${CRUNCHY_NSS_USERNAME}:x:${USER_ID} ]]; then\\n echo \\"nss_wrapper: adding user\\"\\n passwd_tmp=\\"${NSS_WRAPPER_DIR}/passwd_tmp\\"\\n cp \\"${NSS_WRAPPER_PASSWD}\\" \\"${passwd_tmp}\\"\\n sed -i \\"/${CRUNCHY_NSS_USERNAME}:x:/d\\" \\"${passwd_tmp}\\"\\n # needed for OCP 4.x because crio updates /etc/passwd with an entry for USER_ID\\n sed -i \\"/${USER_ID}:x:/d\\" \\"${passwd_tmp}\\"\\n printf \'${CRUNCHY_NSS_USERNAME}:x:${USER_ID}:${GROUP_ID}:${CRUNCHY_NSS_USER_DESC}:${HOME}:/bin/bash\\\\n\' \\u003e\\u003e \\"${passwd_tmp}\\"\\n envsubst \\u003c \\"${passwd_tmp}\\" \\u003e \\"${NSS_WRAPPER_PASSWD}\\"\\n rm \\"${passwd_tmp}\\"\\nelse\\n echo \\"nss_wrapper: user exists\\"\\nfi\\n\\n# if the username (which will be the same as the group name) is missing from group file, then add it\\nif [[ ! $(cat \\"${NSS_WRAPPER_GROUP}\\") =~ ${CRUNCHY_NSS_USERNAME}:x:${USER_ID} ]]; then\\n echo \\"nss_wrapper: adding group\\"\\n group_tmp=\\"${NSS_WRAPPER_DIR}/group_tmp\\"\\n cp \\"${NSS_WRAPPER_GROUP}\\" \\"${group_tmp}\\"\\n sed -i \\"/${CRUNCHY_NSS_USERNAME}:x:/d\\" \\"${group_tmp}\\"\\n printf \'${CRUNCHY_NSS_USERNAME}:x:${USER_ID}:${CRUNCHY_NSS_USERNAME}\\\\n\' \\u003e\\u003e \\"${group_tmp}\\"\\n envsubst \\u003c \\"${group_tmp}\\" \\u003e \\"${NSS_WRAPPER_GROUP}\\"\\n rm \\"${group_tmp}\\"\\nelse\\n echo \\"nss_wrapper: group exists\\"\\nfi\\n\\n# export the nss_wrapper env vars\\n# define nss_wrapper directory and passwd \\u0026 group files that will be utilized by nss_wrapper\\nNSS_WRAPPER_DIR=\\"/tmp/nss_wrapper/${NSS_WRAPPER_SUBDIR}\\"\\nNSS_WRAPPER_PASSWD=\\"${NSS_WRAPPER_DIR}/passwd\\"\\nNSS_WRAPPER_GROUP=\\"${NSS_WRAPPER_DIR}/group\\"\\n\\nexport LD_PRELOAD=/usr/lib64/libnss_wrapper.so\\nexport NSS_WRAPPER_PASSWD=\\"${NSS_WRAPPER_PASSWD}\\"\\nexport NSS_WRAPPER_GROUP=\\"${NSS_WRAPPER_GROUP}\\"\\n\\necho \\"nss_wrapper: environment configured\\"\\n"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "nss-wrapper-init",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n }\n ],\n "restartPolicy": "Always",\n "schedulerName": "default-scheduler",\n "securityContext": {\n "fsGroup": 26,\n "fsGroupChangePolicy": "OnRootMismatch"\n },\n "serviceAccount": "extra-volumes-instance",\n "serviceAccountName": "extra-volumes-instance",\n "shareProcessNamespace": true,\n "terminationGracePeriodSeconds": 30,\n "topologySpreadConstraints": [\n {\n "labelSelector": {\n "matchExpressions": [\n {\n "key": "postgres-operator.crunchydata.com/data",\n "operator": "In",\n "values": [\n "postgres",\n "pgbackrest"\n ]\n }\n ],\n "matchLabels": {\n "postgres-operator.crunchydata.com/cluster": "extra-volumes"\n }\n },\n "maxSkew": 1,\n "topologyKey": "kubernetes.io/hostname",\n "whenUnsatisfiable": "ScheduleAnyway"\n },\n {\n "labelSelector": {\n "matchExpressions": [\n {\n "key": "postgres-operator.crunchydata.com/data",\n "operator": "In",\n "values": [\n "postgres",\n "pgbackrest"\n ]\n }\n ],\n "matchLabels": {\n "postgres-operator.crunchydata.com/cluster": "extra-volumes"\n }\n },\n "maxSkew": 1,\n "topologyKey": "topology.kubernetes.io/zone",\n "whenUnsatisfiable": "ScheduleAnyway"\n }\n ],\n "volumes": [\n {\n "name": "cert-volume",\n "projected": {\n "defaultMode": 384,\n "sources": [\n {\n "secret": {\n "items": [\n {\n "key": "tls.crt",\n "path": "tls.crt"\n },\n {\n "key": "tls.key",\n "path": "tls.key"\n },\n {\n "key": "ca.crt",\n "path": "ca.crt"\n }\n ],\n "name": "extra-volumes-cluster-cert"\n }\n },\n {\n "secret": {\n "items": [\n {\n "key": "tls.crt",\n "path": "replication/tls.crt"\n },\n {\n "key": "tls.key",\n "path": "replication/tls.key"\n },\n {\n "key": "ca.crt",\n "path": "replication/ca.crt"\n }\n ],\n "name": "extra-volumes-replication-cert"\n }\n }\n ]\n }\n },\n {\n "name": "postgres-data",\n "persistentVolumeClaim": {\n "claimName": "extra-volumes-instance1-64h5-pgdata"\n }\n },\n {\n "downwardAPI": {\n "defaultMode": 420,\n "items": [\n {\n "path": "cpu_limit",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1m",\n "resource": "limits.cpu"\n }\n },\n {\n "path": "cpu_request",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1m",\n "resource": "requests.cpu"\n }\n },\n {\n "path": "mem_limit",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1Mi",\n "resource": "limits.memory"\n }\n },\n {\n "path": "mem_request",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1Mi",\n "resource": "requests.memory"\n }\n },\n {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.labels"\n },\n "path": "labels"\n },\n {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.annotations"\n },\n "path": "annotations"\n }\n ]\n },\n "name": "database-containerinfo"\n },\n {\n "configMap": {\n "defaultMode": 420,\n "name": "extra-dicts"\n },\n "name": "fts-dicts"\n },\n {\n "emptyDir": {},\n "name": "extra-data"\n },\n {\n "name": "extra-pvc",\n "persistentVolumeClaim": {\n "claimName": "extra-pvc"\n }\n },\n {\n "name": "pgbackrest-server",\n "projected": {\n "defaultMode": 420,\n "sources": [\n {\n "secret": {\n "items": [\n {\n "key": "pgbackrest-server.crt",\n "path": "server-tls.crt"\n },\n {\n "key": "pgbackrest-server.key",\n "mode": 384,\n "path": "server-tls.key"\n }\n ],\n "name": "extra-volumes-instance1-64h5-certs"\n }\n }\n ]\n }\n },\n {\n "name": "pgbackrest-config",\n "projected": {\n "defaultMode": 420,\n "sources": [\n {\n "configMap": {\n "items": [\n {\n "key": "pgbackrest_instance.conf",\n "path": "pgbackrest_instance.conf"\n },\n {\n "key": "config-hash",\n "path": "config-hash"\n },\n {\n "key": "pgbackrest-server.conf",\n "path": "~postgres-operator_server.conf"\n }\n ],\n "name": "extra-volumes-pgbackrest-config"\n }\n },\n {\n "secret": {\n "items": [\n {\n "key": "pgbackrest.ca-roots",\n "path": "~postgres-operator/tls-ca.crt"\n },\n {\n "key": "pgbackrest-client.crt",\n "path": "~postgres-operator/client-tls.crt"\n },\n {\n "key": "pgbackrest-client.key",\n "mode": 384,\n "path": "~postgres-operator/client-tls.key"\n }\n ],\n "name": "extra-volumes-pgbackrest"\n }\n }\n ]\n }\n },\n {\n "name": "patroni-config",\n "projected": {\n "defaultMode": 420,\n "sources": [\n {\n "configMap": {\n "items": [\n {\n "key": "patroni.yaml",\n "path": "~postgres-operator_cluster.yaml"\n }\n ],\n "name": "extra-volumes-config"\n }\n },\n {\n "configMap": {\n "items": [\n {\n "key": "patroni.yaml",\n "path": "~postgres-operator_instance.yaml"\n }\n ],\n "name": "extra-volumes-instance1-64h5-config"\n }\n },\n {\n "secret": {\n "items": [\n {\n "key": "patroni.ca-roots",\n "path": "~postgres-operator/patroni.ca-roots"\n },\n {\n "key": "patroni.crt-combined",\n "path": "~postgres-operator/patroni.crt+key"\n }\n ],\n "name": "extra-volumes-instance1-64h5-certs"\n }\n }\n ]\n }\n },\n {\n "emptyDir": {},\n "name": "crunchy-bin"\n },\n {\n "emptyDir": {\n "sizeLimit": "2Gi"\n },\n "name": "tmp"\n },\n {\n "emptyDir": {\n "medium": "Memory"\n },\n "name": "dshm"\n }\n ]\n }\n },\n "updateStrategy": {\n "type": "OnDelete"\n }\n },\n "status": {\n "availableReplicas": 1,\n "collisionCount": 0,\n "currentRevision": "extra-volumes-instance1-64h5-5945964768",\n "observedGeneration": 2,\n "readyReplicas": 1,\n "replicas": 1,\n "updateRevision": "extra-volumes-instance1-64h5-7d8cfc9ffc",\n "updatedReplicas": 1\n }\n }\n ],\n "kind": "List",\n "metadata": {\n "resourceVersion": ""\n }\n}' logger.go:42: 14:36:28 | extra-volumes/3-verify-pvc-volume | + jq -e $'.items[0].spec.template.spec.volumes[]\n | select(.name == "extra-pvc")\n | select(.persistentVolumeClaim.claimName == "extra-pvc")' logger.go:42: 14:36:28 | extra-volumes/3-verify-pvc-volume | + printf '%s\n' $'{\n "apiVersion": "v1",\n "items": [\n {\n "apiVersion": "apps/v1",\n "kind": "StatefulSet",\n "metadata": {\n "annotations": {\n "pgv2.percona.com/logcollector-config-hash": "d9a116e02b828bdc02165325e92799d82961fb499041814c7c765d0ce263ce77"\n },\n "creationTimestamp": "2026-08-20T14:33:02Z",\n "generation": 2,\n "labels": {\n "app.kubernetes.io/component": "pg",\n "app.kubernetes.io/instance": "extra-volumes",\n "app.kubernetes.io/managed-by": "percona-postgresql-operator",\n "app.kubernetes.io/name": "percona-postgresql",\n "app.kubernetes.io/part-of": "percona-postgresql",\n "pgv2.percona.com/version": "3.1.0",\n "postgres-operator.crunchydata.com/cluster": "extra-volumes",\n "postgres-operator.crunchydata.com/data": "postgres",\n "postgres-operator.crunchydata.com/instance": "extra-volumes-instance1-64h5",\n "postgres-operator.crunchydata.com/instance-set": "instance1"\n },\n "name": "extra-volumes-instance1-64h5",\n "namespace": "kuttl-test-central-quagga",\n "ownerReferences": [\n {\n "apiVersion": "upstream.pgv2.percona.com/v1beta1",\n "blockOwnerDeletion": true,\n "controller": true,\n "kind": "PostgresCluster",\n "name": "extra-volumes",\n "uid": "cd01aeaf-50df-49aa-8a8a-b2dcf5429808"\n }\n ],\n "resourceVersion": "1787236569847951020",\n "uid": "ba581077-f463-4e1a-a194-a89f51d3880c"\n },\n "spec": {\n "persistentVolumeClaimRetentionPolicy": {\n "whenDeleted": "Retain",\n "whenScaled": "Retain"\n },\n "podManagementPolicy": "OrderedReady",\n "replicas": 1,\n "revisionHistoryLimit": 0,\n "selector": {\n "matchLabels": {\n "postgres-operator.crunchydata.com/cluster": "extra-volumes",\n "postgres-operator.crunchydata.com/instance": "extra-volumes-instance1-64h5",\n "postgres-operator.crunchydata.com/instance-set": "instance1"\n }\n },\n "serviceName": "extra-volumes-pods",\n "template": {\n "metadata": {\n "annotations": {\n "kubectl.kubernetes.io/default-container": "database",\n "pgv2.percona.com/logcollector-config-hash": "d9a116e02b828bdc02165325e92799d82961fb499041814c7c765d0ce263ce77"\n },\n "creationTimestamp": null,\n "labels": {\n "app.kubernetes.io/component": "pg",\n "app.kubernetes.io/instance": "extra-volumes",\n "app.kubernetes.io/managed-by": "percona-postgresql-operator",\n "app.kubernetes.io/name": "percona-postgresql",\n "app.kubernetes.io/part-of": "percona-postgresql",\n "pgv2.percona.com/version": "3.1.0",\n "postgres-operator.crunchydata.com/cluster": "extra-volumes",\n "postgres-operator.crunchydata.com/data": "postgres",\n "postgres-operator.crunchydata.com/instance": "extra-volumes-instance1-64h5",\n "postgres-operator.crunchydata.com/instance-set": "instance1",\n "postgres-operator.crunchydata.com/patroni": "extra-volumes-ha"\n }\n },\n "spec": {\n "affinity": {\n "podAntiAffinity": {\n "preferredDuringSchedulingIgnoredDuringExecution": [\n {\n "podAffinityTerm": {\n "labelSelector": {\n "matchLabels": {\n "postgres-operator.crunchydata.com/data": "postgres"\n }\n },\n "topologyKey": "kubernetes.io/hostname"\n },\n "weight": 1\n }\n ]\n }\n },\n "containers": [\n {\n "command": [\n "/opt/crunchy/bin/postgres-entrypoint.sh",\n "patroni",\n "/etc/patroni"\n ],\n "env": [\n {\n "name": "PGDATA",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PGHOST",\n "value": "/tmp/postgres"\n },\n {\n "name": "PGPORT",\n "value": "5432"\n },\n {\n "name": "KRB5_CONFIG",\n "value": "/etc/postgres/krb5.conf"\n },\n {\n "name": "KRB5RCACHEDIR",\n "value": "/tmp"\n },\n {\n "name": "LDAPTLS_CACERT",\n "value": "/etc/postgres/ldap/ca.crt"\n },\n {\n "name": "LC_ALL",\n "value": "en_US.utf-8"\n },\n {\n "name": "LANG",\n "value": "en_US.utf-8"\n },\n {\n "name": "PATRONI_NAME",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.name"\n }\n }\n },\n {\n "name": "PATRONI_KUBERNETES_POD_IP",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "status.podIP"\n }\n }\n },\n {\n "name": "PATRONI_KUBERNETES_PORTS",\n "value": "- name: postgres\\n port: 5432\\n protocol: TCP\\n"\n },\n {\n "name": "PATRONI_POSTGRESQL_CONNECT_ADDRESS",\n "value": "$(PATRONI_NAME).extra-volumes-pods:5432"\n },\n {\n "name": "PATRONI_POSTGRESQL_LISTEN",\n "value": "*:5432"\n },\n {\n "name": "PATRONI_POSTGRESQL_CONFIG_DIR",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PATRONI_POSTGRESQL_DATA_DIR",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PATRONI_RESTAPI_CONNECT_ADDRESS",\n "value": "$(PATRONI_NAME).extra-volumes-pods:8008"\n },\n {\n "name": "PATRONI_RESTAPI_LISTEN",\n "value": "*:8008"\n },\n {\n "name": "PATRONICTL_CONFIG_FILE",\n "value": "/etc/patroni"\n },\n {\n "name": "LD_PRELOAD",\n "value": "/usr/lib64/libnss_wrapper.so"\n },\n {\n "name": "NSS_WRAPPER_PASSWD",\n "value": "/tmp/nss_wrapper/postgres/passwd"\n },\n {\n "name": "NSS_WRAPPER_GROUP",\n "value": "/tmp/nss_wrapper/postgres/group"\n }\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "livenessProbe": {\n "exec": {\n "command": [\n "bash",\n "-c",\n "/opt/crunchy/bin/postgres-liveness-check.sh"\n ]\n },\n "failureThreshold": 3,\n "initialDelaySeconds": 3,\n "periodSeconds": 10,\n "successThreshold": 1,\n "timeoutSeconds": 5\n },\n "name": "database",\n "ports": [\n {\n "containerPort": 5432,\n "name": "postgres",\n "protocol": "TCP"\n }\n ],\n "readinessProbe": {\n "exec": {\n "command": [\n "bash",\n "-c",\n "/opt/crunchy/bin/postgres-readiness-check.sh"\n ]\n },\n "failureThreshold": 3,\n "initialDelaySeconds": 3,\n "periodSeconds": 10,\n "successThreshold": 1,\n "timeoutSeconds": 5\n },\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgconf/tls",\n "name": "cert-volume",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/etc/database-containerinfo",\n "name": "database-containerinfo",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata/extra/dicts",\n "name": "fts-dicts",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata/extra/data",\n "name": "extra-data"\n },\n {\n "mountPath": "/pgdata/extra/pvc",\n "name": "extra-pvc"\n },\n {\n "mountPath": "/etc/pgbackrest/conf.d",\n "name": "pgbackrest-config",\n "readOnly": true\n },\n {\n "mountPath": "/etc/patroni",\n "name": "patroni-config",\n "readOnly": true\n },\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n },\n {\n "mountPath": "/dev/shm",\n "name": "dshm"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-ceu",\n "--",\n "monitor() {\\n# Parameters for curl when managing autogrow annotation.\\nAPISERVER=\\"https://kubernetes.default.svc\\"\\nSERVICEACCOUNT=\\"/var/run/secrets/kubernetes.io/serviceaccount\\"\\nNAMESPACE=$(cat ${SERVICEACCOUNT}/namespace)\\nTOKEN=$(cat ${SERVICEACCOUNT}/token)\\nCACERT=${SERVICEACCOUNT}/ca.crt\\n\\ndeclare -r directory=\\"/pgconf/tls\\"\\nexec {fd}\\u003c\\u003e \\u003c(:||:)\\nwhile read -r -t 5 -u \\"${fd}\\" ||:; do\\n # Manage replication certificate.\\n if [[ \\"${directory}\\" -nt \\"/proc/self/fd/${fd}\\" ]] \\u0026\\u0026\\n install -D --mode=0600 -t \\"/tmp/replication\\" \\"${directory}\\"/{replication/tls.crt,replication/tls.key,replication/ca.crt} \\u0026\\u0026\\n pkill -HUP --exact --parent=1 postgres\\n then\\n exec {fd}\\u003e\\u0026- \\u0026\\u0026 exec {fd}\\u003c\\u003e \\u003c(:||:)\\n stat --format=\'Loaded certificates dated %y\' \\"${directory}\\"\\n fi\\n\\ndone\\n}; export -f monitor; exec -a \\"$0\\" bash -ceu monitor",\n "replication-cert-copy"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "replication-cert-copy",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgconf/tls",\n "name": "cert-volume",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "args": [\n "fluent-bit"\n ],\n "command": [\n "/opt/crunchy/logcollector/entrypoint.sh"\n ],\n "env": [\n {\n "name": "PG_LOG_DIR",\n "value": "/pgdata/pg18/log"\n },\n {\n "name": "PGBACKREST_LOG_DIR",\n "value": "/pgdata/pgbackrest/log"\n },\n {\n "name": "POD_NAMESPACE",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.namespace"\n }\n }\n },\n {\n "name": "POD_NAME",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.name"\n }\n }\n }\n ],\n "image": "docker.io/perconalab/fluentbit:main-logcollector",\n "imagePullPolicy": "IfNotPresent",\n "name": "logs",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "runAsGroup": 26,\n "runAsNonRoot": true,\n "runAsUser": 26,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "args": [\n "logrotate"\n ],\n "command": [\n "/opt/crunchy/logcollector/entrypoint.sh"\n ],\n "env": [\n {\n "name": "POD_NAMESPACE",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.namespace"\n }\n }\n },\n {\n "name": "POD_NAME",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.name"\n }\n }\n },\n {\n "name": "LOGROTATE_SCHEDULE",\n "value": "0 0 * * *"\n },\n {\n "name": "LD_PRELOAD",\n "value": "/tmp/nss_wrapper/libnss_wrapper.so"\n },\n {\n "name": "NSS_WRAPPER_PASSWD",\n "value": "/tmp/nss_wrapper/postgres/passwd"\n },\n {\n "name": "NSS_WRAPPER_GROUP",\n "value": "/tmp/nss_wrapper/postgres/group"\n }\n ],\n "image": "docker.io/perconalab/fluentbit:main-logcollector",\n "imagePullPolicy": "IfNotPresent",\n "name": "logrotate",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "runAsGroup": 26,\n "runAsNonRoot": true,\n "runAsUser": 26,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "pgbackrest",\n "server"\n ],\n "env": [\n {\n "name": "LD_PRELOAD",\n "value": "/usr/lib64/libnss_wrapper.so"\n },\n {\n "name": "NSS_WRAPPER_PASSWD",\n "value": "/tmp/nss_wrapper/postgres/passwd"\n },\n {\n "name": "NSS_WRAPPER_GROUP",\n "value": "/tmp/nss_wrapper/postgres/group"\n }\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18",\n "imagePullPolicy": "Always",\n "livenessProbe": {\n "exec": {\n "command": [\n "pgbackrest",\n "server-ping"\n ]\n },\n "failureThreshold": 3,\n "periodSeconds": 10,\n "successThreshold": 1,\n "timeoutSeconds": 1\n },\n "name": "pgbackrest",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/etc/pgbackrest/server",\n "name": "pgbackrest-server",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/etc/pgbackrest/conf.d",\n "name": "pgbackrest-config",\n "readOnly": true\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-ceu",\n "--",\n "monitor() {\\nexec {fd}\\u003c\\u003e \\u003c(:||:)\\nuntil read -r -t 5 -u \\"${fd}\\"; do\\n if\\n [[ \\"${filename}\\" -nt \\"/proc/self/fd/${fd}\\" ]] \\u0026\\u0026\\n pkill -HUP --exact --parent=0 pgbackrest\\n then\\n exec {fd}\\u003e\\u0026- \\u0026\\u0026 exec {fd}\\u003c\\u003e \\u003c(:||:)\\n stat --dereference --format=\'Loaded configuration dated %y\' \\"${filename}\\"\\n elif\\n { [[ \\"${directory}\\" -nt \\"/proc/self/fd/${fd}\\" ]] ||\\n [[ \\"${authority}\\" -nt \\"/proc/self/fd/${fd}\\" ]]\\n } \\u0026\\u0026\\n pkill -HUP --exact --parent=0 pgbackrest\\n then\\n exec {fd}\\u003e\\u0026- \\u0026\\u0026 exec {fd}\\u003c\\u003e \\u003c(:||:)\\n stat --format=\'Loaded certificates dated %y\' \\"${directory}\\"\\n fi\\ndone\\n}; export directory=\\"$1\\" authority=\\"$2\\" filename=\\"$3\\"; export -f monitor; exec -a \\"$0\\" bash -ceu monitor",\n "pgbackrest-config",\n "/etc/pgbackrest/server",\n "/etc/pgbackrest/conf.d/~postgres-operator/tls-ca.crt",\n "/etc/pgbackrest/conf.d/~postgres-operator_server.conf"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18",\n "imagePullPolicy": "Always",\n "name": "pgbackrest-config",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/etc/pgbackrest/server",\n "name": "pgbackrest-server",\n "readOnly": true\n },\n {\n "mountPath": "/etc/pgbackrest/conf.d",\n "name": "pgbackrest-config",\n "readOnly": true\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n }\n ],\n "dnsPolicy": "ClusterFirst",\n "enableServiceLinks": false,\n "initContainers": [\n {\n "command": [\n "/usr/local/bin/init-entrypoint.sh"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6",\n "imagePullPolicy": "Always",\n "name": "database-init",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-ceu",\n "--",\n "declare -r expected_major_version=\\"$1\\" pgwal_directory=\\"$2\\" pgbrLog_directory=\\"$3\\"\\npermissions() { while [[ -n \\"$1\\" ]]; do set \\"${1%/*}\\" \\"$@\\"; done; shift; stat -Lc \'%A %4u %4g %n\' \\"$@\\"; }\\nhalt() { local rc=$?; \\u003e\\u00262 echo \\"$@\\"; exit \\"${rc/#0/1}\\"; }\\nresults() { printf \'::postgres-operator: %s::%s\\\\n\' \\"$@\\"; }\\nrecreate() (\\n local tmp; tmp=$(mktemp -d -p \\"${1%/*}\\"); GLOBIGNORE=\'.:..\'; set -x\\n chmod \\"$2\\" \\"${tmp}\\"; mv \\"$1\\"/* \\"${tmp}\\"; rmdir \\"$1\\"; mv \\"${tmp}\\" \\"$1\\"\\n)\\nsafelink() (\\n local desired=\\"$1\\" name=\\"$2\\" current\\n current=$(realpath \\"${name}\\")\\n if [[ \\"${current}\\" == \\"${desired}\\" ]]; then return; fi\\n set -x; mv --no-target-directory \\"${current}\\" \\"${desired}\\"\\n ln --no-dereference --force --symbolic \\"${desired}\\" \\"${name}\\"\\n)\\necho Initializing ...\\nresults \'uid\' \\"$(id -u ||:)\\" \'gid\' \\"$(id -G ||:)\\"\\nif [[ \\"${pgwal_directory}\\" == *\\"pgwal/\\"* ]] \\u0026\\u0026 [[ ! -d \\"/pgwal/pgbackrest-spool\\" ]];then rm -rf \\"/pgdata/pgbackrest-spool\\" \\u0026\\u0026 mkdir -p \\"/pgwal/pgbackrest-spool\\" \\u0026\\u0026 ln --force --symbolic \\"/pgwal/pgbackrest-spool\\" \\"/pgdata/pgbackrest-spool\\";fi\\nif [[ ! -e \\"/pgdata/pgbackrest-spool\\" ]];then rm -rf /pgdata/pgbackrest-spool;fi\\nresults \'postgres path\' \\"$(command -v postgres ||:)\\"\\nresults \'postgres version\' \\"${postgres_version:=$(postgres --version ||:)}\\"\\n[[ \\"${postgres_version}\\" =~ \\") ${expected_major_version}\\"($|[^0-9]) ]] ||\\nhalt Expected PostgreSQL version \\"${expected_major_version}\\"\\nresults \'config directory\' \\"${PGDATA:?}\\"\\npostgres_data_directory=$([[ -d \\"${PGDATA}\\" ]] \\u0026\\u0026 postgres -C data_directory || echo \\"${PGDATA}\\")\\nresults \'data directory\' \\"${postgres_data_directory}\\"\\n[[ \\"${postgres_data_directory}\\" == \\"${PGDATA}\\" ]] ||\\nhalt Expected matching config and data directories\\nbootstrap_dir=\\"${postgres_data_directory}_bootstrap\\"\\n[[ -d \\"${bootstrap_dir}\\" ]] \\u0026\\u0026 results \'bootstrap directory\' \\"${bootstrap_dir}\\"\\n[[ -d \\"${bootstrap_dir}\\" ]] \\u0026\\u0026 postgres_data_directory=\\"${bootstrap_dir}\\"\\nif [[ ! -e \\"${postgres_data_directory}\\" || -O \\"${postgres_data_directory}\\" ]]; then\\ninstall --directory --mode=0700 \\"${postgres_data_directory}\\"\\nelif [[ -w \\"${postgres_data_directory}\\" \\u0026\\u0026 -g \\"${postgres_data_directory}\\" ]]; then\\nrecreate \\"${postgres_data_directory}\\" \'0700\'\\nelse (halt Permissions!); fi ||\\nhalt \\"$(permissions \\"${postgres_data_directory}\\" ||:)\\"\\nresults \'pgBackRest log directory\' \\"${pgbrLog_directory}\\"\\ninstall --directory --mode=0775 \\"${pgbrLog_directory}\\" ||\\nhalt \\"$(permissions \\"${pgbrLog_directory}\\" ||:)\\"\\ninstall -D --mode=0600 -t \\"/tmp/replication\\" \\"/pgconf/tls/replication\\"/{tls.crt,tls.key,ca.crt}\\n\\n[[ -f \\"${postgres_data_directory}/PG_VERSION\\" ]] || exit 0\\nresults \'data version\' \\"${postgres_data_version:=$(\\u003c \\"${postgres_data_directory}/PG_VERSION\\")}\\"\\n[[ \\"${postgres_data_version}\\" == \\"${expected_major_version}\\" ]] ||\\nhalt Expected PostgreSQL data version \\"${expected_major_version}\\"\\n[[ ! -f \\"${postgres_data_directory}/postgresql.conf\\" ]] \\u0026\\u0026\\ntouch \\"${postgres_data_directory}/postgresql.conf\\"\\nsafelink \\"${pgwal_directory}\\" \\"${postgres_data_directory}/pg_wal\\"\\nresults \'wal directory\' \\"$(realpath \\"${postgres_data_directory}/pg_wal\\" ||:)\\"\\nrm -f \\"${postgres_data_directory}/recovery.signal\\"",\n "startup",\n "18",\n "/pgdata/pg18_wal",\n "/pgdata/pgbackrest/log"\n ],\n "env": [\n {\n "name": "PGDATA",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PGHOST",\n "value": "/tmp/postgres"\n },\n {\n "name": "PGPORT",\n "value": "5432"\n },\n {\n "name": "KRB5_CONFIG",\n "value": "/etc/postgres/krb5.conf"\n },\n {\n "name": "KRB5RCACHEDIR",\n "value": "/tmp"\n },\n {\n "name": "LDAPTLS_CACERT",\n "value": "/etc/postgres/ldap/ca.crt"\n },\n {\n "name": "LC_ALL",\n "value": "en_US.utf-8"\n },\n {\n "name": "LANG",\n "value": "en_US.utf-8"\n }\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "postgres-startup",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgconf/tls",\n "name": "cert-volume",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-c",\n "mkdir -p /tmp/nss_wrapper \\u0026\\u0026 { [[ -f /tmp/nss_wrapper/libnss_wrapper.so ]] || cp /usr/lib64/libnss_wrapper.so /tmp/nss_wrapper/libnss_wrapper.so; }"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "nss-wrapper-init-logcollector",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "runAsGroup": 26,\n "runAsNonRoot": true,\n "runAsUser": 26,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-c",\n "export NSS_WRAPPER_SUBDIR=postgres CRUNCHY_NSS_USERNAME=postgres CRUNCHY_NSS_USER_DESC=\\"postgres\\" \\n# Define nss_wrapper directory and passwd \\u0026 group files that will be utilized by nss_wrapper. The\\n# nss_wrapper_env.sh script (which also sets these vars) isn\'t sourced here since the nss_wrapper\\n# has not yet been setup, and we therefore don\'t yet want the nss_wrapper vars in the environment.\\nmkdir -p /tmp/nss_wrapper\\nchmod g+rwx /tmp/nss_wrapper\\n\\nNSS_WRAPPER_DIR=\\"/tmp/nss_wrapper/${NSS_WRAPPER_SUBDIR}\\"\\nNSS_WRAPPER_PASSWD=\\"${NSS_WRAPPER_DIR}/passwd\\"\\nNSS_WRAPPER_GROUP=\\"${NSS_WRAPPER_DIR}/group\\"\\n\\n# create the nss_wrapper directory\\nmkdir -p \\"${NSS_WRAPPER_DIR}\\"\\n\\n# grab the current user ID and group ID\\nUSER_ID=$(id -u)\\nexport USER_ID\\nGROUP_ID=$(id -g)\\nexport GROUP_ID\\n\\n# get copies of the passwd and group files\\n[[ -f \\"${NSS_WRAPPER_PASSWD}\\" ]] || cp \\"/etc/passwd\\" \\"${NSS_WRAPPER_PASSWD}\\"\\n[[ -f \\"${NSS_WRAPPER_GROUP}\\" ]] || cp \\"/etc/group\\" \\"${NSS_WRAPPER_GROUP}\\"\\n\\n# if the username is missing from the passwd file, then add it\\nif [[ ! $(cat \\"${NSS_WRAPPER_PASSWD}\\") =~ ${CRUNCHY_NSS_USERNAME}:x:${USER_ID} ]]; then\\n echo \\"nss_wrapper: adding user\\"\\n passwd_tmp=\\"${NSS_WRAPPER_DIR}/passwd_tmp\\"\\n cp \\"${NSS_WRAPPER_PASSWD}\\" \\"${passwd_tmp}\\"\\n sed -i \\"/${CRUNCHY_NSS_USERNAME}:x:/d\\" \\"${passwd_tmp}\\"\\n # needed for OCP 4.x because crio updates /etc/passwd with an entry for USER_ID\\n sed -i \\"/${USER_ID}:x:/d\\" \\"${passwd_tmp}\\"\\n printf \'${CRUNCHY_NSS_USERNAME}:x:${USER_ID}:${GROUP_ID}:${CRUNCHY_NSS_USER_DESC}:${HOME}:/bin/bash\\\\n\' \\u003e\\u003e \\"${passwd_tmp}\\"\\n envsubst \\u003c \\"${passwd_tmp}\\" \\u003e \\"${NSS_WRAPPER_PASSWD}\\"\\n rm \\"${passwd_tmp}\\"\\nelse\\n echo \\"nss_wrapper: user exists\\"\\nfi\\n\\n# if the username (which will be the same as the group name) is missing from group file, then add it\\nif [[ ! $(cat \\"${NSS_WRAPPER_GROUP}\\") =~ ${CRUNCHY_NSS_USERNAME}:x:${USER_ID} ]]; then\\n echo \\"nss_wrapper: adding group\\"\\n group_tmp=\\"${NSS_WRAPPER_DIR}/group_tmp\\"\\n cp \\"${NSS_WRAPPER_GROUP}\\" \\"${group_tmp}\\"\\n sed -i \\"/${CRUNCHY_NSS_USERNAME}:x:/d\\" \\"${group_tmp}\\"\\n printf \'${CRUNCHY_NSS_USERNAME}:x:${USER_ID}:${CRUNCHY_NSS_USERNAME}\\\\n\' \\u003e\\u003e \\"${group_tmp}\\"\\n envsubst \\u003c \\"${group_tmp}\\" \\u003e \\"${NSS_WRAPPER_GROUP}\\"\\n rm \\"${group_tmp}\\"\\nelse\\n echo \\"nss_wrapper: group exists\\"\\nfi\\n\\n# export the nss_wrapper env vars\\n# define nss_wrapper directory and passwd \\u0026 group files that will be utilized by nss_wrapper\\nNSS_WRAPPER_DIR=\\"/tmp/nss_wrapper/${NSS_WRAPPER_SUBDIR}\\"\\nNSS_WRAPPER_PASSWD=\\"${NSS_WRAPPER_DIR}/passwd\\"\\nNSS_WRAPPER_GROUP=\\"${NSS_WRAPPER_DIR}/group\\"\\n\\nexport LD_PRELOAD=/usr/lib64/libnss_wrapper.so\\nexport NSS_WRAPPER_PASSWD=\\"${NSS_WRAPPER_PASSWD}\\"\\nexport NSS_WRAPPER_GROUP=\\"${NSS_WRAPPER_GROUP}\\"\\n\\necho \\"nss_wrapper: environment configured\\"\\n"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "nss-wrapper-init",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n }\n ],\n "restartPolicy": "Always",\n "schedulerName": "default-scheduler",\n "securityContext": {\n "fsGroup": 26,\n "fsGroupChangePolicy": "OnRootMismatch"\n },\n "serviceAccount": "extra-volumes-instance",\n "serviceAccountName": "extra-volumes-instance",\n "shareProcessNamespace": true,\n "terminationGracePeriodSeconds": 30,\n "topologySpreadConstraints": [\n {\n "labelSelector": {\n "matchExpressions": [\n {\n "key": "postgres-operator.crunchydata.com/data",\n "operator": "In",\n "values": [\n "postgres",\n "pgbackrest"\n ]\n }\n ],\n "matchLabels": {\n "postgres-operator.crunchydata.com/cluster": "extra-volumes"\n }\n },\n "maxSkew": 1,\n "topologyKey": "kubernetes.io/hostname",\n "whenUnsatisfiable": "ScheduleAnyway"\n },\n {\n "labelSelector": {\n "matchExpressions": [\n {\n "key": "postgres-operator.crunchydata.com/data",\n "operator": "In",\n "values": [\n "postgres",\n "pgbackrest"\n ]\n }\n ],\n "matchLabels": {\n "postgres-operator.crunchydata.com/cluster": "extra-volumes"\n }\n },\n "maxSkew": 1,\n "topologyKey": "topology.kubernetes.io/zone",\n "whenUnsatisfiable": "ScheduleAnyway"\n }\n ],\n "volumes": [\n {\n "name": "cert-volume",\n "projected": {\n "defaultMode": 384,\n "sources": [\n {\n "secret": {\n "items": [\n {\n "key": "tls.crt",\n "path": "tls.crt"\n },\n {\n "key": "tls.key",\n "path": "tls.key"\n },\n {\n "key": "ca.crt",\n "path": "ca.crt"\n }\n ],\n "name": "extra-volumes-cluster-cert"\n }\n },\n {\n "secret": {\n "items": [\n {\n "key": "tls.crt",\n "path": "replication/tls.crt"\n },\n {\n "key": "tls.key",\n "path": "replication/tls.key"\n },\n {\n "key": "ca.crt",\n "path": "replication/ca.crt"\n }\n ],\n "name": "extra-volumes-replication-cert"\n }\n }\n ]\n }\n },\n {\n "name": "postgres-data",\n "persistentVolumeClaim": {\n "claimName": "extra-volumes-instance1-64h5-pgdata"\n }\n },\n {\n "downwardAPI": {\n "defaultMode": 420,\n "items": [\n {\n "path": "cpu_limit",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1m",\n "resource": "limits.cpu"\n }\n },\n {\n "path": "cpu_request",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1m",\n "resource": "requests.cpu"\n }\n },\n {\n "path": "mem_limit",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1Mi",\n "resource": "limits.memory"\n }\n },\n {\n "path": "mem_request",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1Mi",\n "resource": "requests.memory"\n }\n },\n {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.labels"\n },\n "path": "labels"\n },\n {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.annotations"\n },\n "path": "annotations"\n }\n ]\n },\n "name": "database-containerinfo"\n },\n {\n "configMap": {\n "defaultMode": 420,\n "name": "extra-dicts"\n },\n "name": "fts-dicts"\n },\n {\n "emptyDir": {},\n "name": "extra-data"\n },\n {\n "name": "extra-pvc",\n "persistentVolumeClaim": {\n "claimName": "extra-pvc"\n }\n },\n {\n "name": "pgbackrest-server",\n "projected": {\n "defaultMode": 420,\n "sources": [\n {\n "secret": {\n "items": [\n {\n "key": "pgbackrest-server.crt",\n "path": "server-tls.crt"\n },\n {\n "key": "pgbackrest-server.key",\n "mode": 384,\n "path": "server-tls.key"\n }\n ],\n "name": "extra-volumes-instance1-64h5-certs"\n }\n }\n ]\n }\n },\n {\n "name": "pgbackrest-config",\n "projected": {\n "defaultMode": 420,\n "sources": [\n {\n "configMap": {\n "items": [\n {\n "key": "pgbackrest_instance.conf",\n "path": "pgbackrest_instance.conf"\n },\n {\n "key": "config-hash",\n "path": "config-hash"\n },\n {\n "key": "pgbackrest-server.conf",\n "path": "~postgres-operator_server.conf"\n }\n ],\n "name": "extra-volumes-pgbackrest-config"\n }\n },\n {\n "secret": {\n "items": [\n {\n "key": "pgbackrest.ca-roots",\n "path": "~postgres-operator/tls-ca.crt"\n },\n {\n "key": "pgbackrest-client.crt",\n "path": "~postgres-operator/client-tls.crt"\n },\n {\n "key": "pgbackrest-client.key",\n "mode": 384,\n "path": "~postgres-operator/client-tls.key"\n }\n ],\n "name": "extra-volumes-pgbackrest"\n }\n }\n ]\n }\n },\n {\n "name": "patroni-config",\n "projected": {\n "defaultMode": 420,\n "sources": [\n {\n "configMap": {\n "items": [\n {\n "key": "patroni.yaml",\n "path": "~postgres-operator_cluster.yaml"\n }\n ],\n "name": "extra-volumes-config"\n }\n },\n {\n "configMap": {\n "items": [\n {\n "key": "patroni.yaml",\n "path": "~postgres-operator_instance.yaml"\n }\n ],\n "name": "extra-volumes-instance1-64h5-config"\n }\n },\n {\n "secret": {\n "items": [\n {\n "key": "patroni.ca-roots",\n "path": "~postgres-operator/patroni.ca-roots"\n },\n {\n "key": "patroni.crt-combined",\n "path": "~postgres-operator/patroni.crt+key"\n }\n ],\n "name": "extra-volumes-instance1-64h5-certs"\n }\n }\n ]\n }\n },\n {\n "emptyDir": {},\n "name": "crunchy-bin"\n },\n {\n "emptyDir": {\n "sizeLimit": "2Gi"\n },\n "name": "tmp"\n },\n {\n "emptyDir": {\n "medium": "Memory"\n },\n "name": "dshm"\n }\n ]\n }\n },\n "updateStrategy": {\n "type": "OnDelete"\n }\n },\n "status": {\n "availableReplicas": 1,\n "collisionCount": 0,\n "currentRevision": "extra-volumes-instance1-64h5-5945964768",\n "observedGeneration": 2,\n "readyReplicas": 1,\n "replicas": 1,\n "updateRevision": "extra-volumes-instance1-64h5-7d8cfc9ffc",\n "updatedReplicas": 1\n }\n }\n ],\n "kind": "List",\n "metadata": {\n "resourceVersion": ""\n }\n}' logger.go:42: 14:36:28 | extra-volumes/3-verify-pvc-volume | + jq -e $'.items[0].spec.template.spec.containers[]\n | select(.name == "database") | .volumeMounts[]\n | select(.mountPath == "/pgdata/extra/pvc")' logger.go:42: 14:36:28 | extra-volumes/3-verify-pvc-volume | + printf '%s\n' $'{\n "apiVersion": "v1",\n "items": [\n {\n "apiVersion": "apps/v1",\n "kind": "StatefulSet",\n "metadata": {\n "annotations": {\n "pgv2.percona.com/logcollector-config-hash": "d9a116e02b828bdc02165325e92799d82961fb499041814c7c765d0ce263ce77"\n },\n "creationTimestamp": "2026-08-20T14:33:02Z",\n "generation": 2,\n "labels": {\n "app.kubernetes.io/component": "pg",\n "app.kubernetes.io/instance": "extra-volumes",\n "app.kubernetes.io/managed-by": "percona-postgresql-operator",\n "app.kubernetes.io/name": "percona-postgresql",\n "app.kubernetes.io/part-of": "percona-postgresql",\n "pgv2.percona.com/version": "3.1.0",\n "postgres-operator.crunchydata.com/cluster": "extra-volumes",\n "postgres-operator.crunchydata.com/data": "postgres",\n "postgres-operator.crunchydata.com/instance": "extra-volumes-instance1-64h5",\n "postgres-operator.crunchydata.com/instance-set": "instance1"\n },\n "name": "extra-volumes-instance1-64h5",\n "namespace": "kuttl-test-central-quagga",\n "ownerReferences": [\n {\n "apiVersion": "upstream.pgv2.percona.com/v1beta1",\n "blockOwnerDeletion": true,\n "controller": true,\n "kind": "PostgresCluster",\n "name": "extra-volumes",\n "uid": "cd01aeaf-50df-49aa-8a8a-b2dcf5429808"\n }\n ],\n "resourceVersion": "1787236569847951020",\n "uid": "ba581077-f463-4e1a-a194-a89f51d3880c"\n },\n "spec": {\n "persistentVolumeClaimRetentionPolicy": {\n "whenDeleted": "Retain",\n "whenScaled": "Retain"\n },\n "podManagementPolicy": "OrderedReady",\n "replicas": 1,\n "revisionHistoryLimit": 0,\n "selector": {\n "matchLabels": {\n "postgres-operator.crunchydata.com/cluster": "extra-volumes",\n "postgres-operator.crunchydata.com/instance": "extra-volumes-instance1-64h5",\n "postgres-operator.crunchydata.com/instance-set": "instance1"\n }\n },\n "serviceName": "extra-volumes-pods",\n "template": {\n "metadata": {\n "annotations": {\n "kubectl.kubernetes.io/default-container": "database",\n "pgv2.percona.com/logcollector-config-hash": "d9a116e02b828bdc02165325e92799d82961fb499041814c7c765d0ce263ce77"\n },\n "creationTimestamp": null,\n "labels": {\n "app.kubernetes.io/component": "pg",\n "app.kubernetes.io/instance": "extra-volumes",\n "app.kubernetes.io/managed-by": "percona-postgresql-operator",\n "app.kubernetes.io/name": "percona-postgresql",\n "app.kubernetes.io/part-of": "percona-postgresql",\n "pgv2.percona.com/version": "3.1.0",\n "postgres-operator.crunchydata.com/cluster": "extra-volumes",\n "postgres-operator.crunchydata.com/data": "postgres",\n "postgres-operator.crunchydata.com/instance": "extra-volumes-instance1-64h5",\n "postgres-operator.crunchydata.com/instance-set": "instance1",\n "postgres-operator.crunchydata.com/patroni": "extra-volumes-ha"\n }\n },\n "spec": {\n "affinity": {\n "podAntiAffinity": {\n "preferredDuringSchedulingIgnoredDuringExecution": [\n {\n "podAffinityTerm": {\n "labelSelector": {\n "matchLabels": {\n "postgres-operator.crunchydata.com/data": "postgres"\n }\n },\n "topologyKey": "kubernetes.io/hostname"\n },\n "weight": 1\n }\n ]\n }\n },\n "containers": [\n {\n "command": [\n "/opt/crunchy/bin/postgres-entrypoint.sh",\n "patroni",\n "/etc/patroni"\n ],\n "env": [\n {\n "name": "PGDATA",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PGHOST",\n "value": "/tmp/postgres"\n },\n {\n "name": "PGPORT",\n "value": "5432"\n },\n {\n "name": "KRB5_CONFIG",\n "value": "/etc/postgres/krb5.conf"\n },\n {\n "name": "KRB5RCACHEDIR",\n "value": "/tmp"\n },\n {\n "name": "LDAPTLS_CACERT",\n "value": "/etc/postgres/ldap/ca.crt"\n },\n {\n "name": "LC_ALL",\n "value": "en_US.utf-8"\n },\n {\n "name": "LANG",\n "value": "en_US.utf-8"\n },\n {\n "name": "PATRONI_NAME",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.name"\n }\n }\n },\n {\n "name": "PATRONI_KUBERNETES_POD_IP",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "status.podIP"\n }\n }\n },\n {\n "name": "PATRONI_KUBERNETES_PORTS",\n "value": "- name: postgres\\n port: 5432\\n protocol: TCP\\n"\n },\n {\n "name": "PATRONI_POSTGRESQL_CONNECT_ADDRESS",\n "value": "$(PATRONI_NAME).extra-volumes-pods:5432"\n },\n {\n "name": "PATRONI_POSTGRESQL_LISTEN",\n "value": "*:5432"\n },\n {\n "name": "PATRONI_POSTGRESQL_CONFIG_DIR",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PATRONI_POSTGRESQL_DATA_DIR",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PATRONI_RESTAPI_CONNECT_ADDRESS",\n "value": "$(PATRONI_NAME).extra-volumes-pods:8008"\n },\n {\n "name": "PATRONI_RESTAPI_LISTEN",\n "value": "*:8008"\n },\n {\n "name": "PATRONICTL_CONFIG_FILE",\n "value": "/etc/patroni"\n },\n {\n "name": "LD_PRELOAD",\n "value": "/usr/lib64/libnss_wrapper.so"\n },\n {\n "name": "NSS_WRAPPER_PASSWD",\n "value": "/tmp/nss_wrapper/postgres/passwd"\n },\n {\n "name": "NSS_WRAPPER_GROUP",\n "value": "/tmp/nss_wrapper/postgres/group"\n }\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "livenessProbe": {\n "exec": {\n "command": [\n "bash",\n "-c",\n "/opt/crunchy/bin/postgres-liveness-check.sh"\n ]\n },\n "failureThreshold": 3,\n "initialDelaySeconds": 3,\n "periodSeconds": 10,\n "successThreshold": 1,\n "timeoutSeconds": 5\n },\n "name": "database",\n "ports": [\n {\n "containerPort": 5432,\n "name": "postgres",\n "protocol": "TCP"\n }\n ],\n "readinessProbe": {\n "exec": {\n "command": [\n "bash",\n "-c",\n "/opt/crunchy/bin/postgres-readiness-check.sh"\n ]\n },\n "failureThreshold": 3,\n "initialDelaySeconds": 3,\n "periodSeconds": 10,\n "successThreshold": 1,\n "timeoutSeconds": 5\n },\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgconf/tls",\n "name": "cert-volume",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/etc/database-containerinfo",\n "name": "database-containerinfo",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata/extra/dicts",\n "name": "fts-dicts",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata/extra/data",\n "name": "extra-data"\n },\n {\n "mountPath": "/pgdata/extra/pvc",\n "name": "extra-pvc"\n },\n {\n "mountPath": "/etc/pgbackrest/conf.d",\n "name": "pgbackrest-config",\n "readOnly": true\n },\n {\n "mountPath": "/etc/patroni",\n "name": "patroni-config",\n "readOnly": true\n },\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n },\n {\n "mountPath": "/dev/shm",\n "name": "dshm"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-ceu",\n "--",\n "monitor() {\\n# Parameters for curl when managing autogrow annotation.\\nAPISERVER=\\"https://kubernetes.default.svc\\"\\nSERVICEACCOUNT=\\"/var/run/secrets/kubernetes.io/serviceaccount\\"\\nNAMESPACE=$(cat ${SERVICEACCOUNT}/namespace)\\nTOKEN=$(cat ${SERVICEACCOUNT}/token)\\nCACERT=${SERVICEACCOUNT}/ca.crt\\n\\ndeclare -r directory=\\"/pgconf/tls\\"\\nexec {fd}\\u003c\\u003e \\u003c(:||:)\\nwhile read -r -t 5 -u \\"${fd}\\" ||:; do\\n # Manage replication certificate.\\n if [[ \\"${directory}\\" -nt \\"/proc/self/fd/${fd}\\" ]] \\u0026\\u0026\\n install -D --mode=0600 -t \\"/tmp/replication\\" \\"${directory}\\"/{replication/tls.crt,replication/tls.key,replication/ca.crt} \\u0026\\u0026\\n pkill -HUP --exact --parent=1 postgres\\n then\\n exec {fd}\\u003e\\u0026- \\u0026\\u0026 exec {fd}\\u003c\\u003e \\u003c(:||:)\\n stat --format=\'Loaded certificates dated %y\' \\"${directory}\\"\\n fi\\n\\ndone\\n}; export -f monitor; exec -a \\"$0\\" bash -ceu monitor",\n "replication-cert-copy"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "replication-cert-copy",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgconf/tls",\n "name": "cert-volume",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "args": [\n "fluent-bit"\n ],\n "command": [\n "/opt/crunchy/logcollector/entrypoint.sh"\n ],\n "env": [\n {\n "name": "PG_LOG_DIR",\n "value": "/pgdata/pg18/log"\n },\n {\n "name": "PGBACKREST_LOG_DIR",\n "value": "/pgdata/pgbackrest/log"\n },\n {\n "name": "POD_NAMESPACE",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.namespace"\n }\n }\n },\n {\n "name": "POD_NAME",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.name"\n }\n }\n }\n ],\n "image": "docker.io/perconalab/fluentbit:main-logcollector",\n "imagePullPolicy": "IfNotPresent",\n "name": "logs",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "runAsGroup": 26,\n "runAsNonRoot": true,\n "runAsUser": 26,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "args": [\n "logrotate"\n ],\n "command": [\n "/opt/crunchy/logcollector/entrypoint.sh"\n ],\n "env": [\n {\n "name": "POD_NAMESPACE",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.namespace"\n }\n }\n },\n {\n "name": "POD_NAME",\n "valueFrom": {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.name"\n }\n }\n },\n {\n "name": "LOGROTATE_SCHEDULE",\n "value": "0 0 * * *"\n },\n {\n "name": "LD_PRELOAD",\n "value": "/tmp/nss_wrapper/libnss_wrapper.so"\n },\n {\n "name": "NSS_WRAPPER_PASSWD",\n "value": "/tmp/nss_wrapper/postgres/passwd"\n },\n {\n "name": "NSS_WRAPPER_GROUP",\n "value": "/tmp/nss_wrapper/postgres/group"\n }\n ],\n "image": "docker.io/perconalab/fluentbit:main-logcollector",\n "imagePullPolicy": "IfNotPresent",\n "name": "logrotate",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "runAsGroup": 26,\n "runAsNonRoot": true,\n "runAsUser": 26,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "pgbackrest",\n "server"\n ],\n "env": [\n {\n "name": "LD_PRELOAD",\n "value": "/usr/lib64/libnss_wrapper.so"\n },\n {\n "name": "NSS_WRAPPER_PASSWD",\n "value": "/tmp/nss_wrapper/postgres/passwd"\n },\n {\n "name": "NSS_WRAPPER_GROUP",\n "value": "/tmp/nss_wrapper/postgres/group"\n }\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18",\n "imagePullPolicy": "Always",\n "livenessProbe": {\n "exec": {\n "command": [\n "pgbackrest",\n "server-ping"\n ]\n },\n "failureThreshold": 3,\n "periodSeconds": 10,\n "successThreshold": 1,\n "timeoutSeconds": 1\n },\n "name": "pgbackrest",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/etc/pgbackrest/server",\n "name": "pgbackrest-server",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/etc/pgbackrest/conf.d",\n "name": "pgbackrest-config",\n "readOnly": true\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-ceu",\n "--",\n "monitor() {\\nexec {fd}\\u003c\\u003e \\u003c(:||:)\\nuntil read -r -t 5 -u \\"${fd}\\"; do\\n if\\n [[ \\"${filename}\\" -nt \\"/proc/self/fd/${fd}\\" ]] \\u0026\\u0026\\n pkill -HUP --exact --parent=0 pgbackrest\\n then\\n exec {fd}\\u003e\\u0026- \\u0026\\u0026 exec {fd}\\u003c\\u003e \\u003c(:||:)\\n stat --dereference --format=\'Loaded configuration dated %y\' \\"${filename}\\"\\n elif\\n { [[ \\"${directory}\\" -nt \\"/proc/self/fd/${fd}\\" ]] ||\\n [[ \\"${authority}\\" -nt \\"/proc/self/fd/${fd}\\" ]]\\n } \\u0026\\u0026\\n pkill -HUP --exact --parent=0 pgbackrest\\n then\\n exec {fd}\\u003e\\u0026- \\u0026\\u0026 exec {fd}\\u003c\\u003e \\u003c(:||:)\\n stat --format=\'Loaded certificates dated %y\' \\"${directory}\\"\\n fi\\ndone\\n}; export directory=\\"$1\\" authority=\\"$2\\" filename=\\"$3\\"; export -f monitor; exec -a \\"$0\\" bash -ceu monitor",\n "pgbackrest-config",\n "/etc/pgbackrest/server",\n "/etc/pgbackrest/conf.d/~postgres-operator/tls-ca.crt",\n "/etc/pgbackrest/conf.d/~postgres-operator_server.conf"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18",\n "imagePullPolicy": "Always",\n "name": "pgbackrest-config",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/etc/pgbackrest/server",\n "name": "pgbackrest-server",\n "readOnly": true\n },\n {\n "mountPath": "/etc/pgbackrest/conf.d",\n "name": "pgbackrest-config",\n "readOnly": true\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n }\n ],\n "dnsPolicy": "ClusterFirst",\n "enableServiceLinks": false,\n "initContainers": [\n {\n "command": [\n "/usr/local/bin/init-entrypoint.sh"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6",\n "imagePullPolicy": "Always",\n "name": "database-init",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/opt/crunchy",\n "name": "crunchy-bin"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-ceu",\n "--",\n "declare -r expected_major_version=\\"$1\\" pgwal_directory=\\"$2\\" pgbrLog_directory=\\"$3\\"\\npermissions() { while [[ -n \\"$1\\" ]]; do set \\"${1%/*}\\" \\"$@\\"; done; shift; stat -Lc \'%A %4u %4g %n\' \\"$@\\"; }\\nhalt() { local rc=$?; \\u003e\\u00262 echo \\"$@\\"; exit \\"${rc/#0/1}\\"; }\\nresults() { printf \'::postgres-operator: %s::%s\\\\n\' \\"$@\\"; }\\nrecreate() (\\n local tmp; tmp=$(mktemp -d -p \\"${1%/*}\\"); GLOBIGNORE=\'.:..\'; set -x\\n chmod \\"$2\\" \\"${tmp}\\"; mv \\"$1\\"/* \\"${tmp}\\"; rmdir \\"$1\\"; mv \\"${tmp}\\" \\"$1\\"\\n)\\nsafelink() (\\n local desired=\\"$1\\" name=\\"$2\\" current\\n current=$(realpath \\"${name}\\")\\n if [[ \\"${current}\\" == \\"${desired}\\" ]]; then return; fi\\n set -x; mv --no-target-directory \\"${current}\\" \\"${desired}\\"\\n ln --no-dereference --force --symbolic \\"${desired}\\" \\"${name}\\"\\n)\\necho Initializing ...\\nresults \'uid\' \\"$(id -u ||:)\\" \'gid\' \\"$(id -G ||:)\\"\\nif [[ \\"${pgwal_directory}\\" == *\\"pgwal/\\"* ]] \\u0026\\u0026 [[ ! -d \\"/pgwal/pgbackrest-spool\\" ]];then rm -rf \\"/pgdata/pgbackrest-spool\\" \\u0026\\u0026 mkdir -p \\"/pgwal/pgbackrest-spool\\" \\u0026\\u0026 ln --force --symbolic \\"/pgwal/pgbackrest-spool\\" \\"/pgdata/pgbackrest-spool\\";fi\\nif [[ ! -e \\"/pgdata/pgbackrest-spool\\" ]];then rm -rf /pgdata/pgbackrest-spool;fi\\nresults \'postgres path\' \\"$(command -v postgres ||:)\\"\\nresults \'postgres version\' \\"${postgres_version:=$(postgres --version ||:)}\\"\\n[[ \\"${postgres_version}\\" =~ \\") ${expected_major_version}\\"($|[^0-9]) ]] ||\\nhalt Expected PostgreSQL version \\"${expected_major_version}\\"\\nresults \'config directory\' \\"${PGDATA:?}\\"\\npostgres_data_directory=$([[ -d \\"${PGDATA}\\" ]] \\u0026\\u0026 postgres -C data_directory || echo \\"${PGDATA}\\")\\nresults \'data directory\' \\"${postgres_data_directory}\\"\\n[[ \\"${postgres_data_directory}\\" == \\"${PGDATA}\\" ]] ||\\nhalt Expected matching config and data directories\\nbootstrap_dir=\\"${postgres_data_directory}_bootstrap\\"\\n[[ -d \\"${bootstrap_dir}\\" ]] \\u0026\\u0026 results \'bootstrap directory\' \\"${bootstrap_dir}\\"\\n[[ -d \\"${bootstrap_dir}\\" ]] \\u0026\\u0026 postgres_data_directory=\\"${bootstrap_dir}\\"\\nif [[ ! -e \\"${postgres_data_directory}\\" || -O \\"${postgres_data_directory}\\" ]]; then\\ninstall --directory --mode=0700 \\"${postgres_data_directory}\\"\\nelif [[ -w \\"${postgres_data_directory}\\" \\u0026\\u0026 -g \\"${postgres_data_directory}\\" ]]; then\\nrecreate \\"${postgres_data_directory}\\" \'0700\'\\nelse (halt Permissions!); fi ||\\nhalt \\"$(permissions \\"${postgres_data_directory}\\" ||:)\\"\\nresults \'pgBackRest log directory\' \\"${pgbrLog_directory}\\"\\ninstall --directory --mode=0775 \\"${pgbrLog_directory}\\" ||\\nhalt \\"$(permissions \\"${pgbrLog_directory}\\" ||:)\\"\\ninstall -D --mode=0600 -t \\"/tmp/replication\\" \\"/pgconf/tls/replication\\"/{tls.crt,tls.key,ca.crt}\\n\\n[[ -f \\"${postgres_data_directory}/PG_VERSION\\" ]] || exit 0\\nresults \'data version\' \\"${postgres_data_version:=$(\\u003c \\"${postgres_data_directory}/PG_VERSION\\")}\\"\\n[[ \\"${postgres_data_version}\\" == \\"${expected_major_version}\\" ]] ||\\nhalt Expected PostgreSQL data version \\"${expected_major_version}\\"\\n[[ ! -f \\"${postgres_data_directory}/postgresql.conf\\" ]] \\u0026\\u0026\\ntouch \\"${postgres_data_directory}/postgresql.conf\\"\\nsafelink \\"${pgwal_directory}\\" \\"${postgres_data_directory}/pg_wal\\"\\nresults \'wal directory\' \\"$(realpath \\"${postgres_data_directory}/pg_wal\\" ||:)\\"\\nrm -f \\"${postgres_data_directory}/recovery.signal\\"",\n "startup",\n "18",\n "/pgdata/pg18_wal",\n "/pgdata/pgbackrest/log"\n ],\n "env": [\n {\n "name": "PGDATA",\n "value": "/pgdata/pg18"\n },\n {\n "name": "PGHOST",\n "value": "/tmp/postgres"\n },\n {\n "name": "PGPORT",\n "value": "5432"\n },\n {\n "name": "KRB5_CONFIG",\n "value": "/etc/postgres/krb5.conf"\n },\n {\n "name": "KRB5RCACHEDIR",\n "value": "/tmp"\n },\n {\n "name": "LDAPTLS_CACERT",\n "value": "/etc/postgres/ldap/ca.crt"\n },\n {\n "name": "LC_ALL",\n "value": "en_US.utf-8"\n },\n {\n "name": "LANG",\n "value": "en_US.utf-8"\n }\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "postgres-startup",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/pgconf/tls",\n "name": "cert-volume",\n "readOnly": true\n },\n {\n "mountPath": "/pgdata",\n "name": "postgres-data"\n },\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-c",\n "mkdir -p /tmp/nss_wrapper \\u0026\\u0026 { [[ -f /tmp/nss_wrapper/libnss_wrapper.so ]] || cp /usr/lib64/libnss_wrapper.so /tmp/nss_wrapper/libnss_wrapper.so; }"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "nss-wrapper-init-logcollector",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "runAsGroup": 26,\n "runAsNonRoot": true,\n "runAsUser": 26,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n },\n {\n "command": [\n "bash",\n "-c",\n "export NSS_WRAPPER_SUBDIR=postgres CRUNCHY_NSS_USERNAME=postgres CRUNCHY_NSS_USER_DESC=\\"postgres\\" \\n# Define nss_wrapper directory and passwd \\u0026 group files that will be utilized by nss_wrapper. The\\n# nss_wrapper_env.sh script (which also sets these vars) isn\'t sourced here since the nss_wrapper\\n# has not yet been setup, and we therefore don\'t yet want the nss_wrapper vars in the environment.\\nmkdir -p /tmp/nss_wrapper\\nchmod g+rwx /tmp/nss_wrapper\\n\\nNSS_WRAPPER_DIR=\\"/tmp/nss_wrapper/${NSS_WRAPPER_SUBDIR}\\"\\nNSS_WRAPPER_PASSWD=\\"${NSS_WRAPPER_DIR}/passwd\\"\\nNSS_WRAPPER_GROUP=\\"${NSS_WRAPPER_DIR}/group\\"\\n\\n# create the nss_wrapper directory\\nmkdir -p \\"${NSS_WRAPPER_DIR}\\"\\n\\n# grab the current user ID and group ID\\nUSER_ID=$(id -u)\\nexport USER_ID\\nGROUP_ID=$(id -g)\\nexport GROUP_ID\\n\\n# get copies of the passwd and group files\\n[[ -f \\"${NSS_WRAPPER_PASSWD}\\" ]] || cp \\"/etc/passwd\\" \\"${NSS_WRAPPER_PASSWD}\\"\\n[[ -f \\"${NSS_WRAPPER_GROUP}\\" ]] || cp \\"/etc/group\\" \\"${NSS_WRAPPER_GROUP}\\"\\n\\n# if the username is missing from the passwd file, then add it\\nif [[ ! $(cat \\"${NSS_WRAPPER_PASSWD}\\") =~ ${CRUNCHY_NSS_USERNAME}:x:${USER_ID} ]]; then\\n echo \\"nss_wrapper: adding user\\"\\n passwd_tmp=\\"${NSS_WRAPPER_DIR}/passwd_tmp\\"\\n cp \\"${NSS_WRAPPER_PASSWD}\\" \\"${passwd_tmp}\\"\\n sed -i \\"/${CRUNCHY_NSS_USERNAME}:x:/d\\" \\"${passwd_tmp}\\"\\n # needed for OCP 4.x because crio updates /etc/passwd with an entry for USER_ID\\n sed -i \\"/${USER_ID}:x:/d\\" \\"${passwd_tmp}\\"\\n printf \'${CRUNCHY_NSS_USERNAME}:x:${USER_ID}:${GROUP_ID}:${CRUNCHY_NSS_USER_DESC}:${HOME}:/bin/bash\\\\n\' \\u003e\\u003e \\"${passwd_tmp}\\"\\n envsubst \\u003c \\"${passwd_tmp}\\" \\u003e \\"${NSS_WRAPPER_PASSWD}\\"\\n rm \\"${passwd_tmp}\\"\\nelse\\n echo \\"nss_wrapper: user exists\\"\\nfi\\n\\n# if the username (which will be the same as the group name) is missing from group file, then add it\\nif [[ ! $(cat \\"${NSS_WRAPPER_GROUP}\\") =~ ${CRUNCHY_NSS_USERNAME}:x:${USER_ID} ]]; then\\n echo \\"nss_wrapper: adding group\\"\\n group_tmp=\\"${NSS_WRAPPER_DIR}/group_tmp\\"\\n cp \\"${NSS_WRAPPER_GROUP}\\" \\"${group_tmp}\\"\\n sed -i \\"/${CRUNCHY_NSS_USERNAME}:x:/d\\" \\"${group_tmp}\\"\\n printf \'${CRUNCHY_NSS_USERNAME}:x:${USER_ID}:${CRUNCHY_NSS_USERNAME}\\\\n\' \\u003e\\u003e \\"${group_tmp}\\"\\n envsubst \\u003c \\"${group_tmp}\\" \\u003e \\"${NSS_WRAPPER_GROUP}\\"\\n rm \\"${group_tmp}\\"\\nelse\\n echo \\"nss_wrapper: group exists\\"\\nfi\\n\\n# export the nss_wrapper env vars\\n# define nss_wrapper directory and passwd \\u0026 group files that will be utilized by nss_wrapper\\nNSS_WRAPPER_DIR=\\"/tmp/nss_wrapper/${NSS_WRAPPER_SUBDIR}\\"\\nNSS_WRAPPER_PASSWD=\\"${NSS_WRAPPER_DIR}/passwd\\"\\nNSS_WRAPPER_GROUP=\\"${NSS_WRAPPER_DIR}/group\\"\\n\\nexport LD_PRELOAD=/usr/lib64/libnss_wrapper.so\\nexport NSS_WRAPPER_PASSWD=\\"${NSS_WRAPPER_PASSWD}\\"\\nexport NSS_WRAPPER_GROUP=\\"${NSS_WRAPPER_GROUP}\\"\\n\\necho \\"nss_wrapper: environment configured\\"\\n"\n ],\n "image": "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres",\n "imagePullPolicy": "Always",\n "name": "nss-wrapper-init",\n "resources": {},\n "securityContext": {\n "allowPrivilegeEscalation": false,\n "capabilities": {\n "drop": [\n "ALL"\n ]\n },\n "privileged": false,\n "readOnlyRootFilesystem": true,\n "runAsNonRoot": true,\n "seccompProfile": {\n "type": "RuntimeDefault"\n }\n },\n "terminationMessagePath": "/dev/termination-log",\n "terminationMessagePolicy": "File",\n "volumeMounts": [\n {\n "mountPath": "/tmp",\n "name": "tmp"\n }\n ]\n }\n ],\n "restartPolicy": "Always",\n "schedulerName": "default-scheduler",\n "securityContext": {\n "fsGroup": 26,\n "fsGroupChangePolicy": "OnRootMismatch"\n },\n "serviceAccount": "extra-volumes-instance",\n "serviceAccountName": "extra-volumes-instance",\n "shareProcessNamespace": true,\n "terminationGracePeriodSeconds": 30,\n "topologySpreadConstraints": [\n {\n "labelSelector": {\n "matchExpressions": [\n {\n "key": "postgres-operator.crunchydata.com/data",\n "operator": "In",\n "values": [\n "postgres",\n "pgbackrest"\n ]\n }\n ],\n "matchLabels": {\n "postgres-operator.crunchydata.com/cluster": "extra-volumes"\n }\n },\n "maxSkew": 1,\n "topologyKey": "kubernetes.io/hostname",\n "whenUnsatisfiable": "ScheduleAnyway"\n },\n {\n "labelSelector": {\n "matchExpressions": [\n {\n "key": "postgres-operator.crunchydata.com/data",\n "operator": "In",\n "values": [\n "postgres",\n "pgbackrest"\n ]\n }\n ],\n "matchLabels": {\n "postgres-operator.crunchydata.com/cluster": "extra-volumes"\n }\n },\n "maxSkew": 1,\n "topologyKey": "topology.kubernetes.io/zone",\n "whenUnsatisfiable": "ScheduleAnyway"\n }\n ],\n "volumes": [\n {\n "name": "cert-volume",\n "projected": {\n "defaultMode": 384,\n "sources": [\n {\n "secret": {\n "items": [\n {\n "key": "tls.crt",\n "path": "tls.crt"\n },\n {\n "key": "tls.key",\n "path": "tls.key"\n },\n {\n "key": "ca.crt",\n "path": "ca.crt"\n }\n ],\n "name": "extra-volumes-cluster-cert"\n }\n },\n {\n "secret": {\n "items": [\n {\n "key": "tls.crt",\n "path": "replication/tls.crt"\n },\n {\n "key": "tls.key",\n "path": "replication/tls.key"\n },\n {\n "key": "ca.crt",\n "path": "replication/ca.crt"\n }\n ],\n "name": "extra-volumes-replication-cert"\n }\n }\n ]\n }\n },\n {\n "name": "postgres-data",\n "persistentVolumeClaim": {\n "claimName": "extra-volumes-instance1-64h5-pgdata"\n }\n },\n {\n "downwardAPI": {\n "defaultMode": 420,\n "items": [\n {\n "path": "cpu_limit",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1m",\n "resource": "limits.cpu"\n }\n },\n {\n "path": "cpu_request",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1m",\n "resource": "requests.cpu"\n }\n },\n {\n "path": "mem_limit",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1Mi",\n "resource": "limits.memory"\n }\n },\n {\n "path": "mem_request",\n "resourceFieldRef": {\n "containerName": "database",\n "divisor": "1Mi",\n "resource": "requests.memory"\n }\n },\n {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.labels"\n },\n "path": "labels"\n },\n {\n "fieldRef": {\n "apiVersion": "v1",\n "fieldPath": "metadata.annotations"\n },\n "path": "annotations"\n }\n ]\n },\n "name": "database-containerinfo"\n },\n {\n "configMap": {\n "defaultMode": 420,\n "name": "extra-dicts"\n },\n "name": "fts-dicts"\n },\n {\n "emptyDir": {},\n "name": "extra-data"\n },\n {\n "name": "extra-pvc",\n "persistentVolumeClaim": {\n "claimName": "extra-pvc"\n }\n },\n {\n "name": "pgbackrest-server",\n "projected": {\n "defaultMode": 420,\n "sources": [\n {\n "secret": {\n "items": [\n {\n "key": "pgbackrest-server.crt",\n "path": "server-tls.crt"\n },\n {\n "key": "pgbackrest-server.key",\n "mode": 384,\n "path": "server-tls.key"\n }\n ],\n "name": "extra-volumes-instance1-64h5-certs"\n }\n }\n ]\n }\n },\n {\n "name": "pgbackrest-config",\n "projected": {\n "defaultMode": 420,\n "sources": [\n {\n "configMap": {\n "items": [\n {\n "key": "pgbackrest_instance.conf",\n "path": "pgbackrest_instance.conf"\n },\n {\n "key": "config-hash",\n "path": "config-hash"\n },\n {\n "key": "pgbackrest-server.conf",\n "path": "~postgres-operator_server.conf"\n }\n ],\n "name": "extra-volumes-pgbackrest-config"\n }\n },\n {\n "secret": {\n "items": [\n {\n "key": "pgbackrest.ca-roots",\n "path": "~postgres-operator/tls-ca.crt"\n },\n {\n "key": "pgbackrest-client.crt",\n "path": "~postgres-operator/client-tls.crt"\n },\n {\n "key": "pgbackrest-client.key",\n "mode": 384,\n "path": "~postgres-operator/client-tls.key"\n }\n ],\n "name": "extra-volumes-pgbackrest"\n }\n }\n ]\n }\n },\n {\n "name": "patroni-config",\n "projected": {\n "defaultMode": 420,\n "sources": [\n {\n "configMap": {\n "items": [\n {\n "key": "patroni.yaml",\n "path": "~postgres-operator_cluster.yaml"\n }\n ],\n "name": "extra-volumes-config"\n }\n },\n {\n "configMap": {\n "items": [\n {\n "key": "patroni.yaml",\n "path": "~postgres-operator_instance.yaml"\n }\n ],\n "name": "extra-volumes-instance1-64h5-config"\n }\n },\n {\n "secret": {\n "items": [\n {\n "key": "patroni.ca-roots",\n "path": "~postgres-operator/patroni.ca-roots"\n },\n {\n "key": "patroni.crt-combined",\n "path": "~postgres-operator/patroni.crt+key"\n }\n ],\n "name": "extra-volumes-instance1-64h5-certs"\n }\n }\n ]\n }\n },\n {\n "emptyDir": {},\n "name": "crunchy-bin"\n },\n {\n "emptyDir": {\n "sizeLimit": "2Gi"\n },\n "name": "tmp"\n },\n {\n "emptyDir": {\n "medium": "Memory"\n },\n "name": "dshm"\n }\n ]\n }\n },\n "updateStrategy": {\n "type": "OnDelete"\n }\n },\n "status": {\n "availableReplicas": 1,\n "collisionCount": 0,\n "currentRevision": "extra-volumes-instance1-64h5-5945964768",\n "observedGeneration": 2,\n "readyReplicas": 1,\n "replicas": 1,\n "updateRevision": "extra-volumes-instance1-64h5-7d8cfc9ffc",\n "updatedReplicas": 1\n }\n }\n ],\n "kind": "List",\n "metadata": {\n "resourceVersion": ""\n }\n}' logger.go:42: 14:36:28 | extra-volumes/3-verify-pvc-volume | + kubectl -n kuttl-test-central-quagga wait '--for=jsonpath={.status.phase}=Bound' pvc/extra-pvc --timeout=120s logger.go:42: 14:36:29 | extra-volumes/3-verify-pvc-volume | E0820 14:36:29.366044 19838 reflector.go:227] "Failed to watch" err="Get \"https://34.134.119.98/api/v1/namespaces/kuttl-test-central-quagga/persistentvolumeclaims?allowWatchBookmarks=true&fieldSelector=metadata.name%3Dextra-pvc&resourceVersion=1787236588060329000&timeoutSeconds=312&watch=true\": context canceled" reflector="k8s.io/client-go/tools/watch/informerwatcher.go:162" type="*unstructured.Unstructured" logger.go:42: 14:36:29 | extra-volumes/3-verify-pvc-volume | persistentvolumeclaim/extra-pvc condition met logger.go:42: 14:36:29 | extra-volumes/3-verify-pvc-volume | ++ get_instance_set_pods instance1 logger.go:42: 14:36:29 | extra-volumes/3-verify-pvc-volume | ++ local instance=instance1 logger.go:42: 14:36:29 | extra-volumes/3-verify-pvc-volume | ++ kubectl get pods -n kuttl-test-central-quagga --selector postgres-operator.crunchydata.com/instance-set=instance1 -o custom-columns=NAME:.metadata.name --no-headers logger.go:42: 14:36:29 | extra-volumes/3-verify-pvc-volume | ++ head -n1 logger.go:42: 14:36:30 | extra-volumes/3-verify-pvc-volume | + pod=extra-volumes-instance1-64h5-0 logger.go:42: 14:36:30 | extra-volumes/3-verify-pvc-volume | + kubectl -n kuttl-test-central-quagga exec extra-volumes-instance1-64h5-0 -c database -- grep -q ' /pgdata/extra/pvc ' /proc/mounts logger.go:42: 14:36:31 | extra-volumes/3-verify-pvc-volume | ++ date +%s logger.go:42: 14:36:31 | extra-volumes/3-verify-pvc-volume | + token=pvc-1787236591-21636 logger.go:42: 14:36:31 | extra-volumes/3-verify-pvc-volume | + kubectl -n kuttl-test-central-quagga exec extra-volumes-instance1-64h5-0 -c database -- sh -c 'printf '\''%s'\'' '\''pvc-1787236591-21636'\'' > /pgdata/extra/pvc/token' logger.go:42: 14:36:32 | extra-volumes/3-verify-pvc-volume | + restart_pg_pods extra-volumes instance1 logger.go:42: 14:36:32 | extra-volumes/3-verify-pvc-volume | + local cluster=extra-volumes logger.go:42: 14:36:32 | extra-volumes/3-verify-pvc-volume | + local instance=instance1 logger.go:42: 14:36:32 | extra-volumes/3-verify-pvc-volume | ++ kubectl get pods -n kuttl-test-central-quagga --selector=postgres-operator.crunchydata.com/cluster=extra-volumes,postgres-operator.crunchydata.com/instance-set=instance1 -o 'jsonpath={.items[*].metadata.name}' logger.go:42: 14:36:33 | extra-volumes/3-verify-pvc-volume | + pods=extra-volumes-instance1-64h5-0 logger.go:42: 14:36:33 | extra-volumes/3-verify-pvc-volume | + for pod in $pods logger.go:42: 14:36:33 | extra-volumes/3-verify-pvc-volume | + kubectl delete pod -n kuttl-test-central-quagga extra-volumes-instance1-64h5-0 logger.go:42: 14:36:33 | extra-volumes/3-verify-pvc-volume | pod "extra-volumes-instance1-64h5-0" deleted from kuttl-test-central-quagga namespace logger.go:42: 14:36:36 | extra-volumes/3-verify-pvc-volume | + wait_pod extra-volumes-instance1-64h5-0 logger.go:42: 14:36:36 | extra-volumes/3-verify-pvc-volume | + local pod=extra-volumes-instance1-64h5-0 logger.go:42: 14:36:36 | extra-volumes/3-verify-pvc-volume | + set +o xtrace logger.go:42: 14:36:51 | extra-volumes/3-verify-pvc-volume | extra-volumes-instance1-64h5-0........true logger.go:42: 14:36:51 | extra-volumes/3-verify-pvc-volume | + wait_cluster_consistency extra-volumes logger.go:42: 14:36:51 | extra-volumes/3-verify-pvc-volume | + local cluster_name=extra-volumes logger.go:42: 14:36:51 | extra-volumes/3-verify-pvc-volume | + local wait_time=32 logger.go:42: 14:36:51 | extra-volumes/3-verify-pvc-volume | + retry=0 logger.go:42: 14:36:51 | extra-volumes/3-verify-pvc-volume | + sleep 7 logger.go:42: 14:36:58 | extra-volumes/3-verify-pvc-volume | + echo -n 'waiting for cluster readyness' logger.go:42: 14:36:58 | extra-volumes/3-verify-pvc-volume | waiting for cluster readyness++ kubectl -n kuttl-test-central-quagga get pg extra-volumes -o 'jsonpath={.status.state}' logger.go:42: 14:36:58 | extra-volumes/3-verify-pvc-volume | + [[ ready == ready ]] logger.go:42: 14:36:58 | extra-volumes/3-verify-pvc-volume | ++ kubectl -n kuttl-test-central-quagga get sts --selector=postgres-operator.crunchydata.com/cluster=extra-volumes -o 'jsonpath={.items[*].metadata.name}' logger.go:42: 14:36:58 | extra-volumes/3-verify-pvc-volume | ++ grep extra-volumes logger.go:42: 14:36:59 | extra-volumes/3-verify-pvc-volume | + sts='extra-volumes-instance1-64h5 extra-volumes-repo-host' logger.go:42: 14:36:59 | extra-volumes/3-verify-pvc-volume | + for st in $sts logger.go:42: 14:36:59 | extra-volumes/3-verify-pvc-volume | + wait_sts_rollout extra-volumes-instance1-64h5 logger.go:42: 14:36:59 | extra-volumes/3-verify-pvc-volume | + local sts=extra-volumes-instance1-64h5 logger.go:42: 14:36:59 | extra-volumes/3-verify-pvc-volume | ++ get_ready_replicas extra-volumes-instance1-64h5 logger.go:42: 14:36:59 | extra-volumes/3-verify-pvc-volume | ++ kubectl get sts extra-volumes-instance1-64h5 -n kuttl-test-central-quagga -o 'jsonpath={.status.readyReplicas}' logger.go:42: 14:37:00 | extra-volumes/3-verify-pvc-volume | + local ready_replicas=1 logger.go:42: 14:37:00 | extra-volumes/3-verify-pvc-volume | ++ get_updated_replicas extra-volumes-instance1-64h5 logger.go:42: 14:37:00 | extra-volumes/3-verify-pvc-volume | ++ kubectl get statefulset extra-volumes-instance1-64h5 -n kuttl-test-central-quagga -o 'jsonpath={.status.updatedReplicas}' logger.go:42: 14:37:00 | extra-volumes/3-verify-pvc-volume | + local updated_replicas=1 logger.go:42: 14:37:00 | extra-volumes/3-verify-pvc-volume | ++ get_desired_replicas extra-volumes-instance1-64h5 logger.go:42: 14:37:00 | extra-volumes/3-verify-pvc-volume | ++ kubectl get statefulset extra-volumes-instance1-64h5 -n kuttl-test-central-quagga -o 'jsonpath={.spec.replicas}' logger.go:42: 14:37:01 | extra-volumes/3-verify-pvc-volume | + local desired_replicas=1 logger.go:42: 14:37:01 | extra-volumes/3-verify-pvc-volume | + echo 'ready_replicas 1 desired_replicas 1' logger.go:42: 14:37:01 | extra-volumes/3-verify-pvc-volume | ready_replicas 1 desired_replicas 1 logger.go:42: 14:37:01 | extra-volumes/3-verify-pvc-volume | + [[ 1 -eq 1 ]] logger.go:42: 14:37:01 | extra-volumes/3-verify-pvc-volume | + [[ 1 -eq 1 ]] logger.go:42: 14:37:01 | extra-volumes/3-verify-pvc-volume | + for st in $sts logger.go:42: 14:37:01 | extra-volumes/3-verify-pvc-volume | + wait_sts_rollout extra-volumes-repo-host logger.go:42: 14:37:01 | extra-volumes/3-verify-pvc-volume | + local sts=extra-volumes-repo-host logger.go:42: 14:37:01 | extra-volumes/3-verify-pvc-volume | ++ get_ready_replicas extra-volumes-repo-host logger.go:42: 14:37:01 | extra-volumes/3-verify-pvc-volume | ++ kubectl get sts extra-volumes-repo-host -n kuttl-test-central-quagga -o 'jsonpath={.status.readyReplicas}' logger.go:42: 14:37:02 | extra-volumes/3-verify-pvc-volume | + local ready_replicas=1 logger.go:42: 14:37:02 | extra-volumes/3-verify-pvc-volume | ++ get_updated_replicas extra-volumes-repo-host logger.go:42: 14:37:02 | extra-volumes/3-verify-pvc-volume | ++ kubectl get statefulset extra-volumes-repo-host -n kuttl-test-central-quagga -o 'jsonpath={.status.updatedReplicas}' logger.go:42: 14:37:02 | extra-volumes/3-verify-pvc-volume | + local updated_replicas=1 logger.go:42: 14:37:02 | extra-volumes/3-verify-pvc-volume | ++ get_desired_replicas extra-volumes-repo-host logger.go:42: 14:37:02 | extra-volumes/3-verify-pvc-volume | ++ kubectl get statefulset extra-volumes-repo-host -n kuttl-test-central-quagga -o 'jsonpath={.spec.replicas}' logger.go:42: 14:37:03 | extra-volumes/3-verify-pvc-volume | + local desired_replicas=1 logger.go:42: 14:37:03 | extra-volumes/3-verify-pvc-volume | + echo 'ready_replicas 1 desired_replicas 1' logger.go:42: 14:37:03 | extra-volumes/3-verify-pvc-volume | ready_replicas 1 desired_replicas 1 logger.go:42: 14:37:03 | extra-volumes/3-verify-pvc-volume | + [[ 1 -eq 1 ]] logger.go:42: 14:37:03 | extra-volumes/3-verify-pvc-volume | + [[ 1 -eq 1 ]] logger.go:42: 14:37:03 | extra-volumes/3-verify-pvc-volume | ++ get_instance_set_pods instance1 logger.go:42: 14:37:03 | extra-volumes/3-verify-pvc-volume | ++ head -n1 logger.go:42: 14:37:03 | extra-volumes/3-verify-pvc-volume | ++ local instance=instance1 logger.go:42: 14:37:03 | extra-volumes/3-verify-pvc-volume | ++ kubectl get pods -n kuttl-test-central-quagga --selector postgres-operator.crunchydata.com/instance-set=instance1 -o custom-columns=NAME:.metadata.name --no-headers logger.go:42: 14:37:03 | extra-volumes/3-verify-pvc-volume | + pod=extra-volumes-instance1-64h5-0 logger.go:42: 14:37:03 | extra-volumes/3-verify-pvc-volume | + kubectl -n kuttl-test-central-quagga exec extra-volumes-instance1-64h5-0 -c database -- grep -q ' /pgdata/extra/pvc ' /proc/mounts logger.go:42: 14:37:05 | extra-volumes/3-verify-pvc-volume | ++ kubectl -n kuttl-test-central-quagga exec extra-volumes-instance1-64h5-0 -c database -- cat /pgdata/extra/pvc/token logger.go:42: 14:37:06 | extra-volumes/3-verify-pvc-volume | + readback=pvc-1787236591-21636 logger.go:42: 14:37:06 | extra-volumes/3-verify-pvc-volume | + [[ pvc-1787236591-21636 != pvc\-1787236591\-21636 ]] logger.go:42: 14:37:06 | extra-volumes/3-verify-pvc-volume | test step completed 3-verify-pvc-volume logger.go:42: 14:37:06 | extra-volumes/99-remove-cluster-gracefully | starting test step 99-remove-cluster-gracefully logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | running command: [sh -c set -o errexit set -o xtrace source ../../functions remove_all_finalizers check_operator_panic destroy_operator] logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | + source ../../functions logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | +++ realpath ../../.. logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | ++ ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770 logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | ++ CERT_MANAGER_VER=1.20.2 logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | ++ CERT_MANAGER_TEST_LABEL=e2e.percona.com/managed-by=percona-postgresql-operator-tests logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | ++ CHAOS_MESH_VER=2.5.1 logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | ++ BUSYBOX_VER=1.36 logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | ++++ pwd logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | +++ basename /mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/tests/extra-volumes logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | ++ test_name=extra-volumes logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | ++ source /mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/vars.sh logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | +++ export ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770 logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | +++ ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770 logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | +++ export DEPLOY_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/deploy logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | +++ DEPLOY_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/deploy logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | +++ export TESTS_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | +++ TESTS_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | +++ export TESTS_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/conf logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | +++ TESTS_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/conf logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | +++ export TEST_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/tests/extra-volumes/conf logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | +++ TEST_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/e2e-tests/tests/extra-volumes/conf logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | +++ export TEMP_DIR=/tmp/kuttl/pg/extra-volumes logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | +++ TEMP_DIR=/tmp/kuttl/pg/extra-volumes logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | ++++ git rev-parse --abbrev-ref HEAD logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | +++ export GIT_BRANCH=PR-1770 logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | +++ GIT_BRANCH=PR-1770 logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | +++ export VERSION=PR-1770-8c67b09e6 logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | +++ VERSION=PR-1770-8c67b09e6 logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | +++ export SKIP_TEST_WARNINGS=true logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | +++ SKIP_TEST_WARNINGS=true logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | +++ export K8S_UPGRADE_PLATFORM=gke logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | +++ K8S_UPGRADE_PLATFORM=gke logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | +++ export K8S_UPGRADE_REGION=us-central1-a logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | +++ K8S_UPGRADE_REGION=us-central1-a logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | +++ export K8S_UPGRADE_INITIAL_VERSION= logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | +++ K8S_UPGRADE_INITIAL_VERSION= logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | +++ export K8S_UPGRADE_FINAL_VERSION= logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | +++ K8S_UPGRADE_FINAL_VERSION= logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | +++ [[ -z '' ]] logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | ++++ detect_k8s_platform logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | ++++ local detected_platform logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | ++++ local xtrace_enabled=false logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | ++++ [[ -o xtrace ]] logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | ++++ xtrace_enabled=true logger.go:42: 14:37:11 | extra-volumes/99-remove-cluster-gracefully | ++++ set +o xtrace logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ PLATFORM=gke logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ export PLATFORM logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ export IMAGE_BASE=perconalab/percona-postgresql-operator logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ IMAGE_BASE=perconalab/percona-postgresql-operator logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ export IMAGE=perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ IMAGE=perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ [[ ! -n '' ]] logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ [[ -n '' ]] logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ export PG_VER=18 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ PG_VER=18 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ export PG_DISTRIBUTION= logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ PG_DISTRIBUTION= logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ [[ '' == community ]] logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ export IMAGE_PGBOUNCER=perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ IMAGE_PGBOUNCER=perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ export IMAGE_POSTGRESQL=perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ IMAGE_POSTGRESQL=perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ export IMAGE_BACKREST=perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ IMAGE_BACKREST=perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ export IMAGE_UPGRADE=perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ IMAGE_UPGRADE=perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ export BUCKET=pg-operator-testing logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ BUCKET=pg-operator-testing logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ export PMM_SERVER_VERSION=9.9.9 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ PMM_SERVER_VERSION=9.9.9 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ export IMAGE_PMM_CLIENT=perconalab/pmm-client:3-dev-latest logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ IMAGE_PMM_CLIENT=perconalab/pmm-client:3-dev-latest logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ export IMAGE_PMM_SERVER=perconalab/pmm-server:3-dev-latest logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ IMAGE_PMM_SERVER=perconalab/pmm-server:3-dev-latest logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ export IMAGE_LOGCOLLECTOR=perconalab/fluentbit:main-logcollector logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ IMAGE_LOGCOLLECTOR=perconalab/fluentbit:main-logcollector logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ export PGOV1_TAG=1.4.0 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ PGOV1_TAG=1.4.0 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ export PGOV1_VER=14 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ PGOV1_VER=14 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ export CPGO_VERSION=5.8.7 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ CPGO_VERSION=5.8.7 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ export MINIO_VER=5.4.0 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ MINIO_VER=5.4.0 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ export VAULT_VER=0.32.0 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ VAULT_VER=0.32.0 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ export REGISTRY_NAME=docker.io logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ REGISTRY_NAME=docker.io logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ export REGISTRY_NAME_FULL=docker.io/ logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ REGISTRY_NAME_FULL=docker.io/ logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | ++++ printenv logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | ++++ grep -E '^IMAGE' logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | ++++ awk -F= '{print $1}' logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | ++++ eval 'echo $IMAGE_BACKREST' logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++++ echo perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ var_value=perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ [[ perconalab/percona-postgresql-operator:main-pgbackrest18 == docker.io/* ]] logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ [[ perconalab/percona-postgresql-operator:main-pgbackrest18 == percona/* ]] logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ [[ perconalab/percona-postgresql-operator:main-pgbackrest18 == perconalab/* ]] logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ new_value=docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ export IMAGE_BACKREST=docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ IMAGE_BACKREST=docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ echo IMAGE_BACKREST=docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | IMAGE_BACKREST=docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ echo perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | ++++ eval 'echo $IMAGE' logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++++ echo perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ var_value=perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ [[ perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 == docker.io/* ]] logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ [[ perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 == percona/* ]] logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ [[ perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 == perconalab/* ]] logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ new_value=docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ export IMAGE=docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ IMAGE=docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ echo IMAGE=docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | IMAGE=docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | ++++ eval 'echo $IMAGE_UPGRADE' logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++++ echo perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ var_value=perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ [[ perconalab/percona-postgresql-operator:main-upgrade == docker.io/* ]] logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ [[ perconalab/percona-postgresql-operator:main-upgrade == percona/* ]] logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ [[ perconalab/percona-postgresql-operator:main-upgrade == perconalab/* ]] logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ new_value=docker.io/perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ export IMAGE_UPGRADE=docker.io/perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ IMAGE_UPGRADE=docker.io/perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ echo IMAGE_UPGRADE=docker.io/perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | IMAGE_UPGRADE=docker.io/perconalab/percona-postgresql-operator:main-upgrade logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | ++++ eval 'echo $IMAGE_LOGCOLLECTOR' logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++++ echo perconalab/fluentbit:main-logcollector logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ var_value=perconalab/fluentbit:main-logcollector logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ [[ perconalab/fluentbit:main-logcollector == docker.io/* ]] logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ [[ perconalab/fluentbit:main-logcollector == percona/* ]] logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ [[ perconalab/fluentbit:main-logcollector == perconalab/* ]] logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ new_value=docker.io/perconalab/fluentbit:main-logcollector logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ export IMAGE_LOGCOLLECTOR=docker.io/perconalab/fluentbit:main-logcollector logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ IMAGE_LOGCOLLECTOR=docker.io/perconalab/fluentbit:main-logcollector logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ echo IMAGE_LOGCOLLECTOR=docker.io/perconalab/fluentbit:main-logcollector logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | IMAGE_LOGCOLLECTOR=docker.io/perconalab/fluentbit:main-logcollector logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | ++++ eval 'echo $IMAGE_BASE' logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++++ echo perconalab/percona-postgresql-operator logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ var_value=perconalab/percona-postgresql-operator logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ [[ perconalab/percona-postgresql-operator == docker.io/* ]] logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ [[ perconalab/percona-postgresql-operator == percona/* ]] logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ [[ perconalab/percona-postgresql-operator == perconalab/* ]] logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ new_value=docker.io/perconalab/percona-postgresql-operator logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ export IMAGE_BASE=docker.io/perconalab/percona-postgresql-operator logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ IMAGE_BASE=docker.io/perconalab/percona-postgresql-operator logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ echo IMAGE_BASE=docker.io/perconalab/percona-postgresql-operator logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | IMAGE_BASE=docker.io/perconalab/percona-postgresql-operator logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | ++++ eval 'echo $IMAGE_PGBOUNCER' logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++++ echo perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ var_value=perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ [[ perconalab/percona-postgresql-operator:main-pgbouncer18 == docker.io/* ]] logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ [[ perconalab/percona-postgresql-operator:main-pgbouncer18 == percona/* ]] logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ [[ perconalab/percona-postgresql-operator:main-pgbouncer18 == perconalab/* ]] logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ new_value=docker.io/perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ export IMAGE_PGBOUNCER=docker.io/perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ IMAGE_PGBOUNCER=docker.io/perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ echo IMAGE_PGBOUNCER=docker.io/perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | IMAGE_PGBOUNCER=docker.io/perconalab/percona-postgresql-operator:main-pgbouncer18 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | ++++ eval 'echo $IMAGE_POSTGRESQL' logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++++ echo perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ var_value=perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ [[ perconalab/percona-postgresql-operator:main-ppg18-postgres == docker.io/* ]] logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ [[ perconalab/percona-postgresql-operator:main-ppg18-postgres == percona/* ]] logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ [[ perconalab/percona-postgresql-operator:main-ppg18-postgres == perconalab/* ]] logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ new_value=docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ export IMAGE_POSTGRESQL=docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ IMAGE_POSTGRESQL=docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ echo IMAGE_POSTGRESQL=docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | IMAGE_POSTGRESQL=docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | ++++ eval 'echo $IMAGE_PMM_SERVER' logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++++ echo perconalab/pmm-server:3-dev-latest logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ var_value=perconalab/pmm-server:3-dev-latest logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ [[ perconalab/pmm-server:3-dev-latest == docker.io/* ]] logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ [[ perconalab/pmm-server:3-dev-latest == percona/* ]] logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ [[ perconalab/pmm-server:3-dev-latest == perconalab/* ]] logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ new_value=docker.io/perconalab/pmm-server:3-dev-latest logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ export IMAGE_PMM_SERVER=docker.io/perconalab/pmm-server:3-dev-latest logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ IMAGE_PMM_SERVER=docker.io/perconalab/pmm-server:3-dev-latest logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ echo IMAGE_PMM_SERVER=docker.io/perconalab/pmm-server:3-dev-latest logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | IMAGE_PMM_SERVER=docker.io/perconalab/pmm-server:3-dev-latest logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ for var in $(printenv | grep -E '^IMAGE' | awk -F'=' '{print $1}') logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | ++++ eval 'echo $IMAGE_PMM_CLIENT' logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++++ echo perconalab/pmm-client:3-dev-latest logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ var_value=perconalab/pmm-client:3-dev-latest logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ [[ perconalab/pmm-client:3-dev-latest == docker.io/* ]] logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ [[ perconalab/pmm-client:3-dev-latest == percona/* ]] logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ [[ perconalab/pmm-client:3-dev-latest == perconalab/* ]] logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ new_value=docker.io/perconalab/pmm-client:3-dev-latest logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ export IMAGE_PMM_CLIENT=docker.io/perconalab/pmm-client:3-dev-latest logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ IMAGE_PMM_CLIENT=docker.io/perconalab/pmm-client:3-dev-latest logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ echo IMAGE_PMM_CLIENT=docker.io/perconalab/pmm-client:3-dev-latest logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | IMAGE_PMM_CLIENT=docker.io/perconalab/pmm-client:3-dev-latest logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ echo docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6 logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | ++++ which gdate logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | which: no gdate in (/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/bin/:/root/.krew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/lib/snapd/snap/bin) logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | ++++ which date logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ date=/usr/sbin/date logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | ++++ which gsed logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | which: no gsed in (/mnt/jenkins/workspace/cloud-pg-operator_PR-1770/bin/:/root/.krew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/lib/snapd/snap/bin) logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | ++++ which sed logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | +++ sed=/usr/sbin/sed logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | + remove_all_finalizers logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | + resource_types=("pg-restore" "pg-backup" "pg") logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | + for resource in "${resource_types[@]}" logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | + echo 'removing all finalizers for pg-restore resources' logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | removing all finalizers for pg-restore resources logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | + kubectl -n kuttl-test-central-quagga get pg-restore -o json logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | + jq '.items[] | .metadata.name' -r logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | + IFS= logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | + read -r name logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | + for resource in "${resource_types[@]}" logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | + echo 'removing all finalizers for pg-backup resources' logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | removing all finalizers for pg-backup resources logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | + kubectl -n kuttl-test-central-quagga get pg-backup -o json logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | + jq '.items[] | .metadata.name' -r logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | + IFS= logger.go:42: 14:37:13 | extra-volumes/99-remove-cluster-gracefully | + read -r name logger.go:42: 14:37:14 | extra-volumes/99-remove-cluster-gracefully | + kubectl -n kuttl-test-central-quagga delete pg-backup extra-volumes-backup-shvg-rqmsm --wait=0 logger.go:42: 14:37:14 | extra-volumes/99-remove-cluster-gracefully | perconapgbackup.pgv2.percona.com "extra-volumes-backup-shvg-rqmsm" deleted from kuttl-test-central-quagga namespace logger.go:42: 14:37:14 | extra-volumes/99-remove-cluster-gracefully | ++ kubectl -n kuttl-test-central-quagga get pg-backup extra-volumes-backup-shvg-rqmsm -o yaml logger.go:42: 14:37:14 | extra-volumes/99-remove-cluster-gracefully | ++ yq '.metadata.finalizers | length' logger.go:42: 14:37:15 | extra-volumes/99-remove-cluster-gracefully | Error from server (NotFound): perconapgbackups.pgv2.percona.com "extra-volumes-backup-shvg-rqmsm" not found logger.go:42: 14:37:15 | extra-volumes/99-remove-cluster-gracefully | + [[ 0 == 0 ]] logger.go:42: 14:37:15 | extra-volumes/99-remove-cluster-gracefully | + continue logger.go:42: 14:37:15 | extra-volumes/99-remove-cluster-gracefully | + IFS= logger.go:42: 14:37:15 | extra-volumes/99-remove-cluster-gracefully | + read -r name logger.go:42: 14:37:15 | extra-volumes/99-remove-cluster-gracefully | + for resource in "${resource_types[@]}" logger.go:42: 14:37:15 | extra-volumes/99-remove-cluster-gracefully | + echo 'removing all finalizers for pg resources' logger.go:42: 14:37:15 | extra-volumes/99-remove-cluster-gracefully | removing all finalizers for pg resources logger.go:42: 14:37:15 | extra-volumes/99-remove-cluster-gracefully | + kubectl -n kuttl-test-central-quagga get pg -o json logger.go:42: 14:37:15 | extra-volumes/99-remove-cluster-gracefully | + jq '.items[] | .metadata.name' -r logger.go:42: 14:37:15 | extra-volumes/99-remove-cluster-gracefully | + IFS= logger.go:42: 14:37:15 | extra-volumes/99-remove-cluster-gracefully | + read -r name logger.go:42: 14:37:15 | extra-volumes/99-remove-cluster-gracefully | + check_operator_panic logger.go:42: 14:37:15 | extra-volumes/99-remove-cluster-gracefully | ++ get_operator_pod logger.go:42: 14:37:15 | extra-volumes/99-remove-cluster-gracefully | +++ kubectl get pods -n pg-operator --selector=app.kubernetes.io/name=percona-postgresql-operator -o 'jsonpath={.items[].metadata.name}' logger.go:42: 14:37:16 | extra-volumes/99-remove-cluster-gracefully | ++ echo percona-postgresql-operator-6944574c84-ld6gl logger.go:42: 14:37:16 | extra-volumes/99-remove-cluster-gracefully | + local operator_pod=percona-postgresql-operator-6944574c84-ld6gl logger.go:42: 14:37:16 | extra-volumes/99-remove-cluster-gracefully | + local panic_log logger.go:42: 14:37:16 | extra-volumes/99-remove-cluster-gracefully | ++ kubectl logs -n pg-operator percona-postgresql-operator-6944574c84-ld6gl -c operator logger.go:42: 14:37:16 | extra-volumes/99-remove-cluster-gracefully | ++ grep -A 100 'Observed a panic' logger.go:42: 14:37:17 | extra-volumes/99-remove-cluster-gracefully | ++ true logger.go:42: 14:37:17 | extra-volumes/99-remove-cluster-gracefully | + panic_log= logger.go:42: 14:37:17 | extra-volumes/99-remove-cluster-gracefully | + '[' -n '' ']' logger.go:42: 14:37:17 | extra-volumes/99-remove-cluster-gracefully | + destroy_operator logger.go:42: 14:37:17 | extra-volumes/99-remove-cluster-gracefully | + kubectl -n pg-operator delete deployment percona-postgresql-operator --force --grace-period=0 logger.go:42: 14:37:17 | extra-volumes/99-remove-cluster-gracefully | Warning: Immediate deletion does not wait for confirmation that the running resource has been terminated. The resource may continue to run on the cluster indefinitely. logger.go:42: 14:37:17 | extra-volumes/99-remove-cluster-gracefully | deployment.apps "percona-postgresql-operator" force deleted from pg-operator namespace logger.go:42: 14:37:17 | extra-volumes/99-remove-cluster-gracefully | + [[ -n pg-operator ]] logger.go:42: 14:37:17 | extra-volumes/99-remove-cluster-gracefully | + kubectl delete namespace pg-operator --force --grace-period=0 logger.go:42: 14:37:17 | extra-volumes/99-remove-cluster-gracefully | Warning: Immediate deletion does not wait for confirmation that the running resource has been terminated. The resource may continue to run on the cluster indefinitely. logger.go:42: 14:37:18 | extra-volumes/99-remove-cluster-gracefully | namespace "pg-operator" force deleted logger.go:42: 14:37:29 | extra-volumes/99-remove-cluster-gracefully | test step completed 99-remove-cluster-gracefully logger.go:42: 14:37:29 | extra-volumes | extra-volumes events from ns kuttl-test-central-quagga: logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:32:55 +0000 UTC Normal Pod pg-client-65d98588cc-zws27 Binding Scheduled Successfully assigned kuttl-test-central-quagga/pg-client-65d98588cc-zws27 to gke-jen-pg-1770-8c67b09e-default-pool-3ad00b6e-qshp default-scheduler logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:32:55 +0000 UTC Normal ReplicaSet.apps pg-client-65d98588cc SuccessfulCreate Created pod: pg-client-65d98588cc-zws27 replicaset-controller logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:32:55 +0000 UTC Normal Deployment.apps pg-client ScalingReplicaSet Scaled up replica set pg-client-65d98588cc from 0 to 1 deployment-controller logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:32:56 +0000 UTC Normal Pod pg-client-65d98588cc-zws27.spec.containers{pg-client} Pulling Pulling image "perconalab/percona-distribution-postgresql:16" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:32:56 +0000 UTC Normal Pod pg-client-65d98588cc-zws27.spec.containers{pg-client} Pulled Successfully pulled image "perconalab/percona-distribution-postgresql:16" in 412ms (412ms including waiting). Image size: 445181537 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:32:56 +0000 UTC Normal Pod pg-client-65d98588cc-zws27.spec.containers{pg-client} Created Created container: pg-client kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:32:56 +0000 UTC Normal Pod pg-client-65d98588cc-zws27.spec.containers{pg-client} Started Started container pg-client kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:00 +0000 UTC Normal Certificate.cert-manager.io extra-volumes-cluster-ca-cert Issuing Issuing certificate as Secret does not exist cert-manager-certificates-trigger logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:00 +0000 UTC Normal Certificate.cert-manager.io extra-volumes-cluster-ca-cert Generated Stored new private key in temporary Secret resource "extra-volumes-cluster-ca-cert-xkqv6" cert-manager-certificates-key-manager logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:01 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-cluster-ca-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-ca logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:01 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-cluster-ca-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-vault logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:01 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-cluster-ca-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-acme logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:01 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-cluster-ca-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-selfsigned logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:01 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-cluster-ca-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-venafi logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:01 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-cluster-ca-cert-1 cert-manager.io Certificate request has been approved by cert-manager.io cert-manager-certificaterequests-approver logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:01 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-cluster-ca-cert-1 CertificateIssued Certificate fetched from issuer successfully cert-manager-certificaterequests-issuer-selfsigned logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:01 +0000 UTC Normal Certificate.cert-manager.io extra-volumes-cluster-ca-cert Requested Created new CertificateRequest resource "extra-volumes-cluster-ca-cert-1" cert-manager-certificates-request-manager logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:01 +0000 UTC Normal Certificate.cert-manager.io extra-volumes-cluster-ca-cert Issuing The certificate has been successfully issued cert-manager-certificates-issuing logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:01 +0000 UTC Normal Certificate.cert-manager.io extra-volumes-replication-cert Issuing Issuing certificate as Secret does not exist cert-manager-certificates-trigger logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:02 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-cluster-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-vault logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:02 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-cluster-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-venafi logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:02 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-cluster-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-acme logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:02 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-cluster-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-selfsigned logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:02 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-cluster-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-ca logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:02 +0000 UTC Normal Certificate.cert-manager.io extra-volumes-cluster-cert Issuing Issuing certificate as Secret does not exist cert-manager-certificates-trigger logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:02 +0000 UTC Normal Certificate.cert-manager.io extra-volumes-cluster-cert Generated Stored new private key in temporary Secret resource "extra-volumes-cluster-cert-257wx" cert-manager-certificates-key-manager logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:02 +0000 UTC Normal Certificate.cert-manager.io extra-volumes-cluster-cert Requested Created new CertificateRequest resource "extra-volumes-cluster-cert-1" cert-manager-certificates-request-manager logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:02 +0000 UTC Normal PersistentVolumeClaim extra-volumes-instance1-64h5-pgdata WaitForFirstConsumer waiting for first consumer to be created before binding persistentvolume-controller logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:02 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-replication-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-acme logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:02 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-replication-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-venafi logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:02 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-replication-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-ca logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:02 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-replication-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-vault logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:02 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-replication-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-selfsigned logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:02 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-replication-cert-1 cert-manager.io Certificate request has been approved by cert-manager.io cert-manager-certificaterequests-approver logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:02 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-replication-cert-1 IssuerNotFound Referenced "Issuer" not found: issuer.cert-manager.io "extra-volumes-tls-issuer" not found cert-manager-certificaterequests-issuer-vault logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:02 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-replication-cert-1 IssuerNotFound Referenced "Issuer" not found: issuer.cert-manager.io "extra-volumes-tls-issuer" not found cert-manager-certificaterequests-issuer-selfsigned logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:02 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-replication-cert-1 IssuerNotFound Referenced "Issuer" not found: issuer.cert-manager.io "extra-volumes-tls-issuer" not found cert-manager-certificaterequests-issuer-venafi logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:02 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-replication-cert-1 IssuerNotFound Referenced "Issuer" not found: issuer.cert-manager.io "extra-volumes-tls-issuer" not found cert-manager-certificaterequests-issuer-acme logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:02 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-replication-cert-1 IssuerNotFound Referenced "Issuer" not found: issuer.cert-manager.io "extra-volumes-tls-issuer" not found cert-manager-certificaterequests-issuer-ca logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:02 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-replication-cert-1 CertificateIssued Certificate fetched from issuer successfully cert-manager-certificaterequests-issuer-ca logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:02 +0000 UTC Normal Certificate.cert-manager.io extra-volumes-replication-cert Generated Stored new private key in temporary Secret resource "extra-volumes-replication-cert-69z76" cert-manager-certificates-key-manager logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:02 +0000 UTC Normal Certificate.cert-manager.io extra-volumes-replication-cert Requested Created new CertificateRequest resource "extra-volumes-replication-cert-1" cert-manager-certificates-request-manager logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:02 +0000 UTC Normal Certificate.cert-manager.io extra-volumes-replication-cert Issuing The certificate has been successfully issued cert-manager-certificates-issuing logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:02 +0000 UTC Normal Issuer.cert-manager.io extra-volumes-tls-issuer KeyPairVerified Signing CA verified cert-manager-issuers logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:03 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-cluster-cert-1 cert-manager.io Certificate request has been approved by cert-manager.io cert-manager-certificaterequests-approver logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:03 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-cluster-cert-1 CertificateIssued Certificate fetched from issuer successfully cert-manager-certificaterequests-issuer-ca logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:03 +0000 UTC Normal Certificate.cert-manager.io extra-volumes-cluster-cert Issuing The certificate has been successfully issued cert-manager-certificates-issuing logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:03 +0000 UTC Normal Certificate.cert-manager.io extra-volumes-instance1-64h5-cert Issuing Issuing certificate as Secret does not exist cert-manager-certificates-trigger logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:03 +0000 UTC Normal Certificate.cert-manager.io extra-volumes-instance1-64h5-cert Generated Stored new private key in temporary Secret resource "extra-volumes-instance1-64h5-cert-92x8j" cert-manager-certificates-key-manager logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:03 +0000 UTC Normal StatefulSet.apps extra-volumes-instance1-64h5 SuccessfulCreate create Pod extra-volumes-instance1-64h5-0 in StatefulSet extra-volumes-instance1-64h5 successful statefulset-controller logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:04 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-instance1-64h5-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-selfsigned logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:04 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-instance1-64h5-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-venafi logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:04 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-instance1-64h5-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-vault logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:04 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-instance1-64h5-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-ca logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:04 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-instance1-64h5-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-acme logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:04 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-instance1-64h5-cert-1 CertificateIssued Certificate fetched from issuer successfully cert-manager-certificaterequests-issuer-ca logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:04 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-instance1-64h5-cert-1 cert-manager.io Certificate request has been approved by cert-manager.io cert-manager-certificaterequests-approver logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:04 +0000 UTC Normal Certificate.cert-manager.io extra-volumes-instance1-64h5-cert Requested Created new CertificateRequest resource "extra-volumes-instance1-64h5-cert-1" cert-manager-certificates-request-manager logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:04 +0000 UTC Normal PersistentVolumeClaim extra-volumes-instance1-64h5-pgdata ExternalProvisioning Waiting for a volume to be created either by the external provisioner 'pd.csi.storage.gke.io' or manually by the system administrator. If volume creation is delayed, please verify that the provisioner is running and correctly registered. persistentvolume-controller logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:04 +0000 UTC Normal PersistentVolumeClaim extra-volumes-instance1-64h5-pgdata Provisioning External provisioner is provisioning volume for claim "kuttl-test-central-quagga/extra-volumes-instance1-64h5-pgdata" pd.csi.storage.gke.io_gke-8ddbe4bb92ac4263b75c-0f28-fe1e-vm_75b95e66-de13-4930-a01d-6304fa39241b logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:04 +0000 UTC Normal PostgresCluster.upstream.pgv2.percona.com extra-volumes RepoHostCreated created pgBackRest repository host StatefulSet/extra-volumes-repo-host postgrescluster-controller logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:05 +0000 UTC Normal Certificate.cert-manager.io extra-volumes-instance1-64h5-cert Issuing The certificate has been successfully issued cert-manager-certificates-issuing logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:05 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-pgbackrest-client-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-venafi logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:05 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-pgbackrest-client-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-acme logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:05 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-pgbackrest-client-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-selfsigned logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:05 +0000 UTC Normal Certificate.cert-manager.io extra-volumes-pgbackrest-client-cert Issuing Issuing certificate as Secret does not exist cert-manager-certificates-trigger logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:05 +0000 UTC Normal Certificate.cert-manager.io extra-volumes-pgbackrest-client-cert Generated Stored new private key in temporary Secret resource "extra-volumes-pgbackrest-client-cert-7jft2" cert-manager-certificates-key-manager logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:05 +0000 UTC Normal Certificate.cert-manager.io extra-volumes-pgbackrest-client-cert Requested Created new CertificateRequest resource "extra-volumes-pgbackrest-client-cert-1" cert-manager-certificates-request-manager logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:05 +0000 UTC Normal Certificate.cert-manager.io extra-volumes-pgbackrest-repo-cert Issuing Issuing certificate as Secret does not exist cert-manager-certificates-trigger logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:05 +0000 UTC Normal Certificate.cert-manager.io extra-volumes-pgbackrest-repo-cert Generated Stored new private key in temporary Secret resource "extra-volumes-pgbackrest-repo-cert-x2gzb" cert-manager-certificates-key-manager logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:05 +0000 UTC Warning Pod extra-volumes-repo-host-0 Scheduling FailedScheduling 0/3 nodes are available: persistentvolumeclaim "extra-volumes-repo1" not found. preemption: 0/3 nodes are available: 3 Preemption is not helpful for scheduling. default-scheduler logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:05 +0000 UTC Normal Pod extra-volumes-repo-host-0 NotTriggerScaleUp Pod didn't trigger scale-up: cluster-autoscaler logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:05 +0000 UTC Normal StatefulSet.apps extra-volumes-repo-host SuccessfulCreate create Pod extra-volumes-repo-host-0 in StatefulSet extra-volumes-repo-host successful statefulset-controller logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:05 +0000 UTC Normal PersistentVolumeClaim extra-volumes-repo1 WaitForPodScheduled waiting for pod extra-volumes-repo-host-0 to be scheduled persistentvolume-controller logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:05 +0000 UTC Normal PersistentVolumeClaim extra-volumes-repo1 Provisioning External provisioner is provisioning volume for claim "kuttl-test-central-quagga/extra-volumes-repo1" pd.csi.storage.gke.io_gke-8ddbe4bb92ac4263b75c-0f28-fe1e-vm_75b95e66-de13-4930-a01d-6304fa39241b logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:05 +0000 UTC Normal PersistentVolumeClaim extra-volumes-repo1 ExternalProvisioning Waiting for a volume to be created either by the external provisioner 'pd.csi.storage.gke.io' or manually by the system administrator. If volume creation is delayed, please verify that the provisioner is running and correctly registered. persistentvolume-controller logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:06 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-pgbackrest-client-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-vault logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:06 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-pgbackrest-client-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-ca logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:06 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-pgbackrest-client-cert-1 cert-manager.io Certificate request has been approved by cert-manager.io cert-manager-certificaterequests-approver logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:06 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-pgbackrest-client-cert-1 CertificateIssued Certificate fetched from issuer successfully cert-manager-certificaterequests-issuer-ca logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:06 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-pgbackrest-repo-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-venafi logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:06 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-pgbackrest-repo-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-selfsigned logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:06 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-pgbackrest-repo-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-ca logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:06 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-pgbackrest-repo-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-vault logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:06 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-pgbackrest-repo-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-acme logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:06 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-pgbackrest-repo-cert-1 cert-manager.io Certificate request has been approved by cert-manager.io cert-manager-certificaterequests-approver logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:06 +0000 UTC Normal Certificate.cert-manager.io extra-volumes-pgbackrest-repo-cert Requested Created new CertificateRequest resource "extra-volumes-pgbackrest-repo-cert-1" cert-manager-certificates-request-manager logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:06 +0000 UTC Normal Pod extra-volumes-pgbouncer-7d9f9ff79d-vq4fx Binding Scheduled Successfully assigned kuttl-test-central-quagga/extra-volumes-pgbouncer-7d9f9ff79d-vq4fx to gke-jen-pg-1770-8c67b09e-default-pool-3ad00b6e-qshp default-scheduler logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:06 +0000 UTC Normal ReplicaSet.apps extra-volumes-pgbouncer-7d9f9ff79d SuccessfulCreate Created pod: extra-volumes-pgbouncer-7d9f9ff79d-vq4fx replicaset-controller logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:06 +0000 UTC Normal Deployment.apps extra-volumes-pgbouncer ScalingReplicaSet Scaled up replica set extra-volumes-pgbouncer-7d9f9ff79d from 0 to 1 deployment-controller logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:07 +0000 UTC Normal Certificate.cert-manager.io extra-volumes-pgbackrest-client-cert Issuing The certificate has been successfully issued cert-manager-certificates-issuing logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:07 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-pgbackrest-repo-cert-1 CertificateIssued Certificate fetched from issuer successfully cert-manager-certificaterequests-issuer-ca logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:07 +0000 UTC Normal Certificate.cert-manager.io extra-volumes-pgbackrest-repo-cert Issuing The certificate has been successfully issued cert-manager-certificates-issuing logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:07 +0000 UTC Normal Pod extra-volumes-pgbouncer-7d9f9ff79d-vq4fx.spec.initContainers{pgbouncer-init} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:07 +0000 UTC Normal Pod extra-volumes-pgbouncer-7d9f9ff79d-vq4fx.spec.initContainers{pgbouncer-init} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6" in 140ms (140ms including waiting). Image size: 86000084 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:07 +0000 UTC Normal Pod extra-volumes-pgbouncer-7d9f9ff79d-vq4fx.spec.initContainers{pgbouncer-init} Created Created container: pgbouncer-init kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:07 +0000 UTC Normal Pod extra-volumes-pgbouncer-7d9f9ff79d-vq4fx.spec.initContainers{pgbouncer-init} Started Started container pgbouncer-init kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:07 +0000 UTC Normal Certificate.cert-manager.io extra-volumes-pgbouncer-cert Issuing Issuing certificate as Secret does not exist cert-manager-certificates-trigger logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:07 +0000 UTC Normal Certificate.cert-manager.io extra-volumes-pgbouncer-cert Generated Stored new private key in temporary Secret resource "extra-volumes-pgbouncer-cert-ndbkq" cert-manager-certificates-key-manager logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:08 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0 Binding Scheduled Successfully assigned kuttl-test-central-quagga/extra-volumes-instance1-64h5-0 to gke-jen-pg-1770-8c67b09e-default-pool-3ad00b6e-xrgt default-scheduler logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:08 +0000 UTC Normal PersistentVolumeClaim extra-volumes-instance1-64h5-pgdata ProvisioningSucceeded Successfully provisioned volume pvc-1ed14eb4-26f0-4961-97a2-cef4043e01c4 pd.csi.storage.gke.io_gke-8ddbe4bb92ac4263b75c-0f28-fe1e-vm_75b95e66-de13-4930-a01d-6304fa39241b logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:08 +0000 UTC Normal Pod extra-volumes-pgbouncer-7d9f9ff79d-vq4fx.spec.containers{pgbouncer} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:main-pgbouncer18" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:08 +0000 UTC Normal Pod extra-volumes-pgbouncer-7d9f9ff79d-vq4fx.spec.containers{pgbouncer} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:main-pgbouncer18" in 107ms (107ms including waiting). Image size: 84604288 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:08 +0000 UTC Normal Pod extra-volumes-pgbouncer-7d9f9ff79d-vq4fx.spec.containers{pgbouncer} Created Created container: pgbouncer kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:08 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-pgbouncer-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-ca logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:08 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-pgbouncer-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-acme logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:08 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-pgbouncer-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-venafi logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:08 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-pgbouncer-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-vault logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:08 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-pgbouncer-cert-1 WaitingForApproval Not signing CertificateRequest until it is Approved cert-manager-certificaterequests-issuer-selfsigned logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:08 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-pgbouncer-cert-1 cert-manager.io Certificate request has been approved by cert-manager.io cert-manager-certificaterequests-approver logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:08 +0000 UTC Normal CertificateRequest.cert-manager.io extra-volumes-pgbouncer-cert-1 CertificateIssued Certificate fetched from issuer successfully cert-manager-certificaterequests-issuer-ca logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:08 +0000 UTC Normal Certificate.cert-manager.io extra-volumes-pgbouncer-cert Requested Created new CertificateRequest resource "extra-volumes-pgbouncer-cert-1" cert-manager-certificates-request-manager logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:09 +0000 UTC Normal Pod extra-volumes-pgbouncer-7d9f9ff79d-vq4fx.spec.containers{pgbouncer} Started Started container pgbouncer kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:09 +0000 UTC Normal Pod extra-volumes-pgbouncer-7d9f9ff79d-vq4fx.spec.containers{pgbouncer-config} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:main-pgbouncer18" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:09 +0000 UTC Normal Pod extra-volumes-pgbouncer-7d9f9ff79d-vq4fx.spec.containers{pgbouncer-config} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:main-pgbouncer18" in 149ms (149ms including waiting). Image size: 84604288 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:09 +0000 UTC Normal Pod extra-volumes-pgbouncer-7d9f9ff79d-vq4fx.spec.containers{pgbouncer-config} Created Created container: pgbouncer-config kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:09 +0000 UTC Normal Pod extra-volumes-pgbouncer-7d9f9ff79d-vq4fx.spec.containers{pgbouncer-config} Started Started container pgbouncer-config kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:09 +0000 UTC Normal Certificate.cert-manager.io extra-volumes-pgbouncer-cert Issuing The certificate has been successfully issued cert-manager-certificates-issuing logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:09 +0000 UTC Normal Pod extra-volumes-repo-host-0 Binding Scheduled Successfully assigned kuttl-test-central-quagga/extra-volumes-repo-host-0 to gke-jen-pg-1770-8c67b09e-default-pool-3ad00b6e-4fsm default-scheduler logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:09 +0000 UTC Normal PersistentVolumeClaim extra-volumes-repo1 ProvisioningSucceeded Successfully provisioned volume pvc-1b71d788-5ac9-4591-b11d-aecdfbe23359 pd.csi.storage.gke.io_gke-8ddbe4bb92ac4263b75c-0f28-fe1e-vm_75b95e66-de13-4930-a01d-6304fa39241b logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:16 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0 SuccessfulAttachVolume AttachVolume.Attach succeeded for volume "pvc-1ed14eb4-26f0-4961-97a2-cef4043e01c4" attachdetach-controller logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:17 +0000 UTC Normal Pod extra-volumes-repo-host-0 SuccessfulAttachVolume AttachVolume.Attach succeeded for volume "pvc-1b71d788-5ac9-4591-b11d-aecdfbe23359" attachdetach-controller logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:18 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{database-init} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:18 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{database-init} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6" in 144ms (144ms including waiting). Image size: 86000084 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:18 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{database-init} Created Created container: database-init kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:18 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{database-init} Started Started container database-init kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:19 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{postgres-startup} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:19 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{postgres-startup} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" in 125ms (125ms including waiting). Image size: 449182289 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:19 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{postgres-startup} Created Created container: postgres-startup kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:20 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{postgres-startup} Started Started container postgres-startup kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:20 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init-logcollector} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:20 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init-logcollector} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" in 143ms (143ms including waiting). Image size: 449182289 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:20 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init-logcollector} Created Created container: nss-wrapper-init-logcollector kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:21 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init-logcollector} Started Started container nss-wrapper-init-logcollector kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:21 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:21 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" in 130ms (130ms including waiting). Image size: 449182289 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:21 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init} Created Created container: nss-wrapper-init kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:21 +0000 UTC Normal Pod extra-volumes-repo-host-0.spec.initContainers{pgbackrest-log-dir} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:21 +0000 UTC Normal Pod extra-volumes-repo-host-0.spec.initContainers{pgbackrest-log-dir} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18" in 138ms (138ms including waiting). Image size: 122685992 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:21 +0000 UTC Normal Pod extra-volumes-repo-host-0.spec.initContainers{pgbackrest-log-dir} Created Created container: pgbackrest-log-dir kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:21 +0000 UTC Normal Pod extra-volumes-repo-host-0.spec.initContainers{pgbackrest-log-dir} Started Started container pgbackrest-log-dir kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:22 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init} Started Started container nss-wrapper-init kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:22 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{database} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:22 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{database} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" in 129ms (129ms including waiting). Image size: 449182289 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:22 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{database} Created Created container: database kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:22 +0000 UTC Normal Pod extra-volumes-repo-host-0.spec.initContainers{nss-wrapper-init} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:22 +0000 UTC Normal Pod extra-volumes-repo-host-0.spec.initContainers{nss-wrapper-init} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18" in 124ms (124ms including waiting). Image size: 122685992 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:22 +0000 UTC Normal Pod extra-volumes-repo-host-0.spec.initContainers{nss-wrapper-init} Created Created container: nss-wrapper-init kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:22 +0000 UTC Normal Pod extra-volumes-repo-host-0.spec.initContainers{nss-wrapper-init} Started Started container nss-wrapper-init kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:23 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{database} Started Started container database kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:23 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{replication-cert-copy} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:23 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{replication-cert-copy} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" in 174ms (174ms including waiting). Image size: 449182289 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:23 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{replication-cert-copy} Created Created container: replication-cert-copy kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:23 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{replication-cert-copy} Started Started container replication-cert-copy kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:23 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{logs} Pulled Container image "docker.io/perconalab/fluentbit:main-logcollector" already present on machine kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:23 +0000 UTC Normal Pod extra-volumes-repo-host-0.spec.containers{pgbackrest} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:23 +0000 UTC Normal Pod extra-volumes-repo-host-0.spec.containers{pgbackrest} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18" in 137ms (137ms including waiting). Image size: 122685992 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:23 +0000 UTC Normal Pod extra-volumes-repo-host-0.spec.containers{pgbackrest} Created Created container: pgbackrest kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:23 +0000 UTC Normal Pod extra-volumes-repo-host-0.spec.containers{pgbackrest} Started Started container pgbackrest kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:23 +0000 UTC Normal Pod extra-volumes-repo-host-0.spec.containers{pgbackrest-config} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:23 +0000 UTC Normal Pod extra-volumes-repo-host-0.spec.containers{pgbackrest-config} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18" in 128ms (128ms including waiting). Image size: 122685992 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:23 +0000 UTC Normal Pod extra-volumes-repo-host-0.spec.containers{pgbackrest-config} Created Created container: pgbackrest-config kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:23 +0000 UTC Normal Pod extra-volumes-repo-host-0.spec.containers{pgbackrest-config} Started Started container pgbackrest-config kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:27 +0000 UTC Warning Pod extra-volumes-instance1-64h5-0.spec.containers{database} Unhealthy Readiness probe failed: kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:33 +0000 UTC Normal PostgresCluster.upstream.pgv2.percona.com extra-volumes StanzasCreated pgBackRest stanza creation completed successfully postgrescluster-controller logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:34 +0000 UTC Normal Pod extra-volumes-backup-shvg-smksz Binding Scheduled Successfully assigned kuttl-test-central-quagga/extra-volumes-backup-shvg-smksz to gke-jen-pg-1770-8c67b09e-default-pool-3ad00b6e-4fsm default-scheduler logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:34 +0000 UTC Normal Job.batch extra-volumes-backup-shvg SuccessfulCreate Created pod: extra-volumes-backup-shvg-smksz job-controller logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:35 +0000 UTC Normal Pod extra-volumes-backup-shvg-smksz.spec.initContainers{pgbackrest-init} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:35 +0000 UTC Normal Pod extra-volumes-backup-shvg-smksz.spec.initContainers{pgbackrest-init} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6" in 126ms (126ms including waiting). Image size: 86000084 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:35 +0000 UTC Normal Pod extra-volumes-backup-shvg-smksz.spec.initContainers{pgbackrest-init} Created Created container: pgbackrest-init kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:35 +0000 UTC Normal Pod extra-volumes-backup-shvg-smksz.spec.initContainers{pgbackrest-init} Started Started container pgbackrest-init kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:36 +0000 UTC Normal Pod extra-volumes-backup-shvg-smksz.spec.containers{pgbackrest} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:36 +0000 UTC Normal Pod extra-volumes-backup-shvg-smksz.spec.containers{pgbackrest} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:main-pgbackrest18" in 94ms (94ms including waiting). Image size: 122685992 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:36 +0000 UTC Normal Pod extra-volumes-backup-shvg-smksz.spec.containers{pgbackrest} Created Created container: pgbackrest kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:36 +0000 UTC Normal Pod extra-volumes-backup-shvg-smksz.spec.containers{pgbackrest} Started Started container pgbackrest kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:39 +0000 UTC Warning PostgresCluster.upstream.pgv2.percona.com extra-volumes UnableToCreateStanzas repo1-path = /pgbackrest/repo1 2026-08-20 14:33:39.761 P00 ERROR: [050]: unable to acquire lock on file '/tmp/pgbackrest/db-backup-1.lock': Resource temporarily unavailable HINT: is another pgBackRest process running? 2026-08-20 14:33:39.961 P00 ERROR: [050]: unable to acquire lock on file '/tmp/pgbackrest/db-backup-1.lock': Resource temporarily unavailable HINT: is another pgBackRest process running? : command terminated with exit code 50 postgrescluster-controller logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:56 +0000 UTC Normal PersistentVolumeClaim extra-pvc WaitForFirstConsumer waiting for first consumer to be created before binding persistentvolume-controller logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:33:59 +0000 UTC Normal Job.batch extra-volumes-backup-shvg Completed Job completed job-controller logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:06 +0000 UTC Normal PersistentVolumeClaim extra-pvc ExternalProvisioning Waiting for a volume to be created either by the external provisioner 'pd.csi.storage.gke.io' or manually by the system administrator. If volume creation is delayed, please verify that the provisioner is running and correctly registered. persistentvolume-controller logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:06 +0000 UTC Normal PersistentVolumeClaim extra-pvc Provisioning External provisioner is provisioning volume for claim "kuttl-test-central-quagga/extra-pvc" pd.csi.storage.gke.io_gke-8ddbe4bb92ac4263b75c-0f28-fe1e-vm_75b95e66-de13-4930-a01d-6304fa39241b logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:10 +0000 UTC Normal PersistentVolumeClaim extra-pvc ProvisioningSucceeded Successfully provisioned volume pvc-a9dc22d4-7e90-4e2d-b1aa-54d0235b3e4c pd.csi.storage.gke.io_gke-8ddbe4bb92ac4263b75c-0f28-fe1e-vm_75b95e66-de13-4930-a01d-6304fa39241b logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:10 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0 Binding Scheduled Successfully assigned kuttl-test-central-quagga/extra-volumes-instance1-64h5-0 to gke-jen-pg-1770-8c67b09e-default-pool-3ad00b6e-xrgt default-scheduler logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:21 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0 SuccessfulAttachVolume AttachVolume.Attach succeeded for volume "pvc-a9dc22d4-7e90-4e2d-b1aa-54d0235b3e4c" attachdetach-controller logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:26 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0 SuccessfulAttachVolume AttachVolume.Attach succeeded for volume "pvc-1ed14eb4-26f0-4961-97a2-cef4043e01c4" attachdetach-controller logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:28 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{database-init} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:28 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{database-init} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6" in 139ms (139ms including waiting). Image size: 86000084 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:28 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{database-init} Created Created container: database-init kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:28 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{database-init} Started Started container database-init kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:29 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{postgres-startup} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:29 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{postgres-startup} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" in 231ms (231ms including waiting). Image size: 449182289 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:29 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{postgres-startup} Created Created container: postgres-startup kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:29 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{postgres-startup} Started Started container postgres-startup kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:30 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init-logcollector} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:30 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init-logcollector} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" in 115ms (115ms including waiting). Image size: 449182289 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:30 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init-logcollector} Created Created container: nss-wrapper-init-logcollector kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:30 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init-logcollector} Started Started container nss-wrapper-init-logcollector kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:31 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:31 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" in 149ms (149ms including waiting). Image size: 449182289 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:31 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init} Created Created container: nss-wrapper-init kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:31 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init} Started Started container nss-wrapper-init kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:32 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{database} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:32 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{database} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" in 140ms (140ms including waiting). Image size: 449182289 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:32 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{database} Created Created container: database kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:32 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{database} Started Started container database kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:32 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{replication-cert-copy} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:32 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{replication-cert-copy} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" in 131ms (131ms including waiting). Image size: 449182289 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:32 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{replication-cert-copy} Created Created container: replication-cert-copy kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:32 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{replication-cert-copy} Started Started container replication-cert-copy kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:32 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{logs} Pulled Container image "docker.io/perconalab/fluentbit:main-logcollector" already present on machine kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:44 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0 Binding Scheduled Successfully assigned kuttl-test-central-quagga/extra-volumes-instance1-64h5-0 to gke-jen-pg-1770-8c67b09e-default-pool-3ad00b6e-qshp default-scheduler logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:44 +0000 UTC Normal StatefulSet.apps extra-volumes-instance1-64h5 SuccessfulDelete delete Pod extra-volumes-instance1-64h5-0 in StatefulSet extra-volumes-instance1-64h5 successful statefulset-controller logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:45 +0000 UTC Warning Pod extra-volumes-instance1-64h5-0 FailedAttachVolume Multi-Attach error for volume "pvc-1ed14eb4-26f0-4961-97a2-cef4043e01c4" Volume is already exclusively attached to one node and can't be attached to another attachdetach-controller logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:45 +0000 UTC Warning Pod extra-volumes-instance1-64h5-0 FailedAttachVolume Multi-Attach error for volume "pvc-a9dc22d4-7e90-4e2d-b1aa-54d0235b3e4c" Volume is already exclusively attached to one node and can't be attached to another attachdetach-controller logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:34:45 +0000 UTC Normal Issuer.cert-manager.io extra-volumes-tls-issuer KeyPairVerified Signing CA verified cert-manager-issuers logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:35:33 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0 SuccessfulAttachVolume AttachVolume.Attach succeeded for volume "pvc-a9dc22d4-7e90-4e2d-b1aa-54d0235b3e4c" attachdetach-controller logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:35:40 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0 SuccessfulAttachVolume AttachVolume.Attach succeeded for volume "pvc-1ed14eb4-26f0-4961-97a2-cef4043e01c4" attachdetach-controller logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:35:42 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{database-init} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:35:42 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{database-init} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6" in 137ms (137ms including waiting). Image size: 86000084 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:35:42 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{database-init} Created Created container: database-init kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:35:42 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{database-init} Started Started container database-init kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:35:43 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{postgres-startup} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:35:43 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{postgres-startup} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" in 125ms (125ms including waiting). Image size: 449182289 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:35:43 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{postgres-startup} Created Created container: postgres-startup kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:35:43 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{postgres-startup} Started Started container postgres-startup kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:35:44 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init-logcollector} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:35:44 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init-logcollector} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" in 131ms (131ms including waiting). Image size: 449182289 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:35:44 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init-logcollector} Created Created container: nss-wrapper-init-logcollector kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:35:44 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init-logcollector} Started Started container nss-wrapper-init-logcollector kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:35:45 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:35:45 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" in 138ms (138ms including waiting). Image size: 449182289 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:35:45 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init} Created Created container: nss-wrapper-init kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:35:45 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init} Started Started container nss-wrapper-init kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:35:46 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{database} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:35:46 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{database} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" in 171ms (171ms including waiting). Image size: 449182289 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:35:46 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{database} Created Created container: database kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:35:46 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{database} Started Started container database kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:35:46 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{replication-cert-copy} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:35:46 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{replication-cert-copy} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" in 154ms (154ms including waiting). Image size: 449182289 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:35:46 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{replication-cert-copy} Created Created container: replication-cert-copy kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:35:46 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{replication-cert-copy} Started Started container replication-cert-copy kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:35:46 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{logs} Pulled Container image "docker.io/perconalab/fluentbit:main-logcollector" already present on machine kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:35:49 +0000 UTC Warning Pod extra-volumes-instance1-64h5-0.spec.containers{database} Unhealthy Readiness probe failed: kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:36:37 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0 Binding Scheduled Successfully assigned kuttl-test-central-quagga/extra-volumes-instance1-64h5-0 to gke-jen-pg-1770-8c67b09e-default-pool-3ad00b6e-qshp default-scheduler logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:36:43 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{database-init} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:36:43 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{database-init} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:PR-1770-8c67b09e6" in 125ms (125ms including waiting). Image size: 86000084 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:36:43 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{database-init} Created Created container: database-init kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:36:43 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{database-init} Started Started container database-init kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:36:44 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{postgres-startup} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:36:44 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{postgres-startup} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" in 167ms (167ms including waiting). Image size: 449182289 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:36:44 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{postgres-startup} Created Created container: postgres-startup kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:36:44 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{postgres-startup} Started Started container postgres-startup kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:36:45 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init-logcollector} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:36:45 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init-logcollector} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" in 121ms (121ms including waiting). Image size: 449182289 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:36:45 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init-logcollector} Created Created container: nss-wrapper-init-logcollector kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:36:45 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init-logcollector} Started Started container nss-wrapper-init-logcollector kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:36:46 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:36:46 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" in 112ms (112ms including waiting). Image size: 449182289 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:36:46 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init} Created Created container: nss-wrapper-init kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:36:46 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.initContainers{nss-wrapper-init} Started Started container nss-wrapper-init kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:36:47 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{database} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:36:47 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{database} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" in 133ms (133ms including waiting). Image size: 449182289 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:36:47 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{database} Created Created container: database kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:36:47 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{database} Started Started container database kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:36:47 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{replication-cert-copy} Pulling Pulling image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:36:47 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{replication-cert-copy} Pulled Successfully pulled image "docker.io/perconalab/percona-postgresql-operator:main-ppg18-postgres" in 124ms (124ms including waiting). Image size: 449182289 bytes. kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:36:47 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{replication-cert-copy} Created Created container: replication-cert-copy kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:36:48 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{replication-cert-copy} Started Started container replication-cert-copy kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:36:48 +0000 UTC Normal Pod extra-volumes-instance1-64h5-0.spec.containers{logs} Pulled Container image "docker.io/perconalab/fluentbit:main-logcollector" already present on machine kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:37:12 +0000 UTC Normal Pod extra-volumes-pgbouncer-7d9f9ff79d-vq4fx.spec.containers{pgbouncer} Killing Stopping container pgbouncer kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:37:12 +0000 UTC Normal Pod extra-volumes-pgbouncer-7d9f9ff79d-vq4fx.spec.containers{pgbouncer-config} Killing Stopping container pgbouncer-config kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:37:12 +0000 UTC Normal Pod extra-volumes-repo-host-0.spec.containers{pgbackrest} Killing Stopping container pgbackrest kubelet logger.go:42: 14:37:29 | extra-volumes | 2026-08-20 14:37:12 +0000 UTC Normal Pod extra-volumes-repo-host-0.spec.containers{pgbackrest-config} Killing Stopping container pgbackrest-config kubelet logger.go:42: 14:37:29 | extra-volumes | Deleting namespace "kuttl-test-central-quagga" === NAME kuttl harness.go:404: run tests finished harness.go:511: cleaning up harness.go:568: removing temp folder: "" --- PASS: kuttl (354.46s) --- PASS: kuttl/harness (0.00s) --- PASS: kuttl/harness/extra-volumes (353.73s) PASS