Skip to content

Commit 3a462f7

Browse files
committed
feat: create helm chart for zarf-agent
Signed-off-by: Jeff Rescignano <jeffr@defenseunicorns.com>
1 parent 19329ed commit 3a462f7

18 files changed

+146
-103
lines changed

packages/zarf-agent/agent-values.yaml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
serviceAccount:
2+
name: zarf
3+
4+
clusterRole:
5+
name: service-viewer
6+
7+
clusterRoleBinding:
8+
name: service-viewer-binding
9+
10+
role:
11+
name: zarf-agent
12+
13+
roleBinding:
14+
name: zarf-agent-binding
15+
16+
secret:
17+
name: agent-hook-tls
18+
tlsCrt: "###ZARF_AGENT_CRT###"
19+
tlsKey: "###ZARF_AGENT_KEY###"
20+
21+
service:
22+
name: agent-hook
23+
24+
deployment:
25+
name: agent-hook
26+
replicaCount: 2
27+
28+
image:
29+
repository: "###ZARF_REGISTRY###/###ZARF_CONST_AGENT_IMAGE###"
30+
tag: "###ZARF_CONST_AGENT_IMAGE_TAG###"
31+
pullSecret: private-registry
32+
33+
resources:
34+
requests:
35+
memory: "32Mi"
36+
cpu: "100m"
37+
limits:
38+
memory: "128Mi"
39+
cpu: "500m"
40+
41+
affinity: {}
42+
tolerations: []

packages/zarf-agent/chart/Chart.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
apiVersion: v1
2+
description: Zarf agent
3+
name: zarf-agent
4+
version: 1.0.0
5+
6+
maintainers:
7+
- name: The Zarf Authors
8+
url: https://zarf.dev
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: ClusterRole
3+
metadata:
4+
name: {{ .Values.clusterRole.name }}
5+
rules:
6+
- apiGroups:
7+
- ""
8+
resources:
9+
- services
10+
verbs:
11+
- get
12+
- list
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: ClusterRoleBinding
3+
metadata:
4+
name: {{ .Values.clusterRoleBinding.name }}
5+
roleRef:
6+
apiGroup: rbac.authorization.k8s.io
7+
kind: ClusterRole
8+
name: {{ .Values.clusterRole.name }}
9+
subjects:
10+
- kind: ServiceAccount
11+
name: {{ .Values.serviceAccount.name }}
12+
namespace: {{ .Release.Namespace }}

packages/zarf-agent/manifests/deployment.yaml renamed to packages/zarf-agent/chart/templates/deployment.yaml

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,36 @@
11
apiVersion: apps/v1
22
kind: Deployment
33
metadata:
4-
name: agent-hook
5-
namespace: zarf
4+
name: {{ .Values.deployment.name }}
5+
namespace: {{ .Release.Namespace }}
66
labels:
77
app: agent-hook
88
spec:
9-
replicas: 2
9+
replicas: {{ .Values.deployment.replicaCount }}
1010
selector:
1111
matchLabels:
1212
app: agent-hook
1313
template:
1414
metadata:
1515
labels:
1616
app: agent-hook
17-
# Don't mutate this pod, that would be sad times
1817
zarf.dev/agent: ignore
1918
spec:
2019
imagePullSecrets:
21-
- name: private-registry
20+
- name: {{ .Values.image.pullSecret }}
2221
priorityClassName: system-node-critical
23-
serviceAccountName: zarf
24-
# Security context to comply with restricted PSS
22+
serviceAccountName: {{ .Values.serviceAccount.name }}
2523
securityContext:
2624
runAsUser: 65532
2725
fsGroup: 65532
2826
runAsGroup: 65532
2927
seccompProfile:
3028
type: "RuntimeDefault"
29+
affinity: {{- toYaml .Values.affinity | nindent 8 }}
30+
tolerations: {{- toYaml .Values.tolerations | nindent 8 }}
3131
containers:
3232
- name: server
33-
image: "###ZARF_REGISTRY###/###ZARF_CONST_AGENT_IMAGE###:###ZARF_CONST_AGENT_IMAGE_TAG###"
33+
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
3434
imagePullPolicy: IfNotPresent
3535
livenessProbe:
3636
httpGet:
@@ -47,25 +47,23 @@ spec:
4747
drop: ["ALL"]
4848
resources:
4949
requests:
50-
memory: "32Mi"
51-
cpu: "100m"
50+
memory: {{ .Values.resources.requests.memory }}
51+
cpu: {{ .Values.resources.requests.cpu }}
5252
limits:
53-
memory: "128Mi"
54-
cpu: "500m"
53+
memory: {{ .Values.resources.limits.memory }}
54+
cpu: {{ .Values.resources.limits.cpu }}
5555
volumeMounts:
5656
- name: tls-certs
5757
mountPath: /etc/certs
5858
readOnly: true
59-
# Required for OpenShift to mount k9s vendored directories
6059
- name: config
6160
mountPath: /.config
6261
- name: xdg
6362
mountPath: /etc/xdg
6463
volumes:
6564
- name: tls-certs
6665
secret:
67-
secretName: agent-hook-tls
68-
# Required for OpenShift to mount k9s vendored directories
66+
secretName: {{ .Values.secret.name }}
6967
- name: config
7068
emptyDir: {}
7169
- name: xdg
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: Role
3+
metadata:
4+
name: {{ .Values.role.name }}
5+
namespace: {{ .Release.Namespace }}
6+
rules:
7+
- apiGroups:
8+
- ""
9+
resources:
10+
- secrets
11+
verbs:
12+
- get
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: RoleBinding
3+
metadata:
4+
name: {{ .Values.roleBinding.name }}
5+
namespace: {{ .Release.Namespace }}
6+
roleRef:
7+
apiGroup: rbac.authorization.k8s.io
8+
kind: Role
9+
name: {{ .Values.role.name }}
10+
subjects:
11+
- kind: ServiceAccount
12+
name: {{ .Values.serviceAccount.name }}
13+
namespace: {{ .Release.Namespace }}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
apiVersion: v1
2+
kind: Secret
3+
metadata:
4+
name: {{ .Values.secret.name }}
5+
namespace: {{ .Release.Namespace }}
6+
type: kubernetes.io/tls
7+
data:
8+
tls.crt: {{ .Values.secret.tlsCrt | quote }}
9+
tls.key: {{ .Values.secret.tlsKey | quote }}

