Files
kube-cluster/garage/NOTE.md
T

2.3 KiB

garage

S3-compatible object store — https://garagehq.deuxfleurs.fr/

Chart: https://git.deuxfleurs.fr/Deuxfleurs/garage/src/branch/main/script/helm

Namespace

kubectl create namespace garage

PV / PVC

Create the host directories first:

sudo mkdir -p /storage/garage/{data,meta}

Apply the PVs (PVCs are created automatically by the StatefulSet):

kubectl apply -f ./pv-garage.yaml
kubectl get pv | grep garage

Helm

helm install -n garage garage . -f values.yaml

helm upgrade --install garage . \
  -n garage \
  -f values.yaml

helm delete garage -n garage

Check

kubectl -n garage get pods,pvc,ingress
kubectl -n garage get pvc
kubectl get pv | grep garage
kubectl -n garage get svc

Logs

kubectl -n garage logs -l app.kubernetes.io/name=garage --prefix
kubectl -n garage describe pod

Garage CLI — layout & cluster

After the pod is running, initialize the cluster layout (single-node):

# Get the node ID
kubectl -n garage exec -it garage-0 -- /garage status

# Assign capacity to the node (replace <node-id>)
kubectl -n garage exec -it garage-0 -- /garage layout assign -z dc1 -c 50G <node-id>

# Review and apply
kubectl -n garage exec -it garage-0 -- /garage layout show
kubectl -n garage exec -it garage-0 -- /garage layout apply --version 1

Garage CLI — buckets & keys

# List buckets
kubectl -n garage exec -it garage-0 -- /garage bucket list

# Create a bucket
kubectl -n garage exec -it garage-0 -- /garage bucket create <bucket-name>

# List access keys
kubectl -n garage exec -it garage-0 -- /garage key list

# Create an access key
kubectl -n garage exec -it garage-0 -- /garage key create <key-name>

# Grant key access to bucket
kubectl -n garage exec -it garage-0 -- /garage bucket allow \
  --read --write --owner <bucket-name> --key <key-name>

# Show key credentials (access key + secret)
kubectl -n garage exec -it garage-0 -- /garage key info <key-name>

Certificate

kubectl -n garage get certificate
kubectl -n garage describe certificate garage-s3-tls
kubectl -n garage get challenges

Show chart values

helm show values garage/garage | grep -A20 -B5 -i persistence
helm show values garage/garage | grep -A20 -B5 -i ingress

kubectl -n garage exec -it garage-0 -- /garage status