=== RUN kuttl harness.go:462: starting setup harness.go:252: running tests using configured kubeconfig. harness.go:275: Successful connection to cluster at: https://34.30.60.236 harness.go:360: running tests harness.go:73: going to run test suite with timeout of 180 seconds for each step harness.go:372: testsuite: e2e-tests/tests has 13 tests === RUN kuttl/harness === RUN kuttl/harness/upgrade-minor === PAUSE kuttl/harness/upgrade-minor === CONT kuttl/harness/upgrade-minor logger.go:42: 12:54:04 | upgrade-minor | Creating namespace: kuttl-test-coherent-ray logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | starting test step 0-deploy-operator logger.go:42: 12:54:04 | upgrade-minor/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 git_tag="v$(curl -s https://check.percona.com/versions/v1/pg-operator | jq -r '.versions[].operator' | sort -V | tail -n1)" deploy_operator_gh $git_tag deploy_client] logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | + source ../../functions logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ realpath ../../.. logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | ++ ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-685 logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | ++++ pwd logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ basename /mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests/tests/upgrade-minor logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | ++ test_name=upgrade-minor logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | ++ source /mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests/vars.sh logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ export ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-685 logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-685 logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ export DEPLOY_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/deploy logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ DEPLOY_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/deploy logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ export TESTS_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ TESTS_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ export TESTS_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests/conf logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ TESTS_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests/conf logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ export TEMP_DIR=/tmp/kuttl/pg/upgrade-minor logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ TEMP_DIR=/tmp/kuttl/pg/upgrade-minor logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | ++++ git rev-parse --abbrev-ref HEAD logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ export GIT_BRANCH=PR-685 logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ GIT_BRANCH=PR-685 logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ export VERSION=PR-685-07f0dbb6c logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ VERSION=PR-685-07f0dbb6c logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ export IMAGE_BASE=perconalab/percona-postgresql-operator logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ IMAGE_BASE=perconalab/percona-postgresql-operator logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ export IMAGE=perconalab/percona-postgresql-operator:PR-685-07f0dbb6c logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ IMAGE=perconalab/percona-postgresql-operator:PR-685-07f0dbb6c logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ export PG_VER=16 logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ PG_VER=16 logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ export IMAGE_PGBOUNCER=perconalab/percona-postgresql-operator:main-ppg16-pgbouncer logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ IMAGE_PGBOUNCER=perconalab/percona-postgresql-operator:main-ppg16-pgbouncer logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ export IMAGE_POSTGRESQL=perconalab/percona-postgresql-operator:main-ppg16-postgres logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ IMAGE_POSTGRESQL=perconalab/percona-postgresql-operator:main-ppg16-postgres logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ export IMAGE_BACKREST=perconalab/percona-postgresql-operator:main-ppg16-pgbackrest logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ IMAGE_BACKREST=perconalab/percona-postgresql-operator:main-ppg16-pgbackrest logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ export BUCKET=pg-operator-testing logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ BUCKET=pg-operator-testing logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ export PMM_SERVER_VERSION=9.9.9 logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ PMM_SERVER_VERSION=9.9.9 logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ export IMAGE_PMM_CLIENT=perconalab/pmm-client:dev-latest logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ IMAGE_PMM_CLIENT=perconalab/pmm-client:dev-latest logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ export IMAGE_PMM_SERVER=perconalab/pmm-server:dev-latest logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ IMAGE_PMM_SERVER=perconalab/pmm-server:dev-latest logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ export PGOV1_TAG=1.4.0 logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ PGOV1_TAG=1.4.0 logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ export PGOV1_VER=14 logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ PGOV1_VER=14 logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | ++++ which gdate logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | which: no gdate in (/mnt/jenkins/workspace/cloud-pg-operator_PR-685/bin/:/home/ec2-user/.krew/bin:/usr/local/bin:/usr/bin) logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | ++++ which date logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ date=/usr/bin/date logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | ++++ which gsed logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | which: no gsed in (/mnt/jenkins/workspace/cloud-pg-operator_PR-685/bin/:/home/ec2-user/.krew/bin:/usr/local/bin:/usr/bin) logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | ++++ which sed logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ sed=/usr/bin/sed logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | +++ command -v oc logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | ++ oc get projects logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | + init_temp_dir logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | + rm -rf /tmp/kuttl/pg/upgrade-minor logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | + mkdir -p /tmp/kuttl/pg/upgrade-minor logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | ++ curl -s https://check.percona.com/versions/v1/pg-operator logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | ++ jq -r '.versions[].operator' logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | ++ sort -V logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | ++ tail -n1 logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | + git_tag=v2.3.1 logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | + deploy_operator_gh v2.3.1 logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | + local git_tag=v2.3.1 logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | + local cw_prefix= logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | + destroy_operator logger.go:42: 12:54:04 | upgrade-minor/0-deploy-operator | + kubectl -n pg-operator delete deployment percona-postgresql-operator --force --grace-period=0 logger.go:42: 12:54:04 | upgrade-minor/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: 12:54:05 | upgrade-minor/0-deploy-operator | deployment.apps "percona-postgresql-operator" force deleted logger.go:42: 12:54:05 | upgrade-minor/0-deploy-operator | + [[ -n pg-operator ]] logger.go:42: 12:54:05 | upgrade-minor/0-deploy-operator | + kubectl delete namespace pg-operator --force --grace-period=0 logger.go:42: 12:54:05 | upgrade-minor/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: 12:54:05 | upgrade-minor/0-deploy-operator | namespace "pg-operator" force deleted logger.go:42: 12:54:11 | upgrade-minor/0-deploy-operator | + [[ -n pg-operator ]] logger.go:42: 12:54:11 | upgrade-minor/0-deploy-operator | + create_namespace pg-operator logger.go:42: 12:54:11 | upgrade-minor/0-deploy-operator | + local namespace=pg-operator logger.go:42: 12:54:11 | upgrade-minor/0-deploy-operator | + [[ -n '' ]] logger.go:42: 12:54:11 | upgrade-minor/0-deploy-operator | + kubectl delete namespace pg-operator --ignore-not-found logger.go:42: 12:54:11 | upgrade-minor/0-deploy-operator | + kubectl wait --for=delete namespace pg-operator logger.go:42: 12:54:12 | upgrade-minor/0-deploy-operator | + kubectl create namespace pg-operator logger.go:42: 12:54:12 | upgrade-minor/0-deploy-operator | namespace/pg-operator created logger.go:42: 12:54:12 | upgrade-minor/0-deploy-operator | + cw_prefix=cw- logger.go:42: 12:54:12 | upgrade-minor/0-deploy-operator | + kubectl -n pg-operator apply --server-side --force-conflicts -f https://raw.githubusercontent.com/percona/percona-postgresql-operator/v2.3.1/deploy/crd.yaml logger.go:42: 12:54:13 | upgrade-minor/0-deploy-operator | customresourcedefinition.apiextensions.k8s.io/perconapgbackups.pgv2.percona.com serverside-applied logger.go:42: 12:54:15 | upgrade-minor/0-deploy-operator | customresourcedefinition.apiextensions.k8s.io/perconapgclusters.pgv2.percona.com serverside-applied logger.go:42: 12:54:15 | upgrade-minor/0-deploy-operator | customresourcedefinition.apiextensions.k8s.io/perconapgrestores.pgv2.percona.com serverside-applied logger.go:42: 12:54:19 | upgrade-minor/0-deploy-operator | customresourcedefinition.apiextensions.k8s.io/postgresclusters.postgres-operator.crunchydata.com serverside-applied logger.go:42: 12:54:19 | upgrade-minor/0-deploy-operator | + kubectl -n pg-operator apply --server-side --force-conflicts -f https://raw.githubusercontent.com/percona/percona-postgresql-operator/v2.3.1/deploy/cw-rbac.yaml logger.go:42: 12:54:20 | upgrade-minor/0-deploy-operator | serviceaccount/percona-postgresql-operator serverside-applied logger.go:42: 12:54:20 | upgrade-minor/0-deploy-operator | clusterrole.rbac.authorization.k8s.io/percona-postgresql-operator serverside-applied logger.go:42: 12:54:20 | upgrade-minor/0-deploy-operator | clusterrolebinding.rbac.authorization.k8s.io/service-account-percona-postgresql-operator serverside-applied logger.go:42: 12:54:20 | upgrade-minor/0-deploy-operator | + curl -s https://raw.githubusercontent.com/percona/percona-postgresql-operator/v2.3.1/deploy/cw-operator.yaml logger.go:42: 12:54:20 | upgrade-minor/0-deploy-operator | + yq eval '.spec.template.spec.containers[0].image = "percona/percona-postgresql-operator:2.3.1"' /tmp/kuttl/pg/upgrade-minor/cw-operator_v2.3.1.yaml logger.go:42: 12:54:20 | upgrade-minor/0-deploy-operator | + kubectl -n pg-operator apply -f - logger.go:42: 12:54:21 | upgrade-minor/0-deploy-operator | deployment.apps/percona-postgresql-operator created logger.go:42: 12:54:21 | upgrade-minor/0-deploy-operator | + deploy_client logger.go:42: 12:54:21 | upgrade-minor/0-deploy-operator | + kubectl -n kuttl-test-coherent-ray apply -f /mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests/conf/client.yaml logger.go:42: 12:54:22 | upgrade-minor/0-deploy-operator | deployment.apps/pg-client created logger.go:42: 12:54:23 | upgrade-minor/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: 12:54:23 | upgrade-minor/0-deploy-operator | ASSERT deployment percona-postgresql-operator matching field criteria 'status.readyReplicas=1' should exist. logger.go:42: 12:54:24 | upgrade-minor/0-deploy-operator | ASSERT FAIL Resource(s) not found. logger.go:42: 12:54:25 | upgrade-minor/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: 12:54:25 | upgrade-minor/0-deploy-operator | ASSERT deployment percona-postgresql-operator matching field criteria 'status.readyReplicas=1' should exist. logger.go:42: 12:54:25 | upgrade-minor/0-deploy-operator | INFO Found 1 resource(s). logger.go:42: 12:54:25 | upgrade-minor/0-deploy-operator | NAME NAMESPACE COL0 logger.go:42: 12:54:25 | upgrade-minor/0-deploy-operator | percona-postgresql-operator pg-operator 1 logger.go:42: 12:54:25 | upgrade-minor/0-deploy-operator | ASSERT PASS logger.go:42: 12:54:25 | upgrade-minor/0-deploy-operator | test step completed 0-deploy-operator logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | starting test step 1-create-cluster logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | running command: [sh -c set -o errexit set -o xtrace source ../../functions # get lower operator version from which we will upgrade lower_ver="$(curl -s https://check.percona.com/versions/v1/pg-operator | jq -r '.versions[].operator' | sort -V | tail -n1)" curl -s "https://raw.githubusercontent.com/percona/percona-postgresql-operator/v${lower_ver}/deploy/cr.yaml" >"${TEMP_DIR}/cr_lower.yaml" # get PG version which we want to test pg_ver=$(echo "$IMAGE_POSTGRESQL" | cut -d':' -f2 | grep -oE '\-ppg[0-9]+-' | grep -oE '[0-9]+' | tr -d '-') pg_exists=0 pg_exists=$(curl -s https://check.percona.com/versions/v1/pg-operator/${lower_ver} | jq '.versions[].matrix.postgresql | with_entries(select(.key | startswith("'${pg_ver}'"))) | length') # if the lower version of operator doesn't have new PG version we will use lower PG version # but in that case not the intended targer PG database image will be tested # (this should happen once a year on major PG version release, but only for this latest version) if [ $pg_exists -eq 0 ]; then pg_ver=$((pg_ver - 1)) fi echo "${pg_ver}" >"${TEMP_DIR}/pg_ver.txt" yq -i eval ' .metadata.name = "'${test_name}'" | .metadata.labels = {"e2e":"'${test_name}'"} | .spec.image = "percona/percona-postgresql-operator:'${lower_ver}'-ppg'${pg_ver}'-postgres" | .spec.postgresVersion = '${pg_ver}' | .spec.proxy.pgBouncer.image = "percona/percona-postgresql-operator:'${lower_ver}'-ppg'${pg_ver}'-pgbouncer" | .spec.backups.pgbackrest.repos[0].schedules = null | .spec.backups.pgbackrest.image = "percona/percona-postgresql-operator:'${lower_ver}'-ppg'${pg_ver}'-pgbackrest" | .spec.users += [{"name":"postgres","password":{"type":"AlphaNumeric"}}] | .spec.users += [{"name":"'${test_name}'","password":{"type":"AlphaNumeric"}}]' "${TEMP_DIR}/cr_lower.yaml" kubectl -n "${NAMESPACE}" apply -f "${TEMP_DIR}/cr_lower.yaml"] logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | + source ../../functions logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ realpath ../../.. logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | ++ ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-685 logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | ++++ pwd logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ basename /mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests/tests/upgrade-minor logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | ++ test_name=upgrade-minor logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | ++ source /mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests/vars.sh logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ export ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-685 logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-685 logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ export DEPLOY_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/deploy logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ DEPLOY_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/deploy logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ export TESTS_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ TESTS_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ export TESTS_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests/conf logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ TESTS_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests/conf logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ export TEMP_DIR=/tmp/kuttl/pg/upgrade-minor logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ TEMP_DIR=/tmp/kuttl/pg/upgrade-minor logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | ++++ git rev-parse --abbrev-ref HEAD logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ export GIT_BRANCH=PR-685 logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ GIT_BRANCH=PR-685 logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ export VERSION=PR-685-07f0dbb6c logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ VERSION=PR-685-07f0dbb6c logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ export IMAGE_BASE=perconalab/percona-postgresql-operator logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ IMAGE_BASE=perconalab/percona-postgresql-operator logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ export IMAGE=perconalab/percona-postgresql-operator:PR-685-07f0dbb6c logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ IMAGE=perconalab/percona-postgresql-operator:PR-685-07f0dbb6c logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ export PG_VER=16 logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ PG_VER=16 logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ export IMAGE_PGBOUNCER=perconalab/percona-postgresql-operator:main-ppg16-pgbouncer logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ IMAGE_PGBOUNCER=perconalab/percona-postgresql-operator:main-ppg16-pgbouncer logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ export IMAGE_POSTGRESQL=perconalab/percona-postgresql-operator:main-ppg16-postgres logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ IMAGE_POSTGRESQL=perconalab/percona-postgresql-operator:main-ppg16-postgres logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ export IMAGE_BACKREST=perconalab/percona-postgresql-operator:main-ppg16-pgbackrest logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ IMAGE_BACKREST=perconalab/percona-postgresql-operator:main-ppg16-pgbackrest logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ export BUCKET=pg-operator-testing logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ BUCKET=pg-operator-testing logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ export PMM_SERVER_VERSION=9.9.9 logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ PMM_SERVER_VERSION=9.9.9 logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ export IMAGE_PMM_CLIENT=perconalab/pmm-client:dev-latest logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ IMAGE_PMM_CLIENT=perconalab/pmm-client:dev-latest logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ export IMAGE_PMM_SERVER=perconalab/pmm-server:dev-latest logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ IMAGE_PMM_SERVER=perconalab/pmm-server:dev-latest logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ export PGOV1_TAG=1.4.0 logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ PGOV1_TAG=1.4.0 logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ export PGOV1_VER=14 logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ PGOV1_VER=14 logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | ++++ which gdate logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | which: no gdate in (/mnt/jenkins/workspace/cloud-pg-operator_PR-685/bin/:/home/ec2-user/.krew/bin:/usr/local/bin:/usr/bin) logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | ++++ which date logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ date=/usr/bin/date logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | ++++ which gsed logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | which: no gsed in (/mnt/jenkins/workspace/cloud-pg-operator_PR-685/bin/:/home/ec2-user/.krew/bin:/usr/local/bin:/usr/bin) logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | ++++ which sed logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ sed=/usr/bin/sed logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | +++ command -v oc logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | ++ oc get projects logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | ++ curl -s https://check.percona.com/versions/v1/pg-operator logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | ++ jq -r '.versions[].operator' logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | ++ sort -V logger.go:42: 12:54:25 | upgrade-minor/1-create-cluster | ++ tail -n1 logger.go:42: 12:54:26 | upgrade-minor/1-create-cluster | + lower_ver=2.3.1 logger.go:42: 12:54:26 | upgrade-minor/1-create-cluster | + curl -s https://raw.githubusercontent.com/percona/percona-postgresql-operator/v2.3.1/deploy/cr.yaml logger.go:42: 12:54:26 | upgrade-minor/1-create-cluster | ++ echo perconalab/percona-postgresql-operator:main-ppg16-postgres logger.go:42: 12:54:26 | upgrade-minor/1-create-cluster | ++ cut -d: -f2 logger.go:42: 12:54:26 | upgrade-minor/1-create-cluster | ++ grep -oE '[0-9]+' logger.go:42: 12:54:26 | upgrade-minor/1-create-cluster | ++ tr -d - logger.go:42: 12:54:26 | upgrade-minor/1-create-cluster | ++ grep -oE '\-ppg[0-9]+-' logger.go:42: 12:54:26 | upgrade-minor/1-create-cluster | + pg_ver=16 logger.go:42: 12:54:26 | upgrade-minor/1-create-cluster | + pg_exists=0 logger.go:42: 12:54:26 | upgrade-minor/1-create-cluster | ++ curl -s https://check.percona.com/versions/v1/pg-operator/2.3.1 logger.go:42: 12:54:26 | upgrade-minor/1-create-cluster | ++ jq '.versions[].matrix.postgresql | with_entries(select(.key | startswith("16"))) | length' logger.go:42: 12:54:26 | upgrade-minor/1-create-cluster | + pg_exists=1 logger.go:42: 12:54:26 | upgrade-minor/1-create-cluster | + '[' 1 -eq 0 ']' logger.go:42: 12:54:26 | upgrade-minor/1-create-cluster | + echo 16 logger.go:42: 12:54:26 | upgrade-minor/1-create-cluster | + yq -i eval ' logger.go:42: 12:54:26 | upgrade-minor/1-create-cluster | .metadata.name = "upgrade-minor" | logger.go:42: 12:54:26 | upgrade-minor/1-create-cluster | .metadata.labels = {"e2e":"upgrade-minor"} | logger.go:42: 12:54:26 | upgrade-minor/1-create-cluster | .spec.image = "percona/percona-postgresql-operator:2.3.1-ppg16-postgres" | logger.go:42: 12:54:26 | upgrade-minor/1-create-cluster | .spec.postgresVersion = 16 | logger.go:42: 12:54:26 | upgrade-minor/1-create-cluster | .spec.proxy.pgBouncer.image = "percona/percona-postgresql-operator:2.3.1-ppg16-pgbouncer" | logger.go:42: 12:54:26 | upgrade-minor/1-create-cluster | .spec.backups.pgbackrest.repos[0].schedules = null | logger.go:42: 12:54:26 | upgrade-minor/1-create-cluster | .spec.backups.pgbackrest.image = "percona/percona-postgresql-operator:2.3.1-ppg16-pgbackrest" | logger.go:42: 12:54:26 | upgrade-minor/1-create-cluster | .spec.users += [{"name":"postgres","password":{"type":"AlphaNumeric"}}] | logger.go:42: 12:54:26 | upgrade-minor/1-create-cluster | .spec.users += [{"name":"upgrade-minor","password":{"type":"AlphaNumeric"}}]' /tmp/kuttl/pg/upgrade-minor/cr_lower.yaml logger.go:42: 12:54:26 | upgrade-minor/1-create-cluster | + kubectl -n kuttl-test-coherent-ray apply -f /tmp/kuttl/pg/upgrade-minor/cr_lower.yaml logger.go:42: 12:54:27 | upgrade-minor/1-create-cluster | perconapgcluster.pgv2.percona.com/upgrade-minor created logger.go:42: 12:55:36 | upgrade-minor/1-create-cluster | test step completed 1-create-cluster logger.go:42: 12:55:36 | upgrade-minor/2-write-data | starting test step 2-write-data logger.go:42: 12:55:36 | upgrade-minor/2-write-data | running command: [sh -c set -o errexit set -o xtrace source ../../functions run_psql_local \ 'CREATE DATABASE myapp; \c myapp \\\ CREATE TABLE IF NOT EXISTS myApp (id int PRIMARY KEY);' \ "postgres:$(get_psql_user_pass upgrade-minor-pguser-postgres)@$(get_psql_user_host upgrade-minor-pguser-postgres)" run_psql_local \ '\c myapp \\\ INSERT INTO myApp (id) VALUES (100500)' \ "postgres:$(get_psql_user_pass upgrade-minor-pguser-postgres)@$(get_psql_user_host upgrade-minor-pguser-postgres)"] logger.go:42: 12:55:36 | upgrade-minor/2-write-data | + source ../../functions logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ realpath ../../.. logger.go:42: 12:55:36 | upgrade-minor/2-write-data | ++ ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-685 logger.go:42: 12:55:36 | upgrade-minor/2-write-data | ++++ pwd logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ basename /mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests/tests/upgrade-minor logger.go:42: 12:55:36 | upgrade-minor/2-write-data | ++ test_name=upgrade-minor logger.go:42: 12:55:36 | upgrade-minor/2-write-data | ++ source /mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests/vars.sh logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ export ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-685 logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-685 logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ export DEPLOY_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/deploy logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ DEPLOY_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/deploy logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ export TESTS_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ TESTS_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ export TESTS_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests/conf logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ TESTS_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests/conf logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ export TEMP_DIR=/tmp/kuttl/pg/upgrade-minor logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ TEMP_DIR=/tmp/kuttl/pg/upgrade-minor logger.go:42: 12:55:36 | upgrade-minor/2-write-data | ++++ git rev-parse --abbrev-ref HEAD logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ export GIT_BRANCH=PR-685 logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ GIT_BRANCH=PR-685 logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ export VERSION=PR-685-07f0dbb6c logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ VERSION=PR-685-07f0dbb6c logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ export IMAGE_BASE=perconalab/percona-postgresql-operator logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ IMAGE_BASE=perconalab/percona-postgresql-operator logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ export IMAGE=perconalab/percona-postgresql-operator:PR-685-07f0dbb6c logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ IMAGE=perconalab/percona-postgresql-operator:PR-685-07f0dbb6c logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ export PG_VER=16 logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ PG_VER=16 logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ export IMAGE_PGBOUNCER=perconalab/percona-postgresql-operator:main-ppg16-pgbouncer logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ IMAGE_PGBOUNCER=perconalab/percona-postgresql-operator:main-ppg16-pgbouncer logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ export IMAGE_POSTGRESQL=perconalab/percona-postgresql-operator:main-ppg16-postgres logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ IMAGE_POSTGRESQL=perconalab/percona-postgresql-operator:main-ppg16-postgres logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ export IMAGE_BACKREST=perconalab/percona-postgresql-operator:main-ppg16-pgbackrest logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ IMAGE_BACKREST=perconalab/percona-postgresql-operator:main-ppg16-pgbackrest logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ export BUCKET=pg-operator-testing logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ BUCKET=pg-operator-testing logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ export PMM_SERVER_VERSION=9.9.9 logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ PMM_SERVER_VERSION=9.9.9 logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ export IMAGE_PMM_CLIENT=perconalab/pmm-client:dev-latest logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ IMAGE_PMM_CLIENT=perconalab/pmm-client:dev-latest logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ export IMAGE_PMM_SERVER=perconalab/pmm-server:dev-latest logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ IMAGE_PMM_SERVER=perconalab/pmm-server:dev-latest logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ export PGOV1_TAG=1.4.0 logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ PGOV1_TAG=1.4.0 logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ export PGOV1_VER=14 logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ PGOV1_VER=14 logger.go:42: 12:55:36 | upgrade-minor/2-write-data | ++++ which gdate logger.go:42: 12:55:36 | upgrade-minor/2-write-data | which: no gdate in (/mnt/jenkins/workspace/cloud-pg-operator_PR-685/bin/:/home/ec2-user/.krew/bin:/usr/local/bin:/usr/bin) logger.go:42: 12:55:36 | upgrade-minor/2-write-data | ++++ which date logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ date=/usr/bin/date logger.go:42: 12:55:36 | upgrade-minor/2-write-data | ++++ which gsed logger.go:42: 12:55:36 | upgrade-minor/2-write-data | which: no gsed in (/mnt/jenkins/workspace/cloud-pg-operator_PR-685/bin/:/home/ec2-user/.krew/bin:/usr/local/bin:/usr/bin) logger.go:42: 12:55:36 | upgrade-minor/2-write-data | ++++ which sed logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ sed=/usr/bin/sed logger.go:42: 12:55:36 | upgrade-minor/2-write-data | +++ command -v oc logger.go:42: 12:55:36 | upgrade-minor/2-write-data | ++ oc get projects logger.go:42: 12:55:36 | upgrade-minor/2-write-data | ++ get_psql_user_pass upgrade-minor-pguser-postgres logger.go:42: 12:55:36 | upgrade-minor/2-write-data | ++ local secret_name=upgrade-minor-pguser-postgres logger.go:42: 12:55:36 | upgrade-minor/2-write-data | ++ kubectl -n kuttl-test-coherent-ray get secret/upgrade-minor-pguser-postgres '--template={{.data.password | base64decode}}' logger.go:42: 12:55:36 | upgrade-minor/2-write-data | ++ get_psql_user_host upgrade-minor-pguser-postgres logger.go:42: 12:55:36 | upgrade-minor/2-write-data | ++ local secret_name=upgrade-minor-pguser-postgres logger.go:42: 12:55:36 | upgrade-minor/2-write-data | ++ kubectl -n kuttl-test-coherent-ray get secret/upgrade-minor-pguser-postgres '--template={{.data.host | base64decode }}' logger.go:42: 12:55:36 | upgrade-minor/2-write-data | + run_psql_local 'CREATE DATABASE myapp; \c myapp \\\ CREATE TABLE IF NOT EXISTS myApp (id int PRIMARY KEY);' postgres:QrASKUUZOq3ofWub2GjZ6M7K@upgrade-minor-primary.kuttl-test-coherent-ray.svc logger.go:42: 12:55:36 | upgrade-minor/2-write-data | + local 'command=CREATE DATABASE myapp; \c myapp \\\ CREATE TABLE IF NOT EXISTS myApp (id int PRIMARY KEY);' logger.go:42: 12:55:36 | upgrade-minor/2-write-data | + local uri=postgres:QrASKUUZOq3ofWub2GjZ6M7K@upgrade-minor-primary.kuttl-test-coherent-ray.svc logger.go:42: 12:55:36 | upgrade-minor/2-write-data | + local driver=postgres logger.go:42: 12:55:36 | upgrade-minor/2-write-data | ++ get_client_pod logger.go:42: 12:55:36 | upgrade-minor/2-write-data | ++ kubectl -n kuttl-test-coherent-ray get pods --selector=name=pg-client -o 'jsonpath={.items[].metadata.name}' logger.go:42: 12:55:37 | upgrade-minor/2-write-data | + kubectl -n kuttl-test-coherent-ray exec pg-client-689f5689bd-vbp5l -- bash -c 'printf '\''CREATE DATABASE myapp; \c myapp \\\ CREATE TABLE IF NOT EXISTS myApp (id int PRIMARY KEY);\n'\'' | psql -v ON_ERROR_STOP=1 -t -q postgres://'\''postgres:QrASKUUZOq3ofWub2GjZ6M7K@upgrade-minor-primary.kuttl-test-coherent-ray.svc'\''' logger.go:42: 12:55:38 | upgrade-minor/2-write-data | ++ get_psql_user_pass upgrade-minor-pguser-postgres logger.go:42: 12:55:38 | upgrade-minor/2-write-data | ++ local secret_name=upgrade-minor-pguser-postgres logger.go:42: 12:55:38 | upgrade-minor/2-write-data | ++ kubectl -n kuttl-test-coherent-ray get secret/upgrade-minor-pguser-postgres '--template={{.data.password | base64decode}}' logger.go:42: 12:55:38 | upgrade-minor/2-write-data | ++ get_psql_user_host upgrade-minor-pguser-postgres logger.go:42: 12:55:38 | upgrade-minor/2-write-data | ++ local secret_name=upgrade-minor-pguser-postgres logger.go:42: 12:55:38 | upgrade-minor/2-write-data | ++ kubectl -n kuttl-test-coherent-ray get secret/upgrade-minor-pguser-postgres '--template={{.data.host | base64decode }}' logger.go:42: 12:55:39 | upgrade-minor/2-write-data | + run_psql_local '\c myapp \\\ INSERT INTO myApp (id) VALUES (100500)' postgres:QrASKUUZOq3ofWub2GjZ6M7K@upgrade-minor-primary.kuttl-test-coherent-ray.svc logger.go:42: 12:55:39 | upgrade-minor/2-write-data | + local 'command=\c myapp \\\ INSERT INTO myApp (id) VALUES (100500)' logger.go:42: 12:55:39 | upgrade-minor/2-write-data | + local uri=postgres:QrASKUUZOq3ofWub2GjZ6M7K@upgrade-minor-primary.kuttl-test-coherent-ray.svc logger.go:42: 12:55:39 | upgrade-minor/2-write-data | + local driver=postgres logger.go:42: 12:55:39 | upgrade-minor/2-write-data | ++ get_client_pod logger.go:42: 12:55:39 | upgrade-minor/2-write-data | ++ kubectl -n kuttl-test-coherent-ray get pods --selector=name=pg-client -o 'jsonpath={.items[].metadata.name}' logger.go:42: 12:55:39 | upgrade-minor/2-write-data | + kubectl -n kuttl-test-coherent-ray exec pg-client-689f5689bd-vbp5l -- bash -c 'printf '\''\c myapp \\\ INSERT INTO myApp (id) VALUES (100500)\n'\'' | psql -v ON_ERROR_STOP=1 -t -q postgres://'\''postgres:QrASKUUZOq3ofWub2GjZ6M7K@upgrade-minor-primary.kuttl-test-coherent-ray.svc'\''' logger.go:42: 12:55:41 | upgrade-minor/2-write-data | test step completed 2-write-data logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | starting test step 3-read-from-primary logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | running command: [sh -c set -o errexit set -o xtrace source ../../functions data=$(run_psql_local '\c myapp \\\ SELECT * from myApp;' "postgres:$(get_psql_user_pass upgrade-minor-pguser-postgres)@$(get_psql_user_host upgrade-minor-pguser-postgres)") kubectl create configmap -n "${NAMESPACE}" 03-read-from-primary --from-literal=data="${data}"] logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | + source ../../functions logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ realpath ../../.. logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | ++ ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-685 logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | ++++ pwd logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ basename /mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests/tests/upgrade-minor logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | ++ test_name=upgrade-minor logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | ++ source /mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests/vars.sh logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ export ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-685 logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-685 logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ export DEPLOY_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/deploy logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ DEPLOY_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/deploy logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ export TESTS_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ TESTS_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ export TESTS_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests/conf logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ TESTS_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests/conf logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ export TEMP_DIR=/tmp/kuttl/pg/upgrade-minor logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ TEMP_DIR=/tmp/kuttl/pg/upgrade-minor logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | ++++ git rev-parse --abbrev-ref HEAD logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ export GIT_BRANCH=PR-685 logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ GIT_BRANCH=PR-685 logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ export VERSION=PR-685-07f0dbb6c logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ VERSION=PR-685-07f0dbb6c logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ export IMAGE_BASE=perconalab/percona-postgresql-operator logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ IMAGE_BASE=perconalab/percona-postgresql-operator logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ export IMAGE=perconalab/percona-postgresql-operator:PR-685-07f0dbb6c logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ IMAGE=perconalab/percona-postgresql-operator:PR-685-07f0dbb6c logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ export PG_VER=16 logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ PG_VER=16 logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ export IMAGE_PGBOUNCER=perconalab/percona-postgresql-operator:main-ppg16-pgbouncer logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ IMAGE_PGBOUNCER=perconalab/percona-postgresql-operator:main-ppg16-pgbouncer logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ export IMAGE_POSTGRESQL=perconalab/percona-postgresql-operator:main-ppg16-postgres logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ IMAGE_POSTGRESQL=perconalab/percona-postgresql-operator:main-ppg16-postgres logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ export IMAGE_BACKREST=perconalab/percona-postgresql-operator:main-ppg16-pgbackrest logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ IMAGE_BACKREST=perconalab/percona-postgresql-operator:main-ppg16-pgbackrest logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ export BUCKET=pg-operator-testing logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ BUCKET=pg-operator-testing logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ export PMM_SERVER_VERSION=9.9.9 logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ PMM_SERVER_VERSION=9.9.9 logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ export IMAGE_PMM_CLIENT=perconalab/pmm-client:dev-latest logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ IMAGE_PMM_CLIENT=perconalab/pmm-client:dev-latest logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ export IMAGE_PMM_SERVER=perconalab/pmm-server:dev-latest logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ IMAGE_PMM_SERVER=perconalab/pmm-server:dev-latest logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ export PGOV1_TAG=1.4.0 logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ PGOV1_TAG=1.4.0 logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ export PGOV1_VER=14 logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ PGOV1_VER=14 logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | ++++ which gdate logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | which: no gdate in (/mnt/jenkins/workspace/cloud-pg-operator_PR-685/bin/:/home/ec2-user/.krew/bin:/usr/local/bin:/usr/bin) logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | ++++ which date logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ date=/usr/bin/date logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | ++++ which gsed logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | which: no gsed in (/mnt/jenkins/workspace/cloud-pg-operator_PR-685/bin/:/home/ec2-user/.krew/bin:/usr/local/bin:/usr/bin) logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | ++++ which sed logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ sed=/usr/bin/sed logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ command -v oc logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | ++ oc get projects logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ get_psql_user_pass upgrade-minor-pguser-postgres logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ local secret_name=upgrade-minor-pguser-postgres logger.go:42: 12:55:41 | upgrade-minor/3-read-from-primary | +++ kubectl -n kuttl-test-coherent-ray get secret/upgrade-minor-pguser-postgres '--template={{.data.password | base64decode}}' logger.go:42: 12:55:42 | upgrade-minor/3-read-from-primary | +++ get_psql_user_host upgrade-minor-pguser-postgres logger.go:42: 12:55:42 | upgrade-minor/3-read-from-primary | +++ local secret_name=upgrade-minor-pguser-postgres logger.go:42: 12:55:42 | upgrade-minor/3-read-from-primary | +++ kubectl -n kuttl-test-coherent-ray get secret/upgrade-minor-pguser-postgres '--template={{.data.host | base64decode }}' logger.go:42: 12:55:42 | upgrade-minor/3-read-from-primary | ++ run_psql_local '\c myapp \\\ SELECT * from myApp;' postgres:QrASKUUZOq3ofWub2GjZ6M7K@upgrade-minor-primary.kuttl-test-coherent-ray.svc logger.go:42: 12:55:42 | upgrade-minor/3-read-from-primary | ++ local 'command=\c myapp \\\ SELECT * from myApp;' logger.go:42: 12:55:42 | upgrade-minor/3-read-from-primary | ++ local uri=postgres:QrASKUUZOq3ofWub2GjZ6M7K@upgrade-minor-primary.kuttl-test-coherent-ray.svc logger.go:42: 12:55:42 | upgrade-minor/3-read-from-primary | ++ local driver=postgres logger.go:42: 12:55:42 | upgrade-minor/3-read-from-primary | +++ get_client_pod logger.go:42: 12:55:42 | upgrade-minor/3-read-from-primary | +++ kubectl -n kuttl-test-coherent-ray get pods --selector=name=pg-client -o 'jsonpath={.items[].metadata.name}' logger.go:42: 12:55:42 | upgrade-minor/3-read-from-primary | ++ kubectl -n kuttl-test-coherent-ray exec pg-client-689f5689bd-vbp5l -- bash -c 'printf '\''\c myapp \\\ SELECT * from myApp;\n'\'' | psql -v ON_ERROR_STOP=1 -t -q postgres://'\''postgres:QrASKUUZOq3ofWub2GjZ6M7K@upgrade-minor-primary.kuttl-test-coherent-ray.svc'\''' logger.go:42: 12:55:43 | upgrade-minor/3-read-from-primary | + data=' 100500' logger.go:42: 12:55:43 | upgrade-minor/3-read-from-primary | + kubectl create configmap -n kuttl-test-coherent-ray 03-read-from-primary '--from-literal=data= 100500' logger.go:42: 12:55:44 | upgrade-minor/3-read-from-primary | configmap/03-read-from-primary created logger.go:42: 12:55:45 | upgrade-minor/3-read-from-primary | test step completed 3-read-from-primary logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | starting test step 4-upgrade-operator logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | running command: [sh -c set -o errexit set -o xtrace source ../../functions deploy_operator kubectl wait -n ${OPERATOR_NS:-$NAMESPACE} --timeout 30s --for=jsonpath='{.spec.template.spec.containers[0].image}'=$IMAGE deployment/percona-postgresql-operator] logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | + source ../../functions logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ realpath ../../.. logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | ++ ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-685 logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | ++++ pwd logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ basename /mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests/tests/upgrade-minor logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | ++ test_name=upgrade-minor logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | ++ source /mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests/vars.sh logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ export ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-685 logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-685 logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ export DEPLOY_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/deploy logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ DEPLOY_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/deploy logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ export TESTS_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ TESTS_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ export TESTS_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests/conf logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ TESTS_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests/conf logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ export TEMP_DIR=/tmp/kuttl/pg/upgrade-minor logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ TEMP_DIR=/tmp/kuttl/pg/upgrade-minor logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | ++++ git rev-parse --abbrev-ref HEAD logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ export GIT_BRANCH=PR-685 logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ GIT_BRANCH=PR-685 logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ export VERSION=PR-685-07f0dbb6c logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ VERSION=PR-685-07f0dbb6c logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ export IMAGE_BASE=perconalab/percona-postgresql-operator logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ IMAGE_BASE=perconalab/percona-postgresql-operator logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ export IMAGE=perconalab/percona-postgresql-operator:PR-685-07f0dbb6c logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ IMAGE=perconalab/percona-postgresql-operator:PR-685-07f0dbb6c logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ export PG_VER=16 logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ PG_VER=16 logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ export IMAGE_PGBOUNCER=perconalab/percona-postgresql-operator:main-ppg16-pgbouncer logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ IMAGE_PGBOUNCER=perconalab/percona-postgresql-operator:main-ppg16-pgbouncer logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ export IMAGE_POSTGRESQL=perconalab/percona-postgresql-operator:main-ppg16-postgres logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ IMAGE_POSTGRESQL=perconalab/percona-postgresql-operator:main-ppg16-postgres logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ export IMAGE_BACKREST=perconalab/percona-postgresql-operator:main-ppg16-pgbackrest logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ IMAGE_BACKREST=perconalab/percona-postgresql-operator:main-ppg16-pgbackrest logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ export BUCKET=pg-operator-testing logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ BUCKET=pg-operator-testing logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ export PMM_SERVER_VERSION=9.9.9 logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ PMM_SERVER_VERSION=9.9.9 logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ export IMAGE_PMM_CLIENT=perconalab/pmm-client:dev-latest logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ IMAGE_PMM_CLIENT=perconalab/pmm-client:dev-latest logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ export IMAGE_PMM_SERVER=perconalab/pmm-server:dev-latest logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ IMAGE_PMM_SERVER=perconalab/pmm-server:dev-latest logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ export PGOV1_TAG=1.4.0 logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ PGOV1_TAG=1.4.0 logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ export PGOV1_VER=14 logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ PGOV1_VER=14 logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | ++++ which gdate logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | which: no gdate in (/mnt/jenkins/workspace/cloud-pg-operator_PR-685/bin/:/home/ec2-user/.krew/bin:/usr/local/bin:/usr/bin) logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | ++++ which date logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ date=/usr/bin/date logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | ++++ which gsed logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | which: no gsed in (/mnt/jenkins/workspace/cloud-pg-operator_PR-685/bin/:/home/ec2-user/.krew/bin:/usr/local/bin:/usr/bin) logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | ++++ which sed logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ sed=/usr/bin/sed logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | +++ command -v oc logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | ++ oc get projects logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | + deploy_operator logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | + local cw_prefix= logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | + destroy_operator logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | + kubectl -n pg-operator delete deployment percona-postgresql-operator --force --grace-period=0 logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-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: 12:55:45 | upgrade-minor/4-upgrade-operator | deployment.apps "percona-postgresql-operator" force deleted logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | + [[ -n pg-operator ]] logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-operator | + kubectl delete namespace pg-operator --force --grace-period=0 logger.go:42: 12:55:45 | upgrade-minor/4-upgrade-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: 12:55:46 | upgrade-minor/4-upgrade-operator | namespace "pg-operator" force deleted logger.go:42: 12:55:52 | upgrade-minor/4-upgrade-operator | + [[ -n pg-operator ]] logger.go:42: 12:55:52 | upgrade-minor/4-upgrade-operator | + create_namespace pg-operator logger.go:42: 12:55:52 | upgrade-minor/4-upgrade-operator | + local namespace=pg-operator logger.go:42: 12:55:52 | upgrade-minor/4-upgrade-operator | + [[ -n '' ]] logger.go:42: 12:55:52 | upgrade-minor/4-upgrade-operator | + kubectl delete namespace pg-operator --ignore-not-found logger.go:42: 12:55:52 | upgrade-minor/4-upgrade-operator | + kubectl wait --for=delete namespace pg-operator logger.go:42: 12:55:52 | upgrade-minor/4-upgrade-operator | + kubectl create namespace pg-operator logger.go:42: 12:55:53 | upgrade-minor/4-upgrade-operator | namespace/pg-operator created logger.go:42: 12:55:53 | upgrade-minor/4-upgrade-operator | + cw_prefix=cw- logger.go:42: 12:55:53 | upgrade-minor/4-upgrade-operator | + kubectl -n pg-operator apply --server-side --force-conflicts -f /mnt/jenkins/workspace/cloud-pg-operator_PR-685/deploy/crd.yaml logger.go:42: 12:55:54 | upgrade-minor/4-upgrade-operator | customresourcedefinition.apiextensions.k8s.io/perconapgbackups.pgv2.percona.com serverside-applied logger.go:42: 12:55:56 | upgrade-minor/4-upgrade-operator | customresourcedefinition.apiextensions.k8s.io/perconapgclusters.pgv2.percona.com serverside-applied logger.go:42: 12:55:56 | upgrade-minor/4-upgrade-operator | customresourcedefinition.apiextensions.k8s.io/perconapgrestores.pgv2.percona.com serverside-applied logger.go:42: 12:55:58 | upgrade-minor/4-upgrade-operator | customresourcedefinition.apiextensions.k8s.io/postgresclusters.postgres-operator.crunchydata.com serverside-applied logger.go:42: 12:55:58 | upgrade-minor/4-upgrade-operator | + kubectl -n pg-operator apply --server-side --force-conflicts -f /mnt/jenkins/workspace/cloud-pg-operator_PR-685/deploy/cw-rbac.yaml logger.go:42: 12:55:59 | upgrade-minor/4-upgrade-operator | serviceaccount/percona-postgresql-operator serverside-applied logger.go:42: 12:55:59 | upgrade-minor/4-upgrade-operator | clusterrole.rbac.authorization.k8s.io/percona-postgresql-operator serverside-applied logger.go:42: 12:55:59 | upgrade-minor/4-upgrade-operator | clusterrolebinding.rbac.authorization.k8s.io/service-account-percona-postgresql-operator serverside-applied logger.go:42: 12:55:59 | upgrade-minor/4-upgrade-operator | + local disable_telemetry=true logger.go:42: 12:55:59 | upgrade-minor/4-upgrade-operator | + '[' upgrade-minor == telemetry-transfer ']' logger.go:42: 12:55:59 | upgrade-minor/4-upgrade-operator | + yq eval '.spec.template.spec.containers[0].image = "perconalab/percona-postgresql-operator:PR-685-07f0dbb6c"' /mnt/jenkins/workspace/cloud-pg-operator_PR-685/deploy/cw-operator.yaml logger.go:42: 12:55:59 | upgrade-minor/4-upgrade-operator | + kubectl -n pg-operator apply -f - logger.go:42: 12:55:59 | upgrade-minor/4-upgrade-operator | + yq eval '(.spec.template.spec.containers[] | select(.name=="operator") | .env[] | select(.name=="DISABLE_TELEMETRY") | .value) = "true"' - logger.go:42: 12:56:00 | upgrade-minor/4-upgrade-operator | deployment.apps/percona-postgresql-operator created logger.go:42: 12:56:00 | upgrade-minor/4-upgrade-operator | + kubectl wait -n pg-operator --timeout 30s '--for=jsonpath={.spec.template.spec.containers[0].image}=perconalab/percona-postgresql-operator:PR-685-07f0dbb6c' deployment/percona-postgresql-operator logger.go:42: 12:56:01 | upgrade-minor/4-upgrade-operator | deployment.apps/percona-postgresql-operator condition met logger.go:42: 12:56:02 | upgrade-minor/4-upgrade-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: 12:56:02 | upgrade-minor/4-upgrade-operator | ASSERT deployment percona-postgresql-operator matching field criteria 'status.readyReplicas=1' should exist. logger.go:42: 12:56:03 | upgrade-minor/4-upgrade-operator | ASSERT FAIL Resource(s) not found. logger.go:42: 12:56:04 | upgrade-minor/4-upgrade-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: 12:56:04 | upgrade-minor/4-upgrade-operator | ASSERT deployment percona-postgresql-operator matching field criteria 'status.readyReplicas=1' should exist. logger.go:42: 12:56:05 | upgrade-minor/4-upgrade-operator | ASSERT FAIL Resource(s) not found. logger.go:42: 12:56:06 | upgrade-minor/4-upgrade-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: 12:56:06 | upgrade-minor/4-upgrade-operator | ASSERT deployment percona-postgresql-operator matching field criteria 'status.readyReplicas=1' should exist. logger.go:42: 12:56:06 | upgrade-minor/4-upgrade-operator | INFO Found 1 resource(s). logger.go:42: 12:56:06 | upgrade-minor/4-upgrade-operator | NAME NAMESPACE COL0 logger.go:42: 12:56:06 | upgrade-minor/4-upgrade-operator | percona-postgresql-operator pg-operator 1 logger.go:42: 12:56:06 | upgrade-minor/4-upgrade-operator | ASSERT PASS logger.go:42: 12:56:06 | upgrade-minor/4-upgrade-operator | test step completed 4-upgrade-operator logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | starting test step 5-upgrade-cluster logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | running command: [sh -c set -o errexit set -o xtrace source ../../functions pg_ver_lower="$(cat ${TEMP_DIR}/pg_ver.txt)" pg_ver_upper=$(echo "$IMAGE_POSTGRESQL" | cut -d':' -f2 | grep -oE '\-ppg[0-9]+-' | grep -oE '[0-9]+' | tr -d '-') target_image_postgresql=$IMAGE_POSTGRESQL target_image_pgbouncer=$IMAGE_PGBOUNCER target_image_backrest=$IMAGE_BACKREST if [ "${pg_ver_lower}" != "${pg_ver_upper}" ]; then target_image_postgresql="perconalab/percona-postgresql-operator:main-ppg${pg_ver_lower}-postgres" target_image_pgbouncer="perconalab/percona-postgresql-operator:main-ppg${pg_ver_lower}-pgbouncer" target_image_backrest="perconalab/percona-postgresql-operator:main-ppg${pg_ver_lower}-pgbackrest" fi cr_ver=$(yq '.spec.crVersion' $DEPLOY_DIR/cr.yaml) yq -i eval ' .metadata.name = "'${test_name}'" | .metadata.labels = {"e2e":"'${test_name}'"} | .spec.crVersion = "'${cr_ver}'" | .spec.image = "'${target_image_postgresql}'" | .spec.proxy.pgBouncer.image = "'${target_image_pgbouncer}'" | .spec.backups.pgbackrest.image = "'${target_image_backrest}'"' "${TEMP_DIR}/cr_lower.yaml" kubectl -n "${NAMESPACE}" apply -f "${TEMP_DIR}/cr_lower.yaml" sleep 7 # wait for reconcile loop kubectl wait -n $NAMESPACE --timeout 180s --for=jsonpath='{.spec.template.spec.containers[0].image}'=$target_image_backrest sts/upgrade-minor-repo-host kubectl wait -n $NAMESPACE --timeout 180s --for=jsonpath='{.spec.template.spec.containers[0].image}'=$target_image_pgbouncer deployment/upgrade-minor-pgbouncer for s in $(kubectl get sts --no-headers -l postgres-operator.crunchydata.com/instance-set=instance1 --output=custom-columns='NAME:.metadata.name'); do kubectl wait -n $NAMESPACE --timeout 180s --for=jsonpath='{.spec.template.spec.containers[0].image}'=$target_image_postgresql sts/${s} done] logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | + source ../../functions logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ realpath ../../.. logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | ++ ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-685 logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | ++++ pwd logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ basename /mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests/tests/upgrade-minor logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | ++ test_name=upgrade-minor logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | ++ source /mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests/vars.sh logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ export ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-685 logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ ROOT_REPO=/mnt/jenkins/workspace/cloud-pg-operator_PR-685 logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ export DEPLOY_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/deploy logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ DEPLOY_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/deploy logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ export TESTS_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ TESTS_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ export TESTS_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests/conf logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ TESTS_CONFIG_DIR=/mnt/jenkins/workspace/cloud-pg-operator_PR-685/e2e-tests/conf logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ export TEMP_DIR=/tmp/kuttl/pg/upgrade-minor logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ TEMP_DIR=/tmp/kuttl/pg/upgrade-minor logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | ++++ git rev-parse --abbrev-ref HEAD logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ export GIT_BRANCH=PR-685 logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ GIT_BRANCH=PR-685 logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ export VERSION=PR-685-07f0dbb6c logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ VERSION=PR-685-07f0dbb6c logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ export IMAGE_BASE=perconalab/percona-postgresql-operator logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ IMAGE_BASE=perconalab/percona-postgresql-operator logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ export IMAGE=perconalab/percona-postgresql-operator:PR-685-07f0dbb6c logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ IMAGE=perconalab/percona-postgresql-operator:PR-685-07f0dbb6c logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ export PG_VER=16 logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ PG_VER=16 logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ export IMAGE_PGBOUNCER=perconalab/percona-postgresql-operator:main-ppg16-pgbouncer logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ IMAGE_PGBOUNCER=perconalab/percona-postgresql-operator:main-ppg16-pgbouncer logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ export IMAGE_POSTGRESQL=perconalab/percona-postgresql-operator:main-ppg16-postgres logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ IMAGE_POSTGRESQL=perconalab/percona-postgresql-operator:main-ppg16-postgres logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ export IMAGE_BACKREST=perconalab/percona-postgresql-operator:main-ppg16-pgbackrest logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ IMAGE_BACKREST=perconalab/percona-postgresql-operator:main-ppg16-pgbackrest logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ export BUCKET=pg-operator-testing logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ BUCKET=pg-operator-testing logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ export PMM_SERVER_VERSION=9.9.9 logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ PMM_SERVER_VERSION=9.9.9 logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ export IMAGE_PMM_CLIENT=perconalab/pmm-client:dev-latest logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ IMAGE_PMM_CLIENT=perconalab/pmm-client:dev-latest logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ export IMAGE_PMM_SERVER=perconalab/pmm-server:dev-latest logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ IMAGE_PMM_SERVER=perconalab/pmm-server:dev-latest logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ export PGOV1_TAG=1.4.0 logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ PGOV1_TAG=1.4.0 logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ export PGOV1_VER=14 logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ PGOV1_VER=14 logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | ++++ which gdate logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | which: no gdate in (/mnt/jenkins/workspace/cloud-pg-operator_PR-685/bin/:/home/ec2-user/.krew/bin:/usr/local/bin:/usr/bin) logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | ++++ which date logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ date=/usr/bin/date logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | ++++ which gsed logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | which: no gsed in (/mnt/jenkins/workspace/cloud-pg-operator_PR-685/bin/:/home/ec2-user/.krew/bin:/usr/local/bin:/usr/bin) logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | ++++ which sed logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ sed=/usr/bin/sed logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | +++ command -v oc logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | ++ oc get projects logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | ++ cat /tmp/kuttl/pg/upgrade-minor/pg_ver.txt logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | + pg_ver_lower=16 logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | ++ echo perconalab/percona-postgresql-operator:main-ppg16-postgres logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | ++ cut -d: -f2 logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | ++ grep -oE '\-ppg[0-9]+-' logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | ++ grep -oE '[0-9]+' logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | ++ tr -d - logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | + pg_ver_upper=16 logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | + target_image_postgresql=perconalab/percona-postgresql-operator:main-ppg16-postgres logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | + target_image_pgbouncer=perconalab/percona-postgresql-operator:main-ppg16-pgbouncer logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | + target_image_backrest=perconalab/percona-postgresql-operator:main-ppg16-pgbackrest logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | + '[' 16 '!=' 16 ']' logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | ++ yq .spec.crVersion /mnt/jenkins/workspace/cloud-pg-operator_PR-685/deploy/cr.yaml logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | + cr_ver=2.4.0 logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | + yq -i eval ' logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | .metadata.name = "upgrade-minor" | logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | .metadata.labels = {"e2e":"upgrade-minor"} | logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | .spec.crVersion = "2.4.0" | logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | .spec.image = "perconalab/percona-postgresql-operator:main-ppg16-postgres" | logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | .spec.proxy.pgBouncer.image = "perconalab/percona-postgresql-operator:main-ppg16-pgbouncer" | logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | .spec.backups.pgbackrest.image = "perconalab/percona-postgresql-operator:main-ppg16-pgbackrest"' /tmp/kuttl/pg/upgrade-minor/cr_lower.yaml logger.go:42: 12:56:06 | upgrade-minor/5-upgrade-cluster | + kubectl -n kuttl-test-coherent-ray apply -f /tmp/kuttl/pg/upgrade-minor/cr_lower.yaml logger.go:42: 12:56:10 | upgrade-minor/5-upgrade-cluster | perconapgcluster.pgv2.percona.com/upgrade-minor configured logger.go:42: 12:56:10 | upgrade-minor/5-upgrade-cluster | + sleep 7 logger.go:42: 12:56:17 | upgrade-minor/5-upgrade-cluster | + kubectl wait -n kuttl-test-coherent-ray --timeout 180s '--for=jsonpath={.spec.template.spec.containers[0].image}=perconalab/percona-postgresql-operator:main-ppg16-pgbackrest' sts/upgrade-minor-repo-host logger.go:42: 12:56:18 | upgrade-minor/5-upgrade-cluster | statefulset.apps/upgrade-minor-repo-host condition met logger.go:42: 12:56:18 | upgrade-minor/5-upgrade-cluster | + kubectl wait -n kuttl-test-coherent-ray --timeout 180s '--for=jsonpath={.spec.template.spec.containers[0].image}=perconalab/percona-postgresql-operator:main-ppg16-pgbouncer' deployment/upgrade-minor-pgbouncer logger.go:42: 12:56:18 | upgrade-minor/5-upgrade-cluster | deployment.apps/upgrade-minor-pgbouncer condition met logger.go:42: 12:56:18 | upgrade-minor/5-upgrade-cluster | ++ kubectl get sts --no-headers -l postgres-operator.crunchydata.com/instance-set=instance1 --output=custom-columns=NAME:.metadata.name logger.go:42: 12:59:20 | upgrade-minor/5-upgrade-cluster | test step failed 5-upgrade-cluster case.go:364: failed in step 5-upgrade-cluster case.go:366: --- StatefulSet:kuttl-test-coherent-ray/upgrade-minor-repo-host +++ StatefulSet:kuttl-test-coherent-ray/upgrade-minor-repo-host @@ -6,10 +6,232 @@ app.kubernetes.io/managed-by: percona-postgresql-operator app.kubernetes.io/name: percona-postgresql app.kubernetes.io/part-of: percona-postgresql + pgv2.percona.com/version: 2.4.0 postgres-operator.crunchydata.com/cluster: upgrade-minor postgres-operator.crunchydata.com/data: pgbackrest postgres-operator.crunchydata.com/pgbackrest: "" postgres-operator.crunchydata.com/pgbackrest-dedicated: "" + managedFields: + - apiVersion: apps/v1 + fieldsType: FieldsV1 + fieldsV1: + f:metadata: + f:labels: + f:app.kubernetes.io/instance: {} + f:app.kubernetes.io/managed-by: {} + f:app.kubernetes.io/name: {} + f:app.kubernetes.io/part-of: {} + f:pgv2.percona.com/version: {} + f:postgres-operator.crunchydata.com/cluster: {} + f:postgres-operator.crunchydata.com/data: {} + f:postgres-operator.crunchydata.com/pgbackrest: {} + f:postgres-operator.crunchydata.com/pgbackrest-dedicated: {} + f:ownerReferences: + k:{"uid":"a26533cc-4ab2-4553-8c81-a794f71f0b98"}: {} + f:spec: + f:replicas: {} + f:selector: {} + f:serviceName: {} + f:template: + f:metadata: + f:labels: + f:app.kubernetes.io/instance: {} + f:app.kubernetes.io/managed-by: {} + f:app.kubernetes.io/name: {} + f:app.kubernetes.io/part-of: {} + f:pgv2.percona.com/version: {} + f:postgres-operator.crunchydata.com/cluster: {} + f:postgres-operator.crunchydata.com/data: {} + f:postgres-operator.crunchydata.com/pgbackrest: {} + f:postgres-operator.crunchydata.com/pgbackrest-dedicated: {} + f:spec: + f:affinity: + f:podAntiAffinity: + f:preferredDuringSchedulingIgnoredDuringExecution: {} + f:automountServiceAccountToken: {} + f:containers: + k:{"name":"pgbackrest"}: + .: {} + f:command: {} + f:env: + k:{"name":"LD_PRELOAD"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"NSS_WRAPPER_GROUP"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"NSS_WRAPPER_PASSWD"}: + .: {} + f:name: {} + f:value: {} + f:image: {} + f:imagePullPolicy: {} + f:livenessProbe: + f:exec: + f:command: {} + f:name: {} + f:resources: {} + f:securityContext: + f:allowPrivilegeEscalation: {} + f:capabilities: + f:drop: {} + f:privileged: {} + f:readOnlyRootFilesystem: {} + f:runAsNonRoot: {} + f:volumeMounts: + k:{"mountPath":"/etc/pgbackrest/conf.d"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/etc/pgbackrest/server"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/pgbackrest/repo1"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"mountPath":"/tmp"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"name":"pgbackrest-config"}: + .: {} + f:command: {} + f:image: {} + f:imagePullPolicy: {} + f:name: {} + f:resources: {} + f:securityContext: + f:allowPrivilegeEscalation: {} + f:capabilities: + f:drop: {} + f:privileged: {} + f:readOnlyRootFilesystem: {} + f:runAsNonRoot: {} + f:volumeMounts: + k:{"mountPath":"/etc/pgbackrest/conf.d"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/etc/pgbackrest/server"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/tmp"}: + .: {} + f:mountPath: {} + f:name: {} + f:enableServiceLinks: {} + f:initContainers: + k:{"name":"nss-wrapper-init"}: + .: {} + f:command: {} + f:image: {} + f:imagePullPolicy: {} + f:name: {} + f:resources: {} + f:securityContext: + f:allowPrivilegeEscalation: {} + f:capabilities: + f:drop: {} + f:privileged: {} + f:readOnlyRootFilesystem: {} + f:runAsNonRoot: {} + f:volumeMounts: + k:{"mountPath":"/tmp"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"name":"pgbackrest-log-dir"}: + .: {} + f:command: {} + f:image: {} + f:imagePullPolicy: {} + f:name: {} + f:resources: {} + f:securityContext: + f:allowPrivilegeEscalation: {} + f:capabilities: + f:drop: {} + f:privileged: {} + f:readOnlyRootFilesystem: {} + f:runAsNonRoot: {} + f:volumeMounts: + k:{"mountPath":"/pgbackrest/repo1"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"mountPath":"/tmp"}: + .: {} + f:mountPath: {} + f:name: {} + f:restartPolicy: {} + f:securityContext: + f:fsGroup: {} + f:fsGroupChangePolicy: {} + f:serviceAccountName: {} + f:shareProcessNamespace: {} + f:topologySpreadConstraints: + k:{"topologyKey":"kubernetes.io/hostname","whenUnsatisfiable":"ScheduleAnyway"}: + .: {} + f:labelSelector: {} + f:maxSkew: {} + f:topologyKey: {} + f:whenUnsatisfiable: {} + k:{"topologyKey":"topology.kubernetes.io/zone","whenUnsatisfiable":"ScheduleAnyway"}: + .: {} + f:labelSelector: {} + f:maxSkew: {} + f:topologyKey: {} + f:whenUnsatisfiable: {} + f:volumes: + k:{"name":"pgbackrest-config"}: + .: {} + f:name: {} + f:projected: + f:sources: {} + k:{"name":"pgbackrest-server"}: + .: {} + f:name: {} + f:projected: + f:sources: {} + k:{"name":"repo1"}: + .: {} + f:name: {} + f:persistentVolumeClaim: + f:claimName: {} + k:{"name":"tmp"}: + .: {} + f:emptyDir: + f:sizeLimit: {} + f:name: {} + manager: postgrescluster-controller + operation: Apply + time: "2024-04-02T12:56:12Z" + - apiVersion: apps/v1 + fieldsType: FieldsV1 + fieldsV1: + f:status: + f:availableReplicas: {} + f:collisionCount: {} + f:currentReplicas: {} + f:currentRevision: {} + f:observedGeneration: {} + f:readyReplicas: {} + f:replicas: {} + f:updateRevision: {} + f:updatedReplicas: {} + manager: kube-controller-manager + operation: Update + subresource: status + time: "2024-04-02T12:56:40Z" name: upgrade-minor-repo-host namespace: kuttl-test-coherent-ray ownerReferences: @@ -18,11 +240,304 @@ controller: true kind: PostgresCluster name: upgrade-minor + uid: a26533cc-4ab2-4553-8c81-a794f71f0b98 +spec: + podManagementPolicy: OrderedReady + replicas: 1 + revisionHistoryLimit: 10 + selector: + matchLabels: + postgres-operator.crunchydata.com/cluster: upgrade-minor + postgres-operator.crunchydata.com/pgbackrest: "" + postgres-operator.crunchydata.com/pgbackrest-dedicated: "" + serviceName: upgrade-minor-pods + template: + metadata: + creationTimestamp: null + labels: + app.kubernetes.io/instance: upgrade-minor + app.kubernetes.io/managed-by: percona-postgresql-operator + app.kubernetes.io/name: percona-postgresql + app.kubernetes.io/part-of: percona-postgresql + pgv2.percona.com/version: 2.4.0 + postgres-operator.crunchydata.com/cluster: upgrade-minor + postgres-operator.crunchydata.com/data: pgbackrest + postgres-operator.crunchydata.com/pgbackrest: "" + postgres-operator.crunchydata.com/pgbackrest-dedicated: "" + spec: + affinity: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchLabels: + postgres-operator.crunchydata.com/data: pgbackrest + topologyKey: kubernetes.io/hostname + weight: 1 + automountServiceAccountToken: false + containers: + - command: + - pgbackrest + - server + env: + - name: LD_PRELOAD + value: /usr/lib64/libnss_wrapper.so + - name: NSS_WRAPPER_PASSWD + value: /tmp/nss_wrapper/postgres/passwd + - name: NSS_WRAPPER_GROUP + value: /tmp/nss_wrapper/postgres/group + image: perconalab/percona-postgresql-operator:main-ppg16-pgbackrest + imagePullPolicy: Always + livenessProbe: + exec: + command: + - pgbackrest + - server-ping + failureThreshold: 3 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + name: pgbackrest + resources: {} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /etc/pgbackrest/server + name: pgbackrest-server + readOnly: true + - mountPath: /pgbackrest/repo1 + name: repo1 + - mountPath: /etc/pgbackrest/conf.d + name: pgbackrest-config + readOnly: true + - mountPath: /tmp + name: tmp + - command: + - bash + - -ceu + - -- + - |- + monitor() { + exec {fd}<> <(:) + until read -r -t 5 -u "${fd}"; do + if + [ "${filename}" -nt "/proc/self/fd/${fd}" ] && + pkill -HUP --exact --parent=0 pgbackrest + then + exec {fd}>&- && exec {fd}<> <(:) + stat --dereference --format='Loaded configuration dated %!y(MISSING)' "${filename}" + elif + { [ "${directory}" -nt "/proc/self/fd/${fd}" ] || + [ "${authority}" -nt "/proc/self/fd/${fd}" ] + } && + pkill -HUP --exact --parent=0 pgbackrest + then + exec {fd}>&- && exec {fd}<> <(:) + stat --format='Loaded certificates dated %!y(MISSING)' "${directory}" + fi + done + }; export directory="$1" authority="$2" filename="$3"; export -f monitor; exec -a "$0" bash -ceu monitor + - pgbackrest-config + - /etc/pgbackrest/server + - /etc/pgbackrest/conf.d/~postgres-operator/tls-ca.crt + - /etc/pgbackrest/conf.d/~postgres-operator_server.conf + image: perconalab/percona-postgresql-operator:main-ppg16-pgbackrest + imagePullPolicy: Always + name: pgbackrest-config + resources: {} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /etc/pgbackrest/server + name: pgbackrest-server + readOnly: true + - mountPath: /etc/pgbackrest/conf.d + name: pgbackrest-config + readOnly: true + - mountPath: /tmp + name: tmp + dnsPolicy: ClusterFirst + enableServiceLinks: false + initContainers: + - command: + - bash + - -c + - mkdir -p /pgbackrest/repo1/log + image: perconalab/percona-postgresql-operator:main-ppg16-pgbackrest + imagePullPolicy: Always + name: pgbackrest-log-dir + resources: {} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /pgbackrest/repo1 + name: repo1 + - mountPath: /tmp + name: tmp + - command: + - bash + - -c + - "export NSS_WRAPPER_SUBDIR=postgres CRUNCHY_NSS_USERNAME=postgres CRUNCHY_NSS_USER_DESC=\"postgres\" + \n# Define nss_wrapper directory and passwd & 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' + >> \"${passwd_tmp}\"\n envsubst < \"${passwd_tmp}\" > \"${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' + >> \"${group_tmp}\"\n envsubst < \"${group_tmp}\" > \"${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 + & 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" + image: perconalab/percona-postgresql-operator:main-ppg16-pgbackrest + imagePullPolicy: Always + name: nss-wrapper-init + resources: {} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /tmp + name: tmp + restartPolicy: Always + schedulerName: default-scheduler + securityContext: + fsGroup: 26 + fsGroupChangePolicy: OnRootMismatch + serviceAccount: upgrade-minor-pgbackrest + serviceAccountName: upgrade-minor-pgbackrest + shareProcessNamespace: true + terminationGracePeriodSeconds: 30 + topologySpreadConstraints: + - labelSelector: + matchExpressions: + - key: postgres-operator.crunchydata.com/data + operator: In + values: + - postgres + - pgbackrest + matchLabels: + postgres-operator.crunchydata.com/cluster: upgrade-minor + maxSkew: 1 + topologyKey: kubernetes.io/hostname + whenUnsatisfiable: ScheduleAnyway + - labelSelector: + matchExpressions: + - key: postgres-operator.crunchydata.com/data + operator: In + values: + - postgres + - pgbackrest + matchLabels: + postgres-operator.crunchydata.com/cluster: upgrade-minor + maxSkew: 1 + topologyKey: topology.kubernetes.io/zone + whenUnsatisfiable: ScheduleAnyway + volumes: + - name: pgbackrest-server + projected: + defaultMode: 420 + sources: + - secret: + items: + - key: pgbackrest-repo-host.crt + path: server-tls.crt + - key: pgbackrest-repo-host.key + mode: 384 + path: server-tls.key + name: upgrade-minor-pgbackrest + - name: repo1 + persistentVolumeClaim: + claimName: upgrade-minor-repo1 + - name: pgbackrest-config + projected: + defaultMode: 420 + sources: + - configMap: + items: + - key: pgbackrest_repo.conf + path: pgbackrest_repo.conf + - key: config-hash + path: config-hash + - key: pgbackrest-server.conf + path: ~postgres-operator_server.conf + name: upgrade-minor-pgbackrest-config + - secret: + items: + - key: pgbackrest.ca-roots + path: ~postgres-operator/tls-ca.crt + - key: pgbackrest-client.crt + path: ~postgres-operator/client-tls.crt + - key: pgbackrest-client.key + mode: 384 + path: ~postgres-operator/client-tls.key + name: upgrade-minor-pgbackrest + - emptyDir: + sizeLimit: 1536Mi + name: tmp + updateStrategy: + rollingUpdate: + partition: 0 + type: RollingUpdate status: + availableReplicas: 1 collisionCount: 0 currentReplicas: 1 - observedGeneration: 2 + currentRevision: upgrade-minor-repo-host-55bbcdf645 + observedGeneration: 3 readyReplicas: 1 replicas: 1 + updateRevision: upgrade-minor-repo-host-55bbcdf645 updatedReplicas: 1 case.go:366: resource StatefulSet:kuttl-test-coherent-ray/upgrade-minor-repo-host: .status.observedGeneration: value mismatch, expected: 2 != actual: 3 case.go:366: --- StatefulSet:kuttl-test-coherent-ray/ +++ StatefulSet:kuttl-test-coherent-ray/upgrade-minor-instance1-4hpz @@ -7,9 +7,455 @@ app.kubernetes.io/managed-by: percona-postgresql-operator app.kubernetes.io/name: percona-postgresql app.kubernetes.io/part-of: percona-postgresql + pgv2.percona.com/version: 2.4.0 postgres-operator.crunchydata.com/cluster: upgrade-minor postgres-operator.crunchydata.com/data: postgres + postgres-operator.crunchydata.com/instance: upgrade-minor-instance1-4hpz postgres-operator.crunchydata.com/instance-set: instance1 + managedFields: + - apiVersion: apps/v1 + fieldsType: FieldsV1 + fieldsV1: + f:metadata: + f:labels: + f:app.kubernetes.io/component: {} + f:app.kubernetes.io/instance: {} + f:app.kubernetes.io/managed-by: {} + f:app.kubernetes.io/name: {} + f:app.kubernetes.io/part-of: {} + f:pgv2.percona.com/version: {} + f:postgres-operator.crunchydata.com/cluster: {} + f:postgres-operator.crunchydata.com/data: {} + f:postgres-operator.crunchydata.com/instance: {} + f:postgres-operator.crunchydata.com/instance-set: {} + f:ownerReferences: + k:{"uid":"a26533cc-4ab2-4553-8c81-a794f71f0b98"}: {} + f:spec: + f:replicas: {} + f:revisionHistoryLimit: {} + f:selector: {} + f:serviceName: {} + f:template: + f:metadata: + f:labels: + f:app.kubernetes.io/component: {} + f:app.kubernetes.io/instance: {} + f:app.kubernetes.io/managed-by: {} + f:app.kubernetes.io/name: {} + f:app.kubernetes.io/part-of: {} + f:pgv2.percona.com/version: {} + f:postgres-operator.crunchydata.com/cluster: {} + f:postgres-operator.crunchydata.com/data: {} + f:postgres-operator.crunchydata.com/instance: {} + f:postgres-operator.crunchydata.com/instance-set: {} + f:postgres-operator.crunchydata.com/patroni: {} + f:spec: + f:affinity: + f:podAntiAffinity: + f:preferredDuringSchedulingIgnoredDuringExecution: {} + f:containers: + k:{"name":"database"}: + .: {} + f:command: {} + f:env: + k:{"name":"KRB5_CONFIG"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"KRB5RCACHEDIR"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"LD_PRELOAD"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"NSS_WRAPPER_GROUP"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"NSS_WRAPPER_PASSWD"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PATRONI_KUBERNETES_POD_IP"}: + .: {} + f:name: {} + f:valueFrom: + f:fieldRef: {} + k:{"name":"PATRONI_KUBERNETES_PORTS"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PATRONI_NAME"}: + .: {} + f:name: {} + f:valueFrom: + f:fieldRef: {} + k:{"name":"PATRONI_POSTGRESQL_CONFIG_DIR"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PATRONI_POSTGRESQL_CONNECT_ADDRESS"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PATRONI_POSTGRESQL_DATA_DIR"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PATRONI_POSTGRESQL_LISTEN"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PATRONI_RESTAPI_CONNECT_ADDRESS"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PATRONI_RESTAPI_LISTEN"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PATRONICTL_CONFIG_FILE"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PGDATA"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PGHOST"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PGPORT"}: + .: {} + f:name: {} + f:value: {} + f:image: {} + f:imagePullPolicy: {} + f:livenessProbe: + f:failureThreshold: {} + f:httpGet: + f:path: {} + f:port: {} + f:scheme: {} + f:initialDelaySeconds: {} + f:periodSeconds: {} + f:successThreshold: {} + f:timeoutSeconds: {} + f:name: {} + f:ports: + k:{"containerPort":5432,"protocol":"TCP"}: + .: {} + f:containerPort: {} + f:name: {} + f:protocol: {} + f:readinessProbe: + f:failureThreshold: {} + f:httpGet: + f:path: {} + f:port: {} + f:scheme: {} + f:initialDelaySeconds: {} + f:periodSeconds: {} + f:successThreshold: {} + f:timeoutSeconds: {} + f:resources: {} + f:securityContext: + f:allowPrivilegeEscalation: {} + f:capabilities: + f:drop: {} + f:privileged: {} + f:readOnlyRootFilesystem: {} + f:runAsNonRoot: {} + f:volumeMounts: + k:{"mountPath":"/dev/shm"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"mountPath":"/etc/database-containerinfo"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/etc/patroni"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/etc/pgbackrest/conf.d"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/pgconf/tls"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/pgdata"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"mountPath":"/tmp"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"name":"pgbackrest"}: + .: {} + f:command: {} + f:env: + k:{"name":"LD_PRELOAD"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"NSS_WRAPPER_GROUP"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"NSS_WRAPPER_PASSWD"}: + .: {} + f:name: {} + f:value: {} + f:image: {} + f:imagePullPolicy: {} + f:livenessProbe: + f:exec: + f:command: {} + f:name: {} + f:resources: {} + f:securityContext: + f:allowPrivilegeEscalation: {} + f:capabilities: + f:drop: {} + f:privileged: {} + f:readOnlyRootFilesystem: {} + f:runAsNonRoot: {} + f:volumeMounts: + k:{"mountPath":"/etc/pgbackrest/conf.d"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/etc/pgbackrest/server"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/pgdata"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"mountPath":"/tmp"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"name":"pgbackrest-config"}: + .: {} + f:command: {} + f:image: {} + f:imagePullPolicy: {} + f:name: {} + f:resources: {} + f:securityContext: + f:allowPrivilegeEscalation: {} + f:capabilities: + f:drop: {} + f:privileged: {} + f:readOnlyRootFilesystem: {} + f:runAsNonRoot: {} + f:volumeMounts: + k:{"mountPath":"/etc/pgbackrest/conf.d"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/etc/pgbackrest/server"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/tmp"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"name":"replication-cert-copy"}: + .: {} + f:command: {} + f:image: {} + f:imagePullPolicy: {} + f:name: {} + f:resources: {} + f:securityContext: + f:allowPrivilegeEscalation: {} + f:capabilities: + f:drop: {} + f:privileged: {} + f:readOnlyRootFilesystem: {} + f:runAsNonRoot: {} + f:volumeMounts: + k:{"mountPath":"/pgconf/tls"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/tmp"}: + .: {} + f:mountPath: {} + f:name: {} + f:enableServiceLinks: {} + f:initContainers: + k:{"name":"nss-wrapper-init"}: + .: {} + f:command: {} + f:image: {} + f:imagePullPolicy: {} + f:name: {} + f:resources: {} + f:securityContext: + f:allowPrivilegeEscalation: {} + f:capabilities: + f:drop: {} + f:privileged: {} + f:readOnlyRootFilesystem: {} + f:runAsNonRoot: {} + f:volumeMounts: + k:{"mountPath":"/tmp"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"name":"postgres-startup"}: + .: {} + f:command: {} + f:env: + k:{"name":"KRB5_CONFIG"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"KRB5RCACHEDIR"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PGDATA"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PGHOST"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PGPORT"}: + .: {} + f:name: {} + f:value: {} + f:image: {} + f:imagePullPolicy: {} + f:name: {} + f:resources: {} + f:securityContext: + f:allowPrivilegeEscalation: {} + f:capabilities: + f:drop: {} + f:privileged: {} + f:readOnlyRootFilesystem: {} + f:runAsNonRoot: {} + f:volumeMounts: + k:{"mountPath":"/pgconf/tls"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/pgdata"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"mountPath":"/tmp"}: + .: {} + f:mountPath: {} + f:name: {} + f:restartPolicy: {} + f:securityContext: + f:fsGroup: {} + f:fsGroupChangePolicy: {} + f:serviceAccountName: {} + f:shareProcessNamespace: {} + f:topologySpreadConstraints: + k:{"topologyKey":"kubernetes.io/hostname","whenUnsatisfiable":"ScheduleAnyway"}: + .: {} + f:labelSelector: {} + f:maxSkew: {} + f:topologyKey: {} + f:whenUnsatisfiable: {} + k:{"topologyKey":"topology.kubernetes.io/zone","whenUnsatisfiable":"ScheduleAnyway"}: + .: {} + f:labelSelector: {} + f:maxSkew: {} + f:topologyKey: {} + f:whenUnsatisfiable: {} + f:volumes: + k:{"name":"cert-volume"}: + .: {} + f:name: {} + f:projected: + f:defaultMode: {} + f:sources: {} + k:{"name":"database-containerinfo"}: + .: {} + f:downwardAPI: + f:items: {} + f:name: {} + k:{"name":"dshm"}: + .: {} + f:emptyDir: + f:medium: {} + f:name: {} + k:{"name":"patroni-config"}: + .: {} + f:name: {} + f:projected: + f:sources: {} + k:{"name":"pgbackrest-config"}: + .: {} + f:name: {} + f:projected: + f:sources: {} + k:{"name":"pgbackrest-server"}: + .: {} + f:name: {} + f:projected: + f:sources: {} + k:{"name":"postgres-data"}: + .: {} + f:name: {} + f:persistentVolumeClaim: + f:claimName: {} + k:{"name":"tmp"}: + .: {} + f:emptyDir: + f:sizeLimit: {} + f:name: {} + f:updateStrategy: + f:type: {} + manager: postgrescluster-controller + operation: Apply + time: "2024-04-02T12:56:11Z" + - apiVersion: apps/v1 + fieldsType: FieldsV1 + fieldsV1: + f:status: + f:availableReplicas: {} + f:collisionCount: {} + f:currentRevision: {} + f:observedGeneration: {} + f:replicas: {} + f:updateRevision: {} + f:updatedReplicas: {} + manager: kube-controller-manager + operation: Update + subresource: status + time: "2024-04-02T12:56:16Z" + name: upgrade-minor-instance1-4hpz namespace: kuttl-test-coherent-ray ownerReferences: - apiVersion: postgres-operator.crunchydata.com/v1beta1 @@ -17,24 +463,593 @@ controller: true kind: PostgresCluster name: upgrade-minor + uid: a26533cc-4ab2-4553-8c81-a794f71f0b98 spec: + podManagementPolicy: OrderedReady + replicas: 1 + revisionHistoryLimit: 0 + selector: + matchLabels: + postgres-operator.crunchydata.com/cluster: upgrade-minor + postgres-operator.crunchydata.com/instance: upgrade-minor-instance1-4hpz + postgres-operator.crunchydata.com/instance-set: instance1 + serviceName: upgrade-minor-pods template: metadata: + creationTimestamp: null labels: app.kubernetes.io/component: pg app.kubernetes.io/instance: upgrade-minor app.kubernetes.io/managed-by: percona-postgresql-operator app.kubernetes.io/name: percona-postgresql app.kubernetes.io/part-of: percona-postgresql + pgv2.percona.com/version: 2.4.0 postgres-operator.crunchydata.com/cluster: upgrade-minor postgres-operator.crunchydata.com/data: postgres + postgres-operator.crunchydata.com/instance: upgrade-minor-instance1-4hpz postgres-operator.crunchydata.com/instance-set: instance1 postgres-operator.crunchydata.com/patroni: upgrade-minor-ha + spec: + affinity: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchLabels: + postgres-operator.crunchydata.com/data: postgres + topologyKey: kubernetes.io/hostname + weight: 1 + containers: + - command: + - patroni + - /etc/patroni + env: + - name: PGDATA + value: /pgdata/pg16 + - name: PGHOST + value: /tmp/postgres + - name: PGPORT + value: "5432" + - name: KRB5_CONFIG + value: /etc/postgres/krb5.conf + - name: KRB5RCACHEDIR + value: /tmp + - name: PATRONI_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.name + - name: PATRONI_KUBERNETES_POD_IP + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: status.podIP + - name: PATRONI_KUBERNETES_PORTS + value: | + - name: postgres + port: 5432 + protocol: TCP + - name: PATRONI_POSTGRESQL_CONNECT_ADDRESS + value: $(PATRONI_NAME).upgrade-minor-pods:5432 + - name: PATRONI_POSTGRESQL_LISTEN + value: '*:5432' + - name: PATRONI_POSTGRESQL_CONFIG_DIR + value: /pgdata/pg16 + - name: PATRONI_POSTGRESQL_DATA_DIR + value: /pgdata/pg16 + - name: PATRONI_RESTAPI_CONNECT_ADDRESS + value: $(PATRONI_NAME).upgrade-minor-pods:8008 + - name: PATRONI_RESTAPI_LISTEN + value: '*:8008' + - name: PATRONICTL_CONFIG_FILE + value: /etc/patroni + - name: LD_PRELOAD + value: /usr/lib64/libnss_wrapper.so + - name: NSS_WRAPPER_PASSWD + value: /tmp/nss_wrapper/postgres/passwd + - name: NSS_WRAPPER_GROUP + value: /tmp/nss_wrapper/postgres/group + image: perconalab/percona-postgresql-operator:main-ppg16-postgres + imagePullPolicy: Always + livenessProbe: + failureThreshold: 3 + httpGet: + path: /liveness + port: 8008 + scheme: HTTPS + initialDelaySeconds: 3 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + name: database + ports: + - containerPort: 5432 + name: postgres + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /readiness + port: 8008 + scheme: HTTPS + initialDelaySeconds: 3 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + resources: {} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /pgconf/tls + name: cert-volume + readOnly: true + - mountPath: /pgdata + name: postgres-data + - mountPath: /etc/database-containerinfo + name: database-containerinfo + readOnly: true + - mountPath: /etc/pgbackrest/conf.d + name: pgbackrest-config + readOnly: true + - mountPath: /etc/patroni + name: patroni-config + readOnly: true + - mountPath: /tmp + name: tmp + - mountPath: /dev/shm + name: dshm + - command: + - bash + - -ceu + - -- + - |- + monitor() { + declare -r directory="/pgconf/tls" + exec {fd}<> <(:) + while read -r -t 5 -u "${fd}" || true; do + if [ "${directory}" -nt "/proc/self/fd/${fd}" ] && + install -D --mode=0600 -t "/tmp/replication" "${directory}"/{replication/tls.crt,replication/tls.key,replication/ca.crt} && + pkill -HUP --exact --parent=1 postgres + then + exec {fd}>&- && exec {fd}<> <(:) + stat --format='Loaded certificates dated %!y(MISSING)' "${directory}" + fi + done + }; export -f monitor; exec -a "$0" bash -ceu monitor + - replication-cert-copy + image: perconalab/percona-postgresql-operator:main-ppg16-postgres + imagePullPolicy: Always + name: replication-cert-copy + resources: {} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /pgconf/tls + name: cert-volume + readOnly: true + - mountPath: /tmp + name: tmp + - command: + - pgbackrest + - server + env: + - name: LD_PRELOAD + value: /usr/lib64/libnss_wrapper.so + - name: NSS_WRAPPER_PASSWD + value: /tmp/nss_wrapper/postgres/passwd + - name: NSS_WRAPPER_GROUP + value: /tmp/nss_wrapper/postgres/group + image: perconalab/percona-postgresql-operator:main-ppg16-pgbackrest + imagePullPolicy: Always + livenessProbe: + exec: + command: + - pgbackrest + - server-ping + failureThreshold: 3 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + name: pgbackrest + resources: {} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /etc/pgbackrest/server + name: pgbackrest-server + readOnly: true + - mountPath: /pgdata + name: postgres-data + - mountPath: /etc/pgbackrest/conf.d + name: pgbackrest-config + readOnly: true + - mountPath: /tmp + name: tmp + - command: + - bash + - -ceu + - -- + - |- + monitor() { + exec {fd}<> <(:) + until read -r -t 5 -u "${fd}"; do + if + [ "${filename}" -nt "/proc/self/fd/${fd}" ] && + pkill -HUP --exact --parent=0 pgbackrest + then + exec {fd}>&- && exec {fd}<> <(:) + stat --dereference --format='Loaded configuration dated %!y(MISSING)' "${filename}" + elif + { [ "${directory}" -nt "/proc/self/fd/${fd}" ] || + [ "${authority}" -nt "/proc/self/fd/${fd}" ] + } && + pkill -HUP --exact --parent=0 pgbackrest + then + exec {fd}>&- && exec {fd}<> <(:) + stat --format='Loaded certificates dated %!y(MISSING)' "${directory}" + fi + done + }; export directory="$1" authority="$2" filename="$3"; export -f monitor; exec -a "$0" bash -ceu monitor + - pgbackrest-config + - /etc/pgbackrest/server + - /etc/pgbackrest/conf.d/~postgres-operator/tls-ca.crt + - /etc/pgbackrest/conf.d/~postgres-operator_server.conf + image: perconalab/percona-postgresql-operator:main-ppg16-pgbackrest + imagePullPolicy: Always + name: pgbackrest-config + resources: {} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /etc/pgbackrest/server + name: pgbackrest-server + readOnly: true + - mountPath: /etc/pgbackrest/conf.d + name: pgbackrest-config + readOnly: true + - mountPath: /tmp + name: tmp + dnsPolicy: ClusterFirst + enableServiceLinks: false + initContainers: + - command: + - bash + - -ceu + - -- + - |- + declare -r expected_major_version="$1" pgwal_directory="$2" pgbrLog_directory="$3" + permissions() { while [[ -n "$1" ]]; do set "${1%!/(MISSING)*}" "$@"; done; shift; stat -Lc '%!A(MISSING) %!u(MISSING) %!g(MISSING) %!n(MISSING)' "$@"; } + halt() { local rc=$?; >&2 echo "$@"; exit "${rc/#0/1}"; } + results() { printf '::postgres-operator: %!s(MISSING)::%!s(MISSING)\n' "$@"; } + recreate() ( + local tmp; tmp=$(mktemp -d -p "${1%!/(MISSING)*}"); GLOBIGNORE='.:..'; set -x + chmod "$2" "${tmp}"; mv "$1"/* "${tmp}"; rmdir "$1"; mv "${tmp}" "$1" + ) + safelink() ( + local desired="$1" name="$2" current + current=$(realpath "${name}") + if [ "${current}" = "${desired}" ]; then return; fi + set -x; mv --no-target-directory "${current}" "${desired}" + ln --no-dereference --force --symbolic "${desired}" "${name}" + ) + echo Initializing ... + results 'uid' "$(id -u)" 'gid' "$(id -G)" + results 'postgres path' "$(command -v postgres)" + results 'postgres version' "${postgres_version:=$(postgres --version)}" + [[ "${postgres_version}" =~ ") ${expected_major_version}"($|[^0-9]) ]] || + halt Expected PostgreSQL version "${expected_major_version}" + results 'config directory' "${PGDATA:?}" + postgres_data_directory=$([ -d "${PGDATA}" ] && postgres -C data_directory || echo "${PGDATA}") + results 'data directory' "${postgres_data_directory}" + [[ "${postgres_data_directory}" == "${PGDATA}" ]] || + halt Expected matching config and data directories + bootstrap_dir="${postgres_data_directory}_bootstrap" + [ -d "${bootstrap_dir}" ] && results 'bootstrap directory' "${bootstrap_dir}" + [ -d "${bootstrap_dir}" ] && postgres_data_directory="${bootstrap_dir}" + if [[ ! -e "${postgres_data_directory}" || -O "${postgres_data_directory}" ]]; then + install --directory --mode=0700 "${postgres_data_directory}" + elif [[ -w "${postgres_data_directory}" && -g "${postgres_data_directory}" ]]; then + recreate "${postgres_data_directory}" '0700' + else (halt Permissions!); fi || + halt "$(permissions "${postgres_data_directory}" ||:)" + results 'pgBackRest log directory' "${pgbrLog_directory}" + install --directory --mode=0775 "${pgbrLog_directory}" || + halt "$(permissions "${pgbrLog_directory}" ||:)" + install -D --mode=0600 -t "/tmp/replication" "/pgconf/tls/replication"/{tls.crt,tls.key,ca.crt} + + [ -f "${postgres_data_directory}/PG_VERSION" ] || exit 0 + results 'data version' "${postgres_data_version:=$(< "${postgres_data_directory}/PG_VERSION")}" + [[ "${postgres_data_version}" == "${expected_major_version}" ]] || + halt Expected PostgreSQL data version "${expected_major_version}" + [[ ! -f "${postgres_data_directory}/postgresql.conf" ]] && + touch "${postgres_data_directory}/postgresql.conf" + safelink "${pgwal_directory}" "${postgres_data_directory}/pg_wal" + results 'wal directory' "$(realpath "${postgres_data_directory}/pg_wal")" + rm -f "${postgres_data_directory}/recovery.signal" + - startup + - "16" + - /pgdata/pg16_wal + - /pgdata/pgbackrest/log + env: + - name: PGDATA + value: /pgdata/pg16 + - name: PGHOST + value: /tmp/postgres + - name: PGPORT + value: "5432" + - name: KRB5_CONFIG + value: /etc/postgres/krb5.conf + - name: KRB5RCACHEDIR + value: /tmp + image: perconalab/percona-postgresql-operator:main-ppg16-postgres + imagePullPolicy: Always + name: postgres-startup + resources: {} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /pgconf/tls + name: cert-volume + readOnly: true + - mountPath: /pgdata + name: postgres-data + - mountPath: /tmp + name: tmp + - command: + - bash + - -c + - "export NSS_WRAPPER_SUBDIR=postgres CRUNCHY_NSS_USERNAME=postgres CRUNCHY_NSS_USER_DESC=\"postgres\" + \n# Define nss_wrapper directory and passwd & 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' + >> \"${passwd_tmp}\"\n envsubst < \"${passwd_tmp}\" > \"${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' + >> \"${group_tmp}\"\n envsubst < \"${group_tmp}\" > \"${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 + & 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" + image: perconalab/percona-postgresql-operator:main-ppg16-postgres + imagePullPolicy: Always + name: nss-wrapper-init + resources: {} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /tmp + name: tmp + restartPolicy: Always + schedulerName: default-scheduler + securityContext: + fsGroup: 26 + fsGroupChangePolicy: OnRootMismatch + serviceAccount: upgrade-minor-instance + serviceAccountName: upgrade-minor-instance + shareProcessNamespace: true + terminationGracePeriodSeconds: 30 + topologySpreadConstraints: + - labelSelector: + matchExpressions: + - key: postgres-operator.crunchydata.com/data + operator: In + values: + - postgres + - pgbackrest + matchLabels: + postgres-operator.crunchydata.com/cluster: upgrade-minor + maxSkew: 1 + topologyKey: kubernetes.io/hostname + whenUnsatisfiable: ScheduleAnyway + - labelSelector: + matchExpressions: + - key: postgres-operator.crunchydata.com/data + operator: In + values: + - postgres + - pgbackrest + matchLabels: + postgres-operator.crunchydata.com/cluster: upgrade-minor + maxSkew: 1 + topologyKey: topology.kubernetes.io/zone + whenUnsatisfiable: ScheduleAnyway + volumes: + - name: cert-volume + projected: + defaultMode: 384 + sources: + - secret: + items: + - key: tls.crt + path: tls.crt + - key: tls.key + path: tls.key + - key: ca.crt + path: ca.crt + name: upgrade-minor-cluster-cert + - secret: + items: + - key: tls.crt + path: replication/tls.crt + - key: tls.key + path: replication/tls.key + - key: ca.crt + path: replication/ca.crt + name: upgrade-minor-replication-cert + - name: postgres-data + persistentVolumeClaim: + claimName: upgrade-minor-instance1-4hpz-pgdata + - downwardAPI: + defaultMode: 420 + items: + - path: cpu_limit + resourceFieldRef: + containerName: database + divisor: 1m + resource: limits.cpu + - path: cpu_request + resourceFieldRef: + containerName: database + divisor: 1m + resource: requests.cpu + - path: mem_limit + resourceFieldRef: + containerName: database + divisor: 1Mi + resource: limits.memory + - path: mem_request + resourceFieldRef: + containerName: database + divisor: 1Mi + resource: requests.memory + - fieldRef: + apiVersion: v1 + fieldPath: metadata.labels + path: labels + - fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations + path: annotations + name: database-containerinfo + - name: pgbackrest-server + projected: + defaultMode: 420 + sources: + - secret: + items: + - key: pgbackrest-server.crt + path: server-tls.crt + - key: pgbackrest-server.key + mode: 384 + path: server-tls.key + name: upgrade-minor-instance1-4hpz-certs + - name: pgbackrest-config + projected: + defaultMode: 420 + sources: + - configMap: + items: + - key: pgbackrest_instance.conf + path: pgbackrest_instance.conf + - key: config-hash + path: config-hash + - key: pgbackrest-server.conf + path: ~postgres-operator_server.conf + name: upgrade-minor-pgbackrest-config + - secret: + items: + - key: pgbackrest.ca-roots + path: ~postgres-operator/tls-ca.crt + - key: pgbackrest-client.crt + path: ~postgres-operator/client-tls.crt + - key: pgbackrest-client.key + mode: 384 + path: ~postgres-operator/client-tls.key + name: upgrade-minor-pgbackrest + optional: true + - name: patroni-config + projected: + defaultMode: 420 + sources: + - configMap: + items: + - key: patroni.yaml + path: ~postgres-operator_cluster.yaml + name: upgrade-minor-config + - configMap: + items: + - key: patroni.yaml + path: ~postgres-operator_instance.yaml + name: upgrade-minor-instance1-4hpz-config + - secret: + items: + - key: patroni.ca-roots + path: ~postgres-operator/patroni.ca-roots + - key: patroni.crt-combined + path: ~postgres-operator/patroni.crt+key + name: upgrade-minor-instance1-4hpz-certs + - emptyDir: + sizeLimit: 1536Mi + name: tmp + - emptyDir: + medium: Memory + name: dshm + updateStrategy: + type: OnDelete status: - availableReplicas: 1 + availableReplicas: 0 collisionCount: 0 + currentRevision: upgrade-minor-instance1-4hpz-57b5b5cbdd observedGeneration: 2 - readyReplicas: 1 replicas: 1 + updateRevision: upgrade-minor-instance1-4hpz-5f58744cd6 updatedReplicas: 1 case.go:366: resource StatefulSet:kuttl-test-coherent-ray/: .status.availableReplicas: value mismatch, expected: 1 != actual: 0 case.go:366: --- StatefulSet:kuttl-test-coherent-ray/ +++ StatefulSet:kuttl-test-coherent-ray/upgrade-minor-instance1-hk6v @@ -7,9 +7,456 @@ app.kubernetes.io/managed-by: percona-postgresql-operator app.kubernetes.io/name: percona-postgresql app.kubernetes.io/part-of: percona-postgresql + pgv2.percona.com/version: 2.4.0 postgres-operator.crunchydata.com/cluster: upgrade-minor postgres-operator.crunchydata.com/data: postgres + postgres-operator.crunchydata.com/instance: upgrade-minor-instance1-hk6v postgres-operator.crunchydata.com/instance-set: instance1 + managedFields: + - apiVersion: apps/v1 + fieldsType: FieldsV1 + fieldsV1: + f:metadata: + f:labels: + f:app.kubernetes.io/component: {} + f:app.kubernetes.io/instance: {} + f:app.kubernetes.io/managed-by: {} + f:app.kubernetes.io/name: {} + f:app.kubernetes.io/part-of: {} + f:pgv2.percona.com/version: {} + f:postgres-operator.crunchydata.com/cluster: {} + f:postgres-operator.crunchydata.com/data: {} + f:postgres-operator.crunchydata.com/instance: {} + f:postgres-operator.crunchydata.com/instance-set: {} + f:ownerReferences: + k:{"uid":"a26533cc-4ab2-4553-8c81-a794f71f0b98"}: {} + f:spec: + f:replicas: {} + f:revisionHistoryLimit: {} + f:selector: {} + f:serviceName: {} + f:template: + f:metadata: + f:labels: + f:app.kubernetes.io/component: {} + f:app.kubernetes.io/instance: {} + f:app.kubernetes.io/managed-by: {} + f:app.kubernetes.io/name: {} + f:app.kubernetes.io/part-of: {} + f:pgv2.percona.com/version: {} + f:postgres-operator.crunchydata.com/cluster: {} + f:postgres-operator.crunchydata.com/data: {} + f:postgres-operator.crunchydata.com/instance: {} + f:postgres-operator.crunchydata.com/instance-set: {} + f:postgres-operator.crunchydata.com/patroni: {} + f:spec: + f:affinity: + f:podAntiAffinity: + f:preferredDuringSchedulingIgnoredDuringExecution: {} + f:containers: + k:{"name":"database"}: + .: {} + f:command: {} + f:env: + k:{"name":"KRB5_CONFIG"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"KRB5RCACHEDIR"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"LD_PRELOAD"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"NSS_WRAPPER_GROUP"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"NSS_WRAPPER_PASSWD"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PATRONI_KUBERNETES_POD_IP"}: + .: {} + f:name: {} + f:valueFrom: + f:fieldRef: {} + k:{"name":"PATRONI_KUBERNETES_PORTS"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PATRONI_NAME"}: + .: {} + f:name: {} + f:valueFrom: + f:fieldRef: {} + k:{"name":"PATRONI_POSTGRESQL_CONFIG_DIR"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PATRONI_POSTGRESQL_CONNECT_ADDRESS"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PATRONI_POSTGRESQL_DATA_DIR"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PATRONI_POSTGRESQL_LISTEN"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PATRONI_RESTAPI_CONNECT_ADDRESS"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PATRONI_RESTAPI_LISTEN"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PATRONICTL_CONFIG_FILE"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PGDATA"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PGHOST"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PGPORT"}: + .: {} + f:name: {} + f:value: {} + f:image: {} + f:imagePullPolicy: {} + f:livenessProbe: + f:failureThreshold: {} + f:httpGet: + f:path: {} + f:port: {} + f:scheme: {} + f:initialDelaySeconds: {} + f:periodSeconds: {} + f:successThreshold: {} + f:timeoutSeconds: {} + f:name: {} + f:ports: + k:{"containerPort":5432,"protocol":"TCP"}: + .: {} + f:containerPort: {} + f:name: {} + f:protocol: {} + f:readinessProbe: + f:failureThreshold: {} + f:httpGet: + f:path: {} + f:port: {} + f:scheme: {} + f:initialDelaySeconds: {} + f:periodSeconds: {} + f:successThreshold: {} + f:timeoutSeconds: {} + f:resources: {} + f:securityContext: + f:allowPrivilegeEscalation: {} + f:capabilities: + f:drop: {} + f:privileged: {} + f:readOnlyRootFilesystem: {} + f:runAsNonRoot: {} + f:volumeMounts: + k:{"mountPath":"/dev/shm"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"mountPath":"/etc/database-containerinfo"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/etc/patroni"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/etc/pgbackrest/conf.d"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/pgconf/tls"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/pgdata"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"mountPath":"/tmp"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"name":"pgbackrest"}: + .: {} + f:command: {} + f:env: + k:{"name":"LD_PRELOAD"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"NSS_WRAPPER_GROUP"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"NSS_WRAPPER_PASSWD"}: + .: {} + f:name: {} + f:value: {} + f:image: {} + f:imagePullPolicy: {} + f:livenessProbe: + f:exec: + f:command: {} + f:name: {} + f:resources: {} + f:securityContext: + f:allowPrivilegeEscalation: {} + f:capabilities: + f:drop: {} + f:privileged: {} + f:readOnlyRootFilesystem: {} + f:runAsNonRoot: {} + f:volumeMounts: + k:{"mountPath":"/etc/pgbackrest/conf.d"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/etc/pgbackrest/server"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/pgdata"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"mountPath":"/tmp"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"name":"pgbackrest-config"}: + .: {} + f:command: {} + f:image: {} + f:imagePullPolicy: {} + f:name: {} + f:resources: {} + f:securityContext: + f:allowPrivilegeEscalation: {} + f:capabilities: + f:drop: {} + f:privileged: {} + f:readOnlyRootFilesystem: {} + f:runAsNonRoot: {} + f:volumeMounts: + k:{"mountPath":"/etc/pgbackrest/conf.d"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/etc/pgbackrest/server"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/tmp"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"name":"replication-cert-copy"}: + .: {} + f:command: {} + f:image: {} + f:imagePullPolicy: {} + f:name: {} + f:resources: {} + f:securityContext: + f:allowPrivilegeEscalation: {} + f:capabilities: + f:drop: {} + f:privileged: {} + f:readOnlyRootFilesystem: {} + f:runAsNonRoot: {} + f:volumeMounts: + k:{"mountPath":"/pgconf/tls"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/tmp"}: + .: {} + f:mountPath: {} + f:name: {} + f:enableServiceLinks: {} + f:initContainers: + k:{"name":"nss-wrapper-init"}: + .: {} + f:command: {} + f:image: {} + f:imagePullPolicy: {} + f:name: {} + f:resources: {} + f:securityContext: + f:allowPrivilegeEscalation: {} + f:capabilities: + f:drop: {} + f:privileged: {} + f:readOnlyRootFilesystem: {} + f:runAsNonRoot: {} + f:volumeMounts: + k:{"mountPath":"/tmp"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"name":"postgres-startup"}: + .: {} + f:command: {} + f:env: + k:{"name":"KRB5_CONFIG"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"KRB5RCACHEDIR"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PGDATA"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PGHOST"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PGPORT"}: + .: {} + f:name: {} + f:value: {} + f:image: {} + f:imagePullPolicy: {} + f:name: {} + f:resources: {} + f:securityContext: + f:allowPrivilegeEscalation: {} + f:capabilities: + f:drop: {} + f:privileged: {} + f:readOnlyRootFilesystem: {} + f:runAsNonRoot: {} + f:volumeMounts: + k:{"mountPath":"/pgconf/tls"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/pgdata"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"mountPath":"/tmp"}: + .: {} + f:mountPath: {} + f:name: {} + f:restartPolicy: {} + f:securityContext: + f:fsGroup: {} + f:fsGroupChangePolicy: {} + f:serviceAccountName: {} + f:shareProcessNamespace: {} + f:topologySpreadConstraints: + k:{"topologyKey":"kubernetes.io/hostname","whenUnsatisfiable":"ScheduleAnyway"}: + .: {} + f:labelSelector: {} + f:maxSkew: {} + f:topologyKey: {} + f:whenUnsatisfiable: {} + k:{"topologyKey":"topology.kubernetes.io/zone","whenUnsatisfiable":"ScheduleAnyway"}: + .: {} + f:labelSelector: {} + f:maxSkew: {} + f:topologyKey: {} + f:whenUnsatisfiable: {} + f:volumes: + k:{"name":"cert-volume"}: + .: {} + f:name: {} + f:projected: + f:defaultMode: {} + f:sources: {} + k:{"name":"database-containerinfo"}: + .: {} + f:downwardAPI: + f:items: {} + f:name: {} + k:{"name":"dshm"}: + .: {} + f:emptyDir: + f:medium: {} + f:name: {} + k:{"name":"patroni-config"}: + .: {} + f:name: {} + f:projected: + f:sources: {} + k:{"name":"pgbackrest-config"}: + .: {} + f:name: {} + f:projected: + f:sources: {} + k:{"name":"pgbackrest-server"}: + .: {} + f:name: {} + f:projected: + f:sources: {} + k:{"name":"postgres-data"}: + .: {} + f:name: {} + f:persistentVolumeClaim: + f:claimName: {} + k:{"name":"tmp"}: + .: {} + f:emptyDir: + f:sizeLimit: {} + f:name: {} + f:updateStrategy: + f:type: {} + manager: postgrescluster-controller + operation: Apply + time: "2024-04-02T12:56:11Z" + - apiVersion: apps/v1 + fieldsType: FieldsV1 + fieldsV1: + f:status: + f:availableReplicas: {} + f:collisionCount: {} + f:currentReplicas: {} + f:currentRevision: {} + f:observedGeneration: {} + f:readyReplicas: {} + f:replicas: {} + f:updateRevision: {} + manager: kube-controller-manager + operation: Update + subresource: status + time: "2024-04-02T12:56:11Z" + name: upgrade-minor-instance1-hk6v namespace: kuttl-test-coherent-ray ownerReferences: - apiVersion: postgres-operator.crunchydata.com/v1beta1 @@ -17,24 +464,594 @@ controller: true kind: PostgresCluster name: upgrade-minor + uid: a26533cc-4ab2-4553-8c81-a794f71f0b98 spec: + podManagementPolicy: OrderedReady + replicas: 1 + revisionHistoryLimit: 0 + selector: + matchLabels: + postgres-operator.crunchydata.com/cluster: upgrade-minor + postgres-operator.crunchydata.com/instance: upgrade-minor-instance1-hk6v + postgres-operator.crunchydata.com/instance-set: instance1 + serviceName: upgrade-minor-pods template: metadata: + creationTimestamp: null labels: app.kubernetes.io/component: pg app.kubernetes.io/instance: upgrade-minor app.kubernetes.io/managed-by: percona-postgresql-operator app.kubernetes.io/name: percona-postgresql app.kubernetes.io/part-of: percona-postgresql + pgv2.percona.com/version: 2.4.0 postgres-operator.crunchydata.com/cluster: upgrade-minor postgres-operator.crunchydata.com/data: postgres + postgres-operator.crunchydata.com/instance: upgrade-minor-instance1-hk6v postgres-operator.crunchydata.com/instance-set: instance1 postgres-operator.crunchydata.com/patroni: upgrade-minor-ha + spec: + affinity: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchLabels: + postgres-operator.crunchydata.com/data: postgres + topologyKey: kubernetes.io/hostname + weight: 1 + containers: + - command: + - patroni + - /etc/patroni + env: + - name: PGDATA + value: /pgdata/pg16 + - name: PGHOST + value: /tmp/postgres + - name: PGPORT + value: "5432" + - name: KRB5_CONFIG + value: /etc/postgres/krb5.conf + - name: KRB5RCACHEDIR + value: /tmp + - name: PATRONI_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.name + - name: PATRONI_KUBERNETES_POD_IP + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: status.podIP + - name: PATRONI_KUBERNETES_PORTS + value: | + - name: postgres + port: 5432 + protocol: TCP + - name: PATRONI_POSTGRESQL_CONNECT_ADDRESS + value: $(PATRONI_NAME).upgrade-minor-pods:5432 + - name: PATRONI_POSTGRESQL_LISTEN + value: '*:5432' + - name: PATRONI_POSTGRESQL_CONFIG_DIR + value: /pgdata/pg16 + - name: PATRONI_POSTGRESQL_DATA_DIR + value: /pgdata/pg16 + - name: PATRONI_RESTAPI_CONNECT_ADDRESS + value: $(PATRONI_NAME).upgrade-minor-pods:8008 + - name: PATRONI_RESTAPI_LISTEN + value: '*:8008' + - name: PATRONICTL_CONFIG_FILE + value: /etc/patroni + - name: LD_PRELOAD + value: /usr/lib64/libnss_wrapper.so + - name: NSS_WRAPPER_PASSWD + value: /tmp/nss_wrapper/postgres/passwd + - name: NSS_WRAPPER_GROUP + value: /tmp/nss_wrapper/postgres/group + image: perconalab/percona-postgresql-operator:main-ppg16-postgres + imagePullPolicy: Always + livenessProbe: + failureThreshold: 3 + httpGet: + path: /liveness + port: 8008 + scheme: HTTPS + initialDelaySeconds: 3 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + name: database + ports: + - containerPort: 5432 + name: postgres + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /readiness + port: 8008 + scheme: HTTPS + initialDelaySeconds: 3 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + resources: {} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /pgconf/tls + name: cert-volume + readOnly: true + - mountPath: /pgdata + name: postgres-data + - mountPath: /etc/database-containerinfo + name: database-containerinfo + readOnly: true + - mountPath: /etc/pgbackrest/conf.d + name: pgbackrest-config + readOnly: true + - mountPath: /etc/patroni + name: patroni-config + readOnly: true + - mountPath: /tmp + name: tmp + - mountPath: /dev/shm + name: dshm + - command: + - bash + - -ceu + - -- + - |- + monitor() { + declare -r directory="/pgconf/tls" + exec {fd}<> <(:) + while read -r -t 5 -u "${fd}" || true; do + if [ "${directory}" -nt "/proc/self/fd/${fd}" ] && + install -D --mode=0600 -t "/tmp/replication" "${directory}"/{replication/tls.crt,replication/tls.key,replication/ca.crt} && + pkill -HUP --exact --parent=1 postgres + then + exec {fd}>&- && exec {fd}<> <(:) + stat --format='Loaded certificates dated %!y(MISSING)' "${directory}" + fi + done + }; export -f monitor; exec -a "$0" bash -ceu monitor + - replication-cert-copy + image: perconalab/percona-postgresql-operator:main-ppg16-postgres + imagePullPolicy: Always + name: replication-cert-copy + resources: {} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /pgconf/tls + name: cert-volume + readOnly: true + - mountPath: /tmp + name: tmp + - command: + - pgbackrest + - server + env: + - name: LD_PRELOAD + value: /usr/lib64/libnss_wrapper.so + - name: NSS_WRAPPER_PASSWD + value: /tmp/nss_wrapper/postgres/passwd + - name: NSS_WRAPPER_GROUP + value: /tmp/nss_wrapper/postgres/group + image: perconalab/percona-postgresql-operator:main-ppg16-pgbackrest + imagePullPolicy: Always + livenessProbe: + exec: + command: + - pgbackrest + - server-ping + failureThreshold: 3 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + name: pgbackrest + resources: {} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /etc/pgbackrest/server + name: pgbackrest-server + readOnly: true + - mountPath: /pgdata + name: postgres-data + - mountPath: /etc/pgbackrest/conf.d + name: pgbackrest-config + readOnly: true + - mountPath: /tmp + name: tmp + - command: + - bash + - -ceu + - -- + - |- + monitor() { + exec {fd}<> <(:) + until read -r -t 5 -u "${fd}"; do + if + [ "${filename}" -nt "/proc/self/fd/${fd}" ] && + pkill -HUP --exact --parent=0 pgbackrest + then + exec {fd}>&- && exec {fd}<> <(:) + stat --dereference --format='Loaded configuration dated %!y(MISSING)' "${filename}" + elif + { [ "${directory}" -nt "/proc/self/fd/${fd}" ] || + [ "${authority}" -nt "/proc/self/fd/${fd}" ] + } && + pkill -HUP --exact --parent=0 pgbackrest + then + exec {fd}>&- && exec {fd}<> <(:) + stat --format='Loaded certificates dated %!y(MISSING)' "${directory}" + fi + done + }; export directory="$1" authority="$2" filename="$3"; export -f monitor; exec -a "$0" bash -ceu monitor + - pgbackrest-config + - /etc/pgbackrest/server + - /etc/pgbackrest/conf.d/~postgres-operator/tls-ca.crt + - /etc/pgbackrest/conf.d/~postgres-operator_server.conf + image: perconalab/percona-postgresql-operator:main-ppg16-pgbackrest + imagePullPolicy: Always + name: pgbackrest-config + resources: {} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /etc/pgbackrest/server + name: pgbackrest-server + readOnly: true + - mountPath: /etc/pgbackrest/conf.d + name: pgbackrest-config + readOnly: true + - mountPath: /tmp + name: tmp + dnsPolicy: ClusterFirst + enableServiceLinks: false + initContainers: + - command: + - bash + - -ceu + - -- + - |- + declare -r expected_major_version="$1" pgwal_directory="$2" pgbrLog_directory="$3" + permissions() { while [[ -n "$1" ]]; do set "${1%!/(MISSING)*}" "$@"; done; shift; stat -Lc '%!A(MISSING) %!u(MISSING) %!g(MISSING) %!n(MISSING)' "$@"; } + halt() { local rc=$?; >&2 echo "$@"; exit "${rc/#0/1}"; } + results() { printf '::postgres-operator: %!s(MISSING)::%!s(MISSING)\n' "$@"; } + recreate() ( + local tmp; tmp=$(mktemp -d -p "${1%!/(MISSING)*}"); GLOBIGNORE='.:..'; set -x + chmod "$2" "${tmp}"; mv "$1"/* "${tmp}"; rmdir "$1"; mv "${tmp}" "$1" + ) + safelink() ( + local desired="$1" name="$2" current + current=$(realpath "${name}") + if [ "${current}" = "${desired}" ]; then return; fi + set -x; mv --no-target-directory "${current}" "${desired}" + ln --no-dereference --force --symbolic "${desired}" "${name}" + ) + echo Initializing ... + results 'uid' "$(id -u)" 'gid' "$(id -G)" + results 'postgres path' "$(command -v postgres)" + results 'postgres version' "${postgres_version:=$(postgres --version)}" + [[ "${postgres_version}" =~ ") ${expected_major_version}"($|[^0-9]) ]] || + halt Expected PostgreSQL version "${expected_major_version}" + results 'config directory' "${PGDATA:?}" + postgres_data_directory=$([ -d "${PGDATA}" ] && postgres -C data_directory || echo "${PGDATA}") + results 'data directory' "${postgres_data_directory}" + [[ "${postgres_data_directory}" == "${PGDATA}" ]] || + halt Expected matching config and data directories + bootstrap_dir="${postgres_data_directory}_bootstrap" + [ -d "${bootstrap_dir}" ] && results 'bootstrap directory' "${bootstrap_dir}" + [ -d "${bootstrap_dir}" ] && postgres_data_directory="${bootstrap_dir}" + if [[ ! -e "${postgres_data_directory}" || -O "${postgres_data_directory}" ]]; then + install --directory --mode=0700 "${postgres_data_directory}" + elif [[ -w "${postgres_data_directory}" && -g "${postgres_data_directory}" ]]; then + recreate "${postgres_data_directory}" '0700' + else (halt Permissions!); fi || + halt "$(permissions "${postgres_data_directory}" ||:)" + results 'pgBackRest log directory' "${pgbrLog_directory}" + install --directory --mode=0775 "${pgbrLog_directory}" || + halt "$(permissions "${pgbrLog_directory}" ||:)" + install -D --mode=0600 -t "/tmp/replication" "/pgconf/tls/replication"/{tls.crt,tls.key,ca.crt} + + [ -f "${postgres_data_directory}/PG_VERSION" ] || exit 0 + results 'data version' "${postgres_data_version:=$(< "${postgres_data_directory}/PG_VERSION")}" + [[ "${postgres_data_version}" == "${expected_major_version}" ]] || + halt Expected PostgreSQL data version "${expected_major_version}" + [[ ! -f "${postgres_data_directory}/postgresql.conf" ]] && + touch "${postgres_data_directory}/postgresql.conf" + safelink "${pgwal_directory}" "${postgres_data_directory}/pg_wal" + results 'wal directory' "$(realpath "${postgres_data_directory}/pg_wal")" + rm -f "${postgres_data_directory}/recovery.signal" + - startup + - "16" + - /pgdata/pg16_wal + - /pgdata/pgbackrest/log + env: + - name: PGDATA + value: /pgdata/pg16 + - name: PGHOST + value: /tmp/postgres + - name: PGPORT + value: "5432" + - name: KRB5_CONFIG + value: /etc/postgres/krb5.conf + - name: KRB5RCACHEDIR + value: /tmp + image: perconalab/percona-postgresql-operator:main-ppg16-postgres + imagePullPolicy: Always + name: postgres-startup + resources: {} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /pgconf/tls + name: cert-volume + readOnly: true + - mountPath: /pgdata + name: postgres-data + - mountPath: /tmp + name: tmp + - command: + - bash + - -c + - "export NSS_WRAPPER_SUBDIR=postgres CRUNCHY_NSS_USERNAME=postgres CRUNCHY_NSS_USER_DESC=\"postgres\" + \n# Define nss_wrapper directory and passwd & 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' + >> \"${passwd_tmp}\"\n envsubst < \"${passwd_tmp}\" > \"${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' + >> \"${group_tmp}\"\n envsubst < \"${group_tmp}\" > \"${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 + & 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" + image: perconalab/percona-postgresql-operator:main-ppg16-postgres + imagePullPolicy: Always + name: nss-wrapper-init + resources: {} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /tmp + name: tmp + restartPolicy: Always + schedulerName: default-scheduler + securityContext: + fsGroup: 26 + fsGroupChangePolicy: OnRootMismatch + serviceAccount: upgrade-minor-instance + serviceAccountName: upgrade-minor-instance + shareProcessNamespace: true + terminationGracePeriodSeconds: 30 + topologySpreadConstraints: + - labelSelector: + matchExpressions: + - key: postgres-operator.crunchydata.com/data + operator: In + values: + - postgres + - pgbackrest + matchLabels: + postgres-operator.crunchydata.com/cluster: upgrade-minor + maxSkew: 1 + topologyKey: kubernetes.io/hostname + whenUnsatisfiable: ScheduleAnyway + - labelSelector: + matchExpressions: + - key: postgres-operator.crunchydata.com/data + operator: In + values: + - postgres + - pgbackrest + matchLabels: + postgres-operator.crunchydata.com/cluster: upgrade-minor + maxSkew: 1 + topologyKey: topology.kubernetes.io/zone + whenUnsatisfiable: ScheduleAnyway + volumes: + - name: cert-volume + projected: + defaultMode: 384 + sources: + - secret: + items: + - key: tls.crt + path: tls.crt + - key: tls.key + path: tls.key + - key: ca.crt + path: ca.crt + name: upgrade-minor-cluster-cert + - secret: + items: + - key: tls.crt + path: replication/tls.crt + - key: tls.key + path: replication/tls.key + - key: ca.crt + path: replication/ca.crt + name: upgrade-minor-replication-cert + - name: postgres-data + persistentVolumeClaim: + claimName: upgrade-minor-instance1-hk6v-pgdata + - downwardAPI: + defaultMode: 420 + items: + - path: cpu_limit + resourceFieldRef: + containerName: database + divisor: 1m + resource: limits.cpu + - path: cpu_request + resourceFieldRef: + containerName: database + divisor: 1m + resource: requests.cpu + - path: mem_limit + resourceFieldRef: + containerName: database + divisor: 1Mi + resource: limits.memory + - path: mem_request + resourceFieldRef: + containerName: database + divisor: 1Mi + resource: requests.memory + - fieldRef: + apiVersion: v1 + fieldPath: metadata.labels + path: labels + - fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations + path: annotations + name: database-containerinfo + - name: pgbackrest-server + projected: + defaultMode: 420 + sources: + - secret: + items: + - key: pgbackrest-server.crt + path: server-tls.crt + - key: pgbackrest-server.key + mode: 384 + path: server-tls.key + name: upgrade-minor-instance1-hk6v-certs + - name: pgbackrest-config + projected: + defaultMode: 420 + sources: + - configMap: + items: + - key: pgbackrest_instance.conf + path: pgbackrest_instance.conf + - key: config-hash + path: config-hash + - key: pgbackrest-server.conf + path: ~postgres-operator_server.conf + name: upgrade-minor-pgbackrest-config + - secret: + items: + - key: pgbackrest.ca-roots + path: ~postgres-operator/tls-ca.crt + - key: pgbackrest-client.crt + path: ~postgres-operator/client-tls.crt + - key: pgbackrest-client.key + mode: 384 + path: ~postgres-operator/client-tls.key + name: upgrade-minor-pgbackrest + optional: true + - name: patroni-config + projected: + defaultMode: 420 + sources: + - configMap: + items: + - key: patroni.yaml + path: ~postgres-operator_cluster.yaml + name: upgrade-minor-config + - configMap: + items: + - key: patroni.yaml + path: ~postgres-operator_instance.yaml + name: upgrade-minor-instance1-hk6v-config + - secret: + items: + - key: patroni.ca-roots + path: ~postgres-operator/patroni.ca-roots + - key: patroni.crt-combined + path: ~postgres-operator/patroni.crt+key + name: upgrade-minor-instance1-hk6v-certs + - emptyDir: + sizeLimit: 1536Mi + name: tmp + - emptyDir: + medium: Memory + name: dshm + updateStrategy: + type: OnDelete status: availableReplicas: 1 collisionCount: 0 + currentReplicas: 1 + currentRevision: upgrade-minor-instance1-hk6v-7b5c47cf6f observedGeneration: 2 readyReplicas: 1 replicas: 1 - updatedReplicas: 1 + updateRevision: upgrade-minor-instance1-hk6v-79cd8bfc9f case.go:366: resource StatefulSet:kuttl-test-coherent-ray/: .status.updatedReplicas: key is missing from map case.go:366: --- StatefulSet:kuttl-test-coherent-ray/ +++ StatefulSet:kuttl-test-coherent-ray/upgrade-minor-instance1-vbvb @@ -7,9 +7,456 @@ app.kubernetes.io/managed-by: percona-postgresql-operator app.kubernetes.io/name: percona-postgresql app.kubernetes.io/part-of: percona-postgresql + pgv2.percona.com/version: 2.4.0 postgres-operator.crunchydata.com/cluster: upgrade-minor postgres-operator.crunchydata.com/data: postgres + postgres-operator.crunchydata.com/instance: upgrade-minor-instance1-vbvb postgres-operator.crunchydata.com/instance-set: instance1 + managedFields: + - apiVersion: apps/v1 + fieldsType: FieldsV1 + fieldsV1: + f:metadata: + f:labels: + f:app.kubernetes.io/component: {} + f:app.kubernetes.io/instance: {} + f:app.kubernetes.io/managed-by: {} + f:app.kubernetes.io/name: {} + f:app.kubernetes.io/part-of: {} + f:pgv2.percona.com/version: {} + f:postgres-operator.crunchydata.com/cluster: {} + f:postgres-operator.crunchydata.com/data: {} + f:postgres-operator.crunchydata.com/instance: {} + f:postgres-operator.crunchydata.com/instance-set: {} + f:ownerReferences: + k:{"uid":"a26533cc-4ab2-4553-8c81-a794f71f0b98"}: {} + f:spec: + f:replicas: {} + f:revisionHistoryLimit: {} + f:selector: {} + f:serviceName: {} + f:template: + f:metadata: + f:labels: + f:app.kubernetes.io/component: {} + f:app.kubernetes.io/instance: {} + f:app.kubernetes.io/managed-by: {} + f:app.kubernetes.io/name: {} + f:app.kubernetes.io/part-of: {} + f:pgv2.percona.com/version: {} + f:postgres-operator.crunchydata.com/cluster: {} + f:postgres-operator.crunchydata.com/data: {} + f:postgres-operator.crunchydata.com/instance: {} + f:postgres-operator.crunchydata.com/instance-set: {} + f:postgres-operator.crunchydata.com/patroni: {} + f:spec: + f:affinity: + f:podAntiAffinity: + f:preferredDuringSchedulingIgnoredDuringExecution: {} + f:containers: + k:{"name":"database"}: + .: {} + f:command: {} + f:env: + k:{"name":"KRB5_CONFIG"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"KRB5RCACHEDIR"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"LD_PRELOAD"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"NSS_WRAPPER_GROUP"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"NSS_WRAPPER_PASSWD"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PATRONI_KUBERNETES_POD_IP"}: + .: {} + f:name: {} + f:valueFrom: + f:fieldRef: {} + k:{"name":"PATRONI_KUBERNETES_PORTS"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PATRONI_NAME"}: + .: {} + f:name: {} + f:valueFrom: + f:fieldRef: {} + k:{"name":"PATRONI_POSTGRESQL_CONFIG_DIR"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PATRONI_POSTGRESQL_CONNECT_ADDRESS"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PATRONI_POSTGRESQL_DATA_DIR"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PATRONI_POSTGRESQL_LISTEN"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PATRONI_RESTAPI_CONNECT_ADDRESS"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PATRONI_RESTAPI_LISTEN"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PATRONICTL_CONFIG_FILE"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PGDATA"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PGHOST"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PGPORT"}: + .: {} + f:name: {} + f:value: {} + f:image: {} + f:imagePullPolicy: {} + f:livenessProbe: + f:failureThreshold: {} + f:httpGet: + f:path: {} + f:port: {} + f:scheme: {} + f:initialDelaySeconds: {} + f:periodSeconds: {} + f:successThreshold: {} + f:timeoutSeconds: {} + f:name: {} + f:ports: + k:{"containerPort":5432,"protocol":"TCP"}: + .: {} + f:containerPort: {} + f:name: {} + f:protocol: {} + f:readinessProbe: + f:failureThreshold: {} + f:httpGet: + f:path: {} + f:port: {} + f:scheme: {} + f:initialDelaySeconds: {} + f:periodSeconds: {} + f:successThreshold: {} + f:timeoutSeconds: {} + f:resources: {} + f:securityContext: + f:allowPrivilegeEscalation: {} + f:capabilities: + f:drop: {} + f:privileged: {} + f:readOnlyRootFilesystem: {} + f:runAsNonRoot: {} + f:volumeMounts: + k:{"mountPath":"/dev/shm"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"mountPath":"/etc/database-containerinfo"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/etc/patroni"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/etc/pgbackrest/conf.d"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/pgconf/tls"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/pgdata"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"mountPath":"/tmp"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"name":"pgbackrest"}: + .: {} + f:command: {} + f:env: + k:{"name":"LD_PRELOAD"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"NSS_WRAPPER_GROUP"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"NSS_WRAPPER_PASSWD"}: + .: {} + f:name: {} + f:value: {} + f:image: {} + f:imagePullPolicy: {} + f:livenessProbe: + f:exec: + f:command: {} + f:name: {} + f:resources: {} + f:securityContext: + f:allowPrivilegeEscalation: {} + f:capabilities: + f:drop: {} + f:privileged: {} + f:readOnlyRootFilesystem: {} + f:runAsNonRoot: {} + f:volumeMounts: + k:{"mountPath":"/etc/pgbackrest/conf.d"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/etc/pgbackrest/server"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/pgdata"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"mountPath":"/tmp"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"name":"pgbackrest-config"}: + .: {} + f:command: {} + f:image: {} + f:imagePullPolicy: {} + f:name: {} + f:resources: {} + f:securityContext: + f:allowPrivilegeEscalation: {} + f:capabilities: + f:drop: {} + f:privileged: {} + f:readOnlyRootFilesystem: {} + f:runAsNonRoot: {} + f:volumeMounts: + k:{"mountPath":"/etc/pgbackrest/conf.d"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/etc/pgbackrest/server"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/tmp"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"name":"replication-cert-copy"}: + .: {} + f:command: {} + f:image: {} + f:imagePullPolicy: {} + f:name: {} + f:resources: {} + f:securityContext: + f:allowPrivilegeEscalation: {} + f:capabilities: + f:drop: {} + f:privileged: {} + f:readOnlyRootFilesystem: {} + f:runAsNonRoot: {} + f:volumeMounts: + k:{"mountPath":"/pgconf/tls"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/tmp"}: + .: {} + f:mountPath: {} + f:name: {} + f:enableServiceLinks: {} + f:initContainers: + k:{"name":"nss-wrapper-init"}: + .: {} + f:command: {} + f:image: {} + f:imagePullPolicy: {} + f:name: {} + f:resources: {} + f:securityContext: + f:allowPrivilegeEscalation: {} + f:capabilities: + f:drop: {} + f:privileged: {} + f:readOnlyRootFilesystem: {} + f:runAsNonRoot: {} + f:volumeMounts: + k:{"mountPath":"/tmp"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"name":"postgres-startup"}: + .: {} + f:command: {} + f:env: + k:{"name":"KRB5_CONFIG"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"KRB5RCACHEDIR"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PGDATA"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PGHOST"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"PGPORT"}: + .: {} + f:name: {} + f:value: {} + f:image: {} + f:imagePullPolicy: {} + f:name: {} + f:resources: {} + f:securityContext: + f:allowPrivilegeEscalation: {} + f:capabilities: + f:drop: {} + f:privileged: {} + f:readOnlyRootFilesystem: {} + f:runAsNonRoot: {} + f:volumeMounts: + k:{"mountPath":"/pgconf/tls"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/pgdata"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"mountPath":"/tmp"}: + .: {} + f:mountPath: {} + f:name: {} + f:restartPolicy: {} + f:securityContext: + f:fsGroup: {} + f:fsGroupChangePolicy: {} + f:serviceAccountName: {} + f:shareProcessNamespace: {} + f:topologySpreadConstraints: + k:{"topologyKey":"kubernetes.io/hostname","whenUnsatisfiable":"ScheduleAnyway"}: + .: {} + f:labelSelector: {} + f:maxSkew: {} + f:topologyKey: {} + f:whenUnsatisfiable: {} + k:{"topologyKey":"topology.kubernetes.io/zone","whenUnsatisfiable":"ScheduleAnyway"}: + .: {} + f:labelSelector: {} + f:maxSkew: {} + f:topologyKey: {} + f:whenUnsatisfiable: {} + f:volumes: + k:{"name":"cert-volume"}: + .: {} + f:name: {} + f:projected: + f:defaultMode: {} + f:sources: {} + k:{"name":"database-containerinfo"}: + .: {} + f:downwardAPI: + f:items: {} + f:name: {} + k:{"name":"dshm"}: + .: {} + f:emptyDir: + f:medium: {} + f:name: {} + k:{"name":"patroni-config"}: + .: {} + f:name: {} + f:projected: + f:sources: {} + k:{"name":"pgbackrest-config"}: + .: {} + f:name: {} + f:projected: + f:sources: {} + k:{"name":"pgbackrest-server"}: + .: {} + f:name: {} + f:projected: + f:sources: {} + k:{"name":"postgres-data"}: + .: {} + f:name: {} + f:persistentVolumeClaim: + f:claimName: {} + k:{"name":"tmp"}: + .: {} + f:emptyDir: + f:sizeLimit: {} + f:name: {} + f:updateStrategy: + f:type: {} + manager: postgrescluster-controller + operation: Apply + time: "2024-04-02T12:56:12Z" + - apiVersion: apps/v1 + fieldsType: FieldsV1 + fieldsV1: + f:status: + f:availableReplicas: {} + f:collisionCount: {} + f:currentReplicas: {} + f:currentRevision: {} + f:observedGeneration: {} + f:readyReplicas: {} + f:replicas: {} + f:updateRevision: {} + manager: kube-controller-manager + operation: Update + subresource: status + time: "2024-04-02T12:56:12Z" + name: upgrade-minor-instance1-vbvb namespace: kuttl-test-coherent-ray ownerReferences: - apiVersion: postgres-operator.crunchydata.com/v1beta1 @@ -17,24 +464,594 @@ controller: true kind: PostgresCluster name: upgrade-minor + uid: a26533cc-4ab2-4553-8c81-a794f71f0b98 spec: + podManagementPolicy: OrderedReady + replicas: 1 + revisionHistoryLimit: 0 + selector: + matchLabels: + postgres-operator.crunchydata.com/cluster: upgrade-minor + postgres-operator.crunchydata.com/instance: upgrade-minor-instance1-vbvb + postgres-operator.crunchydata.com/instance-set: instance1 + serviceName: upgrade-minor-pods template: metadata: + creationTimestamp: null labels: app.kubernetes.io/component: pg app.kubernetes.io/instance: upgrade-minor app.kubernetes.io/managed-by: percona-postgresql-operator app.kubernetes.io/name: percona-postgresql app.kubernetes.io/part-of: percona-postgresql + pgv2.percona.com/version: 2.4.0 postgres-operator.crunchydata.com/cluster: upgrade-minor postgres-operator.crunchydata.com/data: postgres + postgres-operator.crunchydata.com/instance: upgrade-minor-instance1-vbvb postgres-operator.crunchydata.com/instance-set: instance1 postgres-operator.crunchydata.com/patroni: upgrade-minor-ha + spec: + affinity: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchLabels: + postgres-operator.crunchydata.com/data: postgres + topologyKey: kubernetes.io/hostname + weight: 1 + containers: + - command: + - patroni + - /etc/patroni + env: + - name: PGDATA + value: /pgdata/pg16 + - name: PGHOST + value: /tmp/postgres + - name: PGPORT + value: "5432" + - name: KRB5_CONFIG + value: /etc/postgres/krb5.conf + - name: KRB5RCACHEDIR + value: /tmp + - name: PATRONI_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.name + - name: PATRONI_KUBERNETES_POD_IP + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: status.podIP + - name: PATRONI_KUBERNETES_PORTS + value: | + - name: postgres + port: 5432 + protocol: TCP + - name: PATRONI_POSTGRESQL_CONNECT_ADDRESS + value: $(PATRONI_NAME).upgrade-minor-pods:5432 + - name: PATRONI_POSTGRESQL_LISTEN + value: '*:5432' + - name: PATRONI_POSTGRESQL_CONFIG_DIR + value: /pgdata/pg16 + - name: PATRONI_POSTGRESQL_DATA_DIR + value: /pgdata/pg16 + - name: PATRONI_RESTAPI_CONNECT_ADDRESS + value: $(PATRONI_NAME).upgrade-minor-pods:8008 + - name: PATRONI_RESTAPI_LISTEN + value: '*:8008' + - name: PATRONICTL_CONFIG_FILE + value: /etc/patroni + - name: LD_PRELOAD + value: /usr/lib64/libnss_wrapper.so + - name: NSS_WRAPPER_PASSWD + value: /tmp/nss_wrapper/postgres/passwd + - name: NSS_WRAPPER_GROUP + value: /tmp/nss_wrapper/postgres/group + image: perconalab/percona-postgresql-operator:main-ppg16-postgres + imagePullPolicy: Always + livenessProbe: + failureThreshold: 3 + httpGet: + path: /liveness + port: 8008 + scheme: HTTPS + initialDelaySeconds: 3 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + name: database + ports: + - containerPort: 5432 + name: postgres + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /readiness + port: 8008 + scheme: HTTPS + initialDelaySeconds: 3 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + resources: {} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /pgconf/tls + name: cert-volume + readOnly: true + - mountPath: /pgdata + name: postgres-data + - mountPath: /etc/database-containerinfo + name: database-containerinfo + readOnly: true + - mountPath: /etc/pgbackrest/conf.d + name: pgbackrest-config + readOnly: true + - mountPath: /etc/patroni + name: patroni-config + readOnly: true + - mountPath: /tmp + name: tmp + - mountPath: /dev/shm + name: dshm + - command: + - bash + - -ceu + - -- + - |- + monitor() { + declare -r directory="/pgconf/tls" + exec {fd}<> <(:) + while read -r -t 5 -u "${fd}" || true; do + if [ "${directory}" -nt "/proc/self/fd/${fd}" ] && + install -D --mode=0600 -t "/tmp/replication" "${directory}"/{replication/tls.crt,replication/tls.key,replication/ca.crt} && + pkill -HUP --exact --parent=1 postgres + then + exec {fd}>&- && exec {fd}<> <(:) + stat --format='Loaded certificates dated %!y(MISSING)' "${directory}" + fi + done + }; export -f monitor; exec -a "$0" bash -ceu monitor + - replication-cert-copy + image: perconalab/percona-postgresql-operator:main-ppg16-postgres + imagePullPolicy: Always + name: replication-cert-copy + resources: {} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /pgconf/tls + name: cert-volume + readOnly: true + - mountPath: /tmp + name: tmp + - command: + - pgbackrest + - server + env: + - name: LD_PRELOAD + value: /usr/lib64/libnss_wrapper.so + - name: NSS_WRAPPER_PASSWD + value: /tmp/nss_wrapper/postgres/passwd + - name: NSS_WRAPPER_GROUP + value: /tmp/nss_wrapper/postgres/group + image: perconalab/percona-postgresql-operator:main-ppg16-pgbackrest + imagePullPolicy: Always + livenessProbe: + exec: + command: + - pgbackrest + - server-ping + failureThreshold: 3 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + name: pgbackrest + resources: {} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /etc/pgbackrest/server + name: pgbackrest-server + readOnly: true + - mountPath: /pgdata + name: postgres-data + - mountPath: /etc/pgbackrest/conf.d + name: pgbackrest-config + readOnly: true + - mountPath: /tmp + name: tmp + - command: + - bash + - -ceu + - -- + - |- + monitor() { + exec {fd}<> <(:) + until read -r -t 5 -u "${fd}"; do + if + [ "${filename}" -nt "/proc/self/fd/${fd}" ] && + pkill -HUP --exact --parent=0 pgbackrest + then + exec {fd}>&- && exec {fd}<> <(:) + stat --dereference --format='Loaded configuration dated %!y(MISSING)' "${filename}" + elif + { [ "${directory}" -nt "/proc/self/fd/${fd}" ] || + [ "${authority}" -nt "/proc/self/fd/${fd}" ] + } && + pkill -HUP --exact --parent=0 pgbackrest + then + exec {fd}>&- && exec {fd}<> <(:) + stat --format='Loaded certificates dated %!y(MISSING)' "${directory}" + fi + done + }; export directory="$1" authority="$2" filename="$3"; export -f monitor; exec -a "$0" bash -ceu monitor + - pgbackrest-config + - /etc/pgbackrest/server + - /etc/pgbackrest/conf.d/~postgres-operator/tls-ca.crt + - /etc/pgbackrest/conf.d/~postgres-operator_server.conf + image: perconalab/percona-postgresql-operator:main-ppg16-pgbackrest + imagePullPolicy: Always + name: pgbackrest-config + resources: {} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /etc/pgbackrest/server + name: pgbackrest-server + readOnly: true + - mountPath: /etc/pgbackrest/conf.d + name: pgbackrest-config + readOnly: true + - mountPath: /tmp + name: tmp + dnsPolicy: ClusterFirst + enableServiceLinks: false + initContainers: + - command: + - bash + - -ceu + - -- + - |- + declare -r expected_major_version="$1" pgwal_directory="$2" pgbrLog_directory="$3" + permissions() { while [[ -n "$1" ]]; do set "${1%!/(MISSING)*}" "$@"; done; shift; stat -Lc '%!A(MISSING) %!u(MISSING) %!g(MISSING) %!n(MISSING)' "$@"; } + halt() { local rc=$?; >&2 echo "$@"; exit "${rc/#0/1}"; } + results() { printf '::postgres-operator: %!s(MISSING)::%!s(MISSING)\n' "$@"; } + recreate() ( + local tmp; tmp=$(mktemp -d -p "${1%!/(MISSING)*}"); GLOBIGNORE='.:..'; set -x + chmod "$2" "${tmp}"; mv "$1"/* "${tmp}"; rmdir "$1"; mv "${tmp}" "$1" + ) + safelink() ( + local desired="$1" name="$2" current + current=$(realpath "${name}") + if [ "${current}" = "${desired}" ]; then return; fi + set -x; mv --no-target-directory "${current}" "${desired}" + ln --no-dereference --force --symbolic "${desired}" "${name}" + ) + echo Initializing ... + results 'uid' "$(id -u)" 'gid' "$(id -G)" + results 'postgres path' "$(command -v postgres)" + results 'postgres version' "${postgres_version:=$(postgres --version)}" + [[ "${postgres_version}" =~ ") ${expected_major_version}"($|[^0-9]) ]] || + halt Expected PostgreSQL version "${expected_major_version}" + results 'config directory' "${PGDATA:?}" + postgres_data_directory=$([ -d "${PGDATA}" ] && postgres -C data_directory || echo "${PGDATA}") + results 'data directory' "${postgres_data_directory}" + [[ "${postgres_data_directory}" == "${PGDATA}" ]] || + halt Expected matching config and data directories + bootstrap_dir="${postgres_data_directory}_bootstrap" + [ -d "${bootstrap_dir}" ] && results 'bootstrap directory' "${bootstrap_dir}" + [ -d "${bootstrap_dir}" ] && postgres_data_directory="${bootstrap_dir}" + if [[ ! -e "${postgres_data_directory}" || -O "${postgres_data_directory}" ]]; then + install --directory --mode=0700 "${postgres_data_directory}" + elif [[ -w "${postgres_data_directory}" && -g "${postgres_data_directory}" ]]; then + recreate "${postgres_data_directory}" '0700' + else (halt Permissions!); fi || + halt "$(permissions "${postgres_data_directory}" ||:)" + results 'pgBackRest log directory' "${pgbrLog_directory}" + install --directory --mode=0775 "${pgbrLog_directory}" || + halt "$(permissions "${pgbrLog_directory}" ||:)" + install -D --mode=0600 -t "/tmp/replication" "/pgconf/tls/replication"/{tls.crt,tls.key,ca.crt} + + [ -f "${postgres_data_directory}/PG_VERSION" ] || exit 0 + results 'data version' "${postgres_data_version:=$(< "${postgres_data_directory}/PG_VERSION")}" + [[ "${postgres_data_version}" == "${expected_major_version}" ]] || + halt Expected PostgreSQL data version "${expected_major_version}" + [[ ! -f "${postgres_data_directory}/postgresql.conf" ]] && + touch "${postgres_data_directory}/postgresql.conf" + safelink "${pgwal_directory}" "${postgres_data_directory}/pg_wal" + results 'wal directory' "$(realpath "${postgres_data_directory}/pg_wal")" + rm -f "${postgres_data_directory}/recovery.signal" + - startup + - "16" + - /pgdata/pg16_wal + - /pgdata/pgbackrest/log + env: + - name: PGDATA + value: /pgdata/pg16 + - name: PGHOST + value: /tmp/postgres + - name: PGPORT + value: "5432" + - name: KRB5_CONFIG + value: /etc/postgres/krb5.conf + - name: KRB5RCACHEDIR + value: /tmp + image: perconalab/percona-postgresql-operator:main-ppg16-postgres + imagePullPolicy: Always + name: postgres-startup + resources: {} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /pgconf/tls + name: cert-volume + readOnly: true + - mountPath: /pgdata + name: postgres-data + - mountPath: /tmp + name: tmp + - command: + - bash + - -c + - "export NSS_WRAPPER_SUBDIR=postgres CRUNCHY_NSS_USERNAME=postgres CRUNCHY_NSS_USER_DESC=\"postgres\" + \n# Define nss_wrapper directory and passwd & 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' + >> \"${passwd_tmp}\"\n envsubst < \"${passwd_tmp}\" > \"${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' + >> \"${group_tmp}\"\n envsubst < \"${group_tmp}\" > \"${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 + & 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" + image: perconalab/percona-postgresql-operator:main-ppg16-postgres + imagePullPolicy: Always + name: nss-wrapper-init + resources: {} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /tmp + name: tmp + restartPolicy: Always + schedulerName: default-scheduler + securityContext: + fsGroup: 26 + fsGroupChangePolicy: OnRootMismatch + serviceAccount: upgrade-minor-instance + serviceAccountName: upgrade-minor-instance + shareProcessNamespace: true + terminationGracePeriodSeconds: 30 + topologySpreadConstraints: + - labelSelector: + matchExpressions: + - key: postgres-operator.crunchydata.com/data + operator: In + values: + - postgres + - pgbackrest + matchLabels: + postgres-operator.crunchydata.com/cluster: upgrade-minor + maxSkew: 1 + topologyKey: kubernetes.io/hostname + whenUnsatisfiable: ScheduleAnyway + - labelSelector: + matchExpressions: + - key: postgres-operator.crunchydata.com/data + operator: In + values: + - postgres + - pgbackrest + matchLabels: + postgres-operator.crunchydata.com/cluster: upgrade-minor + maxSkew: 1 + topologyKey: topology.kubernetes.io/zone + whenUnsatisfiable: ScheduleAnyway + volumes: + - name: cert-volume + projected: + defaultMode: 384 + sources: + - secret: + items: + - key: tls.crt + path: tls.crt + - key: tls.key + path: tls.key + - key: ca.crt + path: ca.crt + name: upgrade-minor-cluster-cert + - secret: + items: + - key: tls.crt + path: replication/tls.crt + - key: tls.key + path: replication/tls.key + - key: ca.crt + path: replication/ca.crt + name: upgrade-minor-replication-cert + - name: postgres-data + persistentVolumeClaim: + claimName: upgrade-minor-instance1-vbvb-pgdata + - downwardAPI: + defaultMode: 420 + items: + - path: cpu_limit + resourceFieldRef: + containerName: database + divisor: 1m + resource: limits.cpu + - path: cpu_request + resourceFieldRef: + containerName: database + divisor: 1m + resource: requests.cpu + - path: mem_limit + resourceFieldRef: + containerName: database + divisor: 1Mi + resource: limits.memory + - path: mem_request + resourceFieldRef: + containerName: database + divisor: 1Mi + resource: requests.memory + - fieldRef: + apiVersion: v1 + fieldPath: metadata.labels + path: labels + - fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations + path: annotations + name: database-containerinfo + - name: pgbackrest-server + projected: + defaultMode: 420 + sources: + - secret: + items: + - key: pgbackrest-server.crt + path: server-tls.crt + - key: pgbackrest-server.key + mode: 384 + path: server-tls.key + name: upgrade-minor-instance1-vbvb-certs + - name: pgbackrest-config + projected: + defaultMode: 420 + sources: + - configMap: + items: + - key: pgbackrest_instance.conf + path: pgbackrest_instance.conf + - key: config-hash + path: config-hash + - key: pgbackrest-server.conf + path: ~postgres-operator_server.conf + name: upgrade-minor-pgbackrest-config + - secret: + items: + - key: pgbackrest.ca-roots + path: ~postgres-operator/tls-ca.crt + - key: pgbackrest-client.crt + path: ~postgres-operator/client-tls.crt + - key: pgbackrest-client.key + mode: 384 + path: ~postgres-operator/client-tls.key + name: upgrade-minor-pgbackrest + optional: true + - name: patroni-config + projected: + defaultMode: 420 + sources: + - configMap: + items: + - key: patroni.yaml + path: ~postgres-operator_cluster.yaml + name: upgrade-minor-config + - configMap: + items: + - key: patroni.yaml + path: ~postgres-operator_instance.yaml + name: upgrade-minor-instance1-vbvb-config + - secret: + items: + - key: patroni.ca-roots + path: ~postgres-operator/patroni.ca-roots + - key: patroni.crt-combined + path: ~postgres-operator/patroni.crt+key + name: upgrade-minor-instance1-vbvb-certs + - emptyDir: + sizeLimit: 1536Mi + name: tmp + - emptyDir: + medium: Memory + name: dshm + updateStrategy: + type: OnDelete status: availableReplicas: 1 collisionCount: 0 + currentReplicas: 1 + currentRevision: upgrade-minor-instance1-vbvb-5cc64b67c4 observedGeneration: 2 readyReplicas: 1 replicas: 1 - updatedReplicas: 1 + updateRevision: upgrade-minor-instance1-vbvb-56449f9544 case.go:366: resource StatefulSet:kuttl-test-coherent-ray/: .status.updatedReplicas: key is missing from map case.go:366: --- StatefulSet:kuttl-test-coherent-ray/ +++ StatefulSet:kuttl-test-coherent-ray/upgrade-minor-repo-host @@ -2,14 +2,237 @@ kind: StatefulSet metadata: labels: - app.kubernetes.io/component: pg app.kubernetes.io/instance: upgrade-minor app.kubernetes.io/managed-by: percona-postgresql-operator app.kubernetes.io/name: percona-postgresql app.kubernetes.io/part-of: percona-postgresql + pgv2.percona.com/version: 2.4.0 postgres-operator.crunchydata.com/cluster: upgrade-minor - postgres-operator.crunchydata.com/data: postgres - postgres-operator.crunchydata.com/instance-set: instance1 + postgres-operator.crunchydata.com/data: pgbackrest + postgres-operator.crunchydata.com/pgbackrest: "" + postgres-operator.crunchydata.com/pgbackrest-dedicated: "" + managedFields: + - apiVersion: apps/v1 + fieldsType: FieldsV1 + fieldsV1: + f:metadata: + f:labels: + f:app.kubernetes.io/instance: {} + f:app.kubernetes.io/managed-by: {} + f:app.kubernetes.io/name: {} + f:app.kubernetes.io/part-of: {} + f:pgv2.percona.com/version: {} + f:postgres-operator.crunchydata.com/cluster: {} + f:postgres-operator.crunchydata.com/data: {} + f:postgres-operator.crunchydata.com/pgbackrest: {} + f:postgres-operator.crunchydata.com/pgbackrest-dedicated: {} + f:ownerReferences: + k:{"uid":"a26533cc-4ab2-4553-8c81-a794f71f0b98"}: {} + f:spec: + f:replicas: {} + f:selector: {} + f:serviceName: {} + f:template: + f:metadata: + f:labels: + f:app.kubernetes.io/instance: {} + f:app.kubernetes.io/managed-by: {} + f:app.kubernetes.io/name: {} + f:app.kubernetes.io/part-of: {} + f:pgv2.percona.com/version: {} + f:postgres-operator.crunchydata.com/cluster: {} + f:postgres-operator.crunchydata.com/data: {} + f:postgres-operator.crunchydata.com/pgbackrest: {} + f:postgres-operator.crunchydata.com/pgbackrest-dedicated: {} + f:spec: + f:affinity: + f:podAntiAffinity: + f:preferredDuringSchedulingIgnoredDuringExecution: {} + f:automountServiceAccountToken: {} + f:containers: + k:{"name":"pgbackrest"}: + .: {} + f:command: {} + f:env: + k:{"name":"LD_PRELOAD"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"NSS_WRAPPER_GROUP"}: + .: {} + f:name: {} + f:value: {} + k:{"name":"NSS_WRAPPER_PASSWD"}: + .: {} + f:name: {} + f:value: {} + f:image: {} + f:imagePullPolicy: {} + f:livenessProbe: + f:exec: + f:command: {} + f:name: {} + f:resources: {} + f:securityContext: + f:allowPrivilegeEscalation: {} + f:capabilities: + f:drop: {} + f:privileged: {} + f:readOnlyRootFilesystem: {} + f:runAsNonRoot: {} + f:volumeMounts: + k:{"mountPath":"/etc/pgbackrest/conf.d"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/etc/pgbackrest/server"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/pgbackrest/repo1"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"mountPath":"/tmp"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"name":"pgbackrest-config"}: + .: {} + f:command: {} + f:image: {} + f:imagePullPolicy: {} + f:name: {} + f:resources: {} + f:securityContext: + f:allowPrivilegeEscalation: {} + f:capabilities: + f:drop: {} + f:privileged: {} + f:readOnlyRootFilesystem: {} + f:runAsNonRoot: {} + f:volumeMounts: + k:{"mountPath":"/etc/pgbackrest/conf.d"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/etc/pgbackrest/server"}: + .: {} + f:mountPath: {} + f:name: {} + f:readOnly: {} + k:{"mountPath":"/tmp"}: + .: {} + f:mountPath: {} + f:name: {} + f:enableServiceLinks: {} + f:initContainers: + k:{"name":"nss-wrapper-init"}: + .: {} + f:command: {} + f:image: {} + f:imagePullPolicy: {} + f:name: {} + f:resources: {} + f:securityContext: + f:allowPrivilegeEscalation: {} + f:capabilities: + f:drop: {} + f:privileged: {} + f:readOnlyRootFilesystem: {} + f:runAsNonRoot: {} + f:volumeMounts: + k:{"mountPath":"/tmp"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"name":"pgbackrest-log-dir"}: + .: {} + f:command: {} + f:image: {} + f:imagePullPolicy: {} + f:name: {} + f:resources: {} + f:securityContext: + f:allowPrivilegeEscalation: {} + f:capabilities: + f:drop: {} + f:privileged: {} + f:readOnlyRootFilesystem: {} + f:runAsNonRoot: {} + f:volumeMounts: + k:{"mountPath":"/pgbackrest/repo1"}: + .: {} + f:mountPath: {} + f:name: {} + k:{"mountPath":"/tmp"}: + .: {} + f:mountPath: {} + f:name: {} + f:restartPolicy: {} + f:securityContext: + f:fsGroup: {} + f:fsGroupChangePolicy: {} + f:serviceAccountName: {} + f:shareProcessNamespace: {} + f:topologySpreadConstraints: + k:{"topologyKey":"kubernetes.io/hostname","whenUnsatisfiable":"ScheduleAnyway"}: + .: {} + f:labelSelector: {} + f:maxSkew: {} + f:topologyKey: {} + f:whenUnsatisfiable: {} + k:{"topologyKey":"topology.kubernetes.io/zone","whenUnsatisfiable":"ScheduleAnyway"}: + .: {} + f:labelSelector: {} + f:maxSkew: {} + f:topologyKey: {} + f:whenUnsatisfiable: {} + f:volumes: + k:{"name":"pgbackrest-config"}: + .: {} + f:name: {} + f:projected: + f:sources: {} + k:{"name":"pgbackrest-server"}: + .: {} + f:name: {} + f:projected: + f:sources: {} + k:{"name":"repo1"}: + .: {} + f:name: {} + f:persistentVolumeClaim: + f:claimName: {} + k:{"name":"tmp"}: + .: {} + f:emptyDir: + f:sizeLimit: {} + f:name: {} + manager: postgrescluster-controller + operation: Apply + time: "2024-04-02T12:56:12Z" + - apiVersion: apps/v1 + fieldsType: FieldsV1 + fieldsV1: + f:status: + f:availableReplicas: {} + f:collisionCount: {} + f:currentReplicas: {} + f:currentRevision: {} + f:observedGeneration: {} + f:readyReplicas: {} + f:replicas: {} + f:updateRevision: {} + f:updatedReplicas: {} + manager: kube-controller-manager + operation: Update + subresource: status + time: "2024-04-02T12:56:40Z" + name: upgrade-minor-repo-host namespace: kuttl-test-coherent-ray ownerReferences: - apiVersion: postgres-operator.crunchydata.com/v1beta1 @@ -17,24 +240,304 @@ controller: true kind: PostgresCluster name: upgrade-minor + uid: a26533cc-4ab2-4553-8c81-a794f71f0b98 spec: + podManagementPolicy: OrderedReady + replicas: 1 + revisionHistoryLimit: 10 + selector: + matchLabels: + postgres-operator.crunchydata.com/cluster: upgrade-minor + postgres-operator.crunchydata.com/pgbackrest: "" + postgres-operator.crunchydata.com/pgbackrest-dedicated: "" + serviceName: upgrade-minor-pods template: metadata: + creationTimestamp: null labels: - app.kubernetes.io/component: pg app.kubernetes.io/instance: upgrade-minor app.kubernetes.io/managed-by: percona-postgresql-operator app.kubernetes.io/name: percona-postgresql app.kubernetes.io/part-of: percona-postgresql + pgv2.percona.com/version: 2.4.0 postgres-operator.crunchydata.com/cluster: upgrade-minor - postgres-operator.crunchydata.com/data: postgres - postgres-operator.crunchydata.com/instance-set: instance1 - postgres-operator.crunchydata.com/patroni: upgrade-minor-ha + postgres-operator.crunchydata.com/data: pgbackrest + postgres-operator.crunchydata.com/pgbackrest: "" + postgres-operator.crunchydata.com/pgbackrest-dedicated: "" + spec: + affinity: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchLabels: + postgres-operator.crunchydata.com/data: pgbackrest + topologyKey: kubernetes.io/hostname + weight: 1 + automountServiceAccountToken: false + containers: + - command: + - pgbackrest + - server + env: + - name: LD_PRELOAD + value: /usr/lib64/libnss_wrapper.so + - name: NSS_WRAPPER_PASSWD + value: /tmp/nss_wrapper/postgres/passwd + - name: NSS_WRAPPER_GROUP + value: /tmp/nss_wrapper/postgres/group + image: perconalab/percona-postgresql-operator:main-ppg16-pgbackrest + imagePullPolicy: Always + livenessProbe: + exec: + command: + - pgbackrest + - server-ping + failureThreshold: 3 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + name: pgbackrest + resources: {} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /etc/pgbackrest/server + name: pgbackrest-server + readOnly: true + - mountPath: /pgbackrest/repo1 + name: repo1 + - mountPath: /etc/pgbackrest/conf.d + name: pgbackrest-config + readOnly: true + - mountPath: /tmp + name: tmp + - command: + - bash + - -ceu + - -- + - |- + monitor() { + exec {fd}<> <(:) + until read -r -t 5 -u "${fd}"; do + if + [ "${filename}" -nt "/proc/self/fd/${fd}" ] && + pkill -HUP --exact --parent=0 pgbackrest + then + exec {fd}>&- && exec {fd}<> <(:) + stat --dereference --format='Loaded configuration dated %!y(MISSING)' "${filename}" + elif + { [ "${directory}" -nt "/proc/self/fd/${fd}" ] || + [ "${authority}" -nt "/proc/self/fd/${fd}" ] + } && + pkill -HUP --exact --parent=0 pgbackrest + then + exec {fd}>&- && exec {fd}<> <(:) + stat --format='Loaded certificates dated %!y(MISSING)' "${directory}" + fi + done + }; export directory="$1" authority="$2" filename="$3"; export -f monitor; exec -a "$0" bash -ceu monitor + - pgbackrest-config + - /etc/pgbackrest/server + - /etc/pgbackrest/conf.d/~postgres-operator/tls-ca.crt + - /etc/pgbackrest/conf.d/~postgres-operator_server.conf + image: perconalab/percona-postgresql-operator:main-ppg16-pgbackrest + imagePullPolicy: Always + name: pgbackrest-config + resources: {} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /etc/pgbackrest/server + name: pgbackrest-server + readOnly: true + - mountPath: /etc/pgbackrest/conf.d + name: pgbackrest-config + readOnly: true + - mountPath: /tmp + name: tmp + dnsPolicy: ClusterFirst + enableServiceLinks: false + initContainers: + - command: + - bash + - -c + - mkdir -p /pgbackrest/repo1/log + image: perconalab/percona-postgresql-operator:main-ppg16-pgbackrest + imagePullPolicy: Always + name: pgbackrest-log-dir + resources: {} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /pgbackrest/repo1 + name: repo1 + - mountPath: /tmp + name: tmp + - command: + - bash + - -c + - "export NSS_WRAPPER_SUBDIR=postgres CRUNCHY_NSS_USERNAME=postgres CRUNCHY_NSS_USER_DESC=\"postgres\" + \n# Define nss_wrapper directory and passwd & 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' + >> \"${passwd_tmp}\"\n envsubst < \"${passwd_tmp}\" > \"${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' + >> \"${group_tmp}\"\n envsubst < \"${group_tmp}\" > \"${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 + & 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" + image: perconalab/percona-postgresql-operator:main-ppg16-pgbackrest + imagePullPolicy: Always + name: nss-wrapper-init + resources: {} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /tmp + name: tmp + restartPolicy: Always + schedulerName: default-scheduler + securityContext: + fsGroup: 26 + fsGroupChangePolicy: OnRootMismatch + serviceAccount: upgrade-minor-pgbackrest + serviceAccountName: upgrade-minor-pgbackrest + shareProcessNamespace: true + terminationGracePeriodSeconds: 30 + topologySpreadConstraints: + - labelSelector: + matchExpressions: + - key: postgres-operator.crunchydata.com/data + operator: In + values: + - postgres + - pgbackrest + matchLabels: + postgres-operator.crunchydata.com/cluster: upgrade-minor + maxSkew: 1 + topologyKey: kubernetes.io/hostname + whenUnsatisfiable: ScheduleAnyway + - labelSelector: + matchExpressions: + - key: postgres-operator.crunchydata.com/data + operator: In + values: + - postgres + - pgbackrest + matchLabels: + postgres-operator.crunchydata.com/cluster: upgrade-minor + maxSkew: 1 + topologyKey: topology.kubernetes.io/zone + whenUnsatisfiable: ScheduleAnyway + volumes: + - name: pgbackrest-server + projected: + defaultMode: 420 + sources: + - secret: + items: + - key: pgbackrest-repo-host.crt + path: server-tls.crt + - key: pgbackrest-repo-host.key + mode: 384 + path: server-tls.key + name: upgrade-minor-pgbackrest + - name: repo1 + persistentVolumeClaim: + claimName: upgrade-minor-repo1 + - name: pgbackrest-config + projected: + defaultMode: 420 + sources: + - configMap: + items: + - key: pgbackrest_repo.conf + path: pgbackrest_repo.conf + - key: config-hash + path: config-hash + - key: pgbackrest-server.conf + path: ~postgres-operator_server.conf + name: upgrade-minor-pgbackrest-config + - secret: + items: + - key: pgbackrest.ca-roots + path: ~postgres-operator/tls-ca.crt + - key: pgbackrest-client.crt + path: ~postgres-operator/client-tls.crt + - key: pgbackrest-client.key + mode: 384 + path: ~postgres-operator/client-tls.key + name: upgrade-minor-pgbackrest + - emptyDir: + sizeLimit: 1536Mi + name: tmp + updateStrategy: + rollingUpdate: + partition: 0 + type: RollingUpdate status: availableReplicas: 1 collisionCount: 0 - observedGeneration: 2 + currentReplicas: 1 + currentRevision: upgrade-minor-repo-host-55bbcdf645 + observedGeneration: 3 readyReplicas: 1 replicas: 1 + updateRevision: upgrade-minor-repo-host-55bbcdf645 updatedReplicas: 1 case.go:366: resource StatefulSet:kuttl-test-coherent-ray/: .metadata.generation: value mismatch, expected: 2 != actual: 3 case.go:366: --- PostgresCluster:kuttl-test-coherent-ray/upgrade-minor +++ PostgresCluster:kuttl-test-coherent-ray/upgrade-minor @@ -5,6 +5,222 @@ - postgres-operator.crunchydata.com/finalizer labels: e2e: upgrade-minor + pgv2.percona.com/version: 2.4.0 + managedFields: + - apiVersion: postgres-operator.crunchydata.com/v1beta1 + fieldsType: FieldsV1 + fieldsV1: + f:metadata: + f:finalizers: + .: {} + v:"postgres-operator.crunchydata.com/finalizer": {} + manager: postgrescluster-controller + operation: Update + time: "2024-04-02T12:54:27Z" + - apiVersion: postgres-operator.crunchydata.com/v1beta1 + fieldsType: FieldsV1 + fieldsV1: + f:metadata: + f:labels: + .: {} + f:e2e: {} + f:pgv2.percona.com/version: {} + f:ownerReferences: + .: {} + k:{"uid":"74468f0b-f72d-4033-8e44-35f7d4938457"}: {} + f:spec: + .: {} + f:backups: + .: {} + f:pgbackrest: + .: {} + f:image: {} + f:manual: + .: {} + f:options: {} + f:repoName: {} + f:metadata: + .: {} + f:labels: + .: {} + f:pgv2.percona.com/version: {} + f:repoHost: + .: {} + f:affinity: + .: {} + f:podAntiAffinity: + .: {} + f:preferredDuringSchedulingIgnoredDuringExecution: {} + f:resources: {} + f:repos: + .: {} + k:{"name":"repo1"}: + .: {} + f:name: {} + f:volume: + .: {} + f:volumeClaimSpec: + .: {} + f:accessModes: {} + f:resources: + .: {} + f:requests: + .: {} + f:storage: {} + f:config: {} + f:extensions: + .: {} + f:pgAudit: {} + f:pgStatMonitor: {} + f:image: {} + f:imagePullPolicy: {} + f:instances: + .: {} + k:{"name":"instance1"}: + .: {} + f:affinity: + .: {} + f:podAntiAffinity: + .: {} + f:preferredDuringSchedulingIgnoredDuringExecution: {} + f:dataVolumeClaimSpec: + .: {} + f:accessModes: {} + f:resources: + .: {} + f:requests: + .: {} + f:storage: {} + f:metadata: + .: {} + f:labels: + .: {} + f:pgv2.percona.com/version: {} + f:name: {} + f:replicas: {} + f:resources: {} + f:openshift: {} + f:port: {} + f:postgresVersion: {} + f:proxy: + .: {} + f:pgBouncer: + .: {} + f:affinity: + .: {} + f:podAntiAffinity: + .: {} + f:preferredDuringSchedulingIgnoredDuringExecution: {} + f:config: {} + f:image: {} + f:metadata: + .: {} + f:labels: + .: {} + f:pgv2.percona.com/version: {} + f:port: {} + f:replicas: {} + f:resources: {} + f:users: + .: {} + k:{"name":"postgres"}: + .: {} + f:name: {} + f:password: + .: {} + f:type: {} + k:{"name":"upgrade-minor"}: + .: {} + f:name: {} + f:password: + .: {} + f:type: {} + manager: postgres-operator + operation: Update + time: "2024-04-02T12:56:10Z" + - apiVersion: postgres-operator.crunchydata.com/v1beta1 + fieldsType: FieldsV1 + fieldsV1: + f:status: + .: {} + f:conditions: + .: {} + k:{"type":"PGBackRestReplicaCreate"}: + .: {} + f:lastTransitionTime: {} + f:message: {} + f:observedGeneration: {} + f:reason: {} + f:status: {} + f:type: {} + k:{"type":"PGBackRestReplicaRepoReady"}: + .: {} + f:lastTransitionTime: {} + f:message: {} + f:observedGeneration: {} + f:reason: {} + f:status: {} + f:type: {} + k:{"type":"PGBackRestRepoHostReady"}: + .: {} + f:lastTransitionTime: {} + f:message: {} + f:observedGeneration: {} + f:reason: {} + f:status: {} + f:type: {} + k:{"type":"ProxyAvailable"}: + .: {} + f:lastTransitionTime: {} + f:message: {} + f:observedGeneration: {} + f:reason: {} + f:status: {} + f:type: {} + f:databaseRevision: {} + f:instances: + .: {} + k:{"name":"instance1"}: + .: {} + f:name: {} + f:readyReplicas: {} + f:replicas: {} + f:updatedReplicas: {} + f:monitoring: + .: {} + f:exporterConfiguration: {} + f:observedGeneration: {} + f:patroni: + .: {} + f:systemIdentifier: {} + f:pgbackrest: + .: {} + f:repoHost: + .: {} + f:apiVersion: {} + f:kind: {} + f:ready: {} + f:repos: + .: {} + k:{"name":"repo1"}: + .: {} + f:bound: {} + f:name: {} + f:replicaCreateBackupComplete: {} + f:stanzaCreated: {} + f:volume: {} + f:proxy: + .: {} + f:pgBouncer: + .: {} + f:postgresRevision: {} + f:readyReplicas: {} + f:replicas: {} + f:usersRevision: {} + manager: postgrescluster-controller + operation: Update + subresource: status + time: "2024-04-02T12:56:42Z" name: upgrade-minor namespace: kuttl-test-coherent-ray ownerReferences: @@ -13,13 +229,132 @@ controller: true kind: PerconaPGCluster name: upgrade-minor + uid: 74468f0b-f72d-4033-8e44-35f7d4938457 +spec: + backups: + pgbackrest: + image: perconalab/percona-postgresql-operator:main-ppg16-pgbackrest + manual: + options: + - --type=full + repoName: repo1 + metadata: + labels: + pgv2.percona.com/version: 2.4.0 + repoHost: + affinity: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchLabels: + postgres-operator.crunchydata.com/data: pgbackrest + topologyKey: kubernetes.io/hostname + weight: 1 + resources: {} + repos: + - name: repo1 + volume: + volumeClaimSpec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + config: {} + extensions: + pgAudit: true + pgStatMonitor: true + image: perconalab/percona-postgresql-operator:main-ppg16-postgres + imagePullPolicy: Always + instances: + - affinity: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchLabels: + postgres-operator.crunchydata.com/data: postgres + topologyKey: kubernetes.io/hostname + weight: 1 + dataVolumeClaimSpec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + metadata: + labels: + pgv2.percona.com/version: 2.4.0 + name: instance1 + replicas: 3 + resources: {} + openshift: false + port: 5432 + postgresVersion: 16 + proxy: + pgBouncer: + affinity: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchLabels: + postgres-operator.crunchydata.com/role: pgbouncer + topologyKey: kubernetes.io/hostname + weight: 1 + config: {} + image: perconalab/percona-postgresql-operator:main-ppg16-pgbouncer + metadata: + labels: + pgv2.percona.com/version: 2.4.0 + port: 5432 + replicas: 3 + resources: {} + users: + - name: postgres + password: + type: AlphaNumeric + - name: upgrade-minor + password: + type: AlphaNumeric status: + conditions: + - lastTransitionTime: "2024-04-02T12:56:41Z" + message: pgBackRest dedicated repository host is ready + observedGeneration: 2 + reason: RepoHostReady + status: "True" + type: PGBackRestRepoHostReady + - lastTransitionTime: "2024-04-02T12:54:55Z" + message: pgBackRest replica create repo is ready for backups + observedGeneration: 2 + reason: StanzaCreated + status: "True" + type: PGBackRestReplicaRepoReady + - lastTransitionTime: "2024-04-02T12:55:36Z" + message: pgBackRest replica creation is now possible + observedGeneration: 2 + reason: RepoBackupComplete + status: "True" + type: PGBackRestReplicaCreate + - lastTransitionTime: "2024-04-02T12:54:32Z" + message: Deployment has minimum availability. + observedGeneration: 2 + reason: MinimumReplicasAvailable + status: "True" + type: ProxyAvailable + databaseRevision: 58fb87f64d instances: - name: instance1 - readyReplicas: 3 + readyReplicas: 2 replicas: 3 - updatedReplicas: 3 + updatedReplicas: 1 + monitoring: + exporterConfiguration: 559c4c97d6 observedGeneration: 2 + patroni: + systemIdentifier: "7353252395936079956" pgbackrest: repoHost: apiVersion: apps/v1 @@ -30,8 +365,11 @@ name: repo1 replicaCreateBackupComplete: true stanzaCreated: true + volume: pvc-fe5520fa-ca28-4f3c-abf6-611128966b73 proxy: pgBouncer: + postgresRevision: df59f4c7d readyReplicas: 3 replicas: 3 + usersRevision: 578c9bf576 case.go:366: resource PostgresCluster:kuttl-test-coherent-ray/upgrade-minor: .status.instances.readyReplicas: value mismatch, expected: 3 != actual: 2 case.go:366: --- PerconaPGCluster:kuttl-test-coherent-ray/upgrade-minor +++ PerconaPGCluster:kuttl-test-coherent-ray/upgrade-minor @@ -1,18 +1,223 @@ apiVersion: pgv2.percona.com/v2 kind: PerconaPGCluster metadata: + annotations: + kubectl.kubernetes.io/last-applied-configuration: | + {"apiVersion":"pgv2.percona.com/v2","kind":"PerconaPGCluster","metadata":{"annotations":{},"labels":{"e2e":"upgrade-minor"},"name":"upgrade-minor","namespace":"kuttl-test-coherent-ray"},"spec":{"backups":{"pgbackrest":{"image":"perconalab/percona-postgresql-operator:main-ppg16-pgbackrest","manual":{"options":["--type=full"],"repoName":"repo1"},"repoHost":{"affinity":{"podAntiAffinity":{"preferredDuringSchedulingIgnoredDuringExecution":[{"podAffinityTerm":{"labelSelector":{"matchLabels":{"postgres-operator.crunchydata.com/data":"pgbackrest"}},"topologyKey":"kubernetes.io/hostname"},"weight":1}]}}},"repos":[{"name":"repo1","schedules":null,"volume":{"volumeClaimSpec":{"accessModes":["ReadWriteOnce"],"resources":{"requests":{"storage":"1Gi"}}}}}]}},"crVersion":"2.4.0","image":"perconalab/percona-postgresql-operator:main-ppg16-postgres","imagePullPolicy":"Always","instances":[{"affinity":{"podAntiAffinity":{"preferredDuringSchedulingIgnoredDuringExecution":[{"podAffinityTerm":{"labelSelector":{"matchLabels":{"postgres-operator.crunchydata.com/data":"postgres"}},"topologyKey":"kubernetes.io/hostname"},"weight":1}]}},"dataVolumeClaimSpec":{"accessModes":["ReadWriteOnce"],"resources":{"requests":{"storage":"1Gi"}}},"name":"instance1","replicas":3}],"pmm":{"enabled":false,"image":"percona/pmm-client:2.41.0","secret":"cluster1-pmm-secret","serverHost":"monitoring-service"},"postgresVersion":16,"proxy":{"pgBouncer":{"affinity":{"podAntiAffinity":{"preferredDuringSchedulingIgnoredDuringExecution":[{"podAffinityTerm":{"labelSelector":{"matchLabels":{"postgres-operator.crunchydata.com/role":"pgbouncer"}},"topologyKey":"kubernetes.io/hostname"},"weight":1}]}},"image":"perconalab/percona-postgresql-operator:main-ppg16-pgbouncer","replicas":3}},"users":[{"name":"postgres","password":{"type":"AlphaNumeric"}},{"name":"upgrade-minor","password":{"type":"AlphaNumeric"}}]}} + labels: + e2e: upgrade-minor + managedFields: + - apiVersion: pgv2.percona.com/v2 + fieldsType: FieldsV1 + fieldsV1: + f:metadata: + f:annotations: + .: {} + f:kubectl.kubernetes.io/last-applied-configuration: {} + f:labels: + .: {} + f:e2e: {} + f:spec: + .: {} + f:backups: + .: {} + f:pgbackrest: + .: {} + f:image: {} + f:manual: + .: {} + f:options: {} + f:repoName: {} + f:repoHost: + .: {} + f:affinity: + .: {} + f:podAntiAffinity: + .: {} + f:preferredDuringSchedulingIgnoredDuringExecution: {} + f:repos: + .: {} + k:{"name":"repo1"}: + .: {} + f:name: {} + f:volume: + .: {} + f:volumeClaimSpec: + .: {} + f:accessModes: {} + f:resources: + .: {} + f:requests: + .: {} + f:storage: {} + f:crVersion: {} + f:image: {} + f:imagePullPolicy: {} + f:instances: + .: {} + k:{"name":"instance1"}: + .: {} + f:affinity: + .: {} + f:podAntiAffinity: + .: {} + f:preferredDuringSchedulingIgnoredDuringExecution: {} + f:dataVolumeClaimSpec: + .: {} + f:accessModes: {} + f:resources: + .: {} + f:requests: + .: {} + f:storage: {} + f:name: {} + f:replicas: {} + f:pmm: + .: {} + f:enabled: {} + f:image: {} + f:secret: {} + f:serverHost: {} + f:port: {} + f:postgresVersion: {} + f:proxy: + .: {} + f:pgBouncer: + .: {} + f:affinity: + .: {} + f:podAntiAffinity: + .: {} + f:preferredDuringSchedulingIgnoredDuringExecution: {} + f:image: {} + f:port: {} + f:replicas: {} + f:users: + .: {} + k:{"name":"postgres"}: + .: {} + f:name: {} + f:password: + .: {} + f:type: {} + k:{"name":"upgrade-minor"}: + .: {} + f:name: {} + f:password: + .: {} + f:type: {} + manager: kubectl-client-side-apply + operation: Update + time: "2024-04-02T12:56:10Z" + - apiVersion: pgv2.percona.com/v2 + fieldsType: FieldsV1 + fieldsV1: + f:status: + .: {} + f:host: {} + f:pgbouncer: + .: {} + f:ready: {} + f:size: {} + f:postgres: + .: {} + f:instances: {} + f:ready: {} + f:size: {} + f:state: {} + manager: postgres-operator + operation: Update + subresource: status + time: "2024-04-02T12:56:24Z" name: upgrade-minor namespace: kuttl-test-coherent-ray +spec: + backups: + pgbackrest: + image: perconalab/percona-postgresql-operator:main-ppg16-pgbackrest + manual: + options: + - --type=full + repoName: repo1 + repoHost: + affinity: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchLabels: + postgres-operator.crunchydata.com/data: pgbackrest + topologyKey: kubernetes.io/hostname + weight: 1 + repos: + - name: repo1 + volume: + volumeClaimSpec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + crVersion: 2.4.0 + image: perconalab/percona-postgresql-operator:main-ppg16-postgres + imagePullPolicy: Always + instances: + - affinity: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchLabels: + postgres-operator.crunchydata.com/data: postgres + topologyKey: kubernetes.io/hostname + weight: 1 + dataVolumeClaimSpec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + name: instance1 + replicas: 3 + pmm: + enabled: false + image: percona/pmm-client:2.41.0 + secret: cluster1-pmm-secret + serverHost: monitoring-service + port: 5432 + postgresVersion: 16 + proxy: + pgBouncer: + affinity: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchLabels: + postgres-operator.crunchydata.com/role: pgbouncer + topologyKey: kubernetes.io/hostname + weight: 1 + image: perconalab/percona-postgresql-operator:main-ppg16-pgbouncer + port: 5432 + replicas: 3 + users: + - name: postgres + password: + type: AlphaNumeric + - name: upgrade-minor + password: + type: AlphaNumeric status: + host: upgrade-minor-pgbouncer.kuttl-test-coherent-ray.svc pgbouncer: ready: 3 size: 3 postgres: instances: - name: instance1 - ready: 3 + ready: 2 size: 3 - ready: 3 + ready: 2 size: 3 - state: ready + state: initializing case.go:366: resource PerconaPGCluster:kuttl-test-coherent-ray/upgrade-minor: .status.postgres.ready: value mismatch, expected: 3 != actual: 2 logger.go:42: 12:59:20 | upgrade-minor | upgrade-minor events from ns kuttl-test-coherent-ray: logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:22 +0000 UTC Normal Pod pg-client-689f5689bd-vbp5l Scheduled Successfully assigned kuttl-test-coherent-ray/pg-client-689f5689bd-vbp5l to gke-jen-pg-685-07f0dbb6c-default-pool-3965e85d-8jz5 default-scheduler logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:22 +0000 UTC Normal ReplicaSet.apps pg-client-689f5689bd SuccessfulCreate Created pod: pg-client-689f5689bd-vbp5l replicaset-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:22 +0000 UTC Normal Deployment.apps pg-client ScalingReplicaSet Scaled up replica set pg-client-689f5689bd to 1 deployment-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:23 +0000 UTC Normal Pod pg-client-689f5689bd-vbp5l.spec.containers{pg-client} Pulling Pulling image "perconalab/percona-distribution-postgresql:15" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:23 +0000 UTC Normal Pod pg-client-689f5689bd-vbp5l.spec.containers{pg-client} Pulled Successfully pulled image "perconalab/percona-distribution-postgresql:15" in 386.151614ms (386.170181ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:23 +0000 UTC Normal Pod pg-client-689f5689bd-vbp5l.spec.containers{pg-client} Created Created container pg-client kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:24 +0000 UTC Normal Pod pg-client-689f5689bd-vbp5l.spec.containers{pg-client} Started Started container pg-client kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:28 +0000 UTC Normal PersistentVolumeClaim upgrade-minor-instance1-4hpz-pgdata WaitForFirstConsumer waiting for first consumer to be created before binding persistentvolume-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:28 +0000 UTC Normal PersistentVolumeClaim upgrade-minor-instance1-4hpz-pgdata ExternalProvisioning waiting for a volume to be created, either by external provisioner "pd.csi.storage.gke.io" or manually created by system administrator persistentvolume-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:28 +0000 UTC Normal PersistentVolumeClaim upgrade-minor-instance1-4hpz-pgdata Provisioning External provisioner is provisioning volume for claim "kuttl-test-coherent-ray/upgrade-minor-instance1-4hpz-pgdata" pd.csi.storage.gke.io_gke-7086bb50ca4842b19a06-b5ba-ff0a-vm_613f4c54-18b4-441b-b0b0-0c1716339fa5 logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:28 +0000 UTC Normal StatefulSet.apps upgrade-minor-instance1-4hpz SuccessfulCreate create Pod upgrade-minor-instance1-4hpz-0 in StatefulSet upgrade-minor-instance1-4hpz successful statefulset-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:28 +0000 UTC Normal PersistentVolumeClaim upgrade-minor-instance1-hk6v-pgdata WaitForFirstConsumer waiting for first consumer to be created before binding persistentvolume-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:28 +0000 UTC Normal PersistentVolumeClaim upgrade-minor-instance1-vbvb-pgdata WaitForFirstConsumer waiting for first consumer to be created before binding persistentvolume-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:28 +0000 UTC Normal StatefulSet.apps upgrade-minor-instance1-vbvb SuccessfulCreate create Pod upgrade-minor-instance1-vbvb-0 in StatefulSet upgrade-minor-instance1-vbvb successful statefulset-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:29 +0000 UTC Normal PersistentVolumeClaim upgrade-minor-instance1-hk6v-pgdata ExternalProvisioning waiting for a volume to be created, either by external provisioner "pd.csi.storage.gke.io" or manually created by system administrator persistentvolume-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:29 +0000 UTC Normal PersistentVolumeClaim upgrade-minor-instance1-hk6v-pgdata Provisioning External provisioner is provisioning volume for claim "kuttl-test-coherent-ray/upgrade-minor-instance1-hk6v-pgdata" pd.csi.storage.gke.io_gke-7086bb50ca4842b19a06-b5ba-ff0a-vm_613f4c54-18b4-441b-b0b0-0c1716339fa5 logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:29 +0000 UTC Normal StatefulSet.apps upgrade-minor-instance1-hk6v SuccessfulCreate create Pod upgrade-minor-instance1-hk6v-0 in StatefulSet upgrade-minor-instance1-hk6v successful statefulset-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:29 +0000 UTC Normal PersistentVolumeClaim upgrade-minor-instance1-vbvb-pgdata ExternalProvisioning waiting for a volume to be created, either by external provisioner "pd.csi.storage.gke.io" or manually created by system administrator persistentvolume-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:29 +0000 UTC Normal PersistentVolumeClaim upgrade-minor-instance1-vbvb-pgdata Provisioning External provisioner is provisioning volume for claim "kuttl-test-coherent-ray/upgrade-minor-instance1-vbvb-pgdata" pd.csi.storage.gke.io_gke-7086bb50ca4842b19a06-b5ba-ff0a-vm_613f4c54-18b4-441b-b0b0-0c1716339fa5 logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:29 +0000 UTC Normal StatefulSet.apps upgrade-minor-repo-host SuccessfulCreate create Pod upgrade-minor-repo-host-0 in StatefulSet upgrade-minor-repo-host successful statefulset-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:29 +0000 UTC Normal PersistentVolumeClaim upgrade-minor-repo1 WaitForFirstConsumer waiting for first consumer to be created before binding persistentvolume-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:29 +0000 UTC Normal PersistentVolumeClaim upgrade-minor-repo1 ExternalProvisioning waiting for a volume to be created, either by external provisioner "pd.csi.storage.gke.io" or manually created by system administrator persistentvolume-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:29 +0000 UTC Normal PersistentVolumeClaim upgrade-minor-repo1 Provisioning External provisioner is provisioning volume for claim "kuttl-test-coherent-ray/upgrade-minor-repo1" pd.csi.storage.gke.io_gke-7086bb50ca4842b19a06-b5ba-ff0a-vm_613f4c54-18b4-441b-b0b0-0c1716339fa5 logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:29 +0000 UTC Normal PostgresCluster.postgres-operator.crunchydata.com upgrade-minor RepoHostCreated created pgBackRest repository host StatefulSet/upgrade-minor-repo-host postgrescluster-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:30 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-ftswd Scheduled Successfully assigned kuttl-test-coherent-ray/upgrade-minor-pgbouncer-b9bb6967f-ftswd to gke-jen-pg-685-07f0dbb6c-default-pool-3965e85d-9cbm default-scheduler logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:30 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-jjfwv Scheduled Successfully assigned kuttl-test-coherent-ray/upgrade-minor-pgbouncer-b9bb6967f-jjfwv to gke-jen-pg-685-07f0dbb6c-default-pool-3965e85d-9g5r default-scheduler logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:30 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-k86zz Scheduled Successfully assigned kuttl-test-coherent-ray/upgrade-minor-pgbouncer-b9bb6967f-k86zz to gke-jen-pg-685-07f0dbb6c-default-pool-3965e85d-8jz5 default-scheduler logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:30 +0000 UTC Normal ReplicaSet.apps upgrade-minor-pgbouncer-b9bb6967f SuccessfulCreate Created pod: upgrade-minor-pgbouncer-b9bb6967f-ftswd replicaset-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:30 +0000 UTC Normal ReplicaSet.apps upgrade-minor-pgbouncer-b9bb6967f SuccessfulCreate Created pod: upgrade-minor-pgbouncer-b9bb6967f-k86zz replicaset-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:30 +0000 UTC Normal ReplicaSet.apps upgrade-minor-pgbouncer-b9bb6967f SuccessfulCreate Created pod: upgrade-minor-pgbouncer-b9bb6967f-jjfwv replicaset-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:30 +0000 UTC Normal Deployment.apps upgrade-minor-pgbouncer ScalingReplicaSet Scaled up replica set upgrade-minor-pgbouncer-b9bb6967f to 3 deployment-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:30 +0000 UTC Normal PodDisruptionBudget.policy upgrade-minor-pgbouncer NoPods No matching pods found controllermanager logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:31 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-ftswd.spec.containers{pgbouncer} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbouncer" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:31 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-ftswd.spec.containers{pgbouncer} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbouncer" in 91.289133ms (91.303783ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:31 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-jjfwv.spec.containers{pgbouncer} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbouncer" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:31 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-jjfwv.spec.containers{pgbouncer} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbouncer" in 130.168495ms (130.18392ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:31 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-jjfwv.spec.containers{pgbouncer} Created Created container pgbouncer kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:31 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-jjfwv.spec.containers{pgbouncer} Started Started container pgbouncer kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:31 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-jjfwv.spec.containers{pgbouncer-config} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbouncer" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:31 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-jjfwv.spec.containers{pgbouncer-config} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbouncer" in 96.553039ms (96.569177ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:31 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-jjfwv.spec.containers{pgbouncer-config} Created Created container pgbouncer-config kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:31 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-jjfwv.spec.containers{pgbouncer-config} Started Started container pgbouncer-config kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:31 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-k86zz.spec.containers{pgbouncer} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbouncer" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:31 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-k86zz.spec.containers{pgbouncer} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbouncer" in 82.54723ms (82.558393ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:31 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-k86zz.spec.containers{pgbouncer} Created Created container pgbouncer kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:31 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-k86zz.spec.containers{pgbouncer} Started Started container pgbouncer kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:31 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-k86zz.spec.containers{pgbouncer-config} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbouncer" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:31 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-k86zz.spec.containers{pgbouncer-config} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbouncer" in 79.394195ms (79.401332ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:31 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-k86zz.spec.containers{pgbouncer-config} Created Created container pgbouncer-config kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:31 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-k86zz.spec.containers{pgbouncer-config} Started Started container pgbouncer-config kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:32 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-ftswd.spec.containers{pgbouncer} Created Created container pgbouncer kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:32 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-ftswd.spec.containers{pgbouncer} Started Started container pgbouncer kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:32 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-ftswd.spec.containers{pgbouncer-config} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbouncer" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:32 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-ftswd.spec.containers{pgbouncer-config} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbouncer" in 115.823745ms (115.832082ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:32 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-ftswd.spec.containers{pgbouncer-config} Created Created container pgbouncer-config kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:32 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-ftswd.spec.containers{pgbouncer-config} Started Started container pgbouncer-config kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:33 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0 Scheduled Successfully assigned kuttl-test-coherent-ray/upgrade-minor-instance1-4hpz-0 to gke-jen-pg-685-07f0dbb6c-default-pool-3965e85d-8jz5 default-scheduler logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:33 +0000 UTC Normal PersistentVolumeClaim upgrade-minor-instance1-4hpz-pgdata ProvisioningSucceeded Successfully provisioned volume pvc-5df93f43-8b6a-4d4f-a47d-4205c1c80cf5 pd.csi.storage.gke.io_gke-7086bb50ca4842b19a06-b5ba-ff0a-vm_613f4c54-18b4-441b-b0b0-0c1716339fa5 logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:33 +0000 UTC Normal PersistentVolumeClaim upgrade-minor-instance1-hk6v-pgdata ProvisioningSucceeded Successfully provisioned volume pvc-3895c1be-2567-4fea-8e4c-36e631538129 pd.csi.storage.gke.io_gke-7086bb50ca4842b19a06-b5ba-ff0a-vm_613f4c54-18b4-441b-b0b0-0c1716339fa5 logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:33 +0000 UTC Normal PersistentVolumeClaim upgrade-minor-instance1-vbvb-pgdata ProvisioningSucceeded Successfully provisioned volume pvc-a6241d8d-6e85-46dd-af24-28ab47ea3ac9 pd.csi.storage.gke.io_gke-7086bb50ca4842b19a06-b5ba-ff0a-vm_613f4c54-18b4-441b-b0b0-0c1716339fa5 logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:33 +0000 UTC Normal PersistentVolumeClaim upgrade-minor-repo1 ProvisioningSucceeded Successfully provisioned volume pvc-fe5520fa-ca28-4f3c-abf6-611128966b73 pd.csi.storage.gke.io_gke-7086bb50ca4842b19a06-b5ba-ff0a-vm_613f4c54-18b4-441b-b0b0-0c1716339fa5 logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:34 +0000 UTC Normal Pod upgrade-minor-instance1-hk6v-0 Scheduled Successfully assigned kuttl-test-coherent-ray/upgrade-minor-instance1-hk6v-0 to gke-jen-pg-685-07f0dbb6c-default-pool-3965e85d-9g5r default-scheduler logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:34 +0000 UTC Normal Pod upgrade-minor-instance1-vbvb-0 Scheduled Successfully assigned kuttl-test-coherent-ray/upgrade-minor-instance1-vbvb-0 to gke-jen-pg-685-07f0dbb6c-default-pool-3965e85d-9cbm default-scheduler logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:34 +0000 UTC Normal Pod upgrade-minor-repo-host-0 Scheduled Successfully assigned kuttl-test-coherent-ray/upgrade-minor-repo-host-0 to gke-jen-pg-685-07f0dbb6c-default-pool-3965e85d-8jz5 default-scheduler logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:42 +0000 UTC Normal Pod upgrade-minor-instance1-hk6v-0 SuccessfulAttachVolume AttachVolume.Attach succeeded for volume "pvc-3895c1be-2567-4fea-8e4c-36e631538129" attachdetach-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:42 +0000 UTC Normal Pod upgrade-minor-instance1-vbvb-0 SuccessfulAttachVolume AttachVolume.Attach succeeded for volume "pvc-a6241d8d-6e85-46dd-af24-28ab47ea3ac9" attachdetach-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:44 +0000 UTC Normal Pod upgrade-minor-instance1-hk6v-0.spec.initContainers{postgres-startup} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-postgres" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:44 +0000 UTC Normal Pod upgrade-minor-instance1-hk6v-0.spec.initContainers{postgres-startup} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-postgres" in 118.700571ms (118.715016ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:44 +0000 UTC Normal Pod upgrade-minor-instance1-hk6v-0.spec.initContainers{postgres-startup} Created Created container postgres-startup kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:44 +0000 UTC Normal Pod upgrade-minor-instance1-hk6v-0.spec.initContainers{postgres-startup} Started Started container postgres-startup kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:45 +0000 UTC Normal Pod upgrade-minor-instance1-hk6v-0.spec.initContainers{nss-wrapper-init} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-postgres" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:45 +0000 UTC Normal Pod upgrade-minor-instance1-hk6v-0.spec.initContainers{nss-wrapper-init} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-postgres" in 94.624956ms (94.641235ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:45 +0000 UTC Normal Pod upgrade-minor-instance1-hk6v-0.spec.initContainers{nss-wrapper-init} Created Created container nss-wrapper-init kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:45 +0000 UTC Normal Pod upgrade-minor-instance1-hk6v-0.spec.initContainers{nss-wrapper-init} Started Started container nss-wrapper-init kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:45 +0000 UTC Normal Pod upgrade-minor-instance1-vbvb-0.spec.initContainers{postgres-startup} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-postgres" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:45 +0000 UTC Normal Pod upgrade-minor-instance1-vbvb-0.spec.initContainers{postgres-startup} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-postgres" in 121.614635ms (121.632963ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:45 +0000 UTC Normal Pod upgrade-minor-instance1-vbvb-0.spec.initContainers{postgres-startup} Created Created container postgres-startup kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:45 +0000 UTC Normal Pod upgrade-minor-instance1-vbvb-0.spec.initContainers{postgres-startup} Started Started container postgres-startup kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:46 +0000 UTC Normal Pod upgrade-minor-instance1-hk6v-0.spec.containers{database} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-postgres" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:46 +0000 UTC Normal Pod upgrade-minor-instance1-hk6v-0.spec.containers{database} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-postgres" in 114.56327ms (114.571707ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:46 +0000 UTC Normal Pod upgrade-minor-instance1-hk6v-0.spec.containers{database} Created Created container database kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:46 +0000 UTC Normal Pod upgrade-minor-instance1-hk6v-0.spec.containers{database} Started Started container database kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:46 +0000 UTC Normal Pod upgrade-minor-instance1-hk6v-0.spec.containers{replication-cert-copy} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-postgres" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:46 +0000 UTC Normal Pod upgrade-minor-instance1-hk6v-0.spec.containers{replication-cert-copy} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-postgres" in 97.132634ms (97.141956ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:46 +0000 UTC Normal Pod upgrade-minor-instance1-vbvb-0.spec.initContainers{nss-wrapper-init} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-postgres" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:46 +0000 UTC Normal Pod upgrade-minor-instance1-vbvb-0.spec.initContainers{nss-wrapper-init} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-postgres" in 102.024047ms (102.042357ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:46 +0000 UTC Normal Pod upgrade-minor-instance1-vbvb-0.spec.initContainers{nss-wrapper-init} Created Created container nss-wrapper-init kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:46 +0000 UTC Normal Pod upgrade-minor-instance1-vbvb-0.spec.initContainers{nss-wrapper-init} Started Started container nss-wrapper-init kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:47 +0000 UTC Normal Pod upgrade-minor-instance1-hk6v-0.spec.containers{replication-cert-copy} Created Created container replication-cert-copy kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:47 +0000 UTC Normal Pod upgrade-minor-instance1-hk6v-0.spec.containers{replication-cert-copy} Started Started container replication-cert-copy kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:47 +0000 UTC Normal Pod upgrade-minor-instance1-hk6v-0.spec.containers{pgbackrest} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbackrest" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:47 +0000 UTC Normal Pod upgrade-minor-instance1-hk6v-0.spec.containers{pgbackrest} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbackrest" in 90.913257ms (90.921088ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:47 +0000 UTC Normal Pod upgrade-minor-instance1-hk6v-0.spec.containers{pgbackrest} Created Created container pgbackrest kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:47 +0000 UTC Normal Pod upgrade-minor-instance1-hk6v-0.spec.containers{pgbackrest} Started Started container pgbackrest kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:47 +0000 UTC Normal Pod upgrade-minor-instance1-hk6v-0.spec.containers{pgbackrest-config} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbackrest" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:47 +0000 UTC Normal Pod upgrade-minor-instance1-hk6v-0.spec.containers{pgbackrest-config} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbackrest" in 85.407435ms (85.423395ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:47 +0000 UTC Normal Pod upgrade-minor-instance1-hk6v-0.spec.containers{pgbackrest-config} Created Created container pgbackrest-config kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:47 +0000 UTC Normal Pod upgrade-minor-instance1-hk6v-0.spec.containers{pgbackrest-config} Started Started container pgbackrest-config kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:47 +0000 UTC Normal Pod upgrade-minor-instance1-vbvb-0.spec.containers{database} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-postgres" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:47 +0000 UTC Normal Pod upgrade-minor-instance1-vbvb-0.spec.containers{database} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-postgres" in 94.082322ms (94.098861ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:47 +0000 UTC Normal Pod upgrade-minor-instance1-vbvb-0.spec.containers{database} Created Created container database kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:47 +0000 UTC Normal Pod upgrade-minor-instance1-vbvb-0.spec.containers{database} Started Started container database kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:47 +0000 UTC Normal Pod upgrade-minor-instance1-vbvb-0.spec.containers{replication-cert-copy} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-postgres" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:47 +0000 UTC Normal Pod upgrade-minor-instance1-vbvb-0.spec.containers{replication-cert-copy} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-postgres" in 104.682424ms (104.702316ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:47 +0000 UTC Normal Pod upgrade-minor-instance1-vbvb-0.spec.containers{replication-cert-copy} Created Created container replication-cert-copy kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:47 +0000 UTC Normal Pod upgrade-minor-instance1-vbvb-0.spec.containers{replication-cert-copy} Started Started container replication-cert-copy kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:47 +0000 UTC Normal Pod upgrade-minor-instance1-vbvb-0.spec.containers{pgbackrest} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbackrest" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:47 +0000 UTC Normal Pod upgrade-minor-instance1-vbvb-0.spec.containers{pgbackrest} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbackrest" in 88.027272ms (88.039006ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:47 +0000 UTC Normal Pod upgrade-minor-instance1-vbvb-0.spec.containers{pgbackrest} Created Created container pgbackrest kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:47 +0000 UTC Normal Pod upgrade-minor-instance1-vbvb-0.spec.containers{pgbackrest} Started Started container pgbackrest kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:47 +0000 UTC Normal Pod upgrade-minor-instance1-vbvb-0.spec.containers{pgbackrest-config} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbackrest" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:48 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0 SuccessfulAttachVolume AttachVolume.Attach succeeded for volume "pvc-5df93f43-8b6a-4d4f-a47d-4205c1c80cf5" attachdetach-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:48 +0000 UTC Normal Pod upgrade-minor-instance1-vbvb-0.spec.containers{pgbackrest-config} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbackrest" in 100.840633ms (100.855144ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:48 +0000 UTC Normal Pod upgrade-minor-instance1-vbvb-0.spec.containers{pgbackrest-config} Created Created container pgbackrest-config kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:48 +0000 UTC Normal Pod upgrade-minor-instance1-vbvb-0.spec.containers{pgbackrest-config} Started Started container pgbackrest-config kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:49 +0000 UTC Warning Pod upgrade-minor-instance1-hk6v-0.spec.containers{database} Unhealthy Readiness probe failed: HTTP probe failed with statuscode: 503 kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:50 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.initContainers{postgres-startup} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-postgres" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:50 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.initContainers{postgres-startup} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-postgres" in 88.71168ms (88.721805ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:50 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.initContainers{postgres-startup} Created Created container postgres-startup kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:50 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.initContainers{postgres-startup} Started Started container postgres-startup kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:50 +0000 UTC Warning Pod upgrade-minor-instance1-vbvb-0.spec.containers{database} Unhealthy Readiness probe failed: HTTP probe failed with statuscode: 503 kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:51 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.initContainers{nss-wrapper-init} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-postgres" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:51 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.initContainers{nss-wrapper-init} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-postgres" in 100.099922ms (100.106296ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:51 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.initContainers{nss-wrapper-init} Created Created container nss-wrapper-init kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:51 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.initContainers{nss-wrapper-init} Started Started container nss-wrapper-init kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:52 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{database} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-postgres" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:52 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{database} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-postgres" in 108.146872ms (108.154406ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:52 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{database} Created Created container database kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:52 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{database} Started Started container database kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:52 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{replication-cert-copy} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-postgres" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:52 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{replication-cert-copy} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-postgres" in 89.031256ms (89.043301ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:52 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{replication-cert-copy} Created Created container replication-cert-copy kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:52 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{replication-cert-copy} Started Started container replication-cert-copy kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:52 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{pgbackrest} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbackrest" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:52 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{pgbackrest} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbackrest" in 86.919838ms (86.931762ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:52 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{pgbackrest} Created Created container pgbackrest kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:52 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{pgbackrest} Started Started container pgbackrest kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:52 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{pgbackrest-config} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbackrest" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:52 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{pgbackrest-config} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbackrest" in 88.873315ms (88.880515ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:52 +0000 UTC Normal Pod upgrade-minor-repo-host-0 SuccessfulAttachVolume AttachVolume.Attach succeeded for volume "pvc-fe5520fa-ca28-4f3c-abf6-611128966b73" attachdetach-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:53 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{pgbackrest-config} Created Created container pgbackrest-config kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:53 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{pgbackrest-config} Started Started container pgbackrest-config kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:53 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.initContainers{pgbackrest-log-dir} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbackrest" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:54 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.initContainers{pgbackrest-log-dir} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbackrest" in 220.877578ms (220.89119ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:54 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.initContainers{pgbackrest-log-dir} Created Created container pgbackrest-log-dir kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:54 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.initContainers{pgbackrest-log-dir} Started Started container pgbackrest-log-dir kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:54 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.initContainers{nss-wrapper-init} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbackrest" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:54 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.initContainers{nss-wrapper-init} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbackrest" in 87.805736ms (87.812189ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:54 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.initContainers{nss-wrapper-init} Created Created container nss-wrapper-init kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:54 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.initContainers{nss-wrapper-init} Started Started container nss-wrapper-init kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:55 +0000 UTC Warning Pod upgrade-minor-instance1-4hpz-0.spec.containers{database} Unhealthy Readiness probe failed: HTTP probe failed with statuscode: 503 kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:55 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.containers{pgbackrest} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbackrest" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:55 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.containers{pgbackrest} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbackrest" in 115.219663ms (115.2325ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:55 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.containers{pgbackrest} Created Created container pgbackrest kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:55 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.containers{pgbackrest} Started Started container pgbackrest kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:55 +0000 UTC Normal PostgresCluster.postgres-operator.crunchydata.com upgrade-minor StanzasCreated pgBackRest stanza creation completed successfully postgrescluster-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:56 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.containers{pgbackrest-config} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbackrest" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:56 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.containers{pgbackrest-config} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbackrest" in 98.25092ms (98.274355ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:56 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.containers{pgbackrest-config} Created Created container pgbackrest-config kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:56 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.containers{pgbackrest-config} Started Started container pgbackrest-config kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:57 +0000 UTC Normal Pod upgrade-minor-backup-qchq-hgjpq Scheduled Successfully assigned kuttl-test-coherent-ray/upgrade-minor-backup-qchq-hgjpq to gke-jen-pg-685-07f0dbb6c-default-pool-3965e85d-9cbm default-scheduler logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:57 +0000 UTC Normal Job.batch upgrade-minor-backup-qchq SuccessfulCreate Created pod: upgrade-minor-backup-qchq-hgjpq job-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:58 +0000 UTC Normal Pod upgrade-minor-backup-qchq-hgjpq.spec.containers{pgbackrest} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbackrest" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:58 +0000 UTC Normal Pod upgrade-minor-backup-qchq-hgjpq.spec.containers{pgbackrest} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbackrest" in 99.257537ms (99.27635ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:58 +0000 UTC Normal Pod upgrade-minor-backup-qchq-hgjpq.spec.containers{pgbackrest} Created Created container pgbackrest kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:54:58 +0000 UTC Normal Pod upgrade-minor-backup-qchq-hgjpq.spec.containers{pgbackrest} Started Started container pgbackrest kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:55:32 +0000 UTC Normal Job.batch upgrade-minor-backup-qchq Completed Job completed job-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:06 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.containers{pgbackrest} Killing Stopping container pgbackrest kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:06 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.containers{pgbackrest-config} Killing Stopping container pgbackrest-config kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:06 +0000 UTC Normal StatefulSet.apps upgrade-minor-repo-host SuccessfulDelete delete Pod upgrade-minor-repo-host-0 in StatefulSet upgrade-minor-repo-host successful statefulset-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:07 +0000 UTC Normal Pod upgrade-minor-repo-host-0 Scheduled Successfully assigned kuttl-test-coherent-ray/upgrade-minor-repo-host-0 to gke-jen-pg-685-07f0dbb6c-default-pool-3965e85d-8jz5 default-scheduler logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:12 +0000 UTC Normal Deployment.apps upgrade-minor-pgbouncer ScalingReplicaSet Scaled up replica set upgrade-minor-pgbouncer-866884dc9c to 1 deployment-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:13 +0000 UTC Normal Pod upgrade-minor-pgbouncer-866884dc9c-nbhfz Scheduled Successfully assigned kuttl-test-coherent-ray/upgrade-minor-pgbouncer-866884dc9c-nbhfz to gke-jen-pg-685-07f0dbb6c-default-pool-3965e85d-9cbm default-scheduler logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:13 +0000 UTC Normal Pod upgrade-minor-pgbouncer-866884dc9c-nbhfz.spec.containers{pgbouncer} Pulling Pulling image "perconalab/percona-postgresql-operator:main-ppg16-pgbouncer" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:13 +0000 UTC Normal Pod upgrade-minor-pgbouncer-866884dc9c-nbhfz.spec.containers{pgbouncer} Pulled Successfully pulled image "perconalab/percona-postgresql-operator:main-ppg16-pgbouncer" in 94.428467ms (94.456011ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:13 +0000 UTC Normal ReplicaSet.apps upgrade-minor-pgbouncer-866884dc9c SuccessfulCreate Created pod: upgrade-minor-pgbouncer-866884dc9c-nbhfz replicaset-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:14 +0000 UTC Normal Pod upgrade-minor-pgbouncer-866884dc9c-nbhfz.spec.containers{pgbouncer} Created Created container pgbouncer kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:14 +0000 UTC Normal Pod upgrade-minor-pgbouncer-866884dc9c-nbhfz.spec.containers{pgbouncer} Started Started container pgbouncer kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:14 +0000 UTC Normal Pod upgrade-minor-pgbouncer-866884dc9c-nbhfz.spec.containers{pgbouncer-config} Pulling Pulling image "perconalab/percona-postgresql-operator:main-ppg16-pgbouncer" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:14 +0000 UTC Normal Pod upgrade-minor-pgbouncer-866884dc9c-nbhfz.spec.containers{pgbouncer-config} Pulled Successfully pulled image "perconalab/percona-postgresql-operator:main-ppg16-pgbouncer" in 104.610614ms (104.628938ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:14 +0000 UTC Normal Pod upgrade-minor-pgbouncer-866884dc9c-nbhfz.spec.containers{pgbouncer-config} Created Created container pgbouncer-config kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:14 +0000 UTC Normal Pod upgrade-minor-pgbouncer-866884dc9c-nbhfz.spec.containers{pgbouncer-config} Started Started container pgbouncer-config kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:14 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-ftswd.spec.containers{pgbouncer} Killing Stopping container pgbouncer kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:14 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-ftswd.spec.containers{pgbouncer-config} Killing Stopping container pgbouncer-config kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:14 +0000 UTC Normal ReplicaSet.apps upgrade-minor-pgbouncer-b9bb6967f SuccessfulDelete Deleted pod: upgrade-minor-pgbouncer-b9bb6967f-ftswd replicaset-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:14 +0000 UTC Normal Deployment.apps upgrade-minor-pgbouncer ScalingReplicaSet Scaled down replica set upgrade-minor-pgbouncer-b9bb6967f to 2 from 3 deployment-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:15 +0000 UTC Normal Pod upgrade-minor-pgbouncer-866884dc9c-qx27k Scheduled Successfully assigned kuttl-test-coherent-ray/upgrade-minor-pgbouncer-866884dc9c-qx27k to gke-jen-pg-685-07f0dbb6c-default-pool-3965e85d-8jz5 default-scheduler logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:15 +0000 UTC Normal ReplicaSet.apps upgrade-minor-pgbouncer-866884dc9c SuccessfulCreate Created pod: upgrade-minor-pgbouncer-866884dc9c-qx27k replicaset-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:15 +0000 UTC Normal Deployment.apps upgrade-minor-pgbouncer ScalingReplicaSet Scaled up replica set upgrade-minor-pgbouncer-866884dc9c to 2 from 1 deployment-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:15 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.initContainers{pgbackrest-log-dir} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbackrest" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:15 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.initContainers{pgbackrest-log-dir} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbackrest" in 97.118685ms (97.146296ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:15 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.initContainers{pgbackrest-log-dir} Created Created container pgbackrest-log-dir kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:15 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.initContainers{pgbackrest-log-dir} Started Started container pgbackrest-log-dir kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:16 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0 Scheduled Successfully assigned kuttl-test-coherent-ray/upgrade-minor-instance1-4hpz-0 to gke-jen-pg-685-07f0dbb6c-default-pool-3965e85d-8jz5 default-scheduler logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:16 +0000 UTC Normal Pod upgrade-minor-pgbouncer-866884dc9c-qx27k.spec.containers{pgbouncer} Pulling Pulling image "perconalab/percona-postgresql-operator:main-ppg16-pgbouncer" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:16 +0000 UTC Normal Pod upgrade-minor-pgbouncer-866884dc9c-qx27k.spec.containers{pgbouncer} Pulled Successfully pulled image "perconalab/percona-postgresql-operator:main-ppg16-pgbouncer" in 133.871554ms (133.884239ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:16 +0000 UTC Normal Pod upgrade-minor-pgbouncer-866884dc9c-qx27k.spec.containers{pgbouncer} Created Created container pgbouncer kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:16 +0000 UTC Normal Pod upgrade-minor-pgbouncer-866884dc9c-qx27k.spec.containers{pgbouncer} Started Started container pgbouncer kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:16 +0000 UTC Normal Pod upgrade-minor-pgbouncer-866884dc9c-qx27k.spec.containers{pgbouncer-config} Pulling Pulling image "perconalab/percona-postgresql-operator:main-ppg16-pgbouncer" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:16 +0000 UTC Normal Pod upgrade-minor-pgbouncer-866884dc9c-qx27k.spec.containers{pgbouncer-config} Pulled Successfully pulled image "perconalab/percona-postgresql-operator:main-ppg16-pgbouncer" in 78.168155ms (78.182105ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:16 +0000 UTC Normal Pod upgrade-minor-pgbouncer-866884dc9c-qx27k.spec.containers{pgbouncer-config} Created Created container pgbouncer-config kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:16 +0000 UTC Normal Pod upgrade-minor-pgbouncer-866884dc9c-qx27k.spec.containers{pgbouncer-config} Started Started container pgbouncer-config kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:16 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.initContainers{nss-wrapper-init} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbackrest" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:16 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.initContainers{nss-wrapper-init} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbackrest" in 84.145707ms (84.158695ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:16 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.initContainers{nss-wrapper-init} Created Created container nss-wrapper-init kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:16 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.initContainers{nss-wrapper-init} Started Started container nss-wrapper-init kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:17 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.containers{pgbackrest} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbackrest" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:17 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.containers{pgbackrest} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbackrest" in 83.011004ms (83.018156ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:17 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.containers{pgbackrest} Created Created container pgbackrest kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:17 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.containers{pgbackrest} Started Started container pgbackrest kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:17 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.containers{pgbackrest-config} Pulling Pulling image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbackrest" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:17 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.containers{pgbackrest-config} Pulled Successfully pulled image "percona/percona-postgresql-operator:2.3.1-ppg16-pgbackrest" in 90.265976ms (90.278323ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:17 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.containers{pgbackrest-config} Created Created container pgbackrest-config kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:18 +0000 UTC Normal Pod upgrade-minor-pgbouncer-866884dc9c-4mvxh Scheduled Successfully assigned kuttl-test-coherent-ray/upgrade-minor-pgbouncer-866884dc9c-4mvxh to gke-jen-pg-685-07f0dbb6c-default-pool-3965e85d-9cbm default-scheduler logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:18 +0000 UTC Normal ReplicaSet.apps upgrade-minor-pgbouncer-866884dc9c SuccessfulCreate Created pod: upgrade-minor-pgbouncer-866884dc9c-4mvxh replicaset-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:18 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-k86zz.spec.containers{pgbouncer} Killing Stopping container pgbouncer kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:18 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-k86zz.spec.containers{pgbouncer-config} Killing Stopping container pgbouncer-config kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:18 +0000 UTC Normal ReplicaSet.apps upgrade-minor-pgbouncer-b9bb6967f SuccessfulDelete Deleted pod: upgrade-minor-pgbouncer-b9bb6967f-k86zz replicaset-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:18 +0000 UTC Normal Deployment.apps upgrade-minor-pgbouncer ScalingReplicaSet Scaled down replica set upgrade-minor-pgbouncer-b9bb6967f to 1 from 2 deployment-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:18 +0000 UTC Normal Deployment.apps upgrade-minor-pgbouncer ScalingReplicaSet Scaled up replica set upgrade-minor-pgbouncer-866884dc9c to 3 from 2 deployment-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:18 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.containers{pgbackrest-config} Started Started container pgbackrest-config kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:19 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.initContainers{postgres-startup} Pulling Pulling image "perconalab/percona-postgresql-operator:main-ppg16-postgres" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:19 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.initContainers{postgres-startup} Pulled Successfully pulled image "perconalab/percona-postgresql-operator:main-ppg16-postgres" in 82.580522ms (82.587626ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:19 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.initContainers{postgres-startup} Created Created container postgres-startup kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:19 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.initContainers{postgres-startup} Started Started container postgres-startup kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:19 +0000 UTC Normal Pod upgrade-minor-pgbouncer-866884dc9c-4mvxh.spec.containers{pgbouncer} Pulling Pulling image "perconalab/percona-postgresql-operator:main-ppg16-pgbouncer" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:19 +0000 UTC Normal Pod upgrade-minor-pgbouncer-866884dc9c-4mvxh.spec.containers{pgbouncer} Pulled Successfully pulled image "perconalab/percona-postgresql-operator:main-ppg16-pgbouncer" in 118.732634ms (118.740801ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:19 +0000 UTC Normal Pod upgrade-minor-pgbouncer-866884dc9c-4mvxh.spec.containers{pgbouncer} Created Created container pgbouncer kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:19 +0000 UTC Normal Pod upgrade-minor-pgbouncer-866884dc9c-4mvxh.spec.containers{pgbouncer} Started Started container pgbouncer kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:19 +0000 UTC Normal Pod upgrade-minor-pgbouncer-866884dc9c-4mvxh.spec.containers{pgbouncer-config} Pulling Pulling image "perconalab/percona-postgresql-operator:main-ppg16-pgbouncer" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:19 +0000 UTC Normal Pod upgrade-minor-pgbouncer-866884dc9c-4mvxh.spec.containers{pgbouncer-config} Pulled Successfully pulled image "perconalab/percona-postgresql-operator:main-ppg16-pgbouncer" in 93.285631ms (93.292907ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:19 +0000 UTC Normal Pod upgrade-minor-pgbouncer-866884dc9c-4mvxh.spec.containers{pgbouncer-config} Created Created container pgbouncer-config kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:19 +0000 UTC Normal Pod upgrade-minor-pgbouncer-866884dc9c-4mvxh.spec.containers{pgbouncer-config} Started Started container pgbouncer-config kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:20 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.initContainers{nss-wrapper-init} Pulling Pulling image "perconalab/percona-postgresql-operator:main-ppg16-postgres" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:20 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.initContainers{nss-wrapper-init} Pulled Successfully pulled image "perconalab/percona-postgresql-operator:main-ppg16-postgres" in 89.259716ms (89.267778ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:20 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.initContainers{nss-wrapper-init} Created Created container nss-wrapper-init kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:20 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.initContainers{nss-wrapper-init} Started Started container nss-wrapper-init kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:20 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-jjfwv.spec.containers{pgbouncer} Killing Stopping container pgbouncer kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:20 +0000 UTC Normal Pod upgrade-minor-pgbouncer-b9bb6967f-jjfwv.spec.containers{pgbouncer-config} Killing Stopping container pgbouncer-config kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:20 +0000 UTC Normal ReplicaSet.apps upgrade-minor-pgbouncer-b9bb6967f SuccessfulDelete Deleted pod: upgrade-minor-pgbouncer-b9bb6967f-jjfwv replicaset-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:20 +0000 UTC Normal Deployment.apps upgrade-minor-pgbouncer ScalingReplicaSet Scaled down replica set upgrade-minor-pgbouncer-b9bb6967f to 0 from 1 deployment-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:20 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.containers{pgbackrest} Killing Stopping container pgbackrest kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:20 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.containers{pgbackrest-config} Killing Stopping container pgbackrest-config kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:21 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{database} Pulling Pulling image "perconalab/percona-postgresql-operator:main-ppg16-postgres" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:21 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{database} Pulled Successfully pulled image "perconalab/percona-postgresql-operator:main-ppg16-postgres" in 95.24254ms (95.253858ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:21 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{database} Created Created container database kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:21 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{database} Started Started container database kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:21 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{replication-cert-copy} Pulling Pulling image "perconalab/percona-postgresql-operator:main-ppg16-postgres" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:21 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{replication-cert-copy} Pulled Successfully pulled image "perconalab/percona-postgresql-operator:main-ppg16-postgres" in 98.064822ms (98.072364ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:21 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{replication-cert-copy} Created Created container replication-cert-copy kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:22 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{replication-cert-copy} Started Started container replication-cert-copy kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:22 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{pgbackrest} Pulling Pulling image "perconalab/percona-postgresql-operator:main-ppg16-pgbackrest" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:22 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{pgbackrest} Pulled Successfully pulled image "perconalab/percona-postgresql-operator:main-ppg16-pgbackrest" in 84.961216ms (84.968669ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:22 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{pgbackrest} Created Created container pgbackrest kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:22 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{pgbackrest} Started Started container pgbackrest kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:23 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{pgbackrest-config} Pulling Pulling image "perconalab/percona-postgresql-operator:main-ppg16-pgbackrest" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:23 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{pgbackrest-config} Pulled Successfully pulled image "perconalab/percona-postgresql-operator:main-ppg16-pgbackrest" in 88.965394ms (88.973828ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:23 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{pgbackrest-config} Created Created container pgbackrest-config kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:23 +0000 UTC Normal Pod upgrade-minor-instance1-4hpz-0.spec.containers{pgbackrest-config} Started Started container pgbackrest-config kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:24 +0000 UTC Warning Pod upgrade-minor-instance1-4hpz-0.spec.containers{database} Unhealthy Readiness probe failed: HTTP probe failed with statuscode: 503 kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:25 +0000 UTC Normal Pod upgrade-minor-repo-host-0 Scheduled Successfully assigned kuttl-test-coherent-ray/upgrade-minor-repo-host-0 to gke-jen-pg-685-07f0dbb6c-default-pool-3965e85d-8jz5 default-scheduler logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:36 +0000 UTC Normal Pod upgrade-minor-repo-host-0 SuccessfulAttachVolume AttachVolume.Attach succeeded for volume "pvc-fe5520fa-ca28-4f3c-abf6-611128966b73" attachdetach-controller logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:38 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.initContainers{pgbackrest-log-dir} Pulling Pulling image "perconalab/percona-postgresql-operator:main-ppg16-pgbackrest" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:38 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.initContainers{pgbackrest-log-dir} Pulled Successfully pulled image "perconalab/percona-postgresql-operator:main-ppg16-pgbackrest" in 87.906091ms (87.918987ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:38 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.initContainers{pgbackrest-log-dir} Created Created container pgbackrest-log-dir kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:38 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.initContainers{pgbackrest-log-dir} Started Started container pgbackrest-log-dir kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:38 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.initContainers{nss-wrapper-init} Pulling Pulling image "perconalab/percona-postgresql-operator:main-ppg16-pgbackrest" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:38 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.initContainers{nss-wrapper-init} Pulled Successfully pulled image "perconalab/percona-postgresql-operator:main-ppg16-pgbackrest" in 77.375062ms (77.388773ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:38 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.initContainers{nss-wrapper-init} Created Created container nss-wrapper-init kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:38 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.initContainers{nss-wrapper-init} Started Started container nss-wrapper-init kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:39 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.containers{pgbackrest} Pulling Pulling image "perconalab/percona-postgresql-operator:main-ppg16-pgbackrest" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:39 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.containers{pgbackrest} Pulled Successfully pulled image "perconalab/percona-postgresql-operator:main-ppg16-pgbackrest" in 79.22137ms (79.228369ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:39 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.containers{pgbackrest} Created Created container pgbackrest kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:39 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.containers{pgbackrest} Started Started container pgbackrest kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:39 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.containers{pgbackrest-config} Pulling Pulling image "perconalab/percona-postgresql-operator:main-ppg16-pgbackrest" kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:39 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.containers{pgbackrest-config} Pulled Successfully pulled image "perconalab/percona-postgresql-operator:main-ppg16-pgbackrest" in 124.847233ms (124.860442ms including waiting) kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:39 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.containers{pgbackrest-config} Created Created container pgbackrest-config kubelet logger.go:42: 12:59:20 | upgrade-minor | 2024-04-02 12:56:39 +0000 UTC Normal Pod upgrade-minor-repo-host-0.spec.containers{pgbackrest-config} Started Started container pgbackrest-config kubelet logger.go:42: 12:59:20 | upgrade-minor | Deleting namespace: kuttl-test-coherent-ray === CONT kuttl harness.go:405: run tests finished harness.go:513: cleaning up harness.go:570: removing temp folder: "" --- FAIL: kuttl (363.95s) --- FAIL: kuttl/harness (0.00s) --- FAIL: kuttl/harness/upgrade-minor (361.08s) FAIL