107 lines
2.3 KiB
Markdown
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 |