Compare commits

...

6 commits

Author SHA1 Message Date
c2a2d70a59 Make db engine configurable through helm values 2022-11-18 20:17:58 +01:00
7bca6ccd0b Add documentation about setting db engine in helm 2022-11-18 20:06:32 +01:00
4787685912 Fix documentation based on new deployment values
Some checks reported errors
continuous-integration/drone/pr Build was killed
2022-11-18 20:04:15 +01:00
17a0ba9f7c Set hostPath type for volumes 2022-11-18 20:04:15 +01:00
462655188c Fix volume handling and persistence flag 2022-11-18 20:04:15 +01:00
a53e6271bb 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
2022-11-18 20:04:15 +01:00
4 changed files with 38 additions and 6 deletions

View file

@ -47,7 +47,11 @@ garage:
# Use only 2 replicas per object # Use only 2 replicas per object
replicationMode: "2" replicationMode: "2"
# Use recommended lmdb db engine
dbEngine: "lmdb"
# Start 4 instances (StatefulSets) of garage # Start 4 instances (StatefulSets) of garage
deployment:
replicaCount: 4 replicaCount: 4
# Override default storage class and size # Override default storage class and size

View file

@ -7,6 +7,7 @@ data:
metadata_dir = "{{ .Values.garage.metadataDir }}" metadata_dir = "{{ .Values.garage.metadataDir }}"
data_dir = "{{ .Values.garage.dataDir }}" data_dir = "{{ .Values.garage.dataDir }}"
db_engine = "{{ .Values.garage.dbEngine }}"
replication_mode = "{{ .Values.garage.replicationMode }}" replication_mode = "{{ .Values.garage.replicationMode }}"
rpc_bind_addr = "{{ .Values.garage.rpcBindAddr }}" rpc_bind_addr = "{{ .Values.garage.rpcBindAddr }}"

View file

@ -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,23 @@ spec:
name: {{ include "garage.fullname" . }}-config name: {{ include "garage.fullname" . }}-config
- name: etc - name: etc
emptyDir: {} 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 }} {{- with .Values.nodeSelector }}
nodeSelector: nodeSelector:
{{- toYaml . | nindent 8 }} {{- toYaml . | nindent 8 }}
@ -91,7 +110,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

View file

@ -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