deploy-templates/templates/bpms-deployment.yaml (296 lines of code) (raw):

apiVersion: apps/v1 kind: Deployment metadata: name: {{ .Chart.Name }} annotations: secret.reloader.stakater.com/reload: "trembita-registries-secrets,external-systems-secrets" configmap.reloader.stakater.com/reload: "trembita-registries-configuration,external-systems-configuration,diia-configuration" labels: app: {{ .Chart.Name }} spec: selector: matchLabels: app: {{ .Chart.Name }} {{- if not .Values.global.registry.bpms.hpa.enabled }} replicas: {{ .Values.global.registry.bpms.replicas }} {{- end }} strategy: rollingUpdate: maxSurge: 25% maxUnavailable: 25% type: RollingUpdate template: metadata: {{- if or .Values.podAnnotations .Values.global.registry.bpms.istio.sidecar.enabled }} annotations: {{- range $key, $value := .Values.podAnnotations }} {{ $key }}: {{ $value | quote }} {{- end }} {{- if .Values.global.registry.bpms.istio.sidecar.enabled }} traffic.sidecar.istio.io/excludeOutboundPorts: '5432,6379' sidecar.istio.io/inject: 'true' {{- include "bpms.istioResources" . | nindent 8 }} {{- end }} {{- end }} labels: app: {{ .Chart.Name }} collect.logs: "json" spec: initContainers: - command: - sh - '-c' - >- while ! nc -w 1 {{ .Values.db.url }} {{ .Values.db.port }} </dev/null; do echo waiting for database; sleep 10; done; image: {{ template "imageRegistry" . -}} busybox imagePullPolicy: IfNotPresent name: {{ .Chart.Name }}-init - name: update-history-level image: {{ template "imageRegistry" . -}} bitnami/postgresql:latest env: - name: PSQL_USER valueFrom: secretKeyRef: name: {{ .Values.db.secret }} key: user - name: PGPASSWORD valueFrom: secretKeyRef: name: {{ .Values.db.secret }} key: password imagePullPolicy: IfNotPresent command: - 'sh' - '-c' - >- psql {{ .Values.db.name }} -U $PSQL_USER --host={{ .Values.db.url }} -f /app/update-history-level.sql volumeMounts: - name: update-history-level-configmap mountPath: /app/update-history-level.sql subPath: update-history-level.sql containers: - name: {{ .Chart.Name }} image: "{{ .Values.image.name }}:{{ .Values.image.version }}" ports: - containerPort: {{ .Values.port }} name: {{ .Chart.Name }} livenessProbe: httpGet: path: {{ .Values.livenessPath }} port: {{ .Values.port }} failureThreshold: 10 initialDelaySeconds: 65 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 5 readinessProbe: httpGet: path: {{ .Values.readinessPath }} port: {{ .Values.port }} failureThreshold: 10 initialDelaySeconds: 65 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 5 {{- if or .Values.global.registry.bpms.container.resources.requests .Values.global.registry.bpms.container.resources.limits }} resources: {{- toYaml .Values.global.registry.bpms.container.resources | nindent 10 }} {{- end }} env: {{- range $name, $value := .Values.global.registry.bpms.container.envVars }} - name: {{ $name }} value: {{ $value | quote}} {{- end }} - name: CEPH_BUCKET_HOST valueFrom: configMapKeyRef: name: {{ .Values.fileStorage.bucketName }} key: BUCKET_HOST - name: CEPH_BUCKET_PORT valueFrom: configMapKeyRef: name: {{ .Values.fileStorage.bucketName }} key: BUCKET_PORT - name: ceph.file-storage-bucket valueFrom: configMapKeyRef: name: {{ .Values.fileStorage.bucketName }} key: BUCKET_NAME - name: KAFKA_USER_KEYSTORE_CERTIFICATE valueFrom: secretKeyRef: name: {{ .Values.kafka.user }} key: user.crt - name: KAFKA_USER_KEYSTORE_KEY valueFrom: secretKeyRef: name: {{ .Values.kafka.user }} key: user.key - name: KAFKA_CLUSTER_TRUSTSTORE valueFrom: secretKeyRef: name: {{ .Values.kafka.clusterName }}-cluster-ca-cert key: ca.crt - name: kubernetes.namespace.current valueFrom: fieldRef: fieldPath: metadata.namespace - name: REDIS_PASSWORD valueFrom: secretKeyRef: name: {{ .Values.redis.secretName }} key: password volumeMounts: - name: {{ .Chart.Name }} mountPath: {{ .Values.appConfigMountPath }} - name: {{ .Values.db.secret }} mountPath: {{ .Values.appSecretsMountPath }} - name: {{ .Chart.Name }}-camunda-global-system-vars mountPath: {{ .Values.camundaVarsMountPath }} - name: {{ .Values.fileStorage.bucketName }}-credentials mountPath: {{ .Values.fileStorageSecretMountPath }} - name: {{ .Values.keycloak.citizenClient.secretName }} mountPath: {{ .Values.citizenKeycloakClientSecretsMountPath }} - name: {{ .Values.keycloak.officerClient.secretName }} mountPath: {{ .Values.officerKeycloakClientSecretsMountPath }} - name: {{ .Values.keycloak.systemUserClient.secretName }} mountPath: {{ .Values.systemUserKeycloakClientSecretsMountPath }} - name: {{ .Values.keycloak.officerSystemClient.secretName }} mountPath: {{ .Values.officerSystemClientSecretsMountPath }} - name: {{ .Values.officerConfigMapName }} mountPath: {{ .Values.officerConfigMountPath }} - name: {{ .Values.citizenConfigMapName }} mountPath: {{ .Values.citizenConfigMountPath }} - name: {{ .Chart.Name }}-redis-credentials mountPath: {{ .Values.redisSecretsMountPath }} {{- if .Values.trembita }} {{- if .Values.trembita.registries }} {{- $trembitaSecret := (lookup "v1" "Secret" .Values.namespace "trembita-registries-secrets") }} {{- if $trembitaSecret }} - name: bpms-{{ .Values.registrySecrets.trembitaRegistriesSecretsName }} mountPath: "{{ .Values.registrySecrets.secretRootPath }}/{{ .Values.registrySecrets.trembitaRegistriesSecretsName }}" {{- end }} - name: {{ .Values.registryConfigs.trembitaRegistriesConfigurationName }} mountPath: "{{ .Values.registryConfigs.configRootPath }}/{{ .Values.registryConfigs.trembitaRegistriesConfigurationName }}" {{- end }} {{- end }} - name: {{ .Values.registryConfigs.notificationBlacklistConfigurationName }} mountPath: "{{ .Values.registryConfigs.configRootPath }}/{{ .Values.registryConfigs.notificationBlacklistConfigurationName }}" {{- if (index .Values "external-systems").diia }} - name: {{ .Values.registryConfigs.diiaConfigurationName }} mountPath: "{{ .Values.registryConfigs.configRootPath }}/{{ .Values.registryConfigs.diiaConfigurationName }}" {{- end }} {{- if (index .Values "external-systems") }} - name: {{ .Values.registryConfigs.externalSystemsConfigurationName }} mountPath: "{{ .Values.registryConfigs.configRootPath }}/{{ .Values.registryConfigs.externalSystemsConfigurationName }}" - name: {{ .Values.registryConfigs.externalSystemsEndpointConfigurationName }} mountPath: "{{ .Values.registryConfigs.configRootPath }}/{{ .Values.registryConfigs.externalSystemsEndpointConfigurationName }}" {{- $externalSystemsSecret := (lookup "v1" "Secret" .Values.namespace "external-systems-secrets") }} {{- if $externalSystemsSecret }} - name: bpms-{{ .Values.registrySecrets.externalSystemsSecretsName }} mountPath: "{{ .Values.registrySecrets.secretRootPath }}/{{ .Values.registrySecrets.externalSystemsSecretsName }}" {{- end }} {{- end }} serviceAccountName: {{ .Chart.Name }} {{- if .Values.nodeSelector }} nodeSelector: {{ toYaml .Values.nodeSelector | nindent 8 }} {{- end }} {{- if .Values.podSecurityContext }} securityContext: {{ toYaml .Values.podSecurityContext | nindent 8 }} {{- end }} volumes: - name: {{ .Chart.Name }} configMap: name: {{ .Chart.Name }} - name: {{ .Values.db.secret }} secret: secretName: {{ .Values.db.secret }} items: - key: user path: spring.datasource.username - key: password path: spring.datasource.password - name: {{ .Values.fileStorage.bucketName }}-credentials secret: secretName: {{ .Values.fileStorage.bucketName }} items: - key: AWS_ACCESS_KEY_ID path: ceph.file-storage-access-key - key: AWS_SECRET_ACCESS_KEY path: ceph.file-storage-secret-key - name: {{ .Chart.Name }}-camunda-global-system-vars configMap: name: {{ .Chart.Name }}-camunda-global-system-vars - name: {{ .Values.keycloak.citizenClient.secretName }} secret: secretName: {{ .Values.keycloak.citizenClient.secretName }} items: - key: clientSecret path: keycloak.citizen.client-secret - name: {{ .Values.keycloak.officerClient.secretName }} secret: secretName: {{ .Values.keycloak.officerClient.secretName }} items: - key: clientSecret path: keycloak.officer.client-secret - name: {{ .Values.keycloak.systemUserClient.secretName }} secret: secretName: {{ .Values.keycloak.systemUserClient.secretName }} items: - key: clientSecret path: keycloak.system-user.client-secret - name: {{ .Values.keycloak.officerSystemClient.secretName }} secret: secretName: {{ .Values.keycloak.officerSystemClient.secretName }} items: - key: clientSecret path: keycloak.officer-system-client.client-secret - name: {{ .Values.officerConfigMapName }} configMap: name: {{ .Values.officerConfigMapName }} - name: {{ .Values.citizenConfigMapName }} configMap: name: {{ .Values.citizenConfigMapName }} {{- if .Values.trembita }} - name: {{ .Values.registryConfigs.trembitaRegistriesConfigurationName }} configMap: name: {{ .Values.registryConfigs.trembitaRegistriesConfigurationName }} {{- $trembitaSecret := (lookup "v1" "Secret" .Values.namespace "trembita-registries-secrets") }} {{- if $trembitaSecret }} - name: bpms-{{ .Values.registrySecrets.trembitaRegistriesSecretsName }} secret: secretName: {{ .Values.registrySecrets.trembitaRegistriesSecretsName }} {{- end }} {{- end }} - name: {{ .Values.registryConfigs.notificationBlacklistConfigurationName }} configMap: name: {{ .Values.registryConfigs.notificationBlacklistConfigurationName }} {{- if (index .Values "external-systems").diia }} - name: {{ .Values.registryConfigs.diiaConfigurationName }} configMap: name: {{ .Values.registryConfigs.diiaConfigurationName }} {{- end }} {{- if (index .Values "external-systems") }} - name: {{ .Values.registryConfigs.externalSystemsConfigurationName }} configMap: name: {{ .Values.registryConfigs.externalSystemsConfigurationName }} - name: {{ .Values.registryConfigs.externalSystemsEndpointConfigurationName }} configMap: name: {{ .Values.registryConfigs.externalSystemsEndpointConfigurationName }} {{- $externalSystemsSecret := (lookup "v1" "Secret" .Values.namespace "external-systems-secrets") }} {{- if $externalSystemsSecret }} - name: bpms-{{ .Values.registrySecrets.externalSystemsSecretsName }} secret: secretName: {{ .Values.registrySecrets.externalSystemsSecretsName }} {{- end }} {{- end }} - name: {{ .Chart.Name }}-redis-credentials secret: secretName: {{ .Values.redis.secretName }} items: - key: password path: redis.password - name: update-history-level-configmap configMap: name: update-history-level-configmap