Log: /mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/e2e-tests/logs/allocator-8-4.log Warning: version difference between client (1.35) and server (1.32) exceeds the supported minor version skew of +/-1 Warning: version difference between client (1.35) and server (1.32) exceeds the supported minor version skew of +/-1 + cluster=some-name + create_infra allocator-16084 + local ns=allocator-16084 + '[' -n pxc-operator ']' + kubectl get pxc --all-namespaces -o wide + xargs -L 1 sh -xc 'kubectl patch pxc -n $0 $1 --type=merge -p "{\"metadata\":{\"finalizers\":[]}}"' + grep -v NAMESPACE + kubectl patch pxc -n allocator-20155 some-name --type=merge -p '{"metadata":{"finalizers":[]}}' perconaxtradbcluster.pxc.percona.com/some-name patched + kubectl_bin delete pxc --all --all-namespaces ++ mktemp + local LAST_OUT=/tmp/tmp.W2dfu3lGwQ ++ mktemp + local LAST_ERR=/tmp/tmp.Whw6nlTHgC + local exit_status=0 ++ seq 0 2 + for i in '$(seq 0 2)' + set +e + kubectl delete pxc --all --all-namespaces + exit_status=0 + set -e + '[' 0 '!=' 0 ']' + break + cat /tmp/tmp.W2dfu3lGwQ perconaxtradbcluster.pxc.percona.com "some-name" deleted from allocator-20155 namespace + cat /tmp/tmp.Whw6nlTHgC + rm /tmp/tmp.W2dfu3lGwQ /tmp/tmp.Whw6nlTHgC + return 0 + kubectl_bin delete pxc-backup --all --all-namespaces ++ mktemp + local LAST_OUT=/tmp/tmp.zeYbQk5P86 ++ mktemp + local LAST_ERR=/tmp/tmp.PWwvyHNuxP + local exit_status=0 ++ seq 0 2 + for i in '$(seq 0 2)' + set +e + kubectl delete pxc-backup --all --all-namespaces + exit_status=0 + set -e + '[' 0 '!=' 0 ']' + break + cat /tmp/tmp.zeYbQk5P86 No resources found + cat /tmp/tmp.PWwvyHNuxP + rm /tmp/tmp.zeYbQk5P86 /tmp/tmp.PWwvyHNuxP + return 0 + kubectl_bin delete pxc-restore --all --all-namespaces ++ mktemp + local LAST_OUT=/tmp/tmp.LAfoO2JnHY ++ mktemp + local LAST_ERR=/tmp/tmp.10BjUWFGLa + local exit_status=0 ++ seq 0 2 + for i in '$(seq 0 2)' + set +e + kubectl delete pxc-restore --all --all-namespaces + exit_status=0 + set -e + '[' 0 '!=' 0 ']' + break + cat /tmp/tmp.LAfoO2JnHY No resources found + cat /tmp/tmp.10BjUWFGLa + rm /tmp/tmp.LAfoO2JnHY /tmp/tmp.10BjUWFGLa + return 0 + create_namespace pxc-operator + local namespace=pxc-operator + local skip_clean_namespace= + [[ 1 == 1 ]] + [[ -z '' ]] + destroy_chaos_mesh ++ helm list --all-namespaces --filter chaos-mesh ++ sed s/NAMESPACE// ++ tail -n1 ++ awk '-F ' '{print $2}' + local chaos_mesh_ns= + '[' -n '' ']' ++ awk '{print $1}' ++ kubectl get MutatingWebhookConfiguration ++ grep chaos-mesh + timeout 30 kubectl delete MutatingWebhookConfiguration error: resource(s) were provided, but no name was specified + : ++ awk '{print $1}' ++ grep chaos-mesh ++ kubectl get ValidatingWebhookConfiguration + timeout 30 kubectl delete ValidatingWebhookConfiguration error: resource(s) were provided, but no name was specified + : ++ kubectl get ValidatingWebhookConfiguration ++ grep validate-auth ++ awk '{print $1}' + timeout 30 kubectl delete ValidatingWebhookConfiguration error: resource(s) were provided, but no name was specified + : ++ kubectl api-resources ++ awk '{print $1}' ++ grep chaos-mesh ++ kubectl get crd ++ grep chaos-mesh.org ++ awk '{print $1}' + timeout 30 kubectl delete crd error: resource(s) were provided, but no name was specified + : ++ kubectl get clusterrolebinding ++ awk '{print $1}' ++ grep chaos-mesh + timeout 30 kubectl delete clusterrolebinding error: resource(s) were provided, but no name was specified + : ++ 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 ----------------------------------------------------------------------------------- + grep -E -v '^kube-|^default|Terminating|pxc-operator|openshift|^gke-|^gmp-|^NAME' + awk '{print$1}' + '[' -n '' ']' + desc 'cleaned up old namespaces pxc-operator' + set +o xtrace ----------------------------------------------------------------------------------- cleaned up old namespaces pxc-operator ----------------------------------------------------------------------------------- + kubectl_bin delete namespace pxc-operator + kubectl_bin get ns + xargs kubectl delete ns ++ mktemp ++ mktemp + local LAST_OUT=/tmp/tmp.aRczlQBn6l + local LAST_OUT=/tmp/tmp.Pk8HrIVN0f ++ mktemp ++ mktemp + local LAST_ERR=/tmp/tmp.pgUkEYHBXk + local exit_status=0 ++ seq 0 2 + local LAST_ERR=/tmp/tmp.pUMwQBF5aV + local exit_status=0 + for i in '$(seq 0 2)' + set +e + kubectl get ns ++ seq 0 2 + for i in '$(seq 0 2)' + set +e + kubectl delete namespace pxc-operator + exit_status=0 + set -e + '[' 0 '!=' 0 ']' + break + cat /tmp/tmp.aRczlQBn6l + cat /tmp/tmp.pgUkEYHBXk + rm /tmp/tmp.aRczlQBn6l /tmp/tmp.pgUkEYHBXk + return 0 namespace "allocator-20155" deleted + exit_status=0 + set -e + '[' 0 '!=' 0 ']' + break + cat /tmp/tmp.Pk8HrIVN0f namespace "pxc-operator" deleted + cat /tmp/tmp.pUMwQBF5aV + rm /tmp/tmp.Pk8HrIVN0f /tmp/tmp.pUMwQBF5aV + return 0 + wait_for_delete namespace/pxc-operator + local res=namespace/pxc-operator + echo -n 'waiting for namespace/pxc-operator to be deleted' waiting for namespace/pxc-operator to be deleted+ set +o xtrace Error from server (NotFound): namespaces "pxc-operator" not found + desc 'create namespace pxc-operator' + set +o xtrace ----------------------------------------------------------------------------------- create namespace pxc-operator ----------------------------------------------------------------------------------- + kubectl_bin create namespace pxc-operator ++ mktemp + local LAST_OUT=/tmp/tmp.V6Wz8FF0c1 ++ mktemp + local LAST_ERR=/tmp/tmp.zFo0A6jxXt + local exit_status=0 ++ seq 0 2 + for i in '$(seq 0 2)' + set +e + kubectl create namespace pxc-operator + exit_status=0 + set -e + '[' 0 '!=' 0 ']' + break + cat /tmp/tmp.V6Wz8FF0c1 namespace/pxc-operator created + cat /tmp/tmp.zFo0A6jxXt + rm /tmp/tmp.V6Wz8FF0c1 /tmp/tmp.zFo0A6jxXt + return 0 ++ kubectl_bin config current-context +++ mktemp ++ local LAST_OUT=/tmp/tmp.etk4GyHd6y +++ mktemp ++ local LAST_ERR=/tmp/tmp.Y8ePQLrn7Q ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl config current-context ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.etk4GyHd6y ++ cat /tmp/tmp.Y8ePQLrn7Q ++ rm /tmp/tmp.etk4GyHd6y /tmp/tmp.Y8ePQLrn7Q ++ return 0 + kubectl_bin config set-context gke_cloud-dev-112233_us-central1-a_jen-pxc-2414-d346d577-10-cluster3 --namespace=pxc-operator ++ mktemp + local LAST_OUT=/tmp/tmp.TFWSyKK99R ++ mktemp + local LAST_ERR=/tmp/tmp.Y9azdtbFze + local exit_status=0 ++ seq 0 2 + for i in '$(seq 0 2)' + set +e + kubectl config set-context gke_cloud-dev-112233_us-central1-a_jen-pxc-2414-d346d577-10-cluster3 --namespace=pxc-operator + exit_status=0 + set -e + '[' 0 '!=' 0 ']' + break + cat /tmp/tmp.TFWSyKK99R Context "gke_cloud-dev-112233_us-central1-a_jen-pxc-2414-d346d577-10-cluster3" modified. + cat /tmp/tmp.Y9azdtbFze + rm /tmp/tmp.TFWSyKK99R /tmp/tmp.Y9azdtbFze + return 0 + deploy_operator + desc 'start PXC operator' + set +o xtrace ----------------------------------------------------------------------------------- start PXC operator ----------------------------------------------------------------------------------- + kubectl_bin apply --server-side --force-conflicts -f /mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/deploy/crd.yaml ++ mktemp + local LAST_OUT=/tmp/tmp.TuGXnSsne6 ++ mktemp + local LAST_ERR=/tmp/tmp.ATH65diMgm + local exit_status=0 ++ seq 0 2 + for i in '$(seq 0 2)' + set +e + kubectl apply --server-side --force-conflicts -f /mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/deploy/crd.yaml + exit_status=0 + set -e + '[' 0 '!=' 0 ']' + break + cat /tmp/tmp.TuGXnSsne6 customresourcedefinition.apiextensions.k8s.io/perconaxtradbclusterbackups.pxc.percona.com serverside-applied customresourcedefinition.apiextensions.k8s.io/perconaxtradbclusterrestores.pxc.percona.com serverside-applied customresourcedefinition.apiextensions.k8s.io/perconaxtradbclusters.pxc.percona.com serverside-applied + cat /tmp/tmp.ATH65diMgm + rm /tmp/tmp.TuGXnSsne6 /tmp/tmp.ATH65diMgm + return 0 + '[' -n pxc-operator ']' + apply_rbac cw-rbac + local operator_namespace=pxc-operator + local rbac=cw-rbac + cat /mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/deploy/cw-rbac.yaml + sed -e 's^namespace: .*^namespace: pxc-operator^' + kubectl_bin apply -f - ++ mktemp + local LAST_OUT=/tmp/tmp.ICvrcAGVcS ++ mktemp + local LAST_ERR=/tmp/tmp.EKbIdQWJJr + local exit_status=0 ++ seq 0 2 + for i in '$(seq 0 2)' + set +e + kubectl apply -f - + exit_status=0 + set -e + '[' 0 '!=' 0 ']' + break + cat /tmp/tmp.ICvrcAGVcS clusterrole.rbac.authorization.k8s.io/percona-xtradb-cluster-operator unchanged serviceaccount/percona-xtradb-cluster-operator created clusterrolebinding.rbac.authorization.k8s.io/service-account-percona-xtradb-cluster-operator unchanged + cat /tmp/tmp.EKbIdQWJJr + rm /tmp/tmp.ICvrcAGVcS /tmp/tmp.EKbIdQWJJr + return 0 + sed -e 's^image: .*^image: perconalab/percona-xtradb-cluster-operator:PR-2414-d346d577^' + kubectl_bin apply -f - ++ mktemp + local LAST_OUT=/tmp/tmp.YV2QjVJRoU + yq eval '(select(.kind == "Deployment").spec.template.spec.containers[] | select(.name == "percona-xtradb-cluster-operator").env[] | select(.name == "LOG_LEVEL").value) = "VERBOSE"' - + yq eval '(select(.kind == "Deployment").spec.template.spec.containers[] | select(.name == "percona-xtradb-cluster-operator").env[] | select(.name == "PXCO_FEATURE_GATES").value) = ""' - + sed -e 's^failureThreshold: .*^failureThreshold: 10^' ++ mktemp + yq eval '(select(.kind == "Deployment").spec.template.spec.containers[] | select(.name == "percona-xtradb-cluster-operator").env[] | select(.name == "DISABLE_TELEMETRY").value) = "true"' - + local LAST_ERR=/tmp/tmp.NGtgfCvZ0j + local exit_status=0 + cat /mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/deploy/cw-operator.yaml ++ seq 0 2 + for i in '$(seq 0 2)' + set +e + kubectl apply -f - + exit_status=0 + set -e + '[' 0 '!=' 0 ']' + break + cat /tmp/tmp.YV2QjVJRoU deployment.apps/percona-xtradb-cluster-operator created service/percona-xtradb-cluster-operator created + cat /tmp/tmp.NGtgfCvZ0j + rm /tmp/tmp.YV2QjVJRoU /tmp/tmp.NGtgfCvZ0j + return 0 + sleep 10 + kubectl_bin wait --for=condition=Ready pods -l app.kubernetes.io/component=operator,app.kubernetes.io/instance=percona-xtradb-cluster-operator,app.kubernetes.io/name=percona-xtradb-cluster-operator --timeout=30s ++ mktemp + local LAST_OUT=/tmp/tmp.k376IhKQZO ++ mktemp + local LAST_ERR=/tmp/tmp.uFVJB40f5I + local exit_status=0 ++ seq 0 2 + for i in '$(seq 0 2)' + set +e + kubectl wait --for=condition=Ready pods -l app.kubernetes.io/component=operator,app.kubernetes.io/instance=percona-xtradb-cluster-operator,app.kubernetes.io/name=percona-xtradb-cluster-operator --timeout=30s + exit_status=0 + set -e + '[' 0 '!=' 0 ']' + break + cat /tmp/tmp.k376IhKQZO pod/percona-xtradb-cluster-operator-59d5c8749-frnrh condition met + cat /tmp/tmp.uFVJB40f5I + rm /tmp/tmp.k376IhKQZO /tmp/tmp.uFVJB40f5I + return 0 ++ get_operator_pod ++ local label_prefix=app.kubernetes.io/ +++ kubectl get pods --selector=app.kubernetes.io/name=percona-xtradb-cluster-operator -n pxc-operator +++ grep -c percona-xtradb-cluster-operator ++ local check_label=1 ++ [[ 1 -eq 0 ]] ++ kubectl_bin get pods --selector=app.kubernetes.io/name=percona-xtradb-cluster-operator --field-selector=status.phase=Running -o json -n pxc-operator ++ head -1 +++ mktemp ++ jq -r '.items[] | select(.metadata.deletionTimestamp == null) | .metadata.name' ++ local LAST_OUT=/tmp/tmp.utmjCGrlzM +++ mktemp ++ local LAST_ERR=/tmp/tmp.KTYRhFraeN ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pods --selector=app.kubernetes.io/name=percona-xtradb-cluster-operator --field-selector=status.phase=Running -o json -n pxc-operator ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.utmjCGrlzM ++ cat /tmp/tmp.KTYRhFraeN ++ rm /tmp/tmp.utmjCGrlzM /tmp/tmp.KTYRhFraeN ++ return 0 + wait_pod percona-xtradb-cluster-operator-59d5c8749-frnrh 480 pxc-operator + local pod=percona-xtradb-cluster-operator-59d5c8749-frnrh + local max_retry=480 + local ns=pxc-operator ++ /usr/bin/sed -E 's/.*-(pxc|proxysql)-[0-9]/\1/' ++ grep -E '^(pxc|proxysql)$' ++ echo percona-xtradb-cluster-operator-59d5c8749-frnrh + local container= + set +o xtrace pod/percona-xtradb-cluster-operator-59d5c8749-frnrh condition met waiting for pod/percona-xtradb-cluster-operator-59d5c8749-frnrh to become Ready.Ok + sleep 3 + create_namespace allocator-16084 + local namespace=allocator-16084 + local skip_clean_namespace= + [[ 1 == 1 ]] + [[ -z '' ]] + destroy_chaos_mesh ++ awk '-F ' '{print $2}' ++ tail -n1 ++ helm list --all-namespaces --filter chaos-mesh ++ sed s/NAMESPACE// + local chaos_mesh_ns= + '[' -n '' ']' ++ grep chaos-mesh ++ kubectl get MutatingWebhookConfiguration ++ awk '{print $1}' + timeout 30 kubectl delete MutatingWebhookConfiguration error: resource(s) were provided, but no name was specified + : ++ grep chaos-mesh ++ awk '{print $1}' ++ kubectl get ValidatingWebhookConfiguration + timeout 30 kubectl delete ValidatingWebhookConfiguration error: resource(s) were provided, but no name was specified + : ++ grep validate-auth ++ awk '{print $1}' ++ kubectl get ValidatingWebhookConfiguration + timeout 30 kubectl delete ValidatingWebhookConfiguration error: resource(s) were provided, but no name was specified + : ++ grep chaos-mesh ++ kubectl api-resources ++ awk '{print $1}' ++ grep chaos-mesh.org ++ kubectl get crd ++ awk '{print $1}' + timeout 30 kubectl delete crd error: resource(s) were provided, but no name was specified + : ++ kubectl get clusterrolebinding ++ awk '{print $1}' ++ grep chaos-mesh + timeout 30 kubectl delete clusterrolebinding error: resource(s) were provided, but no name was specified + : ++ kubectl get clusterrole ++ grep chaos-mesh ++ awk '{print $1}' + timeout 30 kubectl delete clusterrole error: resource(s) were provided, but no name was specified + : + desc 'cleaned up all old namespaces' + set +o xtrace ----------------------------------------------------------------------------------- cleaned up all old namespaces ----------------------------------------------------------------------------------- + '[' -n '' ']' + desc 'cleaned up old namespaces allocator-16084' + set +o xtrace + grep -E -v '^kube-|^default|Terminating|pxc-operator|openshift|^gke-|^gmp-|^NAME' ----------------------------------------------------------------------------------- cleaned up old namespaces allocator-16084 ----------------------------------------------------------------------------------- + kubectl_bin delete namespace allocator-16084 ++ mktemp + local LAST_OUT=/tmp/tmp.ip2GTIQTm0 + xargs kubectl delete ns ++ mktemp + local LAST_ERR=/tmp/tmp.YZczMIPyG3 + local exit_status=0 ++ seq 0 2 + awk '{print$1}' + for i in '$(seq 0 2)' + set +e + kubectl delete namespace allocator-16084 + kubectl_bin get ns ++ mktemp + local LAST_OUT=/tmp/tmp.vIB8gWb7ix ++ mktemp + local LAST_ERR=/tmp/tmp.FxiMOp1DWg + local exit_status=0 ++ seq 0 2 + for i in '$(seq 0 2)' + set +e + kubectl get ns + exit_status=1 + set -e + '[' 1 '!=' 0 ']' + '[' 1 == 1 ']' + sleep 0 + for i in '$(seq 0 2)' + set +e + kubectl delete namespace allocator-16084 + exit_status=0 + set -e + '[' 0 '!=' 0 ']' + break + cat /tmp/tmp.vIB8gWb7ix + cat /tmp/tmp.FxiMOp1DWg + rm /tmp/tmp.vIB8gWb7ix /tmp/tmp.FxiMOp1DWg + return 0 error: resource(s) were provided, but no name was specified + exit_status=1 + set -e + '[' 1 '!=' 0 ']' + '[' 1 == 1 ']' + sleep 0 + for i in '$(seq 0 2)' + set +e + kubectl delete namespace allocator-16084 + exit_status=1 + set -e + '[' 1 '!=' 0 ']' + '[' 1 == 1 ']' + sleep 0 + cat /tmp/tmp.ip2GTIQTm0 + cat /tmp/tmp.YZczMIPyG3 Error from server (NotFound): namespaces "allocator-16084" not found + rm /tmp/tmp.ip2GTIQTm0 /tmp/tmp.YZczMIPyG3 + return 1 + : + wait_for_delete namespace/allocator-16084 + local res=namespace/allocator-16084 + echo -n 'waiting for namespace/allocator-16084 to be deleted' waiting for namespace/allocator-16084 to be deleted+ set +o xtrace Error from server (NotFound): namespaces "allocator-16084" not found + desc 'create namespace allocator-16084' + set +o xtrace ----------------------------------------------------------------------------------- create namespace allocator-16084 ----------------------------------------------------------------------------------- + kubectl_bin create namespace allocator-16084 ++ mktemp + local LAST_OUT=/tmp/tmp.cg2cvQ95BJ ++ mktemp + local LAST_ERR=/tmp/tmp.3SzrXdp7cd + local exit_status=0 ++ seq 0 2 + for i in '$(seq 0 2)' + set +e + kubectl create namespace allocator-16084 + exit_status=0 + set -e + '[' 0 '!=' 0 ']' + break + cat /tmp/tmp.cg2cvQ95BJ namespace/allocator-16084 created + cat /tmp/tmp.3SzrXdp7cd + rm /tmp/tmp.cg2cvQ95BJ /tmp/tmp.3SzrXdp7cd + return 0 ++ kubectl_bin config current-context +++ mktemp ++ local LAST_OUT=/tmp/tmp.kH6tAmmoyC +++ mktemp ++ local LAST_ERR=/tmp/tmp.osRIL8CwHt ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl config current-context ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.kH6tAmmoyC ++ cat /tmp/tmp.osRIL8CwHt ++ rm /tmp/tmp.kH6tAmmoyC /tmp/tmp.osRIL8CwHt ++ return 0 + kubectl_bin config set-context gke_cloud-dev-112233_us-central1-a_jen-pxc-2414-d346d577-10-cluster3 --namespace=allocator-16084 ++ mktemp + local LAST_OUT=/tmp/tmp.RfrNN38wsp ++ mktemp + local LAST_ERR=/tmp/tmp.Fyu5KUEL1h + local exit_status=0 ++ seq 0 2 + for i in '$(seq 0 2)' + set +e + kubectl config set-context gke_cloud-dev-112233_us-central1-a_jen-pxc-2414-d346d577-10-cluster3 --namespace=allocator-16084 + exit_status=0 + set -e + '[' 0 '!=' 0 ']' + break + cat /tmp/tmp.RfrNN38wsp Context "gke_cloud-dev-112233_us-central1-a_jen-pxc-2414-d346d577-10-cluster3" modified. + cat /tmp/tmp.Fyu5KUEL1h + rm /tmp/tmp.RfrNN38wsp /tmp/tmp.Fyu5KUEL1h + return 0 + apply_secrets + desc 'create secrets for cloud storages' + set +o xtrace ----------------------------------------------------------------------------------- create secrets for cloud storages ----------------------------------------------------------------------------------- + '[' -z '' ']' + kubectl_bin apply -f /mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/e2e-tests/conf/minio-secret.yml -f /mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/e2e-tests/conf/cloud-secret.yml ++ mktemp + local LAST_OUT=/tmp/tmp.JiEKlZAhKz ++ mktemp + local LAST_ERR=/tmp/tmp.l3nJS4GJDQ + local exit_status=0 ++ seq 0 2 + for i in '$(seq 0 2)' + set +e + kubectl apply -f /mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/e2e-tests/conf/minio-secret.yml -f /mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/e2e-tests/conf/cloud-secret.yml + exit_status=0 + set -e + '[' 0 '!=' 0 ']' + break + cat /tmp/tmp.JiEKlZAhKz secret/minio-secret created secret/aws-s3-secret created secret/do-spaces-secret created secret/gcp-cs-secret created secret/azure-secret created + cat /tmp/tmp.l3nJS4GJDQ + rm /tmp/tmp.JiEKlZAhKz /tmp/tmp.l3nJS4GJDQ + return 0 + desc 'create PXC cluster: some-name' + set +o xtrace ----------------------------------------------------------------------------------- create PXC cluster: some-name ----------------------------------------------------------------------------------- + spinup_pxc some-name /mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/e2e-tests/allocator/conf/some-name.yml + local cluster=some-name + local config=/mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/e2e-tests/allocator/conf/some-name.yml + local size=3 + local sleep=10 + local secretsFile=/mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/e2e-tests/conf/secrets.yml + local pxcClientFile=/mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/e2e-tests/conf/client.yml + local port=3306 + desc 'create first PXC cluster' + set +o xtrace ----------------------------------------------------------------------------------- create first PXC cluster ----------------------------------------------------------------------------------- + kubectl_bin apply -f /mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/e2e-tests/conf/secrets.yml ++ mktemp + local LAST_OUT=/tmp/tmp.9B9wUCXFHE ++ mktemp + local LAST_ERR=/tmp/tmp.WPu8WirJeu + local exit_status=0 ++ seq 0 2 + for i in '$(seq 0 2)' + set +e + kubectl apply -f /mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/e2e-tests/conf/secrets.yml + exit_status=0 + set -e + '[' 0 '!=' 0 ']' + break + cat /tmp/tmp.9B9wUCXFHE secret/my-cluster-secrets created secret/some-name-ssl created secret/some-name-ssl-internal created + cat /tmp/tmp.WPu8WirJeu + rm /tmp/tmp.9B9wUCXFHE /tmp/tmp.WPu8WirJeu + return 0 + apply_config /mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/e2e-tests/conf/client.yml + local config_file=/mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/e2e-tests/conf/client.yml + local pvc_name= + '[' -z '' ']' + cat_config /mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/e2e-tests/conf/client.yml '' + local input_file=/mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/e2e-tests/conf/client.yml + local pvc_name= + kubectl_bin apply -f - ++ mktemp + /usr/bin/sed -e 's#apiVersion: pxc.percona.com/v.*$#apiVersion: pxc.percona.com/v1#' + cat /mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/e2e-tests/conf/client.yml + local LAST_OUT=/tmp/tmp.d0FOcE5Fk8 + /usr/bin/sed -e 's#image:.*-init$#image: perconalab/percona-xtradb-cluster-operator:PR-2414-d346d577#' + /usr/bin/sed -e 's#image:.*-proxysql$#image: perconalab/percona-xtradb-cluster-operator:main-proxysql#' + /usr/bin/sed -e 's#image:.*-pmm$#image: perconalab/pmm-client:dev-latest#' + /usr/bin/sed -e 's#image:.*-haproxy$#image: perconalab/percona-xtradb-cluster-operator:main-haproxy#' + /usr/bin/sed -e 's#image:.*-backup$#image: perconalab/percona-xtradb-cluster-operator:main-pxc8.4-backup#' + /usr/bin/sed -e 's#image:.*\/percona-xtradb-cluster:.*$#image: perconalab/percona-xtradb-cluster-operator:main-pxc8.4#' + /usr/bin/sed -e 's#image:.*-logcollector$#image: perconalab/fluentbit:main-logcollector#' + /usr/bin/sed -e s~minio-service.#namespace~minio-service.allocator-16084~ + /usr/bin/sed -e 's#apply:.*#apply: Never#' + /usr/bin/sed -e 's#claimName:..*-backup-pvc$#claimName: #' ++ mktemp + /usr/bin/sed -e 's#image:.*-pxc\([0-9]*.[0-9]*\)\{0,1\}$#image: perconalab/percona-xtradb-cluster-operator:main-pxc8.4#' + local LAST_ERR=/tmp/tmp.VCNKPqGGPn + local exit_status=0 ++ seq 0 2 + for i in '$(seq 0 2)' + set +e + kubectl apply -f - + exit_status=0 + set -e + '[' 0 '!=' 0 ']' + break + cat /tmp/tmp.d0FOcE5Fk8 deployment.apps/pxc-client created + cat /tmp/tmp.VCNKPqGGPn + rm /tmp/tmp.d0FOcE5Fk8 /tmp/tmp.VCNKPqGGPn + return 0 + [[ perconalab/percona-xtradb-cluster-operator:main-pxc8.4 =~ 5\.7 ]] + apply_config /mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/e2e-tests/allocator/conf/some-name.yml + local config_file=/mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/e2e-tests/allocator/conf/some-name.yml + local pvc_name= + '[' -z '' ']' + cat_config /mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/e2e-tests/allocator/conf/some-name.yml '' + local input_file=/mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/e2e-tests/allocator/conf/some-name.yml + kubectl_bin apply -f - + local pvc_name= + cat /mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/e2e-tests/allocator/conf/some-name.yml ++ mktemp + /usr/bin/sed -e 's#image:.*-backup$#image: perconalab/percona-xtradb-cluster-operator:main-pxc8.4-backup#' + local LAST_OUT=/tmp/tmp.pDgVEZdgAL + /usr/bin/sed -e 's#image:.*\/percona-xtradb-cluster:.*$#image: perconalab/percona-xtradb-cluster-operator:main-pxc8.4#' + /usr/bin/sed -e 's#apply:.*#apply: Never#' + /usr/bin/sed -e 's#image:.*-proxysql$#image: perconalab/percona-xtradb-cluster-operator:main-proxysql#' + /usr/bin/sed -e s~minio-service.#namespace~minio-service.allocator-16084~ + /usr/bin/sed -e 's#image:.*-logcollector$#image: perconalab/fluentbit:main-logcollector#' + /usr/bin/sed -e 's#image:.*-init$#image: perconalab/percona-xtradb-cluster-operator:PR-2414-d346d577#' + /usr/bin/sed -e 's#image:.*-pmm$#image: perconalab/pmm-client:dev-latest#' + /usr/bin/sed -e 's#claimName:..*-backup-pvc$#claimName: #' + /usr/bin/sed -e 's#image:.*-haproxy$#image: perconalab/percona-xtradb-cluster-operator:main-haproxy#' ++ mktemp + /usr/bin/sed -e 's#image:.*-pxc\([0-9]*.[0-9]*\)\{0,1\}$#image: perconalab/percona-xtradb-cluster-operator:main-pxc8.4#' + /usr/bin/sed -e 's#apiVersion: pxc.percona.com/v.*$#apiVersion: pxc.percona.com/v1#' + local LAST_ERR=/tmp/tmp.Af4HKqUuyF + local exit_status=0 ++ seq 0 2 + for i in '$(seq 0 2)' + set +e + kubectl apply -f - + exit_status=0 + set -e + '[' 0 '!=' 0 ']' + break + cat /tmp/tmp.pDgVEZdgAL perconaxtradbcluster.pxc.percona.com/some-name created + cat /tmp/tmp.Af4HKqUuyF + rm /tmp/tmp.pDgVEZdgAL /tmp/tmp.Af4HKqUuyF + return 0 + desc 'check if all 3 Pods started' + set +o xtrace ----------------------------------------------------------------------------------- check if all 3 Pods started ----------------------------------------------------------------------------------- ++ get_proxy some-name ++ local target_cluster=some-name +++ kubectl_bin get pxc some-name -o 'jsonpath={.spec.haproxy.enabled}' ++++ mktemp +++ local LAST_OUT=/tmp/tmp.P1Jnwej7Ux ++++ mktemp +++ local LAST_ERR=/tmp/tmp.tX1S8VyNGz +++ local exit_status=0 ++++ seq 0 2 +++ for i in '$(seq 0 2)' +++ set +e +++ kubectl get pxc some-name -o 'jsonpath={.spec.haproxy.enabled}' +++ exit_status=0 +++ set -e +++ '[' 0 '!=' 0 ']' +++ break +++ cat /tmp/tmp.P1Jnwej7Ux +++ cat /tmp/tmp.tX1S8VyNGz +++ rm /tmp/tmp.P1Jnwej7Ux /tmp/tmp.tX1S8VyNGz +++ return 0 ++ [[ true == \t\r\u\e ]] ++ echo some-name-haproxy ++ return + local proxy=some-name-haproxy + kubectl_bin wait --for=condition=Ready pod -l app.kubernetes.io/instance=monitoring,app.kubernetes.io/managed-by=percona-xtradb-cluster-operator --timeout=300s -n allocator-16084 ++ mktemp + local LAST_OUT=/tmp/tmp.2a7GH2xfMR ++ mktemp + local LAST_ERR=/tmp/tmp.9O6A9eTcz5 + local exit_status=0 ++ seq 0 2 + for i in '$(seq 0 2)' + set +e + kubectl wait --for=condition=Ready pod -l app.kubernetes.io/instance=monitoring,app.kubernetes.io/managed-by=percona-xtradb-cluster-operator --timeout=300s -n allocator-16084 + exit_status=1 + set -e + '[' 1 '!=' 0 ']' + '[' 1 == 1 ']' + sleep 0 + for i in '$(seq 0 2)' + set +e + kubectl wait --for=condition=Ready pod -l app.kubernetes.io/instance=monitoring,app.kubernetes.io/managed-by=percona-xtradb-cluster-operator --timeout=300s -n allocator-16084 + exit_status=1 + set -e + '[' 1 '!=' 0 ']' + '[' 1 == 1 ']' + sleep 0 + for i in '$(seq 0 2)' + set +e + kubectl wait --for=condition=Ready pod -l app.kubernetes.io/instance=monitoring,app.kubernetes.io/managed-by=percona-xtradb-cluster-operator --timeout=300s -n allocator-16084 + exit_status=1 + set -e + '[' 1 '!=' 0 ']' + '[' 1 == 1 ']' + sleep 0 + cat /tmp/tmp.2a7GH2xfMR + cat /tmp/tmp.9O6A9eTcz5 error: no matching resources found + rm /tmp/tmp.2a7GH2xfMR /tmp/tmp.9O6A9eTcz5 + return 1 + true + wait_for_running some-name-haproxy 1 + local name=some-name-haproxy + let last_pod=0 + : + local max_retry=480 + desc 'wait for running cluster' + set +o xtrace ----------------------------------------------------------------------------------- wait for running cluster ----------------------------------------------------------------------------------- ++ seq 0 0 + for i in '$(seq 0 $last_pod)' + wait_pod some-name-haproxy-0 480 + local pod=some-name-haproxy-0 + local max_retry=480 + local ns= ++ echo some-name-haproxy-0 ++ /usr/bin/sed -E 's/.*-(pxc|proxysql)-[0-9]/\1/' ++ grep -E '^(pxc|proxysql)$' + local container= + set +o xtrace pod/some-name-haproxy-0 condition met waiting for pod/some-name-haproxy-0 to become Ready.Ok + wait_for_running some-name-pxc 3 + local name=some-name-pxc + let last_pod=2 + local max_retry=480 + desc 'wait for running cluster' + set +o xtrace ----------------------------------------------------------------------------------- wait for running cluster ----------------------------------------------------------------------------------- ++ seq 0 2 + for i in '$(seq 0 $last_pod)' + wait_pod some-name-pxc-0 480 + local pod=some-name-pxc-0 + local max_retry=480 + local ns= ++ echo some-name-pxc-0 ++ /usr/bin/sed -E 's/.*-(pxc|proxysql)-[0-9]/\1/' ++ grep -E '^(pxc|proxysql)$' + local container=pxc + set +o xtrace pod/some-name-pxc-0 condition met waiting for pod/some-name-pxc-0 to become Ready.Ok + for i in '$(seq 0 $last_pod)' + wait_pod some-name-pxc-1 480 + local pod=some-name-pxc-1 + local max_retry=480 + local ns= ++ /usr/bin/sed -E 's/.*-(pxc|proxysql)-[0-9]/\1/' ++ echo some-name-pxc-1 ++ grep -E '^(pxc|proxysql)$' + local container=pxc + set +o xtrace pod/some-name-pxc-1 condition met waiting for pod/some-name-pxc-1 to become Ready.Ok + for i in '$(seq 0 $last_pod)' + wait_pod some-name-pxc-2 480 + local pod=some-name-pxc-2 + local max_retry=480 + local ns= ++ echo some-name-pxc-2 ++ /usr/bin/sed -E 's/.*-(pxc|proxysql)-[0-9]/\1/' ++ grep -E '^(pxc|proxysql)$' + local container=pxc + set +o xtrace pod/some-name-pxc-2 condition met waiting for pod/some-name-pxc-2 to become Ready.Ok + sleep 10 ++ kubectl get pxc some-name -o 'jsonpath={.spec.secretsName}' + local secret_name=my-cluster-secrets ++ getSecretData my-cluster-secrets root ++ local secretName=my-cluster-secrets ++ local dataKey=root ++ kubectl_bin get secrets/my-cluster-secrets '--template={{.data.root}}' ++ base64 --decode +++ mktemp ++ local LAST_OUT=/tmp/tmp.XYJEOtKZ27 +++ mktemp ++ local LAST_ERR=/tmp/tmp.OfQtar417u ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get secrets/my-cluster-secrets '--template={{.data.root}}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.XYJEOtKZ27 ++ cat /tmp/tmp.OfQtar417u ++ rm /tmp/tmp.XYJEOtKZ27 /tmp/tmp.OfQtar417u ++ return 0 + local root_pass=root_password + desc 'write data' + set +o xtrace ----------------------------------------------------------------------------------- write data ----------------------------------------------------------------------------------- + [[ perconalab/percona-xtradb-cluster-operator:main-pxc8.4 =~ 5\.7 ]] + run_mysql 'CREATE DATABASE IF NOT EXISTS myApp; use myApp; CREATE TABLE IF NOT EXISTS myApp (id int PRIMARY KEY) ;' '-h some-name-haproxy -uroot -p'\''root_password'\'' -P3306' + local 'command=CREATE DATABASE IF NOT EXISTS myApp; use myApp; CREATE TABLE IF NOT EXISTS myApp (id int PRIMARY KEY) ;' + local 'uri=-h some-name-haproxy -uroot -p'\''root_password'\'' -P3306' ++ get_client_pod ++ kubectl_bin get pods --selector=name=pxc-client -o 'jsonpath={.items[].metadata.name}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.FNkWz1I1CV +++ mktemp ++ local LAST_ERR=/tmp/tmp.KBywOC5HFP ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pods --selector=name=pxc-client -o 'jsonpath={.items[].metadata.name}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.FNkWz1I1CV ++ cat /tmp/tmp.KBywOC5HFP ++ rm /tmp/tmp.FNkWz1I1CV /tmp/tmp.KBywOC5HFP ++ return 0 + client_pod=pxc-client-56fd5498cd-5hrm9 + wait_pod pxc-client-56fd5498cd-5hrm9 + local pod=pxc-client-56fd5498cd-5hrm9 + local max_retry=480 + local ns= ++ echo pxc-client-56fd5498cd-5hrm9 ++ /usr/bin/sed -E 's/.*-(pxc|proxysql)-[0-9]/\1/' ++ grep -E '^(pxc|proxysql)$' + local container= + set +o xtrace pod/pxc-client-56fd5498cd-5hrm9 condition met waiting for pod/pxc-client-56fd5498cd-5hrm9 to become ReadyDefaulted container "pxc-client" out of: pxc-client, backup .Ok + set +o xtrace + run_mysql 'INSERT myApp.myApp (id) VALUES (100500)' '-h some-name-haproxy -uroot -p'\''root_password'\'' -P3306' + local 'command=INSERT myApp.myApp (id) VALUES (100500)' + local 'uri=-h some-name-haproxy -uroot -p'\''root_password'\'' -P3306' ++ get_client_pod ++ kubectl_bin get pods --selector=name=pxc-client -o 'jsonpath={.items[].metadata.name}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.sr64a73uAf +++ mktemp ++ local LAST_ERR=/tmp/tmp.S3gMstpiQK ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pods --selector=name=pxc-client -o 'jsonpath={.items[].metadata.name}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.sr64a73uAf ++ cat /tmp/tmp.S3gMstpiQK ++ rm /tmp/tmp.sr64a73uAf /tmp/tmp.S3gMstpiQK ++ return 0 + client_pod=pxc-client-56fd5498cd-5hrm9 + wait_pod pxc-client-56fd5498cd-5hrm9 + local pod=pxc-client-56fd5498cd-5hrm9 + local max_retry=480 + local ns= ++ echo pxc-client-56fd5498cd-5hrm9 ++ /usr/bin/sed -E 's/.*-(pxc|proxysql)-[0-9]/\1/' ++ grep -E '^(pxc|proxysql)$' + local container= + set +o xtrace pod/pxc-client-56fd5498cd-5hrm9 condition met waiting for pod/pxc-client-56fd5498cd-5hrm9 to become ReadyDefaulted container "pxc-client" out of: pxc-client, backup .Ok + set +o xtrace + sleep 30 ++ seq 0 2 + for i in '$(seq 0 $((size - 1)))' + compare_mysql_cmd select-1 'SELECT * from myApp.myApp;' '-h some-name-pxc-0.some-name-pxc -uroot -p'\''root_password'\'' -P3306' + local command_id=select-1 + local 'command=SELECT * from myApp.myApp;' + local 'uri=-h some-name-pxc-0.some-name-pxc -uroot -p'\''root_password'\'' -P3306' + local postfix= + local expected_result=/mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/e2e-tests/allocator/compare/select-1.sql + [[ perconalab/percona-xtradb-cluster-operator:main-pxc8.4 =~ 8\.4 ]] + [[ -f /mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/e2e-tests/allocator/compare/select-1-84.sql ]] + [[ perconalab/percona-xtradb-cluster-operator:main-pxc8.4 =~ 8\.0 ]] + [[ perconalab/percona-xtradb-cluster-operator:main-pxc8.4 =~ 5\.7 ]] + run_mysql 'SELECT * from myApp.myApp;' '-h some-name-pxc-0.some-name-pxc -uroot -p'\''root_password'\'' -P3306' + local 'command=SELECT * from myApp.myApp;' + local 'uri=-h some-name-pxc-0.some-name-pxc -uroot -p'\''root_password'\'' -P3306' ++ get_client_pod ++ kubectl_bin get pods --selector=name=pxc-client -o 'jsonpath={.items[].metadata.name}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.E0biJUv6nS +++ mktemp ++ local LAST_ERR=/tmp/tmp.VX9UdxzdZK ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pods --selector=name=pxc-client -o 'jsonpath={.items[].metadata.name}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.E0biJUv6nS ++ cat /tmp/tmp.VX9UdxzdZK ++ rm /tmp/tmp.E0biJUv6nS /tmp/tmp.VX9UdxzdZK ++ return 0 + client_pod=pxc-client-56fd5498cd-5hrm9 + wait_pod pxc-client-56fd5498cd-5hrm9 + local pod=pxc-client-56fd5498cd-5hrm9 + local max_retry=480 + local ns= ++ echo pxc-client-56fd5498cd-5hrm9 ++ /usr/bin/sed -E 's/.*-(pxc|proxysql)-[0-9]/\1/' ++ grep -E '^(pxc|proxysql)$' + local container= + set +o xtrace pod/pxc-client-56fd5498cd-5hrm9 condition met waiting for pod/pxc-client-56fd5498cd-5hrm9 to become ReadyDefaulted container "pxc-client" out of: pxc-client, backup .Ok + set +o xtrace + [[ ! -s /tmp/tmp.NlCOYjiQyL/select-1.sql ]] ++ grep 'Unknown MySQL server host' /tmp/tmp.NlCOYjiQyL/select-1.sql + [[ -n '' ]] + [[ 0 -eq 0 ]] + diff -u /mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/e2e-tests/allocator/compare/select-1.sql /tmp/tmp.NlCOYjiQyL/select-1.sql + for i in '$(seq 0 $((size - 1)))' + compare_mysql_cmd select-1 'SELECT * from myApp.myApp;' '-h some-name-pxc-1.some-name-pxc -uroot -p'\''root_password'\'' -P3306' + local command_id=select-1 + local 'command=SELECT * from myApp.myApp;' + local 'uri=-h some-name-pxc-1.some-name-pxc -uroot -p'\''root_password'\'' -P3306' + local postfix= + local expected_result=/mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/e2e-tests/allocator/compare/select-1.sql + [[ perconalab/percona-xtradb-cluster-operator:main-pxc8.4 =~ 8\.4 ]] + [[ -f /mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/e2e-tests/allocator/compare/select-1-84.sql ]] + [[ perconalab/percona-xtradb-cluster-operator:main-pxc8.4 =~ 8\.0 ]] + [[ perconalab/percona-xtradb-cluster-operator:main-pxc8.4 =~ 5\.7 ]] + run_mysql 'SELECT * from myApp.myApp;' '-h some-name-pxc-1.some-name-pxc -uroot -p'\''root_password'\'' -P3306' + local 'command=SELECT * from myApp.myApp;' + local 'uri=-h some-name-pxc-1.some-name-pxc -uroot -p'\''root_password'\'' -P3306' ++ get_client_pod ++ kubectl_bin get pods --selector=name=pxc-client -o 'jsonpath={.items[].metadata.name}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.S0CygJ2ra0 +++ mktemp ++ local LAST_ERR=/tmp/tmp.JqzmJpnqPG ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pods --selector=name=pxc-client -o 'jsonpath={.items[].metadata.name}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.S0CygJ2ra0 ++ cat /tmp/tmp.JqzmJpnqPG ++ rm /tmp/tmp.S0CygJ2ra0 /tmp/tmp.JqzmJpnqPG ++ return 0 + client_pod=pxc-client-56fd5498cd-5hrm9 + wait_pod pxc-client-56fd5498cd-5hrm9 + local pod=pxc-client-56fd5498cd-5hrm9 + local max_retry=480 + local ns= ++ echo pxc-client-56fd5498cd-5hrm9 ++ /usr/bin/sed -E 's/.*-(pxc|proxysql)-[0-9]/\1/' ++ grep -E '^(pxc|proxysql)$' + local container= + set +o xtrace pod/pxc-client-56fd5498cd-5hrm9 condition met waiting for pod/pxc-client-56fd5498cd-5hrm9 to become ReadyDefaulted container "pxc-client" out of: pxc-client, backup .Ok + set +o xtrace + [[ ! -s /tmp/tmp.NlCOYjiQyL/select-1.sql ]] ++ grep 'Unknown MySQL server host' /tmp/tmp.NlCOYjiQyL/select-1.sql + [[ -n '' ]] + [[ 0 -eq 0 ]] + diff -u /mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/e2e-tests/allocator/compare/select-1.sql /tmp/tmp.NlCOYjiQyL/select-1.sql + for i in '$(seq 0 $((size - 1)))' + compare_mysql_cmd select-1 'SELECT * from myApp.myApp;' '-h some-name-pxc-2.some-name-pxc -uroot -p'\''root_password'\'' -P3306' + local command_id=select-1 + local 'command=SELECT * from myApp.myApp;' + local 'uri=-h some-name-pxc-2.some-name-pxc -uroot -p'\''root_password'\'' -P3306' + local postfix= + local expected_result=/mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/e2e-tests/allocator/compare/select-1.sql + [[ perconalab/percona-xtradb-cluster-operator:main-pxc8.4 =~ 8\.4 ]] + [[ -f /mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/e2e-tests/allocator/compare/select-1-84.sql ]] + [[ perconalab/percona-xtradb-cluster-operator:main-pxc8.4 =~ 8\.0 ]] + [[ perconalab/percona-xtradb-cluster-operator:main-pxc8.4 =~ 5\.7 ]] + run_mysql 'SELECT * from myApp.myApp;' '-h some-name-pxc-2.some-name-pxc -uroot -p'\''root_password'\'' -P3306' + local 'command=SELECT * from myApp.myApp;' + local 'uri=-h some-name-pxc-2.some-name-pxc -uroot -p'\''root_password'\'' -P3306' ++ get_client_pod ++ kubectl_bin get pods --selector=name=pxc-client -o 'jsonpath={.items[].metadata.name}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.KEOdUJMT7g +++ mktemp ++ local LAST_ERR=/tmp/tmp.yCc1rDe6Gi ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pods --selector=name=pxc-client -o 'jsonpath={.items[].metadata.name}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.KEOdUJMT7g ++ cat /tmp/tmp.yCc1rDe6Gi ++ rm /tmp/tmp.KEOdUJMT7g /tmp/tmp.yCc1rDe6Gi ++ return 0 + client_pod=pxc-client-56fd5498cd-5hrm9 + wait_pod pxc-client-56fd5498cd-5hrm9 + local pod=pxc-client-56fd5498cd-5hrm9 + local max_retry=480 + local ns= ++ echo pxc-client-56fd5498cd-5hrm9 ++ grep -E '^(pxc|proxysql)$' ++ /usr/bin/sed -E 's/.*-(pxc|proxysql)-[0-9]/\1/' + local container= + set +o xtrace pod/pxc-client-56fd5498cd-5hrm9 condition met waiting for pod/pxc-client-56fd5498cd-5hrm9 to become ReadyDefaulted container "pxc-client" out of: pxc-client, backup .Ok + set +o xtrace + [[ ! -s /tmp/tmp.NlCOYjiQyL/select-1.sql ]] ++ grep 'Unknown MySQL server host' /tmp/tmp.NlCOYjiQyL/select-1.sql + [[ -n '' ]] + [[ 0 -eq 0 ]] + diff -u /mnt/jenkins/workspace/cloud-pxc-operator_PR-2414/e2e-tests/allocator/compare/select-1.sql /tmp/tmp.NlCOYjiQyL/select-1.sql + is_keyring_plugin_in_use some-name + local cluster=some-name + [[ perconalab/percona-xtradb-cluster-operator:main-pxc8.4 =~ 8\.4 ]] + kubectl exec some-name-pxc-0 -c pxc -- ls /var/lib/mysql/mysqld.my + return 1 + wait_cluster_consistency some-name 3 2 + local cluster_name=some-name + local cluster_size=3 + local proxy_size=2 + '[' -z 2 ']' + desc 'wait cluster consistency' + set +o xtrace ----------------------------------------------------------------------------------- wait cluster consistency ----------------------------------------------------------------------------------- + local i=0 + local max=300 + sleep 7 + echo -n 'waiting for pxc/some-name to be ready' waiting for pxc/some-name to be ready++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.HM2eNYmNpL +++ mktemp ++ local LAST_ERR=/tmp/tmp.JPbO9V00Px ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.HM2eNYmNpL ++ cat /tmp/tmp.JPbO9V00Px ++ rm /tmp/tmp.HM2eNYmNpL /tmp/tmp.JPbO9V00Px ++ return 0 + [[ ready == \r\e\a\d\y ]] ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.pxc.ready}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.DHphm9kLbd +++ mktemp ++ local LAST_ERR=/tmp/tmp.TJnkjzjBW8 ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.pxc.ready}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.DHphm9kLbd ++ cat /tmp/tmp.TJnkjzjBW8 ++ rm /tmp/tmp.DHphm9kLbd /tmp/tmp.TJnkjzjBW8 ++ return 0 + [[ 3 == \3 ]] +++ get_proxy_engine some-name +++ local cluster_name=some-name ++++ get_proxy some-name ++++ local target_cluster=some-name +++++ kubectl_bin get pxc some-name -o 'jsonpath={.spec.haproxy.enabled}' ++++++ mktemp +++++ local LAST_OUT=/tmp/tmp.soZhcky4z6 ++++++ mktemp +++++ local LAST_ERR=/tmp/tmp.OQHm9UfBAc +++++ local exit_status=0 ++++++ seq 0 2 +++++ for i in '$(seq 0 2)' +++++ set +e +++++ kubectl get pxc some-name -o 'jsonpath={.spec.haproxy.enabled}' +++++ exit_status=0 +++++ set -e +++++ '[' 0 '!=' 0 ']' +++++ break +++++ cat /tmp/tmp.soZhcky4z6 +++++ cat /tmp/tmp.OQHm9UfBAc +++++ rm /tmp/tmp.soZhcky4z6 /tmp/tmp.OQHm9UfBAc +++++ return 0 ++++ [[ true == \t\r\u\e ]] ++++ echo some-name-haproxy ++++ return +++ local cluster_proxy=some-name-haproxy +++ echo haproxy ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.haproxy.ready}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.mdJjOkU2dd +++ mktemp ++ local LAST_ERR=/tmp/tmp.AxihdyFkxP ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.haproxy.ready}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.mdJjOkU2dd ++ cat /tmp/tmp.AxihdyFkxP ++ rm /tmp/tmp.mdJjOkU2dd /tmp/tmp.AxihdyFkxP ++ return 0 + [[ 2 == \2 ]] + echo + desc 'CASE 1: Allocator is not set in cr.yaml: OK' + set +o xtrace ----------------------------------------------------------------------------------- CASE 1: Allocator is not set in cr.yaml: OK ----------------------------------------------------------------------------------- + kubectl_bin patch pxc some-name --type=merge -p '{"spec": {"pxc": {"mysqlAllocator": "tcmalloc"}}}' ++ mktemp + local LAST_OUT=/tmp/tmp.VdZWEFlnve ++ mktemp + local LAST_ERR=/tmp/tmp.gKNFlUPiEq + local exit_status=0 ++ seq 0 2 + for i in '$(seq 0 2)' + set +e + kubectl patch pxc some-name --type=merge -p '{"spec": {"pxc": {"mysqlAllocator": "tcmalloc"}}}' + exit_status=0 + set -e + '[' 0 '!=' 0 ']' + break + cat /tmp/tmp.VdZWEFlnve perconaxtradbcluster.pxc.percona.com/some-name patched + cat /tmp/tmp.gKNFlUPiEq + rm /tmp/tmp.VdZWEFlnve /tmp/tmp.gKNFlUPiEq + return 0 + sleep 7 + wait_cluster_consistency some-name 3 2 + local cluster_name=some-name + local cluster_size=3 + local proxy_size=2 + '[' -z 2 ']' + desc 'wait cluster consistency' + set +o xtrace ----------------------------------------------------------------------------------- wait cluster consistency ----------------------------------------------------------------------------------- + local i=0 + local max=300 + sleep 7 + echo -n 'waiting for pxc/some-name to be ready' waiting for pxc/some-name to be ready++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.lD3bAx2KGO +++ mktemp ++ local LAST_ERR=/tmp/tmp.hlfrcirvHu ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.lD3bAx2KGO ++ cat /tmp/tmp.hlfrcirvHu ++ rm /tmp/tmp.lD3bAx2KGO /tmp/tmp.hlfrcirvHu ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 0 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.4iUq857VkV +++ mktemp ++ local LAST_ERR=/tmp/tmp.XohaDnnDaM ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.4iUq857VkV ++ cat /tmp/tmp.XohaDnnDaM ++ rm /tmp/tmp.4iUq857VkV /tmp/tmp.XohaDnnDaM ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 1 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.KpU2nVIkPk +++ mktemp ++ local LAST_ERR=/tmp/tmp.crDZxdxIwZ ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.KpU2nVIkPk ++ cat /tmp/tmp.crDZxdxIwZ ++ rm /tmp/tmp.KpU2nVIkPk /tmp/tmp.crDZxdxIwZ ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 2 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.EbQjGgv0ze +++ mktemp ++ local LAST_ERR=/tmp/tmp.M2wclqP5U3 ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.EbQjGgv0ze ++ cat /tmp/tmp.M2wclqP5U3 ++ rm /tmp/tmp.EbQjGgv0ze /tmp/tmp.M2wclqP5U3 ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 3 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.9E5fvSNXNg +++ mktemp ++ local LAST_ERR=/tmp/tmp.WQI33nSRYr ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.9E5fvSNXNg ++ cat /tmp/tmp.WQI33nSRYr ++ rm /tmp/tmp.9E5fvSNXNg /tmp/tmp.WQI33nSRYr ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 4 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.HDVOcHetXu +++ mktemp ++ local LAST_ERR=/tmp/tmp.dIdh546iU4 ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.HDVOcHetXu ++ cat /tmp/tmp.dIdh546iU4 ++ rm /tmp/tmp.HDVOcHetXu /tmp/tmp.dIdh546iU4 ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 5 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.ayD6UDKXpU +++ mktemp ++ local LAST_ERR=/tmp/tmp.5MNq1tE3F2 ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.ayD6UDKXpU ++ cat /tmp/tmp.5MNq1tE3F2 ++ rm /tmp/tmp.ayD6UDKXpU /tmp/tmp.5MNq1tE3F2 ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 6 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.GFsOPTPQn6 +++ mktemp ++ local LAST_ERR=/tmp/tmp.PPpbiKzcs0 ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.GFsOPTPQn6 ++ cat /tmp/tmp.PPpbiKzcs0 ++ rm /tmp/tmp.GFsOPTPQn6 /tmp/tmp.PPpbiKzcs0 ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 7 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.XheGvVuJiV +++ mktemp ++ local LAST_ERR=/tmp/tmp.ToUyrT24Z4 ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.XheGvVuJiV ++ cat /tmp/tmp.ToUyrT24Z4 ++ rm /tmp/tmp.XheGvVuJiV /tmp/tmp.ToUyrT24Z4 ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 8 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.Q8lgPEX4Eq +++ mktemp ++ local LAST_ERR=/tmp/tmp.nuxEbQRSyd ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.Q8lgPEX4Eq ++ cat /tmp/tmp.nuxEbQRSyd ++ rm /tmp/tmp.Q8lgPEX4Eq /tmp/tmp.nuxEbQRSyd ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 9 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.d0zysswBYU +++ mktemp ++ local LAST_ERR=/tmp/tmp.Ju2yEsoFVc ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.d0zysswBYU ++ cat /tmp/tmp.Ju2yEsoFVc ++ rm /tmp/tmp.d0zysswBYU /tmp/tmp.Ju2yEsoFVc ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 10 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.2Y9d5xnxl6 +++ mktemp ++ local LAST_ERR=/tmp/tmp.0I0rZsRQcb ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.2Y9d5xnxl6 ++ cat /tmp/tmp.0I0rZsRQcb ++ rm /tmp/tmp.2Y9d5xnxl6 /tmp/tmp.0I0rZsRQcb ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 11 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.9TC31KmPr3 +++ mktemp ++ local LAST_ERR=/tmp/tmp.2wGm0ACKyT ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.9TC31KmPr3 ++ cat /tmp/tmp.2wGm0ACKyT ++ rm /tmp/tmp.9TC31KmPr3 /tmp/tmp.2wGm0ACKyT ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 12 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.eXJa1CQXmW +++ mktemp ++ local LAST_ERR=/tmp/tmp.22XbK3XIEi ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.eXJa1CQXmW ++ cat /tmp/tmp.22XbK3XIEi ++ rm /tmp/tmp.eXJa1CQXmW /tmp/tmp.22XbK3XIEi ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 13 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.VeIhN2GnIC +++ mktemp ++ local LAST_ERR=/tmp/tmp.eKkfq7mwnl ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.VeIhN2GnIC ++ cat /tmp/tmp.eKkfq7mwnl ++ rm /tmp/tmp.VeIhN2GnIC /tmp/tmp.eKkfq7mwnl ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 14 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.7oQiSVntlI +++ mktemp ++ local LAST_ERR=/tmp/tmp.8NiCPzNgNp ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.7oQiSVntlI ++ cat /tmp/tmp.8NiCPzNgNp ++ rm /tmp/tmp.7oQiSVntlI /tmp/tmp.8NiCPzNgNp ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 15 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.yMfuejfIT6 +++ mktemp ++ local LAST_ERR=/tmp/tmp.5AXKFJFPP7 ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.yMfuejfIT6 ++ cat /tmp/tmp.5AXKFJFPP7 ++ rm /tmp/tmp.yMfuejfIT6 /tmp/tmp.5AXKFJFPP7 ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 16 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.C4It8sUTxv +++ mktemp ++ local LAST_ERR=/tmp/tmp.LAmSJ1cmNH ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.C4It8sUTxv ++ cat /tmp/tmp.LAmSJ1cmNH ++ rm /tmp/tmp.C4It8sUTxv /tmp/tmp.LAmSJ1cmNH ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 17 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.9zBj4cjwro +++ mktemp ++ local LAST_ERR=/tmp/tmp.gCBbxO1Fif ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.9zBj4cjwro ++ cat /tmp/tmp.gCBbxO1Fif ++ rm /tmp/tmp.9zBj4cjwro /tmp/tmp.gCBbxO1Fif ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 18 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.2o5RlzSGWB +++ mktemp ++ local LAST_ERR=/tmp/tmp.yTnxiFgoWa ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.2o5RlzSGWB ++ cat /tmp/tmp.yTnxiFgoWa ++ rm /tmp/tmp.2o5RlzSGWB /tmp/tmp.yTnxiFgoWa ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 19 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.weRlNq3wzb +++ mktemp ++ local LAST_ERR=/tmp/tmp.NIv8XKj8KC ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.weRlNq3wzb ++ cat /tmp/tmp.NIv8XKj8KC ++ rm /tmp/tmp.weRlNq3wzb /tmp/tmp.NIv8XKj8KC ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 20 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.Grq8bNp3Zx +++ mktemp ++ local LAST_ERR=/tmp/tmp.SXt9QlBAxo ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.Grq8bNp3Zx ++ cat /tmp/tmp.SXt9QlBAxo ++ rm /tmp/tmp.Grq8bNp3Zx /tmp/tmp.SXt9QlBAxo ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 21 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.ZhkWKpZk7Q +++ mktemp ++ local LAST_ERR=/tmp/tmp.sOkv0wLelu ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.ZhkWKpZk7Q ++ cat /tmp/tmp.sOkv0wLelu ++ rm /tmp/tmp.ZhkWKpZk7Q /tmp/tmp.sOkv0wLelu ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 22 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.G401DYeFev +++ mktemp ++ local LAST_ERR=/tmp/tmp.I3nqsOPQRk ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.G401DYeFev ++ cat /tmp/tmp.I3nqsOPQRk ++ rm /tmp/tmp.G401DYeFev /tmp/tmp.I3nqsOPQRk ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 23 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.n0T8f4EMTY +++ mktemp ++ local LAST_ERR=/tmp/tmp.4tLJR6TeFF ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.n0T8f4EMTY ++ cat /tmp/tmp.4tLJR6TeFF ++ rm /tmp/tmp.n0T8f4EMTY /tmp/tmp.4tLJR6TeFF ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 24 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.zOCvWvyEKm +++ mktemp ++ local LAST_ERR=/tmp/tmp.sOa2rwMxh5 ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.zOCvWvyEKm ++ cat /tmp/tmp.sOa2rwMxh5 ++ rm /tmp/tmp.zOCvWvyEKm /tmp/tmp.sOa2rwMxh5 ++ return 0 + [[ ready == \r\e\a\d\y ]] ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.pxc.ready}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.WYmhj2TuRM +++ mktemp ++ local LAST_ERR=/tmp/tmp.pHTYHCkUwO ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.pxc.ready}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.WYmhj2TuRM ++ cat /tmp/tmp.pHTYHCkUwO ++ rm /tmp/tmp.WYmhj2TuRM /tmp/tmp.pHTYHCkUwO ++ return 0 + [[ 3 == \3 ]] +++ get_proxy_engine some-name +++ local cluster_name=some-name ++++ get_proxy some-name ++++ local target_cluster=some-name +++++ kubectl_bin get pxc some-name -o 'jsonpath={.spec.haproxy.enabled}' ++++++ mktemp +++++ local LAST_OUT=/tmp/tmp.3PMu4chp0w ++++++ mktemp +++++ local LAST_ERR=/tmp/tmp.Uz9cyinjPh +++++ local exit_status=0 ++++++ seq 0 2 +++++ for i in '$(seq 0 2)' +++++ set +e +++++ kubectl get pxc some-name -o 'jsonpath={.spec.haproxy.enabled}' +++++ exit_status=0 +++++ set -e +++++ '[' 0 '!=' 0 ']' +++++ break +++++ cat /tmp/tmp.3PMu4chp0w +++++ cat /tmp/tmp.Uz9cyinjPh +++++ rm /tmp/tmp.3PMu4chp0w /tmp/tmp.Uz9cyinjPh +++++ return 0 ++++ [[ true == \t\r\u\e ]] ++++ echo some-name-haproxy ++++ return +++ local cluster_proxy=some-name-haproxy +++ echo haproxy ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.haproxy.ready}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.XWFCxuzRvx +++ mktemp ++ local LAST_ERR=/tmp/tmp.WHPx660oxI ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.haproxy.ready}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.XWFCxuzRvx ++ cat /tmp/tmp.WHPx660oxI ++ rm /tmp/tmp.XWFCxuzRvx /tmp/tmp.WHPx660oxI ++ return 0 + [[ 2 == \2 ]] + echo + check_ld_preload + kubectl_bin exec some-name-pxc-0 -- env ++ mktemp + local LAST_OUT=/tmp/tmp.QnrQR0TByA + grep -q LD_PRELOAD ++ mktemp + local LAST_ERR=/tmp/tmp.facGWcLKac + local exit_status=0 ++ seq 0 2 + for i in '$(seq 0 2)' + set +e + kubectl exec some-name-pxc-0 -- env + exit_status=0 + set -e + '[' 0 '!=' 0 ']' + break + cat /tmp/tmp.QnrQR0TByA + cat /tmp/tmp.facGWcLKac + rm /tmp/tmp.QnrQR0TByA /tmp/tmp.facGWcLKac + return 0 ++ kubectl_bin exec some-name-pxc-0 -- bash -c 'echo ${LD_PRELOAD}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.YtoV971iwv +++ mktemp ++ local LAST_ERR=/tmp/tmp.ETTaMYyvyo ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl exec some-name-pxc-0 -- bash -c 'echo ${LD_PRELOAD}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.YtoV971iwv ++ cat /tmp/tmp.ETTaMYyvyo ++ rm /tmp/tmp.YtoV971iwv /tmp/tmp.ETTaMYyvyo ++ return 0 + ld_preload=/usr/lib64/libtcmalloc.so + log 'LD_PRELOAD is set to /usr/lib64/libtcmalloc.so: OK' ++ date +%Y-%m-%dT%H:%M:%S%z + echo '[2026-04-08T07:11:54+0000]' LD_PRELOAD is set to /usr/lib64/libtcmalloc.so: OK [2026-04-08T07:11:54+0000] LD_PRELOAD is set to /usr/lib64/libtcmalloc.so: OK + kubectl_bin exec some-name-pxc-0 -- ldd /usr/sbin/mysqld + grep -q /usr/lib64/libtcmalloc.so ++ mktemp + local LAST_OUT=/tmp/tmp.zdIGiFExtY ++ mktemp + local LAST_ERR=/tmp/tmp.XvTBcxQyF8 + local exit_status=0 ++ seq 0 2 + for i in '$(seq 0 2)' + set +e + kubectl exec some-name-pxc-0 -- ldd /usr/sbin/mysqld + exit_status=0 + set -e + '[' 0 '!=' 0 ']' + break + cat /tmp/tmp.zdIGiFExtY + cat /tmp/tmp.XvTBcxQyF8 + rm /tmp/tmp.zdIGiFExtY /tmp/tmp.XvTBcxQyF8 + return 0 + log '/usr/lib64/libtcmalloc.so is used by /usr/sbin/mysqld: OK' ++ date +%Y-%m-%dT%H:%M:%S%z + echo '[2026-04-08T07:11:56+0000]' /usr/lib64/libtcmalloc.so is used by /usr/sbin/mysqld: OK [2026-04-08T07:11:56+0000] /usr/lib64/libtcmalloc.so is used by /usr/sbin/mysqld: OK + desc 'CASE 2: Allocator is set to tcmalloc: OK' + set +o xtrace ----------------------------------------------------------------------------------- CASE 2: Allocator is set to tcmalloc: OK ----------------------------------------------------------------------------------- + kubectl_bin patch pxc some-name --type=merge -p '{"spec": {"pxc": {"mysqlAllocator": "jemalloc"}}}' ++ mktemp + local LAST_OUT=/tmp/tmp.zyDNZvmdbD ++ mktemp + local LAST_ERR=/tmp/tmp.oGOqt1IH8x + local exit_status=0 ++ seq 0 2 + for i in '$(seq 0 2)' + set +e + kubectl patch pxc some-name --type=merge -p '{"spec": {"pxc": {"mysqlAllocator": "jemalloc"}}}' + exit_status=0 + set -e + '[' 0 '!=' 0 ']' + break + cat /tmp/tmp.zyDNZvmdbD perconaxtradbcluster.pxc.percona.com/some-name patched + cat /tmp/tmp.oGOqt1IH8x + rm /tmp/tmp.zyDNZvmdbD /tmp/tmp.oGOqt1IH8x + return 0 + sleep 7 + wait_cluster_consistency some-name 3 2 + local cluster_name=some-name + local cluster_size=3 + local proxy_size=2 + '[' -z 2 ']' + desc 'wait cluster consistency' + set +o xtrace ----------------------------------------------------------------------------------- wait cluster consistency ----------------------------------------------------------------------------------- + local i=0 + local max=300 + sleep 7 + echo -n 'waiting for pxc/some-name to be ready' waiting for pxc/some-name to be ready++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.MWm9TjFrT2 +++ mktemp ++ local LAST_ERR=/tmp/tmp.BvDWEFkIDj ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.MWm9TjFrT2 ++ cat /tmp/tmp.BvDWEFkIDj ++ rm /tmp/tmp.MWm9TjFrT2 /tmp/tmp.BvDWEFkIDj ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 0 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.SuxSzy5F4n +++ mktemp ++ local LAST_ERR=/tmp/tmp.yYmBkoMpXs ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.SuxSzy5F4n ++ cat /tmp/tmp.yYmBkoMpXs ++ rm /tmp/tmp.SuxSzy5F4n /tmp/tmp.yYmBkoMpXs ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 1 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.SFgcoOJE7O +++ mktemp ++ local LAST_ERR=/tmp/tmp.W0DAcBde7A ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.SFgcoOJE7O ++ cat /tmp/tmp.W0DAcBde7A ++ rm /tmp/tmp.SFgcoOJE7O /tmp/tmp.W0DAcBde7A ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 2 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.wBOA2EvGAk +++ mktemp ++ local LAST_ERR=/tmp/tmp.eNSQU2pVXn ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.wBOA2EvGAk ++ cat /tmp/tmp.eNSQU2pVXn ++ rm /tmp/tmp.wBOA2EvGAk /tmp/tmp.eNSQU2pVXn ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 3 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.NSOIPAjc3l +++ mktemp ++ local LAST_ERR=/tmp/tmp.UYdzooVroT ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.NSOIPAjc3l ++ cat /tmp/tmp.UYdzooVroT ++ rm /tmp/tmp.NSOIPAjc3l /tmp/tmp.UYdzooVroT ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 4 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.x7BWVySGXI +++ mktemp ++ local LAST_ERR=/tmp/tmp.8KJX9MStA1 ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.x7BWVySGXI ++ cat /tmp/tmp.8KJX9MStA1 ++ rm /tmp/tmp.x7BWVySGXI /tmp/tmp.8KJX9MStA1 ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 5 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.IrjeMCHATR +++ mktemp ++ local LAST_ERR=/tmp/tmp.ahZHP7wGxh ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.IrjeMCHATR ++ cat /tmp/tmp.ahZHP7wGxh ++ rm /tmp/tmp.IrjeMCHATR /tmp/tmp.ahZHP7wGxh ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 6 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.GOUVOvDd7p +++ mktemp ++ local LAST_ERR=/tmp/tmp.5kS3lUt0W2 ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.GOUVOvDd7p ++ cat /tmp/tmp.5kS3lUt0W2 ++ rm /tmp/tmp.GOUVOvDd7p /tmp/tmp.5kS3lUt0W2 ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 7 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.bCaCD4JZg0 +++ mktemp ++ local LAST_ERR=/tmp/tmp.9YSWgZcC7E ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.bCaCD4JZg0 ++ cat /tmp/tmp.9YSWgZcC7E ++ rm /tmp/tmp.bCaCD4JZg0 /tmp/tmp.9YSWgZcC7E ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 8 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.9bXjFdRlmB +++ mktemp ++ local LAST_ERR=/tmp/tmp.ouyIfKBUEb ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.9bXjFdRlmB ++ cat /tmp/tmp.ouyIfKBUEb ++ rm /tmp/tmp.9bXjFdRlmB /tmp/tmp.ouyIfKBUEb ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 9 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.08UlgCFc5m +++ mktemp ++ local LAST_ERR=/tmp/tmp.hDubFb2ZFy ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.08UlgCFc5m ++ cat /tmp/tmp.hDubFb2ZFy ++ rm /tmp/tmp.08UlgCFc5m /tmp/tmp.hDubFb2ZFy ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 10 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.iyzXjsY0kN +++ mktemp ++ local LAST_ERR=/tmp/tmp.EdygFdXfSQ ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.iyzXjsY0kN ++ cat /tmp/tmp.EdygFdXfSQ ++ rm /tmp/tmp.iyzXjsY0kN /tmp/tmp.EdygFdXfSQ ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 11 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.7WS9fFQbaK +++ mktemp ++ local LAST_ERR=/tmp/tmp.UygOSKk6n4 ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.7WS9fFQbaK ++ cat /tmp/tmp.UygOSKk6n4 ++ rm /tmp/tmp.7WS9fFQbaK /tmp/tmp.UygOSKk6n4 ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 12 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.QZ7EYbiU6V +++ mktemp ++ local LAST_ERR=/tmp/tmp.7pxZMqpnMn ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.QZ7EYbiU6V ++ cat /tmp/tmp.7pxZMqpnMn ++ rm /tmp/tmp.QZ7EYbiU6V /tmp/tmp.7pxZMqpnMn ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 13 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.Unj3JOMQqI +++ mktemp ++ local LAST_ERR=/tmp/tmp.ZYAWrV2HaQ ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.Unj3JOMQqI ++ cat /tmp/tmp.ZYAWrV2HaQ ++ rm /tmp/tmp.Unj3JOMQqI /tmp/tmp.ZYAWrV2HaQ ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 14 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.zy0d0nGEz7 +++ mktemp ++ local LAST_ERR=/tmp/tmp.a3sHIDlCq2 ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.zy0d0nGEz7 ++ cat /tmp/tmp.a3sHIDlCq2 ++ rm /tmp/tmp.zy0d0nGEz7 /tmp/tmp.a3sHIDlCq2 ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 15 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.fYNuxiR1Xr +++ mktemp ++ local LAST_ERR=/tmp/tmp.y3RcXawaMA ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.fYNuxiR1Xr ++ cat /tmp/tmp.y3RcXawaMA ++ rm /tmp/tmp.fYNuxiR1Xr /tmp/tmp.y3RcXawaMA ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 16 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.xqCctlqLFa +++ mktemp ++ local LAST_ERR=/tmp/tmp.HRZGDRBUI0 ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.xqCctlqLFa ++ cat /tmp/tmp.HRZGDRBUI0 ++ rm /tmp/tmp.xqCctlqLFa /tmp/tmp.HRZGDRBUI0 ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 17 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.WwGVHTbztD +++ mktemp ++ local LAST_ERR=/tmp/tmp.ZHOxvH2uKT ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.WwGVHTbztD ++ cat /tmp/tmp.ZHOxvH2uKT ++ rm /tmp/tmp.WwGVHTbztD /tmp/tmp.ZHOxvH2uKT ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 18 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.Haw1v9CFJM +++ mktemp ++ local LAST_ERR=/tmp/tmp.Dskbl1FHAS ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.Haw1v9CFJM ++ cat /tmp/tmp.Dskbl1FHAS ++ rm /tmp/tmp.Haw1v9CFJM /tmp/tmp.Dskbl1FHAS ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 19 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.MXi5wRO8w7 +++ mktemp ++ local LAST_ERR=/tmp/tmp.axZhcab2qu ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.MXi5wRO8w7 ++ cat /tmp/tmp.axZhcab2qu ++ rm /tmp/tmp.MXi5wRO8w7 /tmp/tmp.axZhcab2qu ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 20 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.FMGTMuKcDj +++ mktemp ++ local LAST_ERR=/tmp/tmp.97NZfH6QFM ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.FMGTMuKcDj ++ cat /tmp/tmp.97NZfH6QFM ++ rm /tmp/tmp.FMGTMuKcDj /tmp/tmp.97NZfH6QFM ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 21 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.SalmDoUH62 +++ mktemp ++ local LAST_ERR=/tmp/tmp.FguuAdDyiP ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.SalmDoUH62 ++ cat /tmp/tmp.FguuAdDyiP ++ rm /tmp/tmp.SalmDoUH62 /tmp/tmp.FguuAdDyiP ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 22 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.kJpHcD2yfv +++ mktemp ++ local LAST_ERR=/tmp/tmp.N7nwa7A72X ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.kJpHcD2yfv ++ cat /tmp/tmp.N7nwa7A72X ++ rm /tmp/tmp.kJpHcD2yfv /tmp/tmp.N7nwa7A72X ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 23 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.yZyllOl8CI +++ mktemp ++ local LAST_ERR=/tmp/tmp.ezYEOB40kf ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.yZyllOl8CI ++ cat /tmp/tmp.ezYEOB40kf ++ rm /tmp/tmp.yZyllOl8CI /tmp/tmp.ezYEOB40kf ++ return 0 + [[ initializing == \r\e\a\d\y ]] + echo -n . .+ sleep 5 + [[ 24 -ge 300 ]] + let i+=1 ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.state}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.iHC2n3Ccse +++ mktemp ++ local LAST_ERR=/tmp/tmp.IOzWhhaUKu ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.state}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.iHC2n3Ccse ++ cat /tmp/tmp.IOzWhhaUKu ++ rm /tmp/tmp.iHC2n3Ccse /tmp/tmp.IOzWhhaUKu ++ return 0 + [[ ready == \r\e\a\d\y ]] ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.pxc.ready}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.J1TsLpOMa1 +++ mktemp ++ local LAST_ERR=/tmp/tmp.UD97oR59VU ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.pxc.ready}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.J1TsLpOMa1 ++ cat /tmp/tmp.UD97oR59VU ++ rm /tmp/tmp.J1TsLpOMa1 /tmp/tmp.UD97oR59VU ++ return 0 + [[ 3 == \3 ]] +++ get_proxy_engine some-name +++ local cluster_name=some-name ++++ get_proxy some-name ++++ local target_cluster=some-name +++++ kubectl_bin get pxc some-name -o 'jsonpath={.spec.haproxy.enabled}' ++++++ mktemp +++++ local LAST_OUT=/tmp/tmp.EPASjXBUvU ++++++ mktemp +++++ local LAST_ERR=/tmp/tmp.f4K3ZKFa3i +++++ local exit_status=0 ++++++ seq 0 2 +++++ for i in '$(seq 0 2)' +++++ set +e +++++ kubectl get pxc some-name -o 'jsonpath={.spec.haproxy.enabled}' +++++ exit_status=0 +++++ set -e +++++ '[' 0 '!=' 0 ']' +++++ break +++++ cat /tmp/tmp.EPASjXBUvU +++++ cat /tmp/tmp.f4K3ZKFa3i +++++ rm /tmp/tmp.EPASjXBUvU /tmp/tmp.f4K3ZKFa3i +++++ return 0 ++++ [[ true == \t\r\u\e ]] ++++ echo some-name-haproxy ++++ return +++ local cluster_proxy=some-name-haproxy +++ echo haproxy ++ kubectl_bin get pxc some-name -o 'jsonpath={.status.haproxy.ready}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.wW7pPumzqd +++ mktemp ++ local LAST_ERR=/tmp/tmp.jQjNk8N8gz ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pxc some-name -o 'jsonpath={.status.haproxy.ready}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.wW7pPumzqd ++ cat /tmp/tmp.jQjNk8N8gz ++ rm /tmp/tmp.wW7pPumzqd /tmp/tmp.jQjNk8N8gz ++ return 0 + [[ 2 == \2 ]] + echo + check_ld_preload + kubectl_bin exec some-name-pxc-0 -- env + grep -q LD_PRELOAD ++ mktemp + local LAST_OUT=/tmp/tmp.fAwIxOFXYj ++ mktemp + local LAST_ERR=/tmp/tmp.LciIc2BZZW + local exit_status=0 ++ seq 0 2 + for i in '$(seq 0 2)' + set +e + kubectl exec some-name-pxc-0 -- env + exit_status=0 + set -e + '[' 0 '!=' 0 ']' + break + cat /tmp/tmp.fAwIxOFXYj + cat /tmp/tmp.LciIc2BZZW ERROR: ld.so: object '/usr/lib64/libjemalloc.so.2' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored. + rm /tmp/tmp.fAwIxOFXYj /tmp/tmp.LciIc2BZZW + return 0 ++ kubectl_bin exec some-name-pxc-0 -- bash -c 'echo ${LD_PRELOAD}' +++ mktemp ++ local LAST_OUT=/tmp/tmp.OfyY9ZyuG9 +++ mktemp ++ local LAST_ERR=/tmp/tmp.Ebgbhu05HW ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl exec some-name-pxc-0 -- bash -c 'echo ${LD_PRELOAD}' ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.OfyY9ZyuG9 ++ cat /tmp/tmp.Ebgbhu05HW ERROR: ld.so: object '/usr/lib64/libjemalloc.so.2' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored. ++ rm /tmp/tmp.OfyY9ZyuG9 /tmp/tmp.Ebgbhu05HW ++ return 0 + ld_preload=/usr/lib64/libjemalloc.so.2 + log 'LD_PRELOAD is set to /usr/lib64/libjemalloc.so.2: OK' ++ date +%Y-%m-%dT%H:%M:%S%z + echo '[2026-04-08T07:14:50+0000]' LD_PRELOAD is set to /usr/lib64/libjemalloc.so.2: OK [2026-04-08T07:14:50+0000] LD_PRELOAD is set to /usr/lib64/libjemalloc.so.2: OK + kubectl_bin exec some-name-pxc-0 -- ldd /usr/sbin/mysqld ++ mktemp + local LAST_OUT=/tmp/tmp.8oRBYUFkl5 ++ mktemp + local LAST_ERR=/tmp/tmp.8u9DemDGuG + local exit_status=0 ++ seq 0 2 + for i in '$(seq 0 2)' + set +e + kubectl exec some-name-pxc-0 -- ldd /usr/sbin/mysqld + grep -q /usr/lib64/libjemalloc.so.2 + exit_status=0 + set -e + '[' 0 '!=' 0 ']' + break + cat /tmp/tmp.8oRBYUFkl5 + cat /tmp/tmp.8u9DemDGuG ERROR: ld.so: object '/usr/lib64/libjemalloc.so.2' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored. + rm /tmp/tmp.8oRBYUFkl5 /tmp/tmp.8u9DemDGuG + return 0 + log '/usr/lib64/libjemalloc.so.2 is used by /usr/sbin/mysqld: OK' ++ date +%Y-%m-%dT%H:%M:%S%z + echo '[2026-04-08T07:14:51+0000]' /usr/lib64/libjemalloc.so.2 is used by /usr/sbin/mysqld: OK [2026-04-08T07:14:51+0000] /usr/lib64/libjemalloc.so.2 is used by /usr/sbin/mysqld: OK + desc 'CASE 3: Allocator is set to jemalloc: OK' + set +o xtrace ----------------------------------------------------------------------------------- CASE 3: Allocator is set to jemalloc: OK ----------------------------------------------------------------------------------- + desc 'test passed' + set +o xtrace ----------------------------------------------------------------------------------- test passed ----------------------------------------------------------------------------------- + destroy allocator-16084 + local namespace=allocator-16084 + local ignore_logs=true + [[ 0 == 1 ]] + desc 'destroy cluster/operator and all other resources' + set +o xtrace ----------------------------------------------------------------------------------- destroy cluster/operator and all other resources ----------------------------------------------------------------------------------- + '[' true == false -o 1 == 1 ']' + grep -v level=info + grep -v 'the object has been modified' + /usr/bin/sed -r 's/"ts":[0-9.]+//; s^limits-[0-9.]+/^^g' + tee /tmp/tmp.NlCOYjiQyL/operator.log ++ get_operator_pod ++ local label_prefix=app.kubernetes.io/ + sort -u + grep -v 'get backup status: Job.batch' +++ kubectl get pods --selector=app.kubernetes.io/name=percona-xtradb-cluster-operator -n pxc-operator +++ grep -c percona-xtradb-cluster-operator ++ local check_label=1 ++ [[ 1 -eq 0 ]] ++ kubectl_bin get pods --selector=app.kubernetes.io/name=percona-xtradb-cluster-operator --field-selector=status.phase=Running -o json -n pxc-operator ++ head -1 ++ jq -r '.items[] | select(.metadata.deletionTimestamp == null) | .metadata.name' +++ mktemp ++ local LAST_OUT=/tmp/tmp.qBONT4qyeZ +++ mktemp ++ local LAST_ERR=/tmp/tmp.NfXKOReEh7 ++ local exit_status=0 +++ seq 0 2 ++ for i in '$(seq 0 2)' ++ set +e ++ kubectl get pods --selector=app.kubernetes.io/name=percona-xtradb-cluster-operator --field-selector=status.phase=Running -o json -n pxc-operator ++ exit_status=0 ++ set -e ++ '[' 0 '!=' 0 ']' ++ break ++ cat /tmp/tmp.qBONT4qyeZ ++ cat /tmp/tmp.NfXKOReEh7 ++ rm /tmp/tmp.qBONT4qyeZ /tmp/tmp.NfXKOReEh7 ++ return 0 + kubectl_bin logs -n pxc-operator percona-xtradb-cluster-operator-59d5c8749-frnrh ++ mktemp + local LAST_OUT=/tmp/tmp.IjF0QSEhia ++ mktemp + local LAST_ERR=/tmp/tmp.fqvtgd1f0L + local exit_status=0 ++ seq 0 2 + for i in '$(seq 0 2)' + set +e + kubectl logs -n pxc-operator percona-xtradb-cluster-operator-59d5c8749-frnrh + exit_status=0 + set -e + '[' 0 '!=' 0 ']' + break + cat /tmp/tmp.IjF0QSEhia + cat /tmp/tmp.fqvtgd1f0L + rm /tmp/tmp.IjF0QSEhia /tmp/tmp.fqvtgd1f0L + return 0 } }, }, { }, }, { }, }, { }, - }, - { - }, + }, ... // 10 identical elements ... // 16 identical fields ... // 16 identical fields 2026-04-08T07:02:17.277Z INFO setup Feature gates {"PXCO_FEATURE_GATES": "", "enabled": ""} 2026-04-08T07:02:17.277Z INFO setup Manager starting up {"gitCommit": "d346d5776e1753d2ff76296a598e4fe17792f52b", "gitBranch": "PR-2414-d346d577", "buildTime": "2026-04-08T06:42:33Z", "goVersion": "go1.25.9", "os": "linux", "arch": "amd64"} 2026-04-08T07:02:17.277Z INFO setup Runs on {"platform": "kubernetes", "version": "v1.32.13-gke.1205000"} 2026-04-08T07:02:17.281Z INFO setup Registering Components. 2026-04-08T07:02:18.234Z INFO controller-runtime.webhook Registering webhook {"path": "/validate-percona-xtradbcluster"} 2026-04-08T07:02:18.234Z INFO setup Starting the Cmd. 2026-04-08T07:02:18.304Z INFO controller-runtime.certwatcher Starting certificate poll+watcher {"cert": "/tmp/k8s-webhook-server/serving-certs/tls.crt", "key": "/tmp/k8s-webhook-server/serving-certs/tls.key", "interval": "10s"} 2026-04-08T07:02:18.304Z INFO controller-runtime.certwatcher Updated current TLS certificate {"cert": "/tmp/k8s-webhook-server/serving-certs/tls.crt", "key": "/tmp/k8s-webhook-server/serving-certs/tls.key"} 2026-04-08T07:02:18.304Z INFO controller-runtime.metrics Serving metrics server {"bindAddress": ":8080", "secure": false} 2026-04-08T07:02:18.304Z INFO controller-runtime.metrics Starting metrics server 2026-04-08T07:02:18.304Z INFO controller-runtime.webhook Serving webhook server {"host": "", "port": 9443} 2026-04-08T07:02:18.304Z INFO controller-runtime.webhook Starting webhook server 2026-04-08T07:02:18.304Z INFO starting server {"name": "health probe", "addr": "[::]:8081"} 2026-04-08T07:02:18.405Z INFO Attempting to acquire leader lease... {"lock": "pxc-operator/08db1feb.percona.com"} 2026-04-08T07:02:18.450Z DEBUG events percona-xtradb-cluster-operator-59d5c8749-frnrh_4050c01e-d413-4120-9dd5-93e224c42169 became leader {"type": "Normal", "object": {"kind":"Lease","namespace":"pxc-operator","name":"08db1feb.percona.com","uid":"359fceb3-84ef-4b84-88cb-05d4255d507d","apiVersion":"coordination.k8s.io/v1","resourceVersion":"1775631738433679009"}, "reason": "LeaderElection"} 2026-04-08T07:02:18.450Z INFO Starting EventSource {"controller": "pxcbackup-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBClusterBackup", "source": "kind source: *v1.PerconaXtraDBClusterBackup"} 2026-04-08T07:02:18.450Z INFO Starting EventSource {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "source": "kind source: *v1.PerconaXtraDBCluster"} 2026-04-08T07:02:18.450Z INFO Starting EventSource {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "source": "kind source: *v1.Secret"} 2026-04-08T07:02:18.450Z INFO Starting EventSource {"controller": "pxcrestore-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBClusterRestore", "source": "kind source: *v1.PerconaXtraDBClusterRestore"} 2026-04-08T07:02:18.450Z INFO Successfully acquired lease {"lock": "pxc-operator/08db1feb.percona.com"} 2026-04-08T07:02:18.551Z INFO Starting Controller {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster"} 2026-04-08T07:02:18.551Z INFO Starting Controller {"controller": "pxcrestore-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBClusterRestore"} 2026-04-08T07:02:18.551Z INFO Starting workers {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "worker count": 1} 2026-04-08T07:02:18.551Z INFO Starting workers {"controller": "pxcrestore-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBClusterRestore", "worker count": 1} 2026-04-08T07:02:18.652Z INFO Starting Controller {"controller": "pxcbackup-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBClusterBackup"} 2026-04-08T07:02:18.652Z INFO Starting workers {"controller": "pxcbackup-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBClusterBackup", "worker count": 1} 2026-04-08T07:03:04.733Z INFO Set CR version {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "PerconaXtraDBCluster": {"name":"some-name","namespace":"allocator-16084"}, "namespace": "allocator-16084", "name": "some-name", "reconcileID": "ab8b3a69-fc81-46de-886e-e81e54ef546e", "version": "1.20.0"} 2026-04-08T07:03:05.066Z DEBUG Creating object {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "PerconaXtraDBCluster": {"name":"some-name","namespace":"allocator-16084"}, "namespace": "allocator-16084", "name": "some-name", "reconcileID": "ab8b3a69-fc81-46de-886e-e81e54ef546e", "object": "auto-some-name-pxc", "kind": "&TypeMeta{Kind:ConfigMap,APIVersion:v1,}"} 2026-04-08T07:03:05.184Z DEBUG Creating object {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "PerconaXtraDBCluster": {"name":"some-name","namespace":"allocator-16084"}, "namespace": "allocator-16084", "name": "some-name", "reconcileID": "ab8b3a69-fc81-46de-886e-e81e54ef546e", "object": "some-name-haproxy", "kind": "&TypeMeta{Kind:StatefulSet,APIVersion:apps/v1,}"} 2026-04-08T07:03:05.246Z DEBUG Creating object {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "PerconaXtraDBCluster": {"name":"some-name","namespace":"allocator-16084"}, "namespace": "allocator-16084", "name": "some-name", "reconcileID": "ab8b3a69-fc81-46de-886e-e81e54ef546e", "object": "some-name-pxc", "kind": "&TypeMeta{Kind:StatefulSet,APIVersion:apps/v1,}"} 2026-04-08T07:03:05.373Z DEBUG Creating object {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "PerconaXtraDBCluster": {"name":"some-name","namespace":"allocator-16084"}, "namespace": "allocator-16084", "name": "some-name", "reconcileID": "ab8b3a69-fc81-46de-886e-e81e54ef546e", "object": "some-name-pxc", "kind": "&TypeMeta{Kind:Service,APIVersion:v1,}"} 2026-04-08T07:03:05.474Z DEBUG Creating object {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "PerconaXtraDBCluster": {"name":"some-name","namespace":"allocator-16084"}, "namespace": "allocator-16084", "name": "some-name", "reconcileID": "ab8b3a69-fc81-46de-886e-e81e54ef546e", "object": "some-name-pxc-unready", "kind": "&TypeMeta{Kind:Service,APIVersion:v1,}"} 2026-04-08T07:03:05.564Z DEBUG Creating object {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "PerconaXtraDBCluster": {"name":"some-name","namespace":"allocator-16084"}, "namespace": "allocator-16084", "name": "some-name", "reconcileID": "ab8b3a69-fc81-46de-886e-e81e54ef546e", "object": "some-name-haproxy", "kind": "&TypeMeta{Kind:Service,APIVersion:v1,}"} 2026-04-08T07:03:05.640Z DEBUG Creating object {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "PerconaXtraDBCluster": {"name":"some-name","namespace":"allocator-16084"}, "namespace": "allocator-16084", "name": "some-name", "reconcileID": "ab8b3a69-fc81-46de-886e-e81e54ef546e", "object": "some-name-haproxy-replicas", "kind": "&TypeMeta{Kind:Service,APIVersion:v1,}"} 2026-04-08T07:03:06.413Z DEBUG Creating object {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "PerconaXtraDBCluster": {"name":"some-name","namespace":"allocator-16084"}, "namespace": "allocator-16084", "name": "some-name", "reconcileID": "9d791b3c-4494-4fbb-b644-f94de391e6bd", "object": "some-name-pxc", "kind": "&TypeMeta{Kind:PodDisruptionBudget,APIVersion:policy/v1,}"} 2026-04-08T07:03:06.433Z DEBUG Creating object {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "PerconaXtraDBCluster": {"name":"some-name","namespace":"allocator-16084"}, "namespace": "allocator-16084", "name": "some-name", "reconcileID": "9d791b3c-4494-4fbb-b644-f94de391e6bd", "object": "some-name-haproxy", "kind": "&TypeMeta{Kind:PodDisruptionBudget,APIVersion:policy/v1,}"} 2026-04-08T07:04:32.894Z INFO Password expiration policy updated {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "PerconaXtraDBCluster": {"name":"some-name","namespace":"allocator-16084"}, "namespace": "allocator-16084", "name": "some-name", "reconcileID": "143a3271-8ae3-4209-8b98-268f4e4af2fb", "user": "operator"} 2026-04-08T07:04:32.931Z INFO Password expiration policy updated {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "PerconaXtraDBCluster": {"name":"some-name","namespace":"allocator-16084"}, "namespace": "allocator-16084", "name": "some-name", "reconcileID": "143a3271-8ae3-4209-8b98-268f4e4af2fb", "user": "monitor"} 2026-04-08T07:04:33.000Z INFO User monitor: granted privileges {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "PerconaXtraDBCluster": {"name":"some-name","namespace":"allocator-16084"}, "namespace": "allocator-16084", "name": "some-name", "reconcileID": "143a3271-8ae3-4209-8b98-268f4e4af2fb"} 2026-04-08T07:04:33.040Z INFO monitor user privileges granted {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "PerconaXtraDBCluster": {"name":"some-name","namespace":"allocator-16084"}, "namespace": "allocator-16084", "name": "some-name", "reconcileID": "143a3271-8ae3-4209-8b98-268f4e4af2fb"} 2026-04-08T07:04:33.073Z INFO Password expiration policy updated {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "PerconaXtraDBCluster": {"name":"some-name","namespace":"allocator-16084"}, "namespace": "allocator-16084", "name": "some-name", "reconcileID": "143a3271-8ae3-4209-8b98-268f4e4af2fb", "user": "xtrabackup"} 2026-04-08T07:04:33.124Z INFO User xtrabackup: granted privileges {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "PerconaXtraDBCluster": {"name":"some-name","namespace":"allocator-16084"}, "namespace": "allocator-16084", "name": "some-name", "reconcileID": "143a3271-8ae3-4209-8b98-268f4e4af2fb"} 2026-04-08T07:04:33.159Z INFO Password expiration policy updated {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "PerconaXtraDBCluster": {"name":"some-name","namespace":"allocator-16084"}, "namespace": "allocator-16084", "name": "some-name", "reconcileID": "143a3271-8ae3-4209-8b98-268f4e4af2fb", "user": "replication"} 2026-04-08T07:07:30.516Z INFO Password expiration policy updated {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "PerconaXtraDBCluster": {"name":"some-name","namespace":"allocator-16084"}, "namespace": "allocator-16084", "name": "some-name", "reconcileID": "d3951d5d-6563-43f7-81a0-7d50ee04aed9", "user": "root"} 2026-04-08T07:07:30.630Z INFO update PXC version (fetched from db) {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "PerconaXtraDBCluster": {"name":"some-name","namespace":"allocator-16084"}, "namespace": "allocator-16084", "name": "some-name", "reconcileID": "d3951d5d-6563-43f7-81a0-7d50ee04aed9", "new version": "8.4.7-7.1"} 2026-04-08T07:08:59.356Z DEBUG Updating object {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "PerconaXtraDBCluster": {"name":"some-name","namespace":"allocator-16084"}, "namespace": "allocator-16084", "name": "some-name", "reconcileID": "34e6180e-5fee-491d-a76f-2966571dcf75", "object": "some-name-pxc", "kind": "&TypeMeta{Kind:StatefulSet,APIVersion:apps/v1,}", "hashChanged": true, "metaChanged": true} 2026-04-08T07:08:59.410Z DEBUG Updating object {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "PerconaXtraDBCluster": {"name":"some-name","namespace":"allocator-16084"}, "namespace": "allocator-16084", "name": "some-name", "reconcileID": "34e6180e-5fee-491d-a76f-2966571dcf75", "object": "some-name-pxc", "kind": "&TypeMeta{Kind:StatefulSet,APIVersion:apps/v1,}", "hashChanged": true, "metaChanged": true} 2026-04-08T07:10:05.235Z INFO reconcile replication error {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "PerconaXtraDBCluster": {"name":"some-name","namespace":"allocator-16084"}, "namespace": "allocator-16084", "name": "some-name", "reconcileID": "2cbb5af6-9b34-4171-a326-d690df6cdc96", "err": "failed to ensure cluster readonly status: connect to pod some-name-pxc-1: invalid connection"} 2026-04-08T07:11:14.817Z INFO reconcile replication error {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "PerconaXtraDBCluster": {"name":"some-name","namespace":"allocator-16084"}, "namespace": "allocator-16084", "name": "some-name", "reconcileID": "9da5c685-5efb-4195-ae74-5abf974503e8", "err": "failed to ensure cluster readonly status: connect to pod some-name-pxc-0: dial tcp: lookup some-name-pxc-0.some-name-pxc.allocator-16084 on 34.118.224.10:53: no such host"} 2026-04-08T07:11:58.144Z DEBUG Updating object {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "PerconaXtraDBCluster": {"name":"some-name","namespace":"allocator-16084"}, "namespace": "allocator-16084", "name": "some-name", "reconcileID": "fd214663-59bd-402c-9c5e-6e70b1ed0253", "object": "some-name-pxc", "kind": "&TypeMeta{Kind:StatefulSet,APIVersion:apps/v1,}", "hashChanged": true, "metaChanged": true} 2026-04-08T07:11:58.194Z DEBUG Updating object {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "PerconaXtraDBCluster": {"name":"some-name","namespace":"allocator-16084"}, "namespace": "allocator-16084", "name": "some-name", "reconcileID": "fd214663-59bd-402c-9c5e-6e70b1ed0253", "object": "some-name-pxc", "kind": "&TypeMeta{Kind:StatefulSet,APIVersion:apps/v1,}", "hashChanged": true, "metaChanged": true} 2026-04-08T07:12:51.896Z INFO reconcile replication error {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "PerconaXtraDBCluster": {"name":"some-name","namespace":"allocator-16084"}, "namespace": "allocator-16084", "name": "some-name", "reconcileID": "76d93d14-94fb-41d1-a987-d419fa644219", "err": "failed to ensure cluster readonly status: connect to pod some-name-pxc-1: dial tcp: lookup some-name-pxc-1.some-name-pxc.allocator-16084 on 34.118.224.10:53: no such host"} 2026-04-08T07:12:57.998Z INFO reconcile replication error {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "PerconaXtraDBCluster": {"name":"some-name","namespace":"allocator-16084"}, "namespace": "allocator-16084", "name": "some-name", "reconcileID": "3c21c86f-09e4-453a-a447-81ba8fd43684", "err": "failed to ensure cluster readonly status: connect to pod some-name-pxc-1: dial tcp: lookup some-name-pxc-1.some-name-pxc.allocator-16084 on 34.118.224.10:53: no such host"} 2026-04-08T07:13:03.236Z INFO reconcile replication error {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "PerconaXtraDBCluster": {"name":"some-name","namespace":"allocator-16084"}, "namespace": "allocator-16084", "name": "some-name", "reconcileID": "ac188612-1142-4bb1-bb95-6e3d59c289a1", "err": "failed to ensure cluster readonly status: connect to pod some-name-pxc-1: dial tcp: lookup some-name-pxc-1.some-name-pxc.allocator-16084 on 34.118.224.10:53: no such host"} 2026-04-08T07:13:51.593Z INFO reconcile replication error {"controller": "pxc-controller", "controllerGroup": "pxc.percona.com", "controllerKind": "PerconaXtraDBCluster", "PerconaXtraDBCluster": {"name":"some-name","namespace":"allocator-16084"}, "namespace": "allocator-16084", "name": "some-name", "reconcileID": "6af62815-2057-495e-ba5c-e961c207adf5", "err": "failed to connect to pod some-name-pxc-0: dial tcp: lookup some-name-pxc-0.some-name-pxc.allocator-16084 on 34.118.224.10:53: no such host"} ... // 22 identical fields ... // 2 identical fields ... // 2 identical fields ... // 3 identical fields ... // 3 identical fields ... // 3 identical fields ... // 5 identical fields ... // 6 identical fields ... // 7 identical fields ... // 9 identical fields AccessModes: nil, ActiveDeadlineSeconds: nil, Affinity: &{PodAntiAffinity: &{RequiredDuringSchedulingIgnoredDuringExecution: {{LabelSelector: &{MatchLabels: {"app.kubernetes.io/component": "pxc", "app.kubernetes.io/instance": "some-name", "app.kubernetes.io/managed-by": "percona-xtradb-cluster-operator", "app.kubernetes.io/name": "percona-xtradb-cluster", ...}}, TopologyKey: "kubernetes.io/hostname"}}}}, - Annotations: map[string]string{ + Annotations: map[string]string{ - APIVersion: "apps/v1", - APIVersion: "apps/v1", Args: {"mysqld"}, AutomountServiceAccountToken: nil, + AvailableReplicas: 0, - AvailableReplicas: 3, AWSElasticBlockStore: nil, AzureFile: nil, Capacity: nil, - CollisionCount: &0, + CollisionCount: nil, Conditions: nil, ConfigMap: &v1.ConfigMapVolumeSource{ ContainerPort: 3306, ContainerPort: 33060, ContainerPort: 33062, ContainerPort: 4444, ContainerPort: 4567, ContainerPort: 4568, Containers: []v1.Container{ + CreationTimestamp: v1.Time{}, - CreationTimestamp: v1.Time{Time: s"2026-04-08 07:03:05 +0000 UTC"}, + CurrentReplicas: 0, - CurrentReplicas: 3, + CurrentRevision: "", - CurrentRevision: "some-name-pxc-55767d9d44", - CurrentRevision: "some-name-pxc-6bf95467b6", DataSource: nil, DataSourceRef: nil, - DefaultMode: &420, - DefaultMode: &420, + DefaultMode: nil, + DefaultMode: nil, DeletionGracePeriodSeconds: nil, DeletionTimestamp: nil, + DeprecatedServiceAccount: "", - DeprecatedServiceAccount: "default", + DNSPolicy: "", - DNSPolicy: "ClusterFirst", EnvFrom: {{SecretRef: &{LocalObjectReference: {Name: "some-name-env-vars-pxc"}, Optional: &true}}}, Env: []v1.EnvVar{ EphemeralContainers: nil, FailureThreshold: 3, FC: nil, - FieldsType: "FieldsV1", - FieldsType: "FieldsV1", - FieldsV1: s`{"f:metadata":{"f:annotations":{".":{},"f:percona.com/last-confi`..., - FieldsV1: s`{"f:status":{"f:availableReplicas":{},"f:collisionCount":{},"f:c`..., Finalizers: nil, + Generation: 0, - Generation: 1, - Generation: 2, GitRepo: nil, HostAliases: nil, HostIP: "", HostPort: 0, ImagePullPolicy: "Always", InitContainers: []v1.Container{ InitialDelaySeconds: 300, ISCSI: nil, Items: nil, Items: nil, Labels: nil, Lifecycle: nil, LivenessProbe: &v1.Probe{ LocalObjectReference: {Name: "auto-some-name-pxc"}, LocalObjectReference: {Name: "some-name-pxc"}, + ManagedFields: nil, - ManagedFields: []v1.ManagedFieldsEntry{ - Manager: "kube-controller-manager", - Manager: "percona-xtradb-cluster-operator", MinReadySeconds: 0, [mysql] 2026/04/08 07:10:05 packets.go:58 read tcp 10.206.201.4:52362->10.206.201.6:33062: read: connection reset by peer [mysql] 2026/04/08 07:11:03 packets.go:58 unexpected EOF [mysql] 2026/04/08 07:11:13 packets.go:58 unexpected EOF [mysql] 2026/04/08 07:14:09 packets.go:58 unexpected EOF Name: "auto-config", Name: "config", Name: "ist", Name: "LD_PRELOAD", + {Name: "LD_PRELOAD", Value: "/usr/lib64/libtcmalloc.so"}, Name: "mysql", Name: "mysql-admin", Name: "mysql-init-file", {Name: "MYSQL_NOTIFY_SOCKET", Value: "/var/lib/mysql/notify.sock"}, {Name: "MYSQL_STATE_FILE", Value: "/var/lib/mysql/mysql.state"}, Name: "mysql-users-secret-file", Name: "mysqlx", Namespace: "allocator-16084", Name: "ssl", Name: "ssl-internal", Name: "sst", {Name: "tmp", VolumeSource: {EmptyDir: &{}}}, Name: "vault-keyring-secret", Name: "write-set", NFS: nil, NodeName: "", NodeSelector: nil, ObjectMeta: {Labels: {"app.kubernetes.io/component": "pxc", "app.kubernetes.io/instance": "some-name", "app.kubernetes.io/managed-by": "percona-xtradb-cluster-operator", "app.kubernetes.io/name": "percona-xtradb-cluster", ...}, Annotations: {"kubectl.kubernetes.io/default-container": "pxc", "percona.com/configuration-hash": "d41d8cd98f00b204e9800998ecf8427e", "percona.com/ssl-hash": "cfd6a52398268173b51d7cdb1331c09a", "percona.com/ssl-internal-hash": "751e59a1c1d94ac67f9d6bb6e756acdc"}}, ObjectMeta: {Name: "datadir", Labels: {"app.kubernetes.io/component": "pxc", "app.kubernetes.io/instance": "some-name", "app.kubernetes.io/managed-by": "percona-xtradb-cluster-operator", "app.kubernetes.io/name": "percona-xtradb-cluster", ...}}, ObjectMeta: v1.ObjectMeta{ + ObservedGeneration: 0, - ObservedGeneration: 1, - ObservedGeneration: 2, - Operation: "Update", - Operation: "Update", Optional: &false, Optional: &true, Optional: &true, Ordinals: nil, OS: nil, Overhead: nil, OwnerReferences: {{APIVersion: "pxc.percona.com/v1", Kind: "PerconaXtraDBCluster", Name: "some-name", UID: "c3f6cbb7-8e24-44b7-b14d-bc7711e810f7", ...}}, + "percona.com/last-config-hash": "eyJyZXBsaWNhcyI6Mywic2VsZWN0b3IiOnsibWF0Y2hMYWJlbHMiOnsiYXBwLmt1YmVybmV0ZXMuaW8vY29tcG9uZW50IjoicHhjIiwiYXBwLmt1YmVybmV0ZXMuaW8vaW5zdGFuY2UiOiJzb21lLW5hbWUiLCJhcHAua3ViZXJuZXRlcy5pby9tYW5hZ2VkLWJ5IjoicGVyY29uYS14dHJhZGItY2x1c3Rlci1vcGVyYXRvciIsImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiJwZXJjb25hLXh0cmFkYi1jbHVzdGVyIiwiYXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZiI6InBlcmNvbmEteHRyYWRiLWNsdXN0ZXIifX0sInRlbXBsYXRlIjp7Im1ldGFkYXRhIjp7ImxhYmVscyI6eyJhcHAua3ViZXJuZXRlcy5pby9jb21wb25lbnQiOiJweGMiLCJhcHAua3ViZXJuZXRlcy5pby9pbnN0YW5jZSI6InNvbWUtbmFtZSIsImFwcC5rdWJlcm5ldGVzLmlvL21hbmFnZWQtYnkiOiJwZXJjb25hLXh0cmFkYi1jbHVzdGVyLW9wZXJhdG9yIiwiYXBwLmt1YmVybmV0ZXMuaW8vbmFtZSI6InBlcmNvbmEteHRyYWRiLWNsdXN0ZXIiLCJhcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mIjoicGVyY29uYS14dHJhZGItY2x1c3RlciJ9LCJhbm5vdGF0aW9ucyI6eyJrdWJlY3RsLmt1YmVybmV0ZXMuaW8vZGVmYXVsdC1jb250YWluZXIiOiJweGMiLCJwZXJjb25hLmNvbS9jb25maWd1cmF0aW9uLWhhc2giOiJkNDFkOGNkOThmMDBiMjA0ZTk4MDA5OThlY2Y4NDI3ZSIsInBlcmNvbmEuY29tL3NzbC1oYXNoIjoiY2ZkNmE1MjM5ODI2ODE3M2I1MWQ3Y2RiMTMzMWMwOWEiLCJwZXJjb25hLmNvbS9zc2wtaW50ZXJuYWwtaGFzaCI6Ijc1MWU1OWExYzFkOTRhYzY3ZjlkNmJiNmU3NTZhY2RjIn19LCJzcGVjIjp7InZvbHVtZXMiOlt7Im5hbWUiOiJ0bXAiLCJlbXB0eURpciI6e319LHsibmFtZSI6ImNvbmZpZyIsImNvbmZpZ01hcCI6eyJuYW1lIjoic29tZS1uYW1lLXB4YyIsIm9wdGlvbmFsIjp0cnVlfX0seyJuYW1lIjoic3NsLWludGVybmFsIiwic2VjcmV0Ijp7InNlY3JldE5hbWUiOiJzb21lLW5hbWUtc3NsLWludGVybmFsIiwib3B0aW9uYWwiOnRydWV9fSx7Im5hbWUiOiJzc2wiLCJzZWNyZXQiOnsic2VjcmV0TmFtZSI6InNvbWUtbmFtZS1zc2wiLCJvcHRpb25hbCI6ZmFsc2V9fSx7Im5hbWUiOiJhdXRvLWNvbmZpZyIsImNvbmZpZ01hcCI6eyJuYW1lIjoiYXV0by1zb21lLW5hbWUtcHhjIiwib3B0aW9uYWwiOnRydWV9fSx7Im5hbWUiOiJ2YXVsdC1rZXlyaW5nLXNlY3JldCIsInNlY3JldCI6eyJzZWNyZXROYW1lIjoic29tZS1uYW1lLXZhdWx0Iiwib3B0aW9uYWwiOnRydWV9fSx7Im5hbWUiOiJteXNxbC11c2Vycy1zZWNyZXQtZmlsZSIsInNlY3JldCI6eyJzZWNyZXROYW1lIjoiaW50ZXJuYWwtc29tZS1uYW1lIiwib3B0aW9uYWwiOmZhbHNlfX0seyJuYW1lIjoibXlzcWwtaW5pdC1maWxlIiwic2VjcmV0Ijp7InNlY3JldE5hbWUiOiJzb21lLW5hbWUtbXlzcWwtaW5pdCIsIm9wdGlvbmFsIjp0cnVlfX1dLCJpbml0Q29udGFpbmVycyI6W3sibmFtZSI6InB4Yy1pbml0IiwiaW1hZ2UiOiJwZXJjb25hbGFiL3BlcmNvbmEteHRyYWRiLWNsdXN0ZXItb3BlcmF0b3I6UFItMjQxNC1kMzQ2ZDU3NyIsImNvbW1hbmQiOlsiL3B4Yy1pbml0LWVudHJ5cG9pbnQuc2giXSwicmVzb3VyY2VzIjp7ImxpbWl0cyI6eyJjcHUiOiI1MG0iLCJtZW1vcnkiOiI1ME0ifX0sInZvbHVtZU1vdW50cyI6W3sibmFtZSI6ImRhdGFkaXIiLCJtb3VudFBhdGgiOiIvdmFyL2xpYi9teXNxbCJ9XSwiaW1hZ2VQdWxsUG9saWN5IjoiQWx3YXlzIn1dLCJjb250YWluZXJzIjpbeyJuYW1lIjoicHhjIiwiaW1hZ2UiOiJwZXJjb25hbGFiL3BlcmNvbmEteHRyYWRiLWNsdXN0ZXItb3BlcmF0b3I6bWFpbi1weGM4LjQiLCJjb21tYW5kIjpbIi92YXIvbGliL215c3FsL3B4Yy1lbnRyeXBvaW50LnNoIl0sImFyZ3MiOlsibXlzcWxkIl0sInBvcnRzIjpbeyJuYW1lIjoibXlzcWwiLCJjb250YWluZXJQb3J0IjozMzA2fSx7Im5hbWUiOiJzc3QiLCJjb250YWluZXJQb3J0Ijo0NDQ0fSx7Im5hbWUiOiJ3cml0ZS1zZXQiLCJjb250YWluZXJQb3J0Ijo0NTY3fSx7Im5hbWUiOiJpc3QiLCJjb250YWluZXJQb3J0Ijo0NTY4fSx7Im5hbWUiOiJteXNxbC1hZG1pbiIsImNvbnRhaW5lclBvcnQiOjMzMDYyfSx7Im5hbWUiOiJteXNxbHgiLCJjb250YWluZXJQb3J0IjozMzA2MH1dLCJlbnZGcm9tIjpbeyJzZWNyZXRSZWYiOnsibmFtZSI6InNvbWUtbmFtZS1lbnYtdmFycy1weGMiLCJvcHRpb25hbCI6dHJ1ZX19XSwiZW52IjpbeyJuYW1lIjoiUFhDX1NFUlZJQ0UiLCJ2YWx1ZSI6InNvbWUtbmFtZS1weGMtdW5yZWFkeSJ9LHsibmFtZSI6Ik1PTklUT1JfSE9TVCIsInZhbHVlIjoiJSJ9LHsibmFtZSI6Ik1ZU1FMX1JPT1RfUEFTU1dPUkQiLCJ2YWx1ZUZyb20iOnsic2VjcmV0S2V5UmVmIjp7Im5hbWUiOiJpbnRlcm5hbC1zb21lLW5hbWUiLCJrZXkiOiJyb290In19fSx7Im5hbWUiOiJYVFJBQkFDS1VQX1BBU1NXT1JEIiwidmFsdWVGcm9tIjp7InNlY3JldEtleVJlZiI6eyJuYW1lIjoiaW50ZXJuYWwtc29tZS1uYW1lIiwia2V5IjoieHRyYWJhY2t1cCJ9fX0seyJuYW1lIjoiTU9OSVRPUl9QQVNTV09SRCIsInZhbHVlRnJvbSI6eyJzZWNyZXRLZXlSZWYiOnsibmFtZSI6ImludGVybmFsLXNvbWUtbmFtZSIsImtleSI6Im1vbml0b3IifX19LHsibmFtZSI6IkNMVVNURVJfSEFTSCIsInZhbHVlIjoiMjA4MDMzMSJ9LHsibmFtZSI6Ik9QRVJBVE9SX0FETUlOX1BBU1NXT1JEIiwidmFsdWVGcm9tIjp7InNlY3JldEtleVJlZiI6eyJuYW1lIjoiaW50ZXJuYWwtc29tZS1uYW1lIiwia2V5Ijoib3BlcmF0b3IifX19LHsibmFtZSI6IkxJVkVORVNTX0NIRUNLX1RJTUVPVVQiLCJ2YWx1ZSI6IjUifSx7Im5hbWUiOiJSRUFESU5FU1NfQ0hFQ0tfVElNRU9VVCIsInZhbHVlIjoiMTUifSx7Im5hbWUiOiJERUZBVUxUX0FVVEhFTlRJQ0FUSU9OX1BMVUdJTiIsInZhbHVlIjoiY2FjaGluZ19zaGEyX3Bhc3N3b3JkIn0seyJuYW1lIjoiTVlTUUxfTk9USUZZX1NPQ0tFVCIsInZhbHVlIjoiL3Zhci9saWIvbXlzcWwvbm90aWZ5LnNvY2sifSx7Im5hbWUiOiJNWVNRTF9TVEFURV9GSUxFIiwidmFsdWUiOiIvdmFyL2xpYi9teXNxbC9teXNxbC5zdGF0ZSJ9LHsibmFtZSI6IkxEX1BSRUxPQUQiLCJ2YWx1ZSI6Ii91c3IvbGliNjQvbGliamVtYWxsb2Muc28uMiJ9XSwicmVzb3VyY2VzIjp7ImxpbWl0cyI6eyJjcHUiOiIxIiwibWVtb3J5IjoiMkcifSwicmVxdWVzdHMiOnsiY3B1IjoiMTAwbSIsIm1lbW9yeSI6IjEwME0ifX0sInZvbHVtZU1vdW50cyI6W3sibmFtZSI6ImRhdGFkaXIiLCJtb3VudFBhdGgiOiIvdmFyL2xpYi9teXNxbCJ9LHsibmFtZSI6ImNvbmZpZyIsIm1vdW50UGF0aCI6Ii9ldGMvcGVyY29uYS14dHJhZGItY2x1c3Rlci5jb25mLmQifSx7Im5hbWUiOiJ0bXAiLCJtb3VudFBhdGgiOiIvdG1wIn0seyJuYW1lIjoic3NsIiwibW91bnRQYXRoIjoiL2V0Yy9teXNxbC9zc2wifSx7Im5hbWUiOiJzc2wtaW50ZXJuYWwiLCJtb3VudFBhdGgiOiIvZXRjL215c3FsL3NzbC1pbnRlcm5hbCJ9LHsibmFtZSI6Im15c3FsLXVzZXJzLXNlY3JldC1maWxlIiwibW91bnRQYXRoIjoiL2V0Yy9teXNxbC9teXNxbC11c2Vycy1zZWNyZXQifSx7Im5hbWUiOiJhdXRvLWNvbmZpZyIsIm1vdW50UGF0aCI6Ii9ldGMvbXkuY25mLmQifSx7Im5hbWUiOiJ2YXVsdC1rZXlyaW5nLXNlY3JldCIsIm1vdW50UGF0aCI6Ii9ldGMvbXlzcWwvdmF1bHQta2V5cmluZy1zZWNyZXQifSx7Im5hbWUiOiJteXNxbC1pbml0LWZpbGUiLCJtb3VudFBhdGgiOiIvZXRjL215c3FsL2luaXQtZmlsZSJ9XSwibGl2ZW5lc3NQcm9iZSI6eyJleGVjIjp7ImNvbW1hbmQiOlsiL3Zhci9saWIvbXlzcWwvbGl2ZW5lc3MtY2hlY2suc2giXX0sImluaXRpYWxEZWxheVNlY29uZHMiOjMwMCwidGltZW91dFNlY29uZHMiOjUsInN1Y2Nlc3NUaHJlc2hvbGQiOjEsImZhaWx1cmVUaHJlc2hvbGQiOjN9LCJyZWFkaW5lc3NQcm9iZSI6eyJleGVjIjp7ImNvbW1hbmQiOlsiL3Zhci9saWIvbXlzcWwvcmVhZGluZXNzLWNoZWNrLnNoIl19LCJpbml0aWFsRGVsYXlTZWNvbmRzIjoxNSwidGltZW91dFNlY29uZHMiOjE1LCJwZXJpb2RTZWNvbmRzIjozMCwic3VjY2Vzc1RocmVzaG9sZCI6MSwiZmFpbHVyZVRocmVzaG9sZCI6NX0sImltYWdlUHVsbFBvbGljeSI6IkFsd2F5cyJ9XSwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOjYwMCwic2VydmljZUFjY291bnROYW1lIjoiZGVmYXVsdCIsInNlY3VyaXR5Q29udGV4dCI6eyJzdXBwbGVtZW50YWxHcm91cHMiOlsxMDAxXSwiZnNHcm91cCI6MTAwMX0sImFmZmluaXR5Ijp7InBvZEFudGlBZmZpbml0eSI6eyJyZXF1aXJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjpbeyJsYWJlbFNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7ImFwcC5rdWJlcm5ldGVzLmlvL2NvbXBvbmVudCI6InB4YyIsImFwcC5rdWJlcm5ldGVzLmlvL2luc3RhbmNlIjoic29tZS1uYW1lIiwiYXBwLmt1YmVybmV0ZXMuaW8vbWFuYWdlZC1ieSI6InBlcmNvbmEteHRyYWRiLWNsdXN0ZXItb3BlcmF0b3IiLCJhcHAua3ViZXJuZXRlcy5pby9uYW1lIjoicGVyY29uYS14dHJhZGItY2x1c3RlciIsImFwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2YiOiJwZXJjb25hLXh0cmFkYi1jbHVzdGVyIn19LCJ0b3BvbG9neUtleSI6Imt1YmVybmV0ZXMuaW8vaG9zdG5hbWUifV19fX19LCJ2b2x1bWVDbGFpbVRlbXBsYXRlcyI6W3sibWV0YWRhdGEiOnsibmFtZSI6ImRhdGFkaXIiLCJsYWJlbHMiOnsiYXBwLmt1YmVybmV0ZXMuaW8vY29tcG9uZW50IjoicHhjIiwiYXBwLmt1YmVybmV0ZXMuaW8vaW5zdGFuY2UiOiJzb21lLW5hbWUiLCJhcHAua3ViZXJuZXRlcy5pby9tYW5hZ2VkLWJ5IjoicGVyY29uYS14dHJhZGItY2x1c3Rlci1vcGVyYXRvciIsImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiJwZXJjb25hLXh0cmFkYi1jbHVzdGVyIiwiYXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZiI6InBlcmNvbmEteHRyYWRiLWNsdXN0ZXIifX0sInNwZWMiOnsiYWNjZXNzTW9kZXMiOlsiUmVhZFdyaXRlT25jZSJdLCJyZXNvdXJjZXMiOnsicmVxdWVzdHMiOnsic3RvcmFnZSI6IjJHaSJ9fX0sInN0YXR1cyI6e319XSwic2VydmljZU5hbWUiOiJzb21lLW5hbWUtcHhjIiwidXBkYXRlU3RyYXRlZ3kiOnsidHlwZSI6IlJvbGxpbmdVcGRhdGUiLCJyb2xsaW5nVXBkYXRlIjp7InBhcnRpdGlvbiI6MH19fQ==", - "percona.com/last-config-hash": "eyJyZXBsaWNhcyI6Mywic2VsZWN0b3IiOnsibWF0Y2hMYWJlbHMiOnsiYXBwLmt1YmVybmV0ZXMuaW8vY29tcG9uZW50IjoicHhjIiwiYXBwLmt1YmVybmV0ZXMuaW8vaW5zdGFuY2UiOiJzb21lLW5hbWUiLCJhcHAua3ViZXJuZXRlcy5pby9tYW5hZ2VkLWJ5IjoicGVyY29uYS14dHJhZGItY2x1c3Rlci1vcGVyYXRvciIsImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiJwZXJjb25hLXh0cmFkYi1jbHVzdGVyIiwiYXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZiI6InBlcmNvbmEteHRyYWRiLWNsdXN0ZXIifX0sInRlbXBsYXRlIjp7Im1ldGFkYXRhIjp7ImxhYmVscyI6eyJhcHAua3ViZXJuZXRlcy5pby9jb21wb25lbnQiOiJweGMiLCJhcHAua3ViZXJuZXRlcy5pby9pbnN0YW5jZSI6InNvbWUtbmFtZSIsImFwcC5rdWJlcm5ldGVzLmlvL21hbmFnZWQtYnkiOiJwZXJjb25hLXh0cmFkYi1jbHVzdGVyLW9wZXJhdG9yIiwiYXBwLmt1YmVybmV0ZXMuaW8vbmFtZSI6InBlcmNvbmEteHRyYWRiLWNsdXN0ZXIiLCJhcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mIjoicGVyY29uYS14dHJhZGItY2x1c3RlciJ9LCJhbm5vdGF0aW9ucyI6eyJrdWJlY3RsLmt1YmVybmV0ZXMuaW8vZGVmYXVsdC1jb250YWluZXIiOiJweGMiLCJwZXJjb25hLmNvbS9jb25maWd1cmF0aW9uLWhhc2giOiJkNDFkOGNkOThmMDBiMjA0ZTk4MDA5OThlY2Y4NDI3ZSIsInBlcmNvbmEuY29tL3NzbC1oYXNoIjoiY2ZkNmE1MjM5ODI2ODE3M2I1MWQ3Y2RiMTMzMWMwOWEiLCJwZXJjb25hLmNvbS9zc2wtaW50ZXJuYWwtaGFzaCI6Ijc1MWU1OWExYzFkOTRhYzY3ZjlkNmJiNmU3NTZhY2RjIn19LCJzcGVjIjp7InZvbHVtZXMiOlt7Im5hbWUiOiJ0bXAiLCJlbXB0eURpciI6e319LHsibmFtZSI6ImNvbmZpZyIsImNvbmZpZ01hcCI6eyJuYW1lIjoic29tZS1uYW1lLXB4YyIsIm9wdGlvbmFsIjp0cnVlfX0seyJuYW1lIjoic3NsLWludGVybmFsIiwic2VjcmV0Ijp7InNlY3JldE5hbWUiOiJzb21lLW5hbWUtc3NsLWludGVybmFsIiwib3B0aW9uYWwiOnRydWV9fSx7Im5hbWUiOiJzc2wiLCJzZWNyZXQiOnsic2VjcmV0TmFtZSI6InNvbWUtbmFtZS1zc2wiLCJvcHRpb25hbCI6ZmFsc2V9fSx7Im5hbWUiOiJhdXRvLWNvbmZpZyIsImNvbmZpZ01hcCI6eyJuYW1lIjoiYXV0by1zb21lLW5hbWUtcHhjIiwib3B0aW9uYWwiOnRydWV9fSx7Im5hbWUiOiJ2YXVsdC1rZXlyaW5nLXNlY3JldCIsInNlY3JldCI6eyJzZWNyZXROYW1lIjoic29tZS1uYW1lLXZhdWx0Iiwib3B0aW9uYWwiOnRydWV9fSx7Im5hbWUiOiJteXNxbC11c2Vycy1zZWNyZXQtZmlsZSIsInNlY3JldCI6eyJzZWNyZXROYW1lIjoiaW50ZXJuYWwtc29tZS1uYW1lIiwib3B0aW9uYWwiOmZhbHNlfX0seyJuYW1lIjoibXlzcWwtaW5pdC1maWxlIiwic2VjcmV0Ijp7InNlY3JldE5hbWUiOiJzb21lLW5hbWUtbXlzcWwtaW5pdCIsIm9wdGlvbmFsIjp0cnVlfX1dLCJpbml0Q29udGFpbmVycyI6W3sibmFtZSI6InB4Yy1pbml0IiwiaW1hZ2UiOiJwZXJjb25hbGFiL3BlcmNvbmEteHRyYWRiLWNsdXN0ZXItb3BlcmF0b3I6UFItMjQxNC1kMzQ2ZDU3NyIsImNvbW1hbmQiOlsiL3B4Yy1pbml0LWVudHJ5cG9pbnQuc2giXSwicmVzb3VyY2VzIjp7ImxpbWl0cyI6eyJjcHUiOiI1MG0iLCJtZW1vcnkiOiI1ME0ifX0sInZvbHVtZU1vdW50cyI6W3sibmFtZSI6ImRhdGFkaXIiLCJtb3VudFBhdGgiOiIvdmFyL2xpYi9teXNxbCJ9XSwiaW1hZ2VQdWxsUG9saWN5IjoiQWx3YXlzIn1dLCJjb250YWluZXJzIjpbeyJuYW1lIjoicHhjIiwiaW1hZ2UiOiJwZXJjb25hbGFiL3BlcmNvbmEteHRyYWRiLWNsdXN0ZXItb3BlcmF0b3I6bWFpbi1weGM4LjQiLCJjb21tYW5kIjpbIi92YXIvbGliL215c3FsL3B4Yy1lbnRyeXBvaW50LnNoIl0sImFyZ3MiOlsibXlzcWxkIl0sInBvcnRzIjpbeyJuYW1lIjoibXlzcWwiLCJjb250YWluZXJQb3J0IjozMzA2fSx7Im5hbWUiOiJzc3QiLCJjb250YWluZXJQb3J0Ijo0NDQ0fSx7Im5hbWUiOiJ3cml0ZS1zZXQiLCJjb250YWluZXJQb3J0Ijo0NTY3fSx7Im5hbWUiOiJpc3QiLCJjb250YWluZXJQb3J0Ijo0NTY4fSx7Im5hbWUiOiJteXNxbC1hZG1pbiIsImNvbnRhaW5lclBvcnQiOjMzMDYyfSx7Im5hbWUiOiJteXNxbHgiLCJjb250YWluZXJQb3J0IjozMzA2MH1dLCJlbnZGcm9tIjpbeyJzZWNyZXRSZWYiOnsibmFtZSI6InNvbWUtbmFtZS1lbnYtdmFycy1weGMiLCJvcHRpb25hbCI6dHJ1ZX19XSwiZW52IjpbeyJuYW1lIjoiUFhDX1NFUlZJQ0UiLCJ2YWx1ZSI6InNvbWUtbmFtZS1weGMtdW5yZWFkeSJ9LHsibmFtZSI6Ik1PTklUT1JfSE9TVCIsInZhbHVlIjoiJSJ9LHsibmFtZSI6Ik1ZU1FMX1JPT1RfUEFTU1dPUkQiLCJ2YWx1ZUZyb20iOnsic2VjcmV0S2V5UmVmIjp7Im5hbWUiOiJpbnRlcm5hbC1zb21lLW5hbWUiLCJrZXkiOiJyb290In19fSx7Im5hbWUiOiJYVFJBQkFDS1VQX1BBU1NXT1JEIiwidmFsdWVGcm9tIjp7InNlY3JldEtleVJlZiI6eyJuYW1lIjoiaW50ZXJuYWwtc29tZS1uYW1lIiwia2V5IjoieHRyYWJhY2t1cCJ9fX0seyJuYW1lIjoiTU9OSVRPUl9QQVNTV09SRCIsInZhbHVlRnJvbSI6eyJzZWNyZXRLZXlSZWYiOnsibmFtZSI6ImludGVybmFsLXNvbWUtbmFtZSIsImtleSI6Im1vbml0b3IifX19LHsibmFtZSI6IkNMVVNURVJfSEFTSCIsInZhbHVlIjoiMjA4MDMzMSJ9LHsibmFtZSI6Ik9QRVJBVE9SX0FETUlOX1BBU1NXT1JEIiwidmFsdWVGcm9tIjp7InNlY3JldEtleVJlZiI6eyJuYW1lIjoiaW50ZXJuYWwtc29tZS1uYW1lIiwia2V5Ijoib3BlcmF0b3IifX19LHsibmFtZSI6IkxJVkVORVNTX0NIRUNLX1RJTUVPVVQiLCJ2YWx1ZSI6IjUifSx7Im5hbWUiOiJSRUFESU5FU1NfQ0hFQ0tfVElNRU9VVCIsInZhbHVlIjoiMTUifSx7Im5hbWUiOiJERUZBVUxUX0FVVEhFTlRJQ0FUSU9OX1BMVUdJTiIsInZhbHVlIjoiY2FjaGluZ19zaGEyX3Bhc3N3b3JkIn0seyJuYW1lIjoiTVlTUUxfTk9USUZZX1NPQ0tFVCIsInZhbHVlIjoiL3Zhci9saWIvbXlzcWwvbm90aWZ5LnNvY2sifSx7Im5hbWUiOiJNWVNRTF9TVEFURV9GSUxFIiwidmFsdWUiOiIvdmFyL2xpYi9teXNxbC9teXNxbC5zdGF0ZSJ9LHsibmFtZSI6IkxEX1BSRUxPQUQiLCJ2YWx1ZSI6Ii91c3IvbGliNjQvbGlidGNtYWxsb2Muc28ifV0sInJlc291cmNlcyI6eyJsaW1pdHMiOnsiY3B1IjoiMSIsIm1lbW9yeSI6IjJHIn0sInJlcXVlc3RzIjp7ImNwdSI6IjEwMG0iLCJtZW1vcnkiOiIxMDBNIn19LCJ2b2x1bWVNb3VudHMiOlt7Im5hbWUiOiJkYXRhZGlyIiwibW91bnRQYXRoIjoiL3Zhci9saWIvbXlzcWwifSx7Im5hbWUiOiJjb25maWciLCJtb3VudFBhdGgiOiIvZXRjL3BlcmNvbmEteHRyYWRiLWNsdXN0ZXIuY29uZi5kIn0seyJuYW1lIjoidG1wIiwibW91bnRQYXRoIjoiL3RtcCJ9LHsibmFtZSI6InNzbCIsIm1vdW50UGF0aCI6Ii9ldGMvbXlzcWwvc3NsIn0seyJuYW1lIjoic3NsLWludGVybmFsIiwibW91bnRQYXRoIjoiL2V0Yy9teXNxbC9zc2wtaW50ZXJuYWwifSx7Im5hbWUiOiJteXNxbC11c2Vycy1zZWNyZXQtZmlsZSIsIm1vdW50UGF0aCI6Ii9ldGMvbXlzcWwvbXlzcWwtdXNlcnMtc2VjcmV0In0seyJuYW1lIjoiYXV0by1jb25maWciLCJtb3VudFBhdGgiOiIvZXRjL215LmNuZi5kIn0seyJuYW1lIjoidmF1bHQta2V5cmluZy1zZWNyZXQiLCJtb3VudFBhdGgiOiIvZXRjL215c3FsL3ZhdWx0LWtleXJpbmctc2VjcmV0In0seyJuYW1lIjoibXlzcWwtaW5pdC1maWxlIiwibW91bnRQYXRoIjoiL2V0Yy9teXNxbC9pbml0LWZpbGUifV0sImxpdmVuZXNzUHJvYmUiOnsiZXhlYyI6eyJjb21tYW5kIjpbIi92YXIvbGliL215c3FsL2xpdmVuZXNzLWNoZWNrLnNoIl19LCJpbml0aWFsRGVsYXlTZWNvbmRzIjozMDAsInRpbWVvdXRTZWNvbmRzIjo1LCJzdWNjZXNzVGhyZXNob2xkIjoxLCJmYWlsdXJlVGhyZXNob2xkIjozfSwicmVhZGluZXNzUHJvYmUiOnsiZXhlYyI6eyJjb21tYW5kIjpbIi92YXIvbGliL215c3FsL3JlYWRpbmVzcy1jaGVjay5zaCJdfSwiaW5pdGlhbERlbGF5U2Vjb25kcyI6MTUsInRpbWVvdXRTZWNvbmRzIjoxNSwicGVyaW9kU2Vjb25kcyI6MzAsInN1Y2Nlc3NUaHJlc2hvbGQiOjEsImZhaWx1cmVUaHJlc2hvbGQiOjV9LCJpbWFnZVB1bGxQb2xpY3kiOiJBbHdheXMifV0sInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjo2MDAsInNlcnZpY2VBY2NvdW50TmFtZSI6ImRlZmF1bHQiLCJzZWN1cml0eUNvbnRleHQiOnsic3VwcGxlbWVudGFsR3JvdXBzIjpbMTAwMV0sImZzR3JvdXAiOjEwMDF9LCJhZmZpbml0eSI6eyJwb2RBbnRpQWZmaW5pdHkiOnsicmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6W3sibGFiZWxTZWxlY3RvciI6eyJtYXRjaExhYmVscyI6eyJhcHAua3ViZXJuZXRlcy5pby9jb21wb25lbnQiOiJweGMiLCJhcHAua3ViZXJuZXRlcy5pby9pbnN0YW5jZSI6InNvbWUtbmFtZSIsImFwcC5rdWJlcm5ldGVzLmlvL21hbmFnZWQtYnkiOiJwZXJjb25hLXh0cmFkYi1jbHVzdGVyLW9wZXJhdG9yIiwiYXBwLmt1YmVybmV0ZXMuaW8vbmFtZSI6InBlcmNvbmEteHRyYWRiLWNsdXN0ZXIiLCJhcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mIjoicGVyY29uYS14dHJhZGItY2x1c3RlciJ9fSwidG9wb2xvZ3lLZXkiOiJrdWJlcm5ldGVzLmlvL2hvc3RuYW1lIn1dfX19fSwidm9sdW1lQ2xhaW1UZW1wbGF0ZXMiOlt7Im1ldGFkYXRhIjp7Im5hbWUiOiJkYXRhZGlyIiwibGFiZWxzIjp7ImFwcC5rdWJlcm5ldGVzLmlvL2NvbXBvbmVudCI6InB4YyIsImFwcC5rdWJlcm5ldGVzLmlvL2luc3RhbmNlIjoic29tZS1uYW1lIiwiYXBwLmt1YmVybmV0ZXMuaW8vbWFuYWdlZC1ieSI6InBlcmNvbmEteHRyYWRiLWNsdXN0ZXItb3BlcmF0b3IiLCJhcHAua3ViZXJuZXRlcy5pby9uYW1lIjoicGVyY29uYS14dHJhZGItY2x1c3RlciIsImFwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2YiOiJwZXJjb25hLXh0cmFkYi1jbHVzdGVyIn19LCJzcGVjIjp7ImFjY2Vzc01vZGVzIjpbIlJlYWRXcml0ZU9uY2UiXSwicmVzb3VyY2VzIjp7InJlcXVlc3RzIjp7InN0b3JhZ2UiOiIyR2kifX19LCJzdGF0dXMiOnt9fV0sInNlcnZpY2VOYW1lIjoic29tZS1uYW1lLXB4YyIsInVwZGF0ZVN0cmF0ZWd5Ijp7InR5cGUiOiJSb2xsaW5nVXBkYXRlIiwicm9sbGluZ1VwZGF0ZSI6eyJwYXJ0aXRpb24iOjB9fX0=", + "percona.com/last-config-hash": "eyJyZXBsaWNhcyI6Mywic2VsZWN0b3IiOnsibWF0Y2hMYWJlbHMiOnsiYXBwLmt1YmVybmV0ZXMuaW8vY29tcG9uZW50IjoicHhjIiwiYXBwLmt1YmVybmV0ZXMuaW8vaW5zdGFuY2UiOiJzb21lLW5hbWUiLCJhcHAua3ViZXJuZXRlcy5pby9tYW5hZ2VkLWJ5IjoicGVyY29uYS14dHJhZGItY2x1c3Rlci1vcGVyYXRvciIsImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiJwZXJjb25hLXh0cmFkYi1jbHVzdGVyIiwiYXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZiI6InBlcmNvbmEteHRyYWRiLWNsdXN0ZXIifX0sInRlbXBsYXRlIjp7Im1ldGFkYXRhIjp7ImxhYmVscyI6eyJhcHAua3ViZXJuZXRlcy5pby9jb21wb25lbnQiOiJweGMiLCJhcHAua3ViZXJuZXRlcy5pby9pbnN0YW5jZSI6InNvbWUtbmFtZSIsImFwcC5rdWJlcm5ldGVzLmlvL21hbmFnZWQtYnkiOiJwZXJjb25hLXh0cmFkYi1jbHVzdGVyLW9wZXJhdG9yIiwiYXBwLmt1YmVybmV0ZXMuaW8vbmFtZSI6InBlcmNvbmEteHRyYWRiLWNsdXN0ZXIiLCJhcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mIjoicGVyY29uYS14dHJhZGItY2x1c3RlciJ9LCJhbm5vdGF0aW9ucyI6eyJrdWJlY3RsLmt1YmVybmV0ZXMuaW8vZGVmYXVsdC1jb250YWluZXIiOiJweGMiLCJwZXJjb25hLmNvbS9jb25maWd1cmF0aW9uLWhhc2giOiJkNDFkOGNkOThmMDBiMjA0ZTk4MDA5OThlY2Y4NDI3ZSIsInBlcmNvbmEuY29tL3NzbC1oYXNoIjoiY2ZkNmE1MjM5ODI2ODE3M2I1MWQ3Y2RiMTMzMWMwOWEiLCJwZXJjb25hLmNvbS9zc2wtaW50ZXJuYWwtaGFzaCI6Ijc1MWU1OWExYzFkOTRhYzY3ZjlkNmJiNmU3NTZhY2RjIn19LCJzcGVjIjp7InZvbHVtZXMiOlt7Im5hbWUiOiJ0bXAiLCJlbXB0eURpciI6e319LHsibmFtZSI6ImNvbmZpZyIsImNvbmZpZ01hcCI6eyJuYW1lIjoic29tZS1uYW1lLXB4YyIsIm9wdGlvbmFsIjp0cnVlfX0seyJuYW1lIjoic3NsLWludGVybmFsIiwic2VjcmV0Ijp7InNlY3JldE5hbWUiOiJzb21lLW5hbWUtc3NsLWludGVybmFsIiwib3B0aW9uYWwiOnRydWV9fSx7Im5hbWUiOiJzc2wiLCJzZWNyZXQiOnsic2VjcmV0TmFtZSI6InNvbWUtbmFtZS1zc2wiLCJvcHRpb25hbCI6ZmFsc2V9fSx7Im5hbWUiOiJhdXRvLWNvbmZpZyIsImNvbmZpZ01hcCI6eyJuYW1lIjoiYXV0by1zb21lLW5hbWUtcHhjIiwib3B0aW9uYWwiOnRydWV9fSx7Im5hbWUiOiJ2YXVsdC1rZXlyaW5nLXNlY3JldCIsInNlY3JldCI6eyJzZWNyZXROYW1lIjoic29tZS1uYW1lLXZhdWx0Iiwib3B0aW9uYWwiOnRydWV9fSx7Im5hbWUiOiJteXNxbC11c2Vycy1zZWNyZXQtZmlsZSIsInNlY3JldCI6eyJzZWNyZXROYW1lIjoiaW50ZXJuYWwtc29tZS1uYW1lIiwib3B0aW9uYWwiOmZhbHNlfX0seyJuYW1lIjoibXlzcWwtaW5pdC1maWxlIiwic2VjcmV0Ijp7InNlY3JldE5hbWUiOiJzb21lLW5hbWUtbXlzcWwtaW5pdCIsIm9wdGlvbmFsIjp0cnVlfX1dLCJpbml0Q29udGFpbmVycyI6W3sibmFtZSI6InB4Yy1pbml0IiwiaW1hZ2UiOiJwZXJjb25hbGFiL3BlcmNvbmEteHRyYWRiLWNsdXN0ZXItb3BlcmF0b3I6UFItMjQxNC1kMzQ2ZDU3NyIsImNvbW1hbmQiOlsiL3B4Yy1pbml0LWVudHJ5cG9pbnQuc2giXSwicmVzb3VyY2VzIjp7ImxpbWl0cyI6eyJjcHUiOiI1MG0iLCJtZW1vcnkiOiI1ME0ifX0sInZvbHVtZU1vdW50cyI6W3sibmFtZSI6ImRhdGFkaXIiLCJtb3VudFBhdGgiOiIvdmFyL2xpYi9teXNxbCJ9XSwiaW1hZ2VQdWxsUG9saWN5IjoiQWx3YXlzIn1dLCJjb250YWluZXJzIjpbeyJuYW1lIjoicHhjIiwiaW1hZ2UiOiJwZXJjb25hbGFiL3BlcmNvbmEteHRyYWRiLWNsdXN0ZXItb3BlcmF0b3I6bWFpbi1weGM4LjQiLCJjb21tYW5kIjpbIi92YXIvbGliL215c3FsL3B4Yy1lbnRyeXBvaW50LnNoIl0sImFyZ3MiOlsibXlzcWxkIl0sInBvcnRzIjpbeyJuYW1lIjoibXlzcWwiLCJjb250YWluZXJQb3J0IjozMzA2fSx7Im5hbWUiOiJzc3QiLCJjb250YWluZXJQb3J0Ijo0NDQ0fSx7Im5hbWUiOiJ3cml0ZS1zZXQiLCJjb250YWluZXJQb3J0Ijo0NTY3fSx7Im5hbWUiOiJpc3QiLCJjb250YWluZXJQb3J0Ijo0NTY4fSx7Im5hbWUiOiJteXNxbC1hZG1pbiIsImNvbnRhaW5lclBvcnQiOjMzMDYyfSx7Im5hbWUiOiJteXNxbHgiLCJjb250YWluZXJQb3J0IjozMzA2MH1dLCJlbnZGcm9tIjpbeyJzZWNyZXRSZWYiOnsibmFtZSI6InNvbWUtbmFtZS1lbnYtdmFycy1weGMiLCJvcHRpb25hbCI6dHJ1ZX19XSwiZW52IjpbeyJuYW1lIjoiUFhDX1NFUlZJQ0UiLCJ2YWx1ZSI6InNvbWUtbmFtZS1weGMtdW5yZWFkeSJ9LHsibmFtZSI6Ik1PTklUT1JfSE9TVCIsInZhbHVlIjoiJSJ9LHsibmFtZSI6Ik1ZU1FMX1JPT1RfUEFTU1dPUkQiLCJ2YWx1ZUZyb20iOnsic2VjcmV0S2V5UmVmIjp7Im5hbWUiOiJpbnRlcm5hbC1zb21lLW5hbWUiLCJrZXkiOiJyb290In19fSx7Im5hbWUiOiJYVFJBQkFDS1VQX1BBU1NXT1JEIiwidmFsdWVGcm9tIjp7InNlY3JldEtleVJlZiI6eyJuYW1lIjoiaW50ZXJuYWwtc29tZS1uYW1lIiwia2V5IjoieHRyYWJhY2t1cCJ9fX0seyJuYW1lIjoiTU9OSVRPUl9QQVNTV09SRCIsInZhbHVlRnJvbSI6eyJzZWNyZXRLZXlSZWYiOnsibmFtZSI6ImludGVybmFsLXNvbWUtbmFtZSIsImtleSI6Im1vbml0b3IifX19LHsibmFtZSI6IkNMVVNURVJfSEFTSCIsInZhbHVlIjoiMjA4MDMzMSJ9LHsibmFtZSI6Ik9QRVJBVE9SX0FETUlOX1BBU1NXT1JEIiwidmFsdWVGcm9tIjp7InNlY3JldEtleVJlZiI6eyJuYW1lIjoiaW50ZXJuYWwtc29tZS1uYW1lIiwia2V5Ijoib3BlcmF0b3IifX19LHsibmFtZSI6IkxJVkVORVNTX0NIRUNLX1RJTUVPVVQiLCJ2YWx1ZSI6IjUifSx7Im5hbWUiOiJSRUFESU5FU1NfQ0hFQ0tfVElNRU9VVCIsInZhbHVlIjoiMTUifSx7Im5hbWUiOiJERUZBVUxUX0FVVEhFTlRJQ0FUSU9OX1BMVUdJTiIsInZhbHVlIjoiY2FjaGluZ19zaGEyX3Bhc3N3b3JkIn0seyJuYW1lIjoiTVlTUUxfTk9USUZZX1NPQ0tFVCIsInZhbHVlIjoiL3Zhci9saWIvbXlzcWwvbm90aWZ5LnNvY2sifSx7Im5hbWUiOiJNWVNRTF9TVEFURV9GSUxFIiwidmFsdWUiOiIvdmFyL2xpYi9teXNxbC9teXNxbC5zdGF0ZSJ9LHsibmFtZSI6IkxEX1BSRUxPQUQiLCJ2YWx1ZSI6Ii91c3IvbGliNjQvbGlidGNtYWxsb2Muc28ifV0sInJlc291cmNlcyI6eyJsaW1pdHMiOnsiY3B1IjoiMSIsIm1lbW9yeSI6IjJHIn0sInJlcXVlc3RzIjp7ImNwdSI6IjEwMG0iLCJtZW1vcnkiOiIxMDBNIn19LCJ2b2x1bWVNb3VudHMiOlt7Im5hbWUiOiJkYXRhZGlyIiwibW91bnRQYXRoIjoiL3Zhci9saWIvbXlzcWwifSx7Im5hbWUiOiJjb25maWciLCJtb3VudFBhdGgiOiIvZXRjL3BlcmNvbmEteHRyYWRiLWNsdXN0ZXIuY29uZi5kIn0seyJuYW1lIjoidG1wIiwibW91bnRQYXRoIjoiL3RtcCJ9LHsibmFtZSI6InNzbCIsIm1vdW50UGF0aCI6Ii9ldGMvbXlzcWwvc3NsIn0seyJuYW1lIjoic3NsLWludGVybmFsIiwibW91bnRQYXRoIjoiL2V0Yy9teXNxbC9zc2wtaW50ZXJuYWwifSx7Im5hbWUiOiJteXNxbC11c2Vycy1zZWNyZXQtZmlsZSIsIm1vdW50UGF0aCI6Ii9ldGMvbXlzcWwvbXlzcWwtdXNlcnMtc2VjcmV0In0seyJuYW1lIjoiYXV0by1jb25maWciLCJtb3VudFBhdGgiOiIvZXRjL215LmNuZi5kIn0seyJuYW1lIjoidmF1bHQta2V5cmluZy1zZWNyZXQiLCJtb3VudFBhdGgiOiIvZXRjL215c3FsL3ZhdWx0LWtleXJpbmctc2VjcmV0In0seyJuYW1lIjoibXlzcWwtaW5pdC1maWxlIiwibW91bnRQYXRoIjoiL2V0Yy9teXNxbC9pbml0LWZpbGUifV0sImxpdmVuZXNzUHJvYmUiOnsiZXhlYyI6eyJjb21tYW5kIjpbIi92YXIvbGliL215c3FsL2xpdmVuZXNzLWNoZWNrLnNoIl19LCJpbml0aWFsRGVsYXlTZWNvbmRzIjozMDAsInRpbWVvdXRTZWNvbmRzIjo1LCJzdWNjZXNzVGhyZXNob2xkIjoxLCJmYWlsdXJlVGhyZXNob2xkIjozfSwicmVhZGluZXNzUHJvYmUiOnsiZXhlYyI6eyJjb21tYW5kIjpbIi92YXIvbGliL215c3FsL3JlYWRpbmVzcy1jaGVjay5zaCJdfSwiaW5pdGlhbERlbGF5U2Vjb25kcyI6MTUsInRpbWVvdXRTZWNvbmRzIjoxNSwicGVyaW9kU2Vjb25kcyI6MzAsInN1Y2Nlc3NUaHJlc2hvbGQiOjEsImZhaWx1cmVUaHJlc2hvbGQiOjV9LCJpbWFnZVB1bGxQb2xpY3kiOiJBbHdheXMifV0sInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjo2MDAsInNlcnZpY2VBY2NvdW50TmFtZSI6ImRlZmF1bHQiLCJzZWN1cml0eUNvbnRleHQiOnsic3VwcGxlbWVudGFsR3JvdXBzIjpbMTAwMV0sImZzR3JvdXAiOjEwMDF9LCJhZmZpbml0eSI6eyJwb2RBbnRpQWZmaW5pdHkiOnsicmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6W3sibGFiZWxTZWxlY3RvciI6eyJtYXRjaExhYmVscyI6eyJhcHAua3ViZXJuZXRlcy5pby9jb21wb25lbnQiOiJweGMiLCJhcHAua3ViZXJuZXRlcy5pby9pbnN0YW5jZSI6InNvbWUtbmFtZSIsImFwcC5rdWJlcm5ldGVzLmlvL21hbmFnZWQtYnkiOiJwZXJjb25hLXh0cmFkYi1jbHVzdGVyLW9wZXJhdG9yIiwiYXBwLmt1YmVybmV0ZXMuaW8vbmFtZSI6InBlcmNvbmEteHRyYWRiLWNsdXN0ZXIiLCJhcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mIjoicGVyY29uYS14dHJhZGItY2x1c3RlciJ9fSwidG9wb2xvZ3lLZXkiOiJrdWJlcm5ldGVzLmlvL2hvc3RuYW1lIn1dfX19fSwidm9sdW1lQ2xhaW1UZW1wbGF0ZXMiOlt7Im1ldGFkYXRhIjp7Im5hbWUiOiJkYXRhZGlyIiwibGFiZWxzIjp7ImFwcC5rdWJlcm5ldGVzLmlvL2NvbXBvbmVudCI6InB4YyIsImFwcC5rdWJlcm5ldGVzLmlvL2luc3RhbmNlIjoic29tZS1uYW1lIiwiYXBwLmt1YmVybmV0ZXMuaW8vbWFuYWdlZC1ieSI6InBlcmNvbmEteHRyYWRiLWNsdXN0ZXItb3BlcmF0b3IiLCJhcHAua3ViZXJuZXRlcy5pby9uYW1lIjoicGVyY29uYS14dHJhZGItY2x1c3RlciIsImFwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2YiOiJwZXJjb25hLXh0cmFkYi1jbHVzdGVyIn19LCJzcGVjIjp7ImFjY2Vzc01vZGVzIjpbIlJlYWRXcml0ZU9uY2UiXSwicmVzb3VyY2VzIjp7InJlcXVlc3RzIjp7InN0b3JhZ2UiOiIyR2kifX19LCJzdGF0dXMiOnt9fV0sInNlcnZpY2VOYW1lIjoic29tZS1uYW1lLXB4YyIsInVwZGF0ZVN0cmF0ZWd5Ijp7InR5cGUiOiJSb2xsaW5nVXBkYXRlIiwicm9sbGluZ1VwZGF0ZSI6eyJwYXJ0aXRpb24iOjB9fX0=", - "percona.com/last-config-hash": "eyJyZXBsaWNhcyI6Mywic2VsZWN0b3IiOnsibWF0Y2hMYWJlbHMiOnsiYXBwLmt1YmVybmV0ZXMuaW8vY29tcG9uZW50IjoicHhjIiwiYXBwLmt1YmVybmV0ZXMuaW8vaW5zdGFuY2UiOiJzb21lLW5hbWUiLCJhcHAua3ViZXJuZXRlcy5pby9tYW5hZ2VkLWJ5IjoicGVyY29uYS14dHJhZGItY2x1c3Rlci1vcGVyYXRvciIsImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiJwZXJjb25hLXh0cmFkYi1jbHVzdGVyIiwiYXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZiI6InBlcmNvbmEteHRyYWRiLWNsdXN0ZXIifX0sInRlbXBsYXRlIjp7Im1ldGFkYXRhIjp7ImxhYmVscyI6eyJhcHAua3ViZXJuZXRlcy5pby9jb21wb25lbnQiOiJweGMiLCJhcHAua3ViZXJuZXRlcy5pby9pbnN0YW5jZSI6InNvbWUtbmFtZSIsImFwcC5rdWJlcm5ldGVzLmlvL21hbmFnZWQtYnkiOiJwZXJjb25hLXh0cmFkYi1jbHVzdGVyLW9wZXJhdG9yIiwiYXBwLmt1YmVybmV0ZXMuaW8vbmFtZSI6InBlcmNvbmEteHRyYWRiLWNsdXN0ZXIiLCJhcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mIjoicGVyY29uYS14dHJhZGItY2x1c3RlciJ9LCJhbm5vdGF0aW9ucyI6eyJrdWJlY3RsLmt1YmVybmV0ZXMuaW8vZGVmYXVsdC1jb250YWluZXIiOiJweGMiLCJwZXJjb25hLmNvbS9jb25maWd1cmF0aW9uLWhhc2giOiJkNDFkOGNkOThmMDBiMjA0ZTk4MDA5OThlY2Y4NDI3ZSIsInBlcmNvbmEuY29tL3NzbC1oYXNoIjoiY2ZkNmE1MjM5ODI2ODE3M2I1MWQ3Y2RiMTMzMWMwOWEiLCJwZXJjb25hLmNvbS9zc2wtaW50ZXJuYWwtaGFzaCI6Ijc1MWU1OWExYzFkOTRhYzY3ZjlkNmJiNmU3NTZhY2RjIn19LCJzcGVjIjp7InZvbHVtZXMiOlt7Im5hbWUiOiJ0bXAiLCJlbXB0eURpciI6e319LHsibmFtZSI6ImNvbmZpZyIsImNvbmZpZ01hcCI6eyJuYW1lIjoic29tZS1uYW1lLXB4YyIsIm9wdGlvbmFsIjp0cnVlfX0seyJuYW1lIjoic3NsLWludGVybmFsIiwic2VjcmV0Ijp7InNlY3JldE5hbWUiOiJzb21lLW5hbWUtc3NsLWludGVybmFsIiwib3B0aW9uYWwiOnRydWV9fSx7Im5hbWUiOiJzc2wiLCJzZWNyZXQiOnsic2VjcmV0TmFtZSI6InNvbWUtbmFtZS1zc2wiLCJvcHRpb25hbCI6ZmFsc2V9fSx7Im5hbWUiOiJhdXRvLWNvbmZpZyIsImNvbmZpZ01hcCI6eyJuYW1lIjoiYXV0by1zb21lLW5hbWUtcHhjIiwib3B0aW9uYWwiOnRydWV9fSx7Im5hbWUiOiJ2YXVsdC1rZXlyaW5nLXNlY3JldCIsInNlY3JldCI6eyJzZWNyZXROYW1lIjoic29tZS1uYW1lLXZhdWx0Iiwib3B0aW9uYWwiOnRydWV9fSx7Im5hbWUiOiJteXNxbC11c2Vycy1zZWNyZXQtZmlsZSIsInNlY3JldCI6eyJzZWNyZXROYW1lIjoiaW50ZXJuYWwtc29tZS1uYW1lIiwib3B0aW9uYWwiOmZhbHNlfX0seyJuYW1lIjoibXlzcWwtaW5pdC1maWxlIiwic2VjcmV0Ijp7InNlY3JldE5hbWUiOiJzb21lLW5hbWUtbXlzcWwtaW5pdCIsIm9wdGlvbmFsIjp0cnVlfX1dLCJpbml0Q29udGFpbmVycyI6W3sibmFtZSI6InB4Yy1pbml0IiwiaW1hZ2UiOiJwZXJjb25hbGFiL3BlcmNvbmEteHRyYWRiLWNsdXN0ZXItb3BlcmF0b3I6UFItMjQxNC1kMzQ2ZDU3NyIsImNvbW1hbmQiOlsiL3B4Yy1pbml0LWVudHJ5cG9pbnQuc2giXSwicmVzb3VyY2VzIjp7ImxpbWl0cyI6eyJjcHUiOiI1MG0iLCJtZW1vcnkiOiI1ME0ifX0sInZvbHVtZU1vdW50cyI6W3sibmFtZSI6ImRhdGFkaXIiLCJtb3VudFBhdGgiOiIvdmFyL2xpYi9teXNxbCJ9XSwiaW1hZ2VQdWxsUG9saWN5IjoiQWx3YXlzIn1dLCJjb250YWluZXJzIjpbeyJuYW1lIjoicHhjIiwiaW1hZ2UiOiJwZXJjb25hbGFiL3BlcmNvbmEteHRyYWRiLWNsdXN0ZXItb3BlcmF0b3I6bWFpbi1weGM4LjQiLCJjb21tYW5kIjpbIi92YXIvbGliL215c3FsL3B4Yy1lbnRyeXBvaW50LnNoIl0sImFyZ3MiOlsibXlzcWxkIl0sInBvcnRzIjpbeyJuYW1lIjoibXlzcWwiLCJjb250YWluZXJQb3J0IjozMzA2fSx7Im5hbWUiOiJzc3QiLCJjb250YWluZXJQb3J0Ijo0NDQ0fSx7Im5hbWUiOiJ3cml0ZS1zZXQiLCJjb250YWluZXJQb3J0Ijo0NTY3fSx7Im5hbWUiOiJpc3QiLCJjb250YWluZXJQb3J0Ijo0NTY4fSx7Im5hbWUiOiJteXNxbC1hZG1pbiIsImNvbnRhaW5lclBvcnQiOjMzMDYyfSx7Im5hbWUiOiJteXNxbHgiLCJjb250YWluZXJQb3J0IjozMzA2MH1dLCJlbnZGcm9tIjpbeyJzZWNyZXRSZWYiOnsibmFtZSI6InNvbWUtbmFtZS1lbnYtdmFycy1weGMiLCJvcHRpb25hbCI6dHJ1ZX19XSwiZW52IjpbeyJuYW1lIjoiUFhDX1NFUlZJQ0UiLCJ2YWx1ZSI6InNvbWUtbmFtZS1weGMtdW5yZWFkeSJ9LHsibmFtZSI6Ik1PTklUT1JfSE9TVCIsInZhbHVlIjoiJSJ9LHsibmFtZSI6Ik1ZU1FMX1JPT1RfUEFTU1dPUkQiLCJ2YWx1ZUZyb20iOnsic2VjcmV0S2V5UmVmIjp7Im5hbWUiOiJpbnRlcm5hbC1zb21lLW5hbWUiLCJrZXkiOiJyb290In19fSx7Im5hbWUiOiJYVFJBQkFDS1VQX1BBU1NXT1JEIiwidmFsdWVGcm9tIjp7InNlY3JldEtleVJlZiI6eyJuYW1lIjoiaW50ZXJuYWwtc29tZS1uYW1lIiwia2V5IjoieHRyYWJhY2t1cCJ9fX0seyJuYW1lIjoiTU9OSVRPUl9QQVNTV09SRCIsInZhbHVlRnJvbSI6eyJzZWNyZXRLZXlSZWYiOnsibmFtZSI6ImludGVybmFsLXNvbWUtbmFtZSIsImtleSI6Im1vbml0b3IifX19LHsibmFtZSI6IkNMVVNURVJfSEFTSCIsInZhbHVlIjoiMjA4MDMzMSJ9LHsibmFtZSI6Ik9QRVJBVE9SX0FETUlOX1BBU1NXT1JEIiwidmFsdWVGcm9tIjp7InNlY3JldEtleVJlZiI6eyJuYW1lIjoiaW50ZXJuYWwtc29tZS1uYW1lIiwia2V5Ijoib3BlcmF0b3IifX19LHsibmFtZSI6IkxJVkVORVNTX0NIRUNLX1RJTUVPVVQiLCJ2YWx1ZSI6IjUifSx7Im5hbWUiOiJSRUFESU5FU1NfQ0hFQ0tfVElNRU9VVCIsInZhbHVlIjoiMTUifSx7Im5hbWUiOiJERUZBVUxUX0FVVEhFTlRJQ0FUSU9OX1BMVUdJTiIsInZhbHVlIjoiY2FjaGluZ19zaGEyX3Bhc3N3b3JkIn0seyJuYW1lIjoiTVlTUUxfTk9USUZZX1NPQ0tFVCIsInZhbHVlIjoiL3Zhci9saWIvbXlzcWwvbm90aWZ5LnNvY2sifSx7Im5hbWUiOiJNWVNRTF9TVEFURV9GSUxFIiwidmFsdWUiOiIvdmFyL2xpYi9teXNxbC9teXNxbC5zdGF0ZSJ9XSwicmVzb3VyY2VzIjp7ImxpbWl0cyI6eyJjcHUiOiIxIiwibWVtb3J5IjoiMkcifSwicmVxdWVzdHMiOnsiY3B1IjoiMTAwbSIsIm1lbW9yeSI6IjEwME0ifX0sInZvbHVtZU1vdW50cyI6W3sibmFtZSI6ImRhdGFkaXIiLCJtb3VudFBhdGgiOiIvdmFyL2xpYi9teXNxbCJ9LHsibmFtZSI6ImNvbmZpZyIsIm1vdW50UGF0aCI6Ii9ldGMvcGVyY29uYS14dHJhZGItY2x1c3Rlci5jb25mLmQifSx7Im5hbWUiOiJ0bXAiLCJtb3VudFBhdGgiOiIvdG1wIn0seyJuYW1lIjoic3NsIiwibW91bnRQYXRoIjoiL2V0Yy9teXNxbC9zc2wifSx7Im5hbWUiOiJzc2wtaW50ZXJuYWwiLCJtb3VudFBhdGgiOiIvZXRjL215c3FsL3NzbC1pbnRlcm5hbCJ9LHsibmFtZSI6Im15c3FsLXVzZXJzLXNlY3JldC1maWxlIiwibW91bnRQYXRoIjoiL2V0Yy9teXNxbC9teXNxbC11c2Vycy1zZWNyZXQifSx7Im5hbWUiOiJhdXRvLWNvbmZpZyIsIm1vdW50UGF0aCI6Ii9ldGMvbXkuY25mLmQifSx7Im5hbWUiOiJ2YXVsdC1rZXlyaW5nLXNlY3JldCIsIm1vdW50UGF0aCI6Ii9ldGMvbXlzcWwvdmF1bHQta2V5cmluZy1zZWNyZXQifSx7Im5hbWUiOiJteXNxbC1pbml0LWZpbGUiLCJtb3VudFBhdGgiOiIvZXRjL215c3FsL2luaXQtZmlsZSJ9XSwibGl2ZW5lc3NQcm9iZSI6eyJleGVjIjp7ImNvbW1hbmQiOlsiL3Zhci9saWIvbXlzcWwvbGl2ZW5lc3MtY2hlY2suc2giXX0sImluaXRpYWxEZWxheVNlY29uZHMiOjMwMCwidGltZW91dFNlY29uZHMiOjUsInN1Y2Nlc3NUaHJlc2hvbGQiOjEsImZhaWx1cmVUaHJlc2hvbGQiOjN9LCJyZWFkaW5lc3NQcm9iZSI6eyJleGVjIjp7ImNvbW1hbmQiOlsiL3Zhci9saWIvbXlzcWwvcmVhZGluZXNzLWNoZWNrLnNoIl19LCJpbml0aWFsRGVsYXlTZWNvbmRzIjoxNSwidGltZW91dFNlY29uZHMiOjE1LCJwZXJpb2RTZWNvbmRzIjozMCwic3VjY2Vzc1RocmVzaG9sZCI6MSwiZmFpbHVyZVRocmVzaG9sZCI6NX0sImltYWdlUHVsbFBvbGljeSI6IkFsd2F5cyJ9XSwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOjYwMCwic2VydmljZUFjY291bnROYW1lIjoiZGVmYXVsdCIsInNlY3VyaXR5Q29udGV4dCI6eyJzdXBwbGVtZW50YWxHcm91cHMiOlsxMDAxXSwiZnNHcm91cCI6MTAwMX0sImFmZmluaXR5Ijp7InBvZEFudGlBZmZpbml0eSI6eyJyZXF1aXJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjpbeyJsYWJlbFNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7ImFwcC5rdWJlcm5ldGVzLmlvL2NvbXBvbmVudCI6InB4YyIsImFwcC5rdWJlcm5ldGVzLmlvL2luc3RhbmNlIjoic29tZS1uYW1lIiwiYXBwLmt1YmVybmV0ZXMuaW8vbWFuYWdlZC1ieSI6InBlcmNvbmEteHRyYWRiLWNsdXN0ZXItb3BlcmF0b3IiLCJhcHAua3ViZXJuZXRlcy5pby9uYW1lIjoicGVyY29uYS14dHJhZGItY2x1c3RlciIsImFwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2YiOiJwZXJjb25hLXh0cmFkYi1jbHVzdGVyIn19LCJ0b3BvbG9neUtleSI6Imt1YmVybmV0ZXMuaW8vaG9zdG5hbWUifV19fX19LCJ2b2x1bWVDbGFpbVRlbXBsYXRlcyI6W3sibWV0YWRhdGEiOnsibmFtZSI6ImRhdGFkaXIiLCJsYWJlbHMiOnsiYXBwLmt1YmVybmV0ZXMuaW8vY29tcG9uZW50IjoicHhjIiwiYXBwLmt1YmVybmV0ZXMuaW8vaW5zdGFuY2UiOiJzb21lLW5hbWUiLCJhcHAua3ViZXJuZXRlcy5pby9tYW5hZ2VkLWJ5IjoicGVyY29uYS14dHJhZGItY2x1c3Rlci1vcGVyYXRvciIsImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiJwZXJjb25hLXh0cmFkYi1jbHVzdGVyIiwiYXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZiI6InBlcmNvbmEteHRyYWRiLWNsdXN0ZXIifX0sInNwZWMiOnsiYWNjZXNzTW9kZXMiOlsiUmVhZFdyaXRlT25jZSJdLCJyZXNvdXJjZXMiOnsicmVxdWVzdHMiOnsic3RvcmFnZSI6IjJHaSJ9fX0sInN0YXR1cyI6e319XSwic2VydmljZU5hbWUiOiJzb21lLW5hbWUtcHhjIiwidXBkYXRlU3RyYXRlZ3kiOnsidHlwZSI6IlJvbGxpbmdVcGRhdGUiLCJyb2xsaW5nVXBkYXRlIjp7InBhcnRpdGlvbiI6MH19fQ==", + PeriodSeconds: 0, - PeriodSeconds: 10, + PersistentVolumeClaimRetentionPolicy: nil, - PersistentVolumeClaimRetentionPolicy: s"&StatefulSetPersistentVolumeClaimRetentionPolicy{WhenDeleted:Retain,WhenScaled:Retain,}", + Phase: "", - Phase: "Pending", + PodManagementPolicy: "", - PodManagementPolicy: "OrderedReady", Ports: []v1.ContainerPort{ PreemptionPolicy: nil, ProbeHandler: {Exec: &{Command: {"/var/lib/mysql/liveness-check.sh"}}}, + Protocol: "", - Protocol: "TCP", Quobyte: nil, ReadinessProbe: &{ProbeHandler: {Exec: &{Command: {"/var/lib/mysql/readiness-check.sh"}}}, InitialDelaySeconds: 15, TimeoutSeconds: 15, PeriodSeconds: 30, ...}, + ReadyReplicas: 0, - ReadyReplicas: 3, + Replicas: 0, Replicas: &3, - Replicas: 3, ResizePolicy: nil, Resources: {Limits: {s"cpu": {i: {...}, s: "1", Format: "DecimalSI"}, s"memory": {i: {...}, s: "2G", Format: "DecimalSI"}}, Requests: {s"cpu": {i: {...}, s: "100m", Format: "DecimalSI"}, s"memory": {i: {...}, Format: "DecimalSI"}}}, + ResourceVersion: "", - ResourceVersion: "1775632044824927020", - ResourceVersion: "1775632300866687020", + RestartPolicy: "", - RestartPolicy: "Always", - RevisionHistoryLimit: &10, + RevisionHistoryLimit: nil, + SchedulerName: "", - SchedulerName: "default-scheduler", SecretName: "internal-some-name", SecretName: "some-name-mysql-init", SecretName: "some-name-ssl", SecretName: "some-name-ssl-internal", SecretName: "some-name-vault", Secret: &v1.SecretVolumeSource{ SecurityContext: nil, Selector: &{MatchLabels: {"app.kubernetes.io/component": "pxc", "app.kubernetes.io/instance": "some-name", "app.kubernetes.io/managed-by": "percona-xtradb-cluster-operator", "app.kubernetes.io/name": "percona-xtradb-cluster", ...}}, SelfLink: "", ServiceAccountName: "default", ServiceName: "some-name-pxc", SetHostnameAsFQDN: nil, Spec: v1.PersistentVolumeClaimSpec{ Spec: v1.PodSpec{ Spec: v1.StatefulSetSpec{ StartupProbe: nil, Status: v1.PersistentVolumeClaimStatus{ Status: v1.StatefulSetStatus{ StorageClassName: nil, Subdomain: "", - Subresource: "status", SuccessThreshold: 1, Template: v1.PodTemplateSpec{ TerminationGracePeriodSeconds: &600, TerminationGracePeriodSeconds: nil, + TerminationMessagePath: "", - TerminationMessagePath: "/dev/termination-log", + TerminationMessagePolicy: "", - TerminationMessagePolicy: "File", TimeoutSeconds: 5, - Time: s"2026-04-08 07:03:05 +0000 UTC", - Time: s"2026-04-08 07:07:24 +0000 UTC", - Time: s"2026-04-08 07:08:59 +0000 UTC", - Time: s"2026-04-08 07:11:40 +0000 UTC", Tolerations: nil, - TopologySpreadConstraints: nil, + TopologySpreadConstraints: []v1.TopologySpreadConstraint{}, TypeMeta: {}, TypeMeta: {Kind: "StatefulSet", APIVersion: "apps/v1"}, + UID: "", - UID: "1df93e59-9e42-4ce2-8b94-a002791e8525", + UpdatedReplicas: 0, - UpdatedReplicas: 3, + UpdateRevision: "", - UpdateRevision: "some-name-pxc-55767d9d44", - UpdateRevision: "some-name-pxc-6bf95467b6", UpdateStrategy: {Type: "RollingUpdate", RollingUpdate: &{Partition: &0}}, &v1.StatefulSet{ ValueFrom: nil, + Value: "/usr/lib64/libjemalloc.so.2", - Value: "/usr/lib64/libtcmalloc.so", VolumeAttributesClassName: nil, VolumeClaimTemplates: []v1.PersistentVolumeClaim{ VolumeDevices: nil, - VolumeMode: &"Filesystem", + VolumeMode: nil, VolumeMounts: {{Name: "datadir", MountPath: "/var/lib/mysql"}, {Name: "config", MountPath: "/etc/percona-xtradb-cluster.conf.d"}, {Name: "tmp", MountPath: "/tmp"}, {Name: "ssl", MountPath: "/etc/mysql/ssl"}, ...}, VolumeName: "", VolumeSource: v1.VolumeSource{ Volumes: []v1.Volume{ VsphereVolume: nil, WorkingDir: "", + kubectl get pxc --all-namespaces -o wide + grep -v NAMESPACE + xargs -L 1 sh -xc 'kubectl patch pxc -n $0 $1 --type=merge -p "{\"metadata\":{\"finalizers\":[]}}"' + kubectl patch pxc -n allocator-16084 some-name --type=merge -p '{"metadata":{"finalizers":[]}}' perconaxtradbcluster.pxc.percona.com/some-name patched + kubectl_bin delete pxc --all --all-namespaces ++ mktemp + local LAST_OUT=/tmp/tmp.hIbf9hMPGX ++ mktemp + local LAST_ERR=/tmp/tmp.VaBkEYnzvl + local exit_status=0 ++ seq 0 2 + for i in '$(seq 0 2)' + set +e + kubectl delete pxc --all --all-namespaces + exit_status=0 + set -e + '[' 0 '!=' 0 ']' + break + cat /tmp/tmp.hIbf9hMPGX perconaxtradbcluster.pxc.percona.com "some-name" deleted from allocator-16084 namespace + cat /tmp/tmp.VaBkEYnzvl + rm /tmp/tmp.hIbf9hMPGX /tmp/tmp.VaBkEYnzvl + return 0 + kubectl_bin delete pxc-backup --all --all-namespaces ++ mktemp + local LAST_OUT=/tmp/tmp.c5oJovFaqA ++ mktemp + local LAST_ERR=/tmp/tmp.cuEsZqG3Nk + local exit_status=0 ++ seq 0 2 + for i in '$(seq 0 2)' + set +e + kubectl delete pxc-backup --all --all-namespaces + exit_status=0 + set -e + '[' 0 '!=' 0 ']' + break + cat /tmp/tmp.c5oJovFaqA No resources found + cat /tmp/tmp.cuEsZqG3Nk + rm /tmp/tmp.c5oJovFaqA /tmp/tmp.cuEsZqG3Nk + return 0 + kubectl_bin delete pxc-restore --all --all-namespaces ++ mktemp + local LAST_OUT=/tmp/tmp.kme1knJqNS ++ mktemp + local LAST_ERR=/tmp/tmp.6ToBnorxe4 + local exit_status=0 ++ seq 0 2 + for i in '$(seq 0 2)' + set +e + kubectl delete pxc-restore --all --all-namespaces + exit_status=0 + set -e + '[' 0 '!=' 0 ']' + break + cat /tmp/tmp.kme1knJqNS No resources found + cat /tmp/tmp.6ToBnorxe4 + rm /tmp/tmp.kme1knJqNS /tmp/tmp.6ToBnorxe4 + return 0 + kubectl_bin delete ValidatingWebhookConfiguration percona-xtradbcluster-webhook ++ mktemp + local LAST_OUT=/tmp/tmp.Qxu8T5Dgty ++ mktemp + local LAST_ERR=/tmp/tmp.ppfRGdfEdP + local exit_status=0 ++ seq 0 2 + for i in '$(seq 0 2)' + set +e + kubectl delete ValidatingWebhookConfiguration percona-xtradbcluster-webhook + exit_status=0 + set -e + '[' 0 '!=' 0 ']' + break + cat /tmp/tmp.Qxu8T5Dgty validatingwebhookconfiguration.admissionregistration.k8s.io "percona-xtradbcluster-webhook" deleted + cat /tmp/tmp.ppfRGdfEdP + rm /tmp/tmp.Qxu8T5Dgty /tmp/tmp.ppfRGdfEdP + return 0 + kubectl_bin delete -f https://github.com/jetstack/cert-manager/releases/download/v1.19.2/cert-manager.yaml + : + '[' '!' -z '' ']' + '[' -n pxc-operator ']' + kubectl_bin delete --grace-period=0 --force=true namespace allocator-16084 + rm -rf /tmp/tmp.NlCOYjiQyL + kubectl_bin delete --grace-period=0 --force=true namespace pxc-operator ++ mktemp ++ mktemp + local LAST_OUT=/tmp/tmp.dT8tYPMFwy + local LAST_OUT=/tmp/tmp.gtFrE2veMs ++ mktemp ++ mktemp + local LAST_ERR=/tmp/tmp.cVw1zOLjao + local exit_status=0 + local LAST_ERR=/tmp/tmp.6ZIJsmiLgz + local exit_status=0 ++ seq 0 2 ++ seq 0 2 + for i in '$(seq 0 2)' + set +e + kubectl delete --grace-period=0 --force=true namespace allocator-16084 + for i in '$(seq 0 2)' + set +e + kubectl delete --grace-period=0 --force=true namespace pxc-operator