Skip to content

Commit ffce7f0

Browse files
committed
Converting deployment to statefulsets
1 parent 7767e02 commit ffce7f0

File tree

4 files changed

+176
-135
lines changed

4 files changed

+176
-135
lines changed

charts/aos/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@ apiVersion: v2
22
name: aos
33
description: Helm chart for Duplo OpenTelemetry stack
44
type: application
5-
version: 2.0.7
5+
version: 2.0.8
66
appVersion: "2.0.7"

charts/aos/templates/deployments.yaml

Lines changed: 0 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -1,110 +1,3 @@
1-
{{- if .Values.grafanaUI.enabled }}
2-
apiVersion: apps/v1
3-
kind: Deployment
4-
metadata:
5-
name: grafana-ui
6-
namespace: {{ $.Release.Namespace }}
7-
spec:
8-
replicas: {{ .Values.grafanaUI.replicas }}
9-
selector:
10-
matchLabels:
11-
app: grafana-ui
12-
template:
13-
metadata:
14-
labels:
15-
app: grafana-ui
16-
annotations:
17-
k8s_grafana_com_scrape: "true"
18-
k8s_grafana_com_job: "grafana-metrics"
19-
k8s_grafana_com_metrics_path: "/metrics"
20-
k8s_grafana_com_metrics_portNumber: "3000"
21-
spec:
22-
containers:
23-
- name: grafana-ui
24-
image: "{{ .Values.grafanaUI.image }}:{{ .Values.grafanaUI.imageTag | default .Values.global.release }}"
25-
ports:
26-
- containerPort: 3000
27-
env:
28-
- name: GF_INSTALL_PLUGINS
29-
value: {{ .Values.grafanaUI.plugins | quote }}
30-
- name: GF_SERVER_ROOT_URL
31-
value: "{{ .Values.global.grafanaProxyUrl }}"
32-
- name: GF_SECURITY_ADMIN_USER
33-
valueFrom:
34-
secretKeyRef:
35-
name: grafanaui
36-
key: username
37-
- name: GF_SECURITY_ADMIN_PASSWORD
38-
valueFrom:
39-
secretKeyRef:
40-
name: grafanaui
41-
key: password
42-
resources:
43-
{{- toYaml .Values.grafanaUI.resources | nindent 12 }}
44-
volumeMounts:
45-
- name: data
46-
mountPath: /var/lib/grafana
47-
volumes:
48-
- name: data
49-
persistentVolumeClaim:
50-
claimName: grafana-ui-data
51-
---
52-
{{- end }}
53-
{{- if .Values.duploAutomation.enabled }}
54-
apiVersion: apps/v1
55-
kind: Deployment
56-
metadata:
57-
name: duplo-automation
58-
namespace: {{ $.Release.Namespace }}
59-
spec:
60-
replicas: {{ .Values.duploAutomation.replicas }}
61-
selector:
62-
matchLabels:
63-
app: duplo-automation
64-
template:
65-
metadata:
66-
labels:
67-
app: duplo-automation
68-
spec:
69-
containers:
70-
- name: duplo-automation
71-
image: "{{ .Values.duploAutomation.image }}:{{ .Values.duploAutomation.imageTag | default .Values.global.release }}"
72-
ports:
73-
- containerPort: 5000
74-
env:
75-
- name: GRR_GRAFANA_URL
76-
value: "http://grafana-ui:3000"
77-
- name: GRR_GRAFANA_TOKEN
78-
valueFrom:
79-
secretKeyRef:
80-
name: grafanaui
81-
key: password
82-
- name: GRR_GRAFANA_USER
83-
valueFrom:
84-
secretKeyRef:
85-
name: grafanaui
86-
key: username
87-
- name: GRR_MIMIR_ADDRESS
88-
value: "http://duplo-metrics-ruler:8080"
89-
- name: GRR_MIMIR_TENANT_ID
90-
value: "anonymous"
91-
- name: GRR_TARGETS
92-
value: "Datasource,DashboardFolder,LibraryElement,Dashboard,AlertRuleGroup,AlertNotificationPolicy,AlertContactPoint,PrometheusRuleGroup"
93-
- name: GRR_OUTPUT_FORMAT
94-
value: "yaml"
95-
- name: GRR_ONLY_SPEC
96-
value: "false"
97-
- name: GRIZZLY_HTTP_TIMEOUT
98-
value: "60"
99-
volumeMounts:
100-
- name: data
101-
mountPath: /app/data
102-
volumes:
103-
- name: data
104-
persistentVolumeClaim:
105-
claimName: duplo-automation-data
106-
---
107-
{{- end }}
1081
{{- if .Values.grafanaProxy.enabled }}
1092
apiVersion: apps/v1
1103
kind: Deployment

charts/aos/templates/pvc.yaml

