Skip to content

Commit 96fc70a

Browse files
authored
Add uninstall hook for the kube-stack chart (#1305)
* add uninstall hook * update values * set manual name * Update hooks * comment * plz * print the config * use normal helm * more * bump ci version * oops * oop * undo * down another * down another * down another * down another * idk maybe * matrix * whoops * Add exclude * fix the matrix * revert matrix change * version * oops
1 parent c206e7b commit 96fc70a

File tree

25 files changed

+231
-26
lines changed

25 files changed

+231
-26
lines changed

.github/workflows/kube-stack-test.yaml

+4-2
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,7 @@ jobs:
2828
kubectl wait --timeout=5m --for=condition=available deployment cert-manager -n cert-manager
2929
kubectl wait --timeout=5m --for=condition=available deployment cert-manager-webhook -n cert-manager
3030
31-
- name: Run chart-testing (install)
32-
run: ct install --charts charts/opentelemetry-kube-stack
31+
- name: Run Helm Install
32+
run: |
33+
helm dep build charts/opentelemetry-kube-stack
34+
helm install opentelemetry-kube-stack charts/opentelemetry-kube-stack

.github/workflows/lint.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
uses: ./.github/actions/setup
1818
with:
1919
create-kind-cluster: "false"
20-
helm-version: v3.11.3
20+
helm-version: "v3.11.3"
2121

2222
- name: Run chart-testing (lint)
2323
run: "ct lint --target-branch main

charts/opentelemetry-kube-stack/Chart.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
apiVersion: v2
22
name: opentelemetry-kube-stack
3-
version: 0.1.2
3+
version: 0.1.3
44
description: |
55
OpenTelemetry Quickstart chart for Kubernetes.
66
Installs an operator and collector for an easy way to get started with Kubernetes observability.

charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/bridge.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ kind: OpAMPBridge
55
metadata:
66
name: example
77
labels:
8-
helm.sh/chart: opentelemetry-kube-stack-0.1.2
8+
helm.sh/chart: opentelemetry-kube-stack-0.1.3
99
app.kubernetes.io/version: "0.105.0"
1010
app.kubernetes.io/managed-by: Helm
1111
spec:

charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/collector.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ metadata:
66
name: example-cluster-stats
77
namespace: default
88
labels:
9-
helm.sh/chart: opentelemetry-kube-stack-0.1.2
9+
helm.sh/chart: opentelemetry-kube-stack-0.1.3
1010
app.kubernetes.io/version: "0.105.0"
1111
app.kubernetes.io/managed-by: Helm
1212
opentelemetry.io/opamp-reporting: "true"
@@ -189,7 +189,7 @@ metadata:
189189
name: example-daemon
190190
namespace: default
191191
labels:
192-
helm.sh/chart: opentelemetry-kube-stack-0.1.2
192+
helm.sh/chart: opentelemetry-kube-stack-0.1.3
193193
app.kubernetes.io/version: "0.105.0"
194194
app.kubernetes.io/managed-by: Helm
195195
opentelemetry.io/opamp-reporting: "true"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
---
2+
# Source: opentelemetry-kube-stack/templates/hooks.yaml
3+
apiVersion: v1
4+
kind: ServiceAccount
5+
metadata:
6+
name: delete-resources-sa
7+
annotations:
8+
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
9+
---
10+
# Source: opentelemetry-kube-stack/templates/hooks.yaml
11+
apiVersion: rbac.authorization.k8s.io/v1
12+
kind: Role
13+
metadata:
14+
name: delete-resources-role
15+
annotations:
16+
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
17+
rules:
18+
- apiGroups:
19+
- opentelemetry.io
20+
resources:
21+
- instrumentations
22+
- opampbridges
23+
- opentelemetrycollectors
24+
verbs:
25+
- get
26+
- list
27+
- delete
28+
---
29+
# Source: opentelemetry-kube-stack/templates/hooks.yaml
30+
apiVersion: rbac.authorization.k8s.io/v1
31+
kind: RoleBinding
32+
metadata:
33+
name: delete-resources-rolebinding
34+
annotations:
35+
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
36+
roleRef:
37+
apiGroup: rbac.authorization.k8s.io
38+
kind: Role
39+
name: delete-resources-role
40+
subjects:
41+
- kind: ServiceAccount
42+
name: delete-resources-sa
43+
---
44+
# Source: opentelemetry-kube-stack/templates/hooks.yaml
45+
apiVersion: batch/v1
46+
kind: Job
47+
metadata:
48+
name: opentelemetry-kube-stack-pre-delete-job
49+
annotations:
50+
"helm.sh/hook": pre-delete
51+
"helm.sh/hook-delete-policy": hook-succeeded,hook-failed
52+
spec:
53+
template:
54+
spec:
55+
restartPolicy: Never
56+
serviceAccountName: delete-resources-sa
57+
containers:
58+
- name: delete-resources
59+
image: bitnami/kubectl:latest
60+
command:
61+
- /bin/sh
62+
- -c
63+
- |
64+
kubectl delete instrumentations,opampbridges,opentelemetrycollectors \
65+
-l helm.sh/chart=opentelemetry-kube-stack-0.1.3

charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/instrumentation.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ kind: Instrumentation
55
metadata:
66
name: example
77
labels:
8-
helm.sh/chart: opentelemetry-kube-stack-0.1.2
8+
helm.sh/chart: opentelemetry-kube-stack-0.1.3
99
app.kubernetes.io/version: "0.105.0"
1010
app.kubernetes.io/managed-by: Helm
1111
spec:

charts/opentelemetry-kube-stack/examples/cloud-demo/values.yaml

-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
clusterName: demo
2-
opentelemetry-operator:
3-
enabled: true
42
collectors:
53
daemon:
64
ports:

charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/collector.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ metadata:
66
name: example-daemon
77
namespace: default
88
labels:
9-
helm.sh/chart: opentelemetry-kube-stack-0.1.2
9+
helm.sh/chart: opentelemetry-kube-stack-0.1.3
1010
app.kubernetes.io/version: "0.105.0"
1111
app.kubernetes.io/managed-by: Helm
1212
spec:

charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-api-server/servicemonitor.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ metadata:
77
namespace: default
88
labels:
99
app: opentelemetry-kube-stack-apiserver
10-
helm.sh/chart: opentelemetry-kube-stack-0.1.2
10+
helm.sh/chart: opentelemetry-kube-stack-0.1.3
1111
app.kubernetes.io/version: "0.105.0"
1212
app.kubernetes.io/managed-by: Helm
1313
spec:

charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-controller-manager/service.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ metadata:
77
labels:
88
app: opentelemetry-kube-stack-kube-controller-manager
99
jobLabel: kube-controller-manager
10-
helm.sh/chart: opentelemetry-kube-stack-0.1.2
10+
helm.sh/chart: opentelemetry-kube-stack-0.1.3
1111
app.kubernetes.io/version: "0.105.0"
1212
app.kubernetes.io/managed-by: Helm
1313
namespace: kube-system

charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-controller-manager/servicemonitor.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ metadata:
77
namespace: default
88
labels:
99
app: opentelemetry-kube-stack-kube-controller-manager
10-
helm.sh/chart: opentelemetry-kube-stack-0.1.2
10+
helm.sh/chart: opentelemetry-kube-stack-0.1.3
1111
app.kubernetes.io/version: "0.105.0"
1212
app.kubernetes.io/managed-by: Helm
1313
spec:

charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-dns/service.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ metadata:
77
labels:
88
app: opentelemetry-kube-stack-kube-dns
99
jobLabel: kube-dns
10-
helm.sh/chart: opentelemetry-kube-stack-0.1.2
10+
helm.sh/chart: opentelemetry-kube-stack-0.1.3
1111
app.kubernetes.io/version: "0.105.0"
1212
app.kubernetes.io/managed-by: Helm
1313
namespace: kube-system

charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-dns/servicemonitor.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ metadata:
77
namespace: default
88
labels:
99
app: opentelemetry-kube-stack-kube-dns
10-
helm.sh/chart: opentelemetry-kube-stack-0.1.2
10+
helm.sh/chart: opentelemetry-kube-stack-0.1.3
1111
app.kubernetes.io/version: "0.105.0"
1212
app.kubernetes.io/managed-by: Helm
1313
spec:

charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-etcd/service.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ metadata:
77
labels:
88
app: opentelemetry-kube-stack-kube-etcd
99
jobLabel: kube-etcd
10-
helm.sh/chart: opentelemetry-kube-stack-0.1.2
10+
helm.sh/chart: opentelemetry-kube-stack-0.1.3
1111
app.kubernetes.io/version: "0.105.0"
1212
app.kubernetes.io/managed-by: Helm
1313
namespace: kube-system

charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-etcd/servicemonitor.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ metadata:
77
namespace: default
88
labels:
99
app: opentelemetry-kube-stack-kube-etcd
10-
helm.sh/chart: opentelemetry-kube-stack-0.1.2
10+
helm.sh/chart: opentelemetry-kube-stack-0.1.3
1111
app.kubernetes.io/version: "0.105.0"
1212
app.kubernetes.io/managed-by: Helm
1313
spec:

charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-proxy/service.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ metadata:
77
labels:
88
app: opentelemetry-kube-stack-kube-proxy
99
jobLabel: kube-proxy
10-
helm.sh/chart: opentelemetry-kube-stack-0.1.2
10+
helm.sh/chart: opentelemetry-kube-stack-0.1.3
1111
app.kubernetes.io/version: "0.105.0"
1212
app.kubernetes.io/managed-by: Helm
1313
namespace: kube-system

charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-proxy/servicemonitor.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ metadata:
77
namespace: default
88
labels:
99
app: opentelemetry-kube-stack-kube-proxy
10-
helm.sh/chart: opentelemetry-kube-stack-0.1.2
10+
helm.sh/chart: opentelemetry-kube-stack-0.1.3
1111
app.kubernetes.io/version: "0.105.0"
1212
app.kubernetes.io/managed-by: Helm
1313
spec:

charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-scheduler/service.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ metadata:
77
labels:
88
app: opentelemetry-kube-stack-kube-scheduler
99
jobLabel: kube-scheduler
10-
helm.sh/chart: opentelemetry-kube-stack-0.1.2
10+
helm.sh/chart: opentelemetry-kube-stack-0.1.3
1111
app.kubernetes.io/version: "0.105.0"
1212
app.kubernetes.io/managed-by: Helm
1313
namespace: kube-system

charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-scheduler/servicemonitor.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ metadata:
77
namespace: default
88
labels:
99
app: opentelemetry-kube-stack-kube-scheduler
10-
helm.sh/chart: opentelemetry-kube-stack-0.1.2
10+
helm.sh/chart: opentelemetry-kube-stack-0.1.3
1111
app.kubernetes.io/version: "0.105.0"
1212
app.kubernetes.io/managed-by: Helm
1313
spec:
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
---
2+
# Source: opentelemetry-kube-stack/templates/hooks.yaml
3+
apiVersion: v1
4+
kind: ServiceAccount
5+
metadata:
6+
name: delete-resources-sa
7+
annotations:
8+
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
9+
---
10+
# Source: opentelemetry-kube-stack/templates/hooks.yaml
11+
apiVersion: rbac.authorization.k8s.io/v1
12+
kind: Role
13+
metadata:
14+
name: delete-resources-role
15+
annotations:
16+
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
17+
rules:
18+
- apiGroups:
19+
- opentelemetry.io
20+
resources:
21+
- instrumentations
22+
- opampbridges
23+
- opentelemetrycollectors
24+
verbs:
25+
- get
26+
- list
27+
- delete
28+
---
29+
# Source: opentelemetry-kube-stack/templates/hooks.yaml
30+
apiVersion: rbac.authorization.k8s.io/v1
31+
kind: RoleBinding
32+
metadata:
33+
name: delete-resources-rolebinding
34+
annotations:
35+
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
36+
roleRef:
37+
apiGroup: rbac.authorization.k8s.io
38+
kind: Role
39+
name: delete-resources-role
40+
subjects:
41+
- kind: ServiceAccount
42+
name: delete-resources-sa
43+
---
44+
# Source: opentelemetry-kube-stack/templates/hooks.yaml
45+
apiVersion: batch/v1
46+
kind: Job
47+
metadata:
48+
name: opentelemetry-kube-stack-pre-delete-job
49+
annotations:
50+
"helm.sh/hook": pre-delete
51+
"helm.sh/hook-delete-policy": hook-succeeded,hook-failed
52+
spec:
53+
template:
54+
spec:
55+
restartPolicy: Never
56+
serviceAccountName: delete-resources-sa
57+
containers:
58+
- name: delete-resources
59+
image: bitnami/kubectl:latest
60+
command:
61+
- /bin/sh
62+
- -c
63+
- |
64+
kubectl delete instrumentations,opampbridges,opentelemetrycollectors \
65+
-l helm.sh/chart=opentelemetry-kube-stack-0.1.3

charts/opentelemetry-kube-stack/examples/prometheus-otel/values.yaml

-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
clusterName: demo
2-
opentelemetry-operator:
3-
enabled: true
42
collectors:
53
daemon:
64
enabled: true
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
{{- if .Values.cleanupJob.enabled }}
2+
---
3+
apiVersion: v1
4+
kind: ServiceAccount
5+
metadata:
6+
name: delete-resources-sa
7+
annotations:
8+
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
9+
---
10+
apiVersion: rbac.authorization.k8s.io/v1
11+
kind: Role
12+
metadata:
13+
name: delete-resources-role
14+
annotations:
15+
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
16+
rules:
17+
- apiGroups:
18+
- opentelemetry.io
19+
resources:
20+
- instrumentations
21+
- opampbridges
22+
- opentelemetrycollectors
23+
verbs:
24+
- get
25+
- list
26+
- delete
27+
---
28+
apiVersion: rbac.authorization.k8s.io/v1
29+
kind: RoleBinding
30+
metadata:
31+
name: delete-resources-rolebinding
32+
annotations:
33+
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
34+
roleRef:
35+
apiGroup: rbac.authorization.k8s.io
36+
kind: Role
37+
name: delete-resources-role
38+
subjects:
39+
- kind: ServiceAccount
40+
name: delete-resources-sa
41+
---
42+
apiVersion: batch/v1
43+
kind: Job
44+
metadata:
45+
name: {{ include "opentelemetry-kube-stack.name" . }}-pre-delete-job
46+
annotations:
47+
"helm.sh/hook": pre-delete
48+
"helm.sh/hook-delete-policy": hook-succeeded,hook-failed
49+
spec:
50+
template:
51+
spec:
52+
restartPolicy: Never
53+
serviceAccountName: delete-resources-sa
54+
containers:
55+
- name: delete-resources
56+
image: bitnami/kubectl:latest
57+
command:
58+
- /bin/sh
59+
- -c
60+
- |
61+
kubectl delete instrumentations,opampbridges,opentelemetrycollectors \
62+
-l helm.sh/chart={{ include "opentelemetry-kube-stack.chart" . }}
63+
{{- end }}

charts/opentelemetry-kube-stack/values.schema.json

+8
Original file line numberDiff line numberDiff line change
@@ -3827,6 +3827,14 @@
38273827
}
38283828
},
38293829
"properties": {
3830+
"cleanupJob": {
3831+
"type": "object",
3832+
"properties": {
3833+
"enabled": {
3834+
"type": "boolean"
3835+
}
3836+
}
3837+
},
38303838
"crds": {
38313839
"type": "object",
38323840
"properties": {

0 commit comments

Comments
 (0)