++ echo 'Log: /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2397/e2e-tests/logs/serviceless-external-nodes.log' Log: /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2397/e2e-tests/logs/serviceless-external-nodes.log ++ '[' -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2397/e2e-tests/conf/cloud-secret.yml ']' ++ SKIP_BACKUPS_TO_AWS_GCP_AZURE= ++ oc get projects ++ kubectl get nodes ++ grep '^minikube' +++ kubectl version -o json +++ jq -r .serverVersion.gitVersion +++ grep -eks- Warning: version difference between client (1.36) and server (1.33) exceeds the supported minor version skew of +/-1 ++ '[' ']' ++ EKS=0 +++ kubectl version -o json +++ jq -r .serverVersion.gitVersion +++ grep gke Warning: version difference between client (1.36) and server (1.33) exceeds the supported minor version skew of +/-1 ++ '[' v1.33.11-gke.1197000 ']' ++ GKE=1 +++ kubectl version -o json +++ /usr/sbin/sed -r 's/[^0-9.]+//g' +++ jq -r '.serverVersion.major + "." + .serverVersion.minor' Warning: version difference between client (1.36) and server (1.33) exceeds the supported minor version skew of +/-1 ++ KUBE_VERSION=1.33 ++ 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=17356 +++ /usr/sbin/sed -r 's/^.*db version v(([0-9]+\.){2}[0-9]+-[0-9]+).*$/\1/g' +++ kubectl_bin -n default run 17356 --image=docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0 --restart=Never --command -- sleep infinity ++++ mktemp +++ local LAST_OUT=/tmp/tmp.JRTteZYaTC ++++ mktemp +++ local LAST_ERR=/tmp/tmp.ZDH9b48Paz +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl -n default run 17356 --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.JRTteZYaTC +++ cat /tmp/tmp.ZDH9b48Paz +++ rm /tmp/tmp.JRTteZYaTC /tmp/tmp.ZDH9b48Paz +++ return 0 +++ kubectl_bin -n default wait --for=condition=Ready pod/17356 ++++ mktemp +++ local LAST_OUT=/tmp/tmp.4w28qrhgUH ++++ mktemp +++ local LAST_ERR=/tmp/tmp.wRDFGhwIHb +++ 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/17356 +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.4w28qrhgUH +++ cat /tmp/tmp.wRDFGhwIHb +++ rm /tmp/tmp.4w28qrhgUH /tmp/tmp.wRDFGhwIHb +++ return 0 ++++ kubectl_bin -n default exec 17356 -- bash -c 'mongod --version 2>&1' +++++ mktemp ++++ local LAST_OUT=/tmp/tmp.uv1J3bAHRG +++++ mktemp ++++ local LAST_ERR=/tmp/tmp.uHDDbTp1HG ++++ local exit_status=0 ++++ local timeout=4 +++++ seq 0 2 ++++ for i in $(seq 0 2) ++++ set +e ++++ kubectl -n default exec 17356 -- bash -c 'mongod --version 2>&1' ++++ exit_status=0 ++++ set -e ++++ '[' 0 '!=' 0 -a -n 1 ']' ++++ break ++++ cat /tmp/tmp.uv1J3bAHRG ++++ cat /tmp/tmp.uHDDbTp1HG ++++ rm /tmp/tmp.uv1J3bAHRG /tmp/tmp.uHDDbTp1HG ++++ 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/17356 --grace-period=0 --force ++++ mktemp +++ local LAST_OUT=/tmp/tmp.yTGoJ3Fuvu ++++ mktemp +++ local LAST_ERR=/tmp/tmp.DpCn5wuedf +++ local exit_status=0 +++ local timeout=4 ++++ seq 0 2 +++ for i in $(seq 0 2) +++ set +e +++ kubectl -n default delete pod/17356 --grace-period=0 --force +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 -a -n 1 ']' +++ break +++ cat /tmp/tmp.yTGoJ3Fuvu +++ cat /tmp/tmp.DpCn5wuedf 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.yTGoJ3Fuvu /tmp/tmp.DpCn5wuedf +++ 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 + unset OPERATOR_NS + desc 'Create main cluster' + set +o xtrace ----------------------------------------------------------------------------------- Create main cluster ----------------------------------------------------------------------------------- + create_infra serviceless-external-nodes-27674 + local ns=serviceless-external-nodes-27674 + [[ 1 == 1 ]] + 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-2397/deploy/crd.yaml --ignore-not-found --wait=false ++ mktemp + local LAST_OUT=/tmp/tmp.Ikgtfx8yfM ++ mktemp + local LAST_ERR=/tmp/tmp.lOhtRpeqJU + 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-2397/deploy/crd.yaml --ignore-not-found --wait=false + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.Ikgtfx8yfM 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.lOhtRpeqJU + rm /tmp/tmp.Ikgtfx8yfM /tmp/tmp.lOhtRpeqJU + return 0 ++ yq eval .metadata.name /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2397/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.NVS8BrvxHe ++ mktemp + local LAST_ERR=/tmp/tmp.gn2STZZYiU + 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.NVS8BrvxHe + cat /tmp/tmp.gn2STZZYiU + rm /tmp/tmp.NVS8BrvxHe /tmp/tmp.gn2STZZYiU + 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.VITBmBaofU ++ mktemp + local LAST_ERR=/tmp/tmp.x71GzzK2LA + 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.VITBmBaofU + cat /tmp/tmp.x71GzzK2LA + rm /tmp/tmp.VITBmBaofU /tmp/tmp.x71GzzK2LA + 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.aY1PQCcEdd ++ mktemp + local LAST_ERR=/tmp/tmp.gbYH4WWA9i + 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.aY1PQCcEdd + cat /tmp/tmp.gbYH4WWA9i + rm /tmp/tmp.aY1PQCcEdd /tmp/tmp.gbYH4WWA9i + return 0 + for crd_name in $(yq eval '.metadata.name' "${src_dir}/deploy/crd.yaml" | grep -v '\-\-\-') + kubectl get perconaservermongodbs.psmdb.percona.com --all-namespaces -o wide + grep -v NAMESPACE + xargs -L 1 sh -xc 'kubectl patch perconaservermongodbs.psmdb.percona.com -n $0 $1 --type=merge -p "{\"metadata\":{\"finalizers\":[]}}"' error: the server doesn't have a resource type "perconaservermongodbs" + kubectl patch perconaservermongodbs.psmdb.percona.com -n sh --type=merge -p '{"metadata":{"finalizers":[]}}' error: the server doesn't have a resource type "perconaservermongodbs" + : + kubectl_bin wait --for=delete crd perconaservermongodbs.psmdb.percona.com ++ mktemp + local LAST_OUT=/tmp/tmp.rRltlhfDqu ++ mktemp + local LAST_ERR=/tmp/tmp.jFUeXcnuOF + 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.rRltlhfDqu + cat /tmp/tmp.jFUeXcnuOF + rm /tmp/tmp.rRltlhfDqu /tmp/tmp.jFUeXcnuOF + return 0 + local rbac_yaml=rbac.yaml + '[' -n '' ']' + kubectl_bin delete -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2397/deploy/rbac.yaml --ignore-not-found ++ mktemp + local LAST_OUT=/tmp/tmp.lsCXtrLAoZ ++ mktemp + local LAST_ERR=/tmp/tmp.sAoCQefvH2 + 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-2397/deploy/rbac.yaml --ignore-not-found + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.lsCXtrLAoZ role.rbac.authorization.k8s.io "percona-server-mongodb-operator" deleted from serviceless-external-nodes-17886 namespace serviceaccount "percona-server-mongodb-operator" deleted from serviceless-external-nodes-17886 namespace rolebinding.rbac.authorization.k8s.io "service-account-percona-server-mongodb-operator" deleted from serviceless-external-nodes-17886 namespace + cat /tmp/tmp.sAoCQefvH2 + rm /tmp/tmp.lsCXtrLAoZ /tmp/tmp.sAoCQefvH2 + return 0 + check_crd_for_deletion PR-2397-b574baaaa + local git_tag=PR-2397-b574baaaa ++ curl -s https://raw.githubusercontent.com/percona/percona-server-mongodb-operator/PR-2397-b574baaaa/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/null -o 'jsonpath={.status.conditions[-1].type}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.Ld8QOOMLqb +++ mktemp ++ local LAST_ERR=/tmp/tmp.6Lu9zOa2uo ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get crd/null -o 'jsonpath={.status.conditions[-1].type}' ++ exit_status=1 ++ set -e ++ '[' 1 '!=' 0 -a -n 1 ']' ++ cat /tmp/tmp.Ld8QOOMLqb ++ cat /tmp/tmp.6Lu9zOa2uo Error from server (NotFound): customresourcedefinitions.apiextensions.k8s.io "null" not found ++ sleep 0 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get crd/null -o 'jsonpath={.status.conditions[-1].type}' ++ exit_status=1 ++ set -e ++ '[' 1 '!=' 0 -a -n 1 ']' ++ cat /tmp/tmp.Ld8QOOMLqb ++ cat /tmp/tmp.6Lu9zOa2uo Error from server (NotFound): customresourcedefinitions.apiextensions.k8s.io "null" not found ++ sleep 4 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get crd/null -o 'jsonpath={.status.conditions[-1].type}' ++ exit_status=1 ++ set -e ++ '[' 1 '!=' 0 -a -n 1 ']' ++ cat /tmp/tmp.Ld8QOOMLqb ++ cat /tmp/tmp.6Lu9zOa2uo Error from server (NotFound): customresourcedefinitions.apiextensions.k8s.io "null" not found ++ sleep 8 ++ cat /tmp/tmp.Ld8QOOMLqb ++ cat /tmp/tmp.6Lu9zOa2uo Error from server (NotFound): customresourcedefinitions.apiextensions.k8s.io "null" not found ++ rm /tmp/tmp.Ld8QOOMLqb /tmp/tmp.6Lu9zOa2uo ++ return 1 + [[ '' == Terminating ]] + '[' -n '' ']' + create_namespace serviceless-external-nodes-27674 + local namespace=serviceless-external-nodes-27674 + 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 ++ awk '{print $1}' ++ grep chaos-mesh + 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}' + '[' -n '' ']' + desc 'cleaned up old namespaces serviceless-external-nodes-27674' + set +o xtrace ----------------------------------------------------------------------------------- cleaned up old namespaces serviceless-external-nodes-27674++ mktemp ----------------------------------------------------------------------------------- + kubectl_bin delete namespace serviceless-external-nodes-27674 --ignore-not-found + xargs kubectl delete ns ++ mktemp + local LAST_OUT=/tmp/tmp.98I1dZtcsd ++ mktemp + local LAST_OUT=/tmp/tmp.VSQXMtisCo ++ mktemp + local LAST_ERR=/tmp/tmp.fjhE9UEmTN + local exit_status=0 + local timeout=4 ++ seq 0 2 + local LAST_ERR=/tmp/tmp.48HA1sSUdo + 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 serviceless-external-nodes-27674 --ignore-not-found + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.98I1dZtcsd + cat /tmp/tmp.fjhE9UEmTN + rm /tmp/tmp.98I1dZtcsd /tmp/tmp.fjhE9UEmTN + return 0 + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.VSQXMtisCo + cat /tmp/tmp.48HA1sSUdo + rm /tmp/tmp.VSQXMtisCo /tmp/tmp.48HA1sSUdo + return 0 + kubectl_bin wait --for=delete namespace serviceless-external-nodes-27674 ++ mktemp + local LAST_OUT=/tmp/tmp.xpB0RekkLt ++ mktemp + local LAST_ERR=/tmp/tmp.IN38ookxDa + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl wait --for=delete namespace serviceless-external-nodes-27674 namespace "serviceless-external-nodes-17886" deleted + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.xpB0RekkLt + cat /tmp/tmp.IN38ookxDa + rm /tmp/tmp.xpB0RekkLt /tmp/tmp.IN38ookxDa + return 0 + desc 'create namespace serviceless-external-nodes-27674' + set +o xtrace ----------------------------------------------------------------------------------- create namespace serviceless-external-nodes-27674 ----------------------------------------------------------------------------------- + kubectl_bin create namespace serviceless-external-nodes-27674 ++ mktemp + local LAST_OUT=/tmp/tmp.TdIF2TGhu5 ++ mktemp + local LAST_ERR=/tmp/tmp.4kcvj260fC + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl create namespace serviceless-external-nodes-27674 + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.TdIF2TGhu5 namespace/serviceless-external-nodes-27674 created + cat /tmp/tmp.4kcvj260fC + rm /tmp/tmp.TdIF2TGhu5 /tmp/tmp.4kcvj260fC + return 0 + set_kube_ctx serviceless-external-nodes-27674 + local namespace=serviceless-external-nodes-27674 ++ kubectl_bin config current-context +++ mktemp ++ local LAST_OUT=/tmp/tmp.rkRCmjizlD +++ mktemp ++ local LAST_ERR=/tmp/tmp.s3vEB4LST2 ++ 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.rkRCmjizlD ++ cat /tmp/tmp.s3vEB4LST2 ++ rm /tmp/tmp.rkRCmjizlD /tmp/tmp.s3vEB4LST2 ++ return 0 + kubectl_bin config set-context gke_cloud-dev-112233_us-central1-a_jen-psmdb-2397-b574baaaa-19-cluster1 --namespace=serviceless-external-nodes-27674 ++ mktemp + local LAST_OUT=/tmp/tmp.yE2m5fXHIm ++ mktemp + local LAST_ERR=/tmp/tmp.aJnMWWSK6c + 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-2397-b574baaaa-19-cluster1 --namespace=serviceless-external-nodes-27674 + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.yE2m5fXHIm Context "gke_cloud-dev-112233_us-central1-a_jen-psmdb-2397-b574baaaa-19-cluster1" modified. + cat /tmp/tmp.aJnMWWSK6c + rm /tmp/tmp.yE2m5fXHIm /tmp/tmp.aJnMWWSK6c + return 0 + deploy_operator + desc 'start PSMDB operator: docker.io/perconalab/percona-server-mongodb-operator:PR-2397-b574baaaa' + set +o xtrace ----------------------------------------------------------------------------------- start PSMDB operator: docker.io/perconalab/percona-server-mongodb-operator:PR-2397-b574baaaa ----------------------------------------------------------------------------------- + local cr_file + '[' -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2397/e2e-tests/serviceless-external-nodes/conf/crd.yaml ']' + cr_file=/mnt/jenkins/workspace/cloud-psmdb-operator_PR-2397/deploy/crd.yaml + kubectl_bin apply --server-side --force-conflicts -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2397/deploy/crd.yaml ++ mktemp + local LAST_OUT=/tmp/tmp.oNRWnFEtOx ++ mktemp + local LAST_ERR=/tmp/tmp.zHDxYaEkxk + 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-2397/deploy/crd.yaml + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.oNRWnFEtOx 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.zHDxYaEkxk + rm /tmp/tmp.oNRWnFEtOx /tmp/tmp.zHDxYaEkxk + return 0 + '[' -n '' ']' + apply_rbac rbac + local operator_namespace=psmdb-operator + local rbac=rbac + cat /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2397/deploy/rbac.yaml + sed -e 's^namespace: .*^namespace: psmdb-operator^' + kubectl_bin apply -f - ++ mktemp + local LAST_OUT=/tmp/tmp.TUNzUZBGKi ++ mktemp + local LAST_ERR=/tmp/tmp.2CRUEZMlAi + 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.TUNzUZBGKi role.rbac.authorization.k8s.io/percona-server-mongodb-operator created serviceaccount/percona-server-mongodb-operator created rolebinding.rbac.authorization.k8s.io/service-account-percona-server-mongodb-operator created + cat /tmp/tmp.2CRUEZMlAi + rm /tmp/tmp.TUNzUZBGKi /tmp/tmp.2CRUEZMlAi + return 0 + yq eval $'\n\t\t\t(.spec.template.spec.containers[].image = "docker.io/perconalab/percona-server-mongodb-operator:PR-2397-b574baaaa") |\n\t\t\t((.. | select(.[] == "DISABLE_TELEMETRY")) |= .value="true") |\n\t\t\t((.. | select(.[] == "LOG_LEVEL")) |= .value="DEBUG")' /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2397/deploy/operator.yaml + kubectl_bin apply -f - ++ mktemp + local LAST_OUT=/tmp/tmp.0vk5kwbu93 ++ mktemp + local LAST_ERR=/tmp/tmp.PpdvGLupPb + 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.0vk5kwbu93 deployment.apps/percona-server-mongodb-operator created + cat /tmp/tmp.PpdvGLupPb + rm /tmp/tmp.0vk5kwbu93 /tmp/tmp.PpdvGLupPb + return 0 + sleep 20 ++ get_operator_pod ++ kubectl_bin get pods --selector=name=percona-server-mongodb-operator -o 'jsonpath={.items[].metadata.name}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.NUowiE5o8f +++ mktemp ++ local LAST_ERR=/tmp/tmp.QDabUcJLse ++ 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}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.NUowiE5o8f ++ cat /tmp/tmp.QDabUcJLse ++ rm /tmp/tmp.NUowiE5o8f /tmp/tmp.QDabUcJLse ++ return 0 + wait_operator_pod percona-server-mongodb-operator-778bbf9bc7-5p6wv + local pod=percona-server-mongodb-operator-778bbf9bc7-5p6wv + set +o xtrace waiting for pod/percona-server-mongodb-operator-778bbf9bc7-5p6wv 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}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.BMz6M17x6q +++ mktemp ++ local LAST_ERR=/tmp/tmp.ZXACECwicy ++ 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}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.BMz6M17x6q ++ cat /tmp/tmp.ZXACECwicy ++ rm /tmp/tmp.BMz6M17x6q /tmp/tmp.ZXACECwicy ++ return 0 + kubectl_bin logs percona-server-mongodb-operator-778bbf9bc7-5p6wv ++ mktemp + local LAST_OUT=/tmp/tmp.LRtYXrLi3U ++ mktemp + local LAST_ERR=/tmp/tmp.JMEccqVeRR + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl logs percona-server-mongodb-operator-778bbf9bc7-5p6wv + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.LRtYXrLi3U + cat /tmp/tmp.JMEccqVeRR + rm /tmp/tmp.LRtYXrLi3U /tmp/tmp.JMEccqVeRR + return 0 2026-06-23T00:40:06.296Z INFO setup Manager starting up {"gitCommit": "b574baaaab6a4ead9617911a3da4490a404d532c", "gitBranch": "PR-2397-b574baaaa", "buildTime": "", "goVersion": "go1.26.4", "os": "linux", "arch": "amd64"} + kubectl_bin apply -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2397/e2e-tests/conf/client.yml -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2397/e2e-tests/serviceless-external-nodes/conf/secrets.yml ++ mktemp + local LAST_OUT=/tmp/tmp.Ewi4jx0gEa ++ mktemp + local LAST_ERR=/tmp/tmp.VVZUW5xiXX + 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-2397/e2e-tests/conf/client.yml -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2397/e2e-tests/serviceless-external-nodes/conf/secrets.yml + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.Ewi4jx0gEa deployment.apps/psmdb-client created secret/mydb-custom-users created secret/mydb-custom-encryption-key created secret/mydb-custom-ssl created secret/mydb-custom-ssl-internal created secret/mydb-custom-mongodb-keyfile created + cat /tmp/tmp.VVZUW5xiXX + rm /tmp/tmp.Ewi4jx0gEa /tmp/tmp.VVZUW5xiXX + return 0 + apply_cluster /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2397/e2e-tests/serviceless-external-nodes/conf/main.yml + '[' -z '' ']' + cat_config /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2397/e2e-tests/serviceless-external-nodes/conf/main.yml + kubectl_bin apply -f - + cat /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2397/e2e-tests/serviceless-external-nodes/conf/main.yml + yq eval '(.spec | select(.image == null)).image = "docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0"' ++ mktemp + yq eval '(.spec | select(has("pmm"))).pmm.image = "docker.io/percona/pmm-client:2.44.1-1"' + yq eval '(.spec | select(has("initImage"))).initImage = "docker.io/perconalab/percona-server-mongodb-operator:PR-2397-b574baaaa"' + yq eval '(.spec | select(has("backup"))).backup.image = "docker.io/perconalab/percona-server-mongodb-operator:main-backup"' + yq eval '(.spec | select(has("search"))).search.image = "mongodb/mongodb-community-search:latest"' + /usr/sbin/sed -e s/NAME_SPACE/serviceless-external-nodes-27674/g + local LAST_OUT=/tmp/tmp.e1c8XGqyMP + yq eval '.spec.upgradeOptions.apply="Never"' ++ mktemp + local LAST_ERR=/tmp/tmp.eM3UZMtRzr + 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.e1c8XGqyMP perconaservermongodb.psmdb.percona.com/mydb created + cat /tmp/tmp.eM3UZMtRzr + rm /tmp/tmp.e1c8XGqyMP /tmp/tmp.eM3UZMtRzr + return 0 + wait_for_running mydb-rs0 1 + local name=mydb-rs0 + let last_pod=0 + : + local check_cluster_readyness=true + set_debug + [[ 1 == 1 ]] + set -o xtrace + local rs_name=rs0 + local cluster_name=mydb ++ seq 0 0 + for i in $(seq 0 $last_pod) + [[ 0 -eq 0 ]] ++ kubectl_bin get psmdb mydb -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].arbiter.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.b0eBoAPBb4 +++ mktemp ++ local LAST_ERR=/tmp/tmp.Bb37qMQXFj ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb mydb -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].arbiter.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.b0eBoAPBb4 ++ cat /tmp/tmp.Bb37qMQXFj ++ rm /tmp/tmp.b0eBoAPBb4 /tmp/tmp.Bb37qMQXFj ++ return 0 + [[ false == true ]] + wait_pod mydb-rs0-0 + local pod=mydb-rs0-0 + set +o xtrace waiting for pod/mydb-rs0-0 to be ready.................OK ++ kubectl_bin get psmdb mydb -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].nonvoting.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.8yTyzrSBpe +++ mktemp ++ local LAST_ERR=/tmp/tmp.mlnUIaSgN1 ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb mydb -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].nonvoting.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.8yTyzrSBpe ++ cat /tmp/tmp.mlnUIaSgN1 ++ rm /tmp/tmp.8yTyzrSBpe /tmp/tmp.mlnUIaSgN1 ++ return 0 + [[ false == true ]] ++ kubectl_bin get psmdb mydb -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].hidden.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.8zHVRrFEr3 +++ mktemp ++ local LAST_ERR=/tmp/tmp.xZzCF8TBsr ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb mydb -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].hidden.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.8zHVRrFEr3 ++ cat /tmp/tmp.xZzCF8TBsr ++ rm /tmp/tmp.8zHVRrFEr3 /tmp/tmp.xZzCF8TBsr ++ return 0 + [[ '' == true ]] + sleep 10 + [[ true == true ]] + set +x Waiting for cluster readyness.............................. + compare_kubectl statefulset/mydb-rs0 + local resource=statefulset/mydb-rs0 + local postfix= + local skip_generation_check= + local expected_result=/mnt/jenkins/workspace/cloud-psmdb-operator_PR-2397/e2e-tests/serviceless-external-nodes/compare/statefulset_mydb-rs0.yml + local new_result=/tmp/tmp.zzUvYNNqtY/statefulset_mydb-rs0.yml + '[' -n '' -a -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2397/e2e-tests/serviceless-external-nodes/compare/statefulset_mydb-rs0-oc.yml ']' + kubectl_bin get -o yaml statefulset/mydb-rs0 ++ mktemp + yq eval $'\n\t\t\tdel(.metadata.ownerReferences[].apiVersion) |\n\t\t\tdel(.metadata.managedFields) |\n\t\t\tdel(.. | select(has("creationTimestamp")).creationTimestamp) |\n\t\t\tdel(.. | select(has("namespace")).namespace) |\n\t\t\tdel(.. | select(has("uid")).uid) |\n\t\t\tdel(.metadata.resourceVersion) |\n\t\t\tdel(.spec.template.spec.containers[].env[] | select(.name == "NAMESPACE")) |\n\t\t\tdel(.metadata.selfLink) |\n\t\t\tdel(.metadata.annotations."cloud.google.com/neg") |\n\t\t\tdel(.metadata.annotations."kubectl.kubernetes.io/last-applied-configuration") |\n\t\t\tdel(.. | select(has("image")).image) |\n\t\t\tdel(.. | select(has("clusterIP")).clusterIP) |\n\t\t\tdel(.. | select(has("clusterIPs")).clusterIPs) |\n\t\t\tdel(.. | select(has("dataSource")).dataSource) |\n\t\t\tdel(.. | select(has("procMount")).procMount) |\n\t\t\tdel(.. | select(has("storageClassName")).storageClassName) |\n\t\t\tdel(.. | select(has("finalizers")).finalizers) |\n\t\t\tdel(.. | select(has("kubernetes.io/pvc-protection"))."kubernetes.io/pvc-protection") |\n\t\t\tdel(.. | select(has("volumeName")).volumeName) |\n\t\t\tdel(.. | select(has("volume.beta.kubernetes.io/storage-provisioner"))."volume.beta.kubernetes.io/storage-provisioner") |\n\t\t\tdel(.. | select(has("volume.kubernetes.io/storage-provisioner"))."volume.kubernetes.io/storage-provisioner") |\n\t\t\tdel(.spec.volumeMode) |\n\t\t\tdel(.. | select(has("volume.kubernetes.io/selected-node"))."volume.kubernetes.io/selected-node") |\n\t\t\tdel(.. | select(has("percona.com/last-config-hash"))."percona.com/last-config-hash") |\n\t\t\tdel(.. | select(has("percona.com/configuration-hash"))."percona.com/configuration-hash") |\n\t\t\tdel(.. | select(has("percona.com/ssl-hash"))."percona.com/ssl-hash") |\n\t\t\tdel(.. | select(has("percona.com/ssl-internal-hash"))."percona.com/ssl-internal-hash") |\n\t\t\tdel(.spec.volumeClaimTemplates[].spec.volumeMode | select(. == "Filesystem")) |\n\t\t\tdel(.. | select(has("healthCheckNodePort")).healthCheckNodePort) |\n\t\t\tdel(.. | select(has("nodePort")).nodePort) |\n\t\t\tdel(.status) |\n\t\t\t(.. | select(tag == "!!str")) |= sub("serviceless-external-nodes-27674", "NAME_SPACE") |\n\t\t\tdel(.spec.volumeClaimTemplates[].apiVersion) |\n\t\t\tdel(.spec.volumeClaimTemplates[].kind) |\n\t\t\tdel(.spec.ipFamilies) |\n\t\t\tdel(.spec.ipFamilyPolicy) |\n\t\t\t(.. | select(. == "extensions/v1beta1")) = "apps/v1" |\n\t\t\t(.. | select(. == "batch/v1beta1")) = "batch/v1" ' - + local LAST_OUT=/tmp/tmp.q4ot0pKFCI ++ mktemp + local LAST_ERR=/tmp/tmp.n7oCKUcPNP + local exit_status=0 + local timeout=4 ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl get -o yaml statefulset/mydb-rs0 + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.q4ot0pKFCI + cat /tmp/tmp.n7oCKUcPNP + rm /tmp/tmp.q4ot0pKFCI /tmp/tmp.n7oCKUcPNP + return 0 + yq -i eval 'del(.spec.persistentVolumeClaimRetentionPolicy)' /tmp/tmp.zzUvYNNqtY/statefulset_mydb-rs0.yml + version_gt 1.22 ++ echo '1.33 >= 1.22' ++ bc -l + '[' 1 -eq 1 ']' + return 0 + yq -i eval 'del(.spec.internalTrafficPolicy)' /tmp/tmp.zzUvYNNqtY/statefulset_mydb-rs0.yml + yq -i eval 'del(.spec.allocateLoadBalancerNodePorts)' /tmp/tmp.zzUvYNNqtY/statefulset_mydb-rs0.yml + [[ /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2397/e2e-tests/serviceless-external-nodes/compare/statefulset_mydb-rs0.yml == */cronjob* ]] + '[' -n '' ']' + [[ 0 -eq 0 ]] + diff -u /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2397/e2e-tests/serviceless-external-nodes/compare/statefulset_mydb-rs0.yml /tmp/tmp.zzUvYNNqtY/statefulset_mydb-rs0.yml + log 'compare_kubectl: statefulset/mydb-rs0 OK' + set +o xtrace [2026-06-23T00:42:21+0000] compare_kubectl: statefulset/mydb-rs0 OK ++ kubectl_bin get secret -o json ++ jq --arg pattern mydb '[.items[] | select(.metadata.name | test($pattern))] | length' +++ mktemp ++ local LAST_OUT=/tmp/tmp.fBc9glq1AT +++ mktemp ++ local LAST_ERR=/tmp/tmp.4sVhDNVaim ++ local exit_status=0 ++ local timeout=4 +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get secret -o json ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.fBc9glq1AT ++ cat /tmp/tmp.4sVhDNVaim ++ rm /tmp/tmp.fBc9glq1AT /tmp/tmp.4sVhDNVaim ++ return 0 + secrets_count=7 + [[ 7 != 6 ]] + echo 'It'\''s expected to have 6 secrets. Currently have 7' It's expected to have 6 secrets. Currently have 7 + exit 1