github.com/percona/percona-xtradb-cluster-operator@v1.14.0/e2e-tests/upgrade-consistency/run (about) 1 #!/bin/bash 2 3 set -o errexit 4 5 test_dir=$(realpath $(dirname $0)) 6 . ${test_dir}/../functions 7 8 set_debug 9 10 cluster='some-name' 11 12 wait_for_sts_generation() { 13 local name="${1}" 14 local desired_generation="${2}" 15 local size="${3}" 16 set +o xtrace 17 echo -n "Waiting for statefulset readyness" 18 retry=0 19 until [[ "$(kubectl_bin get sts $name -o jsonpath='{.status.observedGeneration}')" == "${desired_generation}" && 20 "$(kubectl_bin get sts $name -o jsonpath='{.status.readyReplicas}')" -ge ${size} ]]; do 21 sleep 1 22 echo -n . 23 let retry+=1 24 if [ $retry -ge 300 ]; then 25 kubectl_bin logs $(get_operator_pod) ${OPERATOR_NS:+-n $OPERATOR_NS} 26 echo max retry count $retry reached. something went wrong with operator or kubernetes cluster 27 exit 1 28 fi 29 done 30 echo 31 set -o xtrace 32 } 33 34 main() { 35 create_infra $namespace 36 37 apply_config "$conf_dir/client.yml" 38 kubectl_bin apply \ 39 -f "$test_dir/conf/secrets.yml" 40 cat_config "$conf_dir/$cluster.yml" \ 41 | yq eval '.spec.crVersion = "1.11.0"' - \ 42 | kubectl_bin apply -f - 43 44 desc "test 1.11.0" 45 kubectl_bin patch pxc "$cluster" --type=merge --patch '{ 46 "spec": {"crVersion":"1.11.0"} 47 }' 48 wait_cluster_consistency "$cluster" 3 2 49 wait_for_sts_generation "$cluster-pxc" "1" "1" 50 desc "compare k8s objects" 51 compare_kubectl service/$cluster-pxc "-1110" 52 compare_kubectl service/$cluster-proxysql "-1110" 53 compare_kubectl statefulset/$cluster-pxc "-1110" 54 compare_kubectl statefulset/$cluster-proxysql "-1110" 55 56 desc "test 1.12.0" 57 kubectl_bin patch pxc "$cluster" --type=merge --patch '{ 58 "spec": {"crVersion":"1.12.0"} 59 }' 60 wait_cluster_consistency "$cluster" 3 2 61 wait_for_sts_generation "$cluster-pxc" "2" "1" 62 desc "compare k8s objects" 63 compare_kubectl service/$cluster-pxc "-1120" 64 compare_kubectl service/$cluster-proxysql "-1120" 65 compare_kubectl statefulset/$cluster-pxc "-1120" 66 compare_kubectl statefulset/$cluster-proxysql "-1120" 67 68 desc "test 1.13.0" 69 kubectl_bin patch pxc "$cluster" --type=merge --patch '{ 70 "spec": {"crVersion":"1.13.0"} 71 }' 72 wait_cluster_consistency "$cluster" 3 2 73 wait_for_sts_generation "$cluster-pxc" "3" "1" 74 desc "compare k8s objects" 75 compare_kubectl service/$cluster-pxc "-1130" 76 compare_kubectl service/$cluster-proxysql "-1130" 77 compare_kubectl statefulset/$cluster-pxc "-1130" 78 compare_kubectl statefulset/$cluster-proxysql "-1130" 79 80 desc "test 1.14.0" 81 kubectl_bin patch pxc "$cluster" --type=merge --patch '{ 82 "spec": {"crVersion":"1.14.0"} 83 }' 84 wait_cluster_consistency "$cluster" 3 2 85 wait_for_sts_generation "$cluster-pxc" "4" "1" 86 desc "compare k8s objects" 87 compare_kubectl service/$cluster-pxc "-1140" 88 compare_kubectl service/$cluster-proxysql "-1140" 89 compare_kubectl statefulset/$cluster-pxc "-1140" 90 compare_kubectl statefulset/$cluster-proxysql "-1140" 91 92 destroy "${namespace}" 93 desc "test passed" 94 } 95 96 main