Skip to content

Commit 99c6b4b

Browse files
[agent-control-deployment] delete configMaps in uninstallJob (#2280)
Deleting configMaps owned by agentControl after deleting the chart
1 parent 88c646c commit 99c6b4b

3 files changed

Lines changed: 114 additions & 1 deletion

File tree

charts/agent-control-deployment/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: A Helm chart to install New Relic Agent Control on Kubernetes
44

55
type: application
66

7-
version: 1.7.4
7+
version: 1.7.5
88

99
dependencies:
1010
- name: common-library
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
2+
{{- if and (not .Values.cdEnabled) .Values.rbac.create -}}
3+
apiVersion: v1
4+
kind: ServiceAccount
5+
metadata:
6+
annotations:
7+
helm.sh/hook: post-delete
8+
helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
9+
helm.sh/hook-weight: "-20"
10+
labels:
11+
{{- include "newrelic.common.labels" . | nindent 4 }}
12+
name: {{ include "newrelic.common.naming.truncateToDNSWithSuffix" (dict "name" .Release.Name "suffix" "uninstall-job") }}
13+
namespace: {{ .Release.Namespace }}
14+
---
15+
apiVersion: rbac.authorization.k8s.io/v1
16+
kind: ClusterRole
17+
metadata:
18+
annotations:
19+
helm.sh/hook: post-delete
20+
helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
21+
helm.sh/hook-weight: "-20"
22+
labels:
23+
{{- include "newrelic.common.labels" . | nindent 4 }}
24+
name: {{ include "newrelic.common.naming.truncateToDNSWithSuffix" (dict "name" (include "newrelic.common.naming.fullname" .) "suffix" "uninstall-job-resources") }}
25+
rules:
26+
- apiGroups: [ "" ]
27+
resources: [ "namespaces" ]
28+
verbs:
29+
- get
30+
- apiGroups: [ "" ]
31+
resources: [ "configmaps" ]
32+
verbs:
33+
- get
34+
- list
35+
- watch
36+
- delete
37+
- deletecollection
38+
---
39+
apiVersion: rbac.authorization.k8s.io/v1
40+
kind: RoleBinding
41+
metadata:
42+
annotations:
43+
helm.sh/hook: post-delete
44+
helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
45+
helm.sh/hook-weight: "-20"
46+
labels:
47+
{{- include "newrelic.common.labels" . | nindent 4 }}
48+
name: {{ include "newrelic.common.naming.truncateToDNSWithSuffix" (dict "name" (include "newrelic.common.naming.fullname" .) "suffix" "uninstall-job") }}
49+
namespace: {{ .Release.Namespace }}
50+
roleRef:
51+
apiGroup: rbac.authorization.k8s.io
52+
kind: ClusterRole
53+
name: {{ include "newrelic.common.naming.truncateToDNSWithSuffix" (dict "name" (include "newrelic.common.naming.fullname" .) "suffix" "uninstall-job-resources") }}
54+
subjects:
55+
- kind: ServiceAccount
56+
name: {{ include "newrelic.common.naming.truncateToDNSWithSuffix" (dict "name" .Release.Name "suffix" "uninstall-job") }}
57+
namespace: {{ .Release.Namespace }}
58+
---
59+
apiVersion: rbac.authorization.k8s.io/v1
60+
kind: RoleBinding
61+
metadata:
62+
annotations:
63+
helm.sh/hook: post-delete
64+
helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
65+
helm.sh/hook-weight: "-20"
66+
labels:
67+
{{- include "newrelic.common.labels" . | nindent 4 }}
68+
name: {{ include "newrelic.common.naming.truncateToDNSWithSuffix" (dict "name" (include "newrelic.common.naming.fullname" .) "suffix" "uninstall-job-agents") }}
69+
namespace: {{ .Values.subAgentsNamespace }}
70+
roleRef:
71+
apiGroup: rbac.authorization.k8s.io
72+
kind: ClusterRole
73+
name: {{ include "newrelic.common.naming.truncateToDNSWithSuffix" (dict "name" (include "newrelic.common.naming.fullname" .) "suffix" "uninstall-job-resources") }}
74+
subjects:
75+
- kind: ServiceAccount
76+
name: {{ include "newrelic.common.naming.truncateToDNSWithSuffix" (dict "name" .Release.Name "suffix" "uninstall-job") }}
77+
namespace: {{ .Release.Namespace }}
78+
{{- end }}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{{- if not .Values.cdEnabled -}}
2+
{{- $uninstallJobName := include "newrelic.common.naming.truncateToDNSWithSuffix" ( dict "name" (include "newrelic.common.naming.fullname" .) "suffix" "uninstall-job" ) -}}
3+
apiVersion: batch/v1
4+
kind: Job
5+
metadata:
6+
annotations:
7+
helm.sh/hook: post-delete
8+
helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
9+
helm.sh/hook-weight: "-10"
10+
name: {{ $uninstallJobName }}
11+
namespace: {{ .Release.Namespace }}
12+
spec:
13+
backoffLimit: 2
14+
template:
15+
spec:
16+
restartPolicy: Never
17+
serviceAccountName: {{ include "newrelic.common.naming.truncateToDNSWithSuffix" (dict "name" .Release.Name "suffix" "uninstall-job") }}
18+
containers:
19+
- name: uninstall-agent-control-deployment
20+
image: {{ include "newrelic.common.images.image" ( dict "imageRoot" .Values.toolkitImage "context" .) }}
21+
imagePullPolicy: {{ .Values.toolkitImage.pullPolicy }}
22+
resources:
23+
limits:
24+
cpu: 100m
25+
memory: 128Mi
26+
requests:
27+
cpu: 50m
28+
memory: 64Mi
29+
command: ["/bin/sh", "-c"]
30+
args:
31+
- |-
32+
echo "Removing configMaps created by AgentControl"
33+
kubectl delete configmaps -l app.kubernetes.io/managed-by=newrelic-agent-control
34+
kubectl delete configmaps -l app.kubernetes.io/managed-by=newrelic-agent-control -n {{ .Values.subAgentsNamespace }}
35+
{{- end -}}

0 commit comments

Comments
 (0)