Skip to content

Commit d3300d2

Browse files
authored
Quarantine flaky delete test (CrunchyData#3290)
* Quarantine flaky delete test The `delete` test that looked at event timestamps to make sure the replica deleted before the primary occasionally flaked out. This PR removes that timestamp checking, quarantining that version of the test for future debugging; and changes the in-use test to simply verify that a cluster with replica deletes. This PR also fixes an error in the delete tests where the -delete.yaml was incorrectly set up. Issue [sc-15009]
1 parent 6feb0ab commit d3300d2

File tree

15 files changed

+208
-64
lines changed

15 files changed

+208
-64
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
apiVersion: postgres-operator.crunchydata.com/v1beta1
2+
kind: PostgresCluster
3+
metadata:
4+
name: delete-switchover-with-timestamp
5+
spec:
6+
postgresVersion: ${KUTTL_PG_VERSION}
7+
patroni:
8+
switchover:
9+
enabled: true
10+
instances:
11+
- name: instance1
12+
replicas: 2
13+
dataVolumeClaimSpec:
14+
accessModes:
15+
- "ReadWriteOnce"
16+
resources:
17+
requests:
18+
storage: 1Gi
19+
backups:
20+
pgbackrest:
21+
repos:
22+
- name: repo1
23+
volume:
24+
volumeClaimSpec:
25+
accessModes:
26+
- "ReadWriteOnce"
27+
resources:
28+
requests:
29+
storage: 1Gi
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
apiVersion: postgres-operator.crunchydata.com/v1beta1
3+
kind: PostgresCluster
4+
metadata:
5+
name: delete-switchover-with-timestamp
6+
status:
7+
instances:
8+
- name: instance1
9+
readyReplicas: 2
10+
replicas: 2
11+
updatedReplicas: 2
12+
---
13+
# Patroni labels and readiness happen separately.
14+
# The next step expects to find pods by their role label; wait for them here.
15+
apiVersion: v1
16+
kind: Pod
17+
metadata:
18+
labels:
19+
postgres-operator.crunchydata.com/cluster: delete-switchover-with-timestamp
20+
postgres-operator.crunchydata.com/role: master
21+
---
22+
apiVersion: v1
23+
kind: Pod
24+
metadata:
25+
labels:
26+
postgres-operator.crunchydata.com/cluster: delete-switchover-with-timestamp
27+
postgres-operator.crunchydata.com/role: replica
28+
---
29+
apiVersion: batch/v1
30+
kind: Job
31+
metadata:
32+
labels:
33+
postgres-operator.crunchydata.com/cluster: delete-switchover-with-timestamp
34+
postgres-operator.crunchydata.com/pgbackrest-backup: replica-create
35+
status:
36+
succeeded: 1

testing/kuttl/e2e/delete/11-annotate.yaml renamed to testing/kuttl/e2e-other/delete-with-replica-and-check-timestamps/11-annotate.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,5 @@ commands:
1515
1616
# Annotate the cluster to trigger a switchover.
1717
- script: |
18-
kubectl annotate --namespace="${NAMESPACE}" postgrescluster/delete-switchover \
18+
kubectl annotate --namespace="${NAMESPACE}" postgrescluster/delete-switchover-with-timestamp \
1919
"postgres-operator.crunchydata.com/trigger-switchover=$(date)"

testing/kuttl/e2e/delete/12-assert.yaml renamed to testing/kuttl/e2e-other/delete-with-replica-and-check-timestamps/12-assert.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ apiVersion: v1
44
kind: Pod
55
metadata:
66
labels:
7-
postgres-operator.crunchydata.com/cluster: delete-switchover
7+
postgres-operator.crunchydata.com/cluster: delete-switchover-with-timestamp
88
postgres-operator.crunchydata.com/data: postgres
99
postgres-operator.crunchydata.com/role: master
1010
testing/role-before: replica
@@ -14,7 +14,7 @@ apiVersion: v1
1414
kind: Pod
1515
metadata:
1616
labels:
17-
postgres-operator.crunchydata.com/cluster: delete-switchover
17+
postgres-operator.crunchydata.com/cluster: delete-switchover-with-timestamp
1818
postgres-operator.crunchydata.com/data: postgres
1919
postgres-operator.crunchydata.com/role: replica
2020
testing/role-before: master
@@ -23,7 +23,7 @@ metadata:
2323
apiVersion: postgres-operator.crunchydata.com/v1beta1
2424
kind: PostgresCluster
2525
metadata:
26-
name: delete-switchover
26+
name: delete-switchover-with-timestamp
2727
status:
2828
instances:
2929
- name: instance1

testing/kuttl/e2e/delete/13-delete-cluster-and-check.yaml renamed to testing/kuttl/e2e-other/delete-with-replica-and-check-timestamps/13-delete-cluster-and-check.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ commands:
2424
if [ -z "$PRIMARY" ]; then exit 1; fi
2525
if [ -z "$REPLICA" ]; then exit 1; fi
2626
27-
kubectl delete postgrescluster -n "${NAMESPACE}" delete-switchover
27+
kubectl delete postgrescluster -n "${NAMESPACE}" delete-switchover-with-timestamp
2828
2929
kubectl wait "pod/${REPLICA}" --namespace "${NAMESPACE}" --for=delete --timeout=180s
3030

testing/kuttl/e2e/delete/14-errors.yaml renamed to testing/kuttl/e2e-other/delete-with-replica-and-check-timestamps/14-errors.yaml

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,42 @@
11
---
22
apiVersion: postgres-operator.crunchydata.com/v1beta1
33
kind: PostgresCluster
4-
labels:
5-
postgres-operator.crunchydata.com/cluster: delete-switchover
4+
metadata:
5+
name: delete-switchover-with-timestamp
66
---
77
apiVersion: apps/v1
88
kind: StatefulSet
9-
labels:
10-
postgres-operator.crunchydata.com/cluster: delete-switchover
9+
metadata:
10+
labels:
11+
postgres-operator.crunchydata.com/cluster: delete-switchover-with-timestamp
1112
---
1213
# Patroni DCS objects are not owned by the PostgresCluster.
1314
apiVersion: v1
1415
kind: Endpoints
15-
labels:
16-
postgres-operator.crunchydata.com/cluster: delete-switchover
16+
metadata:
17+
labels:
18+
postgres-operator.crunchydata.com/cluster: delete-switchover-with-timestamp
1719
---
1820
apiVersion: v1
1921
kind: Pod
20-
labels:
21-
postgres-operator.crunchydata.com/cluster: delete-switchover
22+
metadata:
23+
labels:
24+
postgres-operator.crunchydata.com/cluster: delete-switchover-with-timestamp
2225
---
2326
apiVersion: v1
2427
kind: Service
25-
labels:
26-
postgres-operator.crunchydata.com/cluster: delete-switchover
28+
metadata:
29+
labels:
30+
postgres-operator.crunchydata.com/cluster: delete-switchover-with-timestamp
2731
---
2832
apiVersion: v1
2933
kind: Secret
30-
labels:
31-
postgres-operator.crunchydata.com/cluster: delete-switchover
34+
metadata:
35+
labels:
36+
postgres-operator.crunchydata.com/cluster: delete-switchover-with-timestamp
3237
---
3338
apiVersion: v1
3439
kind: ConfigMap
35-
labels:
36-
postgres-operator.crunchydata.com/cluster: delete-switchover
40+
metadata:
41+
labels:
42+
postgres-operator.crunchydata.com/cluster: delete-switchover-with-timestamp
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
This test originally existed as the second test-case in the `delete` KUTTL test.
2+
The test as written was prone to occasional flakes, sometimes due to missing events
3+
(which were being used to check the timestamp of the container delete event).
4+
5+
After discussion, we decided that this behavior (replica deleting before the primary)
6+
was no longer required in v5, and the decision was made to sequester this test-case for
7+
further testing and refinement.
Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,49 @@
11
---
22
apiVersion: postgres-operator.crunchydata.com/v1beta1
33
kind: PostgresCluster
4-
namespace: kuttl-test-delete-namespace
5-
labels:
6-
postgres-operator.crunchydata.com/cluster: delete
4+
metadata:
5+
namespace: kuttl-test-delete-namespace
6+
name: delete-namespace
77
---
88
apiVersion: apps/v1
99
kind: StatefulSet
10-
namespace: kuttl-test-delete-namespace
11-
labels:
12-
postgres-operator.crunchydata.com/cluster: delete
10+
metadata:
11+
namespace: kuttl-test-delete-namespace
12+
labels:
13+
postgres-operator.crunchydata.com/cluster: delete-namespace
1314
---
1415
# Patroni DCS objects are not owned by the PostgresCluster.
1516
apiVersion: v1
1617
kind: Endpoints
17-
namespace: kuttl-test-delete-namespace
18-
labels:
19-
postgres-operator.crunchydata.com/cluster: delete
18+
metadata:
19+
namespace: kuttl-test-delete-namespace
20+
labels:
21+
postgres-operator.crunchydata.com/cluster: delete-namespace
2022
---
2123
apiVersion: v1
2224
kind: Pod
23-
namespace: kuttl-test-delete-namespace
24-
labels:
25-
postgres-operator.crunchydata.com/cluster: delete
25+
metadata:
26+
namespace: kuttl-test-delete-namespace
27+
labels:
28+
postgres-operator.crunchydata.com/cluster: delete-namespace
2629
---
2730
apiVersion: v1
2831
kind: Service
29-
namespace: kuttl-test-delete-namespace
30-
labels:
31-
postgres-operator.crunchydata.com/cluster: delete
32+
metadata:
33+
namespace: kuttl-test-delete-namespace
34+
labels:
35+
postgres-operator.crunchydata.com/cluster: delete-namespace
3236
---
3337
apiVersion: v1
3438
kind: Secret
35-
namespace: kuttl-test-delete-namespace
36-
labels:
37-
postgres-operator.crunchydata.com/cluster: delete
39+
metadata:
40+
namespace: kuttl-test-delete-namespace
41+
labels:
42+
postgres-operator.crunchydata.com/cluster: delete-namespace
3843
---
3944
apiVersion: v1
4045
kind: ConfigMap
41-
namespace: kuttl-test-delete-namespace
42-
labels:
43-
postgres-operator.crunchydata.com/cluster: delete
46+
metadata:
47+
namespace: kuttl-test-delete-namespace
48+
labels:
49+
postgres-operator.crunchydata.com/cluster: delete-namespace
Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,42 @@
11
---
22
apiVersion: postgres-operator.crunchydata.com/v1beta1
33
kind: PostgresCluster
4-
labels:
5-
postgres-operator.crunchydata.com/cluster: delete
4+
metadata:
5+
name: delete
66
---
77
apiVersion: apps/v1
88
kind: StatefulSet
9-
labels:
9+
metadata:
10+
labels:
1011
postgres-operator.crunchydata.com/cluster: delete
1112
---
1213
# Patroni DCS objects are not owned by the PostgresCluster.
1314
apiVersion: v1
1415
kind: Endpoints
15-
labels:
16+
metadata:
17+
labels:
1618
postgres-operator.crunchydata.com/cluster: delete
1719
---
1820
apiVersion: v1
1921
kind: Pod
20-
labels:
22+
metadata:
23+
labels:
2124
postgres-operator.crunchydata.com/cluster: delete
2225
---
2326
apiVersion: v1
2427
kind: Service
25-
labels:
28+
metadata:
29+
labels:
2630
postgres-operator.crunchydata.com/cluster: delete
2731
---
2832
apiVersion: v1
2933
kind: Secret
30-
labels:
34+
metadata:
35+
labels:
3136
postgres-operator.crunchydata.com/cluster: delete
3237
---
3338
apiVersion: v1
3439
kind: ConfigMap
35-
labels:
40+
metadata:
41+
labels:
3642
postgres-operator.crunchydata.com/cluster: delete

testing/kuttl/e2e/delete/10--cluster.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
apiVersion: postgres-operator.crunchydata.com/v1beta1
22
kind: PostgresCluster
33
metadata:
4-
name: delete-switchover
4+
name: delete-with-replica
55
spec:
66
postgresVersion: ${KUTTL_PG_VERSION}
77
patroni:

0 commit comments

Comments
 (0)