# Default values for garage.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

# Garage configuration. These values go to garage.toml
garage:
  metadataDir: "/mnt/meta"
  dataDir: "/mnt/data"
  # Default to 3 replicas, see the replication_mode section at
  # https://garagehq.deuxfleurs.fr/documentation/reference-manual/configuration/
  replicationMode: "3"
  rpcBindAddr: "[::]:3901"
  # If not given, a random secret will be generated and stored in a Secret object
  rpcSecret: ""
  # This is not required if you use the integrated kubernetes discovery
  bootstrapPeers: []
  kubernetesSkipCrd: false
  s3:
    api:
      region: "garage"
      rootDomain: ".s3.garage.tld"
    web:
      rootDomain: ".web.garage.tld"
      index: "index.html"

# Data persistence
persistence:
  enabled: true
  meta:
    # storageClass: "fast-storage-class"
    size: 100Mi
  data:
    # storageClass: "slow-storage-class"
    size: 100Mi

# Number of StatefulSet replicas/garage nodes to start
replicaCount: 3

image:
  repository: dxflrs/amd64_garage
  # please prefer using the chart version and not this tag
  tag: ""
  pullPolicy: IfNotPresent

imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""

serviceAccount:
  # Specifies whether a service account should be created
  create: true
  # Annotations to add to the service account
  annotations: {}
  # The name of the service account to use.
  # If not set and create is true, a name is generated using the fullname template
  name: ""

podAnnotations: {}

podSecurityContext: {}
  # fsGroup: 2000

securityContext:
  # The default security context is heavily restricted
  # feel free to tune it to your requirements
  capabilities:
    drop:
    - ALL
  readOnlyRootFilesystem: true
  runAsNonRoot: true
  runAsUser: 1000

service:
  # You can rely on any service to expose your cluster
  # - ClusterIP (+ Ingress)
  # - NodePort (+ Ingress)
  # - LoadBalancer
  type: ClusterIP
  s3:
    api:
      port: 3900
    web:
      port: 3902
    # NOTE: the admin API is excluded for now as it is not consistent across nodes
ingress:
  s3:
    api:
      enabled: true
      # Rely either on the className or the annotation below but not both
      # replace "nginx" by an Ingress controller
      # you can find examples here https://kubernetes.io/docs/concepts/services-networking/ingress-controllers
      className: "nginx"
      annotations:
        # kubernetes.io/ingress.class: "nginx"
        # kubernetes.io/tls-acme: "true"
      hosts:
        - host: "s3.garage.tld" # garage S3 API endpoint
          paths:
            - path: /
              pathType: Prefix
        - host: "*.s3.garage.tld" # garage S3 API endpoint, DNS style bucket access
          paths:
            - path: /
              pathType: Prefix
      tls: []
      #  - secretName: my-garage-cluster-tls
      #    hosts:
      #      - kubernetes.docker.internal
    web:
      enabled: true
      className: "nginx"
      annotations: {}
        # kubernetes.io/ingress.class: nginx
        # kubernetes.io/tls-acme: "true"
      hosts:
       - host: "*.web.garage.tld" # wildcard website access with bucket name prefix
         paths:
           - path: /
             pathType: Prefix
       - host: "mywebpage.example.com" # specific bucket access with FQDN bucket
         paths:
           - path: /
             pathType: Prefix
      tls: []
      #  - secretName: my-garage-cluster-tls
      #    hosts:
      #      - kubernetes.docker.internal

resources: {}
  # The following are indicative for a small-size deployement, for anything serious double them.
  # limits:
  #   cpu: 100m
  #   memory: 1024Mi
  # requests:
  #   cpu: 100m
  #   memory: 512Mi

nodeSelector: {}

tolerations: []

affinity: {}