Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 19 additions & 18 deletions e2e-tests/functions
Original file line number Diff line number Diff line change
Expand Up @@ -1897,31 +1897,33 @@ list_files_on_storage() {
verify_all_backups_deletion() {
for backup in $(kubectl get ps-backup -n "$NAMESPACE" -o jsonpath='{.items[*].metadata.name}'); do
echo "Checking backup: $backup"

output=$(
eval "$(
kubectl get ps-backup "$backup" -n "$NAMESPACE" -o json \
| yq -r '
.status.storage as $storage |
[
$storage.type,
($storage[.type].bucket // $storage[.type].container // ""),
($storage[.type].credentialsSecret // ""),
($storage[.type].endpointUrl // ""),
($storage[.type].region // ""),
(.status.destination // "")
] | @tsv
| jq -r '
.status.storage.type as $t |
(if $t then .status.storage[$t] else {} end) as $s |
"storage_type=\($t // "")",
"bucket=\($s.bucket // $s.container // "")",
"secret_name=\($s.credentialsSecret // "")",
"endpoint=\($s.endpointUrl // "")",
"region=\($s.region // "")",
"destination=\(.status.destination // "")"
'
)
)"

read -r storage_type bucket secret_name endpoint region destination <<<"$output"
kubectl delete ps-backup "$backup" -n "$NAMESPACE"

prefix="${destination#*://*/}"
local prefix="${destination#*://}"
prefix="${prefix#*/}"
if [[ -z $destination ]]; then
echo "Backup $backup is missing destination"
break
continue
fi

kubectl delete ps-backup "$backup" -n "$NAMESPACE"
if [[ $storage_type == "azure" ]]; then
echo "Skipping backup verification, to be implemented on K8SPS-695"
continue
fi

local removed=false
for i in {1..5}; do
Expand All @@ -1930,7 +1932,6 @@ verify_all_backups_deletion() {
removed=true
break
fi

echo "Waiting for backup removal ($i/5): $backup"
sleep 5
done
Expand Down
25 changes: 21 additions & 4 deletions e2e-tests/tests/demand-backup-cloud/00-assert.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,25 @@ apiVersion: kuttl.dev/v1beta1
kind: TestAssert
timeout: 150
---
apiVersion: v1
kind: Secret
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: minio-secret
type: Opaque
name: perconaservermysqls.ps.percona.com
spec:
group: ps.percona.com
names:
kind: PerconaServerMySQL
listKind: PerconaServerMySQLList
plural: perconaservermysqls
shortNames:
- ps
singular: perconaservermysql
scope: Namespaced
---
apiVersion: kuttl.dev/v1beta1
kind: TestAssert
metadata:
name: check-operator-deploy-status
timeout: 120
commands:
- script: kubectl assert exist-enhanced deployment percona-server-mysql-operator -n ${OPERATOR_NS:-$NAMESPACE} --field-selector status.readyReplicas=1
7 changes: 0 additions & 7 deletions e2e-tests/tests/demand-backup-cloud/00-minio-secret.yaml

This file was deleted.

74 changes: 54 additions & 20 deletions e2e-tests/tests/demand-backup-cloud/01-assert.yaml
Original file line number Diff line number Diff line change
@@ -1,26 +1,60 @@
apiVersion: kuttl.dev/v1beta1
kind: TestAssert
timeout: 150
timeout: 420
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
kind: StatefulSet
apiVersion: apps/v1
metadata:
name: perconaservermysqls.ps.percona.com
spec:
group: ps.percona.com
names:
kind: PerconaServerMySQL
listKind: PerconaServerMySQLList
plural: perconaservermysqls
shortNames:
- ps
singular: perconaservermysql
scope: Namespaced
name: demand-backup-cloud-mysql
status:
observedGeneration: 1
replicas: 3
readyReplicas: 3
currentReplicas: 3
updatedReplicas: 3
collisionCount: 0
---
apiVersion: kuttl.dev/v1beta1
kind: TestAssert
kind: StatefulSet
apiVersion: apps/v1
metadata:
name: demand-backup-cloud-orc
status:
observedGeneration: 1
replicas: 3
readyReplicas: 3
currentReplicas: 3
updatedReplicas: 3
collisionCount: 0
---
kind: StatefulSet
apiVersion: apps/v1
metadata:
name: demand-backup-cloud-haproxy
status:
observedGeneration: 1
replicas: 3
readyReplicas: 3
currentReplicas: 3
updatedReplicas: 3
collisionCount: 0
---
apiVersion: ps.percona.com/v1
kind: PerconaServerMySQL
metadata:
name: check-operator-deploy-status
timeout: 120
commands:
- script: kubectl assert exist-enhanced deployment percona-server-mysql-operator -n ${OPERATOR_NS:-$NAMESPACE} --field-selector status.readyReplicas=1
name: demand-backup-cloud
finalizers:
- percona.com/delete-mysql-pods-in-order
status:
haproxy:
ready: 3
size: 3
state: ready
mysql:
ready: 3
size: 3
state: ready
orchestrator:
ready: 3
size: 3
state: ready
state: ready
11 changes: 11 additions & 0 deletions e2e-tests/tests/demand-backup-cloud/01-create-cluster.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
apiVersion: kuttl.dev/v1beta1
kind: TestStep
timeout: 10
commands:
- script: |-
set -o errexit
set -o xtrace

source ../../functions

get_cr | kubectl -n "${NAMESPACE}" apply -f -
60 changes: 0 additions & 60 deletions e2e-tests/tests/demand-backup-cloud/02-assert.yaml

This file was deleted.

35 changes: 0 additions & 35 deletions e2e-tests/tests/demand-backup-cloud/02-create-cluster.yaml

This file was deleted.

12 changes: 12 additions & 0 deletions e2e-tests/tests/demand-backup-cloud/04-assert.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: kuttl.dev/v1beta1
kind: TestAssert
timeout: 300
---
kind: PerconaServerMySQLBackup
apiVersion: ps.percona.com/v1
metadata:
name: demand-backup-cloud-1
finalizers:
- percona.com/delete-backup
status:
state: Succeeded
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: kuttl.dev/v1beta1
kind: TestStep
commands:
- script: |
set -o errexit
set -o xtrace

source ../../functions

# Gets first storage defined and run backup
first_storage_name=$(kubectl get ps demand-backup-cloud -n ${NAMESPACE} -o yaml | yq '(.spec.backup.storages // {}) | keys | .[0]')
run_backup demand-backup-cloud-1 $first_storage_name "demand-backup-cloud"
28 changes: 20 additions & 8 deletions e2e-tests/tests/demand-backup-cloud/05-assert.yaml
Original file line number Diff line number Diff line change
@@ -1,12 +1,24 @@
apiVersion: kuttl.dev/v1beta1
kind: TestAssert
timeout: 300
timeout: 30
---
kind: PerconaServerMySQLBackup
apiVersion: ps.percona.com/v1
kind: ConfigMap
apiVersion: v1
metadata:
name: demand-backup-cloud-s3
finalizers:
- percona.com/delete-backup
status:
state: Succeeded
name: 06-delete-data-0
data:
data: ""
---
kind: ConfigMap
apiVersion: v1
metadata:
name: 06-delete-data-1
data:
data: ""
---
kind: ConfigMap
apiVersion: v1
metadata:
name: 06-delete-data-2
data:
data: ""

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,5 @@ commands:
cluster_name=$(get_cluster_name)
for i in 0 1 2; do
data=$(run_mysql "SELECT * FROM myDB.myTable" "-h ${cluster_name}-mysql-${i}.${cluster_name}-mysql")
kubectl create configmap -n "${NAMESPACE}" 06-delete-data-s3-${i} --from-literal=data="${data}"
kubectl create configmap -n "${NAMESPACE}" 06-delete-data-${i} --from-literal=data="${data}"
done
Loading
Loading