Skip to content

RobertoBochet/backrest-chart

Repository files navigation

Backrest (unofficial) Helm Chart

GitHub GitHub Workflow Status GitHub Latest Release Version Static Badge

Backrest is a web UI and orchestrator for restic backup.

Deploy

  1. Add the repository to helm
    helm repo add robertobochet https://robertobochet.github.io/charts
    helm repo update
  2. Retrieve the default values file
    helm show values robertobochet/backrest > values.yaml
  3. Customize the values.yaml
  4. Install backrest
    helm install scraper-bot robertobochet/backrest -f values.yaml

Parameters

Common parameters

Name Description Value
nameOverride String to partially override common.names.fullname ""
fullnameOverride String to fully override common.names.fullname ""
imagePullSecrets Secret to use for pulling the image []
replicaCount number of replicas for the deployment 1

strategy

Name Description Value
strategy.type strategy type Recreate
strategy.rollingUpdate.maxSurge maxSurge 100%
strategy.rollingUpdate.maxUnavailable maxUnavailable 0

Image

Name Description Value
image.registry image registry, e.g. gcr.io,docker.io docker.io
image.repository Image to start for this pod garethgeorge/backrest
image.tag Visit: Image tag. Defaults to appVersion within Chart.yaml. ""
image.pullPolicy Image pull policy IfNotPresent

Security

Name Description Value
podSecurityContext Pod security context {}
containerSecurityContext Security context {}

Service

Name Description Value
service.type Kubernetes service type for http traffic ClusterIP
service.port Port number for web traffic 9898
service.clusterIP ClusterIP setting for http autosetup for deployment is None None
service.loadBalancerIP LoadBalancer IP setting ""
service.nodePort NodePort for http service ""
service.externalTrafficPolicy If service.type is NodePort or LoadBalancer, set this to Local to enable source IP preservation ""
service.externalIPs External IPs for service []
service.ipFamilyPolicy HTTP service dual-stack policy ""
service.ipFamilies HTTP service dual-stack familiy selection,for dual-stack parameters see official kubernetes dual-stack concept documentation. []
service.loadBalancerSourceRanges Source range filter for http loadbalancer []
service.annotations HTTP service annotations {}
service.labels HTTP service additional labels {}
service.loadBalancerClass Loadbalancer class ""

Ingress

Name Description Value
ingress.enabled Enable ingress false
ingress.className Ingress class name ""
ingress.annotations Ingress annotations {}
ingress.hosts[0].host Default Ingress host backrest.example.local
ingress.hosts[0].paths[0].path Default Ingress path /
ingress.hosts[0].paths[0].pathType Ingress path type Prefix
ingress.tls Ingress tls settings []
ingress.apiVersion Specify APIVersion of ingress object. Mostly would only be used for argocd.

Gateway-API HTTPRoute

Name Description Value
httpRoute.enabled Enables Gateway API HTTPRoute false
httpRoute.annotations Annotations to add to the HTTPRoute resource {}
httpRoute.parentRefs List of parentRefs for the HTTPRoute, typically referencing the Gateway(name, namespace) []
httpRoute.hostnames Hostnames this HTTPRoute applies to []
httpRoute.matches.path.type Type of path match (e.g., PathPrefix or Exact or RegularExpression) PathPrefix
httpRoute.matches.path.value Path value for matching incoming requests /
httpRoute.matches.timeouts.request Maximum time the Gateway waits to complete the full client request and response cycle.
httpRoute.matches.timeouts.backendRequest Maximum time the Gateway waits for a response from the backend service.
httpRoute.filters Filters to apply on HTTP requests, such as header rewrites or request redirects []

deployment

Name Description Value
resources Kubernetes resources {}
podAnnotations Annotations {}
startupProbe.enabled Enable startupProbe true
startupProbe.initialDelaySeconds Initial delay seconds for startupProbe 10
startupProbe.periodSeconds Period seconds for startupProbe 10
startupProbe.timeoutSeconds Timeout seconds for startupProbe 1
startupProbe.failureThreshold Failure threshold for startupProbe 3
startupProbe.successThreshold Success threshold for startupProbe 1
livenessProbe.enabled Enable livenessProbe true
livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe 10
livenessProbe.periodSeconds Period seconds for livenessProbe 10
livenessProbe.timeoutSeconds Timeout seconds for livenessProbe 1
livenessProbe.failureThreshold Failure threshold for livenessProbe 3
livenessProbe.successThreshold Success threshold for livenessProbe 1
readinessProbe.enabled Enable readinessProbe true
readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe 10
readinessProbe.periodSeconds Period seconds for readinessProbe 10
readinessProbe.timeoutSeconds Timeout seconds for readinessProbe 1
readinessProbe.failureThreshold Failure threshold for readinessProbe 3
readinessProbe.successThreshold Success threshold for readinessProbe 1
nodeSelector NodeSelector for the deployment {}
tolerations Tolerations for the deployment []
affinity Affinity for the deployment {}
config Backrest configuration forwarded to container as environment variables
config.BACKREST_DATA Backrest data path {{ .Values.persistence.mountPath }}/data
config.BACKREST_CONFIG Backrest config path {{ .Values.persistence.mountPath }}/config.json
config.BACKREST_PORT Backrest webapp port 0.0.0.0:{{ .Values.service.port}}
config.XDG_CACHE_HOME Backrest cache path {{ .Values.cache.mountPath }}
env Additional environment variables to pass to containers []

ServiceAccount

Name Description Value
serviceAccount.create Enable the creation of a ServiceAccount false
serviceAccount.name Name of the created ServiceAccount, defaults to release name. Can also link to an externally provided ServiceAccount that should be used. ""
serviceAccount.automountServiceAccountToken Enable/disable auto mounting of the service account token false
serviceAccount.imagePullSecrets Image pull secrets, available to the ServiceAccount []
serviceAccount.annotations Custom annotations for the ServiceAccount {}
serviceAccount.labels Custom labels for the ServiceAccount {}

Persistence

Name Description Value
persistence.enabled Enable persistent storage true
persistence.existingClaim Use an existing claim to store repository information ""
persistence.size Size for persistence to store repo information 10Gi
persistence.accessModes AccessMode for persistence ["ReadWriteOnce"]
persistence.labels Labels for the persistence volume claim to be created {}
persistence.annotations.helm.sh/resource-policy Resource policy for the persistence volume claim keep
persistence.storageClass Name of the storage class to use ""
persistence.subPath Subdirectory of the volume to mount at ""
persistence.mountPath Directory of the container to mount at /data
persistence.volumeName Name of persistent volume in PVC ""
cache Volume for cache
cache.mountPath Directory of the container to mount at /cache
extraVolumes Additional volumes to mount to the Gitea deployment []
extraContainerVolumeMounts Mounts that are only mapped into the Gitea runtime/main container, to e.g. override custom templates. []

Miscellaneous

Name Description Value
extraObjects Array of extra K8s manifests to deploy []