Skip to content

Commit ec9ce7e

Browse files
nmarukovichgithub-actions[bot]hors
authored
K8SPSMDB-768 add tests (#1303)
* K8SPSMDB-768 add tests * Update e2e-tests/functions Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * add tests for running --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Viacheslav Sarzhan <[email protected]>
1 parent 79f2809 commit ec9ce7e

28 files changed

+3030
-19
lines changed
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
apiVersion: psmdb.percona.com/v1
2+
kind: PerconaServerMongoDB
3+
metadata:
4+
name: some-name
5+
finalizers:
6+
- delete-psmdb-pods-in-order
7+
- delete-psmdb-pvc
8+
spec:
9+
# platform: openshift
10+
image:
11+
imagePullPolicy: Always
12+
allowUnsafeConfigurations: false
13+
updateStrategy: SmartUpdate
14+
secrets:
15+
users: some-users
16+
replsets:
17+
- name: rs0
18+
size: 3
19+
affinity:
20+
antiAffinityTopologyKey: "kubernetes.io/hostname"
21+
podDisruptionBudget:
22+
maxUnavailable: 1
23+
expose:
24+
enabled: true
25+
exposeType: ClusterIP
26+
resources:
27+
limits:
28+
cpu: "500m"
29+
memory: "0.5G"
30+
requests:
31+
cpu: "100m"
32+
memory: "0.1G"
33+
volumeSpec:
34+
persistentVolumeClaim:
35+
resources:
36+
requests:
37+
storage: 1Gi
38+
sharding:
39+
enabled: true
40+
41+
configsvrReplSet:
42+
size: 3
43+
affinity:
44+
antiAffinityTopologyKey: "kubernetes.io/hostname"
45+
podDisruptionBudget:
46+
maxUnavailable: 1
47+
expose:
48+
enabled: true
49+
exposeType: ClusterIP
50+
resources:
51+
limits:
52+
cpu: "300m"
53+
memory: "0.5G"
54+
requests:
55+
cpu: "300m"
56+
memory: "0.5G"
57+
volumeSpec:
58+
persistentVolumeClaim:
59+
resources:
60+
requests:
61+
storage: 3Gi
62+
63+
mongos:
64+
size: 3
65+
affinity:
66+
antiAffinityTopologyKey: "kubernetes.io/hostname"
67+
podDisruptionBudget:
68+
maxUnavailable: 1
69+
resources:
70+
limits:
71+
cpu: "300m"
72+
memory: "0.5G"
73+
requests:
74+
cpu: "300m"
75+
memory: "0.5G"
76+
expose:
77+
exposeType: ClusterIP
78+
servicePerPod: true
79+
80+
backup:
81+
enabled: false
82+
image: perconalab/percona-server-mongodb-operator:main-backup
83+
serviceAccountName: percona-server-mongodb-operator
84+
pitr:
85+
enabled: false

e2e-tests/finalizer/run

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#!/bin/bash
2+
3+
set -o errexit
4+
set -o xtrace
5+
6+
test_dir=$(realpath "$(dirname "$0")")
7+
. "${test_dir}/../functions"
8+
9+
create_infra "$namespace"
10+
cluster="some-name"
11+
12+
apply_cluster "$test_dir/conf/$cluster.yml"
13+
desc 'check if all 3 Pods started'
14+
wait_for_running "$cluster-rs0" 3
15+
16+
kubectl_bin delete psmdb $cluster
17+
18+
desc "Wait for delete cluster $cluster"
19+
wait_for_delete psmdb/$cluster
20+
21+
desc "Wait for delete PVCs"
22+
wait_for_delete pvc/mongod-data-$cluster-cfg-0
23+
wait_for_delete pvc/mongod-data-$cluster-cfg-1
24+
wait_for_delete pvc/mongod-data-$cluster-cfg-2
25+
wait_for_delete pvc/mongod-data-$cluster-rs0-0
26+
wait_for_delete pvc/mongod-data-$cluster-rs0-1
27+
wait_for_delete pvc/mongod-data-$cluster-rs0-2
28+
29+
desc "Test passed"
30+
destroy "$namespace"

e2e-tests/functions

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -621,6 +621,7 @@ compare_kubectl() {
621621
local new_result="${tmp_dir}/${resource//\//_}.yml"
622622

623623
if [ -n "$OPENSHIFT" -a -f ${expected_result//.yml/-oc.yml} ]; then
624+
desc "OPENSHIFT"
624625
expected_result=${expected_result//.yml/-oc.yml}
625626
if [ "$OPENSHIFT" = 4 -a -f ${expected_result//-oc.yml/-4-oc.yml} ]; then
626627
expected_result=${expected_result//-oc.yml/-4-oc.yml}
@@ -674,7 +675,6 @@ compare_kubectl() {
674675
yq -i eval 'del(.metadata.generation)' ${new_result}
675676
fi
676677
fi
677-
678678
diff -u "$expected_result" "$new_result"
679679
}
680680

e2e-tests/mongod-major-upgrade-sharded/run

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ function main() {
3131
create_infra "${namespace}"
3232

3333
apply_s3_storage_secrets
34-
deploy_minio
3534

3635
kubectl_bin apply -f "${conf_dir}/client.yml" \
3736
-f "${conf_dir}/secrets.yml"
@@ -93,11 +92,6 @@ function main() {
9392

9493
target_generation=2
9594
for version in ${versions_to_verify[@]}; do
96-
97-
backup_name_minio="backup-minio-${target_generation}"
98-
run_backup minio ${backup_name_minio}
99-
wait_backup ${backup_name_minio}
100-
10195
kubectl_bin patch psmdb/${cluster%%-rs0} \
10296
--type=json \
10397
-p='[
@@ -119,18 +113,6 @@ function main() {
119113
'use myApp\n db.test.insert({ x: 10050'${target_generation}' })' \
120114
"myApp:myPass@${cluster}-mongos.${namespace}"
121115
compare_mongos_cmd "find" "myApp:myPass@${cluster}-mongos.${namespace}" "-${target_generation}"
122-
123-
backup_dest_minio=$(get_backup_dest "${backup_name_minio}")
124-
kubectl_bin run -i --rm aws-cli --image=perconalab/awscli --restart=Never -- \
125-
/usr/bin/env AWS_ACCESS_KEY_ID=some-access-key AWS_SECRET_ACCESS_KEY=some-secret-key AWS_DEFAULT_REGION=us-east-1 \
126-
/usr/bin/aws --endpoint-url http://minio-service:9000 s3 ls s3://operator-testing/${backup_dest_minio}/rs0/ \
127-
| grep myApp.test.gz
128-
129-
run_mongos 'use myApp\n db.test.insert({ x: 100600 })' "myApp:myPass@${cluster}-mongos.${namespace}"
130-
run_restore "${backup_name_minio}"
131-
wait_restore "${backup_name_minio}" "${cluster}"
132-
compare_mongos_cmd "find" "myApp:myPass@${cluster}-mongos.${namespace}"
133-
134116
target_generation=$((target_generation + 1))
135117
done
136118

e2e-tests/run

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ fail() {
2424
"$dir/expose-sharded/run" || fail "expose-sharded"
2525
"$dir/ignore-labels-annotations/run" || fail "ignore-labels-annotations"
2626
"$dir/init-deploy/run" || fail "init-deploy"
27+
"$dir/finalizer/run" || fail "finalizer"
2728
"$dir/limits/run" || fail "limits"
2829
"$dir/liveness/run" || fail "liveness"
2930
"$dir/multi-cluster-service/run" || fail "multi-cluster-service"
@@ -46,6 +47,7 @@ fail() {
4647
"$dir/smart-update/run" || fail "smart-update"
4748
"$dir/storage/run" || fail "storage"
4849
"$dir/upgrade-consistency/run" || fail "upgrade-consistency"
50+
"$dir/upgrade-consistency-sharded/run" || fail "upgrade-consistency-sharded"
4951
"$dir/upgrade-sharded/run" || fail "upgrade-sharded"
5052
"$dir/upgrade/run" || fail "upgrade"
5153
"$dir/users/run" || fail "users"

e2e-tests/run-minikube.csv

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ arbiter
22
default-cr
33
demand-backup
44
demand-backup-physical
5+
finalizer
56
limits
67
liveness
78
mongod-major-upgrade
@@ -14,5 +15,6 @@ security-context
1415
self-healing-chaos
1516
smart-update
1617
upgrade-consistency
18+
upgrade-consistency-sharded
1719
users
1820
version-service

e2e-tests/run-pr.csv

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ demand-backup-sharded
1010
expose-sharded
1111
ignore-labels-annotations
1212
init-deploy
13+
finalizer
1314
limits
1415
liveness
1516
mongod-major-upgrade
@@ -33,6 +34,7 @@ smart-update
3334
storage
3435
upgrade
3536
upgrade-consistency
37+
upgrade-consistency-sharded
3638
upgrade-sharded
3739
users
3840
version-service

e2e-tests/run-release.csv

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ demand-backup-sharded
1111
expose-sharded
1212
ignore-labels-annotations
1313
init-deploy
14+
finalizer
1415
limits
1516
liveness
1617
mongod-major-upgrade
@@ -34,6 +35,7 @@ smart-update
3435
storage
3536
upgrade
3637
upgrade-consistency
38+
upgrade-consistency-sharded
3739
upgrade-sharded
3840
users
3941
version-service
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: some-name
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: cfg
11+
name: some-name-cfg
12+
ownerReferences:
13+
- controller: true
14+
kind: PerconaServerMongoDB
15+
name: some-name
16+
spec:
17+
ports:
18+
- name: mongodb
19+
port: 27017
20+
protocol: TCP
21+
targetPort: 27017
22+
selector:
23+
app.kubernetes.io/instance: some-name
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: cfg
28+
sessionAffinity: None
29+
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: some-name
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: cfg
11+
name: some-name-cfg
12+
ownerReferences:
13+
- controller: true
14+
kind: PerconaServerMongoDB
15+
name: some-name
16+
spec:
17+
ports:
18+
- name: mongodb
19+
port: 27017
20+
protocol: TCP
21+
targetPort: 27017
22+
selector:
23+
app.kubernetes.io/instance: some-name
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: cfg
28+
sessionAffinity: None
29+
type: ClusterIP

0 commit comments

Comments
 (0)