aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex <alex@adnab.me>2023-01-26 21:07:58 +0000
committerAlex <alex@adnab.me>2023-01-26 21:07:58 +0000
commita08e01f17a9e4bb80880e28a4a28b2d88a9aec83 (patch)
tree6d1e91f937be97f49d599ebb584225a1849d9323
parent246f7468cd18c8ef4f3c0c4c209853cd2500cc76 (diff)
parent559e924cc2e0887e07886374ca018dd9761c3ba5 (diff)
downloadgarage-a08e01f17a9e4bb80880e28a4a28b2d88a9aec83.tar.gz
garage-a08e01f17a9e4bb80880e28a4a28b2d88a9aec83.zip
Merge pull request 'Enable daemonset deployment using the helm chart' (#409) from kaiyou/garage:feat-k8s-daemonset into main
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/409
-rw-r--r--doc/book/cookbook/kubernetes.md3
-rw-r--r--script/helm/garage/Chart.yaml2
-rw-r--r--script/helm/garage/templates/workload.yaml (renamed from script/helm/garage/templates/statefulset.yaml)25
-rw-r--r--script/helm/garage/values.yaml12
4 files changed, 35 insertions, 7 deletions
diff --git a/doc/book/cookbook/kubernetes.md b/doc/book/cookbook/kubernetes.md
index 9eafe3e1..dfeb3281 100644
--- a/doc/book/cookbook/kubernetes.md
+++ b/doc/book/cookbook/kubernetes.md
@@ -48,7 +48,8 @@ garage:
replicationMode: "2"
# Start 4 instances (StatefulSets) of garage
-replicaCount: 4
+deployment:
+ replicaCount: 4
# Override default storage class and size
persistence:
diff --git a/script/helm/garage/Chart.yaml b/script/helm/garage/Chart.yaml
index 7fb4c531..f845cfe8 100644
--- a/script/helm/garage/Chart.yaml
+++ b/script/helm/garage/Chart.yaml
@@ -15,7 +15,7 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
-version: 0.2.0
+version: 0.3.0
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
diff --git a/script/helm/garage/templates/statefulset.yaml b/script/helm/garage/templates/workload.yaml
index bda40117..057a9858 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,23 @@ spec:
name: {{ include "garage.fullname" . }}-config
- name: etc
emptyDir: {}
+ {{- if .Values.persistence.enabled }}
+ {{- if eq .Values.deployment.kind "DaemonSet" }}
+ - name: meta
+ hostPath:
+ path: {{ .Values.persistence.meta.hostPath }}
+ type: DirectoryOrCreate
+ - name: data
+ hostPath:
+ path: {{ .Values.persistence.data.hostPath }}
+ type: DirectoryOrCreate
+ {{- end }}
+ {{- else }}
+ - name: meta
+ emptyDir: {}
+ - name: data
+ emptyDir: {}
+ {{- end }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
@@ -91,7 +110,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