diff --git a/e2e-tests/pitr-sharded/conf/backup-aws-s3.yml b/e2e-tests/pitr-sharded/conf/backup-aws-s3.yml new file mode 100644 index 0000000000..c8db546201 --- /dev/null +++ b/e2e-tests/pitr-sharded/conf/backup-aws-s3.yml @@ -0,0 +1,7 @@ +apiVersion: psmdb.percona.com/v1 +kind: PerconaServerMongoDBBackup +metadata: + name: +spec: + clusterName: some-name + storageName: aws-s3 diff --git a/e2e-tests/pitr-sharded/conf/eks-some-name-rs0.yml b/e2e-tests/pitr-sharded/conf/eks-some-name-rs0.yml new file mode 100644 index 0000000000..676efda765 --- /dev/null +++ b/e2e-tests/pitr-sharded/conf/eks-some-name-rs0.yml @@ -0,0 +1,171 @@ +apiVersion: psmdb.percona.com/v1 +kind: PerconaServerMongoDB +metadata: + name: some-name +spec: + #platform: openshift + image: + imagePullPolicy: Always + backup: + enabled: true + image: perconalab/percona-server-mongodb-operator:1.1.0-backup + storages: + aws-s3: + type: s3 + s3: + region: us-east-1 + bucket: operator-testing + prefix: psmdb-pitr-demand-backup-eks-credentials + pitr: + enabled: false + oplogSpanMin: 2 + runtimeClassName: container-rc + sharding: + enabled: true + + configsvrReplSet: + size: 3 + volumeSpec: + persistentVolumeClaim: + resources: + requests: + storage: 3Gi + sidecars: + - image: busybox + command: ["/bin/sh"] + args: ["-c", "while true; do echo echo $(date -u) 'test' >> /dev/null; sleep 5;done"] + name: cfg-sidecar-1 + runtimeClassName: container-rc + + mongos: + size: 3 + expose: + exposeType: ClusterIP + sidecars: + - image: busybox + command: ["/bin/sh"] + args: ["-c", "while true; do echo echo $(date -u) 'test' >> /dev/null; sleep 5;done"] + name: mongos-sidecar-1 + runtimeClassName: container-rc + + + replsets: + - name: rs0 + affinity: + antiAffinityTopologyKey: none + resources: + limits: + cpu: 500m + memory: 1G + requests: + cpu: 100m + memory: 0.1G + volumeSpec: + persistentVolumeClaim: + resources: + requests: + storage: 1Gi + runtimeClassName: container-rc + size: 3 + configuration: | + operationProfiling: + mode: slowOp + slowOpThresholdMs: 100 + security: + enableEncryption: true + redactClientLogData: false + setParameter: + ttlMonitorSleepSecs: 60 + wiredTigerConcurrentReadTransactions: 128 + wiredTigerConcurrentWriteTransactions: 128 + storage: + engine: wiredTiger + wiredTiger: + collectionConfig: + blockCompressor: snappy + engineConfig: + directoryForIndexes: false + journalCompressor: snappy + indexConfig: + prefixCompression: true + - name: rs1 + affinity: + antiAffinityTopologyKey: none + resources: + limits: + cpu: 500m + memory: 1G + requests: + cpu: 100m + memory: 0.1G + volumeSpec: + persistentVolumeClaim: + resources: + requests: + storage: 1Gi + size: 3 + configuration: | + operationProfiling: + mode: slowOp + slowOpThresholdMs: 100 + security: + enableEncryption: true + redactClientLogData: false + setParameter: + ttlMonitorSleepSecs: 60 + wiredTigerConcurrentReadTransactions: 128 + wiredTigerConcurrentWriteTransactions: 128 + storage: + engine: wiredTiger + wiredTiger: + collectionConfig: + blockCompressor: snappy + engineConfig: + directoryForIndexes: false + journalCompressor: snappy + indexConfig: + prefixCompression: true + - name: rs2 + affinity: + antiAffinityTopologyKey: none + resources: + limits: + cpu: 500m + memory: 1G + requests: + cpu: 100m + memory: 0.1G + volumeSpec: + persistentVolumeClaim: + resources: + requests: + storage: 1Gi + size: 3 + configuration: | + operationProfiling: + mode: slowOp + slowOpThresholdMs: 100 + security: + enableEncryption: true + redactClientLogData: false + setParameter: + ttlMonitorSleepSecs: 60 + wiredTigerConcurrentReadTransactions: 128 + wiredTigerConcurrentWriteTransactions: 128 + storage: + engine: wiredTiger + wiredTiger: + collectionConfig: + blockCompressor: snappy + engineConfig: + directoryForIndexes: false + journalCompressor: snappy + indexConfig: + prefixCompression: true + sidecars: + - image: busybox + command: ["/bin/sh"] + args: ["-c", "while true; do echo echo $(date -u) 'test' >> /dev/null; sleep 5;done"] + name: rs-sidecar-1 + secrets: + users: some-users diff --git a/e2e-tests/pitr-sharded/run b/e2e-tests/pitr-sharded/run index 155771fd7d..5cd0e84920 100755 --- a/e2e-tests/pitr-sharded/run +++ b/e2e-tests/pitr-sharded/run @@ -95,7 +95,11 @@ main() { cluster="some-name" desc "create first PSMDB cluster $cluster" - apply_cluster $test_dir/conf/$cluster-rs0.yml + if [ $EKS -eq 0 ]; then + apply_cluster $test_dir/conf/$cluster-rs0.yml + else + apply_cluster $test_dir/conf/eks-$cluster-rs0.yml + fi desc 'check if all 3 Pods started' wait_for_running $cluster-rs0 3 @@ -121,19 +125,35 @@ main() { wait_backup_agent $cluster-rs2-1 wait_backup_agent $cluster-rs2-2 - backup_name_minio="backup-minio" - run_backup $backup_name_minio 0 + if [ $EKS -eq 0 ]; then + backup_name_minio="backup-minio" + run_backup $backup_name_minio 0 + else + kubectl_bin patch psmdb some-name --type=merge -p '{"spec":{"backup":{"pitr":{"enabled":true}}}}' + kubectl_bin exec some-name-rs0-0 -it -c backup-agent -- pbm status + exit_status=$? + if [ $exit_status -gt 0 ]; then + exit 1 + fi + backup_name_aws="backup-aws-s3" + run_backup $backup_name_aws 0 + fi write_document "-2nd" sleep 2 time_now=$(run_mongos 'new Date().toISOString()' "myApp:myPass@$cluster-mongos.$namespace" "mongodb" "" "--quiet" | grep -E -v 'I NETWORK|W NETWORK|Error saving history file|Percona Server for MongoDB|connecting to:|Unable to reach primary for set|Implicit session:|versions do not match|Error saving history file:' | cut -c1-19 | tr T " ") - check_recovery $backup_name_minio-0 date "$time_now" "-2nd" "$cluster" - - run_backup $backup_name_minio 1 + if [ $EKS -eq 0 ]; then + check_recovery $backup_name_minio-0 date "$time_now" "-2nd" "$cluster" + run_backup $backup_name_minio 1 + check_recovery $backup_name_minio-1 latest "" "-3rd" "$cluster" + else + check_recovery $backup_name_aws-0 date "$time_now" "-2nd" "$cluster" + run_backup $backup_name_aws 1 + check_recovery $backup_name_aws-1 latest "" "-3rd" "$cluster" - check_recovery $backup_name_minio-1 latest "" "-3rd" "$cluster" + fi desc 'delete custom RuntimeClass' kubectl_bin delete -f "$conf_dir/container-rc.yaml"