Skip to content

Commit ac3cc14

Browse files
gkechegegunes
authored andcommitted
K8SPSMDB-1268 pmm3 support (#1916)
* K8SPSMDB-1268 pmm3 support * fix imports * assert the env var lengths * add server host * cover more inits in test * add custom params * improve test * remove spammy logs * e2e tests * fix mounts for pmm3 container * update secret with new token comment * wrapup e2e test * drop unused env vars * ensure that pmm3 test is fully functional * bonus: improve the custom name e2e verification * add small assertion to ensure that disabled pmm and nil secret return no container * make custom cluster name configurable in cr for the e2e test * fix linter * cr: package rename to config * add some more test cases
1 parent cda1ed4 commit ac3cc14

32 files changed

+3513
-337
lines changed

cmd/mongodb-healthcheck/logger/logger.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import (
1313
"gopkg.in/natefinch/lumberjack.v2"
1414
"sigs.k8s.io/controller-runtime/pkg/log/zap"
1515

16-
"github.com/percona/percona-server-mongodb-operator/pkg/psmdb"
16+
"github.com/percona/percona-server-mongodb-operator/pkg/psmdb/config"
1717
)
1818

1919
type Logger struct {
@@ -22,7 +22,7 @@ type Logger struct {
2222
}
2323

2424
func New() *Logger {
25-
logPath := filepath.Join(psmdb.MongodDataVolClaimName, "logs", "mongodb-healthcheck.log")
25+
logPath := filepath.Join(config.MongodDataVolClaimName, "logs", "mongodb-healthcheck.log")
2626

2727
return newLogger(logPath)
2828
}

deploy/secrets.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,4 @@ stringData:
1717
PMM_SERVER_API_KEY: apikey
1818
#PMM_SERVER_USER: admin
1919
#PMM_SERVER_PASSWORD: admin
20+
#PMM_SERVER_TOKEN: token

e2e-tests/default-cr/run

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -91,33 +91,6 @@ function main() {
9191
compare_generation "1" "statefulset" "${cluster}-mongos"
9292
compare_generation "1" "psmdb" "${cluster}"
9393

94-
desc 'install PMM Server'
95-
deploy_pmm_server
96-
sleep 20
97-
kubectl_bin patch psmdb ${cluster} --type=merge --patch '{
98-
"spec": {"pmm":{"enabled":true}}
99-
}'
100-
sleep 120
101-
# since psmdb cluster won't work without pmm server running consistency check would be enough
102-
wait_cluster_consistency $cluster
103-
104-
kubectl_bin patch psmdb ${cluster} --type=merge --patch '{
105-
"spec": {"pmm":{"enabled":false}}
106-
}'
107-
sleep 120
108-
109-
if [[ -n ${OPENSHIFT} ]]; then
110-
oc adm policy remove-scc-from-user privileged -z pmm-server
111-
if [ -n "$OPERATOR_NS" ]; then
112-
oc delete clusterrolebinding pmm-psmdb-operator-cluster-wide
113-
else
114-
oc delete rolebinding pmm-psmdb-operator-namespace-only
115-
fi
116-
fi
117-
helm uninstall monitoring
118-
119-
wait_cluster_consistency $cluster
120-
12194
desc 'enabling arbiter'
12295
kubectl_bin patch psmdb ${cluster} --type json -p='[{"op":"replace","path":"/spec/replsets/0/arbiter/enabled","value":true},{"op":"replace","path":"/spec/replsets/0/size","value":4}]'
12396
wait_cluster_consistency $cluster

e2e-tests/functions

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ SKIP_BACKUPS_TO_AWS_GCP_AZURE=${SKIP_BACKUPS_TO_AWS_GCP_AZURE:-1}
1515
PMM_SERVER_VER=${PMM_SERVER_VER:-"9.9.9"}
1616
IMAGE_PMM_CLIENT=${IMAGE_PMM_CLIENT:-"perconalab/pmm-client:dev-latest"}
1717
IMAGE_PMM_SERVER=${IMAGE_PMM_SERVER:-"perconalab/pmm-server:dev-latest"}
18+
IMAGE_PMM3_CLIENT=${IMAGE_PMM3_CLIENT:-"perconalab/pmm-client:3.1.0"}
19+
IMAGE_PMM3_SERVER=${IMAGE_PMM3_SERVER:-"perconalab/pmm-server:3.1.0"}
1820
CERT_MANAGER_VER="1.17.2"
1921
MINIO_VER="5.4.0"
2022
CHAOS_MESH_VER="2.7.1"

e2e-tests/monitoring-2-0/conf/monitoring-2-0.yml

Lines changed: 0 additions & 200 deletions
This file was deleted.
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
annotations:
5+
test: monitoring-pmm3
6+
labels:
7+
app.kubernetes.io/component: mongos
8+
app.kubernetes.io/instance: monitoring-pmm3
9+
app.kubernetes.io/managed-by: percona-server-mongodb-operator
10+
app.kubernetes.io/name: percona-server-mongodb
11+
app.kubernetes.io/part-of: percona-server-mongodb
12+
test: monitoring-pmm3
13+
name: monitoring-pmm3-mongos
14+
ownerReferences:
15+
- controller: true
16+
kind: PerconaServerMongoDB
17+
name: monitoring-pmm3
18+
spec:
19+
ports:
20+
- name: mongos
21+
port: 27019
22+
protocol: TCP
23+
targetPort: 27019
24+
selector:
25+
app.kubernetes.io/component: mongos
26+
app.kubernetes.io/instance: monitoring-pmm3
27+
app.kubernetes.io/managed-by: percona-server-mongodb-operator
28+
app.kubernetes.io/name: percona-server-mongodb
29+
app.kubernetes.io/part-of: percona-server-mongodb
30+
sessionAffinity: None
31+
type: ClusterIP
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
annotations: {}
5+
labels:
6+
app.kubernetes.io/instance: monitoring-pmm3
7+
app.kubernetes.io/managed-by: percona-server-mongodb-operator
8+
app.kubernetes.io/name: percona-server-mongodb
9+
app.kubernetes.io/part-of: percona-server-mongodb
10+
app.kubernetes.io/replset: rs0
11+
name: monitoring-pmm3-rs0
12+
ownerReferences:
13+
- controller: true
14+
kind: PerconaServerMongoDB
15+
name: monitoring-pmm3
16+
spec:
17+
ports:
18+
- name: mongodb
19+
port: 27019
20+
protocol: TCP
21+
targetPort: 27019
22+
selector:
23+
app.kubernetes.io/instance: monitoring-pmm3
24+
app.kubernetes.io/managed-by: percona-server-mongodb-operator
25+
app.kubernetes.io/name: percona-server-mongodb
26+
app.kubernetes.io/part-of: percona-server-mongodb
27+
app.kubernetes.io/replset: rs0
28+
sessionAffinity: None
29+
type: ClusterIP

0 commit comments

Comments
 (0)