forked from Deuxfleurs/garage
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
This commit is contained in:
parent
1af4a5ed56
commit
e94d6f78d7
2 changed files with 30 additions and 5 deletions
script/helm/garage
|
@ -1,15 +1,17 @@
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: StatefulSet
|
kind: {{ .Values.deployment.kind }}
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ include "garage.fullname" . }}
|
name: {{ include "garage.fullname" . }}
|
||||||
labels:
|
labels:
|
||||||
{{- include "garage.labels" . | nindent 4 }}
|
{{- include "garage.labels" . | nindent 4 }}
|
||||||
spec:
|
spec:
|
||||||
replicas: {{ .Values.replicaCount }}
|
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
{{- include "garage.selectorLabels" . | nindent 6 }}
|
{{- include "garage.selectorLabels" . | nindent 6 }}
|
||||||
|
{{- if eq .Values.deployment.kind "StatefulSet" }}
|
||||||
|
replicas: {{ .Values.deployment.replicaCount }}
|
||||||
serviceName: {{ include "garage.fullname" . }}
|
serviceName: {{ include "garage.fullname" . }}
|
||||||
|
{{- end }}
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
{{- with .Values.podAnnotations }}
|
{{- with .Values.podAnnotations }}
|
||||||
|
@ -79,6 +81,21 @@ spec:
|
||||||
name: {{ include "garage.fullname" . }}-config
|
name: {{ include "garage.fullname" . }}-config
|
||||||
- name: etc
|
- name: etc
|
||||||
emptyDir: {}
|
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 }}
|
{{- with .Values.nodeSelector }}
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
{{- toYaml . | nindent 8 }}
|
{{- toYaml . | nindent 8 }}
|
||||||
|
@ -91,7 +108,7 @@ spec:
|
||||||
tolerations:
|
tolerations:
|
||||||
{{- toYaml . | nindent 8 }}
|
{{- toYaml . | nindent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .Values.persistence.enabled }}
|
{{- if and .Values.persistence.enabled (eq .Values.deployment.kind "StatefulSet") }}
|
||||||
volumeClaimTemplates:
|
volumeClaimTemplates:
|
||||||
- metadata:
|
- metadata:
|
||||||
name: meta
|
name: meta
|
|
@ -29,10 +29,18 @@ persistence:
|
||||||
meta:
|
meta:
|
||||||
# storageClass: "fast-storage-class"
|
# storageClass: "fast-storage-class"
|
||||||
size: 100Mi
|
size: 100Mi
|
||||||
|
# used only for daemon sets
|
||||||
|
hostPath: /var/lib/garage/meta
|
||||||
data:
|
data:
|
||||||
# storageClass: "slow-storage-class"
|
# storageClass: "slow-storage-class"
|
||||||
size: 100Mi
|
size: 100Mi
|
||||||
|
# used only for daemon sets
|
||||||
|
hostPath: /var/lib/garage/data
|
||||||
|
|
||||||
|
# Deployment configuration
|
||||||
|
deployment:
|
||||||
|
# Switchable to DaemonSet
|
||||||
|
kind: StatefulSet
|
||||||
# Number of StatefulSet replicas/garage nodes to start
|
# Number of StatefulSet replicas/garage nodes to start
|
||||||
replicaCount: 3
|
replicaCount: 3
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue