# 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 ) kubectl -n garage exec -it garage-0 -- /garage layout assign -z dc1 -c 50G # 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 # 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 # Grant key access to bucket kubectl -n garage exec -it garage-0 -- /garage bucket allow \ --read --write --owner --key # Show key credentials (access key + secret) kubectl -n garage exec -it garage-0 -- /garage key info ``` ## 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