charts/osdu-developer-service/templates/deployment.yaml (177 lines of code) (raw):
{{- $enabled := eq (include "osdu-developer-service.isEnabled" .) "1" -}}
{{- $namespace := .Release.Namespace }}
{{- $pullPolicy := .Values.pullPolicy -}}
{{- $servicePort := .Values.service.port -}}
{{- $replicaCount := .Values.replicaCount -}}
{{- $nodePool := .Values.nodePool}}
{{- $toleration := .Values.toleration}}
{{- $affinity := .Values.affinity}}
{{- $subset := .Values.subset}}
{{- $podAnnotations := .Values.podAnnotations}}
{{- $configMap := .Values.configMap -}}
{{- $osduVersion := .Values.osduVersion -}}
{{- $version := .Chart.AppVersion | default .Chart.AppVersion -}}
{{- $selectorLabels := include "osdu-developer-service.selectorLabels" . | nindent 8 }}
{{- $labels := include "osdu-developer-service.labels" . | nindent 4 }}
{{- range .Values.configuration }}
{{- if and $enabled (or .service .scaledObject) }}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ or .service .scaledObject }}
labels: {{ $labels }}
app: {{ or .service .scaledObject }}
appVersion: {{ $osduVersion }}
spec:
{{- if not .autoscale }}
replicas: {{ .replicaCount | default $replicaCount }}
selector:
matchLabels: {{ $selectorLabels }}
{{- end }}
template:
metadata:
{{- with $podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels: {{ $selectorLabels }}
app: {{ or .service .scaledObject }}
azure.workload.identity/use: "true"
{{- if $subset }}
version: {{ $subset }}
{{- end }}
spec:
serviceAccountName: {{ .serviceAccountName | default "workload-identity-sa" }}
{{- if $nodePool }}
nodeSelector:
nodepool: {{ $nodePool }}
{{- end }}
{{- if $affinity }}
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
{{- if $affinity.zones }}
- key: topology.kubernetes.io/zone
operator: In
values:
{{- range $affinity.zones }}
- {{ . }}
{{- end }}
{{- end }}
{{- if $affinity.pools }}
- key: agentpool
operator: In
values:
{{- range $affinity.pools }}
- {{ . }}
{{- end }}
{{- end }}
{{- end }}
{{- if $toleration }}
tolerations:
- key: "app"
operator: "Equal"
value: {{ $toleration }}
effect: "NoSchedule"
{{- end }}
volumes:
{{- if .keyvault }}
- name: azure-keyvault
csi:
driver: secrets-store.csi.k8s.io
readOnly: true
volumeAttributes:
secretProviderClass: azure-keyvault
{{- end }}
{{- range .pvc }}
- name: {{ .volume }}
persistentVolumeClaim:
claimName: {{ .name }}-pvc
{{- end }}
containers:
- name: {{ or .service .scaledObject }}
image: {{ if hasSuffix "-" .repository }}{{ .repository }}{{ $osduVersion }}:{{ .tag }}{{ else }}{{ .repository }}:{{ .tag }}{{ end }}
imagePullPolicy: {{ $pullPolicy | default "Always" }}
ports:
- name: http
containerPort: {{ $servicePort }}
protocol: TCP
{{- if .probe }}
readinessProbe:
httpGet:
path: {{ .probe.path }}
port: {{ .probe.port }}
initialDelaySeconds: 60
{{- if .probe.liveness }}
livenessProbe:
httpGet:
path: {{ .probe.path }}
port: {{ .probe.port }}
initialDelaySeconds: {{ .probe.liveness.delay }}
periodSeconds: {{ .probe.liveness.seconds }}
{{- end }}
{{- end }}
resources:
{{- if .request }}
requests:
{{- if .request.cpu }}
cpu: {{ .request.cpu | quote }}
{{- end }}
{{- if .request.memory }}
memory: {{ .request.memory | quote }}
{{- end }}
{{- end }}
{{- if .limit }}
limits:
{{- if .limit.cpu }}
cpu: {{ .limit.cpu | quote }}
{{- end }}
{{- if .limit.memory }}
memory: {{ .limit.memory | quote }}
{{- end }}
{{- end }}
volumeMounts:
{{- if .keyvault }}
- name: azure-keyvault
mountPath: "/mnt/azure-keyvault"
readOnly: true
{{- end }}
{{- range .mount }}
- name: {{ .name }}
mountPath: {{ .path }}
{{- if .subPath }}
subPath: {{ .subPath }}
{{- end }}
{{- end }}
{{- if $configMap }}
envFrom:
- configMapRef:
name: {{ $configMap }}
{{- end }}
{{- if .env }}
env:
{{- range .env }}
- name: {{ .name }}
{{- if .value }}
{{- $v := .value }}
value: {{ tpl ($v | quote) $ }}
{{- end }}
{{- if .config }}
valueFrom:
configMapKeyRef:
name: {{ .config.name }}
key: {{ .config.key | quote }}
{{- end }}
{{- if .secret }}
valueFrom:
secretKeyRef:
name: {{ .secret.name | quote }}
key: {{ .secret.key | quote }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}