aboutsummaryrefslogtreecommitdiff
path: root/script/helm
diff options
context:
space:
mode:
authorkaiyou <dev@kaiyou.fr>2022-10-29 21:07:02 +0200
committerkaiyou <dev@kaiyou.fr>2022-12-25 13:30:14 +0100
commite94d6f78d7584b64115905d4d6f7959160dd1936 (patch)
tree3f279da8e35b79679415b882eb01338b68441836 /script/helm
parent1af4a5ed569e42f77dd4ecc9364a27f7ed43df63 (diff)
downloadgarage-e94d6f78d7584b64115905d4d6f7959160dd1936.tar.gz
garage-e94d6f78d7584b64115905d4d6f7959160dd1936.zip
Enable daemonset deployment using the helm chart
DaemonSet is a k8s resource that schedules one instance per node, which is useful for some garage deployment use cases, including managing garage nodes using k8s node labels
Diffstat (limited to 'script/helm')
-rw-r--r--script/helm/garage/templates/workload.yaml (renamed from script/helm/garage/templates/statefulset.yaml)23
-rw-r--r--script/helm/garage/values.yaml12
2 files changed, 30 insertions, 5 deletions
diff --git a/script/helm/garage/templates/statefulset.yaml b/script/helm/garage/templates/workload.yaml
index bda40117..f41eff6f 100644
--- a/script/helm/garage/templates/statefulset.yaml
+++ b/script/helm/garage/templates/workload.yaml
@@ -1,15 +1,17 @@
apiVersion: apps/v1
-kind: StatefulSet
+kind: {{ .Values.deployment.kind }}
metadata:
name: {{ include "garage.fullname" . }}
labels:
{{- include "garage.labels" . | nindent 4 }}
spec:
- replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "garage.selectorLabels" . | nindent 6 }}
+ {{- if eq .Values.deployment.kind "StatefulSet" }}
+ replicas: {{ .Values.deployment.replicaCount }}
serviceName: {{ include "garage.fullname" . }}
+ {{- end }}
template:
metadata:
{{- with .Values.podAnnotations }}
@@ -79,6 +81,21 @@ spec:
name: {{ include "garage.fullname" . }}-config
- name: etc
emptyDir: {}
+ {{- if eq .Values.deployment.kind "DaemonSet" }}
+ {{- if .Values.persistence.enabled }}
+ - name: meta
+ hostPath:
+ path: {{ .Values.persistence.meta.hostPath }}
+ - name: data
+ hostPath:
+ path: {{ .Values.persistence.data.hostPath }}
+ {{- else }}
+ {{- end }}
+ - name: meta
+ emptyDir: {}
+ - name: data
+ emptyDir: {}
+ {{- end }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
@@ -91,7 +108,7 @@ spec:
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
- {{- if .Values.persistence.enabled }}
+ {{- if and .Values.persistence.enabled (eq .Values.deployment.kind "StatefulSet") }}
volumeClaimTemplates:
- metadata:
name: meta
diff --git a/script/helm/garage/values.yaml b/script/helm/garage/values.yaml
index 608ee53c..52f1910a 100644
--- a/script/helm/garage/values.yaml
+++ b/script/helm/garage/values.yaml
@@ -29,12 +29,20 @@ persistence:
meta:
# storageClass: "fast-storage-class"
size: 100Mi
+ # used only for daemon sets
+ hostPath: /var/lib/garage/meta
data:
# storageClass: "slow-storage-class"
size: 100Mi
+ # used only for daemon sets
+ hostPath: /var/lib/garage/data
-# Number of StatefulSet replicas/garage nodes to start
-replicaCount: 3
+# Deployment configuration
+deployment:
+ # Switchable to DaemonSet
+ kind: StatefulSet
+ # Number of StatefulSet replicas/garage nodes to start
+ replicaCount: 3
image:
repository: dxflrs/amd64_garage