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