1# Default values for garage.
2# This is a YAML-formatted file.
3# Declare variables to be passed into your templates.
5# -- Additional labels to add to all resources created by this chart
7# app.kubernetes.io/part-of: storage
10# Garage configuration. These values configure Garage and render to garage.toml unless noted otherwise.
12 # -- Can be changed for better performance on certain systems, use "sqlite" to prioritize durability
13 # https://garagehq.deuxfleurs.fr/documentation/reference-manual/configuration/#db_engine
15 # -- Defaults is 1MB, an increase can result in better performance in certain scenarios
16 # https://garagehq.deuxfleurs.fr/documentation/reference-manual/configuration/#block_size
18 # -- Default to 3 replicas, see the replication_factor section at
19 # https://garagehq.deuxfleurs.fr/documentation/reference-manual/configuration/#replication_factor
20 replicationFactor: "3"
21 # -- Start Garage with `--single-node`, run one StatefulSet replica, and render replication_factor = 1 in the generated garage.toml,
22 # if using garageTomlString or existingConfigMap, set replication_factor = 1 yourself.
24 # -- By default, enable read-after-write consistency guarantees, see the consistency_mode section at
25 # https://garagehq.deuxfleurs.fr/documentation/reference-manual/configuration/#consistency_mode
26 consistencyMode: "consistent"
27 # -- zstd compression level of stored blocks
28 # https://garagehq.deuxfleurs.fr/documentation/reference-manual/configuration/#compression_level
30 # -- If this value is set, Garage will automatically take a snapshot of the metadata DB file at a regular interval and save it in the metadata directory.
31 # https://garagehq.deuxfleurs.fr/documentation/reference-manual/configuration/#metadata_auto_snapshot_interval
32 metadataAutoSnapshotInterval: ""
33 # -- Port used for node-to-node RPC
34 rpcBindAddr: "[::]:3901"
35 # -- If not given, a random secret will be generated and stored in a Secret object
37 # -- If you want to provide an rpcSecret within an existing k8s secret,
38 # specify the secret name here, and store the value under the secret key `rpcSecret`
39 # the default secret will not be created
41 # -- This is not required if you use the integrated kubernetes discovery
43 # -- Set to true if you want to use k8s discovery but install the CRDs manually outside
44 # of the helm chart, for example if you operate at namespace level without cluster resources
45 kubernetesSkipCrd: false
46 # -- Set to true if you want to use roles instead of cluster roles
52 rootDomain: ".s3.garage.tld"
55 rootDomain: ".web.garage.tld"
58 apiBindAddr: "[::]:3903"
59 # -- Additional configuration to append to garage.toml. Use a multi-line string for custom config.
61 # additionalTopLevelConfig: |-
63 additionalTopLevelConfig: ""
64 # -- if not empty string, allow using an existing ConfigMap for the garage.toml,
65 # if set, ignores garage.toml
67 # -- String Template for the garage configuration
68 # if set, ignores above values.
69 # Values can be templated,
70 # see https://garagehq.deuxfleurs.fr/documentation/reference-manual/configuration/
76 # storageClass: "fast-storage-class"
78 # used only for daemon sets
79 hostPath: /var/lib/garage/meta
81 # storageClass: "slow-storage-class"
83 # used only for daemon sets
84 hostPath: /var/lib/garage/data
85# Deployment configuration
87 # -- Switchable to DaemonSet
89 # -- Number of StatefulSet replicas/garage nodes to start
91 # -- If using statefulset, allow Parallel or OrderedReady (default)
92 podManagementPolicy: OrderedReady
94 # -- default to amd64 docker image
95 repository: chainreg.biz/chainguard-private/garage
96 # -- set the image tag, please prefer using the chart version and not this,
97 # to avoid compatibility issues
98 tag: 2.4.1-r3@sha256:ab207d538f50ecfa01c042df32423f41725db6bfb3a8e20c84e2486f7389bc12
99 pullPolicy: IfNotPresent
101 repository: chainreg.biz/chainguard-private/busybox
102 tag: glibc-1.38.0-r2@sha256:7a438bd8593293ec90b6249fd8a51259874dadc11c3a9976bbcc0b935ce4cb51
103 pullPolicy: IfNotPresent
104# -- set if you need credentials to pull your custom image
109 # -- Specifies whether a service account should be created
111 # -- Annotations to add to the service account
113 # -- The name of the service account to use.
114 # If not set and create is true, a name is generated using the fullname template
116# -- additional pod annotations
122 fsGroupChangePolicy: "OnRootMismatch"
125 # -- The default security context is heavily restricted,
126 # feel free to tune it to your requirements
130 readOnlyRootFilesystem: true
132 # -- You can rely on any service to expose your cluster
133 # - ClusterIP (+ Ingress)
134 # - NodePort (+ Ingress)
137 # -- Annotations to add to the service
144 # NOTE: the admin API is excluded for now as it is not consistent across nodes
149 # -- Rely _either_ on the className or the annotation below but not both!
150 # If you want to use the className, set
152 # and replace "nginx" by an Ingress controller name,
153 # examples [here](https://kubernetes.io/docs/concepts/services-networking/ingress-controllers).
155 # kubernetes.io/ingress.class: "nginx"
156 # kubernetes.io/tls-acme: "true"
159 # -- garage S3 API endpoint, to be used with awscli for example
160 - host: "s3.garage.tld"
164 # -- garage S3 API endpoint, DNS style bucket access
165 - host: "*.s3.garage.tld"
170 # - secretName: my-garage-cluster-tls
172 # - kubernetes.docker.internal
175 # -- Rely _either_ on the className or the annotation below but not both!
176 # If you want to use the className, set
178 # and replace "nginx" by an Ingress controller name,
179 # examples [here](https://kubernetes.io/docs/concepts/services-networking/ingress-controllers).
181 # kubernetes.io/ingress.class: nginx
182 # kubernetes.io/tls-acme: "true"
185 # -- wildcard website access with bucket name prefix
186 - host: "*.web.garage.tld"
190 # -- specific bucket access with FQDN bucket
191 - host: "mywebpage.example.com"
196 # - secretName: my-garage-cluster-tls
198 # - kubernetes.docker.internal
200# The following are indicative for a small-size deployment, for anything serious double them.
208# -- Specifies a livenessProbe
212# port: 3903 # or the port from garage.admin.apiBindAddr
213#initialDelaySeconds: 5
215# -- Specifies a readinessProbe
219# port: 3903 # or the port from garage.admin.apiBindAddr
220#initialDelaySeconds: 5
226# -- Optional priority class name to assign to the pods.
227# See https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/
229# -- Extra container env vars, as a list of {name, value} objects (same shape
230# as a Pod container's env)
232# -- Override the container entrypoint.
234# -- Override the container arguments.
236# -- Extra volumes, as a list of volume objects (same shape as a PodSpec's volumes)
238# -- Extra volume mounts, as a list of mount objects (same shape as a container's volumeMounts)
242 # -- If true, a service for monitoring is created with a prometheus.io/scrape annotation
245 # -- If true, a ServiceMonitor CRD is created for a prometheus operator
246 # https://github.com/coreos/prometheus-operator
249 # namespace: monitoring (defaults to use the namespace this chart is deployed to)
257 # -- specify a sink endpoint for OpenTelemetry Traces, eg. `http://localhost:4317`