deploy-templates/charts/velero/templates/deployment.yaml (246 lines of code) (raw):
{{- if .Values.configuration.provider -}}
{{- $provider := .Values.configuration.provider -}}
{{/* 'securityContext' got renamed to 'podSecurityContext', merge both dicts into one for backward compatibility */}}
{{- $podSecurityContext := merge (.Values.podSecurityContext | default dict) (.Values.securityContext | default dict) -}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "velero.fullname" . }}
namespace: {{ .Release.Namespace }}
{{- with .Values.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" . }}
component: velero
{{- with .Values.labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/name: {{ include "velero.name" . }}
template:
metadata:
labels:
name: velero
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 }}
{{- if or .Values.podAnnotations .Values.metrics.enabled }}
annotations:
{{- with .Values.podAnnotations }}
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.metrics.podAnnotations }}
{{- toYaml . | nindent 8 }}
{{- end }}
{{- end }}
spec:
{{- if .Values.image.imagePullSecrets }}
imagePullSecrets:
{{- range .Values.image.imagePullSecrets }}
- name: {{ . }}
{{- end }}
{{- end }}
restartPolicy: Always
serviceAccountName: {{ include "velero.serverServiceAccount" . }}
{{- if .Values.priorityClassName }}
priorityClassName: {{ include "velero.priorityClassName" . }}
{{- end }}
terminationGracePeriodSeconds: {{ .Values.terminationGracePeriodSeconds }}
containers:
- name: velero
{{- if .Values.image.digest }}
image: "{{ .Values.image.repository }}@{{ .Values.image.digest }}"
{{- else }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
{{- end }}
imagePullPolicy: {{ .Values.image.pullPolicy }}
{{- if .Values.metrics.enabled }}
ports:
- name: http-monitoring
containerPort: 8085
{{- end }}
command:
- /velero
args:
- server
{{- with .Values.configuration }}
{{- with .backupSyncPeriod }}
- --backup-sync-period={{ . }}
{{- end }}
{{- with .resticTimeout }}
- --restic-timeout={{ . }}
{{- end }}
{{- if .restoreOnlyMode }}
- --restore-only
{{- end }}
{{- with .restoreResourcePriorities }}
- --restore-resource-priorities={{ . }}
{{- end }}
{{- with .features }}
- --features={{ . }}
{{- end }}
{{- with .logLevel }}
- --log-level={{ . }}
{{- end }}
{{- with .logFormat }}
- --log-format={{ . }}
{{- end }}
{{- if .defaultVolumesToRestic }}
- --default-volumes-to-restic
{{- end }}
{{- with .defaultResticPruneFrequency }}
- --default-restic-prune-frequency={{ . }}
{{- end }}
{{- with .clientQPS }}
- --client-qps={{ . }}
{{- end }}
{{- with .clientBurst }}
- --client-burst={{ . }}
{{- end }}
{{- with .clientPageSize }}
- --client-page-size={{ . }}
{{- end }}
{{- with .disableControllers }}
- --disable-controllers={{ . }}
{{- end }}
{{- with .storeValidationFrequency }}
- --store-validation-frequency={{ . }}
{{- end }}
{{- with .garbageCollectionFrequency }}
- --garbage-collection-frequency={{ . }}
{{- end }}
{{- end }}
{{- with .Values.resources }}
resources:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.containerSecurityContext }}
securityContext:
{{- toYaml . | nindent 12 }}
{{- end }}
volumeMounts:
- name: plugins
mountPath: /plugins
{{- if .Values.credentials.useSecret }}
- name: cloud-credentials
mountPath: /credentials
{{- end }}
- name: scratch
mountPath: /scratch
{{- if .Values.containerSecurityContext.readOnlyRootFilesystem }}
- name: tmpdir
mountPath: /tmp
{{- end }}
{{- if .Values.extraVolumeMounts }}
{{- toYaml .Values.extraVolumeMounts | nindent 12 }}
{{- end }}
{{- if .Values.credentials.extraSecretRef }}
envFrom:
- secretRef:
name: {{ .Values.credentials.extraSecretRef }}
{{- end }}
env:
- name: VELERO_SCRATCH_DIR
value: /scratch
- name: VELERO_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: LD_LIBRARY_PATH
value: /plugins
{{- 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 }}
{{- if .Values.lifecycle }}
lifecycle: {{ toYaml .Values.lifecycle | nindent 12 }}
{{- end }}
dnsPolicy: {{ .Values.dnsPolicy }}
{{- if .Values.initContainers }}
initContainers:
{{- if eq (typeOf .Values.initContainers) "string" }}
{{- tpl .Values.initContainers . | nindent 8 }}
{{- else }}
{{- toYaml .Values.initContainers | nindent 8 }}
{{- end }}
{{- end }}
volumes:
{{- if .Values.credentials.useSecret }}
- name: cloud-credentials
secret:
secretName: {{ include "velero.secretName" . }}
{{- end }}
- name: plugins
emptyDir: {}
- name: scratch
emptyDir: {}
{{- if .Values.containerSecurityContext.readOnlyRootFilesystem }}
- name: tmpdir
emptyDir: {}
{{- end }}
{{- if .Values.extraVolumes }}
{{- toYaml .Values.extraVolumes | nindent 8 }}
{{- end }}
{{- with $podSecurityContext }}
securityContext:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.dnsConfig }}
dnsConfig:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- end -}}