Files
kube-cluster/garage/NOTE.md
T

107 lines
2.3 KiB
Markdown

# 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