Log: /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2315/e2e-tests/logs/upgrade-sharded.log Warning: version difference between client (1.36) and server (1.33) exceeds the supported minor version skew of +/-1 Warning: version difference between client (1.36) and server (1.33) exceeds the supported minor version skew of +/-1 Warning: version difference between client (1.36) and server (1.33) exceeds the supported minor version skew of +/-1 + cluster=upgrade-sharded + CLUSTER_SIZE=3 + TARGET_OPERATOR_VER=1.23.0 + TARGET_IMAGE=docker.io/perconalab/percona-server-mongodb-operator:PR-2315-13ff35222 + TARGET_IMAGE_MONGOD=docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0 + TARGET_IMAGE_PMM_CLIENT=docker.io/percona/pmm-client:2.44.1-1 + TARGET_IMAGE_BACKUP=docker.io/perconalab/percona-server-mongodb-operator:main-backup ++ get_mongod_ver_from_image docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0 ++ local image=docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0 +++ run_simple_cli_inside_image docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0 'mongod --version' +++ local image=docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0 +++ local 'cli=mongod --version' +++ local pod_name=28381 +++ kubectl_bin -n default run 28381 --image=docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0 --restart=Never --command -- sleep infinity +++ /usr/sbin/sed -r 's/^.*db version v(([0-9]+\.){2}[0-9]+-[0-9]+).*$/\1/g' ++++ mktemp +++ local LAST_OUT=/tmp/tmp.1YXBC3XeQd ++++ mktemp +++ local LAST_ERR=/tmp/tmp.3nfkEIlys1 +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl -n default run 28381 --image=docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0 --restart=Never --command -- sleep infinity +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.1YXBC3XeQd +++ cat /tmp/tmp.3nfkEIlys1 +++ rm /tmp/tmp.1YXBC3XeQd /tmp/tmp.3nfkEIlys1 +++ return 0 +++ kubectl_bin -n default wait --for=condition=Ready pod/28381 ++++ mktemp +++ local LAST_OUT=/tmp/tmp.BJFyNUPAHF ++++ mktemp +++ local LAST_ERR=/tmp/tmp.tR7gl2KeuH +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl -n default wait --for=condition=Ready pod/28381 +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.BJFyNUPAHF +++ cat /tmp/tmp.tR7gl2KeuH E0622 11:43:49.724692 1176290 reflector.go:227] "Failed to watch" err="Get \"https://34.67.142.185/api/v1/namespaces/default/pods?allowWatchBookmarks=true&fieldSelector=metadata.name%3D28381&resourceVersion=1782128629486191000&timeoutSeconds=562&watch=true\": context canceled" reflector="k8s.io/client-go/tools/watch/informerwatcher.go:162" type="*unstructured.Unstructured" +++ rm /tmp/tmp.BJFyNUPAHF /tmp/tmp.tR7gl2KeuH +++ return 0 ++++ kubectl_bin -n default exec 28381 -- bash -c 'mongod --version 2>&1' +++++ mktemp ++++ local LAST_OUT=/tmp/tmp.kqwv5K2h3c +++++ mktemp ++++ local LAST_ERR=/tmp/tmp.ifXE9y5prd ++++ local exit_status=0 ++++ local timeout=4 +++++ seq 0 2 ++++ for i in $(seq 0 2) ++++ set +e ++++ kubectl -n default exec 28381 -- bash -c 'mongod --version 2>&1' ++++ exit_status=0 ++++ set -e ++++ '[' 0 '!=' 0 -a -n 1 ']' ++++ break ++++ cat /tmp/tmp.kqwv5K2h3c ++++ cat /tmp/tmp.ifXE9y5prd ++++ rm /tmp/tmp.kqwv5K2h3c /tmp/tmp.ifXE9y5prd ++++ return 0 +++ local $'output=db version v8.0.23-10\nBuild Info: {\n "version": "8.0.23-10",\n "gitVersion": "10286e6c2a0ccd5d65c0b324c6fe29e5412db449",\n "openSSLVersion": "OpenSSL 3.5.5 27 Jan 2026",\n "modules": [],\n "perconaFeatures": [\n "MemoryEngine",\n "HotBackup",\n "BackupCursorAggregationStage",\n "BackupCursorExtendAggregationStage",\n "AWSIAM",\n "Kerberos",\n "LDAP",\n "OIDC",\n "TDE",\n "FIPSMode",\n "FCBIS",\n "Auditing",\n "ProfilingRateLimit",\n "LogRedaction",\n "ngram"\n ],\n "allocator": "tcmalloc-google",\n "environment": {\n "distarch": "x86_64",\n "target_arch": "x86_64"\n }\n}' +++ kubectl_bin -n default delete pod/28381 --grace-period=0 --force ++++ mktemp +++ local LAST_OUT=/tmp/tmp.bpIj7SgEmE ++++ mktemp +++ local LAST_ERR=/tmp/tmp.8t334Rawmc +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl -n default delete pod/28381 --grace-period=0 --force +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.bpIj7SgEmE +++ cat /tmp/tmp.8t334Rawmc 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. +++ rm /tmp/tmp.bpIj7SgEmE /tmp/tmp.8t334Rawmc +++ return 0 +++ echo db version v8.0.23-10 Build Info: '{' '"version":' '"8.0.23-10",' '"gitVersion":' '"10286e6c2a0ccd5d65c0b324c6fe29e5412db449",' '"openSSLVersion":' '"OpenSSL' 3.5.5 27 Jan '2026",' '"modules":' '[],' '"perconaFeatures":' '[' '"MemoryEngine",' '"HotBackup",' '"BackupCursorAggregationStage",' '"BackupCursorExtendAggregationStage",' '"AWSIAM",' '"Kerberos",' '"LDAP",' '"OIDC",' '"TDE",' '"FIPSMode",' '"FCBIS",' '"Auditing",' '"ProfilingRateLimit",' '"LogRedaction",' '"ngram"' '],' '"allocator":' '"tcmalloc-google",' '"environment":' '{' '"distarch":' '"x86_64",' '"target_arch":' '"x86_64"' '}' '}' ++ version_info=8.0.23-10 ++ [[ ! 8.0.23-10 =~ ^([0-9]+\.){2}[0-9]+-[0-9]+$ ]] ++ echo 8.0.23-10 + FULL_VER=8.0.23-10 + MONGO_VER=8.0 ++ curl -s https://check.percona.com/versions/v1/psmdb-operator ++ jq -r '.versions[].operator' ++ sort -V ++ tail -n1 + INIT_OPERATOR_VER=1.22.0 + [[ 1.22.0 == 1\.23\.0 ]] + GIT_TAG=v1.22.0 + case $(curl -s -o /dev/null -w "%{http_code}" 'https://check.percona.com/versions/v1/psmdb-operator/'${INIT_OPERATOR_VER}/'latest?databaseVersion='${MONGO_VER}'') in ++ curl -s -o /dev/null -w '%{http_code}' 'https://check.percona.com/versions/v1/psmdb-operator/1.22.0/latest?databaseVersion=8.0' ++ curl -s 'https://check.percona.com/versions/v1/psmdb-operator/1.22.0/latest?databaseVersion=8.0' + INIT_OPERATOR_IMAGES='{"versions":[{"product":"psmdb-operator","operator":"1.22.0","matrix":{"mongod":{"8.0.19-7":{"imagePath":"percona/percona-server-mongodb:8.0.19-7","imageHash":"779378a9f52cd9e617d0c356053b4b9c97209b0b759aa819300427836f6f2c66","imageHashArm64":"531793543992d2e502d3187b778f8468462dd9cdb16a58fa157fe86626594ede","status":"recommended","critical":false}},"pxc":{},"pmm":{"2.44.1-1":{"imagePath":"percona/pmm-client:2.44.1-1","imageHash":"52a8fb5e8f912eef1ff8a117ea323c401e278908ce29928dafc23fac1db4f1e3","imageHashArm64":"390bfd12f981e8b3890550c4927a3ece071377065e001894458047602c744e3b","status":"recommended","critical":false},"3.6.0":{"imagePath":"percona/pmm-client:3.6.0","imageHash":"174fa4675d3ea4d95fd7b45d11f2bcc98b98b703662e6b2614dfe886a7187b23","imageHashArm64":"435a9af2083adb68ddab6a97e6d02bd6d31c54562e919ebc09618e886d58d1ae","status":"recommended","critical":false}},"proxysql":{},"haproxy":{},"backup":{"2.12.0":{"imagePath":"percona/percona-backup-mongodb:2.12.0","imageHash":"6d56b787c2dc532c9c19cc607a2bc1855a722cdaa52024ea38d4de4aae777f8a","imageHashArm64":"e2177fa6fef0e47ee8392ca7044a6781150ccf7297383239f813558323aa0a8e","status":"recommended","critical":false}},"operator":{"1.22.0":{"imagePath":"percona/percona-server-mongodb-operator:1.22.0","imageHash":"d4384b3853dc5026cc33de1dfd68ac11aaf5d54f4e84b115e05d7d473f4c6188","imageHashArm64":"be97aad4c0642bc4e2e5c7c31b4d123d9f6135070682b8fbd6024c7620315e72","status":"recommended","critical":false}},"logCollector":{"4.0.1-2":{"imagePath":"percona/fluentbit:4.0.1-2","imageHash":"d732be16b7f3d0eea8d9c0a50f72136db83c2aed74262300d97abd2cfaefbc26","imageHashArm64":"805c102d3646b8499b74ea9864d4c29137f94e4603470c23da1c032276193a36","status":"recommended","critical":false}},"postgresql":{},"pgbackrest":{},"pgbackrestRepo":{},"pgbadger":{},"pgbouncer":{},"pxcOperator":{},"psmdbOperator":{},"pgOperatorApiserver":{},"pgOperatorEvent":{},"pgOperatorRmdata":{},"pgOperatorScheduler":{},"pgOperator":{},"pgOperatorDeployer":{},"psOperator":{},"mysql":{},"router":{},"orchestrator":{},"toolkit":{},"postgis":{},"binlogServer":{},"pgupgrade":{}}}]}' + OPERATOR_NAME=percona-server-mongodb-operator ++ echo '{"versions":[{"product":"psmdb-operator","operator":"1.22.0","matrix":{"mongod":{"8.0.19-7":{"imagePath":"percona/percona-server-mongodb:8.0.19-7","imageHash":"779378a9f52cd9e617d0c356053b4b9c97209b0b759aa819300427836f6f2c66","imageHashArm64":"531793543992d2e502d3187b778f8468462dd9cdb16a58fa157fe86626594ede","status":"recommended","critical":false}},"pxc":{},"pmm":{"2.44.1-1":{"imagePath":"percona/pmm-client:2.44.1-1","imageHash":"52a8fb5e8f912eef1ff8a117ea323c401e278908ce29928dafc23fac1db4f1e3","imageHashArm64":"390bfd12f981e8b3890550c4927a3ece071377065e001894458047602c744e3b","status":"recommended","critical":false},"3.6.0":{"imagePath":"percona/pmm-client:3.6.0","imageHash":"174fa4675d3ea4d95fd7b45d11f2bcc98b98b703662e6b2614dfe886a7187b23","imageHashArm64":"435a9af2083adb68ddab6a97e6d02bd6d31c54562e919ebc09618e886d58d1ae","status":"recommended","critical":false}},"proxysql":{},"haproxy":{},"backup":{"2.12.0":{"imagePath":"percona/percona-backup-mongodb:2.12.0","imageHash":"6d56b787c2dc532c9c19cc607a2bc1855a722cdaa52024ea38d4de4aae777f8a","imageHashArm64":"e2177fa6fef0e47ee8392ca7044a6781150ccf7297383239f813558323aa0a8e","status":"recommended","critical":false}},"operator":{"1.22.0":{"imagePath":"percona/percona-server-mongodb-operator:1.22.0","imageHash":"d4384b3853dc5026cc33de1dfd68ac11aaf5d54f4e84b115e05d7d473f4c6188","imageHashArm64":"be97aad4c0642bc4e2e5c7c31b4d123d9f6135070682b8fbd6024c7620315e72","status":"recommended","critical":false}},"logCollector":{"4.0.1-2":{"imagePath":"percona/fluentbit:4.0.1-2","imageHash":"d732be16b7f3d0eea8d9c0a50f72136db83c2aed74262300d97abd2cfaefbc26","imageHashArm64":"805c102d3646b8499b74ea9864d4c29137f94e4603470c23da1c032276193a36","status":"recommended","critical":false}},"postgresql":{},"pgbackrest":{},"pgbackrestRepo":{},"pgbadger":{},"pgbouncer":{},"pxcOperator":{},"psmdbOperator":{},"pgOperatorApiserver":{},"pgOperatorEvent":{},"pgOperatorRmdata":{},"pgOperatorScheduler":{},"pgOperator":{},"pgOperatorDeployer":{},"psOperator":{},"mysql":{},"router":{},"orchestrator":{},"toolkit":{},"postgis":{},"binlogServer":{},"pgupgrade":{}}}]}' ++ jq -r '.versions[].matrix.operator[].imagePath' + IMAGE=percona/percona-server-mongodb-operator:1.22.0 + [[ docker.io/perconalab/percona-server-mongodb-operator:PR-2315-13ff35222 == perconalab/* ]] + [[ docker.io/perconalab/percona-server-mongodb-operator:PR-2315-13ff35222 == */perconalab/* ]] + IMAGE=perconalab/percona-server-mongodb-operator:1.22.0 ++ echo '{"versions":[{"product":"psmdb-operator","operator":"1.22.0","matrix":{"mongod":{"8.0.19-7":{"imagePath":"percona/percona-server-mongodb:8.0.19-7","imageHash":"779378a9f52cd9e617d0c356053b4b9c97209b0b759aa819300427836f6f2c66","imageHashArm64":"531793543992d2e502d3187b778f8468462dd9cdb16a58fa157fe86626594ede","status":"recommended","critical":false}},"pxc":{},"pmm":{"2.44.1-1":{"imagePath":"percona/pmm-client:2.44.1-1","imageHash":"52a8fb5e8f912eef1ff8a117ea323c401e278908ce29928dafc23fac1db4f1e3","imageHashArm64":"390bfd12f981e8b3890550c4927a3ece071377065e001894458047602c744e3b","status":"recommended","critical":false},"3.6.0":{"imagePath":"percona/pmm-client:3.6.0","imageHash":"174fa4675d3ea4d95fd7b45d11f2bcc98b98b703662e6b2614dfe886a7187b23","imageHashArm64":"435a9af2083adb68ddab6a97e6d02bd6d31c54562e919ebc09618e886d58d1ae","status":"recommended","critical":false}},"proxysql":{},"haproxy":{},"backup":{"2.12.0":{"imagePath":"percona/percona-backup-mongodb:2.12.0","imageHash":"6d56b787c2dc532c9c19cc607a2bc1855a722cdaa52024ea38d4de4aae777f8a","imageHashArm64":"e2177fa6fef0e47ee8392ca7044a6781150ccf7297383239f813558323aa0a8e","status":"recommended","critical":false}},"operator":{"1.22.0":{"imagePath":"percona/percona-server-mongodb-operator:1.22.0","imageHash":"d4384b3853dc5026cc33de1dfd68ac11aaf5d54f4e84b115e05d7d473f4c6188","imageHashArm64":"be97aad4c0642bc4e2e5c7c31b4d123d9f6135070682b8fbd6024c7620315e72","status":"recommended","critical":false}},"logCollector":{"4.0.1-2":{"imagePath":"percona/fluentbit:4.0.1-2","imageHash":"d732be16b7f3d0eea8d9c0a50f72136db83c2aed74262300d97abd2cfaefbc26","imageHashArm64":"805c102d3646b8499b74ea9864d4c29137f94e4603470c23da1c032276193a36","status":"recommended","critical":false}},"postgresql":{},"pgbackrest":{},"pgbackrestRepo":{},"pgbadger":{},"pgbouncer":{},"pxcOperator":{},"psmdbOperator":{},"pgOperatorApiserver":{},"pgOperatorEvent":{},"pgOperatorRmdata":{},"pgOperatorScheduler":{},"pgOperator":{},"pgOperatorDeployer":{},"psOperator":{},"mysql":{},"router":{},"orchestrator":{},"toolkit":{},"postgis":{},"binlogServer":{},"pgupgrade":{}}}]}' ++ jq -r '.versions[].matrix.mongod[].imagePath' + IMAGE_MONGOD=percona/percona-server-mongodb:8.0.19-7 ++ echo '{"versions":[{"product":"psmdb-operator","operator":"1.22.0","matrix":{"mongod":{"8.0.19-7":{"imagePath":"percona/percona-server-mongodb:8.0.19-7","imageHash":"779378a9f52cd9e617d0c356053b4b9c97209b0b759aa819300427836f6f2c66","imageHashArm64":"531793543992d2e502d3187b778f8468462dd9cdb16a58fa157fe86626594ede","status":"recommended","critical":false}},"pxc":{},"pmm":{"2.44.1-1":{"imagePath":"percona/pmm-client:2.44.1-1","imageHash":"52a8fb5e8f912eef1ff8a117ea323c401e278908ce29928dafc23fac1db4f1e3","imageHashArm64":"390bfd12f981e8b3890550c4927a3ece071377065e001894458047602c744e3b","status":"recommended","critical":false},"3.6.0":{"imagePath":"percona/pmm-client:3.6.0","imageHash":"174fa4675d3ea4d95fd7b45d11f2bcc98b98b703662e6b2614dfe886a7187b23","imageHashArm64":"435a9af2083adb68ddab6a97e6d02bd6d31c54562e919ebc09618e886d58d1ae","status":"recommended","critical":false}},"proxysql":{},"haproxy":{},"backup":{"2.12.0":{"imagePath":"percona/percona-backup-mongodb:2.12.0","imageHash":"6d56b787c2dc532c9c19cc607a2bc1855a722cdaa52024ea38d4de4aae777f8a","imageHashArm64":"e2177fa6fef0e47ee8392ca7044a6781150ccf7297383239f813558323aa0a8e","status":"recommended","critical":false}},"operator":{"1.22.0":{"imagePath":"percona/percona-server-mongodb-operator:1.22.0","imageHash":"d4384b3853dc5026cc33de1dfd68ac11aaf5d54f4e84b115e05d7d473f4c6188","imageHashArm64":"be97aad4c0642bc4e2e5c7c31b4d123d9f6135070682b8fbd6024c7620315e72","status":"recommended","critical":false}},"logCollector":{"4.0.1-2":{"imagePath":"percona/fluentbit:4.0.1-2","imageHash":"d732be16b7f3d0eea8d9c0a50f72136db83c2aed74262300d97abd2cfaefbc26","imageHashArm64":"805c102d3646b8499b74ea9864d4c29137f94e4603470c23da1c032276193a36","status":"recommended","critical":false}},"postgresql":{},"pgbackrest":{},"pgbackrestRepo":{},"pgbadger":{},"pgbouncer":{},"pxcOperator":{},"psmdbOperator":{},"pgOperatorApiserver":{},"pgOperatorEvent":{},"pgOperatorRmdata":{},"pgOperatorScheduler":{},"pgOperator":{},"pgOperatorDeployer":{},"psOperator":{},"mysql":{},"router":{},"orchestrator":{},"toolkit":{},"postgis":{},"binlogServer":{},"pgupgrade":{}}}]}' ++ jq -r '.versions[].matrix.pmm[].imagePath' + IMAGE_PMM_CLIENT=$'percona/pmm-client:2.44.1-1\npercona/pmm-client:3.6.0' ++ echo '{"versions":[{"product":"psmdb-operator","operator":"1.22.0","matrix":{"mongod":{"8.0.19-7":{"imagePath":"percona/percona-server-mongodb:8.0.19-7","imageHash":"779378a9f52cd9e617d0c356053b4b9c97209b0b759aa819300427836f6f2c66","imageHashArm64":"531793543992d2e502d3187b778f8468462dd9cdb16a58fa157fe86626594ede","status":"recommended","critical":false}},"pxc":{},"pmm":{"2.44.1-1":{"imagePath":"percona/pmm-client:2.44.1-1","imageHash":"52a8fb5e8f912eef1ff8a117ea323c401e278908ce29928dafc23fac1db4f1e3","imageHashArm64":"390bfd12f981e8b3890550c4927a3ece071377065e001894458047602c744e3b","status":"recommended","critical":false},"3.6.0":{"imagePath":"percona/pmm-client:3.6.0","imageHash":"174fa4675d3ea4d95fd7b45d11f2bcc98b98b703662e6b2614dfe886a7187b23","imageHashArm64":"435a9af2083adb68ddab6a97e6d02bd6d31c54562e919ebc09618e886d58d1ae","status":"recommended","critical":false}},"proxysql":{},"haproxy":{},"backup":{"2.12.0":{"imagePath":"percona/percona-backup-mongodb:2.12.0","imageHash":"6d56b787c2dc532c9c19cc607a2bc1855a722cdaa52024ea38d4de4aae777f8a","imageHashArm64":"e2177fa6fef0e47ee8392ca7044a6781150ccf7297383239f813558323aa0a8e","status":"recommended","critical":false}},"operator":{"1.22.0":{"imagePath":"percona/percona-server-mongodb-operator:1.22.0","imageHash":"d4384b3853dc5026cc33de1dfd68ac11aaf5d54f4e84b115e05d7d473f4c6188","imageHashArm64":"be97aad4c0642bc4e2e5c7c31b4d123d9f6135070682b8fbd6024c7620315e72","status":"recommended","critical":false}},"logCollector":{"4.0.1-2":{"imagePath":"percona/fluentbit:4.0.1-2","imageHash":"d732be16b7f3d0eea8d9c0a50f72136db83c2aed74262300d97abd2cfaefbc26","imageHashArm64":"805c102d3646b8499b74ea9864d4c29137f94e4603470c23da1c032276193a36","status":"recommended","critical":false}},"postgresql":{},"pgbackrest":{},"pgbackrestRepo":{},"pgbadger":{},"pgbouncer":{},"pxcOperator":{},"psmdbOperator":{},"pgOperatorApiserver":{},"pgOperatorEvent":{},"pgOperatorRmdata":{},"pgOperatorScheduler":{},"pgOperator":{},"pgOperatorDeployer":{},"psOperator":{},"mysql":{},"router":{},"orchestrator":{},"toolkit":{},"postgis":{},"binlogServer":{},"pgupgrade":{}}}]}' ++ jq -r '.versions[].matrix.backup[].imagePath' + IMAGE_BACKUP=percona/percona-backup-mongodb:2.12.0 + qualify_image_var IMAGE + local var=IMAGE + local val=perconalab/percona-server-mongodb-operator:1.22.0 + local out= + local ref + [[ -z perconalab/percona-server-mongodb-operator:1.22.0 ]] + [[ perconalab/percona-server-mongodb-operator:1.22.0 == * * ]] ++ qualify_image_ref perconalab/percona-server-mongodb-operator:1.22.0 ++ local ref=perconalab/percona-server-mongodb-operator:1.22.0 ++ local first=perconalab ++ [[ perconalab == *.* ]] ++ [[ perconalab == *:* ]] ++ [[ perconalab == localhost ]] ++ [[ perconalab/percona-server-mongodb-operator:1.22.0 == percona/* ]] ++ [[ perconalab/percona-server-mongodb-operator:1.22.0 == perconalab/* ]] ++ printf %s%s docker.io/ perconalab/percona-server-mongodb-operator:1.22.0 ++ return 0 + printf -v IMAGE %s docker.io/perconalab/percona-server-mongodb-operator:1.22.0 + qualify_image_var IMAGE_MONGOD + local var=IMAGE_MONGOD + local val=percona/percona-server-mongodb:8.0.19-7 + local out= + local ref + [[ -z percona/percona-server-mongodb:8.0.19-7 ]] + [[ percona/percona-server-mongodb:8.0.19-7 == * * ]] ++ qualify_image_ref percona/percona-server-mongodb:8.0.19-7 ++ local ref=percona/percona-server-mongodb:8.0.19-7 ++ local first=percona ++ [[ percona == *.* ]] ++ [[ percona == *:* ]] ++ [[ percona == localhost ]] ++ [[ percona/percona-server-mongodb:8.0.19-7 == percona/* ]] ++ printf %s%s docker.io/ percona/percona-server-mongodb:8.0.19-7 ++ return 0 + printf -v IMAGE_MONGOD %s docker.io/percona/percona-server-mongodb:8.0.19-7 + qualify_image_var IMAGE_PMM_CLIENT + local var=IMAGE_PMM_CLIENT + local $'val=percona/pmm-client:2.44.1-1\npercona/pmm-client:3.6.0' + local out= + local ref + [[ -z percona/pmm-client:2.44.1-1 percona/pmm-client:3.6.0 ]] + [[ percona/pmm-client:2.44.1-1 percona/pmm-client:3.6.0 == * * ]] + IFS= + read -r ref + [[ -z percona/pmm-client:2.44.1-1 ]] ++ qualify_image_ref percona/pmm-client:2.44.1-1 ++ local ref=percona/pmm-client:2.44.1-1 ++ local first=percona ++ [[ percona == *.* ]] ++ [[ percona == *:* ]] ++ [[ percona == localhost ]] ++ [[ percona/pmm-client:2.44.1-1 == percona/* ]] ++ printf %s%s docker.io/ percona/pmm-client:2.44.1-1 ++ return 0 + out+=docker.io/percona/pmm-client:2.44.1-1 + out+=$'\n' + IFS= + read -r ref + [[ -z percona/pmm-client:3.6.0 ]] ++ qualify_image_ref percona/pmm-client:3.6.0 ++ local ref=percona/pmm-client:3.6.0 ++ local first=percona ++ [[ percona == *.* ]] ++ [[ percona == *:* ]] ++ [[ percona == localhost ]] ++ [[ percona/pmm-client:3.6.0 == percona/* ]] ++ printf %s%s docker.io/ percona/pmm-client:3.6.0 ++ return 0 + out+=docker.io/percona/pmm-client:3.6.0 + out+=$'\n' + IFS= + read -r ref + out=$'docker.io/percona/pmm-client:2.44.1-1\ndocker.io/percona/pmm-client:3.6.0' + printf -v IMAGE_PMM_CLIENT %s $'docker.io/percona/pmm-client:2.44.1-1\ndocker.io/percona/pmm-client:3.6.0' + return 0 + qualify_image_var IMAGE_BACKUP + local var=IMAGE_BACKUP + local val=percona/percona-backup-mongodb:2.12.0 + local out= + local ref + [[ -z percona/percona-backup-mongodb:2.12.0 ]] + [[ percona/percona-backup-mongodb:2.12.0 == * * ]] ++ qualify_image_ref percona/percona-backup-mongodb:2.12.0 ++ local ref=percona/percona-backup-mongodb:2.12.0 ++ local first=percona ++ [[ percona == *.* ]] ++ [[ percona == *:* ]] ++ [[ percona == localhost ]] ++ [[ percona/percona-backup-mongodb:2.12.0 == percona/* ]] ++ printf %s%s docker.io/ percona/percona-backup-mongodb:2.12.0 ++ return 0 + printf -v IMAGE_BACKUP %s docker.io/percona/percona-backup-mongodb:2.12.0 + [[ 1.23.0 == 1\.22\.0 ]] + main + rbac=rbac + '[' -n psmdb-operator ']' + rbac=cw-rbac + create_infra_gh upgrade-sharded-20668 v1.22.0 + local ns=upgrade-sharded-20668 + local git_tag=v1.22.0 + check_crd_for_deletion v1.22.0 + local git_tag=v1.22.0 ++ curl -s https://raw.githubusercontent.com/percona/percona-server-mongodb-operator/v1.22.0/deploy/crd.yaml ++ yq eval .metadata.name ++ /usr/sbin/sed s/---//g ++ /usr/sbin/sed ':a;N;$!ba;s/\n/ /g' + for crd_name in $(curl -s https://raw.githubusercontent.com/percona/percona-server-mongodb-operator/${git_tag}/deploy/crd.yaml | yq eval '.metadata.name' | $sed 's/---//g' | $sed ':a;N;$!ba;s/\n/ /g') ++ kubectl_bin get crd/perconaservermongodbbackups.psmdb.percona.com -o 'jsonpath={.status.conditions[-1].type}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.rWYuxCmkqp +++ mktemp ++ local LAST_ERR=/tmp/tmp.I8sh8tVrKg ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get crd/perconaservermongodbbackups.psmdb.percona.com -o 'jsonpath={.status.conditions[-1].type}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.rWYuxCmkqp ++ cat /tmp/tmp.I8sh8tVrKg ++ rm /tmp/tmp.rWYuxCmkqp /tmp/tmp.I8sh8tVrKg ++ return 0 + [[ Established == Terminating ]] + for crd_name in $(curl -s https://raw.githubusercontent.com/percona/percona-server-mongodb-operator/${git_tag}/deploy/crd.yaml | yq eval '.metadata.name' | $sed 's/---//g' | $sed ':a;N;$!ba;s/\n/ /g') ++ kubectl_bin get crd/perconaservermongodbrestores.psmdb.percona.com -o 'jsonpath={.status.conditions[-1].type}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.50zEqNbPYj +++ mktemp ++ local LAST_ERR=/tmp/tmp.MEXNqSEZnl ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get crd/perconaservermongodbrestores.psmdb.percona.com -o 'jsonpath={.status.conditions[-1].type}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.50zEqNbPYj ++ cat /tmp/tmp.MEXNqSEZnl ++ rm /tmp/tmp.50zEqNbPYj /tmp/tmp.MEXNqSEZnl ++ return 0 + [[ Established == Terminating ]] + for crd_name in $(curl -s https://raw.githubusercontent.com/percona/percona-server-mongodb-operator/${git_tag}/deploy/crd.yaml | yq eval '.metadata.name' | $sed 's/---//g' | $sed ':a;N;$!ba;s/\n/ /g') ++ kubectl_bin get crd/perconaservermongodbs.psmdb.percona.com -o 'jsonpath={.status.conditions[-1].type}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.j69dGl5FWk +++ mktemp ++ local LAST_ERR=/tmp/tmp.wtLoU9mSLQ ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get crd/perconaservermongodbs.psmdb.percona.com -o 'jsonpath={.status.conditions[-1].type}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.j69dGl5FWk ++ cat /tmp/tmp.wtLoU9mSLQ ++ rm /tmp/tmp.j69dGl5FWk /tmp/tmp.wtLoU9mSLQ ++ return 0 + [[ Established == Terminating ]] + '[' -n psmdb-operator ']' + create_namespace psmdb-operator + local namespace=psmdb-operator + local skip_clean_namespace= + [[ 1 == 1 ]] + [[ -z '' ]] + destroy_chaos_mesh ++ helm list --all-namespaces --filter chaos-mesh ++ tail -n1 ++ awk '-F ' '{print $2}' ++ sed s/NAMESPACE// + local chaos_mesh_ns= + desc 'destroy chaos-mesh' + set +o xtrace ----------------------------------------------------------------------------------- destroy chaos-mesh ----------------------------------------------------------------------------------- + '[' -n '' ']' ++ kubectl get MutatingWebhookConfiguration ++ grep chaos-mesh ++ awk '{print $1}' + timeout 30 kubectl delete MutatingWebhookConfiguration error: resource(s) were provided, but no name was specified + : ++ kubectl get ValidatingWebhookConfiguration ++ grep chaos-mesh ++ awk '{print $1}' + timeout 30 kubectl delete ValidatingWebhookConfiguration error: resource(s) were provided, but no name was specified + : ++ kubectl get ValidatingWebhookConfiguration ++ grep validate-auth ++ awk '{print $1}' + timeout 30 kubectl delete ValidatingWebhookConfiguration error: resource(s) were provided, but no name was specified + : ++ kubectl api-resources ++ grep chaos-mesh ++ awk '{print $1}' ++ kubectl get crd ++ grep chaos-mesh.org ++ awk '{print $1}' + timeout 30 kubectl delete crd error: resource(s) were provided, but no name was specified + : ++ kubectl get clusterrolebinding ++ grep chaos-mesh ++ awk '{print $1}' + timeout 30 kubectl delete clusterrolebinding error: resource(s) were provided, but no name was specified + : ++ kubectl get clusterrole ++ grep chaos-mesh ++ awk '{print $1}' + timeout 30 kubectl delete clusterrole error: resource(s) were provided, but no name was specified + : + desc 'cleaned up all old namespaces' + set +o xtrace ----------------------------------------------------------------------------------- cleaned up all old namespaces ----------------------------------------------------------------------------------- + kubectl_bin get ns + grep -E -v '^kube-|^default|Terminating|psmdb-operator|openshift|^gke-|^gmp-|^NAME' + awk '{print$1}' ++ mktemp + '[' -n '' ']' + xargs kubectl delete ns + desc 'cleaned up old namespaces psmdb-operator' + set +o xtrace ----------------------------------------------------------------------------------- cleaned up old namespaces psmdb-operator ----------------------------------------------------------------------------------- + kubectl_bin delete namespace psmdb-operator --ignore-not-found ++ mktemp + local LAST_OUT=/tmp/tmp.lG00ZT3Sae ++ mktemp + local LAST_OUT=/tmp/tmp.mpklIFoycT + local LAST_ERR=/tmp/tmp.0BTmf6v8SH + local exit_status=0 + local timeout=4 ++ mktemp ++ seq 0 2 + local LAST_ERR=/tmp/tmp.y9yyg6f9YX + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl get ns + for i in $(seq 0 2) + set +e + kubectl delete namespace psmdb-operator --ignore-not-found + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.lG00ZT3Sae + cat /tmp/tmp.0BTmf6v8SH + rm /tmp/tmp.lG00ZT3Sae /tmp/tmp.0BTmf6v8SH + return 0 namespace "cert-manager" deleted namespace "upgrade-sharded-21345" deleted + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.mpklIFoycT namespace "psmdb-operator" deleted + cat /tmp/tmp.y9yyg6f9YX + rm /tmp/tmp.mpklIFoycT /tmp/tmp.y9yyg6f9YX + return 0 + kubectl_bin wait --for=delete namespace psmdb-operator ++ mktemp + local LAST_OUT=/tmp/tmp.qWyALM1NjV ++ mktemp + local LAST_ERR=/tmp/tmp.lBJuZ3IVWM + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl wait --for=delete namespace psmdb-operator + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.qWyALM1NjV + cat /tmp/tmp.lBJuZ3IVWM + rm /tmp/tmp.qWyALM1NjV /tmp/tmp.lBJuZ3IVWM + return 0 + desc 'create namespace psmdb-operator' + set +o xtrace ----------------------------------------------------------------------------------- create namespace psmdb-operator ----------------------------------------------------------------------------------- + kubectl_bin create namespace psmdb-operator ++ mktemp + local LAST_OUT=/tmp/tmp.gotOaIuN5L ++ mktemp + local LAST_ERR=/tmp/tmp.FOzDDe0Hoy + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl create namespace psmdb-operator + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.gotOaIuN5L namespace/psmdb-operator created + cat /tmp/tmp.FOzDDe0Hoy + rm /tmp/tmp.gotOaIuN5L /tmp/tmp.FOzDDe0Hoy + return 0 + set_kube_ctx psmdb-operator + local namespace=psmdb-operator ++ kubectl_bin config current-context +++ mktemp ++ local LAST_OUT=/tmp/tmp.rzzXpGZknE +++ mktemp ++ local LAST_ERR=/tmp/tmp.VZ4dsRjDR8 ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl config current-context ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.rzzXpGZknE ++ cat /tmp/tmp.VZ4dsRjDR8 ++ rm /tmp/tmp.rzzXpGZknE /tmp/tmp.VZ4dsRjDR8 ++ return 0 + kubectl_bin config set-context gke_cloud-dev-112233_us-central1-a_jen-psmdb-2315-13ff35222-29-cluster1 --namespace=psmdb-operator ++ mktemp + local LAST_OUT=/tmp/tmp.PLkPcEfNYx ++ mktemp + local LAST_ERR=/tmp/tmp.vHPahZeosi + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl config set-context gke_cloud-dev-112233_us-central1-a_jen-psmdb-2315-13ff35222-29-cluster1 --namespace=psmdb-operator + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.PLkPcEfNYx Context "gke_cloud-dev-112233_us-central1-a_jen-psmdb-2315-13ff35222-29-cluster1" modified. + cat /tmp/tmp.vHPahZeosi + rm /tmp/tmp.PLkPcEfNYx /tmp/tmp.vHPahZeosi + return 0 + deploy_operator_gh v1.22.0 + local git_tag=v1.22.0 + desc 'start operator' + set +o xtrace ----------------------------------------------------------------------------------- start operator ----------------------------------------------------------------------------------- + kubectl_bin apply -f https://raw.githubusercontent.com/percona/percona-server-mongodb-operator/v1.22.0/deploy/crd.yaml --server-side ++ mktemp + local LAST_OUT=/tmp/tmp.gRSsGOqgRu ++ mktemp + local LAST_ERR=/tmp/tmp.kgj03VKsAi + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl apply -f https://raw.githubusercontent.com/percona/percona-server-mongodb-operator/v1.22.0/deploy/crd.yaml --server-side + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.gRSsGOqgRu customresourcedefinition.apiextensions.k8s.io/perconaservermongodbbackups.psmdb.percona.com serverside-applied customresourcedefinition.apiextensions.k8s.io/perconaservermongodbrestores.psmdb.percona.com serverside-applied customresourcedefinition.apiextensions.k8s.io/perconaservermongodbs.psmdb.percona.com serverside-applied + cat /tmp/tmp.kgj03VKsAi + rm /tmp/tmp.gRSsGOqgRu /tmp/tmp.kgj03VKsAi + return 0 + local rbac_yaml=rbac + local operator_yaml=operator + '[' -n psmdb-operator ']' + rbac_yaml=cw-rbac + operator_yaml=cw-operator + kubectl_bin apply -f https://raw.githubusercontent.com/percona/percona-server-mongodb-operator/v1.22.0/deploy/cw-rbac.yaml ++ mktemp + local LAST_OUT=/tmp/tmp.qVWOwsUnDS ++ mktemp + local LAST_ERR=/tmp/tmp.31wwkBj1Kz + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl apply -f https://raw.githubusercontent.com/percona/percona-server-mongodb-operator/v1.22.0/deploy/cw-rbac.yaml + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.qVWOwsUnDS clusterrole.rbac.authorization.k8s.io/percona-server-mongodb-operator configured serviceaccount/percona-server-mongodb-operator created clusterrolebinding.rbac.authorization.k8s.io/service-account-percona-server-mongodb-operator unchanged + cat /tmp/tmp.31wwkBj1Kz + rm /tmp/tmp.qVWOwsUnDS /tmp/tmp.31wwkBj1Kz + return 0 + curl -s https://raw.githubusercontent.com/percona/percona-server-mongodb-operator/v1.22.0/deploy/cw-operator.yaml + yq eval $'\n\t\t(.spec.template.spec.containers[].image = "docker.io/perconalab/percona-server-mongodb-operator:1.22.0") |\n\t\t((.. | select(.[] == "DISABLE_TELEMETRY")) |= .value="true") |\n\t\t((.. | select(.[] == "LOG_LEVEL")) |= .value="DEBUG")' /tmp/tmp.NWX7yZihph/cw-operator_v1.22.0.yaml + kubectl_bin apply -n psmdb-operator -f - ++ mktemp + local LAST_OUT=/tmp/tmp.ZBa50m0SyZ ++ mktemp + local LAST_ERR=/tmp/tmp.PRCnJ6azJ9 + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl apply -n psmdb-operator -f - + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.ZBa50m0SyZ deployment.apps/percona-server-mongodb-operator created + cat /tmp/tmp.PRCnJ6azJ9 + rm /tmp/tmp.ZBa50m0SyZ /tmp/tmp.PRCnJ6azJ9 + return 0 + sleep 2 ++ get_operator_pod ++ kubectl_bin get pods --selector=name=percona-server-mongodb-operator -o 'jsonpath={.items[].metadata.name}' -n psmdb-operator +++ mktemp ++ local LAST_OUT=/tmp/tmp.fP7D0YZquQ +++ mktemp ++ local LAST_ERR=/tmp/tmp.1RdUVzXAEw ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get pods --selector=name=percona-server-mongodb-operator -o 'jsonpath={.items[].metadata.name}' -n psmdb-operator ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.fP7D0YZquQ ++ cat /tmp/tmp.1RdUVzXAEw ++ rm /tmp/tmp.fP7D0YZquQ /tmp/tmp.1RdUVzXAEw ++ return 0 + wait_operator_pod percona-server-mongodb-operator-5c87b8f5df-tsd9f + local pod=percona-server-mongodb-operator-5c87b8f5df-tsd9f + set +o xtrace waiting for pod/percona-server-mongodb-operator-5c87b8f5df-tsd9f to be ready.OK + echo 'Print operator info from log' Print operator info from log + grep 'Manager starting up' ++ get_operator_pod ++ kubectl_bin get pods --selector=name=percona-server-mongodb-operator -o 'jsonpath={.items[].metadata.name}' -n psmdb-operator +++ mktemp ++ local LAST_OUT=/tmp/tmp.0Bqbuo4H9s +++ mktemp ++ local LAST_ERR=/tmp/tmp.TDoIhIzL3S ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get pods --selector=name=percona-server-mongodb-operator -o 'jsonpath={.items[].metadata.name}' -n psmdb-operator ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.0Bqbuo4H9s ++ cat /tmp/tmp.TDoIhIzL3S ++ rm /tmp/tmp.0Bqbuo4H9s /tmp/tmp.TDoIhIzL3S ++ return 0 + kubectl_bin logs -n psmdb-operator percona-server-mongodb-operator-5c87b8f5df-tsd9f ++ mktemp + local LAST_OUT=/tmp/tmp.WKbal9rmUh ++ mktemp + local LAST_ERR=/tmp/tmp.6ZqgJhTjXq + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl logs -n psmdb-operator percona-server-mongodb-operator-5c87b8f5df-tsd9f + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.WKbal9rmUh + cat /tmp/tmp.6ZqgJhTjXq + rm /tmp/tmp.WKbal9rmUh /tmp/tmp.6ZqgJhTjXq + return 0 2026-06-22T11:44:39.246Z INFO setup Manager starting up {"gitCommit": "1fc1e8b4e5640f83f0b5b71e0f25d8bbec82caf6", "gitBranch": "release-1-22-0", "buildTime": "", "goVersion": "go1.25.7", "os": "linux", "arch": "amd64"} + create_namespace upgrade-sharded-20668 + local namespace=upgrade-sharded-20668 + local skip_clean_namespace= + [[ 1 == 1 ]] + [[ -z '' ]] + destroy_chaos_mesh ++ helm list --all-namespaces --filter chaos-mesh ++ tail -n1 ++ awk '-F ' '{print $2}' ++ sed s/NAMESPACE// + local chaos_mesh_ns= + desc 'destroy chaos-mesh' + set +o xtrace ----------------------------------------------------------------------------------- destroy chaos-mesh ----------------------------------------------------------------------------------- + '[' -n '' ']' ++ kubectl get MutatingWebhookConfiguration ++ grep chaos-mesh ++ awk '{print $1}' + timeout 30 kubectl delete MutatingWebhookConfiguration error: resource(s) were provided, but no name was specified + : ++ kubectl get ValidatingWebhookConfiguration ++ grep chaos-mesh ++ awk '{print $1}' + timeout 30 kubectl delete ValidatingWebhookConfiguration error: resource(s) were provided, but no name was specified + : ++ kubectl get ValidatingWebhookConfiguration ++ grep validate-auth ++ awk '{print $1}' + timeout 30 kubectl delete ValidatingWebhookConfiguration error: resource(s) were provided, but no name was specified + : ++ kubectl api-resources ++ awk '{print $1}' ++ grep chaos-mesh ++ kubectl get crd ++ grep chaos-mesh.org ++ awk '{print $1}' + timeout 30 kubectl delete crd error: resource(s) were provided, but no name was specified + : ++ kubectl get clusterrolebinding ++ awk '{print $1}' ++ grep chaos-mesh + timeout 30 kubectl delete clusterrolebinding error: resource(s) were provided, but no name was specified + : ++ kubectl get clusterrole ++ grep chaos-mesh ++ awk '{print $1}' + timeout 30 kubectl delete clusterrole error: resource(s) were provided, but no name was specified + : + desc 'cleaned up all old namespaces' + set +o xtrace ----------------------------------------------------------------------------------- cleaned up all old namespaces ----------------------------------------------------------------------------------- + kubectl_bin get ns ++ mktemp + grep -E -v '^kube-|^default|Terminating|psmdb-operator|openshift|^gke-|^gmp-|^NAME' + '[' -n '' ']' + xargs kubectl delete ns + awk '{print$1}' + desc 'cleaned up old namespaces upgrade-sharded-20668' + set +o xtrace ----------------------------------------------------------------------------------- cleaned up old namespaces upgrade-sharded-20668 ----------------------------------------------------------------------------------- + kubectl_bin delete namespace upgrade-sharded-20668 --ignore-not-found + local LAST_OUT=/tmp/tmp.zTveSThkhB ++ mktemp ++ mktemp + local LAST_ERR=/tmp/tmp.pIS2kWSaSS + local exit_status=0 + local timeout=4 + local LAST_OUT=/tmp/tmp.mLgNrP4V7M ++ seq 0 2 ++ mktemp + for i in $(seq 0 2) + set +e + kubectl get ns + local LAST_ERR=/tmp/tmp.2VUyUrfezH + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl delete namespace upgrade-sharded-20668 --ignore-not-found + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.zTveSThkhB + cat /tmp/tmp.pIS2kWSaSS + rm /tmp/tmp.zTveSThkhB /tmp/tmp.pIS2kWSaSS + return 0 error: resource(s) were provided, but no name was specified + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.mLgNrP4V7M + cat /tmp/tmp.2VUyUrfezH + rm /tmp/tmp.mLgNrP4V7M /tmp/tmp.2VUyUrfezH + return 0 + kubectl_bin wait --for=delete namespace upgrade-sharded-20668 ++ mktemp + local LAST_OUT=/tmp/tmp.1Bnp13WUvA ++ mktemp + local LAST_ERR=/tmp/tmp.WVSkCV9TJB + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl wait --for=delete namespace upgrade-sharded-20668 + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.1Bnp13WUvA + cat /tmp/tmp.WVSkCV9TJB + rm /tmp/tmp.1Bnp13WUvA /tmp/tmp.WVSkCV9TJB + return 0 + desc 'create namespace upgrade-sharded-20668' + set +o xtrace ----------------------------------------------------------------------------------- create namespace upgrade-sharded-20668 ----------------------------------------------------------------------------------- + kubectl_bin create namespace upgrade-sharded-20668 ++ mktemp + local LAST_OUT=/tmp/tmp.46UH9zppwR ++ mktemp + local LAST_ERR=/tmp/tmp.0tf4krUOZC + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl create namespace upgrade-sharded-20668 + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.46UH9zppwR namespace/upgrade-sharded-20668 created + cat /tmp/tmp.0tf4krUOZC + rm /tmp/tmp.46UH9zppwR /tmp/tmp.0tf4krUOZC + return 0 + set_kube_ctx upgrade-sharded-20668 + local namespace=upgrade-sharded-20668 ++ kubectl_bin config current-context +++ mktemp ++ local LAST_OUT=/tmp/tmp.rNQjbWYcbo +++ mktemp ++ local LAST_ERR=/tmp/tmp.YDWdyYRVAu ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl config current-context ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.rNQjbWYcbo ++ cat /tmp/tmp.YDWdyYRVAu ++ rm /tmp/tmp.rNQjbWYcbo /tmp/tmp.YDWdyYRVAu ++ return 0 + kubectl_bin config set-context gke_cloud-dev-112233_us-central1-a_jen-psmdb-2315-13ff35222-29-cluster1 --namespace=upgrade-sharded-20668 ++ mktemp + local LAST_OUT=/tmp/tmp.Unz4sLYLmx ++ mktemp + local LAST_ERR=/tmp/tmp.rQaZ2crz0j + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl config set-context gke_cloud-dev-112233_us-central1-a_jen-psmdb-2315-13ff35222-29-cluster1 --namespace=upgrade-sharded-20668 + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.Unz4sLYLmx Context "gke_cloud-dev-112233_us-central1-a_jen-psmdb-2315-13ff35222-29-cluster1" modified. + cat /tmp/tmp.rQaZ2crz0j + rm /tmp/tmp.Unz4sLYLmx /tmp/tmp.rQaZ2crz0j + return 0 + deploy_cert_manager + desc 'deploy cert manager' + set +o xtrace ----------------------------------------------------------------------------------- deploy cert manager ----------------------------------------------------------------------------------- + kubectl_bin create namespace cert-manager ++ mktemp + local LAST_OUT=/tmp/tmp.zZc2tH2ycX ++ mktemp + local LAST_ERR=/tmp/tmp.unkVs5KRBz + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl create namespace cert-manager + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.zZc2tH2ycX namespace/cert-manager created + cat /tmp/tmp.unkVs5KRBz + rm /tmp/tmp.zZc2tH2ycX /tmp/tmp.unkVs5KRBz + return 0 + kubectl_bin label namespace cert-manager certmanager.k8s.io/disable-validation=true ++ mktemp + local LAST_OUT=/tmp/tmp.OzNTBEH3D2 ++ mktemp + local LAST_ERR=/tmp/tmp.lUu60nQU3w + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl label namespace cert-manager certmanager.k8s.io/disable-validation=true + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.OzNTBEH3D2 namespace/cert-manager labeled + cat /tmp/tmp.lUu60nQU3w + rm /tmp/tmp.OzNTBEH3D2 /tmp/tmp.lUu60nQU3w + return 0 + kubectl_bin apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.19.3/cert-manager.yaml --validate=false ++ mktemp + local LAST_OUT=/tmp/tmp.k6pGKMBako ++ mktemp + local LAST_ERR=/tmp/tmp.08zAnU0bNs + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.19.3/cert-manager.yaml --validate=false + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.k6pGKMBako namespace/cert-manager configured customresourcedefinition.apiextensions.k8s.io/challenges.acme.cert-manager.io unchanged customresourcedefinition.apiextensions.k8s.io/orders.acme.cert-manager.io unchanged customresourcedefinition.apiextensions.k8s.io/certificaterequests.cert-manager.io unchanged customresourcedefinition.apiextensions.k8s.io/certificates.cert-manager.io unchanged customresourcedefinition.apiextensions.k8s.io/clusterissuers.cert-manager.io unchanged customresourcedefinition.apiextensions.k8s.io/issuers.cert-manager.io unchanged serviceaccount/cert-manager-cainjector created serviceaccount/cert-manager created serviceaccount/cert-manager-webhook created clusterrole.rbac.authorization.k8s.io/cert-manager-cainjector unchanged clusterrole.rbac.authorization.k8s.io/cert-manager-controller-issuers unchanged clusterrole.rbac.authorization.k8s.io/cert-manager-controller-clusterissuers unchanged clusterrole.rbac.authorization.k8s.io/cert-manager-controller-certificates unchanged clusterrole.rbac.authorization.k8s.io/cert-manager-controller-orders unchanged clusterrole.rbac.authorization.k8s.io/cert-manager-controller-challenges unchanged clusterrole.rbac.authorization.k8s.io/cert-manager-controller-ingress-shim unchanged clusterrole.rbac.authorization.k8s.io/cert-manager-cluster-view unchanged clusterrole.rbac.authorization.k8s.io/cert-manager-view unchanged clusterrole.rbac.authorization.k8s.io/cert-manager-edit unchanged clusterrole.rbac.authorization.k8s.io/cert-manager-controller-approve:cert-manager-io unchanged clusterrole.rbac.authorization.k8s.io/cert-manager-controller-certificatesigningrequests unchanged clusterrole.rbac.authorization.k8s.io/cert-manager-webhook:subjectaccessreviews unchanged clusterrolebinding.rbac.authorization.k8s.io/cert-manager-cainjector unchanged clusterrolebinding.rbac.authorization.k8s.io/cert-manager-controller-issuers unchanged clusterrolebinding.rbac.authorization.k8s.io/cert-manager-controller-clusterissuers unchanged clusterrolebinding.rbac.authorization.k8s.io/cert-manager-controller-certificates unchanged clusterrolebinding.rbac.authorization.k8s.io/cert-manager-controller-orders unchanged clusterrolebinding.rbac.authorization.k8s.io/cert-manager-controller-challenges unchanged clusterrolebinding.rbac.authorization.k8s.io/cert-manager-controller-ingress-shim unchanged clusterrolebinding.rbac.authorization.k8s.io/cert-manager-controller-approve:cert-manager-io unchanged clusterrolebinding.rbac.authorization.k8s.io/cert-manager-controller-certificatesigningrequests unchanged clusterrolebinding.rbac.authorization.k8s.io/cert-manager-webhook:subjectaccessreviews unchanged role.rbac.authorization.k8s.io/cert-manager-cainjector:leaderelection unchanged role.rbac.authorization.k8s.io/cert-manager:leaderelection unchanged role.rbac.authorization.k8s.io/cert-manager-tokenrequest created role.rbac.authorization.k8s.io/cert-manager-webhook:dynamic-serving created rolebinding.rbac.authorization.k8s.io/cert-manager-cainjector:leaderelection unchanged rolebinding.rbac.authorization.k8s.io/cert-manager:leaderelection unchanged rolebinding.rbac.authorization.k8s.io/cert-manager-tokenrequest created rolebinding.rbac.authorization.k8s.io/cert-manager-webhook:dynamic-serving created service/cert-manager-cainjector created service/cert-manager created service/cert-manager-webhook created deployment.apps/cert-manager-cainjector created deployment.apps/cert-manager created deployment.apps/cert-manager-webhook created mutatingwebhookconfiguration.admissionregistration.k8s.io/cert-manager-webhook configured validatingwebhookconfiguration.admissionregistration.k8s.io/cert-manager-webhook configured + cat /tmp/tmp.08zAnU0bNs Warning: resource namespaces/cert-manager is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically. + rm /tmp/tmp.k6pGKMBako /tmp/tmp.08zAnU0bNs + return 0 + kubectl_bin -n cert-manager wait pod -l app.kubernetes.io/instance=cert-manager --for=condition=ready ++ mktemp + local LAST_OUT=/tmp/tmp.0XmlevWrAn ++ mktemp + local LAST_ERR=/tmp/tmp.LsgeMWyZtp + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl -n cert-manager wait pod -l app.kubernetes.io/instance=cert-manager --for=condition=ready + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.0XmlevWrAn pod/cert-manager-559d798845-nqg72 condition met pod/cert-manager-cainjector-64958d9c7c-p2lkz condition met pod/cert-manager-webhook-7fb6f99b56-jw2zn condition met + cat /tmp/tmp.LsgeMWyZtp E0622 11:45:16.184967 1184723 reflector.go:227] "Failed to watch" err="Get \"https://34.67.142.185/api/v1/namespaces/cert-manager/pods?allowWatchBookmarks=true&fieldSelector=metadata.name%3Dcert-manager-cainjector-64958d9c7c-p2lkz&resourceVersion=1782128715799999000&timeoutSeconds=383&watch=true\": context canceled" reflector="k8s.io/client-go/tools/watch/informerwatcher.go:162" type="*unstructured.Unstructured" + rm /tmp/tmp.0XmlevWrAn /tmp/tmp.LsgeMWyZtp + return 0 + sleep 120 + apply_s3_storage_secrets + desc 'create secrets for cloud storages' + set +o xtrace ----------------------------------------------------------------------------------- create secrets for cloud storages ----------------------------------------------------------------------------------- + '[' -z '' ']' + kubectl_bin apply -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2315/e2e-tests/conf/minio-secret.yml -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2315/e2e-tests/conf/cloud-secret.yml ++ mktemp + local LAST_OUT=/tmp/tmp.voVow3T9sw ++ mktemp + local LAST_ERR=/tmp/tmp.CrvceVntSQ + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl apply -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2315/e2e-tests/conf/minio-secret.yml -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2315/e2e-tests/conf/cloud-secret.yml + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.voVow3T9sw secret/minio-secret created secret/aws-s3-secret created secret/alibaba-cloud-secret created secret/gcp-cs-secret created secret/azure-secret created secret/gcp-cs-sa-key-secret created + cat /tmp/tmp.CrvceVntSQ + rm /tmp/tmp.voVow3T9sw /tmp/tmp.CrvceVntSQ + return 0 + deploy_minio + local cert_secret= + local service_name=minio-service + desc 'install MinIO: minio-service' + set +o xtrace ----------------------------------------------------------------------------------- install MinIO: minio-service ----------------------------------------------------------------------------------- + helm uninstall minio-service + : + helm repo remove minio "minio" has been removed from your repositories + helm repo add minio https://charts.min.io/ "minio" has been added to your repositories + local endpoint=http://minio-service:9000 + minio_args=('--version' '5.4.0' '--set' 'replicas=1' '--set' 'mode=standalone' '--set' 'resources.requests.memory=256Mi' '--set' 'rootUser=rootuser' '--set' 'rootPassword=rootpass123' '--set' 'users[0].accessKey=some-access-key' '--set' 'users[0].secretKey=some-secret-key' '--set' 'users[0].policy=consoleAdmin' '--set' 'service.type=ClusterIP' '--set' 'configPathmc=/tmp/' '--set' 'securityContext.enabled=false' '--set' 'persistence.size=2G' '--set' 'fullnameOverride=minio-service' '--set' 'serviceAccount.create=true' '--set' 'serviceAccount.name=minio-service-sa') + local minio_args + [[ -n '' ]] + retry 10 60 helm install minio-service --version 5.4.0 --set replicas=1 --set mode=standalone --set resources.requests.memory=256Mi --set rootUser=rootuser --set rootPassword=rootpass123 --set 'users[0].accessKey=some-access-key' --set 'users[0].secretKey=some-secret-key' --set 'users[0].policy=consoleAdmin' --set service.type=ClusterIP --set configPathmc=/tmp/ --set securityContext.enabled=false --set persistence.size=2G --set fullnameOverride=minio-service --set serviceAccount.create=true --set serviceAccount.name=minio-service-sa minio/minio + local max=10 + local delay=60 + shift 2 + local n=1 + helm install minio-service --version 5.4.0 --set replicas=1 --set mode=standalone --set resources.requests.memory=256Mi --set rootUser=rootuser --set rootPassword=rootpass123 --set 'users[0].accessKey=some-access-key' --set 'users[0].secretKey=some-secret-key' --set 'users[0].policy=consoleAdmin' --set service.type=ClusterIP --set configPathmc=/tmp/ --set securityContext.enabled=false --set persistence.size=2G --set fullnameOverride=minio-service --set serviceAccount.create=true --set serviceAccount.name=minio-service-sa minio/minio NAME: minio-service LAST DEPLOYED: Mon Jun 22 11:47:30 2026 NAMESPACE: upgrade-sharded-20668 STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: MinIO can be accessed via port 9000 on the following DNS name from within your cluster: minio-service.upgrade-sharded-20668.cluster.local To access MinIO from localhost, run the below commands: 1. export POD_NAME=$(kubectl get pods --namespace upgrade-sharded-20668 -l "release=minio-service" -o jsonpath="{.items[0].metadata.name}") 2. kubectl port-forward $POD_NAME 9000 --namespace upgrade-sharded-20668 Read more about port forwarding here: http://kubernetes.io/docs/user-guide/kubectl/kubectl_port-forward/ You can now access MinIO server on http://localhost:9000. Follow the below steps to connect to MinIO server with mc client: 1. Download the MinIO mc client - https://min.io/docs/minio/linux/reference/minio-mc.html#quickstart 2. export MC_HOST_minio-service-local=http://$(kubectl get secret --namespace upgrade-sharded-20668 minio-service -o jsonpath="{.data.rootUser}" | base64 --decode):$(kubectl get secret --namespace upgrade-sharded-20668 minio-service -o jsonpath="{.data.rootPassword}" | base64 --decode)@localhost:9000 3. mc ls minio-service-local ++ kubectl_bin get pods --selector=release=minio-service -o 'jsonpath={.items[].metadata.name}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.7Q9Do2Twi1 +++ mktemp ++ local LAST_ERR=/tmp/tmp.VPnjSW4KHc ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get pods --selector=release=minio-service -o 'jsonpath={.items[].metadata.name}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.7Q9Do2Twi1 ++ cat /tmp/tmp.VPnjSW4KHc ++ rm /tmp/tmp.7Q9Do2Twi1 /tmp/tmp.VPnjSW4KHc ++ return 0 + local MINIO_POD=minio-service-6d5f646cdc-p9f8j + wait_pod minio-service-6d5f646cdc-p9f8j + local pod=minio-service-6d5f646cdc-p9f8j + set +o xtrace waiting for pod/minio-service-6d5f646cdc-p9f8j to be ready.OK + '[' -n psmdb-operator ']' + kubectl_bin create svc -n psmdb-operator externalname minio-service --external-name=minio-service.upgrade-sharded-20668.svc.cluster.local --tcp=9000 service/minio-service created + create_minio_bucket operator-testing http://minio-service:9000 + local bucket=operator-testing + local endpoint=http://minio-service:9000 + kubectl_bin run -i --rm aws-cli --image=docker.io/perconalab/awscli --restart=Never -- bash -c $'AWS_ACCESS_KEY_ID=some-access-key \t\tAWS_SECRET_ACCESS_KEY=some-secret-key \t\tAWS_DEFAULT_REGION=us-east-1 /usr/bin/aws --no-verify-ssl --endpoint-url http://minio-service:9000 s3 mb s3://operator-testing' ++ mktemp + local LAST_OUT=/tmp/tmp.IwNJiSsiy7 ++ mktemp + local LAST_ERR=/tmp/tmp.ep46t3Nmeq + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl run -i --rm aws-cli --image=docker.io/perconalab/awscli --restart=Never -- bash -c $'AWS_ACCESS_KEY_ID=some-access-key \t\tAWS_SECRET_ACCESS_KEY=some-secret-key \t\tAWS_DEFAULT_REGION=us-east-1 /usr/bin/aws --no-verify-ssl --endpoint-url http://minio-service:9000 s3 mb s3://operator-testing' + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.IwNJiSsiy7 make_bucket: operator-testing pod "aws-cli" deleted from upgrade-sharded-20668 namespace + cat /tmp/tmp.ep46t3Nmeq + rm /tmp/tmp.IwNJiSsiy7 /tmp/tmp.ep46t3Nmeq + return 0 + desc 'create secrets and start client' + set +o xtrace ----------------------------------------------------------------------------------- create secrets and start client ----------------------------------------------------------------------------------- + curl -s https://raw.githubusercontent.com/percona/percona-server-mongodb-operator/v1.22.0/deploy/secrets.yaml + kubectl_bin apply -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2315/e2e-tests/conf/client.yml -f /tmp/tmp.NWX7yZihph/secrets.yaml ++ mktemp + local LAST_OUT=/tmp/tmp.AEAYOPsNIP ++ mktemp + local LAST_ERR=/tmp/tmp.XKtyviy0qU + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl apply -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2315/e2e-tests/conf/client.yml -f /tmp/tmp.NWX7yZihph/secrets.yaml + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.AEAYOPsNIP deployment.apps/psmdb-client created secret/my-cluster-name-secrets created + cat /tmp/tmp.XKtyviy0qU + rm /tmp/tmp.AEAYOPsNIP /tmp/tmp.XKtyviy0qU + return 0 + desc 'create first PSMDB cluster upgrade-sharded' + set +o xtrace ----------------------------------------------------------------------------------- create first PSMDB cluster upgrade-sharded ----------------------------------------------------------------------------------- + local cr_yaml=/tmp/tmp.NWX7yZihph/cr_v1.22.0.yaml + prepare_cr_yaml /tmp/tmp.NWX7yZihph/cr_v1.22.0.yaml + local cr_yaml=/tmp/tmp.NWX7yZihph/cr_v1.22.0.yaml + curl -s https://raw.githubusercontent.com/percona/percona-server-mongodb-operator/v1.22.0/deploy/cr.yaml + yq eval $'\n\t\t\t.metadata.name = "upgrade-sharded" |\n\t\t\t.spec.upgradeOptions.apply = "disabled" |\n\t\t\t.spec.replsets[].size = 3 |\n\t\t\t.spec.replsets[].arbiter.enabled = false |\n\t\t\t.spec.backup.enabled = true |\n\t\t\t.spec.backup.tasks = [] |\n\t\t\t.spec.backup.pitr.enabled = false |\n\t\t\t.spec.backup.storages.minio.type = "s3" |\n\t\t\t.spec.backup.storages.minio.s3.credentialsSecret = "minio-secret" |\n\t\t\t.spec.backup.storages.minio.s3.region = "us-east-1" |\n\t\t\t.spec.backup.storages.minio.s3.bucket = "operator-testing" |\n\t\t\t.spec.backup.storages.minio.s3.endpointUrl = "http://minio-service:9000/" |\n\t\t\t.spec.backup.storages.minio.s3.insecureSkipTLSVerify = false |\n\t\t\t.spec.sharding.enabled = true |\n\t\t\t.spec.sharding.configsvrReplSet.size = 3 |\n\t\t\t.spec.sharding.mongos.size = 3 |\n\t\t\t.spec.image="" | .spec.image tag="!!null" |\n\t\t\t.spec.backup.image = "-backup" |\n\t\t\t.spec.pmm.image = "-pmm"' + apply_cluster /tmp/tmp.NWX7yZihph/cr_v1.22.0.yaml + '[' -z '' ']' + cat_config /tmp/tmp.NWX7yZihph/cr_v1.22.0.yaml + kubectl_bin apply -f - + cat /tmp/tmp.NWX7yZihph/cr_v1.22.0.yaml + yq eval '(.spec | select(.image == null)).image = "docker.io/percona/percona-server-mongodb:8.0.19-7"' ++ mktemp + yq eval $'(.spec | select(has("pmm"))).pmm.image = "docker.io/percona/pmm-client:2.44.1-1\ndocker.io/percona/pmm-client:3.6.0"' + yq eval '(.spec | select(has("initImage"))).initImage = "docker.io/perconalab/percona-server-mongodb-operator:1.22.0"' + yq eval '(.spec | select(has("backup"))).backup.image = "docker.io/percona/percona-backup-mongodb:2.12.0"' + yq eval '(.spec | select(has("search"))).search.image = "mongodb/mongodb-community-search:latest"' + local LAST_OUT=/tmp/tmp.hmRvQdWkKY ++ mktemp + /usr/sbin/sed -e s/NAME_SPACE/upgrade-sharded-20668/g + yq eval '.spec.upgradeOptions.apply="Never"' + local LAST_ERR=/tmp/tmp.zdx0UzAF6U + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl apply -f - + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.hmRvQdWkKY perconaservermongodb.psmdb.percona.com/upgrade-sharded created + cat /tmp/tmp.zdx0UzAF6U + rm /tmp/tmp.hmRvQdWkKY /tmp/tmp.zdx0UzAF6U + return 0 + desc 'check if all Pods started' + set +o xtrace ----------------------------------------------------------------------------------- check if all Pods started ----------------------------------------------------------------------------------- + wait_for_running upgrade-sharded-rs0 3 false + local name=upgrade-sharded-rs0 + let last_pod=2 + local check_cluster_readyness=false + set_debug + [[ 1 == 1 ]] + set -o xtrace + local rs_name=rs0 + local cluster_name=upgrade-sharded ++ seq 0 2 + for i in $(seq 0 $last_pod) + [[ 0 -eq 2 ]] + wait_pod upgrade-sharded-rs0-0 + local pod=upgrade-sharded-rs0-0 + set +o xtrace waiting for pod/upgrade-sharded-rs0-0 to be ready.........OK + for i in $(seq 0 $last_pod) + [[ 1 -eq 2 ]] + wait_pod upgrade-sharded-rs0-1 + local pod=upgrade-sharded-rs0-1 + set +o xtrace waiting for pod/upgrade-sharded-rs0-1 to be ready........OK + for i in $(seq 0 $last_pod) + [[ 2 -eq 2 ]] ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].arbiter.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.W6llybJEtR +++ mktemp ++ local LAST_ERR=/tmp/tmp.BFp6sY8gr7 ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].arbiter.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.W6llybJEtR ++ cat /tmp/tmp.BFp6sY8gr7 ++ rm /tmp/tmp.W6llybJEtR /tmp/tmp.BFp6sY8gr7 ++ return 0 + [[ false == true ]] + wait_pod upgrade-sharded-rs0-2 + local pod=upgrade-sharded-rs0-2 + set +o xtrace waiting for pod/upgrade-sharded-rs0-2 to be ready.....OK ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].nonvoting.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.9r02rxVTL6 +++ mktemp ++ local LAST_ERR=/tmp/tmp.p9BhrOO0je ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].nonvoting.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.9r02rxVTL6 ++ cat /tmp/tmp.p9BhrOO0je ++ rm /tmp/tmp.9r02rxVTL6 /tmp/tmp.p9BhrOO0je ++ return 0 + [[ false == true ]] ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].hidden.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.IpdVwISu2b +++ mktemp ++ local LAST_ERR=/tmp/tmp.BIBpaOVDWL ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].hidden.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.IpdVwISu2b ++ cat /tmp/tmp.BIBpaOVDWL ++ rm /tmp/tmp.IpdVwISu2b /tmp/tmp.BIBpaOVDWL ++ return 0 + [[ false == true ]] + sleep 10 + [[ false == true ]] + wait_for_running upgrade-sharded-cfg 3 false + local name=upgrade-sharded-cfg + let last_pod=2 + local check_cluster_readyness=false + set_debug + [[ 1 == 1 ]] + set -o xtrace + local rs_name=cfg + local cluster_name=upgrade-sharded ++ seq 0 2 + for i in $(seq 0 $last_pod) + [[ 0 -eq 2 ]] + wait_pod upgrade-sharded-cfg-0 + local pod=upgrade-sharded-cfg-0 + set +o xtrace waiting for pod/upgrade-sharded-cfg-0 to be ready.OK + for i in $(seq 0 $last_pod) + [[ 1 -eq 2 ]] + wait_pod upgrade-sharded-cfg-1 + local pod=upgrade-sharded-cfg-1 + set +o xtrace waiting for pod/upgrade-sharded-cfg-1 to be ready.OK + for i in $(seq 0 $last_pod) + [[ 2 -eq 2 ]] ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="cfg")].arbiter.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.WTznXDp19f +++ mktemp ++ local LAST_ERR=/tmp/tmp.yS6bTE8urh ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="cfg")].arbiter.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.WTznXDp19f ++ cat /tmp/tmp.yS6bTE8urh ++ rm /tmp/tmp.WTznXDp19f /tmp/tmp.yS6bTE8urh ++ return 0 + [[ '' == true ]] + wait_pod upgrade-sharded-cfg-2 + local pod=upgrade-sharded-cfg-2 + set +o xtrace waiting for pod/upgrade-sharded-cfg-2 to be ready.OK ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="cfg")].nonvoting.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.M350MoQrEa +++ mktemp ++ local LAST_ERR=/tmp/tmp.wW6rZ6XzlR ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="cfg")].nonvoting.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.M350MoQrEa ++ cat /tmp/tmp.wW6rZ6XzlR ++ rm /tmp/tmp.M350MoQrEa /tmp/tmp.wW6rZ6XzlR ++ return 0 + [[ '' == true ]] ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="cfg")].hidden.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.NfoSQfIN4w +++ mktemp ++ local LAST_ERR=/tmp/tmp.91oseMTU0y ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="cfg")].hidden.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.NfoSQfIN4w ++ cat /tmp/tmp.91oseMTU0y ++ rm /tmp/tmp.NfoSQfIN4w /tmp/tmp.91oseMTU0y ++ return 0 + [[ '' == true ]] + sleep 10 + [[ false == true ]] + wait_cluster_consistency upgrade-sharded + local retry=0 ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.pZiQqoYUpn +++ mktemp ++ local LAST_ERR=/tmp/tmp.o42CzzUPkH ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.pZiQqoYUpn ++ cat /tmp/tmp.o42CzzUPkH ++ rm /tmp/tmp.pZiQqoYUpn /tmp/tmp.o42CzzUPkH ++ return 0 + [[ initializing == ready ]] + let retry+=1 + '[' 1 -ge 32 ']' + echo 'waiting for cluster readyness' waiting for cluster readyness + sleep 20 ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.DH3quxjlEJ +++ mktemp ++ local LAST_ERR=/tmp/tmp.GKngo4K9z7 ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.DH3quxjlEJ ++ cat /tmp/tmp.GKngo4K9z7 ++ rm /tmp/tmp.DH3quxjlEJ /tmp/tmp.GKngo4K9z7 ++ return 0 + [[ initializing == ready ]] + let retry+=1 + '[' 2 -ge 32 ']' + echo 'waiting for cluster readyness' waiting for cluster readyness + sleep 20 ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.NkOo6AWBH2 +++ mktemp ++ local LAST_ERR=/tmp/tmp.iFA9pPSQV4 ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.NkOo6AWBH2 ++ cat /tmp/tmp.iFA9pPSQV4 ++ rm /tmp/tmp.NkOo6AWBH2 /tmp/tmp.iFA9pPSQV4 ++ return 0 + [[ initializing == ready ]] + let retry+=1 + '[' 3 -ge 32 ']' + echo 'waiting for cluster readyness' waiting for cluster readyness + sleep 20 ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.8FjOCUtoTY +++ mktemp ++ local LAST_ERR=/tmp/tmp.hqQR8TWfD5 ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.8FjOCUtoTY ++ cat /tmp/tmp.hqQR8TWfD5 ++ rm /tmp/tmp.8FjOCUtoTY /tmp/tmp.hqQR8TWfD5 ++ return 0 + [[ ready == ready ]] ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.replsets.rs0.ready}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.vmJjHS3VRO +++ mktemp ++ local LAST_ERR=/tmp/tmp.udH3Itl7gA ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.replsets.rs0.ready}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.vmJjHS3VRO ++ cat /tmp/tmp.udH3Itl7gA ++ rm /tmp/tmp.vmJjHS3VRO /tmp/tmp.udH3Itl7gA ++ return 0 + [[ 3 == 3 ]] ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.replsets.cfg.ready}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.jN5rgloDLE +++ mktemp ++ local LAST_ERR=/tmp/tmp.CSq40NUajO ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.replsets.cfg.ready}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.jN5rgloDLE ++ cat /tmp/tmp.CSq40NUajO ++ rm /tmp/tmp.jN5rgloDLE /tmp/tmp.CSq40NUajO ++ return 0 + [[ 3 == 3 ]] + desc 'create user myApp' + set +o xtrace ----------------------------------------------------------------------------------- create user myApp ----------------------------------------------------------------------------------- + run_mongos 'db.createUser({user: "myApp", pwd: "myPass", roles: [{ db: "myApp", role: "readWrite" }]})' userAdmin:userAdmin123456@upgrade-sharded-mongos.upgrade-sharded-20668 + local 'command=db.createUser({user: "myApp", pwd: "myPass", roles: [{ db: "myApp", role: "readWrite" }]})' + local uri=userAdmin:userAdmin123456@upgrade-sharded-mongos.upgrade-sharded-20668 + local driver=mongodb + local suffix=.svc.cluster.local + local mongo_flag= + local port=27017 + local mongo_bin=mongo ++ echo .svc.cluster.local ++ awk -F: '{print $2}' + suffix_port= + [[ -z '' ]] + suffix=.svc.cluster.local:27017 ++ kubectl_bin get pods --selector=name=psmdb-client -o 'jsonpath={.items[].metadata.name}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.lVrdc5Q8p4 +++ mktemp ++ local LAST_ERR=/tmp/tmp.18SPbxIA9l ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get pods --selector=name=psmdb-client -o 'jsonpath={.items[].metadata.name}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.lVrdc5Q8p4 ++ cat /tmp/tmp.18SPbxIA9l ++ rm /tmp/tmp.lVrdc5Q8p4 /tmp/tmp.18SPbxIA9l ++ return 0 + local client_container=psmdb-client-bb8b97679-v4vnb + kubectl_bin exec psmdb-client-bb8b97679-v4vnb -- bash -c 'printf '\''db.createUser({user: "myApp", pwd: "myPass", roles: [{ db: "myApp", role: "readWrite" }]})\n'\'' | mongo mongodb://userAdmin:userAdmin123456@upgrade-sharded-mongos.upgrade-sharded-20668.svc.cluster.local:27017/admin ' ++ mktemp + local LAST_OUT=/tmp/tmp.CJL7NldBDL ++ mktemp + local LAST_ERR=/tmp/tmp.kF0KK2qHti + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl exec psmdb-client-bb8b97679-v4vnb -- bash -c 'printf '\''db.createUser({user: "myApp", pwd: "myPass", roles: [{ db: "myApp", role: "readWrite" }]})\n'\'' | mongo mongodb://userAdmin:userAdmin123456@upgrade-sharded-mongos.upgrade-sharded-20668.svc.cluster.local:27017/admin ' + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.CJL7NldBDL Percona Server for MongoDB shell version v4.4.29-28 connecting to: mongodb://upgrade-sharded-mongos.upgrade-sharded-20668.svc.cluster.local:27017/admin?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("2190c7c2-fc4b-4425-b7c8-02d81c920eb8") } Percona Server for MongoDB server version: v8.0.19-7 WARNING: shell and server versions do not match Successfully added user: { "user" : "myApp", "roles" : [ { "db" : "myApp", "role" : "readWrite" } ] } bye + cat /tmp/tmp.kF0KK2qHti + rm /tmp/tmp.CJL7NldBDL /tmp/tmp.kF0KK2qHti + return 0 + desc 'write data, read from all' + set +o xtrace ----------------------------------------------------------------------------------- write data, read from all ----------------------------------------------------------------------------------- + run_mongos 'use myApp\n db.test.insert({ x: 100500 })' myApp:myPass@upgrade-sharded-mongos.upgrade-sharded-20668 + local 'command=use myApp\n db.test.insert({ x: 100500 })' + local uri=myApp:myPass@upgrade-sharded-mongos.upgrade-sharded-20668 + local driver=mongodb + local suffix=.svc.cluster.local + local mongo_flag= + local port=27017 + local mongo_bin=mongo ++ echo .svc.cluster.local ++ awk -F: '{print $2}' + suffix_port= + [[ -z '' ]] + suffix=.svc.cluster.local:27017 ++ kubectl_bin get pods --selector=name=psmdb-client -o 'jsonpath={.items[].metadata.name}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.OzyVLDgMOB +++ mktemp ++ local LAST_ERR=/tmp/tmp.B5uN8hGamD ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get pods --selector=name=psmdb-client -o 'jsonpath={.items[].metadata.name}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.OzyVLDgMOB ++ cat /tmp/tmp.B5uN8hGamD ++ rm /tmp/tmp.OzyVLDgMOB /tmp/tmp.B5uN8hGamD ++ return 0 + local client_container=psmdb-client-bb8b97679-v4vnb + kubectl_bin exec psmdb-client-bb8b97679-v4vnb -- bash -c 'printf '\''use myApp\n db.test.insert({ x: 100500 })\n'\'' | mongo mongodb://myApp:myPass@upgrade-sharded-mongos.upgrade-sharded-20668.svc.cluster.local:27017/admin ' ++ mktemp + local LAST_OUT=/tmp/tmp.pguu6hN3Om ++ mktemp + local LAST_ERR=/tmp/tmp.lV8NYFK1JK + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl exec psmdb-client-bb8b97679-v4vnb -- bash -c 'printf '\''use myApp\n db.test.insert({ x: 100500 })\n'\'' | mongo mongodb://myApp:myPass@upgrade-sharded-mongos.upgrade-sharded-20668.svc.cluster.local:27017/admin ' + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.pguu6hN3Om Percona Server for MongoDB shell version v4.4.29-28 connecting to: mongodb://upgrade-sharded-mongos.upgrade-sharded-20668.svc.cluster.local:27017/admin?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("2478bfd5-48a4-4df2-8165-2935106f8ebe") } Percona Server for MongoDB server version: v8.0.19-7 WARNING: shell and server versions do not match switched to db myApp WriteResult({ "nInserted" : 1 }) bye + cat /tmp/tmp.lV8NYFK1JK + rm /tmp/tmp.pguu6hN3Om /tmp/tmp.lV8NYFK1JK + return 0 + compare_generation 1 statefulset upgrade-sharded-rs0 + local generation=1 + local resource=statefulset + local name=upgrade-sharded-rs0 + local current_generation ++ kubectl_bin get statefulset upgrade-sharded-rs0 -o 'jsonpath={.metadata.generation}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.fIXS7TUhNo +++ mktemp ++ local LAST_ERR=/tmp/tmp.gkZ1tC9C0d ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get statefulset upgrade-sharded-rs0 -o 'jsonpath={.metadata.generation}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.fIXS7TUhNo ++ cat /tmp/tmp.gkZ1tC9C0d ++ rm /tmp/tmp.fIXS7TUhNo /tmp/tmp.gkZ1tC9C0d ++ return 0 + current_generation=1 + [[ 1 != 1 ]] + compare_generation 1 statefulset upgrade-sharded-cfg + local generation=1 + local resource=statefulset + local name=upgrade-sharded-cfg + local current_generation ++ kubectl_bin get statefulset upgrade-sharded-cfg -o 'jsonpath={.metadata.generation}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.FM8AtVW6vX +++ mktemp ++ local LAST_ERR=/tmp/tmp.Jf178DJKXO ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get statefulset upgrade-sharded-cfg -o 'jsonpath={.metadata.generation}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.FM8AtVW6vX ++ cat /tmp/tmp.Jf178DJKXO ++ rm /tmp/tmp.FM8AtVW6vX /tmp/tmp.Jf178DJKXO ++ return 0 + current_generation=1 + [[ 1 != 1 ]] + compare_generation 1 statefulset upgrade-sharded-mongos + local generation=1 + local resource=statefulset + local name=upgrade-sharded-mongos + local current_generation ++ kubectl_bin get statefulset upgrade-sharded-mongos -o 'jsonpath={.metadata.generation}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.Tq7NhwCV0r +++ mktemp ++ local LAST_ERR=/tmp/tmp.JpqZmbQK24 ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get statefulset upgrade-sharded-mongos -o 'jsonpath={.metadata.generation}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.Tq7NhwCV0r ++ cat /tmp/tmp.JpqZmbQK24 ++ rm /tmp/tmp.Tq7NhwCV0r /tmp/tmp.JpqZmbQK24 ++ return 0 + current_generation=1 + [[ 1 != 1 ]] + compare_generation 1 psmdb upgrade-sharded + local generation=1 + local resource=psmdb + local name=upgrade-sharded + local current_generation ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.metadata.generation}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.gjTz6Uz0JE +++ mktemp ++ local LAST_ERR=/tmp/tmp.2muR2cSylW ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.metadata.generation}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.gjTz6Uz0JE ++ cat /tmp/tmp.2muR2cSylW ++ rm /tmp/tmp.gjTz6Uz0JE /tmp/tmp.2muR2cSylW ++ return 0 + current_generation=1 + [[ 1 != 1 ]] + backup_name_minio=backup-minio + desc 'create backup backup-minio' + set +o xtrace ----------------------------------------------------------------------------------- create backup backup-minio ----------------------------------------------------------------------------------- + wait_backup_agent upgrade-sharded-rs0-0 + local agent_pod=upgrade-sharded-rs0-0 + set +o xtrace waiting for pbm-agent to be ready in upgrade-sharded-rs0-0...2026-06-22T11:50:31.000+0000 I listening for the commands + wait_backup_agent upgrade-sharded-rs0-1 + local agent_pod=upgrade-sharded-rs0-1 + set +o xtrace waiting for pbm-agent to be ready in upgrade-sharded-rs0-1...2026-06-22T11:50:34.000+0000 I listening for the commands + wait_backup_agent upgrade-sharded-rs0-2 + local agent_pod=upgrade-sharded-rs0-2 + set +o xtrace waiting for pbm-agent to be ready in upgrade-sharded-rs0-2...2026-06-22T11:50:40.000+0000 I listening for the commands + wait_backup_agent upgrade-sharded-cfg-0 + local agent_pod=upgrade-sharded-cfg-0 + set +o xtrace waiting for pbm-agent to be ready in upgrade-sharded-cfg-0...2026-06-22T11:49:54.000+0000 I listening for the commands + wait_backup_agent upgrade-sharded-cfg-1 + local agent_pod=upgrade-sharded-cfg-1 + set +o xtrace waiting for pbm-agent to be ready in upgrade-sharded-cfg-1...2026-06-22T11:50:05.000+0000 I listening for the commands + wait_backup_agent upgrade-sharded-cfg-2 + local agent_pod=upgrade-sharded-cfg-2 + set +o xtrace waiting for pbm-agent to be ready in upgrade-sharded-cfg-2...2026-06-22T11:50:10.000+0000 I listening for the commands + run_backup minio + local storage=minio + local backup_name=backup-minio + local type=logical + log 'running backup backup-minio' + set +o xtrace [2026-06-22T11:51:13+0000] running backup backup-minio + yq eval $'.metadata.name = "backup-minio"\n\t\t\t| .spec.storageName = "minio"\n\t\t\t| .spec.type = "logical"' /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2315/e2e-tests/upgrade-sharded/conf/backup-minio.yml + kubectl_bin apply -f - ++ mktemp + local LAST_OUT=/tmp/tmp.A8ZYzuUd7a ++ mktemp + local LAST_ERR=/tmp/tmp.lLXYH9RtQS + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl apply -f - + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.A8ZYzuUd7a perconaservermongodbbackup.psmdb.percona.com/backup-minio created + cat /tmp/tmp.lLXYH9RtQS + rm /tmp/tmp.A8ZYzuUd7a /tmp/tmp.lLXYH9RtQS + return 0 + wait_backup backup-minio + local backup_name=backup-minio + local target_state=ready + set +o xtrace waiting for backup-minio to reach ready state.................OK + desc 'upgrade operator' + set +o xtrace ----------------------------------------------------------------------------------- upgrade operator ----------------------------------------------------------------------------------- + kubectl_bin apply --server-side --force-conflicts -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2315/deploy/crd.yaml ++ mktemp + local LAST_OUT=/tmp/tmp.LZdseJdhRP ++ mktemp + local LAST_ERR=/tmp/tmp.mdu6nVWPsS + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl apply --server-side --force-conflicts -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2315/deploy/crd.yaml + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.LZdseJdhRP customresourcedefinition.apiextensions.k8s.io/perconaservermongodbbackups.psmdb.percona.com serverside-applied customresourcedefinition.apiextensions.k8s.io/perconaservermongodbclustersyncs.psmdb.percona.com serverside-applied customresourcedefinition.apiextensions.k8s.io/perconaservermongodbrestores.psmdb.percona.com serverside-applied customresourcedefinition.apiextensions.k8s.io/perconaservermongodbs.psmdb.percona.com serverside-applied + cat /tmp/tmp.mdu6nVWPsS + rm /tmp/tmp.LZdseJdhRP /tmp/tmp.mdu6nVWPsS + return 0 + kubectl_bin apply -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2315/deploy/cw-rbac.yaml -n psmdb-operator ++ mktemp + local LAST_OUT=/tmp/tmp.c9U6ZCIkZ2 ++ mktemp + local LAST_ERR=/tmp/tmp.dkOMWCEI5J + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl apply -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2315/deploy/cw-rbac.yaml -n psmdb-operator + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.c9U6ZCIkZ2 clusterrole.rbac.authorization.k8s.io/percona-server-mongodb-operator configured serviceaccount/percona-server-mongodb-operator unchanged clusterrolebinding.rbac.authorization.k8s.io/service-account-percona-server-mongodb-operator unchanged + cat /tmp/tmp.dkOMWCEI5J + rm /tmp/tmp.c9U6ZCIkZ2 /tmp/tmp.dkOMWCEI5J + return 0 + desc 'use new image docker.io/perconalab/percona-server-mongodb-operator:PR-2315-13ff35222' + set +o xtrace ----------------------------------------------------------------------------------- use new image docker.io/perconalab/percona-server-mongodb-operator:PR-2315-13ff35222 ----------------------------------------------------------------------------------- + kubectl_bin patch deployment -n psmdb-operator percona-server-mongodb-operator '-p{"spec":{"template":{"spec":{"containers":[{"name":"percona-server-mongodb-operator","image":"docker.io/perconalab/percona-server-mongodb-operator:PR-2315-13ff35222"}]}}}}' ++ mktemp + local LAST_OUT=/tmp/tmp.RrwAckgBRP ++ mktemp + local LAST_ERR=/tmp/tmp.647lf1QFAM + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl patch deployment -n psmdb-operator percona-server-mongodb-operator '-p{"spec":{"template":{"spec":{"containers":[{"name":"percona-server-mongodb-operator","image":"docker.io/perconalab/percona-server-mongodb-operator:PR-2315-13ff35222"}]}}}}' + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.RrwAckgBRP deployment.apps/percona-server-mongodb-operator patched + cat /tmp/tmp.647lf1QFAM + rm /tmp/tmp.RrwAckgBRP /tmp/tmp.647lf1QFAM + return 0 + kubectl_bin rollout status deployment/percona-server-mongodb-operator -n psmdb-operator ++ mktemp + local LAST_OUT=/tmp/tmp.bEWwdRlWOR ++ mktemp + local LAST_ERR=/tmp/tmp.ukysxiCMVL + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl rollout status deployment/percona-server-mongodb-operator -n psmdb-operator + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.bEWwdRlWOR Waiting for deployment "percona-server-mongodb-operator" rollout to finish: 1 old replicas are pending termination... Waiting for deployment "percona-server-mongodb-operator" rollout to finish: 1 old replicas are pending termination... deployment "percona-server-mongodb-operator" successfully rolled out + cat /tmp/tmp.ukysxiCMVL + rm /tmp/tmp.bEWwdRlWOR /tmp/tmp.ukysxiCMVL + return 0 + desc 'wait for operator upgrade' + set +o xtrace ----------------------------------------------------------------------------------- wait for operator upgrade ----------------------------------------------------------------------------------- ++ kubectl_bin get pods -n psmdb-operator --selector=name=percona-server-mongodb-operator -o 'custom-columns=NAME:.metadata.name,IMAGE:.spec.containers[0].image' ++ grep -vc NAME ++ awk '{print $1}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.nRgBe2qUg7 +++ mktemp ++ local LAST_ERR=/tmp/tmp.SEdNU0uFu1 ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get pods -n psmdb-operator --selector=name=percona-server-mongodb-operator -o 'custom-columns=NAME:.metadata.name,IMAGE:.spec.containers[0].image' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.nRgBe2qUg7 ++ cat /tmp/tmp.SEdNU0uFu1 ++ rm /tmp/tmp.nRgBe2qUg7 /tmp/tmp.SEdNU0uFu1 ++ return 0 + [[ 1 -eq 1 ]] + sleep 10 + desc 'check images and generation after operator upgrade' + set +o xtrace ----------------------------------------------------------------------------------- check images and generation after operator upgrade ----------------------------------------------------------------------------------- + wait_for_running upgrade-sharded-rs0 3 false + local name=upgrade-sharded-rs0 + let last_pod=2 + local check_cluster_readyness=false + set_debug + [[ 1 == 1 ]] + set -o xtrace + local rs_name=rs0 + local cluster_name=upgrade-sharded ++ seq 0 2 + for i in $(seq 0 $last_pod) + [[ 0 -eq 2 ]] + wait_pod upgrade-sharded-rs0-0 + local pod=upgrade-sharded-rs0-0 + set +o xtrace waiting for pod/upgrade-sharded-rs0-0 to be ready.OK + for i in $(seq 0 $last_pod) + [[ 1 -eq 2 ]] + wait_pod upgrade-sharded-rs0-1 + local pod=upgrade-sharded-rs0-1 + set +o xtrace waiting for pod/upgrade-sharded-rs0-1 to be ready.OK + for i in $(seq 0 $last_pod) + [[ 2 -eq 2 ]] ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].arbiter.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.De2dp7qqZ7 +++ mktemp ++ local LAST_ERR=/tmp/tmp.t1EXKX1nec ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].arbiter.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.De2dp7qqZ7 ++ cat /tmp/tmp.t1EXKX1nec ++ rm /tmp/tmp.De2dp7qqZ7 /tmp/tmp.t1EXKX1nec ++ return 0 + [[ false == true ]] + wait_pod upgrade-sharded-rs0-2 + local pod=upgrade-sharded-rs0-2 + set +o xtrace waiting for pod/upgrade-sharded-rs0-2 to be ready.OK ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].nonvoting.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.qTuY3j1cwc +++ mktemp ++ local LAST_ERR=/tmp/tmp.aDG4Gndo25 ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].nonvoting.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.qTuY3j1cwc ++ cat /tmp/tmp.aDG4Gndo25 ++ rm /tmp/tmp.qTuY3j1cwc /tmp/tmp.aDG4Gndo25 ++ return 0 + [[ false == true ]] ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].hidden.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.KJ8SvsllwH +++ mktemp ++ local LAST_ERR=/tmp/tmp.1AIGUwhrFh ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].hidden.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.KJ8SvsllwH ++ cat /tmp/tmp.1AIGUwhrFh ++ rm /tmp/tmp.KJ8SvsllwH /tmp/tmp.1AIGUwhrFh ++ return 0 + [[ false == true ]] + sleep 10 + [[ false == true ]] + wait_for_running upgrade-sharded-cfg 3 false + local name=upgrade-sharded-cfg + let last_pod=2 + local check_cluster_readyness=false + set_debug + [[ 1 == 1 ]] + set -o xtrace + local rs_name=cfg + local cluster_name=upgrade-sharded ++ seq 0 2 + for i in $(seq 0 $last_pod) + [[ 0 -eq 2 ]] + wait_pod upgrade-sharded-cfg-0 + local pod=upgrade-sharded-cfg-0 + set +o xtrace waiting for pod/upgrade-sharded-cfg-0 to be ready.OK + for i in $(seq 0 $last_pod) + [[ 1 -eq 2 ]] + wait_pod upgrade-sharded-cfg-1 + local pod=upgrade-sharded-cfg-1 + set +o xtrace waiting for pod/upgrade-sharded-cfg-1 to be ready.OK + for i in $(seq 0 $last_pod) + [[ 2 -eq 2 ]] ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="cfg")].arbiter.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.lIxeihur8B +++ mktemp ++ local LAST_ERR=/tmp/tmp.z4Izhuvuct ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="cfg")].arbiter.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.lIxeihur8B ++ cat /tmp/tmp.z4Izhuvuct ++ rm /tmp/tmp.lIxeihur8B /tmp/tmp.z4Izhuvuct ++ return 0 + [[ '' == true ]] + wait_pod upgrade-sharded-cfg-2 + local pod=upgrade-sharded-cfg-2 + set +o xtrace waiting for pod/upgrade-sharded-cfg-2 to be ready.OK ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="cfg")].nonvoting.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.MEdQBrzKz7 +++ mktemp ++ local LAST_ERR=/tmp/tmp.Re9JvBTiVE ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="cfg")].nonvoting.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.MEdQBrzKz7 ++ cat /tmp/tmp.Re9JvBTiVE ++ rm /tmp/tmp.MEdQBrzKz7 /tmp/tmp.Re9JvBTiVE ++ return 0 + [[ '' == true ]] ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="cfg")].hidden.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.UEd3sArwUr +++ mktemp ++ local LAST_ERR=/tmp/tmp.lO0aA4jBR0 ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="cfg")].hidden.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.UEd3sArwUr ++ cat /tmp/tmp.lO0aA4jBR0 ++ rm /tmp/tmp.UEd3sArwUr /tmp/tmp.lO0aA4jBR0 ++ return 0 + [[ '' == true ]] + sleep 10 + [[ false == true ]] + wait_cluster_consistency upgrade-sharded + local retry=0 ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.PhNAHFCPRA +++ mktemp ++ local LAST_ERR=/tmp/tmp.402LMZyX95 ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.PhNAHFCPRA ++ cat /tmp/tmp.402LMZyX95 ++ rm /tmp/tmp.PhNAHFCPRA /tmp/tmp.402LMZyX95 ++ return 0 + [[ ready == ready ]] ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.replsets.rs0.ready}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.fWz6XDDWnf +++ mktemp ++ local LAST_ERR=/tmp/tmp.mZq8zsWE3r ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.replsets.rs0.ready}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.fWz6XDDWnf ++ cat /tmp/tmp.mZq8zsWE3r ++ rm /tmp/tmp.fWz6XDDWnf /tmp/tmp.mZq8zsWE3r ++ return 0 + [[ 3 == 3 ]] ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.replsets.cfg.ready}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.i8Pe4Oar2T +++ mktemp ++ local LAST_ERR=/tmp/tmp.AMgzIyKvQS ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.replsets.cfg.ready}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.i8Pe4Oar2T ++ cat /tmp/tmp.AMgzIyKvQS ++ rm /tmp/tmp.i8Pe4Oar2T /tmp/tmp.AMgzIyKvQS ++ return 0 + [[ 3 == 3 ]] + check_applied_images operator + local updated_image=operator + case "${updated_image}" in ++ kubectl_bin get pod -n psmdb-operator --selector=name=percona-server-mongodb-operator -o 'jsonpath={.items[*].spec.containers[?(@.name == "percona-server-mongodb-operator")].image}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.zTafhbmm6H +++ mktemp ++ local LAST_ERR=/tmp/tmp.ZXWT7745Df ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get pod -n psmdb-operator --selector=name=percona-server-mongodb-operator -o 'jsonpath={.items[*].spec.containers[?(@.name == "percona-server-mongodb-operator")].image}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.zTafhbmm6H ++ cat /tmp/tmp.ZXWT7745Df ++ rm /tmp/tmp.zTafhbmm6H /tmp/tmp.ZXWT7745Df ++ return 0 + [[ docker.io/perconalab/percona-server-mongodb-operator:PR-2315-13ff35222 == docker.io/perconalab/percona-server-mongodb-operator:PR-2315-13ff35222 ]] ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.spec.backup.image}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.aUJcrw73Hg +++ mktemp ++ local LAST_ERR=/tmp/tmp.964xXE7QyX ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.spec.backup.image}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.aUJcrw73Hg ++ cat /tmp/tmp.964xXE7QyX ++ rm /tmp/tmp.aUJcrw73Hg /tmp/tmp.964xXE7QyX ++ return 0 + [[ docker.io/percona/percona-backup-mongodb:2.12.0 == docker.io/percona/percona-backup-mongodb:2.12.0 ]] ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.spec.pmm.image}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.I43piSDUNK +++ mktemp ++ local LAST_ERR=/tmp/tmp.x7bCdL9ZlN ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.spec.pmm.image}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.I43piSDUNK ++ cat /tmp/tmp.x7bCdL9ZlN ++ rm /tmp/tmp.I43piSDUNK /tmp/tmp.x7bCdL9ZlN ++ return 0 + [[ docker.io/percona/pmm-client:2.44.1-1 docker.io/percona/pmm-client:3.6.0 == docker.io/percona/pmm-client:2.44.1-1 docker.io/percona/pmm-client:3.6.0 ]] ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.spec.image}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.HQZpxJM9i0 +++ mktemp ++ local LAST_ERR=/tmp/tmp.4eXeZ4i7YP ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.spec.image}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.HQZpxJM9i0 ++ cat /tmp/tmp.4eXeZ4i7YP ++ rm /tmp/tmp.HQZpxJM9i0 /tmp/tmp.4eXeZ4i7YP ++ return 0 + [[ docker.io/percona/percona-server-mongodb:8.0.19-7 == docker.io/percona/percona-server-mongodb:8.0.19-7 ]] + : Operator image has been updated correctly + compare_generation 1 statefulset upgrade-sharded-rs0 + local generation=1 + local resource=statefulset + local name=upgrade-sharded-rs0 + local current_generation ++ kubectl_bin get statefulset upgrade-sharded-rs0 -o 'jsonpath={.metadata.generation}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.f16QemCpw6 +++ mktemp ++ local LAST_ERR=/tmp/tmp.d10RmTUUtT ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get statefulset upgrade-sharded-rs0 -o 'jsonpath={.metadata.generation}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.f16QemCpw6 ++ cat /tmp/tmp.d10RmTUUtT ++ rm /tmp/tmp.f16QemCpw6 /tmp/tmp.d10RmTUUtT ++ return 0 + current_generation=1 + [[ 1 != 1 ]] + compare_generation 1 statefulset upgrade-sharded-cfg + local generation=1 + local resource=statefulset + local name=upgrade-sharded-cfg + local current_generation ++ kubectl_bin get statefulset upgrade-sharded-cfg -o 'jsonpath={.metadata.generation}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.ZkDTuYe0u3 +++ mktemp ++ local LAST_ERR=/tmp/tmp.QJ3tYUYAna ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get statefulset upgrade-sharded-cfg -o 'jsonpath={.metadata.generation}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.ZkDTuYe0u3 ++ cat /tmp/tmp.QJ3tYUYAna ++ rm /tmp/tmp.ZkDTuYe0u3 /tmp/tmp.QJ3tYUYAna ++ return 0 + current_generation=1 + [[ 1 != 1 ]] + compare_generation 1 statefulset upgrade-sharded-mongos + local generation=1 + local resource=statefulset + local name=upgrade-sharded-mongos + local current_generation ++ kubectl_bin get statefulset upgrade-sharded-mongos -o 'jsonpath={.metadata.generation}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.vMLCuIQA1b +++ mktemp ++ local LAST_ERR=/tmp/tmp.uLqjnTwzbx ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get statefulset upgrade-sharded-mongos -o 'jsonpath={.metadata.generation}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.vMLCuIQA1b ++ cat /tmp/tmp.uLqjnTwzbx ++ rm /tmp/tmp.vMLCuIQA1b /tmp/tmp.uLqjnTwzbx ++ return 0 + current_generation=1 + [[ 1 != 1 ]] + compare_generation 1 psmdb upgrade-sharded + local generation=1 + local resource=psmdb + local name=upgrade-sharded + local current_generation ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.metadata.generation}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.bwVREQquSo +++ mktemp ++ local LAST_ERR=/tmp/tmp.99ISGB5myC ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.metadata.generation}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.bwVREQquSo ++ cat /tmp/tmp.99ISGB5myC ++ rm /tmp/tmp.bwVREQquSo /tmp/tmp.99ISGB5myC ++ return 0 + current_generation=1 + [[ 1 != 1 ]] + desc 'patch psmdb images and upgrade' + set +o xtrace ----------------------------------------------------------------------------------- patch psmdb images and upgrade ----------------------------------------------------------------------------------- + kubectl_bin patch psmdb upgrade-sharded --type=merge --patch $'{\n "spec": {\n "crVersion": "1.23.0",\n "image": "docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0",\n "pmm": { "image": "docker.io/percona/pmm-client:2.44.1-1" },\n "backup": { "image": "docker.io/perconalab/percona-server-mongodb-operator:main-backup" }\n }}' ++ mktemp + local LAST_OUT=/tmp/tmp.uOVmXzwvvY ++ mktemp + local LAST_ERR=/tmp/tmp.xmYEQzBvf2 + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl patch psmdb upgrade-sharded --type=merge --patch $'{\n "spec": {\n "crVersion": "1.23.0",\n "image": "docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0",\n "pmm": { "image": "docker.io/percona/pmm-client:2.44.1-1" },\n "backup": { "image": "docker.io/perconalab/percona-server-mongodb-operator:main-backup" }\n }}' + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.uOVmXzwvvY perconaservermongodb.psmdb.percona.com/upgrade-sharded patched + cat /tmp/tmp.xmYEQzBvf2 + rm /tmp/tmp.uOVmXzwvvY /tmp/tmp.xmYEQzBvf2 + return 0 + sleep 10 + desc 'check cluster after full upgrade' + set +o xtrace ----------------------------------------------------------------------------------- check cluster after full upgrade ----------------------------------------------------------------------------------- + wait_for_running upgrade-sharded-rs0 3 false + local name=upgrade-sharded-rs0 + let last_pod=2 + local check_cluster_readyness=false + set_debug + [[ 1 == 1 ]] + set -o xtrace + local rs_name=rs0 + local cluster_name=upgrade-sharded ++ seq 0 2 + for i in $(seq 0 $last_pod) + [[ 0 -eq 2 ]] + wait_pod upgrade-sharded-rs0-0 + local pod=upgrade-sharded-rs0-0 + set +o xtrace waiting for pod/upgrade-sharded-rs0-0 to be ready.OK + for i in $(seq 0 $last_pod) + [[ 1 -eq 2 ]] + wait_pod upgrade-sharded-rs0-1 + local pod=upgrade-sharded-rs0-1 + set +o xtrace waiting for pod/upgrade-sharded-rs0-1 to be ready.OK + for i in $(seq 0 $last_pod) + [[ 2 -eq 2 ]] ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].arbiter.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.8PIO8o11lV +++ mktemp ++ local LAST_ERR=/tmp/tmp.iU4klLS3fO ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].arbiter.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.8PIO8o11lV ++ cat /tmp/tmp.iU4klLS3fO ++ rm /tmp/tmp.8PIO8o11lV /tmp/tmp.iU4klLS3fO ++ return 0 + [[ false == true ]] + wait_pod upgrade-sharded-rs0-2 + local pod=upgrade-sharded-rs0-2 + set +o xtrace waiting for pod/upgrade-sharded-rs0-2 to be ready.OK ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].nonvoting.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.FCFnhNJ0IB +++ mktemp ++ local LAST_ERR=/tmp/tmp.yFbhNhh19i ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].nonvoting.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.FCFnhNJ0IB ++ cat /tmp/tmp.yFbhNhh19i ++ rm /tmp/tmp.FCFnhNJ0IB /tmp/tmp.yFbhNhh19i ++ return 0 + [[ false == true ]] ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].hidden.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.24yzggP2RM +++ mktemp ++ local LAST_ERR=/tmp/tmp.t8ZoXL8EYQ ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].hidden.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.24yzggP2RM ++ cat /tmp/tmp.t8ZoXL8EYQ ++ rm /tmp/tmp.24yzggP2RM /tmp/tmp.t8ZoXL8EYQ ++ return 0 + [[ false == true ]] + sleep 10 + [[ false == true ]] + wait_for_running upgrade-sharded-cfg 3 false + local name=upgrade-sharded-cfg + let last_pod=2 + local check_cluster_readyness=false + set_debug + [[ 1 == 1 ]] + set -o xtrace + local rs_name=cfg + local cluster_name=upgrade-sharded ++ seq 0 2 + for i in $(seq 0 $last_pod) + [[ 0 -eq 2 ]] + wait_pod upgrade-sharded-cfg-0 + local pod=upgrade-sharded-cfg-0 + set +o xtrace waiting for pod/upgrade-sharded-cfg-0 to be ready.OK + for i in $(seq 0 $last_pod) + [[ 1 -eq 2 ]] + wait_pod upgrade-sharded-cfg-1 + local pod=upgrade-sharded-cfg-1 + set +o xtrace waiting for pod/upgrade-sharded-cfg-1 to be ready.OK + for i in $(seq 0 $last_pod) + [[ 2 -eq 2 ]] ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="cfg")].arbiter.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.Ae7GZjC10k +++ mktemp ++ local LAST_ERR=/tmp/tmp.VPopQXfQWx ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="cfg")].arbiter.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.Ae7GZjC10k ++ cat /tmp/tmp.VPopQXfQWx ++ rm /tmp/tmp.Ae7GZjC10k /tmp/tmp.VPopQXfQWx ++ return 0 + [[ '' == true ]] + wait_pod upgrade-sharded-cfg-2 + local pod=upgrade-sharded-cfg-2 + set +o xtrace waiting for pod/upgrade-sharded-cfg-2 to be ready.OK ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="cfg")].nonvoting.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.t2iP9NxmkL +++ mktemp ++ local LAST_ERR=/tmp/tmp.6XEOZ6AHZY ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="cfg")].nonvoting.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.t2iP9NxmkL ++ cat /tmp/tmp.6XEOZ6AHZY ++ rm /tmp/tmp.t2iP9NxmkL /tmp/tmp.6XEOZ6AHZY ++ return 0 + [[ '' == true ]] ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="cfg")].hidden.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.CckbsAd3Rv +++ mktemp ++ local LAST_ERR=/tmp/tmp.wG5UkorwN1 ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.spec.replsets[?(@.name=="cfg")].hidden.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.CckbsAd3Rv ++ cat /tmp/tmp.wG5UkorwN1 ++ rm /tmp/tmp.CckbsAd3Rv /tmp/tmp.wG5UkorwN1 ++ return 0 + [[ '' == true ]] + sleep 10 + [[ false == true ]] + wait_cluster_consistency upgrade-sharded + local retry=0 ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.SBwaumF7rM +++ mktemp ++ local LAST_ERR=/tmp/tmp.jDutsyEzmv ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.SBwaumF7rM ++ cat /tmp/tmp.jDutsyEzmv ++ rm /tmp/tmp.SBwaumF7rM /tmp/tmp.jDutsyEzmv ++ return 0 + [[ initializing == ready ]] + let retry+=1 + '[' 1 -ge 32 ']' + echo 'waiting for cluster readyness' waiting for cluster readyness + sleep 20 ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.aaiHBfazE5 +++ mktemp ++ local LAST_ERR=/tmp/tmp.pLf9fp3gYi ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.aaiHBfazE5 ++ cat /tmp/tmp.pLf9fp3gYi ++ rm /tmp/tmp.aaiHBfazE5 /tmp/tmp.pLf9fp3gYi ++ return 0 + [[ initializing == ready ]] + let retry+=1 + '[' 2 -ge 32 ']' + echo 'waiting for cluster readyness' waiting for cluster readyness + sleep 20 ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.jICYWCqBE5 +++ mktemp ++ local LAST_ERR=/tmp/tmp.sTY0GcUYGD ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.jICYWCqBE5 ++ cat /tmp/tmp.sTY0GcUYGD ++ rm /tmp/tmp.jICYWCqBE5 /tmp/tmp.sTY0GcUYGD ++ return 0 + [[ initializing == ready ]] + let retry+=1 + '[' 3 -ge 32 ']' + echo 'waiting for cluster readyness' waiting for cluster readyness + sleep 20 ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.0mXtZbvVoZ +++ mktemp ++ local LAST_ERR=/tmp/tmp.wSEYzqHVtL ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.0mXtZbvVoZ ++ cat /tmp/tmp.wSEYzqHVtL ++ rm /tmp/tmp.0mXtZbvVoZ /tmp/tmp.wSEYzqHVtL ++ return 0 + [[ initializing == ready ]] + let retry+=1 + '[' 4 -ge 32 ']' + echo 'waiting for cluster readyness' waiting for cluster readyness + sleep 20 ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.8YLXh3qxYr +++ mktemp ++ local LAST_ERR=/tmp/tmp.JkbTW8jw8y ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.8YLXh3qxYr ++ cat /tmp/tmp.JkbTW8jw8y ++ rm /tmp/tmp.8YLXh3qxYr /tmp/tmp.JkbTW8jw8y ++ return 0 + [[ initializing == ready ]] + let retry+=1 + '[' 5 -ge 32 ']' + echo 'waiting for cluster readyness' waiting for cluster readyness + sleep 20 ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.ufCvUVVyW2 +++ mktemp ++ local LAST_ERR=/tmp/tmp.TF0gNK98UT ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.ufCvUVVyW2 ++ cat /tmp/tmp.TF0gNK98UT ++ rm /tmp/tmp.ufCvUVVyW2 /tmp/tmp.TF0gNK98UT ++ return 0 + [[ initializing == ready ]] + let retry+=1 + '[' 6 -ge 32 ']' + echo 'waiting for cluster readyness' waiting for cluster readyness + sleep 20 ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.Fp4jeTrhjQ +++ mktemp ++ local LAST_ERR=/tmp/tmp.bJF6FdteLu ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.Fp4jeTrhjQ ++ cat /tmp/tmp.bJF6FdteLu ++ rm /tmp/tmp.Fp4jeTrhjQ /tmp/tmp.bJF6FdteLu ++ return 0 + [[ initializing == ready ]] + let retry+=1 + '[' 7 -ge 32 ']' + echo 'waiting for cluster readyness' waiting for cluster readyness + sleep 20 ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.tNRr3vpIuA +++ mktemp ++ local LAST_ERR=/tmp/tmp.5oEB5yMnub ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.tNRr3vpIuA ++ cat /tmp/tmp.5oEB5yMnub ++ rm /tmp/tmp.tNRr3vpIuA /tmp/tmp.5oEB5yMnub ++ return 0 + [[ initializing == ready ]] + let retry+=1 + '[' 8 -ge 32 ']' + echo 'waiting for cluster readyness' waiting for cluster readyness + sleep 20 ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.reHdubKI3p +++ mktemp ++ local LAST_ERR=/tmp/tmp.iFyFV7CSlV ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.reHdubKI3p ++ cat /tmp/tmp.iFyFV7CSlV ++ rm /tmp/tmp.reHdubKI3p /tmp/tmp.iFyFV7CSlV ++ return 0 + [[ initializing == ready ]] + let retry+=1 + '[' 9 -ge 32 ']' + echo 'waiting for cluster readyness' waiting for cluster readyness + sleep 20 ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.mzycynQSdP +++ mktemp ++ local LAST_ERR=/tmp/tmp.u6UzdZUImD ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.mzycynQSdP ++ cat /tmp/tmp.u6UzdZUImD ++ rm /tmp/tmp.mzycynQSdP /tmp/tmp.u6UzdZUImD ++ return 0 + [[ initializing == ready ]] + let retry+=1 + '[' 10 -ge 32 ']' + echo 'waiting for cluster readyness' waiting for cluster readyness + sleep 20 ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.wVjAc1r9dr +++ mktemp ++ local LAST_ERR=/tmp/tmp.oDWwUQ6tKD ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.wVjAc1r9dr ++ cat /tmp/tmp.oDWwUQ6tKD ++ rm /tmp/tmp.wVjAc1r9dr /tmp/tmp.oDWwUQ6tKD ++ return 0 + [[ initializing == ready ]] + let retry+=1 + '[' 11 -ge 32 ']' + echo 'waiting for cluster readyness' waiting for cluster readyness + sleep 20 ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.q1svbabGUz +++ mktemp ++ local LAST_ERR=/tmp/tmp.mfMawO1ohk ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.q1svbabGUz ++ cat /tmp/tmp.mfMawO1ohk ++ rm /tmp/tmp.q1svbabGUz /tmp/tmp.mfMawO1ohk ++ return 0 + [[ initializing == ready ]] + let retry+=1 + '[' 12 -ge 32 ']' + echo 'waiting for cluster readyness' waiting for cluster readyness + sleep 20 ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.iJNT5ufOzk +++ mktemp ++ local LAST_ERR=/tmp/tmp.xultbEr4UR ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.iJNT5ufOzk ++ cat /tmp/tmp.xultbEr4UR ++ rm /tmp/tmp.iJNT5ufOzk /tmp/tmp.xultbEr4UR ++ return 0 + [[ initializing == ready ]] + let retry+=1 + '[' 13 -ge 32 ']' + echo 'waiting for cluster readyness' waiting for cluster readyness + sleep 20 ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.ghQiau0MwY +++ mktemp ++ local LAST_ERR=/tmp/tmp.l9bXsMBmnR ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.ghQiau0MwY ++ cat /tmp/tmp.l9bXsMBmnR ++ rm /tmp/tmp.ghQiau0MwY /tmp/tmp.l9bXsMBmnR ++ return 0 + [[ ready == ready ]] ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.replsets.rs0.ready}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.1SX33xZ2iR +++ mktemp ++ local LAST_ERR=/tmp/tmp.EghriqrORa ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.replsets.rs0.ready}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.1SX33xZ2iR ++ cat /tmp/tmp.EghriqrORa ++ rm /tmp/tmp.1SX33xZ2iR /tmp/tmp.EghriqrORa ++ return 0 + [[ 3 == 3 ]] ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.replsets.cfg.ready}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.Hin89TBjKw +++ mktemp ++ local LAST_ERR=/tmp/tmp.Gpun0WZcsM ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.replsets.cfg.ready}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.Hin89TBjKw ++ cat /tmp/tmp.Gpun0WZcsM ++ rm /tmp/tmp.Hin89TBjKw /tmp/tmp.Gpun0WZcsM ++ return 0 + [[ 3 == 3 ]] + simple_data_check upgrade-sharded 3 1 -mongos + local cluster_name=upgrade-sharded + let last_pod=3-1 + local isSharded=1 + local cluster_pfx=-mongos + '[' 1 -eq 1 ']' + sleep 10 + wait_cluster_consistency upgrade-sharded + local retry=0 ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.KmtgbbrFPv +++ mktemp ++ local LAST_ERR=/tmp/tmp.aoGdjVnQcH ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.KmtgbbrFPv ++ cat /tmp/tmp.aoGdjVnQcH ++ rm /tmp/tmp.KmtgbbrFPv /tmp/tmp.aoGdjVnQcH ++ return 0 + [[ ready == ready ]] ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.replsets.rs0.ready}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.iJX2rNdLjK +++ mktemp ++ local LAST_ERR=/tmp/tmp.sU4krOQlz1 ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.replsets.rs0.ready}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.iJX2rNdLjK ++ cat /tmp/tmp.sU4krOQlz1 ++ rm /tmp/tmp.iJX2rNdLjK /tmp/tmp.sU4krOQlz1 ++ return 0 + [[ 3 == 3 ]] ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.replsets.cfg.ready}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.WqljgmfFGP +++ mktemp ++ local LAST_ERR=/tmp/tmp.zJTGNFBAk0 ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.replsets.cfg.ready}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.WqljgmfFGP ++ cat /tmp/tmp.zJTGNFBAk0 ++ rm /tmp/tmp.WqljgmfFGP /tmp/tmp.zJTGNFBAk0 ++ return 0 + [[ 3 == 3 ]] + compare_mongos_cmd find myApp:myPass@upgrade-sharded-mongos.upgrade-sharded-20668 + local command=find + local uri=myApp:myPass@upgrade-sharded-mongos.upgrade-sharded-20668 + local postfix= + local suffix= + local database=myApp + local collection=test + local port=27017 + local tls=false + [[ false == true ]] + mongos_command=run_mongos + log 'running db.test.command() in myApp' + set +o xtrace [2026-06-22T11:58:24+0000] running db.test.command() in myApp + run_mongos 'use myApp\n db.test.find()' myApp:myPass@upgrade-sharded-mongos.upgrade-sharded-20668 mongodb '' '' 27017 + local 'command=use myApp\n db.test.find()' + local uri=myApp:myPass@upgrade-sharded-mongos.upgrade-sharded-20668 + local driver=mongodb + local suffix=.svc.cluster.local + local mongo_flag= + local port=27017 + local mongo_bin=mongo + grep -E -v 'I NETWORK|W NETWORK|Error saving history file|Percona Server for MongoDB|connecting to:|Unable to reach primary for set|Implicit session:|versions do not match|Error saving history file:|Started a new thread for the timer service' + /usr/sbin/sed -re 's/ObjectId\("[0-9a-f]+"\)//; s/-[0-9]+.svc/-xxx.svc/' ++ echo .svc.cluster.local ++ awk -F: '{print $2}' + suffix_port= + [[ -z '' ]] + suffix=.svc.cluster.local:27017 ++ kubectl_bin get pods --selector=name=psmdb-client -o 'jsonpath={.items[].metadata.name}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.1QsOzwwmRA +++ mktemp ++ local LAST_ERR=/tmp/tmp.sXyZVWxkeL ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get pods --selector=name=psmdb-client -o 'jsonpath={.items[].metadata.name}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.1QsOzwwmRA ++ cat /tmp/tmp.sXyZVWxkeL ++ rm /tmp/tmp.1QsOzwwmRA /tmp/tmp.sXyZVWxkeL ++ return 0 + local client_container=psmdb-client-bb8b97679-v4vnb + kubectl_bin exec psmdb-client-bb8b97679-v4vnb -- bash -c 'printf '\''use myApp\n db.test.find()\n'\'' | mongo mongodb://myApp:myPass@upgrade-sharded-mongos.upgrade-sharded-20668.svc.cluster.local:27017/admin ' ++ mktemp + local LAST_OUT=/tmp/tmp.uv7DlzadNG ++ mktemp + local LAST_ERR=/tmp/tmp.tygJPUljSN + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl exec psmdb-client-bb8b97679-v4vnb -- bash -c 'printf '\''use myApp\n db.test.find()\n'\'' | mongo mongodb://myApp:myPass@upgrade-sharded-mongos.upgrade-sharded-20668.svc.cluster.local:27017/admin ' + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.uv7DlzadNG + cat /tmp/tmp.tygJPUljSN + rm /tmp/tmp.uv7DlzadNG /tmp/tmp.tygJPUljSN + return 0 + [[ 0 -eq 0 ]] + diff /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2315/e2e-tests/upgrade-sharded/compare/find.json /tmp/tmp.NWX7yZihph/find + check_applied_images all + local updated_image=all + case "${updated_image}" in ++ kubectl_bin get pod -n psmdb-operator --selector=name=percona-server-mongodb-operator -o 'jsonpath={.items[*].spec.containers[?(@.name == "percona-server-mongodb-operator")].image}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.pN92YeCHSn +++ mktemp ++ local LAST_ERR=/tmp/tmp.QtOs8cS1Vg ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get pod -n psmdb-operator --selector=name=percona-server-mongodb-operator -o 'jsonpath={.items[*].spec.containers[?(@.name == "percona-server-mongodb-operator")].image}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.pN92YeCHSn ++ cat /tmp/tmp.QtOs8cS1Vg ++ rm /tmp/tmp.pN92YeCHSn /tmp/tmp.QtOs8cS1Vg ++ return 0 + [[ docker.io/perconalab/percona-server-mongodb-operator:PR-2315-13ff35222 == docker.io/perconalab/percona-server-mongodb-operator:PR-2315-13ff35222 ]] ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.spec.backup.image}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.vIiZF6JnIO +++ mktemp ++ local LAST_ERR=/tmp/tmp.nDdSuGtg9z ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.spec.backup.image}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.vIiZF6JnIO ++ cat /tmp/tmp.nDdSuGtg9z ++ rm /tmp/tmp.vIiZF6JnIO /tmp/tmp.nDdSuGtg9z ++ return 0 + [[ docker.io/perconalab/percona-server-mongodb-operator:main-backup == docker.io/perconalab/percona-server-mongodb-operator:main-backup ]] ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.spec.pmm.image}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.TBvwAP91LC +++ mktemp ++ local LAST_ERR=/tmp/tmp.5gY5AKUs9a ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.spec.pmm.image}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.TBvwAP91LC ++ cat /tmp/tmp.5gY5AKUs9a ++ rm /tmp/tmp.TBvwAP91LC /tmp/tmp.5gY5AKUs9a ++ return 0 + [[ docker.io/percona/pmm-client:2.44.1-1 == docker.io/percona/pmm-client:2.44.1-1 ]] ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.spec.image}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.lefm8nikKG +++ mktemp ++ local LAST_ERR=/tmp/tmp.kO8q8HK34R ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.spec.image}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.lefm8nikKG ++ cat /tmp/tmp.kO8q8HK34R ++ rm /tmp/tmp.lefm8nikKG /tmp/tmp.kO8q8HK34R ++ return 0 + [[ docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0 == docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0 ]] + : Cluster images have been updated correctly + compare_generation 2 statefulset upgrade-sharded-rs0 + local generation=2 + local resource=statefulset + local name=upgrade-sharded-rs0 + local current_generation ++ kubectl_bin get statefulset upgrade-sharded-rs0 -o 'jsonpath={.metadata.generation}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.jBjrk0v1EP +++ mktemp ++ local LAST_ERR=/tmp/tmp.JwTerw7yhn ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get statefulset upgrade-sharded-rs0 -o 'jsonpath={.metadata.generation}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.jBjrk0v1EP ++ cat /tmp/tmp.JwTerw7yhn ++ rm /tmp/tmp.jBjrk0v1EP /tmp/tmp.JwTerw7yhn ++ return 0 + current_generation=2 + [[ 2 != 2 ]] + compare_generation 2 statefulset upgrade-sharded-cfg + local generation=2 + local resource=statefulset + local name=upgrade-sharded-cfg + local current_generation ++ kubectl_bin get statefulset upgrade-sharded-cfg -o 'jsonpath={.metadata.generation}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.FiaFHcvRYg +++ mktemp ++ local LAST_ERR=/tmp/tmp.DxWzdylXGZ ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get statefulset upgrade-sharded-cfg -o 'jsonpath={.metadata.generation}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.FiaFHcvRYg ++ cat /tmp/tmp.DxWzdylXGZ ++ rm /tmp/tmp.FiaFHcvRYg /tmp/tmp.DxWzdylXGZ ++ return 0 + current_generation=2 + [[ 2 != 2 ]] + compare_generation 2 statefulset upgrade-sharded-mongos + local generation=2 + local resource=statefulset + local name=upgrade-sharded-mongos + local current_generation ++ kubectl_bin get statefulset upgrade-sharded-mongos -o 'jsonpath={.metadata.generation}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.bGsUkE77Yk +++ mktemp ++ local LAST_ERR=/tmp/tmp.4dP8kbhsLh ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get statefulset upgrade-sharded-mongos -o 'jsonpath={.metadata.generation}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.bGsUkE77Yk ++ cat /tmp/tmp.4dP8kbhsLh ++ rm /tmp/tmp.bGsUkE77Yk /tmp/tmp.4dP8kbhsLh ++ return 0 + current_generation=2 + [[ 2 != 2 ]] + compare_generation 2 psmdb upgrade-sharded + local generation=2 + local resource=psmdb + local name=upgrade-sharded + local current_generation ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.metadata.generation}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.8WLfkQjGPe +++ mktemp ++ local LAST_ERR=/tmp/tmp.mMkYivSIex ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.metadata.generation}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.8WLfkQjGPe ++ cat /tmp/tmp.mMkYivSIex ++ rm /tmp/tmp.8WLfkQjGPe /tmp/tmp.mMkYivSIex ++ return 0 + current_generation=2 + [[ 2 != 2 ]] + desc 'check if upgrade order is cfg, rs0, mongos' + set +o xtrace ----------------------------------------------------------------------------------- check if upgrade order is cfg, rs0, mongos ----------------------------------------------------------------------------------- + sleep 60 + check_upgrade_order cfg 3 1 + local pod_type=cfg + local cluster_size=3 + local upgrade_order=1 + local start=1 + local end=3 ++ kubectl_bin get pod --sort-by=.status.startTime ++ grep -vE '^NAME|client|operator|minio-service' ++ sed -n 1,3p +++ mktemp ++ grep -c '\-cfg\-' ++ local LAST_OUT=/tmp/tmp.524px0S7cn +++ mktemp grep: warning: stray \ before - ++ local LAST_ERR=/tmp/tmp.uBst9TpnNl ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get pod --sort-by=.status.startTime ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.524px0S7cn ++ cat /tmp/tmp.uBst9TpnNl ++ rm /tmp/tmp.524px0S7cn /tmp/tmp.uBst9TpnNl ++ return 0 + local nr=3 + [[ 3 -ne 3 ]] + echo 'cfg was upgraded 1!' cfg was upgraded 1! + check_upgrade_order rs0 3 2 + local pod_type=rs0 + local cluster_size=3 + local upgrade_order=2 + local start=4 + local end=6 ++ kubectl_bin get pod --sort-by=.status.startTime ++ grep -vE '^NAME|client|operator|minio-service' ++ sed -n 4,6p ++ grep -c '\-rs0\-' +++ mktemp grep: warning: stray \ before - ++ local LAST_OUT=/tmp/tmp.h1DOzE2kSg +++ mktemp ++ local LAST_ERR=/tmp/tmp.ZqShDrOwMa ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get pod --sort-by=.status.startTime ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.h1DOzE2kSg ++ cat /tmp/tmp.ZqShDrOwMa ++ rm /tmp/tmp.h1DOzE2kSg /tmp/tmp.ZqShDrOwMa ++ return 0 + local nr=3 + [[ 3 -ne 3 ]] + echo 'rs0 was upgraded 2!' rs0 was upgraded 2! + check_upgrade_order mongos 3 3 + local pod_type=mongos + local cluster_size=3 + local upgrade_order=3 + local start=7 + local end=9 ++ kubectl_bin get pod --sort-by=.status.startTime ++ sed -n 7,9p ++ grep -vE '^NAME|client|operator|minio-service' ++ grep -c '\-mongos\-' +++ mktemp ++ local LAST_OUT=/tmp/tmp.88OUDQmM4z grep: warning: stray \ before - +++ mktemp ++ local LAST_ERR=/tmp/tmp.qBVMbGNfli ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get pod --sort-by=.status.startTime ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.88OUDQmM4z ++ cat /tmp/tmp.qBVMbGNfli ++ rm /tmp/tmp.88OUDQmM4z /tmp/tmp.qBVMbGNfli ++ return 0 + local nr=3 + [[ 3 -ne 3 ]] + echo 'mongos was upgraded 3!' mongos was upgraded 3! + desc 'drop collection and do restore with new version' + set +o xtrace ----------------------------------------------------------------------------------- drop collection and do restore with new version ----------------------------------------------------------------------------------- + run_mongos 'use myApp\n db.test.drop()' myApp:myPass@upgrade-sharded-mongos.upgrade-sharded-20668 + local 'command=use myApp\n db.test.drop()' + local uri=myApp:myPass@upgrade-sharded-mongos.upgrade-sharded-20668 + local driver=mongodb + local suffix=.svc.cluster.local + local mongo_flag= + local port=27017 + local mongo_bin=mongo ++ echo .svc.cluster.local ++ awk -F: '{print $2}' + suffix_port= + [[ -z '' ]] + suffix=.svc.cluster.local:27017 ++ kubectl_bin get pods --selector=name=psmdb-client -o 'jsonpath={.items[].metadata.name}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.9RNytBR699 +++ mktemp ++ local LAST_ERR=/tmp/tmp.PkkCa6F8ta ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get pods --selector=name=psmdb-client -o 'jsonpath={.items[].metadata.name}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.9RNytBR699 ++ cat /tmp/tmp.PkkCa6F8ta ++ rm /tmp/tmp.9RNytBR699 /tmp/tmp.PkkCa6F8ta ++ return 0 + local client_container=psmdb-client-bb8b97679-v4vnb + kubectl_bin exec psmdb-client-bb8b97679-v4vnb -- bash -c 'printf '\''use myApp\n db.test.drop()\n'\'' | mongo mongodb://myApp:myPass@upgrade-sharded-mongos.upgrade-sharded-20668.svc.cluster.local:27017/admin ' ++ mktemp + local LAST_OUT=/tmp/tmp.ubvsM8IdPU ++ mktemp + local LAST_ERR=/tmp/tmp.m8MaLaIsyO + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl exec psmdb-client-bb8b97679-v4vnb -- bash -c 'printf '\''use myApp\n db.test.drop()\n'\'' | mongo mongodb://myApp:myPass@upgrade-sharded-mongos.upgrade-sharded-20668.svc.cluster.local:27017/admin ' + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.ubvsM8IdPU Percona Server for MongoDB shell version v4.4.29-28 connecting to: mongodb://upgrade-sharded-mongos.upgrade-sharded-20668.svc.cluster.local:27017/admin?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("924f0783-c1b7-498b-9dab-a099a5911b02") } Percona Server for MongoDB server version: v8.0.23-10 WARNING: shell and server versions do not match switched to db myApp true bye + cat /tmp/tmp.m8MaLaIsyO + rm /tmp/tmp.ubvsM8IdPU /tmp/tmp.m8MaLaIsyO + return 0 + check_backup_in_storage backup-minio minio rs0 myApp.test.gz + local backup=backup-minio + local storage_type=minio + local replset=rs0 + local file=myApp.test.gz + local protocol=http + local endpoint ++ get_backup_dest backup-minio ++ local backup_name=backup-minio ++ /usr/sbin/sed 's|https://engk8soperators.blob.core.windows.net/||' ++ kubectl_bin get psmdb-backup backup-minio -o 'jsonpath={.status.destination}' ++ sed -e 's/.json$//' ++ sed 's|s3://||' +++ mktemp ++ sed 's|azure://||' ++ sed 's|gs://||' ++ local LAST_OUT=/tmp/tmp.Q59kmbw1Ib +++ mktemp ++ local LAST_ERR=/tmp/tmp.cCS1ixEZ1T ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb-backup backup-minio -o 'jsonpath={.status.destination}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.Q59kmbw1Ib ++ cat /tmp/tmp.cCS1ixEZ1T ++ rm /tmp/tmp.Q59kmbw1Ib /tmp/tmp.cCS1ixEZ1T ++ return 0 + backup_dest=operator-testing/2026-06-22T11:51:16Z + case ${storage_type} in + endpoint=minio-service + kubectl_bin run -i --rm aws-cli --image=docker.io/perconalab/awscli --restart=Never -- /usr/bin/env AWS_ACCESS_KEY_ID=some-access-key AWS_SECRET_ACCESS_KEY=some-secret-key AWS_DEFAULT_REGION=us-east-1 /usr/bin/aws --no-verify-ssl --endpoint-url http://minio-service:9000 s3 ls s3://operator-testing/2026-06-22T11:51:16Z/rs0/myApp.test.gz + grep myApp.test.gz ++ mktemp + local LAST_OUT=/tmp/tmp.895EQppH6z ++ mktemp + local LAST_ERR=/tmp/tmp.qyp6JWC5Fx + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl run -i --rm aws-cli --image=docker.io/perconalab/awscli --restart=Never -- /usr/bin/env AWS_ACCESS_KEY_ID=some-access-key AWS_SECRET_ACCESS_KEY=some-secret-key AWS_DEFAULT_REGION=us-east-1 /usr/bin/aws --no-verify-ssl --endpoint-url http://minio-service:9000 s3 ls s3://operator-testing/2026-06-22T11:51:16Z/rs0/myApp.test.gz + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.895EQppH6z + cat /tmp/tmp.qyp6JWC5Fx All commands and output from this session will be recorded in container logs, including credentials and sensitive information passed through the command prompt. If you don't see a command prompt, try pressing enter. + rm /tmp/tmp.895EQppH6z /tmp/tmp.qyp6JWC5Fx + return 0 2026-06-22 11:51:21 55 myApp.test.gz + run_mongos 'use myApp\n db.test.insert({ x: 100501 })' myApp:myPass@upgrade-sharded-mongos.upgrade-sharded-20668 + local 'command=use myApp\n db.test.insert({ x: 100501 })' + local uri=myApp:myPass@upgrade-sharded-mongos.upgrade-sharded-20668 + local driver=mongodb + local suffix=.svc.cluster.local + local mongo_flag= + local port=27017 + local mongo_bin=mongo ++ echo .svc.cluster.local ++ awk -F: '{print $2}' + suffix_port= + [[ -z '' ]] + suffix=.svc.cluster.local:27017 ++ kubectl_bin get pods --selector=name=psmdb-client -o 'jsonpath={.items[].metadata.name}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.WVX3HMuwA5 +++ mktemp ++ local LAST_ERR=/tmp/tmp.CNzv6iclbL ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get pods --selector=name=psmdb-client -o 'jsonpath={.items[].metadata.name}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.WVX3HMuwA5 ++ cat /tmp/tmp.CNzv6iclbL ++ rm /tmp/tmp.WVX3HMuwA5 /tmp/tmp.CNzv6iclbL ++ return 0 + local client_container=psmdb-client-bb8b97679-v4vnb + kubectl_bin exec psmdb-client-bb8b97679-v4vnb -- bash -c 'printf '\''use myApp\n db.test.insert({ x: 100501 })\n'\'' | mongo mongodb://myApp:myPass@upgrade-sharded-mongos.upgrade-sharded-20668.svc.cluster.local:27017/admin ' ++ mktemp + local LAST_OUT=/tmp/tmp.hO565oXz12 ++ mktemp + local LAST_ERR=/tmp/tmp.gE6pPffdid + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl exec psmdb-client-bb8b97679-v4vnb -- bash -c 'printf '\''use myApp\n db.test.insert({ x: 100501 })\n'\'' | mongo mongodb://myApp:myPass@upgrade-sharded-mongos.upgrade-sharded-20668.svc.cluster.local:27017/admin ' + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.hO565oXz12 Percona Server for MongoDB shell version v4.4.29-28 connecting to: mongodb://upgrade-sharded-mongos.upgrade-sharded-20668.svc.cluster.local:27017/admin?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("1c839953-0021-4563-bf6a-0cd80d4076b6") } Percona Server for MongoDB server version: v8.0.23-10 WARNING: shell and server versions do not match switched to db myApp WriteResult({ "nInserted" : 1 }) bye + cat /tmp/tmp.gE6pPffdid + rm /tmp/tmp.hO565oXz12 /tmp/tmp.gE6pPffdid + return 0 + compare_mongos_cmd find myApp:myPass@upgrade-sharded-mongos.upgrade-sharded-20668 -2nd .svc.cluster.local myApp test + local command=find + local uri=myApp:myPass@upgrade-sharded-mongos.upgrade-sharded-20668 + local postfix=-2nd + local suffix=.svc.cluster.local + local database=myApp + local collection=test + local port=27017 + local tls=false + [[ false == true ]] + mongos_command=run_mongos + log 'running db.test.command() in myApp' + set +o xtrace [2026-06-22T11:59:49+0000] running db.test.command() in myApp + run_mongos 'use myApp\n db.test.find()' myApp:myPass@upgrade-sharded-mongos.upgrade-sharded-20668 mongodb .svc.cluster.local '' 27017 + local 'command=use myApp\n db.test.find()' + grep -E -v 'I NETWORK|W NETWORK|Error saving history file|Percona Server for MongoDB|connecting to:|Unable to reach primary for set|Implicit session:|versions do not match|Error saving history file:|Started a new thread for the timer service' + local uri=myApp:myPass@upgrade-sharded-mongos.upgrade-sharded-20668 + local driver=mongodb + local suffix=.svc.cluster.local + local mongo_flag= + local port=27017 + local mongo_bin=mongo + /usr/sbin/sed -re 's/ObjectId\("[0-9a-f]+"\)//; s/-[0-9]+.svc/-xxx.svc/' ++ echo .svc.cluster.local ++ awk -F: '{print $2}' + suffix_port= + [[ -z '' ]] + suffix=.svc.cluster.local:27017 ++ kubectl_bin get pods --selector=name=psmdb-client -o 'jsonpath={.items[].metadata.name}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.SZFFeazNcj +++ mktemp ++ local LAST_ERR=/tmp/tmp.1A1k7f7dyQ ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get pods --selector=name=psmdb-client -o 'jsonpath={.items[].metadata.name}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.SZFFeazNcj ++ cat /tmp/tmp.1A1k7f7dyQ ++ rm /tmp/tmp.SZFFeazNcj /tmp/tmp.1A1k7f7dyQ ++ return 0 + local client_container=psmdb-client-bb8b97679-v4vnb + kubectl_bin exec psmdb-client-bb8b97679-v4vnb -- bash -c 'printf '\''use myApp\n db.test.find()\n'\'' | mongo mongodb://myApp:myPass@upgrade-sharded-mongos.upgrade-sharded-20668.svc.cluster.local:27017/admin ' ++ mktemp + local LAST_OUT=/tmp/tmp.cwtx2eYBtA ++ mktemp + local LAST_ERR=/tmp/tmp.7nXWaaywql + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl exec psmdb-client-bb8b97679-v4vnb -- bash -c 'printf '\''use myApp\n db.test.find()\n'\'' | mongo mongodb://myApp:myPass@upgrade-sharded-mongos.upgrade-sharded-20668.svc.cluster.local:27017/admin ' + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.cwtx2eYBtA + cat /tmp/tmp.7nXWaaywql + rm /tmp/tmp.cwtx2eYBtA /tmp/tmp.7nXWaaywql + return 0 + [[ 0 -eq 0 ]] + diff /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2315/e2e-tests/upgrade-sharded/compare/find-2nd.json /tmp/tmp.NWX7yZihph/find-2nd + run_restore backup-minio + local backup_name=backup-minio + local restore_file=/mnt/jenkins/workspace/cloud-psmdb-operator_PR-2315/e2e-tests/upgrade-sharded/conf/restore.yml + log 'running restore restore-backup-minio' + set +o xtrace [2026-06-22T11:59:51+0000] running restore restore-backup-minio + cat /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2315/e2e-tests/upgrade-sharded/conf/restore.yml + /usr/sbin/sed -e 's/name:/name: restore-backup-minio/' + /usr/sbin/sed -e 's/backupName:/backupName: backup-minio/' + kubectl_bin apply -f - ++ mktemp + local LAST_OUT=/tmp/tmp.JqptO8AV7N ++ mktemp + local LAST_ERR=/tmp/tmp.Z4GfMFJSN7 + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl apply -f - + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.JqptO8AV7N perconaservermongodbrestore.psmdb.percona.com/restore-backup-minio created + cat /tmp/tmp.Z4GfMFJSN7 + rm /tmp/tmp.JqptO8AV7N /tmp/tmp.Z4GfMFJSN7 + return 0 + wait_restore backup-minio upgrade-sharded + local backup_name=backup-minio + local cluster_name=upgrade-sharded + local target_state=ready + local wait_cluster_consistency=1 + local wait_time=1780 + local ok_if_ready=0 + set +o xtrace Waiting for the psmdb-restore/restore-backup-minio object to be created.OK Waiting psmdb-restore/restore-backup-minio to reach state "ready" .OK after 0 minutes + [[ 1 -eq 1 ]] + wait_cluster_consistency upgrade-sharded + local retry=0 ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.SiwLqlV6fw +++ mktemp ++ local LAST_ERR=/tmp/tmp.ANrgvG2Z7f ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.SiwLqlV6fw ++ cat /tmp/tmp.ANrgvG2Z7f ++ rm /tmp/tmp.SiwLqlV6fw /tmp/tmp.ANrgvG2Z7f ++ return 0 + [[ initializing == ready ]] + let retry+=1 + '[' 1 -ge 32 ']' + echo 'waiting for cluster readyness' waiting for cluster readyness + sleep 20 ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.5i9dJX2n3b +++ mktemp ++ local LAST_ERR=/tmp/tmp.5LRb8xy6NU ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.5i9dJX2n3b ++ cat /tmp/tmp.5LRb8xy6NU ++ rm /tmp/tmp.5i9dJX2n3b /tmp/tmp.5LRb8xy6NU ++ return 0 + [[ initializing == ready ]] + let retry+=1 + '[' 2 -ge 32 ']' + echo 'waiting for cluster readyness' waiting for cluster readyness + sleep 20 ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.oUuX76JVqf +++ mktemp ++ local LAST_ERR=/tmp/tmp.5nPc74EovS ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.oUuX76JVqf ++ cat /tmp/tmp.5nPc74EovS ++ rm /tmp/tmp.oUuX76JVqf /tmp/tmp.5nPc74EovS ++ return 0 + [[ ready == ready ]] ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.replsets.rs0.ready}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.H9lqrHhDji +++ mktemp ++ local LAST_ERR=/tmp/tmp.r2q7ATQEsD ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.replsets.rs0.ready}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.H9lqrHhDji ++ cat /tmp/tmp.r2q7ATQEsD ++ rm /tmp/tmp.H9lqrHhDji /tmp/tmp.r2q7ATQEsD ++ return 0 + [[ 3 == 3 ]] ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.replsets.cfg.ready}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.jU6hgaUIGs +++ mktemp ++ local LAST_ERR=/tmp/tmp.LxoYDFxmVc ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.replsets.cfg.ready}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.jU6hgaUIGs ++ cat /tmp/tmp.LxoYDFxmVc ++ rm /tmp/tmp.jU6hgaUIGs /tmp/tmp.LxoYDFxmVc ++ return 0 + [[ 3 == 3 ]] + simple_data_check upgrade-sharded 3 1 -mongos + local cluster_name=upgrade-sharded + let last_pod=3-1 + local isSharded=1 + local cluster_pfx=-mongos + '[' 1 -eq 1 ']' + sleep 10 + wait_cluster_consistency upgrade-sharded + local retry=0 ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.gXOAfnQoPw +++ mktemp ++ local LAST_ERR=/tmp/tmp.BQLsCFetb2 ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.gXOAfnQoPw ++ cat /tmp/tmp.BQLsCFetb2 ++ rm /tmp/tmp.gXOAfnQoPw /tmp/tmp.BQLsCFetb2 ++ return 0 + [[ ready == ready ]] ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.replsets.rs0.ready}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.NvVbvHAFke +++ mktemp ++ local LAST_ERR=/tmp/tmp.pk9pyc6uV8 ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.replsets.rs0.ready}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.NvVbvHAFke ++ cat /tmp/tmp.pk9pyc6uV8 ++ rm /tmp/tmp.NvVbvHAFke /tmp/tmp.pk9pyc6uV8 ++ return 0 + [[ 3 == 3 ]] ++ kubectl_bin get psmdb upgrade-sharded -o 'jsonpath={.status.replsets.cfg.ready}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.aG9KIzxvI3 +++ mktemp ++ local LAST_ERR=/tmp/tmp.TgctkJp6UO ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb upgrade-sharded -o 'jsonpath={.status.replsets.cfg.ready}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.aG9KIzxvI3 ++ cat /tmp/tmp.TgctkJp6UO ++ rm /tmp/tmp.aG9KIzxvI3 /tmp/tmp.TgctkJp6UO ++ return 0 + [[ 3 == 3 ]] + compare_mongos_cmd find myApp:myPass@upgrade-sharded-mongos.upgrade-sharded-20668 + local command=find + local uri=myApp:myPass@upgrade-sharded-mongos.upgrade-sharded-20668 + local postfix= + local suffix= + local database=myApp + local collection=test + local port=27017 + local tls=false + [[ false == true ]] + mongos_command=run_mongos + log 'running db.test.command() in myApp' + set +o xtrace [2026-06-22T12:01:29+0000] running db.test.command() in myApp + run_mongos 'use myApp\n db.test.find()' myApp:myPass@upgrade-sharded-mongos.upgrade-sharded-20668 mongodb '' '' 27017 + local 'command=use myApp\n db.test.find()' + grep -E -v 'I NETWORK|W NETWORK|Error saving history file|Percona Server for MongoDB|connecting to:|Unable to reach primary for set|Implicit session:|versions do not match|Error saving history file:|Started a new thread for the timer service' + local uri=myApp:myPass@upgrade-sharded-mongos.upgrade-sharded-20668 + local driver=mongodb + local suffix=.svc.cluster.local + local mongo_flag= + local port=27017 + local mongo_bin=mongo + /usr/sbin/sed -re 's/ObjectId\("[0-9a-f]+"\)//; s/-[0-9]+.svc/-xxx.svc/' ++ echo .svc.cluster.local ++ awk -F: '{print $2}' + suffix_port= + [[ -z '' ]] + suffix=.svc.cluster.local:27017 ++ kubectl_bin get pods --selector=name=psmdb-client -o 'jsonpath={.items[].metadata.name}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.pOlGnaozsn +++ mktemp ++ local LAST_ERR=/tmp/tmp.ZmVth0nDOA ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get pods --selector=name=psmdb-client -o 'jsonpath={.items[].metadata.name}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.pOlGnaozsn ++ cat /tmp/tmp.ZmVth0nDOA ++ rm /tmp/tmp.pOlGnaozsn /tmp/tmp.ZmVth0nDOA ++ return 0 + local client_container=psmdb-client-bb8b97679-v4vnb + kubectl_bin exec psmdb-client-bb8b97679-v4vnb -- bash -c 'printf '\''use myApp\n db.test.find()\n'\'' | mongo mongodb://myApp:myPass@upgrade-sharded-mongos.upgrade-sharded-20668.svc.cluster.local:27017/admin ' ++ mktemp + local LAST_OUT=/tmp/tmp.m5WfOsS64b ++ mktemp + local LAST_ERR=/tmp/tmp.RPigP8ZoZL + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl exec psmdb-client-bb8b97679-v4vnb -- bash -c 'printf '\''use myApp\n db.test.find()\n'\'' | mongo mongodb://myApp:myPass@upgrade-sharded-mongos.upgrade-sharded-20668.svc.cluster.local:27017/admin ' + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.m5WfOsS64b + cat /tmp/tmp.RPigP8ZoZL + rm /tmp/tmp.m5WfOsS64b /tmp/tmp.RPigP8ZoZL + return 0 + [[ 0 -eq 0 ]] + diff /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2315/e2e-tests/upgrade-sharded/compare/find.json /tmp/tmp.NWX7yZihph/find + desc cleanup + set +o xtrace ----------------------------------------------------------------------------------- cleanup ----------------------------------------------------------------------------------- + destroy upgrade-sharded-20668 + local namespace=upgrade-sharded-20668 + local ignore_logs=true + [[ 0 == 1 ]] + desc 'destroy cluster/operator and all other resources' + set +o xtrace ----------------------------------------------------------------------------------- destroy cluster/operator and all other resources ----------------------------------------------------------------------------------- + '[' true == false ']' + delete_backups + desc 'Delete psmdb-backup' + set +o xtrace ----------------------------------------------------------------------------------- Delete psmdb-backup ----------------------------------------------------------------------------------- ++ kubectl_bin get psmdb-backup --no-headers ++ wc -l +++ mktemp ++ local LAST_OUT=/tmp/tmp.c6qYWfAQmT +++ mktemp ++ local LAST_ERR=/tmp/tmp.yx9YqOec8u ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb-backup --no-headers ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.c6qYWfAQmT ++ cat /tmp/tmp.yx9YqOec8u ++ rm /tmp/tmp.c6qYWfAQmT /tmp/tmp.yx9YqOec8u ++ return 0 + '[' 1 '!=' 0 ']' + kubectl_bin get psmdb-backup ++ mktemp + local LAST_OUT=/tmp/tmp.aIRwemsUtp ++ mktemp + local LAST_ERR=/tmp/tmp.X88JdVrrfQ + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl get psmdb-backup + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.aIRwemsUtp NAME CLUSTER STORAGE DESTINATION TYPE SIZE STATUS COMPLETED AGE backup-minio upgrade-sharded minio s3://operator-testing/2026-06-22T11:51:16Z logical 90.96KB ready 9m50s 10m + cat /tmp/tmp.X88JdVrrfQ + rm /tmp/tmp.aIRwemsUtp /tmp/tmp.X88JdVrrfQ + return 0 + kubectl_bin delete psmdb-backup --all ++ mktemp + local LAST_OUT=/tmp/tmp.1uLA1xCuj7 ++ mktemp + local LAST_ERR=/tmp/tmp.8sD7WEn5Cq + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl delete psmdb-backup --all + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.1uLA1xCuj7 perconaservermongodbbackup.psmdb.percona.com "backup-minio" deleted from upgrade-sharded-20668 namespace + cat /tmp/tmp.8sD7WEn5Cq + rm /tmp/tmp.1uLA1xCuj7 /tmp/tmp.8sD7WEn5Cq + return 0 + delete_crd + desc 'get and delete old CRDs and RBAC' + set +o xtrace ----------------------------------------------------------------------------------- get and delete old CRDs and RBAC ----------------------------------------------------------------------------------- + kubectl_bin delete -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2315/deploy/crd.yaml --ignore-not-found --wait=false ++ mktemp + local LAST_OUT=/tmp/tmp.kR0FcKfPat ++ mktemp + local LAST_ERR=/tmp/tmp.9XK4WPaopI + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl delete -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2315/deploy/crd.yaml --ignore-not-found --wait=false + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.kR0FcKfPat customresourcedefinition.apiextensions.k8s.io "perconaservermongodbbackups.psmdb.percona.com" deleted customresourcedefinition.apiextensions.k8s.io "perconaservermongodbclustersyncs.psmdb.percona.com" deleted customresourcedefinition.apiextensions.k8s.io "perconaservermongodbrestores.psmdb.percona.com" deleted customresourcedefinition.apiextensions.k8s.io "perconaservermongodbs.psmdb.percona.com" deleted + cat /tmp/tmp.9XK4WPaopI + rm /tmp/tmp.kR0FcKfPat /tmp/tmp.9XK4WPaopI + return 0 ++ yq eval .metadata.name /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2315/deploy/crd.yaml ++ grep -v '\-\-\-' grep: warning: stray \ before - grep: warning: stray \ before - + for crd_name in $(yq eval '.metadata.name' "${src_dir}/deploy/crd.yaml" | grep -v '\-\-\-') + kubectl get perconaservermongodbbackups.psmdb.percona.com --all-namespaces -o wide + grep -v NAMESPACE + xargs -L 1 sh -xc 'kubectl patch perconaservermongodbbackups.psmdb.percona.com -n $0 $1 --type=merge -p "{\"metadata\":{\"finalizers\":[]}}"' error: the server doesn't have a resource type "perconaservermongodbbackups" + kubectl patch perconaservermongodbbackups.psmdb.percona.com -n sh --type=merge -p '{"metadata":{"finalizers":[]}}' error: the server doesn't have a resource type "perconaservermongodbbackups" + : + kubectl_bin wait --for=delete crd perconaservermongodbbackups.psmdb.percona.com ++ mktemp + local LAST_OUT=/tmp/tmp.DfZDSyAHUR ++ mktemp + local LAST_ERR=/tmp/tmp.EB0icxPMCw + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl wait --for=delete crd perconaservermongodbbackups.psmdb.percona.com + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.DfZDSyAHUR + cat /tmp/tmp.EB0icxPMCw + rm /tmp/tmp.DfZDSyAHUR /tmp/tmp.EB0icxPMCw + return 0 + for crd_name in $(yq eval '.metadata.name' "${src_dir}/deploy/crd.yaml" | grep -v '\-\-\-') + kubectl get perconaservermongodbclustersyncs.psmdb.percona.com --all-namespaces -o wide + grep -v NAMESPACE + xargs -L 1 sh -xc 'kubectl patch perconaservermongodbclustersyncs.psmdb.percona.com -n $0 $1 --type=merge -p "{\"metadata\":{\"finalizers\":[]}}"' error: the server doesn't have a resource type "perconaservermongodbclustersyncs" + kubectl patch perconaservermongodbclustersyncs.psmdb.percona.com -n sh --type=merge -p '{"metadata":{"finalizers":[]}}' error: the server doesn't have a resource type "perconaservermongodbclustersyncs" + : + kubectl_bin wait --for=delete crd perconaservermongodbclustersyncs.psmdb.percona.com ++ mktemp + local LAST_OUT=/tmp/tmp.pypIknMXPN ++ mktemp + local LAST_ERR=/tmp/tmp.EfrTPo8iOa + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl wait --for=delete crd perconaservermongodbclustersyncs.psmdb.percona.com + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.pypIknMXPN + cat /tmp/tmp.EfrTPo8iOa + rm /tmp/tmp.pypIknMXPN /tmp/tmp.EfrTPo8iOa + return 0 + for crd_name in $(yq eval '.metadata.name' "${src_dir}/deploy/crd.yaml" | grep -v '\-\-\-') + kubectl get perconaservermongodbrestores.psmdb.percona.com --all-namespaces -o wide + grep -v NAMESPACE + xargs -L 1 sh -xc 'kubectl patch perconaservermongodbrestores.psmdb.percona.com -n $0 $1 --type=merge -p "{\"metadata\":{\"finalizers\":[]}}"' error: the server doesn't have a resource type "perconaservermongodbrestores" + kubectl patch perconaservermongodbrestores.psmdb.percona.com -n sh --type=merge -p '{"metadata":{"finalizers":[]}}' error: the server doesn't have a resource type "perconaservermongodbrestores" + : + kubectl_bin wait --for=delete crd perconaservermongodbrestores.psmdb.percona.com ++ mktemp + local LAST_OUT=/tmp/tmp.C1jBqpBHEk ++ mktemp + local LAST_ERR=/tmp/tmp.PecB3ESA0g + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl wait --for=delete crd perconaservermongodbrestores.psmdb.percona.com + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.C1jBqpBHEk + cat /tmp/tmp.PecB3ESA0g + rm /tmp/tmp.C1jBqpBHEk /tmp/tmp.PecB3ESA0g + return 0 + for crd_name in $(yq eval '.metadata.name' "${src_dir}/deploy/crd.yaml" | grep -v '\-\-\-') + grep -v NAMESPACE + kubectl get perconaservermongodbs.psmdb.percona.com --all-namespaces -o wide + xargs -L 1 sh -xc 'kubectl patch perconaservermongodbs.psmdb.percona.com -n $0 $1 --type=merge -p "{\"metadata\":{\"finalizers\":[]}}"' + kubectl patch perconaservermongodbs.psmdb.percona.com -n upgrade-sharded-20668 upgrade-sharded --type=merge -p '{"metadata":{"finalizers":[]}}' perconaservermongodb.psmdb.percona.com/upgrade-sharded patched + kubectl_bin wait --for=delete crd perconaservermongodbs.psmdb.percona.com ++ mktemp + local LAST_OUT=/tmp/tmp.nfYuqcQDB2 ++ mktemp + local LAST_ERR=/tmp/tmp.FcIr1Z9y9s + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl wait --for=delete crd perconaservermongodbs.psmdb.percona.com + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.nfYuqcQDB2 customresourcedefinition.apiextensions.k8s.io/perconaservermongodbs.psmdb.percona.com condition met + cat /tmp/tmp.FcIr1Z9y9s + rm /tmp/tmp.nfYuqcQDB2 /tmp/tmp.FcIr1Z9y9s + return 0 + local rbac_yaml=rbac.yaml + '[' -n psmdb-operator ']' + rbac_yaml=cw-rbac.yaml + kubectl_bin delete -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2315/deploy/cw-rbac.yaml --ignore-not-found ++ mktemp + local LAST_OUT=/tmp/tmp.ZuLF8Gszpk ++ mktemp + local LAST_ERR=/tmp/tmp.BUGdgxVK9S + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl delete -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2315/deploy/cw-rbac.yaml --ignore-not-found + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.ZuLF8Gszpk clusterrole.rbac.authorization.k8s.io "percona-server-mongodb-operator" deleted clusterrolebinding.rbac.authorization.k8s.io "service-account-percona-server-mongodb-operator" deleted + cat /tmp/tmp.BUGdgxVK9S + rm /tmp/tmp.ZuLF8Gszpk /tmp/tmp.BUGdgxVK9S + return 0 + destroy_cert_manager + kubectl_bin delete -f https://github.com/cert-manager/cert-manager/releases/download/v1.19.3/cert-manager.yaml ++ mktemp + local LAST_OUT=/tmp/tmp.57kt1nWbte ++ mktemp + local LAST_ERR=/tmp/tmp.Jrz9GpnSq2 + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl delete -f https://github.com/cert-manager/cert-manager/releases/download/v1.19.3/cert-manager.yaml + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.57kt1nWbte namespace "cert-manager" deleted customresourcedefinition.apiextensions.k8s.io "challenges.acme.cert-manager.io" deleted customresourcedefinition.apiextensions.k8s.io "orders.acme.cert-manager.io" deleted customresourcedefinition.apiextensions.k8s.io "certificaterequests.cert-manager.io" deleted customresourcedefinition.apiextensions.k8s.io "certificates.cert-manager.io" deleted customresourcedefinition.apiextensions.k8s.io "clusterissuers.cert-manager.io" deleted customresourcedefinition.apiextensions.k8s.io "issuers.cert-manager.io" deleted serviceaccount "cert-manager-cainjector" deleted from cert-manager namespace serviceaccount "cert-manager" deleted from cert-manager namespace serviceaccount "cert-manager-webhook" deleted from cert-manager namespace clusterrole.rbac.authorization.k8s.io "cert-manager-cainjector" deleted clusterrole.rbac.authorization.k8s.io "cert-manager-controller-issuers" deleted clusterrole.rbac.authorization.k8s.io "cert-manager-controller-clusterissuers" deleted clusterrole.rbac.authorization.k8s.io "cert-manager-controller-certificates" deleted clusterrole.rbac.authorization.k8s.io "cert-manager-controller-orders" deleted clusterrole.rbac.authorization.k8s.io "cert-manager-controller-challenges" deleted clusterrole.rbac.authorization.k8s.io "cert-manager-controller-ingress-shim" deleted clusterrole.rbac.authorization.k8s.io "cert-manager-cluster-view" deleted clusterrole.rbac.authorization.k8s.io "cert-manager-view" deleted clusterrole.rbac.authorization.k8s.io "cert-manager-edit" deleted clusterrole.rbac.authorization.k8s.io "cert-manager-controller-approve:cert-manager-io" deleted clusterrole.rbac.authorization.k8s.io "cert-manager-controller-certificatesigningrequests" deleted clusterrole.rbac.authorization.k8s.io "cert-manager-webhook:subjectaccessreviews" deleted clusterrolebinding.rbac.authorization.k8s.io "cert-manager-cainjector" deleted clusterrolebinding.rbac.authorization.k8s.io "cert-manager-controller-issuers" deleted clusterrolebinding.rbac.authorization.k8s.io "cert-manager-controller-clusterissuers" deleted clusterrolebinding.rbac.authorization.k8s.io "cert-manager-controller-certificates" deleted clusterrolebinding.rbac.authorization.k8s.io "cert-manager-controller-orders" deleted clusterrolebinding.rbac.authorization.k8s.io "cert-manager-controller-challenges" deleted clusterrolebinding.rbac.authorization.k8s.io "cert-manager-controller-ingress-shim" deleted clusterrolebinding.rbac.authorization.k8s.io "cert-manager-controller-approve:cert-manager-io" deleted clusterrolebinding.rbac.authorization.k8s.io "cert-manager-controller-certificatesigningrequests" deleted clusterrolebinding.rbac.authorization.k8s.io "cert-manager-webhook:subjectaccessreviews" deleted role.rbac.authorization.k8s.io "cert-manager-cainjector:leaderelection" deleted from kube-system namespace role.rbac.authorization.k8s.io "cert-manager:leaderelection" deleted from kube-system namespace role.rbac.authorization.k8s.io "cert-manager-tokenrequest" deleted from cert-manager namespace role.rbac.authorization.k8s.io "cert-manager-webhook:dynamic-serving" deleted from cert-manager namespace rolebinding.rbac.authorization.k8s.io "cert-manager-cainjector:leaderelection" deleted from kube-system namespace rolebinding.rbac.authorization.k8s.io "cert-manager:leaderelection" deleted from kube-system namespace rolebinding.rbac.authorization.k8s.io "cert-manager-tokenrequest" deleted from cert-manager namespace rolebinding.rbac.authorization.k8s.io "cert-manager-webhook:dynamic-serving" deleted from cert-manager namespace service "cert-manager-cainjector" deleted from cert-manager namespace service "cert-manager" deleted from cert-manager namespace service "cert-manager-webhook" deleted from cert-manager namespace deployment.apps "cert-manager-cainjector" deleted from cert-manager namespace deployment.apps "cert-manager" deleted from cert-manager namespace deployment.apps "cert-manager-webhook" deleted from cert-manager namespace mutatingwebhookconfiguration.admissionregistration.k8s.io "cert-manager-webhook" deleted validatingwebhookconfiguration.admissionregistration.k8s.io "cert-manager-webhook" deleted + cat /tmp/tmp.Jrz9GpnSq2 + rm /tmp/tmp.57kt1nWbte /tmp/tmp.Jrz9GpnSq2 + return 0 + '[' -n '' ']' + '[' -n psmdb-operator ']' + kubectl_bin delete --grace-period=0 --force=true namespace upgrade-sharded-20668 + rm -rf /tmp/tmp.NWX7yZihph + kubectl_bin delete --grace-period=0 --force=true namespace psmdb-operator ++ mktemp ++ mktemp + desc 'test passed' + set +o xtrace ----------------------------------------------------------------------------------- test passed ----------------------------------------------------------------------------------- + local LAST_OUT=/tmp/tmp.mJlipoGah8 ++ mktemp + local LAST_OUT=/tmp/tmp.oizu6dYLnV ++ mktemp + local LAST_ERR=/tmp/tmp.RKzU6Po6ch + local exit_status=0 + local timeout=4 ++ seq 0 2 + local LAST_ERR=/tmp/tmp.kDcIT1GKGH + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl delete --grace-period=0 --force=true namespace upgrade-sharded-20668 + for i in $(seq 0 2) + set +e + kubectl delete --grace-period=0 --force=true namespace psmdb-operator