forked from Deuxfleurs/garage
2 KiB
2 KiB
+++ title = "Deploying on Kubernetes" weight = 32 +++
Garage can also be deployed on a kubernetes cluster via helm chart.
Deploying
Firstly clone the repository:
git clone https://git.deuxfleurs.fr/Deuxfleurs/garage
cd garage/scripts/helm
Deploy with default options:
helm install --create-namespace --namespace garage garage ./garage
Or deploy with custom values:
helm install --create-namespace --namespace garage garage ./garage -f values.override.yaml
After deploying, cluster layout must be configured manually as described in Creating a cluster layout. Use the following command to access garage CLI:
kubectl exec --stdin --tty -n garage garage-0 -- ./garage status
Overriding default values
All possible configuration values can be found with:
helm show values ./garage
This is an example values.overrride.yaml
for deploying in a microk8s cluster with a https s3 api ingress route:
garage:
# Use only 2 replicas per object
replicationMode: "2"
# Use recommended lmdb db engine
dbEngine: "lmdb"
# Start 4 instances (StatefulSets) of garage
deployment:
replicaCount: 4
# Override default storage class and size
persistence:
meta:
storageClass: "openebs-hostpath"
size: 100Mi
data:
storageClass: "openebs-hostpath"
size: 1Gi
ingress:
s3:
api:
enabled: true
className: "public"
annotations:
cert-manager.io/cluster-issuer: "letsencrypt-prod"
nginx.ingress.kubernetes.io/proxy-body-size: 500m
hosts:
- host: s3-api.my-domain.com
paths:
- path: /
pathType: Prefix
tls:
- secretName: garage-ingress-cert
hosts:
- s3-api.my-domain.com
Removing
helm delete --namespace garage garage
Note that this will leave behind custom CRD garagenodes.deuxfleurs.fr
, which must be removed manually if desired.