Skip to content

Commit 6da7c94

Browse files
committed
fix(helm): agent DaemonSet — CharDevice type, updateStrategy, tolerations, test coverage
1 parent 5463bf5 commit 6da7c94

3 files changed

Lines changed: 55 additions & 4 deletions

File tree

charts/imp/templates/agent/daemonset.yaml

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ spec:
1111
matchLabels:
1212
{{- include "imp.selectorLabels" . | nindent 6 }}
1313
app.kubernetes.io/component: agent
14+
updateStrategy:
15+
{{- toYaml .Values.agent.updateStrategy | nindent 4 }}
1416
template:
1517
metadata:
1618
labels:
@@ -26,17 +28,21 @@ spec:
2628
nodeSelector:
2729
{{- toYaml . | nindent 8 }}
2830
{{- end }}
31+
{{- with .Values.agent.tolerations }}
32+
tolerations:
33+
{{- toYaml . | nindent 8 }}
34+
{{- end }}
2935
containers:
3036
- name: agent
3137
image: {{ include "imp.agent.image" . }}
32-
imagePullPolicy: {{ .Values.agent.image.pullPolicy }}
38+
imagePullPolicy: {{ .Values.agent.image.pullPolicy | quote }}
3339
env:
3440
- name: NODE_NAME
3541
valueFrom:
3642
fieldRef:
3743
fieldPath: spec.nodeName
3844
- name: FC_KERNEL
39-
value: {{ required "agent.env.kernelPath is required" .Values.agent.env.kernelPath | quote }}
45+
value: {{ .Values.agent.env.kernelPath | required "agent.env.kernelPath is required" | quote }}
4046
resources:
4147
{{- toYaml .Values.agent.resources | nindent 10 }}
4248
securityContext:
@@ -52,17 +58,21 @@ spec:
5258
- name: dev-kvm
5359
hostPath:
5460
path: /dev/kvm
61+
type: CharDevice
5562
- name: socket-dir
5663
{{- if .Values.agent.hostPaths.socketDir.enabled }}
5764
hostPath:
58-
path: {{ .Values.agent.hostPaths.socketDir.path }}
65+
path: {{ .Values.agent.hostPaths.socketDir.path | quote }}
66+
type: DirectoryOrCreate
5967
{{- else }}
6068
emptyDir: {}
6169
{{- end }}
6270
- name: image-cache
6371
{{- if .Values.agent.hostPaths.imageCache.enabled }}
6472
hostPath:
65-
path: {{ .Values.agent.hostPaths.imageCache.path }}
73+
path: {{ .Values.agent.hostPaths.imageCache.path | quote }}
74+
type: DirectoryOrCreate
6675
{{- else }}
6776
emptyDir: {}
6877
{{- end }}
78+
terminationGracePeriodSeconds: 10

charts/imp/tests/agent-daemonset_test.yaml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ tests:
3030
name: dev-kvm
3131
hostPath:
3232
path: /dev/kvm
33+
type: CharDevice
3334

3435
- it: uses emptyDir for socketDir when hostPaths disabled
3536
template: templates/agent/daemonset.yaml
@@ -56,6 +57,7 @@ tests:
5657
name: socket-dir
5758
hostPath:
5859
path: /run/imp/sockets
60+
type: DirectoryOrCreate
5961

6062
- it: uses emptyDir for imageCache when hostPaths disabled
6163
template: templates/agent/daemonset.yaml
@@ -82,3 +84,37 @@ tests:
8284
name: image-cache
8385
hostPath:
8486
path: /var/lib/imp/images
87+
type: DirectoryOrCreate
88+
89+
- it: runs agent container with privileged security context
90+
template: templates/agent/daemonset.yaml
91+
set:
92+
agent.env.kernelPath: /usr/local/bin/firecracker
93+
asserts:
94+
- equal:
95+
path: spec.template.spec.containers[0].securityContext.privileged
96+
value: true
97+
98+
- it: injects NODE_NAME from downward API
99+
template: templates/agent/daemonset.yaml
100+
set:
101+
agent.env.kernelPath: /usr/local/bin/firecracker
102+
asserts:
103+
- contains:
104+
path: spec.template.spec.containers[0].env
105+
content:
106+
name: NODE_NAME
107+
valueFrom:
108+
fieldRef:
109+
fieldPath: spec.nodeName
110+
111+
- it: sets FC_KERNEL from kernelPath value
112+
template: templates/agent/daemonset.yaml
113+
set:
114+
agent.env.kernelPath: /host/boot/vmlinux
115+
asserts:
116+
- contains:
117+
path: spec.template.spec.containers[0].env
118+
content:
119+
name: FC_KERNEL
120+
value: /host/boot/vmlinux

charts/imp/values.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ agent:
3030
limits:
3131
memory: 128Mi
3232
nodeSelector: {}
33+
tolerations: []
34+
updateStrategy:
35+
type: RollingUpdate
36+
rollingUpdate:
37+
maxUnavailable: 1
3338
env:
3439
kernelPath: ""
3540
hostPaths:

0 commit comments

Comments
 (0)