Skip to content

Commit 78e1954

Browse files
pooknullhors
andauthored
K8SPG-637: disable restore on pg-restore deletion (#950)
* K8SPG-637: disable restore on `pg-restore` deletion https://perconadev.atlassian.net/browse/K8SPG-637 * fix tests * fix tests * fix test * improve disableRestore * fix tests * K8SPG-700: disable backup on pg-backup deletion https://perconadev.atlassian.net/browse/K8SPG-700 * K8SPG-700: remove redundant code New pgbackup finalizer will remove the backup annotations. There is no need to check annotations in the reconcile loop of pgcluster * fix tests * multiple fixes * fix unit-test * fix recreating failing backup * IsZero * fix finalizers test * fix * fix tests * fix unit-test * don't delete job on failure * fix tests * fix tests --------- Co-authored-by: Viacheslav Sarzhan <slava.sarzhan@percona.com>
1 parent 67d3e15 commit 78e1954

File tree

53 files changed

+436
-311
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+436
-311
lines changed

config/rbac/cluster/role.yaml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -101,14 +101,19 @@ rules:
101101
- delete
102102
- get
103103
- list
104+
- patch
104105
- update
105106
- watch
106107
- apiGroups:
107108
- pgv2.percona.com
108109
resources:
109110
- perconapgbackups/finalizers
110-
- perconapgclusters/finalizers
111+
- perconapgclusters/status
112+
- perconapgrestores/status
113+
- perconapgupgrades/finalizers
114+
- perconapgupgrades/status
111115
verbs:
116+
- patch
112117
- update
113118
- apiGroups:
114119
- pgv2.percona.com
@@ -133,12 +138,8 @@ rules:
133138
- apiGroups:
134139
- pgv2.percona.com
135140
resources:
136-
- perconapgclusters/status
137-
- perconapgrestores/status
138-
- perconapgupgrades/finalizers
139-
- perconapgupgrades/status
141+
- perconapgclusters/finalizers
140142
verbs:
141-
- patch
142143
- update
143144
- apiGroups:
144145
- pgv2.percona.com
@@ -148,6 +149,7 @@ rules:
148149
- create
149150
- get
150151
- list
152+
- patch
151153
- watch
152154
- apiGroups:
153155
- policy

config/rbac/namespace/role.yaml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -101,14 +101,19 @@ rules:
101101
- delete
102102
- get
103103
- list
104+
- patch
104105
- update
105106
- watch
106107
- apiGroups:
107108
- pgv2.percona.com
108109
resources:
109110
- perconapgbackups/finalizers
110-
- perconapgclusters/finalizers
111+
- perconapgclusters/status
112+
- perconapgrestores/status
113+
- perconapgupgrades/finalizers
114+
- perconapgupgrades/status
111115
verbs:
116+
- patch
112117
- update
113118
- apiGroups:
114119
- pgv2.percona.com
@@ -133,12 +138,8 @@ rules:
133138
- apiGroups:
134139
- pgv2.percona.com
135140
resources:
136-
- perconapgclusters/status
137-
- perconapgrestores/status
138-
- perconapgupgrades/finalizers
139-
- perconapgupgrades/status
141+
- perconapgclusters/finalizers
140142
verbs:
141-
- patch
142143
- update
143144
- apiGroups:
144145
- pgv2.percona.com
@@ -148,6 +149,7 @@ rules:
148149
- create
149150
- get
150151
- list
152+
- patch
151153
- watch
152154
- apiGroups:
153155
- policy

deploy/bundle.yaml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45798,14 +45798,19 @@ rules:
4579845798
- delete
4579945799
- get
4580045800
- list
45801+
- patch
4580145802
- update
4580245803
- watch
4580345804
- apiGroups:
4580445805
- pgv2.percona.com
4580545806
resources:
4580645807
- perconapgbackups/finalizers
45807-
- perconapgclusters/finalizers
45808+
- perconapgclusters/status
45809+
- perconapgrestores/status
45810+
- perconapgupgrades/finalizers
45811+
- perconapgupgrades/status
4580845812
verbs:
45813+
- patch
4580945814
- update
4581045815
- apiGroups:
4581145816
- pgv2.percona.com
@@ -45830,12 +45835,8 @@ rules:
4583045835
- apiGroups:
4583145836
- pgv2.percona.com
4583245837
resources:
45833-
- perconapgclusters/status
45834-
- perconapgrestores/status
45835-
- perconapgupgrades/finalizers
45836-
- perconapgupgrades/status
45838+
- perconapgclusters/finalizers
4583745839
verbs:
45838-
- patch
4583945840
- update
4584045841
- apiGroups:
4584145842
- pgv2.percona.com
@@ -45845,6 +45846,7 @@ rules:
4584545846
- create
4584645847
- get
4584745848
- list
45849+
- patch
4584845850
- watch
4584945851
- apiGroups:
4585045852
- policy

deploy/cw-bundle.yaml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45798,14 +45798,19 @@ rules:
4579845798
- delete
4579945799
- get
4580045800
- list
45801+
- patch
4580145802
- update
4580245803
- watch
4580345804
- apiGroups:
4580445805
- pgv2.percona.com
4580545806
resources:
4580645807
- perconapgbackups/finalizers
45807-
- perconapgclusters/finalizers
45808+
- perconapgclusters/status
45809+
- perconapgrestores/status
45810+
- perconapgupgrades/finalizers
45811+
- perconapgupgrades/status
4580845812
verbs:
45813+
- patch
4580945814
- update
4581045815
- apiGroups:
4581145816
- pgv2.percona.com
@@ -45830,12 +45835,8 @@ rules:
4583045835
- apiGroups:
4583145836
- pgv2.percona.com
4583245837
resources:
45833-
- perconapgclusters/status
45834-
- perconapgrestores/status
45835-
- perconapgupgrades/finalizers
45836-
- perconapgupgrades/status
45838+
- perconapgclusters/finalizers
4583745839
verbs:
45838-
- patch
4583945840
- update
4584045841
- apiGroups:
4584145842
- pgv2.percona.com
@@ -45845,6 +45846,7 @@ rules:
4584545846
- create
4584645847
- get
4584745848
- list
45849+
- patch
4584845850
- watch
4584945851
- apiGroups:
4585045852
- policy

deploy/cw-rbac.yaml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -105,14 +105,19 @@ rules:
105105
- delete
106106
- get
107107
- list
108+
- patch
108109
- update
109110
- watch
110111
- apiGroups:
111112
- pgv2.percona.com
112113
resources:
113114
- perconapgbackups/finalizers
114-
- perconapgclusters/finalizers
115+
- perconapgclusters/status
116+
- perconapgrestores/status
117+
- perconapgupgrades/finalizers
118+
- perconapgupgrades/status
115119
verbs:
120+
- patch
116121
- update
117122
- apiGroups:
118123
- pgv2.percona.com
@@ -137,12 +142,8 @@ rules:
137142
- apiGroups:
138143
- pgv2.percona.com
139144
resources:
140-
- perconapgclusters/status
141-
- perconapgrestores/status
142-
- perconapgupgrades/finalizers
143-
- perconapgupgrades/status
145+
- perconapgclusters/finalizers
144146
verbs:
145-
- patch
146147
- update
147148
- apiGroups:
148149
- pgv2.percona.com
@@ -152,6 +153,7 @@ rules:
152153
- create
153154
- get
154155
- list
156+
- patch
155157
- watch
156158
- apiGroups:
157159
- policy

deploy/rbac.yaml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -105,14 +105,19 @@ rules:
105105
- delete
106106
- get
107107
- list
108+
- patch
108109
- update
109110
- watch
110111
- apiGroups:
111112
- pgv2.percona.com
112113
resources:
113114
- perconapgbackups/finalizers
114-
- perconapgclusters/finalizers
115+
- perconapgclusters/status
116+
- perconapgrestores/status
117+
- perconapgupgrades/finalizers
118+
- perconapgupgrades/status
115119
verbs:
120+
- patch
116121
- update
117122
- apiGroups:
118123
- pgv2.percona.com
@@ -137,12 +142,8 @@ rules:
137142
- apiGroups:
138143
- pgv2.percona.com
139144
resources:
140-
- perconapgclusters/status
141-
- perconapgrestores/status
142-
- perconapgupgrades/finalizers
143-
- perconapgupgrades/status
145+
- perconapgclusters/finalizers
144146
verbs:
145-
- patch
146147
- update
147148
- apiGroups:
148149
- pgv2.percona.com
@@ -152,6 +153,7 @@ rules:
152153
- create
153154
- get
154155
- list
156+
- patch
155157
- watch
156158
- apiGroups:
157159
- policy

e2e-tests/functions

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,23 @@ deploy_operator_gh() {
9797
| kubectl -n "${OPERATOR_NS:-$NAMESPACE}" apply -f -
9898
}
9999

100+
remove_all_finalizers() {
101+
resource_types=("pg-restore" "pg-backup" "pg")
102+
103+
for resource in "${resource_types[@]}"; do
104+
echo "removing all finalizers for $resource resources"
105+
106+
kubectl -n "${NAMESPACE}" get "$resource" -o json | jq '.items[] | .metadata.name' -r | while IFS= read -r name; do
107+
kubectl -n "${NAMESPACE}" delete "$resource" "$name" --wait=0
108+
109+
if [[ $(kubectl -n "${NAMESPACE}" get "$resource" "$name" -o yaml | yq '.metadata.finalizers | length') == "0" ]]; then
110+
continue
111+
fi
112+
kubectl -n "${NAMESPACE}" patch "$resource" "$name" --type=json -p='[{"op": "remove", "path": "/metadata/finalizers"}]'
113+
done
114+
done
115+
}
116+
100117
destroy_operator() {
101118
kubectl -n "${OPERATOR_NS:-$NAMESPACE}" delete deployment percona-postgresql-operator --force --grace-period=0 || true
102119
if [[ $OPERATOR_NS ]]; then
@@ -765,7 +782,7 @@ get_postgresql_logs() {
765782

766783
for pod in $(kubectl get pods -l postgres-operator.crunchydata.com/data=postgres --no-headers | awk '{print $1}'); do
767784
local phase=$(kubectl -n ${NAMESPACE} get ${pod} -o jsonpath={".status.phase"})
768-
if [[ "${phase}" != "Running" ]]; then
785+
if [[ ${phase} != "Running" ]]; then
769786
echo "Waiting for ${pod} to start running"
770787
continue
771788
fi

e2e-tests/tests/custom-extensions/99-remove-cluster-gracefully.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,6 @@ commands:
1616
1717
source ../../functions
1818
19+
remove_all_finalizers
1920
destroy_operator
2021
timeout: 60

e2e-tests/tests/custom-tls/99-remove-cluster-gracefully.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,6 @@ commands:
1616
1717
source ../../functions
1818
19+
remove_all_finalizers
1920
destroy_operator
2021
timeout: 60

e2e-tests/tests/demand-backup/18-assert.yaml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ kind: PostgresCluster
77
metadata:
88
name: demand-backup
99
generation: 10
10-
annotations:
11-
postgres-operator.crunchydata.com/pgbackrest-restore: demand-backup-restore
1210
ownerReferences:
1311
- apiVersion: pgv2.percona.com/v2
1412
kind: PerconaPGCluster

0 commit comments

Comments
 (0)