Compare commits

...

14 Commits
main ... main

Author SHA1 Message Date
kaiyou 76db422c64 Fix garage admin service 2022-11-23 22:51:09 +01:00
kaiyou 1dd5b96350 Local version bump until this is merged upstream 2022-11-23 22:47:39 +01:00
kaiyou 67102dd185 Add admin port 2022-11-23 22:45:28 +01:00
kaiyou fd38b387a8 Local version bump until this is merged upstream 2022-11-20 10:26:58 +01:00
kaiyou 47bbe9f0b2 Merge branch 'feat-k8s-dbengine' 2022-11-18 20:19:32 +01:00
kaiyou c2a2d70a59 Make db engine configurable through helm values 2022-11-18 20:17:58 +01:00
kaiyou 7bca6ccd0b Add documentation about setting db engine in helm 2022-11-18 20:06:32 +01:00
kaiyou 4787685912 Fix documentation based on new deployment values 2022-11-18 20:04:15 +01:00
kaiyou 17a0ba9f7c Set hostPath type for volumes 2022-11-18 20:04:15 +01:00
kaiyou 462655188c Fix volume handling and persistence flag 2022-11-18 20:04:15 +01:00
kaiyou 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
kaiyou 6f60fe42c3 Set hostPath type for volumes 2022-11-06 21:54:09 +01:00
kaiyou bf5868a71d Fix volume handling and persistence flag 2022-11-06 17:50:06 +01:00
kaiyou f285cb6ecf 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-10-29 21:07:02 +02:00
6 changed files with 48 additions and 7 deletions

View File

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

View File

@ -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.1.0
version: 0.1.3
# 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

View File

@ -7,6 +7,7 @@ data:
metadata_dir = "{{ .Values.garage.metadataDir }}"
data_dir = "{{ .Values.garage.dataDir }}"
db_engine = "{{ .Values.garage.dbEngine }}"
replication_mode = "{{ .Values.garage.replicationMode }}"
rpc_bind_addr = "{{ .Values.garage.rpcBindAddr }}"
@ -29,3 +30,6 @@ data:
bind_addr = "[::]:3902"
root_domain = "{{ .Values.garage.s3.web.rootDomain }}"
index = "{{ .Values.garage.s3.web.index }}"
[admin]
api_bind_addr = "[::]:3903"

View File

@ -15,5 +15,9 @@ spec:
targetPort: 3902
protocol: TCP
name: s3-web
- port: 3903
targetPort: 3903
protocol: TCP
name: admin
selector:
{{- include "garage.selectorLabels" . | nindent 4 }}

View File

@ -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 }}
@ -54,6 +56,8 @@ spec:
name: s3-api
- containerPort: 3902
name: web-api
- containerPort: 3903
name: admin
volumeMounts:
- name: meta
mountPath: /mnt/meta
@ -79,6 +83,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 +112,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

View File

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