============================= test session starts ============================== platform linux -- Python 3.14.5, pytest-9.1.1, pluggy-1.6.0 -- /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/.venv/bin/python cachedir: .pytest_cache metadata: {'Python': '3.14.5', 'Platform': 'Linux-7.0.8-100.fc43.x86_64-x86_64-with-glibc2.42', 'Packages': {'pytest': '9.1.1', 'pluggy': '1.6.0'}, 'Plugins': {'html': '4.2.0', 'metadata': '3.1.1', 'dependency': '0.6.1', 'json-report': '1.5.0'}, 'CI': 'true', 'BUILD_NUMBER': '22', 'BUILD_ID': '22', 'BUILD_URL': 'https://cloud.cd.percona.com/job/cloud-psmdb-operator/job/PR-2058/22/', 'NODE_NAME': 'hcloud-3hmxjv56rzynxord', 'JOB_NAME': 'cloud-psmdb-operator/PR-2058', 'BUILD_TAG': 'jenkins-cloud-psmdb-operator-PR-2058-22', 'EXECUTOR_NUMBER': '0', 'JENKINS_URL': 'https://cloud.cd.percona.com/', 'WORKSPACE': '/mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058', 'GIT_COMMIT': '78121c56762758785b75e9b7c017e15fc887ae5d', 'GIT_URL': 'https://github.com/percona/percona-server-mongodb-operator.git', 'GIT_BRANCH': 'PR-2058'} rootdir: /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058 configfile: pyproject.toml plugins: html-4.2.0, metadata-3.1.1, dependency-0.6.1, json-report-1.5.0 collecting ... collected 1 item e2e-tests/test_pytest_wrapper.py::test_bash_wrapper[ignore-labels-annotations] [01:00:31.803988] WARNING kubectl error: Warning: version difference between client (1.36) and server (1.33) exceeds the supported minor version skew of +/-1 [01:00:34.400480] INFO Environment variables: KUBE_VERSION=1.33 EKS=0 GKE=1 OPENSHIFT= MINIKUBE= API=psmdb.percona.com/v1 REGISTRY_NAME=docker.io GIT_COMMIT=78121c56762758785b75e9b7c017e15fc887ae5d GIT_BRANCH=PR-2058 OPERATOR_VERSION=1.23.0 IMAGE=docker.io/perconalab/percona-server-mongodb-ope rator:PR-2058-78121c567 IMAGE_MONGOD=docker.io/perconalab/percona-server-mong odb-operator:main-mongod8.0 IMAGE_MONGOD_CHAIN=docker.io/perconalab/percona-serve r-mongodb-operator:main-mongod6.0 docker.io/perconalab/percona-server-mongodb-operator: main-mongod7.0 docker.io/perconalab/percona-server-mongodb-operator: main-mongod8.0 IMAGE_SEARCH=perconalab/percona-server-mongodb-operat or:main-mongot IMAGE_BACKUP=docker.io/perconalab/percona-server-mong odb-operator:main-backup IMAGE_PMM_CLIENT=docker.io/percona/pmm-client:2.44.1- 1 IMAGE_PMM_SERVER=docker.io/perconalab/pmm-server:dev- latest IMAGE_PMM3_CLIENT=docker.io/perconalab/pmm-client:3-d ev-latest IMAGE_PMM3_SERVER=docker.io/perconalab/pmm-server:3-d ev-latest IMAGE_LOGCOLLECTOR=docker.io/perconalab/fluentbit:mai n-logcollector IMAGE_CLUSTERSYNC=docker.io/percona/percona-clustersy nc-mongodb:0.9.0 CERT_MANAGER_VER=1.19.3 CHAOS_MESH_VER=2.7.1 MINIO_VER=5.4.0 PMM_SERVER_VER=9.9.9 CLEAN_NAMESPACE=1 DELETE_CRD_ON_START=1 SKIP_DELETE=0 SKIP_BACKUPS_TO_AWS_GCP_AZURE= UPDATE_COMPARE_FILES=0 +++ dirname run ++ realpath . + test_dir=/mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations + . /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/../functions +++ dirname /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/../functions ++ source /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/../vars ++++ mktemp -d +++ export tmp_dir=/tmp/tmp.VrxCKgTEwO +++ tmp_dir=/tmp/tmp.VrxCKgTEwO ++++ command -v gsed ++++ command -v sed +++ export sed=/usr/sbin/sed +++ sed=/usr/sbin/sed ++++ command -v gdate ++++ command -v date +++ export date=/usr/sbin/date +++ date=/usr/sbin/date ++++ basename /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations +++ export test_name=ignore-labels-annotations +++ test_name=ignore-labels-annotations +++ export namespace=ignore-labels-annotations-18746 +++ namespace=ignore-labels-annotations-18746 +++ export arbiter_namespace=ignore-labels-annotations-arbiter-20663 +++ arbiter_namespace=ignore-labels-annotations-arbiter-20663 +++ export replica_namespace=ignore-labels-annotations-replica-19837 +++ replica_namespace=ignore-labels-annotations-replica-19837 ++++ realpath /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/../conf +++ export conf_dir=/mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/conf +++ conf_dir=/mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/conf ++++ realpath /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/../.. +++ export src_dir=/mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058 +++ src_dir=/mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058 +++ export logs_dir=/mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/../logs +++ logs_dir=/mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/../logs ++++ git rev-parse HEAD +++ export GIT_COMMIT=78121c56762758785b75e9b7c017e15fc887ae5d +++ GIT_COMMIT=78121c56762758785b75e9b7c017e15fc887ae5d +++ export GIT_BRANCH=PR-2058-78121c567 +++ GIT_BRANCH=PR-2058-78121c567 +++ export API=psmdb.percona.com/v1 +++ API=psmdb.percona.com/v1 ++++ awk '{print $2}' ++++++ dirname /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/../vars +++++ realpath /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/../../deploy/cr.yaml ++++ grep crVersion /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/deploy/cr.yaml +++ export OPERATOR_VERSION=1.23.0 +++ OPERATOR_VERSION=1.23.0 +++ export REGISTRY_NAME=docker.io +++ REGISTRY_NAME=docker.io +++ export REGISTRY_NAME_FULL=docker.io/ +++ REGISTRY_NAME_FULL=docker.io/ +++ export IMAGE=docker.io/perconalab/percona-server-mongodb-operator:PR-2058-78121c567 +++ IMAGE=docker.io/perconalab/percona-server-mongodb-operator:PR-2058-78121c567 +++ export IMAGE_MONGOD=docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0 +++ IMAGE_MONGOD=docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0 +++ export $'IMAGE_MONGOD_CHAIN=docker.io/perconalab/percona-server-mongodb-operator:main-mongod6.0\ndocker.io/perconalab/percona-server-mongodb-operator:main-mongod7.0\ndocker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0' +++ IMAGE_MONGOD_CHAIN=$'docker.io/perconalab/percona-server-mongodb-operator:main-mongod6.0\ndocker.io/perconalab/percona-server-mongodb-operator:main-mongod7.0\ndocker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0' +++ export IMAGE_SEARCH=perconalab/percona-server-mongodb-operator:main-mongot +++ IMAGE_SEARCH=perconalab/percona-server-mongodb-operator:main-mongot +++ export IMAGE_BACKUP=docker.io/perconalab/percona-server-mongodb-operator:main-backup +++ IMAGE_BACKUP=docker.io/perconalab/percona-server-mongodb-operator:main-backup +++ export IMAGE_PMM_CLIENT=docker.io/percona/pmm-client:2.44.1-1 +++ IMAGE_PMM_CLIENT=docker.io/percona/pmm-client:2.44.1-1 +++ export IMAGE_PMM_SERVER=docker.io/perconalab/pmm-server:dev-latest +++ IMAGE_PMM_SERVER=docker.io/perconalab/pmm-server:dev-latest +++ export IMAGE_PMM3_CLIENT=docker.io/perconalab/pmm-client:3-dev-latest +++ IMAGE_PMM3_CLIENT=docker.io/perconalab/pmm-client:3-dev-latest +++ export IMAGE_PMM3_SERVER=docker.io/perconalab/pmm-server:3-dev-latest +++ IMAGE_PMM3_SERVER=docker.io/perconalab/pmm-server:3-dev-latest +++ export IMAGE_LOGCOLLECTOR=docker.io/perconalab/fluentbit:main-logcollector +++ IMAGE_LOGCOLLECTOR=docker.io/perconalab/fluentbit:main-logcollector +++ export IMAGE_CLUSTERSYNC=docker.io/percona/percona-clustersync-mongodb:0.9.0 +++ IMAGE_CLUSTERSYNC=docker.io/percona/percona-clustersync-mongodb:0.9.0 +++ for image in IMAGE IMAGE_MONGOD IMAGE_MONGOD_CHAIN IMAGE_BACKUP IMAGE_PMM_CLIENT IMAGE_PMM_SERVER IMAGE_PMM3_CLIENT IMAGE_PMM3_SERVER IMAGE_LOGCOLLECTOR IMAGE_CLUSTERSYNC IMAGE_OPERATOR +++ qualify_image_var IMAGE +++ local var=IMAGE +++ local val=docker.io/perconalab/percona-server-mongodb-operator:PR-2058-78121c567 +++ [[ -z docker.io/perconalab/percona-server-mongodb-operator:PR-2058-78121c567 ]] +++ [[ docker.io/perconalab/percona-server-mongodb-operator:PR-2058-78121c567 == * * ]] ++++ with_registry docker.io/perconalab/percona-server-mongodb-operator:PR-2058-78121c567 ++++ local ref=docker.io/perconalab/percona-server-mongodb-operator:PR-2058-78121c567 ++++ case "$ref" in ++++ printf %s docker.io/perconalab/percona-server-mongodb-operator:PR-2058-78121c567 +++ val=docker.io/perconalab/percona-server-mongodb-operator:PR-2058-78121c567 +++ printf -v IMAGE %s docker.io/perconalab/percona-server-mongodb-operator:PR-2058-78121c567 +++ for image in IMAGE IMAGE_MONGOD IMAGE_MONGOD_CHAIN IMAGE_BACKUP IMAGE_PMM_CLIENT IMAGE_PMM_SERVER IMAGE_PMM3_CLIENT IMAGE_PMM3_SERVER IMAGE_LOGCOLLECTOR IMAGE_CLUSTERSYNC IMAGE_OPERATOR +++ qualify_image_var IMAGE_MONGOD +++ local var=IMAGE_MONGOD +++ local val=docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0 +++ [[ -z docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0 ]] +++ [[ docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0 == * * ]] ++++ with_registry docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0 ++++ local ref=docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0 ++++ case "$ref" in ++++ printf %s docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0 +++ val=docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0 +++ printf -v IMAGE_MONGOD %s docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0 +++ for image in IMAGE IMAGE_MONGOD IMAGE_MONGOD_CHAIN IMAGE_BACKUP IMAGE_PMM_CLIENT IMAGE_PMM_SERVER IMAGE_PMM3_CLIENT IMAGE_PMM3_SERVER IMAGE_LOGCOLLECTOR IMAGE_CLUSTERSYNC IMAGE_OPERATOR +++ qualify_image_var IMAGE_MONGOD_CHAIN +++ local var=IMAGE_MONGOD_CHAIN +++ local $'val=docker.io/perconalab/percona-server-mongodb-operator:main-mongod6.0\ndocker.io/perconalab/percona-server-mongodb-operator:main-mongod7.0\ndocker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0' +++ [[ -z docker.io/perconalab/percona-server-mongodb-operator:main-mongod6.0 docker.io/perconalab/percona-server-mongodb-operator:main-mongod7.0 docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0 ]] +++ [[ docker.io/perconalab/percona-server-mongodb-operator:main-mongod6.0 docker.io/perconalab/percona-server-mongodb-operator:main-mongod7.0 docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0 == * * ]] +++ local out= ref +++ IFS= +++ read -r ref +++ [[ -n docker.io/perconalab/percona-server-mongodb-operator:main-mongod6.0 ]] ++++ with_registry docker.io/perconalab/percona-server-mongodb-operator:main-mongod6.0 ++++ local ref=docker.io/perconalab/percona-server-mongodb-operator:main-mongod6.0 ++++ case "$ref" in ++++ printf %s docker.io/perconalab/percona-server-mongodb-operator:main-mongod6.0 +++ out+=$'docker.io/perconalab/percona-server-mongodb-operator:main-mongod6.0\n' +++ IFS= +++ read -r ref +++ [[ -n docker.io/perconalab/percona-server-mongodb-operator:main-mongod7.0 ]] ++++ with_registry docker.io/perconalab/percona-server-mongodb-operator:main-mongod7.0 ++++ local ref=docker.io/perconalab/percona-server-mongodb-operator:main-mongod7.0 ++++ case "$ref" in ++++ printf %s docker.io/perconalab/percona-server-mongodb-operator:main-mongod7.0 +++ out+=$'docker.io/perconalab/percona-server-mongodb-operator:main-mongod7.0\n' +++ IFS= +++ read -r ref +++ [[ -n docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0 ]] ++++ with_registry docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0 ++++ local ref=docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0 ++++ case "$ref" in ++++ printf %s docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0 +++ out+=$'docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0\n' +++ IFS= +++ read -r ref +++ val=$'docker.io/perconalab/percona-server-mongodb-operator:main-mongod6.0\ndocker.io/perconalab/percona-server-mongodb-operator:main-mongod7.0\ndocker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0' +++ printf -v IMAGE_MONGOD_CHAIN %s $'docker.io/perconalab/percona-server-mongodb-operator:main-mongod6.0\ndocker.io/perconalab/percona-server-mongodb-operator:main-mongod7.0\ndocker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0' +++ for image in IMAGE IMAGE_MONGOD IMAGE_MONGOD_CHAIN IMAGE_BACKUP IMAGE_PMM_CLIENT IMAGE_PMM_SERVER IMAGE_PMM3_CLIENT IMAGE_PMM3_SERVER IMAGE_LOGCOLLECTOR IMAGE_CLUSTERSYNC IMAGE_OPERATOR +++ qualify_image_var IMAGE_BACKUP +++ local var=IMAGE_BACKUP +++ local val=docker.io/perconalab/percona-server-mongodb-operator:main-backup +++ [[ -z docker.io/perconalab/percona-server-mongodb-operator:main-backup ]] +++ [[ docker.io/perconalab/percona-server-mongodb-operator:main-backup == * * ]] ++++ with_registry docker.io/perconalab/percona-server-mongodb-operator:main-backup ++++ local ref=docker.io/perconalab/percona-server-mongodb-operator:main-backup ++++ case "$ref" in ++++ printf %s docker.io/perconalab/percona-server-mongodb-operator:main-backup +++ val=docker.io/perconalab/percona-server-mongodb-operator:main-backup +++ printf -v IMAGE_BACKUP %s docker.io/perconalab/percona-server-mongodb-operator:main-backup +++ for image in IMAGE IMAGE_MONGOD IMAGE_MONGOD_CHAIN IMAGE_BACKUP IMAGE_PMM_CLIENT IMAGE_PMM_SERVER IMAGE_PMM3_CLIENT IMAGE_PMM3_SERVER IMAGE_LOGCOLLECTOR IMAGE_CLUSTERSYNC IMAGE_OPERATOR +++ qualify_image_var IMAGE_PMM_CLIENT +++ local var=IMAGE_PMM_CLIENT +++ local val=docker.io/percona/pmm-client:2.44.1-1 +++ [[ -z docker.io/percona/pmm-client:2.44.1-1 ]] +++ [[ docker.io/percona/pmm-client:2.44.1-1 == * * ]] ++++ with_registry docker.io/percona/pmm-client:2.44.1-1 ++++ local ref=docker.io/percona/pmm-client:2.44.1-1 ++++ case "$ref" in ++++ printf %s docker.io/percona/pmm-client:2.44.1-1 +++ val=docker.io/percona/pmm-client:2.44.1-1 +++ printf -v IMAGE_PMM_CLIENT %s docker.io/percona/pmm-client:2.44.1-1 +++ for image in IMAGE IMAGE_MONGOD IMAGE_MONGOD_CHAIN IMAGE_BACKUP IMAGE_PMM_CLIENT IMAGE_PMM_SERVER IMAGE_PMM3_CLIENT IMAGE_PMM3_SERVER IMAGE_LOGCOLLECTOR IMAGE_CLUSTERSYNC IMAGE_OPERATOR +++ qualify_image_var IMAGE_PMM_SERVER +++ local var=IMAGE_PMM_SERVER +++ local val=docker.io/perconalab/pmm-server:dev-latest +++ [[ -z docker.io/perconalab/pmm-server:dev-latest ]] +++ [[ docker.io/perconalab/pmm-server:dev-latest == * * ]] ++++ with_registry docker.io/perconalab/pmm-server:dev-latest ++++ local ref=docker.io/perconalab/pmm-server:dev-latest ++++ case "$ref" in ++++ printf %s docker.io/perconalab/pmm-server:dev-latest +++ val=docker.io/perconalab/pmm-server:dev-latest +++ printf -v IMAGE_PMM_SERVER %s docker.io/perconalab/pmm-server:dev-latest +++ for image in IMAGE IMAGE_MONGOD IMAGE_MONGOD_CHAIN IMAGE_BACKUP IMAGE_PMM_CLIENT IMAGE_PMM_SERVER IMAGE_PMM3_CLIENT IMAGE_PMM3_SERVER IMAGE_LOGCOLLECTOR IMAGE_CLUSTERSYNC IMAGE_OPERATOR +++ qualify_image_var IMAGE_PMM3_CLIENT +++ local var=IMAGE_PMM3_CLIENT +++ local val=docker.io/perconalab/pmm-client:3-dev-latest +++ [[ -z docker.io/perconalab/pmm-client:3-dev-latest ]] +++ [[ docker.io/perconalab/pmm-client:3-dev-latest == * * ]] ++++ with_registry docker.io/perconalab/pmm-client:3-dev-latest ++++ local ref=docker.io/perconalab/pmm-client:3-dev-latest ++++ case "$ref" in ++++ printf %s docker.io/perconalab/pmm-client:3-dev-latest +++ val=docker.io/perconalab/pmm-client:3-dev-latest +++ printf -v IMAGE_PMM3_CLIENT %s docker.io/perconalab/pmm-client:3-dev-latest +++ for image in IMAGE IMAGE_MONGOD IMAGE_MONGOD_CHAIN IMAGE_BACKUP IMAGE_PMM_CLIENT IMAGE_PMM_SERVER IMAGE_PMM3_CLIENT IMAGE_PMM3_SERVER IMAGE_LOGCOLLECTOR IMAGE_CLUSTERSYNC IMAGE_OPERATOR +++ qualify_image_var IMAGE_PMM3_SERVER +++ local var=IMAGE_PMM3_SERVER +++ local val=docker.io/perconalab/pmm-server:3-dev-latest +++ [[ -z docker.io/perconalab/pmm-server:3-dev-latest ]] +++ [[ docker.io/perconalab/pmm-server:3-dev-latest == * * ]] ++++ with_registry docker.io/perconalab/pmm-server:3-dev-latest ++++ local ref=docker.io/perconalab/pmm-server:3-dev-latest ++++ case "$ref" in ++++ printf %s docker.io/perconalab/pmm-server:3-dev-latest +++ val=docker.io/perconalab/pmm-server:3-dev-latest +++ printf -v IMAGE_PMM3_SERVER %s docker.io/perconalab/pmm-server:3-dev-latest +++ for image in IMAGE IMAGE_MONGOD IMAGE_MONGOD_CHAIN IMAGE_BACKUP IMAGE_PMM_CLIENT IMAGE_PMM_SERVER IMAGE_PMM3_CLIENT IMAGE_PMM3_SERVER IMAGE_LOGCOLLECTOR IMAGE_CLUSTERSYNC IMAGE_OPERATOR +++ qualify_image_var IMAGE_LOGCOLLECTOR +++ local var=IMAGE_LOGCOLLECTOR +++ local val=docker.io/perconalab/fluentbit:main-logcollector +++ [[ -z docker.io/perconalab/fluentbit:main-logcollector ]] +++ [[ docker.io/perconalab/fluentbit:main-logcollector == * * ]] ++++ with_registry docker.io/perconalab/fluentbit:main-logcollector ++++ local ref=docker.io/perconalab/fluentbit:main-logcollector ++++ case "$ref" in ++++ printf %s docker.io/perconalab/fluentbit:main-logcollector +++ val=docker.io/perconalab/fluentbit:main-logcollector +++ printf -v IMAGE_LOGCOLLECTOR %s docker.io/perconalab/fluentbit:main-logcollector +++ for image in IMAGE IMAGE_MONGOD IMAGE_MONGOD_CHAIN IMAGE_BACKUP IMAGE_PMM_CLIENT IMAGE_PMM_SERVER IMAGE_PMM3_CLIENT IMAGE_PMM3_SERVER IMAGE_LOGCOLLECTOR IMAGE_CLUSTERSYNC IMAGE_OPERATOR +++ qualify_image_var IMAGE_CLUSTERSYNC +++ local var=IMAGE_CLUSTERSYNC +++ local val=docker.io/percona/percona-clustersync-mongodb:0.9.0 +++ [[ -z docker.io/percona/percona-clustersync-mongodb:0.9.0 ]] +++ [[ docker.io/percona/percona-clustersync-mongodb:0.9.0 == * * ]] ++++ with_registry docker.io/percona/percona-clustersync-mongodb:0.9.0 ++++ local ref=docker.io/percona/percona-clustersync-mongodb:0.9.0 ++++ case "$ref" in ++++ printf %s docker.io/percona/percona-clustersync-mongodb:0.9.0 +++ val=docker.io/percona/percona-clustersync-mongodb:0.9.0 +++ printf -v IMAGE_CLUSTERSYNC %s docker.io/percona/percona-clustersync-mongodb:0.9.0 +++ for image in IMAGE IMAGE_MONGOD IMAGE_MONGOD_CHAIN IMAGE_BACKUP IMAGE_PMM_CLIENT IMAGE_PMM_SERVER IMAGE_PMM3_CLIENT IMAGE_PMM3_SERVER IMAGE_LOGCOLLECTOR IMAGE_CLUSTERSYNC IMAGE_OPERATOR +++ qualify_image_var IMAGE_OPERATOR +++ local var=IMAGE_OPERATOR +++ local val= +++ [[ -z '' ]] +++ return ++++ kubectl version -o json ++++ jq -r '.serverVersion.major + "." + .serverVersion.minor' ++++ /usr/sbin/sed -r 's/[^0-9.]+//g' Warning: version difference between client (1.36) and server (1.33) exceeds the supported minor version skew of +/-1 +++ export KUBE_VERSION=1.33 +++ KUBE_VERSION=1.33 ++++ detect_k8s_env ++++ local provider=unknown ++++ kubectl api-resources ++++ grep -q openshift.io ++++ kubectl get nodes -o 'jsonpath={.items[0].metadata.labels}' ++++ grep -q eksctl.io ++++ kubectl get nodes -o 'jsonpath={.items[0].metadata.labels}' ++++ grep -q cloud.google.com/gke ++++ provider=gke ++++ echo gke +++ export PLATFORM=gke +++ PLATFORM=gke ++++ echo gke ++++ tr '[:lower:]' '[:upper:]' +++ export GKE=1 +++ GKE=1 +++ export ARCH= +++ ARCH= +++ [[ -z '' ]] ++++ kubectl get nodes -o 'jsonpath={range .items[*]}{.metadata.labels.kubernetes\.io/arch}{"\n"}{end}' ++++ sort -u +++ node_arches=amd64 +++ [[ amd64 == arm64 ]] +++ export CERT_MANAGER_VER=1.19.3 +++ CERT_MANAGER_VER=1.19.3 +++ export MINIO_VER=5.4.0 +++ MINIO_VER=5.4.0 +++ export CHAOS_MESH_VER=2.7.1 +++ CHAOS_MESH_VER=2.7.1 +++ export PMM_SERVER_VER=9.9.9 +++ PMM_SERVER_VER=9.9.9 +++ export SKIP_BACKUPS_TO_AWS_GCP_AZURE=1 +++ SKIP_BACKUPS_TO_AWS_GCP_AZURE=1 +++ export UPDATE_COMPARE_FILES=0 +++ UPDATE_COMPARE_FILES=0 +++ export DELETE_CRD_ON_START=1 +++ DELETE_CRD_ON_START=1 +++ export SKIP_DELETE=0 +++ SKIP_DELETE=0 +++ [[ -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/conf/cloud-secret.yml ]] +++ export SKIP_BACKUPS_TO_AWS_GCP_AZURE= +++ SKIP_BACKUPS_TO_AWS_GCP_AZURE= +++ setup_logging +++ [[ '' == true ]] +++ echo 'Debug logging disabled.' Debug logging disabled. ++ arch_scheduling_enabled ++ [[ -n '' ]] + create_infra ignore-labels-annotations-18746 + local ns=ignore-labels-annotations-18746 + echo ignore-labels-annotations-18746 + [[ 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-2058/deploy/crd.yaml --ignore-not-found --wait=false ++ mktemp + local LAST_OUT=/tmp/tmp.FkwUjdY7Ip ++ mktemp + local LAST_ERR=/tmp/tmp.dyPT8YV4hW + local exit_status=0 + local timeout=4 + args=('delete' '-f' '/mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/deploy/crd.yaml' '--ignore-not-found' '--wait=false') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl delete -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/deploy/crd.yaml --ignore-not-found --wait=false + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.FkwUjdY7Ip 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.dyPT8YV4hW + rm /tmp/tmp.FkwUjdY7Ip /tmp/tmp.dyPT8YV4hW + return 0 ++ yq eval .metadata.name /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/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\":[]}}"' No resources found + kubectl patch perconaservermongodbbackups.psmdb.percona.com -n sh --type=merge -p '{"metadata":{"finalizers":[]}}' error: resource(s) were provided, but no name was specified + : + kubectl_bin wait --for=delete crd perconaservermongodbbackups.psmdb.percona.com ++ mktemp + local LAST_OUT=/tmp/tmp.js6cK68aNe ++ mktemp + local LAST_ERR=/tmp/tmp.5Hoq7882Bt + local exit_status=0 + local timeout=4 + args=('wait' '--for=delete' 'crd' 'perconaservermongodbbackups.psmdb.percona.com') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ 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.js6cK68aNe + cat /tmp/tmp.5Hoq7882Bt + rm /tmp/tmp.js6cK68aNe /tmp/tmp.5Hoq7882Bt + 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.DGk3CBictH ++ mktemp + local LAST_ERR=/tmp/tmp.yC14K9RLUY + local exit_status=0 + local timeout=4 + args=('wait' '--for=delete' 'crd' 'perconaservermongodbclustersyncs.psmdb.percona.com') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ 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.DGk3CBictH + cat /tmp/tmp.yC14K9RLUY + rm /tmp/tmp.DGk3CBictH /tmp/tmp.yC14K9RLUY + 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.hBnrxuwEf6 ++ mktemp + local LAST_ERR=/tmp/tmp.l4AJpnQLGv + local exit_status=0 + local timeout=4 + args=('wait' '--for=delete' 'crd' 'perconaservermongodbrestores.psmdb.percona.com') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ 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.hBnrxuwEf6 + cat /tmp/tmp.l4AJpnQLGv + rm /tmp/tmp.hBnrxuwEf6 /tmp/tmp.l4AJpnQLGv + 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.ckvTHnXo3d ++ mktemp + local LAST_ERR=/tmp/tmp.xAfKFmUTCx + local exit_status=0 + local timeout=4 + args=('wait' '--for=delete' 'crd' 'perconaservermongodbs.psmdb.percona.com') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ 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.ckvTHnXo3d + cat /tmp/tmp.xAfKFmUTCx + rm /tmp/tmp.ckvTHnXo3d /tmp/tmp.xAfKFmUTCx + 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-2058/deploy/cw-rbac.yaml --ignore-not-found ++ mktemp + local LAST_OUT=/tmp/tmp.NWOb0kZcfQ ++ mktemp + local LAST_ERR=/tmp/tmp.TTvFm7NPGW + local exit_status=0 + local timeout=4 + args=('delete' '-f' '/mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/deploy/cw-rbac.yaml' '--ignore-not-found') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl delete -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/deploy/cw-rbac.yaml --ignore-not-found + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.NWOb0kZcfQ 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.TTvFm7NPGW + rm /tmp/tmp.NWOb0kZcfQ /tmp/tmp.TTvFm7NPGW + return 0 + check_crd_for_deletion PR-2058-78121c567 + local git_tag=PR-2058-78121c567 ++ curl -s https://raw.githubusercontent.com/percona/percona-server-mongodb-operator/PR-2058-78121c567/deploy/crd.yaml ++ yq eval .metadata.name ++ /usr/sbin/sed ':a;N;$!ba;s/\n/ /g' ++ /usr/sbin/sed s/---//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.YWyGMr4FAG +++ mktemp ++ local LAST_ERR=/tmp/tmp.557w1lkaIb ++ local exit_status=0 ++ local timeout=4 ++ args=('get' 'crd/null' '-o' 'jsonpath={.status.conditions[-1].type}') ++ local args ++ transformed_files=() ++ local transformed_files ++ arch_scheduling_enabled ++ [[ -n '' ]] ++ arch_scheduling_enabled ++ [[ -n '' ]] +++ 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.YWyGMr4FAG ++ cat /tmp/tmp.557w1lkaIb 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.YWyGMr4FAG ++ cat /tmp/tmp.557w1lkaIb 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.YWyGMr4FAG ++ cat /tmp/tmp.557w1lkaIb Error from server (NotFound): customresourcedefinitions.apiextensions.k8s.io "null" not found ++ sleep 8 ++ cat /tmp/tmp.YWyGMr4FAG ++ cat /tmp/tmp.557w1lkaIb Error from server (NotFound): customresourcedefinitions.apiextensions.k8s.io "null" not found ++ rm /tmp/tmp.YWyGMr4FAG /tmp/tmp.557w1lkaIb ++ return 1 + [[ '' == 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 ++ awk '{print $1}' ++ grep chaos-mesh.org + 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}' + [[ -n '' ]] + desc 'cleaned up old namespaces psmdb-operator' + xargs kubectl delete ns + set +o xtrace ++ mktemp ----------------------------------------------------------------------------------- cleaned up old namespaces psmdb-operator ----------------------------------------------------------------------------------- + kubectl_bin delete namespace psmdb-operator --ignore-not-found ++ mktemp + local LAST_OUT=/tmp/tmp.WSOBqw8zaM ++ mktemp + local LAST_OUT=/tmp/tmp.jkFr6MKAUP ++ mktemp + local LAST_ERR=/tmp/tmp.IrUNN9P2tW + local exit_status=0 + local timeout=4 + args=('get' 'ns') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] + local LAST_ERR=/tmp/tmp.knxl5dDB3T + local exit_status=0 + local timeout=4 + args=('delete' 'namespace' 'psmdb-operator' '--ignore-not-found') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled ++ seq 0 2 + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ 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.WSOBqw8zaM + cat /tmp/tmp.IrUNN9P2tW + rm /tmp/tmp.WSOBqw8zaM /tmp/tmp.IrUNN9P2tW + return 0 namespace "demand-backup-physical-oss-native-11938" deleted + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.jkFr6MKAUP namespace "psmdb-operator" deleted + cat /tmp/tmp.knxl5dDB3T + rm /tmp/tmp.jkFr6MKAUP /tmp/tmp.knxl5dDB3T + return 0 + kubectl_bin wait --for=delete namespace psmdb-operator ++ mktemp + local LAST_OUT=/tmp/tmp.auYKjSSdvE ++ mktemp + local LAST_ERR=/tmp/tmp.reomuVq39A + local exit_status=0 + local timeout=4 + args=('wait' '--for=delete' 'namespace' 'psmdb-operator') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ 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.auYKjSSdvE + cat /tmp/tmp.reomuVq39A + rm /tmp/tmp.auYKjSSdvE /tmp/tmp.reomuVq39A + 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.MhTGFQ6UlJ ++ mktemp + local LAST_ERR=/tmp/tmp.JFMT939ED2 + local exit_status=0 + local timeout=4 + args=('create' 'namespace' 'psmdb-operator') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ 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.MhTGFQ6UlJ namespace/psmdb-operator created + cat /tmp/tmp.JFMT939ED2 + rm /tmp/tmp.MhTGFQ6UlJ /tmp/tmp.JFMT939ED2 + return 0 + set_kube_ctx psmdb-operator + local namespace=psmdb-operator ++ kubectl_bin config current-context +++ mktemp ++ local LAST_OUT=/tmp/tmp.7ZjsCHr3pw +++ mktemp ++ local LAST_ERR=/tmp/tmp.OjBoMYYkop ++ local exit_status=0 ++ local timeout=4 ++ args=('config' 'current-context') ++ local args ++ transformed_files=() ++ local transformed_files ++ arch_scheduling_enabled ++ [[ -n '' ]] ++ arch_scheduling_enabled ++ [[ -n '' ]] +++ 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.7ZjsCHr3pw ++ cat /tmp/tmp.OjBoMYYkop ++ rm /tmp/tmp.7ZjsCHr3pw /tmp/tmp.OjBoMYYkop ++ return 0 + kubectl_bin config set-context gke_cloud-dev-112233_us-central1_jen-psmdb-2058-78121c567-22-cluster10 --namespace=psmdb-operator ++ mktemp + local LAST_OUT=/tmp/tmp.rPjRscLays ++ mktemp + local LAST_ERR=/tmp/tmp.AwWB5iozc0 + local exit_status=0 + local timeout=4 + args=('config' 'set-context' 'gke_cloud-dev-112233_us-central1_jen-psmdb-2058-78121c567-22-cluster10' '--namespace=psmdb-operator') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl config set-context gke_cloud-dev-112233_us-central1_jen-psmdb-2058-78121c567-22-cluster10 --namespace=psmdb-operator + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.rPjRscLays Context "gke_cloud-dev-112233_us-central1_jen-psmdb-2058-78121c567-22-cluster10" modified. + cat /tmp/tmp.AwWB5iozc0 + rm /tmp/tmp.rPjRscLays /tmp/tmp.AwWB5iozc0 + return 0 + deploy_operator + desc 'start PSMDB operator: docker.io/perconalab/percona-server-mongodb-operator:PR-2058-78121c567' + set +o xtrace ----------------------------------------------------------------------------------- start PSMDB operator: docker.io/perconalab/percona-server-mongodb-operator:PR-2058-78121c567 ----------------------------------------------------------------------------------- + local cr_file + '[' -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/conf/crd.yaml ']' + cr_file=/mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/deploy/crd.yaml + kubectl_bin apply --server-side --force-conflicts -f /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/deploy/crd.yaml ++ mktemp + local LAST_OUT=/tmp/tmp.iVcdvF8OYn ++ mktemp + local LAST_ERR=/tmp/tmp.Ig1irDt20L + local exit_status=0 + local timeout=4 + args=('apply' '--server-side' '--force-conflicts' '-f' '/mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/deploy/crd.yaml') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ 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-2058/deploy/crd.yaml + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.iVcdvF8OYn 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.Ig1irDt20L + rm /tmp/tmp.iVcdvF8OYn /tmp/tmp.Ig1irDt20L + return 0 + '[' -n psmdb-operator ']' + apply_rbac cw-rbac + local operator_namespace=psmdb-operator + local rbac=cw-rbac + cat /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/deploy/cw-rbac.yaml + sed -e 's^namespace: .*^namespace: psmdb-operator^' + kubectl_bin apply -n psmdb-operator -f - ++ mktemp + local LAST_OUT=/tmp/tmp.1AyJ6nBNW8 ++ mktemp + local LAST_ERR=/tmp/tmp.34fifGhCoQ + local exit_status=0 + local timeout=4 + args=('apply' '-n' 'psmdb-operator' '-f' '-') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ 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.1AyJ6nBNW8 clusterrole.rbac.authorization.k8s.io/percona-server-mongodb-operator created serviceaccount/percona-server-mongodb-operator created clusterrolebinding.rbac.authorization.k8s.io/service-account-percona-server-mongodb-operator created + cat /tmp/tmp.34fifGhCoQ + rm /tmp/tmp.1AyJ6nBNW8 /tmp/tmp.34fifGhCoQ + return 0 + yq eval $'\n\t\t\t(.spec.template.spec.containers[].image = "docker.io/perconalab/percona-server-mongodb-operator:PR-2058-78121c567") |\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-2058/deploy/cw-operator.yaml + add_arch_to_podspecs - + arch_scheduling_enabled + [[ -n '' ]] + cat - + kubectl_bin apply -n psmdb-operator -f - ++ mktemp + local LAST_OUT=/tmp/tmp.5dxHOP3Zvc ++ mktemp + local LAST_ERR=/tmp/tmp.ALIiKRoOL9 + local exit_status=0 + local timeout=4 + args=('apply' '-n' 'psmdb-operator' '-f' '-') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl apply -n psmdb-operator -f - + return + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.5dxHOP3Zvc deployment.apps/percona-server-mongodb-operator created + cat /tmp/tmp.ALIiKRoOL9 + rm /tmp/tmp.5dxHOP3Zvc /tmp/tmp.ALIiKRoOL9 + return 0 + sleep 20 ++ 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.BMLZ79gkCK +++ mktemp ++ local LAST_ERR=/tmp/tmp.ZInmPzdoCr ++ local exit_status=0 ++ local timeout=4 ++ args=('get' 'pods' '--selector=name=percona-server-mongodb-operator' '-o' 'jsonpath={.items[].metadata.name}' '-n' 'psmdb-operator') ++ local args ++ transformed_files=() ++ local transformed_files ++ arch_scheduling_enabled ++ [[ -n '' ]] ++ arch_scheduling_enabled ++ [[ -n '' ]] +++ 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.BMLZ79gkCK ++ cat /tmp/tmp.ZInmPzdoCr ++ rm /tmp/tmp.BMLZ79gkCK /tmp/tmp.ZInmPzdoCr ++ return 0 + wait_operator_pod percona-server-mongodb-operator-66cd7b75cf-bf6rt + local pod=percona-server-mongodb-operator-66cd7b75cf-bf6rt + set +o xtrace waiting for pod/percona-server-mongodb-operator-66cd7b75cf-bf6rt to be ready.OK + echo 'Print operator info from log' Print operator info from log ++ get_operator_pod ++ kubectl_bin get pods --selector=name=percona-server-mongodb-operator -o 'jsonpath={.items[].metadata.name}' -n psmdb-operator + grep 'Manager starting up' +++ mktemp ++ local LAST_OUT=/tmp/tmp.tT56LNFVyT +++ mktemp ++ local LAST_ERR=/tmp/tmp.AU7g9ieNDS ++ local exit_status=0 ++ local timeout=4 ++ args=('get' 'pods' '--selector=name=percona-server-mongodb-operator' '-o' 'jsonpath={.items[].metadata.name}' '-n' 'psmdb-operator') ++ local args ++ transformed_files=() ++ local transformed_files ++ arch_scheduling_enabled ++ [[ -n '' ]] ++ arch_scheduling_enabled ++ [[ -n '' ]] +++ 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.tT56LNFVyT ++ cat /tmp/tmp.AU7g9ieNDS ++ rm /tmp/tmp.tT56LNFVyT /tmp/tmp.AU7g9ieNDS ++ return 0 + kubectl_bin logs -n psmdb-operator percona-server-mongodb-operator-66cd7b75cf-bf6rt ++ mktemp + local LAST_OUT=/tmp/tmp.ATxRGWjN52 ++ mktemp + local LAST_ERR=/tmp/tmp.U3BDGhi9ah + local exit_status=0 + local timeout=4 + args=('logs' '-n' 'psmdb-operator' 'percona-server-mongodb-operator-66cd7b75cf-bf6rt') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl logs -n psmdb-operator percona-server-mongodb-operator-66cd7b75cf-bf6rt + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.ATxRGWjN52 + cat /tmp/tmp.U3BDGhi9ah + rm /tmp/tmp.ATxRGWjN52 /tmp/tmp.U3BDGhi9ah + return 0 2026-07-17T01:01:54.301Z INFO setup Manager starting up {"gitCommit": "78121c56762758785b75e9b7c017e15fc887ae5d", "gitBranch": "PR-2058-78121c567", "buildTime": "", "goVersion": "go1.26.5", "os": "linux", "arch": "amd64"} + create_namespace ignore-labels-annotations-18746 + local namespace=ignore-labels-annotations-18746 + 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 ++ grep chaos-mesh ++ awk '{print $1}' + timeout 30 kubectl delete clusterrolebinding error: resource(s) were provided, but no name was specified + : ++ awk '{print $1}' ++ kubectl get clusterrole ++ 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 '' ]] + xargs kubectl delete ns + desc 'cleaned up old namespaces ignore-labels-annotations-18746' + set +o xtrace ----------------------------------------------------------------------------------- cleaned up old namespaces ignore-labels-annotations-18746 ----------------------------------------------------------------------------------- + kubectl_bin delete namespace ignore-labels-annotations-18746 --ignore-not-found ++ mktemp ++ mktemp + local LAST_OUT=/tmp/tmp.41oOXoGymE ++ mktemp + local LAST_OUT=/tmp/tmp.rveaVfT3dI + local LAST_ERR=/tmp/tmp.fRWi4Txeof + local exit_status=0 + local timeout=4 + args=('get' 'ns') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ mktemp ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl get ns + local LAST_ERR=/tmp/tmp.SwLHpverNg + local exit_status=0 + local timeout=4 + args=('delete' 'namespace' 'ignore-labels-annotations-18746' '--ignore-not-found') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl delete namespace ignore-labels-annotations-18746 --ignore-not-found + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.41oOXoGymE + cat /tmp/tmp.fRWi4Txeof + rm /tmp/tmp.41oOXoGymE /tmp/tmp.fRWi4Txeof + 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.rveaVfT3dI + cat /tmp/tmp.SwLHpverNg + rm /tmp/tmp.rveaVfT3dI /tmp/tmp.SwLHpverNg + return 0 + kubectl_bin wait --for=delete namespace ignore-labels-annotations-18746 ++ mktemp + local LAST_OUT=/tmp/tmp.5MGJdYLQhk ++ mktemp + local LAST_ERR=/tmp/tmp.l5IlVoMJAb + local exit_status=0 + local timeout=4 + args=('wait' '--for=delete' 'namespace' 'ignore-labels-annotations-18746') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl wait --for=delete namespace ignore-labels-annotations-18746 + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.5MGJdYLQhk + cat /tmp/tmp.l5IlVoMJAb + rm /tmp/tmp.5MGJdYLQhk /tmp/tmp.l5IlVoMJAb + return 0 + desc 'create namespace ignore-labels-annotations-18746' + set +o xtrace ----------------------------------------------------------------------------------- create namespace ignore-labels-annotations-18746 ----------------------------------------------------------------------------------- + kubectl_bin create namespace ignore-labels-annotations-18746 ++ mktemp + local LAST_OUT=/tmp/tmp.Ew5paWM8Gn ++ mktemp + local LAST_ERR=/tmp/tmp.KdzWmbSPYr + local exit_status=0 + local timeout=4 + args=('create' 'namespace' 'ignore-labels-annotations-18746') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl create namespace ignore-labels-annotations-18746 + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.Ew5paWM8Gn namespace/ignore-labels-annotations-18746 created + cat /tmp/tmp.KdzWmbSPYr + rm /tmp/tmp.Ew5paWM8Gn /tmp/tmp.KdzWmbSPYr + return 0 + set_kube_ctx ignore-labels-annotations-18746 + local namespace=ignore-labels-annotations-18746 ++ kubectl_bin config current-context +++ mktemp ++ local LAST_OUT=/tmp/tmp.ByeoBXz43V +++ mktemp ++ local LAST_ERR=/tmp/tmp.wKUeltO5oA ++ local exit_status=0 ++ local timeout=4 ++ args=('config' 'current-context') ++ local args ++ transformed_files=() ++ local transformed_files ++ arch_scheduling_enabled ++ [[ -n '' ]] ++ arch_scheduling_enabled ++ [[ -n '' ]] +++ 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.ByeoBXz43V ++ cat /tmp/tmp.wKUeltO5oA ++ rm /tmp/tmp.ByeoBXz43V /tmp/tmp.wKUeltO5oA ++ return 0 + kubectl_bin config set-context gke_cloud-dev-112233_us-central1_jen-psmdb-2058-78121c567-22-cluster10 --namespace=ignore-labels-annotations-18746 ++ mktemp + local LAST_OUT=/tmp/tmp.7d0XEqsmCC ++ mktemp + local LAST_ERR=/tmp/tmp.tDVYeROnTm + local exit_status=0 + local timeout=4 + args=('config' 'set-context' 'gke_cloud-dev-112233_us-central1_jen-psmdb-2058-78121c567-22-cluster10' '--namespace=ignore-labels-annotations-18746') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl config set-context gke_cloud-dev-112233_us-central1_jen-psmdb-2058-78121c567-22-cluster10 --namespace=ignore-labels-annotations-18746 + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.7d0XEqsmCC Context "gke_cloud-dev-112233_us-central1_jen-psmdb-2058-78121c567-22-cluster10" modified. + cat /tmp/tmp.tDVYeROnTm + rm /tmp/tmp.7d0XEqsmCC /tmp/tmp.tDVYeROnTm + return 0 + cluster=some-name + apply_cluster /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/conf/some-name.yml + '[' -z '' ']' + cat_config /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/conf/some-name.yml + kubectl_bin apply -f - ++ mktemp + cat /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/conf/some-name.yml + yq eval '(.spec | select(.image == null)).image = "docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0"' + yq eval '(.spec | select(has("pmm"))).pmm.image = "docker.io/percona/pmm-client:2.44.1-1"' + local LAST_OUT=/tmp/tmp.K8acrOhYuk + yq eval '(.spec | select(has("initImage"))).initImage = "docker.io/perconalab/percona-server-mongodb-operator:PR-2058-78121c567"' + yq eval '(.spec | select(has("backup"))).backup.image = "docker.io/perconalab/percona-server-mongodb-operator:main-backup"' ++ mktemp + [[ -n docker.io/perconalab/fluentbit:main-logcollector ]] + IMAGE_LOGCOLLECTOR=docker.io/perconalab/fluentbit:main-logcollector + yq eval '(.spec | select(has("logcollector"))).logcollector.image = strenv(IMAGE_LOGCOLLECTOR)' + local LAST_ERR=/tmp/tmp.CWOVeNh5er + local exit_status=0 + local timeout=4 + args=('apply' '-f' '-') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] + /usr/sbin/sed -e s/NAME_SPACE/ignore-labels-annotations-18746/g ++ seq 0 2 + add_arch_to_psmdb - + arch_scheduling_enabled + [[ -n '' ]] + cat - + yq eval '(.spec | select(has("search"))).search.image = "perconalab/percona-server-mongodb-operator:main-mongot"' + yq eval '.spec.upgradeOptions.apply="Never"' + for i in $(seq 0 2) + set +e + kubectl apply -f - + return + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.K8acrOhYuk perconaservermongodb.psmdb.percona.com/some-name created + cat /tmp/tmp.CWOVeNh5er + rm /tmp/tmp.K8acrOhYuk /tmp/tmp.CWOVeNh5er + return 0 + desc 'check if all 3 Pods started' + set +o xtrace ----------------------------------------------------------------------------------- check if all 3 Pods started ----------------------------------------------------------------------------------- + wait_for_running some-name-rs0 3 + local name=some-name-rs0 + let last_pod=2 + local check_cluster_readiness=true + set_debug + [[ 1 == 1 ]] + set -o xtrace + local rs_name=rs0 + local cluster_name=some-name ++ seq 0 2 + for i in $(seq 0 $last_pod) + [[ 0 -eq 2 ]] + wait_pod some-name-rs0-0 + local pod=some-name-rs0-0 + set +o xtrace waiting for pod/some-name-rs0-0 to be ready..............OK + for i in $(seq 0 $last_pod) + [[ 1 -eq 2 ]] + wait_pod some-name-rs0-1 + local pod=some-name-rs0-1 + set +o xtrace waiting for pod/some-name-rs0-1 to be ready...................OK + for i in $(seq 0 $last_pod) + [[ 2 -eq 2 ]] ++ kubectl_bin get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].arbiter.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.OzRJ81WiQR +++ mktemp ++ local LAST_ERR=/tmp/tmp.Q7N7vbkO4F ++ local exit_status=0 ++ local timeout=4 ++ args=('get' 'psmdb' 'some-name' '-o' 'jsonpath={.spec.replsets[?(@.name=="rs0")].arbiter.enabled}') ++ local args ++ transformed_files=() ++ local transformed_files ++ arch_scheduling_enabled ++ [[ -n '' ]] ++ arch_scheduling_enabled ++ [[ -n '' ]] +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].arbiter.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.OzRJ81WiQR ++ cat /tmp/tmp.Q7N7vbkO4F ++ rm /tmp/tmp.OzRJ81WiQR /tmp/tmp.Q7N7vbkO4F ++ return 0 + [[ '' == true ]] + wait_pod some-name-rs0-2 + local pod=some-name-rs0-2 + set +o xtrace waiting for pod/some-name-rs0-2 to be ready.....................OK ++ kubectl_bin get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].nonvoting.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.aJ1vjgpNP8 +++ mktemp ++ local LAST_ERR=/tmp/tmp.3nTj0G8X5o ++ local exit_status=0 ++ local timeout=4 ++ args=('get' 'psmdb' 'some-name' '-o' 'jsonpath={.spec.replsets[?(@.name=="rs0")].nonvoting.enabled}') ++ local args ++ transformed_files=() ++ local transformed_files ++ arch_scheduling_enabled ++ [[ -n '' ]] ++ arch_scheduling_enabled ++ [[ -n '' ]] +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].nonvoting.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.aJ1vjgpNP8 ++ cat /tmp/tmp.3nTj0G8X5o ++ rm /tmp/tmp.aJ1vjgpNP8 /tmp/tmp.3nTj0G8X5o ++ return 0 + [[ '' == true ]] ++ kubectl_bin get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].hidden.enabled}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.swpdscNrv6 +++ mktemp ++ local LAST_ERR=/tmp/tmp.9Mo1ok2YA8 ++ local exit_status=0 ++ local timeout=4 ++ args=('get' 'psmdb' 'some-name' '-o' 'jsonpath={.spec.replsets[?(@.name=="rs0")].hidden.enabled}') ++ local args ++ transformed_files=() ++ local transformed_files ++ arch_scheduling_enabled ++ [[ -n '' ]] ++ arch_scheduling_enabled ++ [[ -n '' ]] +++ seq 0 2 ++ for i in $(seq 0 2) ++ set +e ++ kubectl get psmdb some-name -o 'jsonpath={.spec.replsets[?(@.name=="rs0")].hidden.enabled}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 -a -n 1 ']' ++ break ++ cat /tmp/tmp.swpdscNrv6 ++ cat /tmp/tmp.9Mo1ok2YA8 ++ rm /tmp/tmp.swpdscNrv6 /tmp/tmp.9Mo1ok2YA8 ++ return 0 + [[ '' == true ]] + sleep 10 + [[ true == true ]] + set +x Waiting for cluster some-name to be ready........................... + check_service rs0 + replset_name=rs0 + local expose_path + local svc_name + case $replset_name in + expose_path=/spec/replsets/0/expose + svc_name=some-name-rs0-0 + desc 'add labels and annotation manually to service some-name-rs0-0' + set +o xtrace ----------------------------------------------------------------------------------- add labels and annotation manually to service some-name-rs0-0 ----------------------------------------------------------------------------------- + kubectl_bin patch service/some-name-rs0-0 --type=json --patch $'[\n {\n "op": "add", \n "path": "/metadata/labels", \n "value": {\n "notIgnoredLabel": "true",\n "ignoredLabel": "true"\n }\n },\n {\n "op": "add", \n "path": "/metadata/annotations", \n "value": {\n "notIgnoredAnnotation": "true",\n "ignoredAnnotation": "true"\n }\n }]' ++ mktemp + local LAST_OUT=/tmp/tmp.qBVHhN6D0S ++ mktemp + local LAST_ERR=/tmp/tmp.2ItFOR9INk + local exit_status=0 + local timeout=4 + args=('patch' 'service/some-name-rs0-0' '--type=json' '--patch' '[ { "op": "add", "path": "/metadata/labels", "value": { "notIgnoredLabel": "true", "ignoredLabel": "true" } }, { "op": "add", "path": "/metadata/annotations", "value": { "notIgnoredAnnotation": "true", "ignoredAnnotation": "true" } }]') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl patch service/some-name-rs0-0 --type=json --patch $'[\n {\n "op": "add", \n "path": "/metadata/labels", \n "value": {\n "notIgnoredLabel": "true",\n "ignoredLabel": "true"\n }\n },\n {\n "op": "add", \n "path": "/metadata/annotations", \n "value": {\n "notIgnoredAnnotation": "true",\n "ignoredAnnotation": "true"\n }\n }]' + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.qBVHhN6D0S service/some-name-rs0-0 patched + cat /tmp/tmp.2ItFOR9INk + rm /tmp/tmp.qBVHhN6D0S /tmp/tmp.2ItFOR9INk + return 0 + sleep 7 + desc 'check if annotations/labels are not deleted from service some-name-rs0-0' + set +o xtrace ----------------------------------------------------------------------------------- check if annotations/labels are not deleted from service some-name-rs0-0 ----------------------------------------------------------------------------------- + compare_kubectl service/some-name-rs0-0 -manual + local resource=service/some-name-rs0-0 + local postfix=-manual + local skip_generation_check= + local expected_result=/mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/compare/service_some-name-rs0-0-manual.yml + local new_result=/tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + [[ -n '' ]] + kubectl_bin get -o yaml service/some-name-rs0-0 + 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."field.cattle.io/publicEndpoints") |\n\t\t\tdel(.metadata.annotations."metallb.io/ip-allocated-from-pool") |\n\t\t\tdel(.metadata.annotations."networking.gke.io/target-pool") |\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("ignore-labels-annotations-18746", "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" ' - ++ mktemp + local LAST_OUT=/tmp/tmp.CqJLkA2RiX ++ mktemp + local LAST_ERR=/tmp/tmp.KASEauTUiH + local exit_status=0 + local timeout=4 + args=('get' '-o' 'yaml' 'service/some-name-rs0-0') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl get -o yaml service/some-name-rs0-0 + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.CqJLkA2RiX + cat /tmp/tmp.KASEauTUiH + rm /tmp/tmp.CqJLkA2RiX /tmp/tmp.KASEauTUiH + return 0 + yq -i eval 'del(.spec.persistentVolumeClaimRetentionPolicy)' /tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + arch_scheduling_enabled + [[ -n '' ]] + version_gt 1.22 ++ echo '1.33 >= 1.22' ++ bc -l + '[' 1 -eq 1 ']' + return 0 + yq -i eval 'del(.spec.internalTrafficPolicy)' /tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + yq -i eval 'del(.spec.allocateLoadBalancerNodePorts)' /tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + [[ /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/compare/service_some-name-rs0-0-manual.yml == */cronjob* ]] + '[' -n '' ']' + [[ 0 -eq 0 ]] + diff -u /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/compare/service_some-name-rs0-0-manual.yml /tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + log 'compare_kubectl: service/some-name-rs0-0 OK' + set +o xtrace [2026-07-17T01:05:39+0000] compare_kubectl: service/some-name-rs0-0 OK + desc 'adding ignoreAnnotations and ignoreLabels' + set +o xtrace ----------------------------------------------------------------------------------- adding ignoreAnnotations and ignoreLabels ----------------------------------------------------------------------------------- + kubectl_bin patch psmdb some-name --type=json --patch $'[\n {\n "op": "add",\n "path": "/spec/ignoreAnnotations",\n "value": ["ignoredAnnotation"]\n },\n {\n "op": "add",\n "path": "/spec/ignoreLabels",\n "value": ["ignoredLabel"]\n }\n ]' ++ mktemp + local LAST_OUT=/tmp/tmp.URHyZheOXO ++ mktemp + local LAST_ERR=/tmp/tmp.W0nXvfgLIc + local exit_status=0 + local timeout=4 + args=('patch' 'psmdb' 'some-name' '--type=json' '--patch' '[ { "op": "add", "path": "/spec/ignoreAnnotations", "value": ["ignoredAnnotation"] }, { "op": "add", "path": "/spec/ignoreLabels", "value": ["ignoredLabel"] } ]') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl patch psmdb some-name --type=json --patch $'[\n {\n "op": "add",\n "path": "/spec/ignoreAnnotations",\n "value": ["ignoredAnnotation"]\n },\n {\n "op": "add",\n "path": "/spec/ignoreLabels",\n "value": ["ignoredLabel"]\n }\n ]' + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.URHyZheOXO perconaservermongodb.psmdb.percona.com/some-name patched + cat /tmp/tmp.W0nXvfgLIc + rm /tmp/tmp.URHyZheOXO /tmp/tmp.W0nXvfgLIc + return 0 + sleep 7 + desc 'check if annotations/labels are not deleted from service some-name-rs0-0' + set +o xtrace ----------------------------------------------------------------------------------- check if annotations/labels are not deleted from service some-name-rs0-0 ----------------------------------------------------------------------------------- + compare_kubectl service/some-name-rs0-0 -manual + local resource=service/some-name-rs0-0 + local postfix=-manual + local skip_generation_check= + local expected_result=/mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/compare/service_some-name-rs0-0-manual.yml + local new_result=/tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + [[ -n '' ]] + kubectl_bin get -o yaml service/some-name-rs0-0 + 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."field.cattle.io/publicEndpoints") |\n\t\t\tdel(.metadata.annotations."metallb.io/ip-allocated-from-pool") |\n\t\t\tdel(.metadata.annotations."networking.gke.io/target-pool") |\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("ignore-labels-annotations-18746", "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" ' - ++ mktemp + local LAST_OUT=/tmp/tmp.EEIgGdAEqq ++ mktemp + local LAST_ERR=/tmp/tmp.w12kFprHR3 + local exit_status=0 + local timeout=4 + args=('get' '-o' 'yaml' 'service/some-name-rs0-0') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl get -o yaml service/some-name-rs0-0 + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.EEIgGdAEqq + cat /tmp/tmp.w12kFprHR3 + rm /tmp/tmp.EEIgGdAEqq /tmp/tmp.w12kFprHR3 + return 0 + yq -i eval 'del(.spec.persistentVolumeClaimRetentionPolicy)' /tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + arch_scheduling_enabled + [[ -n '' ]] + version_gt 1.22 ++ echo '1.33 >= 1.22' ++ bc -l + '[' 1 -eq 1 ']' + return 0 + yq -i eval 'del(.spec.internalTrafficPolicy)' /tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + yq -i eval 'del(.spec.allocateLoadBalancerNodePorts)' /tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + [[ /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/compare/service_some-name-rs0-0-manual.yml == */cronjob* ]] + '[' -n '' ']' + [[ 0 -eq 0 ]] + diff -u /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/compare/service_some-name-rs0-0-manual.yml /tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + log 'compare_kubectl: service/some-name-rs0-0 OK' + set +o xtrace [2026-07-17T01:05:48+0000] compare_kubectl: service/some-name-rs0-0 OK + desc 'adding labels and annotations to /spec/replsets/0/expose' + set +o xtrace ----------------------------------------------------------------------------------- adding labels and annotations to /spec/replsets/0/expose ----------------------------------------------------------------------------------- + kubectl_bin patch psmdb some-name --type=json --patch $'[\n {\n "op": "replace", \n "path": "/spec/replsets/0/expose/labels", \n\t\t\t"value": {\n\t\t\t\t"crLabel": "true",\n\t\t\t}\n },\n {\n "op": "replace", \n "path": "/spec/replsets/0/expose/annotations", \n\t\t\t"value": {\n\t\t\t\t"crAnnotation": "true",\n\t\t\t}\n }]' ++ mktemp + local LAST_OUT=/tmp/tmp.PPNyW6REqV ++ mktemp + local LAST_ERR=/tmp/tmp.cHKaI4sD4U + local exit_status=0 + local timeout=4 + args=('patch' 'psmdb' 'some-name' '--type=json' '--patch' '[ { "op": "replace", "path": "/spec/replsets/0/expose/labels", "value": { "crLabel": "true", } }, { "op": "replace", "path": "/spec/replsets/0/expose/annotations", "value": { "crAnnotation": "true", } }]') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl patch psmdb some-name --type=json --patch $'[\n {\n "op": "replace", \n "path": "/spec/replsets/0/expose/labels", \n\t\t\t"value": {\n\t\t\t\t"crLabel": "true",\n\t\t\t}\n },\n {\n "op": "replace", \n "path": "/spec/replsets/0/expose/annotations", \n\t\t\t"value": {\n\t\t\t\t"crAnnotation": "true",\n\t\t\t}\n }]' + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.PPNyW6REqV perconaservermongodb.psmdb.percona.com/some-name patched + cat /tmp/tmp.cHKaI4sD4U + rm /tmp/tmp.PPNyW6REqV /tmp/tmp.cHKaI4sD4U + return 0 + sleep 5 + desc 'check if not ignored labels and annotations are deleted from service some-name-rs0-0' + set +o xtrace ----------------------------------------------------------------------------------- check if not ignored labels and annotations are deleted from service some-name-rs0-0 ----------------------------------------------------------------------------------- + compare_kubectl service/some-name-rs0-0 -crmeta + local resource=service/some-name-rs0-0 + local postfix=-crmeta + local skip_generation_check= + local expected_result=/mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/compare/service_some-name-rs0-0-crmeta.yml + local new_result=/tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + [[ -n '' ]] + kubectl_bin get -o yaml service/some-name-rs0-0 + 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."field.cattle.io/publicEndpoints") |\n\t\t\tdel(.metadata.annotations."metallb.io/ip-allocated-from-pool") |\n\t\t\tdel(.metadata.annotations."networking.gke.io/target-pool") |\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("ignore-labels-annotations-18746", "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" ' - ++ mktemp + local LAST_OUT=/tmp/tmp.9jUnC2t5hX ++ mktemp + local LAST_ERR=/tmp/tmp.xkY0WPO4aO + local exit_status=0 + local timeout=4 + args=('get' '-o' 'yaml' 'service/some-name-rs0-0') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl get -o yaml service/some-name-rs0-0 + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.9jUnC2t5hX + cat /tmp/tmp.xkY0WPO4aO + rm /tmp/tmp.9jUnC2t5hX /tmp/tmp.xkY0WPO4aO + return 0 + yq -i eval 'del(.spec.persistentVolumeClaimRetentionPolicy)' /tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + arch_scheduling_enabled + [[ -n '' ]] + version_gt 1.22 ++ echo '1.33 >= 1.22' ++ bc -l + '[' 1 -eq 1 ']' + return 0 + yq -i eval 'del(.spec.internalTrafficPolicy)' /tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + yq -i eval 'del(.spec.allocateLoadBalancerNodePorts)' /tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + [[ /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/compare/service_some-name-rs0-0-crmeta.yml == */cronjob* ]] + '[' -n '' ']' + [[ 0 -eq 0 ]] + diff -u /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/compare/service_some-name-rs0-0-crmeta.yml /tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + log 'compare_kubectl: service/some-name-rs0-0 OK' + set +o xtrace [2026-07-17T01:05:55+0000] compare_kubectl: service/some-name-rs0-0 OK + desc 'removing labels and annotations from /spec/replsets/0/expose' + set +o xtrace ----------------------------------------------------------------------------------- removing labels and annotations from /spec/replsets/0/expose ----------------------------------------------------------------------------------- + kubectl_bin patch psmdb some-name --type=json --patch $'[\n {\n "op": "remove", \n "path": "/spec/replsets/0/expose/labels"\n },\n {\n "op": "remove", \n "path": "/spec/replsets/0/expose/annotations"\n }]' ++ mktemp + local LAST_OUT=/tmp/tmp.SIJZnYRBJ6 ++ mktemp + local LAST_ERR=/tmp/tmp.SfbwK7jJl0 + local exit_status=0 + local timeout=4 + args=('patch' 'psmdb' 'some-name' '--type=json' '--patch' '[ { "op": "remove", "path": "/spec/replsets/0/expose/labels" }, { "op": "remove", "path": "/spec/replsets/0/expose/annotations" }]') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl patch psmdb some-name --type=json --patch $'[\n {\n "op": "remove", \n "path": "/spec/replsets/0/expose/labels"\n },\n {\n "op": "remove", \n "path": "/spec/replsets/0/expose/annotations"\n }]' + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.SIJZnYRBJ6 perconaservermongodb.psmdb.percona.com/some-name patched + cat /tmp/tmp.SfbwK7jJl0 + rm /tmp/tmp.SIJZnYRBJ6 /tmp/tmp.SfbwK7jJl0 + return 0 + sleep 5 + desc 'check if labels and annotations are not deleted from service some-name-rs0-0' + set +o xtrace ----------------------------------------------------------------------------------- check if labels and annotations are not deleted from service some-name-rs0-0 ----------------------------------------------------------------------------------- + compare_kubectl service/some-name-rs0-0 -crmeta + local resource=service/some-name-rs0-0 + local postfix=-crmeta + local skip_generation_check= + local expected_result=/mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/compare/service_some-name-rs0-0-crmeta.yml + local new_result=/tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + [[ -n '' ]] + kubectl_bin get -o yaml service/some-name-rs0-0 ++ 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."field.cattle.io/publicEndpoints") |\n\t\t\tdel(.metadata.annotations."metallb.io/ip-allocated-from-pool") |\n\t\t\tdel(.metadata.annotations."networking.gke.io/target-pool") |\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("ignore-labels-annotations-18746", "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.cORQy7f94A ++ mktemp + local LAST_ERR=/tmp/tmp.5xXLNyQwI7 + local exit_status=0 + local timeout=4 + args=('get' '-o' 'yaml' 'service/some-name-rs0-0') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl get -o yaml service/some-name-rs0-0 + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.cORQy7f94A + cat /tmp/tmp.5xXLNyQwI7 + rm /tmp/tmp.cORQy7f94A /tmp/tmp.5xXLNyQwI7 + return 0 + yq -i eval 'del(.spec.persistentVolumeClaimRetentionPolicy)' /tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + arch_scheduling_enabled + [[ -n '' ]] + version_gt 1.22 ++ echo '1.33 >= 1.22' ++ bc -l + '[' 1 -eq 1 ']' + return 0 + yq -i eval 'del(.spec.internalTrafficPolicy)' /tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + yq -i eval 'del(.spec.allocateLoadBalancerNodePorts)' /tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + [[ /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/compare/service_some-name-rs0-0-crmeta.yml == */cronjob* ]] + '[' -n '' ']' + [[ 0 -eq 0 ]] + diff -u /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/compare/service_some-name-rs0-0-crmeta.yml /tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + log 'compare_kubectl: service/some-name-rs0-0 OK' + set +o xtrace [2026-07-17T01:06:02+0000] compare_kubectl: service/some-name-rs0-0 OK + desc 'adding other labels and annotations to /spec/replsets/0/expose' + set +o xtrace ----------------------------------------------------------------------------------- adding other labels and annotations to /spec/replsets/0/expose ----------------------------------------------------------------------------------- + kubectl_bin patch psmdb some-name --type=json --patch $'[\n {\n "op": "replace", \n "path": "/spec/replsets/0/expose/labels", \n\t\t\t"value": {\n\t\t\t\t"otherCrLabel": "true",\n\t\t\t\t"secondCrLabel": "true",\n\t\t\t}\n },\n\t\t{\n "op": "replace", \n "path": "/spec/replsets/0/expose/annotations", \n\t\t\t"value": {\n\t\t\t\t"otherCrAnnotation": "true",\n\t\t\t\t"secondCrAnnotation": "true",\n\t\t\t}\n\t\t}]' ++ mktemp + local LAST_OUT=/tmp/tmp.UKLs8oFvOK ++ mktemp + local LAST_ERR=/tmp/tmp.6FZBSAOt6n + local exit_status=0 + local timeout=4 + args=('patch' 'psmdb' 'some-name' '--type=json' '--patch' '[ { "op": "replace", "path": "/spec/replsets/0/expose/labels", "value": { "otherCrLabel": "true", "secondCrLabel": "true", } }, { "op": "replace", "path": "/spec/replsets/0/expose/annotations", "value": { "otherCrAnnotation": "true", "secondCrAnnotation": "true", } }]') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl patch psmdb some-name --type=json --patch $'[\n {\n "op": "replace", \n "path": "/spec/replsets/0/expose/labels", \n\t\t\t"value": {\n\t\t\t\t"otherCrLabel": "true",\n\t\t\t\t"secondCrLabel": "true",\n\t\t\t}\n },\n\t\t{\n "op": "replace", \n "path": "/spec/replsets/0/expose/annotations", \n\t\t\t"value": {\n\t\t\t\t"otherCrAnnotation": "true",\n\t\t\t\t"secondCrAnnotation": "true",\n\t\t\t}\n\t\t}]' + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.UKLs8oFvOK perconaservermongodb.psmdb.percona.com/some-name patched + cat /tmp/tmp.6FZBSAOt6n + rm /tmp/tmp.UKLs8oFvOK /tmp/tmp.6FZBSAOt6n + return 0 + sleep 5 + desc 'check if not previous service labels and annotations is deleted from some-name-rs0-0' + set +o xtrace ----------------------------------------------------------------------------------- check if not previous service labels and annotations is deleted from some-name-rs0-0 ----------------------------------------------------------------------------------- + compare_kubectl service/some-name-rs0-0 -two-service-labels-annotations + local resource=service/some-name-rs0-0 + local postfix=-two-service-labels-annotations + local skip_generation_check= + local expected_result=/mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/compare/service_some-name-rs0-0-two-service-labels-annotations.yml + local new_result=/tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + [[ -n '' ]] + kubectl_bin get -o yaml service/some-name-rs0-0 + 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."field.cattle.io/publicEndpoints") |\n\t\t\tdel(.metadata.annotations."metallb.io/ip-allocated-from-pool") |\n\t\t\tdel(.metadata.annotations."networking.gke.io/target-pool") |\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("ignore-labels-annotations-18746", "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" ' - ++ mktemp + local LAST_OUT=/tmp/tmp.JsDubiRoz3 ++ mktemp + local LAST_ERR=/tmp/tmp.yDWbVor2zr + local exit_status=0 + local timeout=4 + args=('get' '-o' 'yaml' 'service/some-name-rs0-0') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl get -o yaml service/some-name-rs0-0 + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.JsDubiRoz3 + cat /tmp/tmp.yDWbVor2zr + rm /tmp/tmp.JsDubiRoz3 /tmp/tmp.yDWbVor2zr + return 0 + yq -i eval 'del(.spec.persistentVolumeClaimRetentionPolicy)' /tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + arch_scheduling_enabled + [[ -n '' ]] + version_gt 1.22 ++ echo '1.33 >= 1.22' ++ bc -l + '[' 1 -eq 1 ']' + return 0 + yq -i eval 'del(.spec.internalTrafficPolicy)' /tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + yq -i eval 'del(.spec.allocateLoadBalancerNodePorts)' /tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + [[ /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/compare/service_some-name-rs0-0-two-service-labels-annotations.yml == */cronjob* ]] + '[' -n '' ']' + [[ 0 -eq 0 ]] + diff -u /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/compare/service_some-name-rs0-0-two-service-labels-annotations.yml /tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + log 'compare_kubectl: service/some-name-rs0-0 OK' + set +o xtrace [2026-07-17T01:06:09+0000] compare_kubectl: service/some-name-rs0-0 OK + desc 'adding removing one labels from /spec/replsets/0/expose' + set +o xtrace ----------------------------------------------------------------------------------- adding removing one labels from /spec/replsets/0/expose ----------------------------------------------------------------------------------- + kubectl_bin patch psmdb some-name --type=json --patch $'[\n {\n "op": "replace", \n "path": "/spec/replsets/0/expose/labels", \n\t\t\t"value": {\n\t\t\t\t"otherCrLabel": "true",\n\t\t\t}\n },\n {\n "op": "replace", \n "path": "/spec/replsets/0/expose/annotations", \n\t\t\t"value": {\n\t\t\t\t"otherCrAnnotation": "true",\n\t\t\t}\n }]' ++ mktemp + local LAST_OUT=/tmp/tmp.zejxEvrPEA ++ mktemp + local LAST_ERR=/tmp/tmp.Pv846BzGgh + local exit_status=0 + local timeout=4 + args=('patch' 'psmdb' 'some-name' '--type=json' '--patch' '[ { "op": "replace", "path": "/spec/replsets/0/expose/labels", "value": { "otherCrLabel": "true", } }, { "op": "replace", "path": "/spec/replsets/0/expose/annotations", "value": { "otherCrAnnotation": "true", } }]') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl patch psmdb some-name --type=json --patch $'[\n {\n "op": "replace", \n "path": "/spec/replsets/0/expose/labels", \n\t\t\t"value": {\n\t\t\t\t"otherCrLabel": "true",\n\t\t\t}\n },\n {\n "op": "replace", \n "path": "/spec/replsets/0/expose/annotations", \n\t\t\t"value": {\n\t\t\t\t"otherCrAnnotation": "true",\n\t\t\t}\n }]' + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.zejxEvrPEA perconaservermongodb.psmdb.percona.com/some-name patched + cat /tmp/tmp.Pv846BzGgh + rm /tmp/tmp.zejxEvrPEA /tmp/tmp.Pv846BzGgh + return 0 + sleep 5 + desc 'check if removed service label is deleted from some-name-rs0-0' + set +o xtrace ----------------------------------------------------------------------------------- check if removed service label is deleted from some-name-rs0-0 ----------------------------------------------------------------------------------- + compare_kubectl service/some-name-rs0-0 -one-service-label-annotation + local resource=service/some-name-rs0-0 + local postfix=-one-service-label-annotation + local skip_generation_check= + local expected_result=/mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/compare/service_some-name-rs0-0-one-service-label-annotation.yml + local new_result=/tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + [[ -n '' ]] + kubectl_bin get -o yaml service/some-name-rs0-0 + 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."field.cattle.io/publicEndpoints") |\n\t\t\tdel(.metadata.annotations."metallb.io/ip-allocated-from-pool") |\n\t\t\tdel(.metadata.annotations."networking.gke.io/target-pool") |\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("ignore-labels-annotations-18746", "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" ' - ++ mktemp + local LAST_OUT=/tmp/tmp.t8xNx9W0DU ++ mktemp + local LAST_ERR=/tmp/tmp.TjM3fOE4vG + local exit_status=0 + local timeout=4 + args=('get' '-o' 'yaml' 'service/some-name-rs0-0') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl get -o yaml service/some-name-rs0-0 + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.t8xNx9W0DU + cat /tmp/tmp.TjM3fOE4vG + rm /tmp/tmp.t8xNx9W0DU /tmp/tmp.TjM3fOE4vG + return 0 + yq -i eval 'del(.spec.persistentVolumeClaimRetentionPolicy)' /tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + arch_scheduling_enabled + [[ -n '' ]] + version_gt 1.22 ++ echo '1.33 >= 1.22' ++ bc -l + '[' 1 -eq 1 ']' + return 0 + yq -i eval 'del(.spec.internalTrafficPolicy)' /tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + yq -i eval 'del(.spec.allocateLoadBalancerNodePorts)' /tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + [[ /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/compare/service_some-name-rs0-0-one-service-label-annotation.yml == */cronjob* ]] + '[' -n '' ']' + [[ 0 -eq 0 ]] + diff -u /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/compare/service_some-name-rs0-0-one-service-label-annotation.yml /tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + log 'compare_kubectl: service/some-name-rs0-0 OK' + set +o xtrace [2026-07-17T01:06:16+0000] compare_kubectl: service/some-name-rs0-0 OK + desc 'removing ignoreLabels and ignoreAnnotations' + set +o xtrace ----------------------------------------------------------------------------------- removing ignoreLabels and ignoreAnnotations ----------------------------------------------------------------------------------- + kubectl_bin patch psmdb some-name --type=json --patch $'[\n {\n "op": "remove", \n "path": "/spec/ignoreAnnotations",\n },\n {\n "op": "remove", \n "path": "/spec/ignoreLabels",\n }]' ++ mktemp + local LAST_OUT=/tmp/tmp.9j2Kj8wAp2 ++ mktemp + local LAST_ERR=/tmp/tmp.by2uN0SBf3 + local exit_status=0 + local timeout=4 + args=('patch' 'psmdb' 'some-name' '--type=json' '--patch' '[ { "op": "remove", "path": "/spec/ignoreAnnotations", }, { "op": "remove", "path": "/spec/ignoreLabels", }]') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl patch psmdb some-name --type=json --patch $'[\n {\n "op": "remove", \n "path": "/spec/ignoreAnnotations",\n },\n {\n "op": "remove", \n "path": "/spec/ignoreLabels",\n }]' + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.9j2Kj8wAp2 perconaservermongodb.psmdb.percona.com/some-name patched + cat /tmp/tmp.by2uN0SBf3 + rm /tmp/tmp.9j2Kj8wAp2 /tmp/tmp.by2uN0SBf3 + return 0 + sleep 5 + desc 'check if ignored labels and annotations are deleted from some-name-rs0-0' + set +o xtrace ----------------------------------------------------------------------------------- check if ignored labels and annotations are deleted from some-name-rs0-0 ----------------------------------------------------------------------------------- + compare_kubectl service/some-name-rs0-0 -no-ignored-meta + local resource=service/some-name-rs0-0 + local postfix=-no-ignored-meta + local skip_generation_check= + local expected_result=/mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/compare/service_some-name-rs0-0-no-ignored-meta.yml + local new_result=/tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + [[ -n '' ]] + kubectl_bin get -o yaml service/some-name-rs0-0 + 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."field.cattle.io/publicEndpoints") |\n\t\t\tdel(.metadata.annotations."metallb.io/ip-allocated-from-pool") |\n\t\t\tdel(.metadata.annotations."networking.gke.io/target-pool") |\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("ignore-labels-annotations-18746", "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" ' - ++ mktemp + local LAST_OUT=/tmp/tmp.Z8PjI6fNwc ++ mktemp + local LAST_ERR=/tmp/tmp.s1kHnGrB5T + local exit_status=0 + local timeout=4 + args=('get' '-o' 'yaml' 'service/some-name-rs0-0') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl get -o yaml service/some-name-rs0-0 + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.Z8PjI6fNwc + cat /tmp/tmp.s1kHnGrB5T + rm /tmp/tmp.Z8PjI6fNwc /tmp/tmp.s1kHnGrB5T + return 0 + yq -i eval 'del(.spec.persistentVolumeClaimRetentionPolicy)' /tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + arch_scheduling_enabled + [[ -n '' ]] + version_gt 1.22 ++ echo '1.33 >= 1.22' ++ bc -l + '[' 1 -eq 1 ']' + return 0 + yq -i eval 'del(.spec.internalTrafficPolicy)' /tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + yq -i eval 'del(.spec.allocateLoadBalancerNodePorts)' /tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + [[ /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/compare/service_some-name-rs0-0-no-ignored-meta.yml == */cronjob* ]] + '[' -n '' ']' + [[ 0 -eq 0 ]] + diff -u /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/compare/service_some-name-rs0-0-no-ignored-meta.yml /tmp/tmp.VrxCKgTEwO/service_some-name-rs0-0.yml + log 'compare_kubectl: service/some-name-rs0-0 OK' + set +o xtrace [2026-07-17T01:06:23+0000] compare_kubectl: service/some-name-rs0-0 OK + check_service cfg + replset_name=cfg + local expose_path + local svc_name + case $replset_name in + expose_path=/spec/sharding/configsvrReplSet/expose + svc_name=some-name-cfg-0 + desc 'add labels and annotation manually to service some-name-cfg-0' + set +o xtrace ----------------------------------------------------------------------------------- add labels and annotation manually to service some-name-cfg-0 ----------------------------------------------------------------------------------- + kubectl_bin patch service/some-name-cfg-0 --type=json --patch $'[\n {\n "op": "add", \n "path": "/metadata/labels", \n "value": {\n "notIgnoredLabel": "true",\n "ignoredLabel": "true"\n }\n },\n {\n "op": "add", \n "path": "/metadata/annotations", \n "value": {\n "notIgnoredAnnotation": "true",\n "ignoredAnnotation": "true"\n }\n }]' ++ mktemp + local LAST_OUT=/tmp/tmp.umwW9BuPgy ++ mktemp + local LAST_ERR=/tmp/tmp.xZOfw8fpHq + local exit_status=0 + local timeout=4 + args=('patch' 'service/some-name-cfg-0' '--type=json' '--patch' '[ { "op": "add", "path": "/metadata/labels", "value": { "notIgnoredLabel": "true", "ignoredLabel": "true" } }, { "op": "add", "path": "/metadata/annotations", "value": { "notIgnoredAnnotation": "true", "ignoredAnnotation": "true" } }]') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl patch service/some-name-cfg-0 --type=json --patch $'[\n {\n "op": "add", \n "path": "/metadata/labels", \n "value": {\n "notIgnoredLabel": "true",\n "ignoredLabel": "true"\n }\n },\n {\n "op": "add", \n "path": "/metadata/annotations", \n "value": {\n "notIgnoredAnnotation": "true",\n "ignoredAnnotation": "true"\n }\n }]' + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.umwW9BuPgy service/some-name-cfg-0 patched + cat /tmp/tmp.xZOfw8fpHq + rm /tmp/tmp.umwW9BuPgy /tmp/tmp.xZOfw8fpHq + return 0 + sleep 7 + desc 'check if annotations/labels are not deleted from service some-name-cfg-0' + set +o xtrace ----------------------------------------------------------------------------------- check if annotations/labels are not deleted from service some-name-cfg-0 ----------------------------------------------------------------------------------- + compare_kubectl service/some-name-cfg-0 -manual + local resource=service/some-name-cfg-0 + local postfix=-manual + local skip_generation_check= + local expected_result=/mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/compare/service_some-name-cfg-0-manual.yml + local new_result=/tmp/tmp.VrxCKgTEwO/service_some-name-cfg-0.yml + [[ -n '' ]] + kubectl_bin get -o yaml service/some-name-cfg-0 + 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."field.cattle.io/publicEndpoints") |\n\t\t\tdel(.metadata.annotations."metallb.io/ip-allocated-from-pool") |\n\t\t\tdel(.metadata.annotations."networking.gke.io/target-pool") |\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("ignore-labels-annotations-18746", "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" ' - ++ mktemp + local LAST_OUT=/tmp/tmp.l2t2jz5rYo ++ mktemp + local LAST_ERR=/tmp/tmp.CVxCqVImTK + local exit_status=0 + local timeout=4 + args=('get' '-o' 'yaml' 'service/some-name-cfg-0') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl get -o yaml service/some-name-cfg-0 + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.l2t2jz5rYo + cat /tmp/tmp.CVxCqVImTK + rm /tmp/tmp.l2t2jz5rYo /tmp/tmp.CVxCqVImTK + return 0 + yq -i eval 'del(.spec.persistentVolumeClaimRetentionPolicy)' /tmp/tmp.VrxCKgTEwO/service_some-name-cfg-0.yml + arch_scheduling_enabled + [[ -n '' ]] + version_gt 1.22 ++ bc -l ++ echo '1.33 >= 1.22' + '[' 1 -eq 1 ']' + return 0 + yq -i eval 'del(.spec.internalTrafficPolicy)' /tmp/tmp.VrxCKgTEwO/service_some-name-cfg-0.yml + yq -i eval 'del(.spec.allocateLoadBalancerNodePorts)' /tmp/tmp.VrxCKgTEwO/service_some-name-cfg-0.yml + [[ /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/compare/service_some-name-cfg-0-manual.yml == */cronjob* ]] + '[' -n '' ']' + [[ 0 -eq 0 ]] + diff -u /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/compare/service_some-name-cfg-0-manual.yml /tmp/tmp.VrxCKgTEwO/service_some-name-cfg-0.yml + log 'compare_kubectl: service/some-name-cfg-0 OK' + set +o xtrace [2026-07-17T01:06:33+0000] compare_kubectl: service/some-name-cfg-0 OK + desc 'adding ignoreAnnotations and ignoreLabels' + set +o xtrace ----------------------------------------------------------------------------------- adding ignoreAnnotations and ignoreLabels ----------------------------------------------------------------------------------- + kubectl_bin patch psmdb some-name --type=json --patch $'[\n {\n "op": "add",\n "path": "/spec/ignoreAnnotations",\n "value": ["ignoredAnnotation"]\n },\n {\n "op": "add",\n "path": "/spec/ignoreLabels",\n "value": ["ignoredLabel"]\n }\n ]' ++ mktemp + local LAST_OUT=/tmp/tmp.LAwGCzywa5 ++ mktemp + local LAST_ERR=/tmp/tmp.tMkmJRFfuU + local exit_status=0 + local timeout=4 + args=('patch' 'psmdb' 'some-name' '--type=json' '--patch' '[ { "op": "add", "path": "/spec/ignoreAnnotations", "value": ["ignoredAnnotation"] }, { "op": "add", "path": "/spec/ignoreLabels", "value": ["ignoredLabel"] } ]') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl patch psmdb some-name --type=json --patch $'[\n {\n "op": "add",\n "path": "/spec/ignoreAnnotations",\n "value": ["ignoredAnnotation"]\n },\n {\n "op": "add",\n "path": "/spec/ignoreLabels",\n "value": ["ignoredLabel"]\n }\n ]' + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.LAwGCzywa5 perconaservermongodb.psmdb.percona.com/some-name patched + cat /tmp/tmp.tMkmJRFfuU + rm /tmp/tmp.LAwGCzywa5 /tmp/tmp.tMkmJRFfuU + return 0 + sleep 7 + desc 'check if annotations/labels are not deleted from service some-name-cfg-0' + set +o xtrace ----------------------------------------------------------------------------------- check if annotations/labels are not deleted from service some-name-cfg-0 ----------------------------------------------------------------------------------- + compare_kubectl service/some-name-cfg-0 -manual + local resource=service/some-name-cfg-0 + local postfix=-manual + local skip_generation_check= + local expected_result=/mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/compare/service_some-name-cfg-0-manual.yml + local new_result=/tmp/tmp.VrxCKgTEwO/service_some-name-cfg-0.yml + [[ -n '' ]] + kubectl_bin get -o yaml service/some-name-cfg-0 + 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."field.cattle.io/publicEndpoints") |\n\t\t\tdel(.metadata.annotations."metallb.io/ip-allocated-from-pool") |\n\t\t\tdel(.metadata.annotations."networking.gke.io/target-pool") |\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("ignore-labels-annotations-18746", "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" ' - ++ mktemp + local LAST_OUT=/tmp/tmp.p0mM7l9rt8 ++ mktemp + local LAST_ERR=/tmp/tmp.8PJj6cQUej + local exit_status=0 + local timeout=4 + args=('get' '-o' 'yaml' 'service/some-name-cfg-0') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl get -o yaml service/some-name-cfg-0 + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.p0mM7l9rt8 + cat /tmp/tmp.8PJj6cQUej + rm /tmp/tmp.p0mM7l9rt8 /tmp/tmp.8PJj6cQUej + return 0 + yq -i eval 'del(.spec.persistentVolumeClaimRetentionPolicy)' /tmp/tmp.VrxCKgTEwO/service_some-name-cfg-0.yml + arch_scheduling_enabled + [[ -n '' ]] + version_gt 1.22 ++ echo '1.33 >= 1.22' ++ bc -l + '[' 1 -eq 1 ']' + return 0 + yq -i eval 'del(.spec.internalTrafficPolicy)' /tmp/tmp.VrxCKgTEwO/service_some-name-cfg-0.yml + yq -i eval 'del(.spec.allocateLoadBalancerNodePorts)' /tmp/tmp.VrxCKgTEwO/service_some-name-cfg-0.yml + [[ /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/compare/service_some-name-cfg-0-manual.yml == */cronjob* ]] + '[' -n '' ']' + [[ 0 -eq 0 ]] + diff -u /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/compare/service_some-name-cfg-0-manual.yml /tmp/tmp.VrxCKgTEwO/service_some-name-cfg-0.yml + log 'compare_kubectl: service/some-name-cfg-0 OK' + set +o xtrace [2026-07-17T01:06:42+0000] compare_kubectl: service/some-name-cfg-0 OK + desc 'adding labels and annotations to /spec/sharding/configsvrReplSet/expose' + set +o xtrace ----------------------------------------------------------------------------------- adding labels and annotations to /spec/sharding/configsvrReplSet/expose ----------------------------------------------------------------------------------- + kubectl_bin patch psmdb some-name --type=json --patch $'[\n {\n "op": "replace", \n "path": "/spec/sharding/configsvrReplSet/expose/labels", \n\t\t\t"value": {\n\t\t\t\t"crLabel": "true",\n\t\t\t}\n },\n {\n "op": "replace", \n "path": "/spec/sharding/configsvrReplSet/expose/annotations", \n\t\t\t"value": {\n\t\t\t\t"crAnnotation": "true",\n\t\t\t}\n }]' ++ mktemp + local LAST_OUT=/tmp/tmp.6aUGmtGZlF ++ mktemp + local LAST_ERR=/tmp/tmp.iXw4LBrtcL + local exit_status=0 + local timeout=4 + args=('patch' 'psmdb' 'some-name' '--type=json' '--patch' '[ { "op": "replace", "path": "/spec/sharding/configsvrReplSet/expose/labels", "value": { "crLabel": "true", } }, { "op": "replace", "path": "/spec/sharding/configsvrReplSet/expose/annotations", "value": { "crAnnotation": "true", } }]') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl patch psmdb some-name --type=json --patch $'[\n {\n "op": "replace", \n "path": "/spec/sharding/configsvrReplSet/expose/labels", \n\t\t\t"value": {\n\t\t\t\t"crLabel": "true",\n\t\t\t}\n },\n {\n "op": "replace", \n "path": "/spec/sharding/configsvrReplSet/expose/annotations", \n\t\t\t"value": {\n\t\t\t\t"crAnnotation": "true",\n\t\t\t}\n }]' + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.6aUGmtGZlF perconaservermongodb.psmdb.percona.com/some-name patched + cat /tmp/tmp.iXw4LBrtcL + rm /tmp/tmp.6aUGmtGZlF /tmp/tmp.iXw4LBrtcL + return 0 + sleep 5 + desc 'check if not ignored labels and annotations are deleted from service some-name-cfg-0' + set +o xtrace ----------------------------------------------------------------------------------- check if not ignored labels and annotations are deleted from service some-name-cfg-0 ----------------------------------------------------------------------------------- + compare_kubectl service/some-name-cfg-0 -crmeta + local resource=service/some-name-cfg-0 + local postfix=-crmeta + local skip_generation_check= + local expected_result=/mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/compare/service_some-name-cfg-0-crmeta.yml + local new_result=/tmp/tmp.VrxCKgTEwO/service_some-name-cfg-0.yml + [[ -n '' ]] + kubectl_bin get -o yaml service/some-name-cfg-0 + 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."field.cattle.io/publicEndpoints") |\n\t\t\tdel(.metadata.annotations."metallb.io/ip-allocated-from-pool") |\n\t\t\tdel(.metadata.annotations."networking.gke.io/target-pool") |\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("ignore-labels-annotations-18746", "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" ' - ++ mktemp + local LAST_OUT=/tmp/tmp.QjbYAjqrPT ++ mktemp + local LAST_ERR=/tmp/tmp.EQ981q7swp + local exit_status=0 + local timeout=4 + args=('get' '-o' 'yaml' 'service/some-name-cfg-0') + local args + transformed_files=() + local transformed_files + arch_scheduling_enabled + [[ -n '' ]] + arch_scheduling_enabled + [[ -n '' ]] ++ seq 0 2 + for i in $(seq 0 2) + set +e + kubectl get -o yaml service/some-name-cfg-0 + exit_status=0 + set -e + '[' 0 '!=' 0 -a -n 1 ']' + break + cat /tmp/tmp.QjbYAjqrPT + cat /tmp/tmp.EQ981q7swp + rm /tmp/tmp.QjbYAjqrPT /tmp/tmp.EQ981q7swp + return 0 + yq -i eval 'del(.spec.persistentVolumeClaimRetentionPolicy)' /tmp/tmp.VrxCKgTEwO/service_some-name-cfg-0.yml + arch_scheduling_enabled + [[ -n '' ]] + version_gt 1.22 ++ echo '1.33 >= 1.22' ++ bc -l + '[' 1 -eq 1 ']' + return 0 + yq -i eval 'del(.spec.internalTrafficPolicy)' /tmp/tmp.VrxCKgTEwO/service_some-name-cfg-0.yml + yq -i eval 'del(.spec.allocateLoadBalancerNodePorts)' /tmp/tmp.VrxCKgTEwO/service_some-name-cfg-0.yml + [[ /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/compare/service_some-name-cfg-0-crmeta.yml == */cronjob* ]] + '[' -n '' ']' + [[ 0 -eq 0 ]] + diff -u /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/compare/service_some-name-cfg-0-crmeta.yml /tmp/tmp.VrxCKgTEwO/service_some-name-cfg-0.yml --- /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/ignore-labels-annotations/compare/service_some-name-cfg-0-crmeta.yml 2026-07-16 23:49:26.852415718 +0000 +++ /tmp/tmp.VrxCKgTEwO/service_some-name-cfg-0.yml 2026-07-17 01:06:49.487275726 +0000 @@ -2,8 +2,8 @@ kind: Service metadata: annotations: - crAnnotation: "true" ignoredAnnotation: "true" + notIgnoredAnnotation: "true" labels: app.kubernetes.io/component: external-service app.kubernetes.io/instance: some-name @@ -11,8 +11,8 @@ app.kubernetes.io/name: percona-server-mongodb app.kubernetes.io/part-of: percona-server-mongodb app.kubernetes.io/replset: cfg - crLabel: "true" ignoredLabel: "true" + notIgnoredLabel: "true" name: some-name-cfg-0 ownerReferences: - controller: true ++ caller + log 'compare_kubectl (103 run) failed with diff' + set +o xtrace [2026-07-17T01:06:49+0000] compare_kubectl (103 run) failed with diff + exit 1 [01:06:52.891186] WARNING kubectl error: No resources found in ldap-tls-24522 namespace. [01:06:53.801977] WARNING kubectl error: No resources found in ldap-tls-24522 namespace. [01:06:55.844854] WARNING kubectl error: No resources found in ldap-tls-24522 namespace. [01:06:56.877937] WARNING kubectl error: No resources found in ldap-tls-24522 namespace. [01:06:57.337058] WARNING kubectl error: No resources found in ldap-tls-24522 namespace. [01:06:57.773623] WARNING kubectl error: No resources found in ldap-tls-24522 namespace. FAILED =================================== FAILURES =================================== ______________________________ test_bash_wrapper _______________________________ request = > def test_bash_wrapper(request: pytest.FixtureRequest) -> None: """Run a bash test script via pytest wrapper.""" test_name = request.config.getoption("--test-name") if not test_name: pytest.skip("No --test-name provided") > run_bash_test(test_name) e2e-tests/test_pytest_wrapper.py:10: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test_name = 'ignore-labels-annotations' def run_bash_test(test_name: str) -> None: """Run bash script with stdout/stderr inherited from the pytest process.""" script_path = Path(__file__).parent.parent / test_name / "run" if not script_path.exists(): pytest.fail(f"Script not found: {script_path}") original_cwd = os.getcwd() script_dir = script_path.parent try: os.chdir(script_dir) result = subprocess.run(["bash", "run"]) if result.returncode != 0: > pytest.fail(f"Test {test_name} failed with exit code {result.returncode}") E Failed: Test ignore-labels-annotations failed with exit code 1 e2e-tests/lib/bash_wrapper.py:27: Failed ------------------------------ Captured log setup ------------------------------ WARNING lib.kubectl:kubectl.py:18 kubectl error: Warning: version difference between client (1.36) and server (1.33) exceeds the supported minor version skew of +/-1 INFO conftest:conftest.py:182 Environment variables: KUBE_VERSION=1.33 EKS=0 GKE=1 OPENSHIFT= MINIKUBE= API=psmdb.percona.com/v1 REGISTRY_NAME=docker.io GIT_COMMIT=78121c56762758785b75e9b7c017e15fc887ae5d GIT_BRANCH=PR-2058 OPERATOR_VERSION=1.23.0 IMAGE=docker.io/perconalab/percona-server-mongodb-operator:PR-2058-78121c567 IMAGE_MONGOD=docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0 IMAGE_MONGOD_CHAIN=docker.io/perconalab/percona-server-mongodb-operator:main-mongod6.0 docker.io/perconalab/percona-server-mongodb-operator:main-mongod7.0 docker.io/perconalab/percona-server-mongodb-operator:main-mongod8.0 IMAGE_SEARCH=perconalab/percona-server-mongodb-operator:main-mongot IMAGE_BACKUP=docker.io/perconalab/percona-server-mongodb-operator:main-backup IMAGE_PMM_CLIENT=docker.io/percona/pmm-client:2.44.1-1 IMAGE_PMM_SERVER=docker.io/perconalab/pmm-server:dev-latest IMAGE_PMM3_CLIENT=docker.io/perconalab/pmm-client:3-dev-latest IMAGE_PMM3_SERVER=docker.io/perconalab/pmm-server:3-dev-latest IMAGE_LOGCOLLECTOR=docker.io/perconalab/fluentbit:main-logcollector IMAGE_CLUSTERSYNC=docker.io/percona/percona-clustersync-mongodb:0.9.0 CERT_MANAGER_VER=1.19.3 CHAOS_MESH_VER=2.7.1 MINIO_VER=5.4.0 PMM_SERVER_VER=9.9.9 CLEAN_NAMESPACE=1 DELETE_CRD_ON_START=1 SKIP_DELETE=0 SKIP_BACKUPS_TO_AWS_GCP_AZURE= UPDATE_COMPARE_FILES=0 - generated xml file: /mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/reports/ignore-labels-annotations.xml - - Generated html report: file:///mnt/jenkins/workspace/cloud-psmdb-operator_PR-2058/e2e-tests/reports/ignore-labels-annotations.html - =========================== short test summary info ============================ FAILED e2e-tests/test_pytest_wrapper.py::test_bash_wrapper[ignore-labels-annotations] - Failed: Test ignore-labels-annotations failed with exit code 1 ======================== 1 failed in 386.99s (0:06:26) =========================