deploy-templates/charts/velero/templates/restic-daemonset.yaml (193 lines of code) (raw):
{{- if .Values.deployRestic }}
{{- $provider := .Values.configuration.provider -}}
{{/* 'restic.securityContext' got renamed to 'restic.containerSecurityContext', merge both dicts into one for backward compatibility */}}
{{- $containerSecurityContext := merge (.Values.restic.containerSecurityContext | default dict) (.Values.restic.securityContext | default dict) -}}
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: restic
namespace: {{ .Release.Namespace }}
{{- with .Values.restic.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
labels:
app.kubernetes.io/name: {{ include "velero.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
helm.sh/chart: {{ include "velero.chart" . }}
{{- with .Values.restic.labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
selector:
matchLabels:
name: restic
template:
metadata:
labels:
name: restic
app.kubernetes.io/name: {{ include "velero.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
helm.sh/chart: {{ include "velero.chart" . }}
{{- if .Values.podLabels }}
{{- toYaml .Values.podLabels | nindent 8 }}
{{- end }}
{{- with .Values.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
spec:
{{- if .Values.image.imagePullSecrets }}
imagePullSecrets:
{{- range .Values.image.imagePullSecrets }}
- name: {{ . }}
{{- end }}
{{- end }}
serviceAccountName: {{ include "velero.serverServiceAccount" . }}
{{- with .Values.restic.podSecurityContext }}
securityContext:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- if .Values.restic.priorityClassName }}
priorityClassName: {{ include "velero.restic.priorityClassName" . }}
{{- end }}
terminationGracePeriodSeconds: {{ .Values.terminationGracePeriodSeconds }}
volumes:
{{- if .Values.credentials.useSecret }}
- name: cloud-credentials
secret:
secretName: {{ include "velero.secretName" . }}
{{- end }}
- name: host-pods
hostPath:
path: {{ .Values.restic.podVolumePath }}
{{- if .Values.restic.useScratchEmptyDir }}
- name: scratch
emptyDir: {}
{{- end }}
{{- if .Values.restic.extraVolumes }}
{{- toYaml .Values.restic.extraVolumes | nindent 8 }}
{{- end }}
dnsPolicy: {{ .Values.restic.dnsPolicy }}
containers:
- name: restic
{{- if .Values.image.digest }}
image: "{{ .Values.image.repository }}@{{ .Values.image.digest }}"
{{- else }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
{{- end }}
imagePullPolicy: {{ .Values.image.pullPolicy }}
command:
- /velero
args:
- restic
- server
{{- with .Values.configuration }}
{{- with .features }}
- --features={{ . }}
{{- end }}
{{- with .logLevel }}
- --log-level={{ . }}
{{- end }}
{{- with .logFormat }}
- --log-format={{ . }}
{{- end }}
{{- end }}
volumeMounts:
{{- if .Values.credentials.useSecret }}
- name: cloud-credentials
mountPath: /credentials
{{- end }}
- name: host-pods
mountPath: /host_pods
mountPropagation: HostToContainer
{{- if .Values.restic.useScratchEmptyDir }}
- name: scratch
mountPath: /scratch
{{- end }}
{{- if .Values.restic.extraVolumeMounts }}
{{- toYaml .Values.restic.extraVolumeMounts | nindent 12 }}
{{- end }}
{{- if .Values.credentials.extraSecretRef }}
envFrom:
- secretRef:
name: {{ .Values.credentials.extraSecretRef }}
{{- end }}
env:
- name: VELERO_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: VELERO_SCRATCH_DIR
value: /scratch
{{- if .Values.credentials.useSecret }}
{{- if eq $provider "aws" }}
- name: AWS_SHARED_CREDENTIALS_FILE
value: /credentials/cloud
{{- else if eq $provider "gcp" }}
- name: GOOGLE_APPLICATION_CREDENTIALS
value: /credentials/cloud
{{- else if eq $provider "azure" }}
- name: AZURE_CREDENTIALS_FILE
value: /credentials/cloud
{{- else if eq $provider "alibabacloud" }}
- name: ALIBABA_CLOUD_CREDENTIALS_FILE
value: /credentials/cloud
{{- end }}
{{- end }}
{{- with .Values.configuration.extraEnvVars }}
{{- range $key, $value := . }}
- name: {{ default "none" $key }}
value: {{ default "none" $value | quote }}
{{- end }}
{{- end }}
{{- with .Values.credentials.extraEnvVars }}
{{- range $key, $value := . }}
- name: {{ default "none" $key }}
valueFrom:
secretKeyRef:
name: {{ include "velero.secretName" $ }}
key: {{ default "none" $key }}
{{- end }}
{{- end }}
{{- with .Values.restic.extraEnvVars }}
{{- range $key, $value := . }}
- name: {{ default "none" $key }}
value: {{ default "none" $value | quote }}
{{- end }}
{{- end }}
{{- if .Values.lifecycle }}
lifecycle: {{ toYaml .Values.restic.lifecycle | nindent 12 }}
{{- end }}
securityContext:
privileged: {{ .Values.restic.privileged }}
{{- with $containerSecurityContext }}
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.restic.resources }}
resources:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.restic.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.restic.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.restic.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.restic.dnsConfig }}
dnsConfig:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- end }}