Lines changed: 0 additions & 27 deletions
This file was deleted.
Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
{{- if .Values.grafanaUI.enabled }}
2+
apiVersion: apps/v1
3+
kind: StatefulSet
4+
metadata:
5+
name: grafana-ui
6+
namespace: {{ $.Release.Namespace }}
7+
labels:
8+
app: grafana-ui
9+
spec:
10+
replicas: {{ .Values.grafanaUI.replicas }}
11+
selector:
12+
matchLabels:
13+
app: grafana-ui
14+
serviceName: grafana-ui
15+
podManagementPolicy: OrderedReady
16+
updateStrategy:
17+
type: RollingUpdate
18+
rollingUpdate:
19+
partition: 0
20+
revisionHistoryLimit: 10
21+
persistentVolumeClaimRetentionPolicy:
22+
whenDeleted: Retain
23+
whenScaled: Retain
24+
template:
25+
metadata:
26+
labels:
27+
app: grafana-ui
28+
annotations:
29+
k8s_grafana_com_scrape: "true"
30+
k8s_grafana_com_job: "grafana-metrics"
31+
k8s_grafana_com_metrics_path: "/metrics"
32+
k8s_grafana_com_metrics_portNumber: "3000"
33+
spec:
34+
containers:
35+
- name: grafana-ui
36+
image: "{{ .Values.grafanaUI.image }}:{{ .Values.grafanaUI.imageTag | default .Values.global.release }}"
37+
ports:
38+
- containerPort: 3000
39+
env:
40+
- name: GF_INSTALL_PLUGINS
41+
value: {{ .Values.grafanaUI.plugins | quote }}
42+
- name: GF_SERVER_ROOT_URL
43+
value: "{{ .Values.global.grafanaProxyUrl }}"
44+
- name: GF_SECURITY_ADMIN_USER
45+
valueFrom:
46+
secretKeyRef:
47+
name: grafanaui
48+
key: username
49+
- name: GF_SECURITY_ADMIN_PASSWORD
50+
valueFrom:
51+
secretKeyRef:
52+
name: grafanaui
53+
key: password
54+
- name: DOCKER_IMAGE
55+
value: "{{ .Values.grafanaUI.image }}:{{ .Values.grafanaUI.imageTag | default .Values.global.release }}"
56+
resources:
57+
{{- toYaml .Values.grafanaUI.resources | nindent 12 }}
58+
volumeMounts:
59+
- name: data
60+
mountPath: /var/lib/grafana
61+
securityContext:
62+
fsGroup: 472
63+
affinity:
64+
podAntiAffinity:
65+
preferredDuringSchedulingIgnoredDuringExecution:
66+
- weight: 1
67+
podAffinityTerm:
68+
labelSelector:
69+
matchLabels:
70+
app: grafana-ui
71+
topologyKey: kubernetes.io/hostname
72+
volumeClaimTemplates:
73+
- metadata:
74+
name: data
75+
spec:
76+
accessModes:
77+
- ReadWriteOnce
78+
resources:
79+
requests:
80+
storage: {{ .Values.grafanaUI.volume.size }}
81+
---
82+
{{- end }}
83+
{{- if .Values.duploAutomation.enabled }}
84+
apiVersion: apps/v1
85+
kind: StatefulSet
86+
metadata:
87+
name: duplo-automation
88+
namespace: {{ $.Release.Namespace }}
89+
labels:
90+
app: duplo-automation
91+
spec:
92+
replicas: {{ .Values.duploAutomation.replicas }}
93+
selector:
94+
matchLabels:
95+
app: duplo-automation
96+
serviceName: duplo-automation
97+
podManagementPolicy: OrderedReady
98+
updateStrategy:
99+
type: RollingUpdate
100+
rollingUpdate:
101+
partition: 0
102+
revisionHistoryLimit: 10
103+
persistentVolumeClaimRetentionPolicy:
104+
whenDeleted: Retain
105+
whenScaled: Retain
106+
template:
107+
metadata:
108+
labels:
109+
app: duplo-automation
110+
spec:
111+
containers:
112+
- name: duplo-automation
113+
image: "{{ .Values.duploAutomation.image }}:{{ .Values.duploAutomation.imageTag | default .Values.global.release }}"
114+
ports:
115+
- containerPort: 5000
116+
env:
117+
- name: GRR_GRAFANA_URL
118+
value: "http://grafana-ui:3000"
119+
- name: GRR_GRAFANA_TOKEN
120+
valueFrom:
121+
secretKeyRef:
122+
name: grafanaui
123+
key: password
124+
- name: GRR_GRAFANA_USER
125+
valueFrom:
126+
secretKeyRef:
127+
name: grafanaui
128+
key: username
129+
- name: GRR_MIMIR_ADDRESS
130+
value: "http://duplo-metrics-ruler:8080"
131+
- name: GRR_MIMIR_TENANT_ID
132+
value: "anonymous"
133+
- name: GRR_TARGETS
134+
value: "Datasource,DashboardFolder,LibraryElement,Dashboard,AlertRuleGroup,AlertNotificationPolicy,AlertContactPoint,PrometheusRuleGroup"
135+
- name: GRR_OUTPUT_FORMAT
136+
value: "yaml"
137+
- name: GRR_ONLY_SPEC
138+
value: "false"
139+
- name: GRIZZLY_HTTP_TIMEOUT
140+
value: "60"
141+
- name: MIMIR_RULER
142+
value: "http://duplo-metrics-ruler:8080"
143+
- name: MIMIR_ADDRESS
144+
value: "http://duplo-metrics-nginx"
145+
- name: MIMIR_ALERTMANAGER
146+
value: "http://duplo-metrics-alertmanager:8080"
147+
- name: MIMIR_TENANT_ID
148+
value: "anonymous"
149+
- name: DOCKER_IMAGE
150+
value: "{{ .Values.duploAutomation.image }}:{{ .Values.duploAutomation.imageTag | default .Values.global.release }}"
151+
volumeMounts:
152+
- name: data
153+
mountPath: /app/data
154+
securityContext:
155+
fsGroup: 472
156+
affinity:
157+
podAntiAffinity:
158+
preferredDuringSchedulingIgnoredDuringExecution:
159+
- weight: 1
160+
podAffinityTerm:
161+
labelSelector:
162+
matchLabels:
163+
app: duplo-automation
164+
topologyKey: kubernetes.io/hostname
165+
volumeClaimTemplates:
166+
- metadata:
167+
name: data
168+
spec:
169+
accessModes:
170+
- ReadWriteOnce
171+
resources:
172+
requests:
173+
storage: {{ .Values.duploAutomation.volume.size }}
174+
---
175+
{{- end }}

0 commit comments

Comments
 (0)