Skip to content

Commit 73e7f4a

Browse files
authored
Merge pull request #101 from frezes/feat/wiztelemetry-monitoring-helper
[wiztelemetry-monitoring-helper] optimize etcd-endpoint-secret-generator-job
2 parents 520f392 + c4f4f91 commit 73e7f4a

File tree

2 files changed

+43
-24
lines changed

2 files changed

+43
-24
lines changed

charts/wiztelemetry-monitoring-helper/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ type: application
1515
# This is the chart version. This version number should be incremented each time you make changes
1616
# to the chart and its templates, including the app version.
1717
# Versions are expected to follow Semantic Versioning (https://semver.org/)
18-
version: 0.9.0
18+
version: 0.10.0
1919

2020
# This is the version number of the application being deployed. This version number should be
2121
# incremented each time you make changes to the application. Versions are not expected to

charts/wiztelemetry-monitoring-helper/templates/etcd-endpoint-secret-generator-job.yaml

Lines changed: 42 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
{{- if and .Values.etcdMonitoringHelper.enabled .Values.etcdMonitoringHelper.etcdEndpointSecretGenerator.enabled -}}
2-
{{- if not (lookup "v1" "Endpoints" "kube-system" "whizard-monitoring-agent-k-kube-etcd") }}
1+
{{- if and .Values.etcdMonitoringHelper.enabled .Values.etcdMonitoringHelper.etcdEndpointSecretGenerator.enabled }}
32
apiVersion: v1
43
kind: ConfigMap
54
metadata:
@@ -8,23 +7,38 @@ metadata:
87
labels:
98
app: etcd-endpoint-secret-generator
109
annotations:
11-
"helm.sh/hook": pre-install,pre-upgrade
10+
"helm.sh/hook": post-install,post-upgrade
1211
"helm.sh/hook-delete-policy": hook-succeeded,before-hook-creation
1312
data:
1413
etcd-endpoint-secret-generator.sh: |
1514
#!/bin/sh
16-
17-
kubectl -n {{ template "wiztelemetry-monitoring-helper.namespace" . }} create secret generic kube-etcd-client-certs \
18-
--from-file=etcd-client-ca.crt=/etc/ssl/etcd/ssl/ca.pem \
19-
--from-file=etcd-client.crt=/etc/ssl/etcd/ssl/node-${KUBERNETES_NODE_NAME}.pem \
20-
--from-file=etcd-client.key=/etc/ssl/etcd/ssl/node-${KUBERNETES_NODE_NAME}-key.pem
21-
22-
cat <<EOF > etcd-endpoints.yaml
15+
16+
if kubectl get endpoints whizard-monitoring-agent-k-kube-etcd -n kube-system >/dev/null 2>&1; then
17+
echo "Endpoint whizard-monitoring-agent-k-kube-etcd exists. Skip."
18+
elif [ $? -eq 1 ]; then
19+
kubectl -n {{ template "wiztelemetry-monitoring-helper.namespace" . }} create secret generic kube-etcd-client-certs \
20+
--from-file=etcd-client-ca.crt=/etc/ssl/etcd/ssl/ca.pem \
21+
--from-file=etcd-client.crt=/etc/ssl/etcd/ssl/node-${KUBERNETES_NODE_NAME}.pem \
22+
--from-file=etcd-client.key=/etc/ssl/etcd/ssl/node-${KUBERNETES_NODE_NAME}-key.pem
23+
24+
cat <<EOF > etcd-endpoints.yaml
2325
apiVersion: v1
2426
kind: Endpoints
2527
metadata:
28+
annotations:
29+
meta.helm.sh/release-name: whizard-monitoring-agent
30+
meta.helm.sh/release-namespace: kubesphere-monitoring-system
2631
labels:
32+
app: kube-prometheus-stack-kube-etcd
33+
app.kubernetes.io/instance: whizard-monitoring-agent
34+
app.kubernetes.io/managed-by: Helm
2735
app.kubernetes.io/name: etcd
36+
app.kubernetes.io/part-of: kube-prometheus-stack
37+
app.kubernetes.io/vendor: kubesphere
38+
heritage: Helm
39+
k8s-app: etcd-server
40+
kubesphere.io/extension-ref: whizard-monitoring
41+
release: whizard-monitoring-agent
2842
name: whizard-monitoring-agent-k-kube-etcd
2943
namespace: kube-system
3044
subsets:
@@ -34,18 +48,23 @@ data:
3448
protocol: TCP
3549
addresses:
3650
EOF
37-
38-
# get etcd address from kube-apiserver and replace the etcd address in etcd-endpoints.yaml
39-
etcdendpoints=$(kubectl get pod -n kube-system -l component=kube-apiserver -o jsonpath='{.items[0].spec.containers[0].command}' | jq -r '.[] | select(startswith("--etcd-servers="))' | grep -oE "([0-9]{1,3}[\.]){3}[0-9]{1,3}")
40-
41-
for ip in $etcdendpoints; do
42-
echo " - ip: $ip" >> etcd-endpoints.yaml
43-
done
44-
45-
kubectl apply -f etcd-endpoints.yaml
46-
51+
52+
# get etcd address from kube-apiserver and replace the etcd address in etcd-endpoints.yaml
53+
etcdendpoints=$(kubectl get pod -n kube-system -l component=kube-apiserver -o jsonpath='{.items[0].spec.containers[0].command}' | jq -r '.[] | select(startswith("--etcd-servers="))' | grep -oE "([0-9]{1,3}[\.]){3}[0-9]{1,3}")
54+
55+
for ip in $etcdendpoints; do
56+
echo " - ip: $ip" >> etcd-endpoints.yaml
57+
done
58+
59+
kubectl apply -f etcd-endpoints.yaml
60+
else
61+
echo "Error checking Endpoint" >&2
62+
exit 1
63+
fi
4764
65+
{{- end }}
4866
---
67+
{{- if and .Values.etcdMonitoringHelper.enabled .Values.etcdMonitoringHelper.etcdEndpointSecretGenerator.enabled }}
4968
apiVersion: batch/v1
5069
kind: Job
5170
metadata:
@@ -54,7 +73,7 @@ metadata:
5473
labels:
5574
app: etcd-endpoint-secret-generator
5675
annotations:
57-
"helm.sh/hook": pre-install,pre-upgrade
76+
"helm.sh/hook": post-install,post-upgrade
5877
"helm.sh/hook-delete-policy": hook-succeeded,before-hook-creation
5978
spec:
6079
backoffLimit: {{ .Values.hook.backoffLimit }}
@@ -137,5 +156,5 @@ spec:
137156
defaultMode: 420
138157
name: {{ printf "%s-%s" (include "wiztelemetry-monitoring-helper.fullname" .) "etcd-endpoint-secret-generator" | trunc 63 | trimSuffix "-" }}
139158
name: etcd-endpoint-secret-generator
140-
{{- end -}}
141-
{{- end -}}
159+
160+
{{- end }}

0 commit comments

Comments
 (0)