Skip to content

Commit 415a478

Browse files
authored
CLOUD-808 Fix PMM server deployment in tests (#1361)
1 parent 2b38a1f commit 415a478

File tree

7 files changed

+40
-54
lines changed

7 files changed

+40
-54
lines changed

e2e-tests/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ full list of variables is the following one:
130130

131131
* `IMAGE` - Percona Server for MongoDB Operator, `perconalab/percona-server-mongodb-operator:main` by default,
132132
* `IMAGE_MONGOD` - mongod, `perconalab/percona-server-mongodb-operator:main-mongod4.4` by default,
133-
* `IMAGE_PMM` - Percona Monitoring and Management (PMM) client, `perconalab/pmm-client:dev-latest` by default,
133+
* `IMAGE_PMM_CLIENT` - Percona Monitoring and Management (PMM) client, `perconalab/pmm-client:dev-latest` by default,
134134
* `IMAGE_BACKUP` - backup, `perconalab/percona-server-mongodb-operator:main-backup` by default,
135135

136136
### Using automatic clean-up after testing

e2e-tests/default-cr/run

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -81,23 +81,8 @@ function main() {
8181
compare_generation "1" "statefulset" "${cluster}-mongos"
8282
compare_generation "1" "psmdb" "${cluster}"
8383

84-
desc 'starting PMM server'
85-
if [ ! -z "$OPENSHIFT" ]; then
86-
platform=openshift
87-
oc create sa pmm-server
88-
oc adm policy add-scc-to-user privileged -z pmm-server
89-
if [ -n "$OPERATOR_NS" ]; then
90-
timeout 30 oc delete clusterrolebinding $(kubectl get clusterrolebinding | grep 'pmm-psmdb-operator-' | awk '{print $1}') || :
91-
oc create clusterrolebinding pmm-psmdb-operator-cluster-wide --clusterrole=percona-server-mongodb-operator --serviceaccount=$namespace:pmm-server
92-
oc patch clusterrole/percona-server-mongodb-operator --type json -p='[{"op":"add","path": "/rules/-","value":{"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"verbs":["use"],"resourceNames":["privileged"]}}]' ${OPERATOR_NS:+-n $OPERATOR_NS}
93-
else
94-
oc create rolebinding pmm-psmdb-operator-namespace-only --role percona-server-mongodb-operator --serviceaccount=$namespace:pmm-server
95-
oc patch role/percona-server-mongodb-operator --type json -p='[{"op":"add","path": "/rules/-","value":{"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"verbs":["use"],"resourceNames":["privileged"]}}]'
96-
fi
97-
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
98-
else
99-
retry 10 60 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
100-
fi
84+
desc 'install PMM Server'
85+
deploy_pmm_server
10186
sleep 20
10287
kubectl_bin patch psmdb ${cluster} --type=merge --patch '{
10388
"spec": {"pmm":{"enabled":true}}

e2e-tests/functions

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ GIT_BRANCH=${VERSION:-$(git rev-parse --abbrev-ref HEAD | sed -e 's^/^-^g; s^[.]
55
API="psmdb.percona.com/v1"
66
OPERATOR_VERSION="$(grep 'crVersion' $(realpath $(dirname ${BASH_SOURCE[0]})/../deploy/cr.yaml) | awk '{print $2}')"
77
IMAGE=${IMAGE:-"perconalab/percona-server-mongodb-operator:${GIT_BRANCH}"}
8-
IMAGE_PMM=${IMAGE_PMM:-"perconalab/pmm-client:dev-latest"}
98
IMAGE_MONGOD=${IMAGE_MONGOD:-"perconalab/percona-server-mongodb-operator:main-mongod5.0"}
109
IMAGE_MONGOD_CHAIN=${IMAGE_MONGOD_CHAIN:-$'
1110
perconalab/percona-server-mongodb-operator:main-mongod4.4
@@ -14,8 +13,8 @@ perconalab/percona-server-mongodb-operator:main-mongod6.0'}
1413
IMAGE_BACKUP=${IMAGE_BACKUP:-"perconalab/percona-server-mongodb-operator:main-backup"}
1514
SKIP_BACKUPS_TO_AWS_GCP_AZURE=${SKIP_BACKUPS_TO_AWS_GCP_AZURE:-1}
1615
PMM_SERVER_VER=${PMM_SERVER_VER:-"9.9.9"}
17-
IMAGE_PMM_SERVER_REPO=${IMAGE_PMM_SERVER_REPO:-"perconalab/pmm-server"}
18-
IMAGE_PMM_SERVER_TAG=${IMAGE_PMM_SERVER_TAG:-"dev-latest"}
16+
IMAGE_PMM_CLIENT=${IMAGE_PMM_CLIENT:-"perconalab/pmm-client:dev-latest"}
17+
IMAGE_PMM_SERVER=${IMAGE_PMM_SERVER:-"perconalab/pmm-server:dev-latest"}
1918
CERT_MANAGER_VER="1.12.4"
2019
tmp_dir=$(mktemp -d)
2120
sed=$(which gsed || which sed)
@@ -1036,7 +1035,7 @@ EOF
10361035
cat_config() {
10371036
cat "$1" \
10381037
| yq eval '(.spec | select(.image == null)).image = "'"$IMAGE_MONGOD"'"' \
1039-
| yq eval '(.spec | select(has("pmm"))).pmm.image = "'"$IMAGE_PMM"'"' \
1038+
| yq eval '(.spec | select(has("pmm"))).pmm.image = "'"$IMAGE_PMM_CLIENT"'"' \
10401039
| yq eval '(.spec | select(has("backup"))).backup.image = "'"$IMAGE_BACKUP"'"' \
10411040
| yq eval '.spec.upgradeOptions.apply="Never"'
10421041
}
@@ -1337,3 +1336,24 @@ insert_data_mongos() {
13371336
"myApp:myPass@$cluster-mongos.$namespace" "" "" \
13381337
"$flags"
13391338
}
1339+
1340+
deploy_pmm_server() {
1341+
helm uninstall monitoring || :
1342+
helm repo remove stable || :
1343+
helm repo add stable https://charts.helm.sh/stable
1344+
if [[ $OPENSHIFT ]]; then
1345+
oc create sa pmm-server
1346+
oc adm policy add-scc-to-user privileged -z pmm-server
1347+
if [[ $OPERATOR_NS ]]; then
1348+
timeout 30 oc delete clusterrolebinding $(kubectl get clusterrolebinding | grep 'pmm-psmdb-operator-' | awk '{print $1}') || :
1349+
oc create clusterrolebinding pmm-psmdb-operator-cluster-wide --clusterrole=percona-server-mongodb-operator --serviceaccount=$namespace:pmm-server
1350+
oc patch clusterrole/percona-server-mongodb-operator --type json -p='[{"op":"add","path": "/rules/-","value":{"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"verbs":["use"],"resourceNames":["privileged"]}}]' -n $OPERATOR_NS
1351+
else
1352+
oc create rolebinding pmm-psmdb-operator-namespace-only --role percona-server-mongodb-operator --serviceaccount=$namespace:pmm-server
1353+
oc patch role/percona-server-mongodb-operator --type json -p='[{"op":"add","path": "/rules/-","value":{"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"verbs":["use"],"resourceNames":["privileged"]}}]'
1354+
fi
1355+
local additional_params="--set platform=openshift --set sa=pmm-server --set supresshttp2=false"
1356+
fi
1357+
1358+
retry 10 60 helm install monitoring --set imageTag=${IMAGE_PMM_SERVER#*:} --set imageRepo=${IMAGE_PMM_SERVER%:*} $additional_params https://percona-charts.storage.googleapis.com/pmm-server-$PMM_SERVER_VER.tgz
1359+
}

e2e-tests/monitoring-2-0/run

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -10,27 +10,8 @@ deploy_cert_manager
1010
create_infra $namespace
1111

1212
desc 'install PMM Server'
13-
platform=kubernetes
1413

15-
helm uninstall monitoring || :
16-
helm repo remove stable || :
17-
helm repo add stable https://charts.helm.sh/stable
18-
if [[ -n ${OPENSHIFT} ]]; then
19-
platform=openshift
20-
oc create sa pmm-server
21-
oc adm policy add-scc-to-user privileged -z pmm-server
22-
if [ -n "$OPERATOR_NS" ]; then
23-
timeout 30 oc delete clusterrolebinding $(kubectl get clusterrolebinding | grep 'pmm-psmdb-operator-' | awk '{print $1}') || :
24-
oc create clusterrolebinding pmm-psmdb-operator-cluster-wide --clusterrole=percona-server-mongodb-operator --serviceaccount=$namespace:pmm-server
25-
oc patch clusterrole/percona-server-mongodb-operator --type json -p='[{"op":"add","path": "/rules/-","value":{"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"verbs":["use"],"resourceNames":["privileged"]}}]' ${OPERATOR_NS:+-n $OPERATOR_NS}
26-
else
27-
oc create rolebinding pmm-psmdb-operator-namespace-only --role percona-server-mongodb-operator --serviceaccount=$namespace:pmm-server
28-
oc patch role/percona-server-mongodb-operator --type json -p='[{"op":"add","path": "/rules/-","value":{"apiGroups":["security.openshift.io"],"resources":["securitycontextconstraints"],"verbs":["use"],"resourceNames":["privileged"]}}]'
29-
fi
30-
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
31-
else
32-
retry 10 60 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
33-
fi
14+
deploy_pmm_server
3415
sleep 20
3516
until kubectl_bin exec monitoring-0 -- bash -c "ls -l /proc/*/exe 2>/dev/null| grep postgres >/dev/null"; do
3617
echo "Retry $retry"

e2e-tests/upgrade-sharded/run

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ CLUSTER_SIZE=3
1111
TARGET_OPERATOR_VER="${OPERATOR_VERSION}"
1212
TARGET_IMAGE="${IMAGE}"
1313
TARGET_IMAGE_MONGOD="${IMAGE_MONGOD}"
14-
TARGET_IMAGE_PMM="${IMAGE_PMM}"
14+
TARGET_IMAGE_PMM_CLIENT="${IMAGE_PMM_CLIENT}"
1515
TARGET_IMAGE_BACKUP="${IMAGE_BACKUP}"
1616
FULL_VER=$(get_mongod_ver_from_image ${TARGET_IMAGE_MONGOD})
1717
MONGO_VER=${FULL_VER:0:3}
@@ -45,7 +45,7 @@ if [[ "$(echo ${TARGET_IMAGE} | cut -d'/' -f1)" == "perconalab" ]]; then
4545
IMAGE="${IMAGE/percona\//perconalab\/}"
4646
fi
4747
IMAGE_MONGOD=$(echo "${INIT_OPERATOR_IMAGES}" | jq -r '.versions[].matrix.mongod[].imagePath')
48-
IMAGE_PMM=$(echo "${INIT_OPERATOR_IMAGES}" | jq -r '.versions[].matrix.pmm[].imagePath')
48+
IMAGE_PMM_CLIENT=$(echo "${INIT_OPERATOR_IMAGES}" | jq -r '.versions[].matrix.pmm[].imagePath')
4949
IMAGE_BACKUP=$(echo "${INIT_OPERATOR_IMAGES}" | jq -r '.versions[].matrix.backup[].imagePath')
5050

5151
if [[ ${TARGET_OPERATOR_VER} == "${INIT_OPERATOR_VER}" ]]; then
@@ -88,7 +88,7 @@ function check_applied_images() {
8888
"operator")
8989
if [[ ${TARGET_IMAGE} == $(kubectl_bin get pod ${OPERATOR_NS:+-n $OPERATOR_NS} --selector=name="${OPERATOR_NAME}" -o jsonpath='{.items[*].spec.containers[?(@.name == "'"${OPERATOR_NAME}"'")].image}') &&
9090
${IMAGE_BACKUP} == $(kubectl_bin get psmdb "${cluster}" -o jsonpath='{.spec.backup.image}') &&
91-
${IMAGE_PMM} == $(kubectl_bin get psmdb "${cluster}" -o jsonpath='{.spec.pmm.image}') &&
91+
${IMAGE_PMM_CLIENT} == $(kubectl_bin get psmdb "${cluster}" -o jsonpath='{.spec.pmm.image}') &&
9292
${IMAGE_MONGOD} == $(kubectl_bin get psmdb "${cluster}" -o jsonpath='{.spec.image}') ]]; then
9393
: Operator image has been updated correctly
9494
else
@@ -99,7 +99,7 @@ function check_applied_images() {
9999
"all")
100100
if [[ ${TARGET_IMAGE} == $(kubectl_bin get pod ${OPERATOR_NS:+-n $OPERATOR_NS} --selector=name="${OPERATOR_NAME}" -o jsonpath='{.items[*].spec.containers[?(@.name == "'"${OPERATOR_NAME}"'")].image}') &&
101101
${TARGET_IMAGE_BACKUP} == $(kubectl_bin get psmdb "${cluster}" -o jsonpath='{.spec.backup.image}') &&
102-
${TARGET_IMAGE_PMM} == $(kubectl_bin get psmdb "${cluster}" -o jsonpath='{.spec.pmm.image}') &&
102+
${TARGET_IMAGE_PMM_CLIENT} == $(kubectl_bin get psmdb "${cluster}" -o jsonpath='{.spec.pmm.image}') &&
103103
${TARGET_IMAGE_MONGOD} == $(kubectl_bin get psmdb "${cluster}" -o jsonpath='{.spec.image}') ]]; then
104104
: Cluster images have been updated correctly
105105
else
@@ -236,7 +236,7 @@ function main() {
236236
"spec": {
237237
"crVersion": "'"${TARGET_OPERATOR_VER}"'",
238238
"image": "'"${TARGET_IMAGE_MONGOD}"'",
239-
"pmm": { "image": "'"${TARGET_IMAGE_PMM}"'" },
239+
"pmm": { "image": "'"${TARGET_IMAGE_PMM_CLIENT}"'" },
240240
"backup": { "image": "'"${TARGET_IMAGE_BACKUP}"'" }
241241
}}'
242242
sleep 10

e2e-tests/upgrade/run

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ CLUSTER_SIZE=3
1111
TARGET_OPERATOR_VER="${OPERATOR_VERSION}"
1212
TARGET_IMAGE="${IMAGE}"
1313
TARGET_IMAGE_MONGOD="${IMAGE_MONGOD}"
14-
TARGET_IMAGE_PMM="${IMAGE_PMM}"
14+
TARGET_IMAGE_PMM_CLIENT="${IMAGE_PMM_CLIENT}"
1515
TARGET_IMAGE_BACKUP="${IMAGE_BACKUP}"
1616
FULL_VER=$(get_mongod_ver_from_image ${TARGET_IMAGE_MONGOD})
1717
MONGO_VER=${FULL_VER:0:3}
@@ -48,7 +48,7 @@ if [[ "$(echo ${TARGET_IMAGE} | cut -d'/' -f1)" == "perconalab" ]]; then
4848
IMAGE="${IMAGE/percona\//perconalab\/}"
4949
fi
5050
IMAGE_MONGOD=$(echo "${INIT_OPERATOR_IMAGES}" | jq -r '.versions[].matrix.mongod[].imagePath')
51-
IMAGE_PMM=$(echo "${INIT_OPERATOR_IMAGES}" | jq -r '.versions[].matrix.pmm[].imagePath')
51+
IMAGE_PMM_CLIENT=$(echo "${INIT_OPERATOR_IMAGES}" | jq -r '.versions[].matrix.pmm[].imagePath')
5252
IMAGE_BACKUP=$(echo "${INIT_OPERATOR_IMAGES}" | jq -r '.versions[].matrix.backup[].imagePath')
5353

5454
if [[ ${TARGET_OPERATOR_VER} == "${INIT_OPERATOR_VER}" ]]; then
@@ -90,7 +90,7 @@ function check_applied_images() {
9090
"operator")
9191
if [[ ${TARGET_IMAGE} == $(kubectl_bin get pod ${OPERATOR_NS:+-n $OPERATOR_NS} --selector=name="${OPERATOR_NAME}" -o jsonpath='{.items[*].spec.containers[?(@.name == "'"${OPERATOR_NAME}"'")].image}') &&
9292
${IMAGE_BACKUP} == $(kubectl_bin get psmdb "${cluster}" -o jsonpath='{.spec.backup.image}') &&
93-
${IMAGE_PMM} == $(kubectl_bin get psmdb "${cluster}" -o jsonpath='{.spec.pmm.image}') &&
93+
${IMAGE_PMM_CLIENT} == $(kubectl_bin get psmdb "${cluster}" -o jsonpath='{.spec.pmm.image}') &&
9494
${IMAGE_MONGOD} == $(kubectl_bin get psmdb "${cluster}" -o jsonpath='{.spec.image}') ]]; then
9595
: Operator image has been updated correctly
9696
else
@@ -101,7 +101,7 @@ function check_applied_images() {
101101
"all")
102102
if [[ ${TARGET_IMAGE} == $(kubectl_bin get pod ${OPERATOR_NS:+-n $OPERATOR_NS} --selector=name="${OPERATOR_NAME}" -o jsonpath='{.items[*].spec.containers[?(@.name == "'"${OPERATOR_NAME}"'")].image}') &&
103103
${TARGET_IMAGE_BACKUP} == $(kubectl_bin get psmdb "${cluster}" -o jsonpath='{.spec.backup.image}') &&
104-
${TARGET_IMAGE_PMM} == $(kubectl_bin get psmdb "${cluster}" -o jsonpath='{.spec.pmm.image}') &&
104+
${TARGET_IMAGE_PMM_CLIENT} == $(kubectl_bin get psmdb "${cluster}" -o jsonpath='{.spec.pmm.image}') &&
105105
${TARGET_IMAGE_MONGOD} == $(kubectl_bin get psmdb "${cluster}" -o jsonpath='{.spec.image}') ]]; then
106106
: Cluster images have been updated correctly
107107
else
@@ -202,7 +202,7 @@ function main() {
202202
"spec": {
203203
"crVersion": "'"${TARGET_OPERATOR_VER}"'",
204204
"image": "'"${TARGET_IMAGE_MONGOD}"'",
205-
"pmm": { "image": "'"${TARGET_IMAGE_PMM}"'" },
205+
"pmm": { "image": "'"${TARGET_IMAGE_PMM_CLIENT}"'" },
206206
"backup": { "image": "'"${TARGET_IMAGE_BACKUP}"'" }
207207
}}'
208208
sleep 10

e2e-tests/version-service/run

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ function check_telemetry_transfer() {
2424
.spec.initImage = "'$IMAGE'" |
2525
.spec.crVersion = "9.9.9" |
2626
.spec.image = "'$IMAGE_MONGOD'" |
27-
.spec.pmm.image = "'$IMAGE_PMM'" |
27+
.spec.pmm.image = "'$IMAGE_PMM_CLIENT'" |
2828
.spec.backup.enabled = false |
2929
.spec.backup.image = "'$IMAGE_BACKUP'"' ${src_dir}/deploy/cr-minimal.yaml \
3030
| kubectl_bin apply -f -
@@ -162,7 +162,7 @@ for i in "${!cases[@]}"; do
162162
.spec.backup.enabled = false |
163163
del(.spec.backup.tasks) |
164164
.spec.image = "'$IMAGE_MONGOD'" |
165-
.spec.pmm.image = "'$IMAGE_PMM'" |
165+
.spec.pmm.image = "'$IMAGE_PMM_CLIENT'" |
166166
.spec.backup.image = "'$IMAGE_BACKUP'"' "$tmp_file" \
167167
| kubectl_bin apply -f -
168168

0 commit comments

Comments
 (0)