packages/zarf-agent/manifests/service.yaml renamed to packages/zarf-agent/chart/templates/service.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
apiVersion: v1
22
kind: Service
33
metadata:
4-
name: agent-hook
5-
namespace: zarf
4+
name: {{ .Values.service.name }}
5+
namespace: {{ .Release.Namespace }}
66
spec:
77
selector:
88
app: agent-hook
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
apiVersion: v1
2+
kind: ServiceAccount
3+
metadata:
4+
name: {{ .Values.serviceAccount.name }}
5+
namespace: {{ .Release.Namespace }}

packages/zarf-agent/manifests/webhook.yaml renamed to packages/zarf-agent/chart/templates/webhook.yaml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ webhooks:
3030
operator: DoesNotExist
3131
clientConfig:
3232
service:
33-
name: agent-hook
34-
namespace: zarf
33+
name: {{ .Values.service.name }}
34+
namespace: {{ .Release.Namespace }}
3535
path: "/mutate/pod"
3636
caBundle: "###ZARF_AGENT_CA###"
3737
rules:
@@ -73,8 +73,8 @@ webhooks:
7373
- "ignore"
7474
clientConfig:
7575
service:
76-
name: agent-hook
77-
namespace: zarf
76+
name: {{ .Values.service.name }}
77+
namespace: {{ .Release.Namespace }}
7878
path: "/mutate/flux-ocirepository"
7979
caBundle: "###ZARF_AGENT_CA###"
8080
rules:
@@ -115,8 +115,8 @@ webhooks:
115115
- "ignore"
116116
clientConfig:
117117
service:
118-
name: agent-hook
119-
namespace: zarf
118+
name: {{ .Values.service.name }}
119+
namespace: {{ .Release.Namespace }}
120120
path: "/mutate/flux-helmrepository"
121121
caBundle: "###ZARF_AGENT_CA###"
122122
rules:
@@ -159,8 +159,8 @@ webhooks:
159159
- "ignore"
160160
clientConfig:
161161
service:
162-
name: agent-hook
163-
namespace: zarf
162+
name: {{ .Values.service.name }}
163+
namespace: {{ .Release.Namespace }}
164164
path: "/mutate/flux-gitrepository"
165165
caBundle: "###ZARF_AGENT_CA###"
166166
rules:
@@ -203,8 +203,8 @@ webhooks:
203203
- "ignore"
204204
clientConfig:
205205
service:
206-
name: agent-hook
207-
namespace: zarf
206+
name: {{ .Values.service.name }}
207+
namespace: {{ .Release.Namespace }}
208208
path: "/mutate/argocd-application"
209209
caBundle: "###ZARF_AGENT_CA###"
210210
rules:
@@ -249,8 +249,8 @@ webhooks:
249249
- repository
250250
clientConfig:
251251
service:
252-
name: agent-hook
253-
namespace: zarf
252+
name: {{ .Values.service.name }}
253+
namespace: {{ .Release.Namespace }}
254254
path: "/mutate/argocd-repository"
255255
caBundle: "###ZARF_AGENT_CA###"
256256
rules:

packages/zarf-agent/manifests/clusterrole.yaml

Lines changed: 0 additions & 12 deletions
This file was deleted.

packages/zarf-agent/manifests/clusterrolebinding.yaml

Lines changed: 0 additions & 12 deletions
This file was deleted.

packages/zarf-agent/manifests/role.yaml

Lines changed: 0 additions & 12 deletions
This file was deleted.

packages/zarf-agent/manifests/rolebinding.yaml

Lines changed: 0 additions & 13 deletions
This file was deleted.

packages/zarf-agent/manifests/secret.yaml

Lines changed: 0 additions & 9 deletions
This file was deleted.

packages/zarf-agent/manifests/serviceaccount.yaml

Lines changed: 0 additions & 5 deletions
This file was deleted.

packages/zarf-agent/zarf.yaml

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,14 @@ components:
1919
required: true
2020
images:
2121
- "###ZARF_PKG_TMPL_AGENT_IMAGE_DOMAIN######ZARF_PKG_TMPL_AGENT_IMAGE###:###ZARF_PKG_TMPL_AGENT_IMAGE_TAG###"
22-
manifests:
22+
charts:
2323
- name: zarf-agent
24+
releaseName: zarf-agent
25+
localPath: chart
26+
version: 1.0.0
2427
namespace: zarf
25-
files:
26-
- manifests/service.yaml
27-
- manifests/secret.yaml
28-
- manifests/deployment.yaml
29-
- manifests/webhook.yaml
30-
- manifests/role.yaml
31-
- manifests/rolebinding.yaml
32-
- manifests/clusterrole.yaml
33-
- manifests/clusterrolebinding.yaml
34-
- manifests/serviceaccount.yaml
28+
valuesFiles:
29+
- agent-values.yaml
3530
actions:
3631
onCreate:
3732
before:

0 commit comments

Comments
 (0)