Skip to content

Commit

Permalink
CLOUD-808 Fix PMM server deployment in tests (#1504)
Browse files Browse the repository at this point in the history
* CLOUD-808 Fix PMM server deployment in tests

* remporary still using old pmm-server because the new one doesn't work with openshift

* increasing the total test timeout from 3 to 4 hrs.
  • Loading branch information
ptankov authored Oct 24, 2023
1 parent 4cfdad8 commit 2b10d73
Show file tree
Hide file tree
Showing 7 changed files with 42 additions and 54 deletions.
4 changes: 2 additions & 2 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ TestsReportXML = '<testsuite name=\\"PXC\\">\n'
void makeReport() {
def wholeTestAmount=tests.size()
def startedTestAmount = 0

for (int i=0; i<tests.size(); i++) {
def testResult = tests[i]["result"]
def testTime = tests[i]["time"]
Expand Down Expand Up @@ -421,7 +421,7 @@ pipeline {
}
}
options {
timeout(time: 3, unit: 'HOURS')
timeout(time: 4, unit: 'HOURS')
}
parallel {
stage('cluster1') {
Expand Down
2 changes: 1 addition & 1 deletion e2e-tests/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ full list of variables is the following one:

* `IMAGE` - the Operator, `perconalab/percona-xtradb-cluster-operator:main` by default,
* `IMAGE_PXC` - Percona XtraDB Cluster, `perconalab/percona-xtradb-cluster-operator:main-pxc8.0` by default,
* `IMAGE_PMM` - Percona Monitoring and Management (PMM) client, `perconalab/pmm-client:dev-latest` by default,
* `IMAGE_PMM_CLIENT` - Percona Monitoring and Management (PMM) client, `perconalab/pmm-client:dev-latest` by default,
* `IMAGE_PROXY` - ProxySQL, `perconalab/percona-xtradb-cluster-operator:main-proxysql` by default,
* `IMAGE_HAPROXY` - HA Proxy, `perconalab/percona-xtradb-cluster-operator:main-haproxy` by default,
* `IMAGE_BACKUP` - backups, `perconalab/percona-xtradb-cluster-operator:main-pxc8.0-backup` by default,
Expand Down
20 changes: 2 additions & 18 deletions e2e-tests/default-cr/run
Original file line number Diff line number Diff line change
Expand Up @@ -64,24 +64,8 @@ function main() {
compare_kubectl service/$(get_proxy ${cluster})
compare_kubectl service/$(get_proxy ${cluster})-replicas

desc 'starting PMM up'
platform=kubernetes
helm uninstall monitoring || :
if [ ! -z "$OPENSHIFT" ]; then
platform=openshift
oc create sa pmm-server
oc adm policy add-scc-to-user privileged -z pmm-server
if [ -n "$OPERATOR_NS" ]; then
oc create clusterrolebinding pmm-pxc-operator-cluster-wide --clusterrole=percona-xtradb-cluster-operator --serviceaccount=$namespace:pmm-server
oc patch clusterrole/percona-xtradb-cluster-operator --type json -p='[{"op":"add","path": "/rules/-","value":{"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"verbs":["use"],"resourceNames":["privileged"]}}]' ${OPERATOR_NS:+-n $OPERATOR_NS}
else
oc create rolebinding pmm-pxc-operator-namespace-only --role percona-xtradb-cluster-operator --serviceaccount=$namespace:pmm-server
oc patch role/percona-xtradb-cluster-operator --type json -p='[{"op":"add","path": "/rules/-","value":{"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"verbs":["use"],"resourceNames":["privileged"]}}]'
fi
retry 10 60 helm install monitoring --set imageTag=$IMAGE_PMM_SERVER_TAG --set imageRepo=$IMAGE_PMM_SERVER_REPO --set platform=$platform --set sa=pmm-server --set supresshttp2=false https://percona-charts.storage.googleapis.com/pmm-server-${PMM_SERVER_VER}.tgz
else
helm install monitoring --set imageTag=$IMAGE_PMM_SERVER_TAG --set imageRepo=$IMAGE_PMM_SERVER_REPO --set platform=$platform https://percona-charts.storage.googleapis.com/pmm-server-${PMM_SERVER_VER}.tgz
fi
desc 'install PMM Server'
deploy_pmm_server
sleep 120
ADMIN_PASSWORD=$(kubectl_bin exec monitoring-0 -- bash -c "printenv | grep ADMIN_PASSWORD | cut -d '=' -f2")
MONITORING_ENDPOINT=$(get_service_endpoint monitoring-service)
Expand Down
31 changes: 26 additions & 5 deletions e2e-tests/functions
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,14 @@ OPERATOR_VERSION="$(grep 'crVersion' $(realpath $(dirname ${BASH_SOURCE[0]})/../
IMAGE=${IMAGE:-"perconalab/percona-xtradb-cluster-operator:${GIT_BRANCH}"}
MYSQL_VERSION=${MYSQL_VERSION:-"8.0"}
IMAGE_PXC=${IMAGE_PXC:-"perconalab/percona-xtradb-cluster-operator:main-pxc${MYSQL_VERSION}"}
IMAGE_PMM=${IMAGE_PMM:-"perconalab/pmm-client:dev-latest"}
IMAGE_PROXY=${IMAGE_PROXY:-"perconalab/percona-xtradb-cluster-operator:main-proxysql"}
IMAGE_HAPROXY=${IMAGE_HAPROXY:-"perconalab/percona-xtradb-cluster-operator:main-haproxy"}
IMAGE_BACKUP=${IMAGE_BACKUP:-"perconalab/percona-xtradb-cluster-operator:main-pxc${MYSQL_VERSION}-backup"}
IMAGE_LOGCOLLECTOR=${IMAGE_LOGCOLLECTOR:-"perconalab/percona-xtradb-cluster-operator:main-logcollector"}
SKIP_REMOTE_BACKUPS=${SKIP_REMOTE_BACKUPS:-1}
PMM_SERVER_VER=${PMM_SERVER_VER:-"9.9.9"}
IMAGE_PMM_SERVER_REPO=${IMAGE_PMM_SERVER_REPO:-"perconalab/pmm-server"}
IMAGE_PMM_SERVER_TAG=${IMAGE_PMM_SERVER_TAG:-"dev-latest"}
IMAGE_PMM_CLIENT=${IMAGE_PMM_CLIENT:-"perconalab/pmm-client:dev-latest"}
IMAGE_PMM_SERVER=${IMAGE_PMM_SERVER:-"perconalab/pmm-server:dev-latest"}
CERT_MANAGER_VER="1.12.1"
tmp_dir=$(mktemp -d)
sed=$(which gsed || which sed)
Expand Down Expand Up @@ -311,7 +310,6 @@ deploy_operator() {

deploy_helm() {
helm repo add hashicorp https://helm.releases.hashicorp.com
helm repo add percona https://percona-charts.storage.googleapis.com/
helm repo add minio https://helm.min.io/
helm repo update
}
Expand Down Expand Up @@ -813,7 +811,7 @@ cat_config() {
| $sed -e "s#image:.*-pxc\([0-9]*.[0-9]*\)\{0,1\}\$#image: $IMAGE_PXC#" \
| $sed -e "s#image:.*\/percona-xtradb-cluster:.*\$#image: $IMAGE_PXC#" \
| $sed -e "s#initImage:.*-init\$#initImage: $IMAGE#" \
| $sed -e "s#image:.*-pmm\$#image: $IMAGE_PMM#" \
| $sed -e "s#image:.*-pmm\$#image: $IMAGE_PMM_CLIENT#" \
| $sed -e "s#image:.*-backup\$#image: $IMAGE_BACKUP#" \
| $sed -e "s#image:.*-proxysql\$#image: $IMAGE_PROXY#" \
| $sed -e "s#image:.*-haproxy\$#image: $IMAGE_HAPROXY#" \
Expand Down Expand Up @@ -1572,3 +1570,26 @@ check_passwords_leak() {
collect_logs $OPERATOR_NS
fi
}

deploy_pmm_server() {
if [ ! -z "$OPENSHIFT" ]; then
platform=openshift
oc create sa pmm-server
oc adm policy add-scc-to-user privileged -z pmm-server
if [[ $OPERATOR_NS ]]; then
timeout 30 oc delete clusterrolebinding $(kubectl get clusterrolebinding | grep 'pmm-pxc-operator-' | awk '{print $1}') || :
oc create clusterrolebinding pmm-pxc-operator-cluster-wide --clusterrole=percona-xtradb-cluster-operator --serviceaccount=$namespace:pmm-server
oc patch clusterrole/percona-xtradb-cluster-operator --type json -p='[{"op":"add","path": "/rules/-","value":{"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"verbs":["use"],"resourceNames":["privileged"]}}]' -n $OPERATOR_NS
else
oc create rolebinding pmm-pxc-operator-namespace-only --role percona-xtradb-cluster-operator --serviceaccount=$namespace:pmm-server
oc patch role/percona-xtradb-cluster-operator --type json -p='[{"op":"add","path": "/rules/-","value":{"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"verbs":["use"],"resourceNames":["privileged"]}}]'
fi
local additional_params="--set platform=openshift --set sa=pmm-server --set supresshttp2=false"
fi

helm repo add percona https://percona.github.io/percona-helm-charts/
helm repo update
helm uninstall monitoring || :

retry 10 60 helm install monitoring --set imageRepo=${IMAGE_PMM_SERVER%:*} --set imageTag=${IMAGE_PMM_SERVER#*:} $additional_params https://percona-charts.storage.googleapis.com/pmm-server-$PMM_SERVER_VER.tgz
}
19 changes: 1 addition & 18 deletions e2e-tests/monitoring-2-0/run
Original file line number Diff line number Diff line change
Expand Up @@ -49,24 +49,7 @@ create_infra $namespace
deploy_helm $namespace

desc 'install PMM Server'
platform=kubernetes
helm uninstall monitoring || :
if [ ! -z "$OPENSHIFT" ]; then
platform=openshift
oc create sa pmm-server
oc adm policy add-scc-to-user privileged -z pmm-server
if [ -n "$OPERATOR_NS" ]; then
timeout 30 oc delete clusterrolebinding $(kubectl get clusterrolebinding | grep 'pmm-pxc-operator-' | awk '{print $1}') || :
oc create clusterrolebinding pmm-pxc-operator-cluster-wide --clusterrole=percona-xtradb-cluster-operator --serviceaccount=$namespace:pmm-server
oc patch clusterrole/percona-xtradb-cluster-operator --type json -p='[{"op":"add","path": "/rules/-","value":{"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"verbs":["use"],"resourceNames":["privileged"]}}]' ${OPERATOR_NS:+-n $OPERATOR_NS}
else
oc create rolebinding pmm-pxc-operator-namespace-only --role percona-xtradb-cluster-operator --serviceaccount=$namespace:pmm-server
oc patch role/percona-xtradb-cluster-operator --type json -p='[{"op":"add","path": "/rules/-","value":{"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"verbs":["use"],"resourceNames":["privileged"]}}]'
fi
retry 10 60 helm install monitoring --set imageTag=$IMAGE_PMM_SERVER_TAG --set imageRepo=$IMAGE_PMM_SERVER_REPO --set platform=$platform --set sa=pmm-server --set supresshttp2=false https://percona-charts.storage.googleapis.com/pmm-server-${PMM_SERVER_VER}.tgz
else
helm install monitoring --set imageTag=$IMAGE_PMM_SERVER_TAG --set imageRepo=$IMAGE_PMM_SERVER_REPO --set platform=$platform https://percona-charts.storage.googleapis.com/pmm-server-${PMM_SERVER_VER}.tgz
fi
deploy_pmm_server
kubectl_bin wait --for=condition=Ready pod/${cluster}-0 --timeout=120s
until kubectl_bin exec monitoring-0 -- bash -c "ls -l /proc/*/exe 2>/dev/null| grep postgres >/dev/null"; do
echo "Retry $retry"
Expand Down
10 changes: 5 additions & 5 deletions e2e-tests/upgrade-haproxy/run
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ CLUSTER_SIZE=3
TARGET_OPERATOR_VER="${OPERATOR_VERSION}"
TARGET_IMAGE="${IMAGE}"
TARGET_IMAGE_PXC="${IMAGE_PXC}"
TARGET_IMAGE_PMM="${IMAGE_PMM}"
TARGET_IMAGE_PMM_CLIENT="${IMAGE_PMM_CLIENT}"
TARGET_IMAGE_PROXY="${IMAGE_PROXY}"
TARGET_IMAGE_HAPROXY="${IMAGE_HAPROXY}"
TARGET_IMAGE_BACKUP="${IMAGE_BACKUP}"
Expand All @@ -38,7 +38,7 @@ if [[ "$(echo ${TARGET_IMAGE} | cut -d'/' -f1)" == "perconalab" ]]; then
IMAGE="${IMAGE/percona/perconalab}"
fi
IMAGE_PXC=$(echo "${INIT_OPERATOR_IMAGES}" | jq -r '.versions[].matrix.pxc[].imagePath')
IMAGE_PMM=$(echo "${INIT_OPERATOR_IMAGES}" | jq -r '.versions[].matrix.pmm[].imagePath')
IMAGE_PMM_CLIENT=$(echo "${INIT_OPERATOR_IMAGES}" | jq -r '.versions[].matrix.pmm[].imagePath')
IMAGE_PROXY=$(echo "${INIT_OPERATOR_IMAGES}" | jq -r '.versions[].matrix.proxysql[].imagePath')
IMAGE_HAPROXY=$(echo "${INIT_OPERATOR_IMAGES}" | jq -r '.versions[].matrix.haproxy[].imagePath')
IMAGE_BACKUP=$(echo "${INIT_OPERATOR_IMAGES}" | jq -r '.versions[].matrix.backup[].imagePath')
Expand Down Expand Up @@ -97,7 +97,7 @@ function main() {
${IMAGE_PROXY} == $(kubectl_bin get pxc "${CLUSTER}" -o jsonpath='{.spec.proxysql.image}') &&
${IMAGE_HAPROXY} == $(kubectl_bin get pxc "${CLUSTER}" -o jsonpath='{.spec.haproxy.image}') &&
${IMAGE_BACKUP} == $(kubectl_bin get pxc "${CLUSTER}" -o jsonpath='{.spec.backup.image}') &&
${IMAGE_PMM} == $(kubectl_bin get pxc "${CLUSTER}" -o jsonpath='{.spec.pmm.image}') &&
${IMAGE_PMM_CLIENT} == $(kubectl_bin get pxc "${CLUSTER}" -o jsonpath='{.spec.pmm.image}') &&
${IMAGE_PXC} == $(kubectl_bin get pxc "${CLUSTER}" -o jsonpath='{.spec.pxc.image}') ]]; then
: Operator image has been updated correctly
else
Expand All @@ -111,7 +111,7 @@ function main() {
"spec": {
"crVersion": "'"${TARGET_OPERATOR_VER}"'",
"pxc": { "image": "'"${TARGET_IMAGE_PXC}"'" },
"pmm": { "image": "'"${TARGET_IMAGE_PMM}"'" },
"pmm": { "image": "'"${TARGET_IMAGE_PMM_CLIENT}"'" },
"haproxy": { "image": "'"${TARGET_IMAGE_HAPROXY}"'" },
"proxysql": { "image": "'"${TARGET_IMAGE_PROXY}"'" },
"backup": { "image": "'"${TARGET_IMAGE_BACKUP}"'" }
Expand All @@ -124,7 +124,7 @@ function main() {
${TARGET_IMAGE_PROXY} == $(kubectl_bin get pxc "${CLUSTER}" -o jsonpath='{.spec.proxysql.image}') &&
${TARGET_IMAGE_HAPROXY} == $(kubectl_bin get pxc "${CLUSTER}" -o jsonpath='{.spec.haproxy.image}') &&
${TARGET_IMAGE_BACKUP} == $(kubectl_bin get pxc "${CLUSTER}" -o jsonpath='{.spec.backup.image}') &&
${TARGET_IMAGE_PMM} == $(kubectl_bin get pxc "${CLUSTER}" -o jsonpath='{.spec.pmm.image}') &&
${TARGET_IMAGE_PMM_CLIENT} == $(kubectl_bin get pxc "${CLUSTER}" -o jsonpath='{.spec.pmm.image}') &&
${TARGET_IMAGE_PXC} == $(kubectl_bin get pxc "${CLUSTER}" -o jsonpath='{.spec.pxc.image}') ]]; then
: Cluster images have been updated correctly
else
Expand Down
10 changes: 5 additions & 5 deletions e2e-tests/upgrade-proxysql/run
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ CLUSTER_SIZE=3
TARGET_OPERATOR_VER="${OPERATOR_VERSION}"
TARGET_IMAGE="${IMAGE}"
TARGET_IMAGE_PXC="${IMAGE_PXC}"
TARGET_IMAGE_PMM="${IMAGE_PMM}"
TARGET_IMAGE_PMM_CLIENT="${IMAGE_PMM_CLIENT}"
TARGET_IMAGE_PROXY="${IMAGE_PROXY}"
TARGET_IMAGE_HAPROXY="${IMAGE_HAPROXY}"
TARGET_IMAGE_BACKUP="${IMAGE_BACKUP}"
Expand All @@ -37,7 +37,7 @@ if [[ "$(echo ${TARGET_IMAGE} | cut -d'/' -f1)" == "perconalab" ]]; then
IMAGE="${IMAGE/percona/perconalab}"
fi
IMAGE_PXC=$(echo "${INIT_OPERATOR_IMAGES}" | jq -r '.versions[].matrix.pxc[].imagePath')
IMAGE_PMM=$(echo "${INIT_OPERATOR_IMAGES}" | jq -r '.versions[].matrix.pmm[].imagePath')
IMAGE_PMM_CLIENT=$(echo "${INIT_OPERATOR_IMAGES}" | jq -r '.versions[].matrix.pmm[].imagePath')
IMAGE_PROXY=$(echo "${INIT_OPERATOR_IMAGES}" | jq -r '.versions[].matrix.proxysql[].imagePath')
IMAGE_HAPROXY=$(echo "${INIT_OPERATOR_IMAGES}" | jq -r '.versions[].matrix.haproxy[].imagePath')
IMAGE_BACKUP=$(echo "${INIT_OPERATOR_IMAGES}" | jq -r '.versions[].matrix.backup[].imagePath')
Expand Down Expand Up @@ -93,7 +93,7 @@ function main() {
${IMAGE_PROXY} == $(kubectl_bin get pxc "${CLUSTER}" -o jsonpath='{.spec.proxysql.image}') &&
${IMAGE_HAPROXY} == $(kubectl_bin get pxc "${CLUSTER}" -o jsonpath='{.spec.haproxy.image}') &&
${IMAGE_BACKUP} == $(kubectl_bin get pxc "${CLUSTER}" -o jsonpath='{.spec.backup.image}') &&
${IMAGE_PMM} == $(kubectl_bin get pxc "${CLUSTER}" -o jsonpath='{.spec.pmm.image}') &&
${IMAGE_PMM_CLIENT} == $(kubectl_bin get pxc "${CLUSTER}" -o jsonpath='{.spec.pmm.image}') &&
${IMAGE_PXC} == $(kubectl_bin get pxc "${CLUSTER}" -o jsonpath='{.spec.pxc.image}') ]]; then
: Operator image has been updated correctly
else
Expand All @@ -107,7 +107,7 @@ function main() {
"spec": {
"crVersion": "'"${TARGET_OPERATOR_VER}"'",
"pxc": { "image": "'"${TARGET_IMAGE_PXC}"'" },
"pmm": { "image": "'"${TARGET_IMAGE_PMM}"'" },
"pmm": { "image": "'"${TARGET_IMAGE_PMM_CLIENT}"'" },
"haproxy": { "image": "'"${TARGET_IMAGE_HAPROXY}"'" },
"proxysql": { "image": "'"${TARGET_IMAGE_PROXY}"'" },
"backup": { "image": "'"${TARGET_IMAGE_BACKUP}"'" }
Expand All @@ -120,7 +120,7 @@ function main() {
${TARGET_IMAGE_PROXY} == $(kubectl_bin get pxc "${CLUSTER}" -o jsonpath='{.spec.proxysql.image}') &&
${TARGET_IMAGE_HAPROXY} == $(kubectl_bin get pxc "${CLUSTER}" -o jsonpath='{.spec.haproxy.image}') &&
${TARGET_IMAGE_BACKUP} == $(kubectl_bin get pxc "${CLUSTER}" -o jsonpath='{.spec.backup.image}') &&
${TARGET_IMAGE_PMM} == $(kubectl_bin get pxc "${CLUSTER}" -o jsonpath='{.spec.pmm.image}') &&
${TARGET_IMAGE_PMM_CLIENT} == $(kubectl_bin get pxc "${CLUSTER}" -o jsonpath='{.spec.pmm.image}') &&
${TARGET_IMAGE_PXC} == $(kubectl_bin get pxc "${CLUSTER}" -o jsonpath='{.spec.pxc.image}') ]]; then
: Cluster images have been updated correctly
else
Expand Down

0 comments on commit 2b10d73

Please sign in to comment.