Skip to content

Commit 31cf167

Browse files
committed
fix: ip/vpc are not deleted by helm uninstall (#5501)
Signed-off-by: Mengxin Liu <[email protected]> (cherry picked from commit e90f157)
1 parent f1f059b commit 31cf167

File tree

4 files changed

+43
-37
lines changed

4 files changed

+43
-37
lines changed

charts/kube-ovn-v2/templates/hooks/pre-delete-hook.yaml renamed to charts/kube-ovn-v2/templates/hooks/post-delete-hook.yaml

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
apiVersion: v1
22
kind: ServiceAccount
33
metadata:
4-
name: kube-ovn-pre-delete-hook
4+
name: kube-ovn-post-delete-hook
55
namespace: {{ .Values.namespace }}
66
annotations:
77
# This is what defines this resource as a hook. Without this line, the
88
# job is considered part of the release.
9-
"helm.sh/hook": pre-delete
9+
"helm.sh/hook": post-delete
1010
"helm.sh/hook-weight": "1"
1111
"helm.sh/hook-delete-policy": hook-succeeded
1212
---
@@ -17,15 +17,17 @@ metadata:
1717
rbac.authorization.k8s.io/system-only: "true"
1818
# This is what defines this resource as a hook. Without this line, the
1919
# job is considered part of the release.
20-
"helm.sh/hook": pre-delete
20+
"helm.sh/hook": post-delete
2121
"helm.sh/hook-weight": "2"
2222
"helm.sh/hook-delete-policy": hook-succeeded
23-
name: system:kube-ovn-pre-delete-hook
23+
name: system:kube-ovn-post-delete-hook
2424
rules:
2525
- apiGroups:
2626
- kubeovn.io
2727
resources:
2828
- subnets
29+
- vpcs
30+
- ips
2931
verbs:
3032
- get
3133
- list
@@ -34,26 +36,26 @@ rules:
3436
apiVersion: rbac.authorization.k8s.io/v1
3537
kind: ClusterRoleBinding
3638
metadata:
37-
name: kube-ovn-pre-delete-hook
39+
name: kube-ovn-post-delete-hook
3840
annotations:
3941
# This is what defines this resource as a hook. Without this line, the
4042
# job is considered part of the release.
41-
"helm.sh/hook": pre-delete
43+
"helm.sh/hook": post-delete
4244
"helm.sh/hook-weight": "3"
4345
"helm.sh/hook-delete-policy": hook-succeeded
4446
roleRef:
45-
name: system:kube-ovn-pre-delete-hook
47+
name: system:kube-ovn-post-delete-hook
4648
kind: ClusterRole
4749
apiGroup: rbac.authorization.k8s.io
4850
subjects:
4951
- kind: ServiceAccount
50-
name: kube-ovn-pre-delete-hook
52+
name: kube-ovn-post-delete-hook
5153
namespace: {{ .Values.namespace }}
5254
---
5355
apiVersion: batch/v1
5456
kind: Job
5557
metadata:
56-
name: "{{ .Chart.Name }}-pre-delete-hook"
58+
name: "{{ .Chart.Name }}-post-delete-hook"
5759
namespace: {{ .Values.namespace }}
5860
labels:
5961
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
@@ -63,7 +65,7 @@ metadata:
6365
annotations:
6466
# This is what defines this resource as a hook. Without this line, the
6567
# job is considered part of the release.
66-
"helm.sh/hook": pre-delete
68+
"helm.sh/hook": post-delete
6769
"helm.sh/hook-weight": "4"
6870
"helm.sh/hook-delete-policy": hook-succeeded
6971
spec:
@@ -75,7 +77,7 @@ spec:
7577
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
7678
app.kubernetes.io/instance: {{ .Release.Name | quote }}
7779
helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
78-
app: kube-ovn-pre-delete-hook
80+
app: kube-ovn-post-delete-hook
7981
component: job
8082
spec:
8183
tolerations:
@@ -91,7 +93,7 @@ spec:
9193
- key: app
9294
operator: In
9395
values:
94-
- kube-ovn-pre-delete-hook
96+
- kube-ovn-post-delete-hook
9597
- key: component
9698
operator: In
9799
values:
@@ -100,8 +102,8 @@ spec:
100102
hostNetwork: true
101103
nodeSelector:
102104
kubernetes.io/os: "linux"
103-
serviceAccount: kube-ovn-pre-delete-hook
104-
serviceAccountName: kube-ovn-pre-delete-hook
105+
serviceAccount: kube-ovn-post-delete-hook
106+
serviceAccountName: kube-ovn-post-delete-hook
105107
containers:
106108
- name: remove-subnet-finalizer
107109
image: "{{ .Values.global.registry.address}}/{{ .Values.global.images.kubeovn.repository }}:{{ .Values.global.images.kubeovn.tag }}"
@@ -113,7 +115,7 @@ spec:
113115
command:
114116
- sh
115117
- -c
116-
- /kube-ovn/remove-subnet-finalizer.sh 2>&1 | tee -a /var/log/kube-ovn/remove-subnet-finalizer.log
118+
- /kube-ovn/remove-finalizer.sh 2>&1 | tee -a /var/log/kube-ovn/remove-finalizer.log
117119
volumeMounts:
118120
- mountPath: /var/log/kube-ovn
119121
name: kube-ovn-log

charts/kube-ovn/templates/pre-delete-hook.yaml renamed to charts/kube-ovn/templates/post-delete-hook.yaml

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
apiVersion: v1
22
kind: ServiceAccount
33
metadata:
4-
name: kube-ovn-pre-delete-hook
4+
name: kube-ovn-post-delete-hook
55
namespace: {{ .Values.namespace }}
66
annotations:
77
# This is what defines this resource as a hook. Without this line, the
88
# job is considered part of the release.
9-
"helm.sh/hook": pre-delete
9+
"helm.sh/hook": post-delete
1010
"helm.sh/hook-weight": "1"
1111
"helm.sh/hook-delete-policy": hook-succeeded
1212
---
@@ -17,15 +17,17 @@ metadata:
1717
rbac.authorization.k8s.io/system-only: "true"
1818
# This is what defines this resource as a hook. Without this line, the
1919
# job is considered part of the release.
20-
"helm.sh/hook": pre-delete
20+
"helm.sh/hook": post-delete
2121
"helm.sh/hook-weight": "2"
2222
"helm.sh/hook-delete-policy": hook-succeeded
23-
name: system:kube-ovn-pre-delete-hook
23+
name: system:kube-ovn-post-delete-hook
2424
rules:
2525
- apiGroups:
2626
- kubeovn.io
2727
resources:
2828
- subnets
29+
- vpcs
30+
- ips
2931
verbs:
3032
- get
3133
- list
@@ -34,26 +36,26 @@ rules:
3436
apiVersion: rbac.authorization.k8s.io/v1
3537
kind: ClusterRoleBinding
3638
metadata:
37-
name: kube-ovn-pre-delete-hook
39+
name: kube-ovn-post-delete-hook
3840
annotations:
3941
# This is what defines this resource as a hook. Without this line, the
4042
# job is considered part of the release.
41-
"helm.sh/hook": pre-delete
43+
"helm.sh/hook": post-delete
4244
"helm.sh/hook-weight": "3"
4345
"helm.sh/hook-delete-policy": hook-succeeded
4446
roleRef:
45-
name: system:kube-ovn-pre-delete-hook
47+
name: system:kube-ovn-post-delete-hook
4648
kind: ClusterRole
4749
apiGroup: rbac.authorization.k8s.io
4850
subjects:
4951
- kind: ServiceAccount
50-
name: kube-ovn-pre-delete-hook
52+
name: kube-ovn-post-delete-hook
5153
namespace: {{ .Values.namespace }}
5254
---
5355
apiVersion: batch/v1
5456
kind: Job
5557
metadata:
56-
name: "{{ .Chart.Name }}-pre-delete-hook"
58+
name: "{{ .Chart.Name }}-post-delete-hook"
5759
namespace: {{ .Values.namespace }}
5860
labels:
5961
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
@@ -63,7 +65,7 @@ metadata:
6365
annotations:
6466
# This is what defines this resource as a hook. Without this line, the
6567
# job is considered part of the release.
66-
"helm.sh/hook": pre-delete
68+
"helm.sh/hook": post-delete
6769
"helm.sh/hook-weight": "4"
6870
"helm.sh/hook-delete-policy": hook-succeeded
6971
spec:
@@ -75,7 +77,7 @@ spec:
7577
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
7678
app.kubernetes.io/instance: {{ .Release.Name | quote }}
7779
helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
78-
app: kube-ovn-pre-delete-hook
80+
app: kube-ovn-post-delete-hook
7981
component: job
8082
spec:
8183
tolerations:
@@ -91,7 +93,7 @@ spec:
9193
- key: app
9294
operator: In
9395
values:
94-
- kube-ovn-pre-delete-hook
96+
- kube-ovn-post-delete-hook
9597
- key: component
9698
operator: In
9799
values:
@@ -100,8 +102,8 @@ spec:
100102
hostNetwork: true
101103
nodeSelector:
102104
kubernetes.io/os: "linux"
103-
serviceAccount: kube-ovn-pre-delete-hook
104-
serviceAccountName: kube-ovn-pre-delete-hook
105+
serviceAccount: kube-ovn-post-delete-hook
106+
serviceAccountName: kube-ovn-post-delete-hook
105107
containers:
106108
- name: remove-subnet-finalizer
107109
image: "{{ .Values.global.registry.address}}/{{ .Values.global.images.kubeovn.repository }}:{{ .Values.global.images.kubeovn.tag }}"
@@ -113,7 +115,7 @@ spec:
113115
command:
114116
- sh
115117
- -c
116-
- /kube-ovn/remove-subnet-finalizer.sh 2>&1 | tee -a /var/log/kube-ovn/remove-subnet-finalizer.log
118+
- /kube-ovn/remove-finalizer.sh 2>&1 | tee -a /var/log/kube-ovn/remove-finalizer.log
117119
volumeMounts:
118120
- mountPath: /var/log/kube-ovn
119121
name: kube-ovn-log

dist/images/remove-finalizer.sh

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/bin/bash
2+
3+
set -ex
4+
5+
for resource_type in subnet vpc ip; do
6+
for resource in $(kubectl get "$resource_type" -o name); do
7+
kubectl patch "$resource" --type='json' -p '[{"op": "replace", "path": "/metadata/finalizers", "value": []}]'
8+
done
9+
done

dist/images/remove-subnet-finalizer.sh

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)