apiVersion: apps/v1 kind: Deployment metadata: name: "{{ include "gateway.fullname" . }}-apitraffic" labels: {{- include "gateway.labels" . | nindent 4 }} app.kubernetes.io/component: apitraffic spec: {{- if not .Values.apitraffic.autoscaling.enabled }} replicas: {{ .Values.apitraffic.replicaCount }} {{- end }} strategy: {{- if eq (default .Values.global.updateStrategy.type .Values.apitraffic.updateStrategy.type) "RollingUpdate" }} rollingUpdate: maxSurge: {{ default .Values.global.updateStrategy.rollingUpdate.maxSurge .Values.apitraffic.updateStrategy.rollingUpdate.maxSurge }} maxUnavailable: {{ default .Values.global.updateStrategy.rollingUpdate.maxUnavailable .Values.apitraffic.updateStrategy.rollingUpdate.maxUnavailable }} {{- end }} type: {{ default .Values.global.updateStrategy.type .Values.apitraffic.updateStrategy.type }} selector: matchLabels: {{- include "gateway.selectorLabels" . | nindent 6 }} app.kubernetes.io/component: apitraffic {{- with .Values.apitraffic.podLabels }} {{- toYaml . | nindent 6 }} {{- end }} template: metadata: {{- with .Values.apitraffic.podAnnotations }} annotations: {{- toYaml . | nindent 8 }} {{- end }} labels: {{- include "gateway.selectorLabels" . | nindent 8 }} app.kubernetes.io/component: apitraffic {{- with .Values.apitraffic.podLabels }} {{- toYaml . | nindent 8 }} {{- end }} spec: {{- with .Values.global.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} {{- end }} serviceAccountName: {{ include "gateway.apitraffic.serviceAccountName" . }} securityContext: {{- toYaml .Values.apitraffic.podSecurityContext | nindent 8 }} initContainers: {{- if .Values.global.cassandra.enabled }} - name: init-cassandra image: {{ .Values.global.initContainers.image | quote }} command: ["sh", "-c", "c=0; x={{ len .Values.global.cassandra.hosts }}; until [ $(( c * 100 / x )) -ge 50 ]; do c=0; for host in {{- range .Values.global.cassandra.hosts }} {{ .hostname }} {{- end }}; do echo waiting for ${host}; if nc -w 3 -v ${host} {{ .Values.global.cassandra.port }};then c=$((c+1)); fi done; sleep 2; done;"] {{- with .Values.global.initContainers.resources }} resources: {{- toYaml . | nindent 12 }} {{- end }} {{- with .Values.global.initContainers.securityContext }} securityContext: {{- toYaml . | nindent 12 }} {{- end }} {{- end }} {{- if .Values.global.database.metrics.enabled }} - name: init-mysql image: {{ .Values.global.initContainers.image | quote }} command: ["sh", "-c", "until nc -w 3 -v {{ tpl .Values.global.database.host . }} {{ .Values.global.database.port | int }}; do echo waiting for mysql; sleep 2; done;"] {{- with .Values.global.initContainers.resources }} resources: {{- toYaml . | nindent 12 }} {{- end }} {{- with .Values.global.initContainers.securityContext }} securityContext: {{- toYaml . | nindent 12 }} {{- end }} {{- end }} - name: init-anm image: {{ .Values.global.initContainers.image | quote }} {{- if .Values.anm.hostname }} command: ["sh", "-c", "until nc -w 3 -v {{ .Values.anm.hostname }}; do echo waiting for anm; sleep 2; done;"] {{- else }} command: ["sh", "-c", "until nc -w 3 -v {{ include "gateway.fullname" . }}-anm 8090; do echo waiting for anm; sleep 2; done;"] {{- end }} {{- with .Values.global.initContainers.resources }} resources: {{- toYaml . | nindent 12 }} {{- end }} {{- with .Values.global.initContainers.securityContext }} securityContext: {{- toYaml . | nindent 12 }} {{- end }} {{- with .Values.apitraffic.extraInitContainers }} {{- toYaml . | nindent 8 }} {{- end }} containers: - name: {{ .Chart.Name }} securityContext: {{- toYaml .Values.apitraffic.securityContext | nindent 12 }} image: "{{ default .Values.global.defaultRegistry .Values.apitraffic.image.registry }}/{{ .Values.apitraffic.image.repository }}:{{ .Values.apitraffic.image.tag | default .Chart.AppVersion }}" imagePullPolicy: {{ .Values.global.imagePullPolicy }} ports: - containerPort: {{ .Values.apitraffic.service.ports.traffic.port }} protocol: {{ .Values.apitraffic.service.ports.traffic.protocol }} {{- with .Values.apitraffic.livenessProbe }} livenessProbe: {{- toYaml . | nindent 12 }} {{- end }} {{- with .Values.apitraffic.readinessProbe }} readinessProbe: {{- toYaml . | nindent 12 }} {{- end }} resources: {{- toYaml .Values.apitraffic.resources | nindent 12 }} env: {{- with .Values.apitraffic.extraEnvVars }} {{- toYaml . | nindent 12 }} {{- end }} {{- if .Values.apitraffic.FIPS.enabled }} - name: EMT_FIPS_MODE value: {{ .Values.apitraffic.FIPS.enabled | quote }} {{- end }} {{- if .Values.apitraffic.jvmHeapSize }} - name: EMT_HEAP_SIZE_MB value: {{ .Values.apitraffic.jvmHeapSize | quote }} {{- end }} {{- if .Values.apitraffic.logs.trace.level }} - name: EMT_TRACE_LEVEL value: {{ .Values.apitraffic.logs.trace.level | quote }} {{- end }} {{- if .Values.apitraffic.logs.trace.disk }} - name: APIGW_LOG_TRACE_TO_FILE value: {{ .Values.apitraffic.logs.trace.disk | quote }} {{- end }} - name: APIGW_LOG_TRACE_JSON_TO_STDOUT value: {{ default .Values.apitraffic.logs.trace.stdoutJSON false | quote }} {{- if .Values.apitraffic.logs.opentraffic.output | quote}} - name: APIGW_LOG_OPENTRAFFIC_OUTPUT value: {{ .Values.apitraffic.logs.opentraffic.output | quote }} {{- end }} {{- if .Values.global.domainkeypassphrase }} - name: DOMAIN_KEY_PASSPHRASE valueFrom: secretKeyRef: name: {{ include "gateway.domainkeypassphrase.secretName" . }} key: passphrase {{- end }} {{- if .Values.global.database.metrics.enabled }} - name: METRICS_DB_URL value: {{ tpl .Values.global.database.metrics.url . | quote }} - name: METRICS_DB_USERNAME valueFrom: secretKeyRef: name: {{ include "gateway.metrics-db.secretName" . }} key: {{ with .Values.global.database.metrics.existingSecret.keyMapping }}{{- default "username" .username }}{{- else -}}"username"{{- end }} - name: METRICS_DB_PASS valueFrom: secretKeyRef: name: {{ include "gateway.metrics-db.secretName" . }} key: {{ with .Values.global.database.metrics.existingSecret.keyMapping }}{{- default "password" .password }}{{- else -}}"password"{{- end }} {{- end }} - name: GROUP_ID value: {{ .Values.apitraffic.groupId }} {{- if .Values.global.domainId }} - name: DOMAIN_ID value: {{ .Values.global.domainId }} {{- end }} {{- if .Values.global.cassandra.enabled }} {{- range .Values.global.cassandra.hosts }} - name: {{ .variable }} value: {{ .hostname | quote }} {{- end }} - name: CASS_PORT value: {{ .Values.global.cassandra.port | quote }} - name: CASS_KEYSPACE value: {{ tpl .Values.global.cassandra.keyspace . | quote }} - name: CASS_TKEYSPACE value: {{ tpl .Values.global.cassandra.tkeyspace . | quote }} - name: CASS_PASSWORD valueFrom: secretKeyRef: name: {{ include "gateway.cassandra.secretName" . }} key: {{ with .Values.global.cassandra.existingSecret.keyMapping }}{{- default "password" .password }}{{- else -}}"password"{{- end }} - name: CASS_USERNAME valueFrom: secretKeyRef: name: {{ include "gateway.cassandra.secretName" . }} key: {{ with .Values.global.cassandra.existingSecret.keyMapping }}{{- default "username" .username }}{{- else -}}"username"{{- end }} {{- end }} {{- if .Values.apitraffic.image.generalConditions }} - name: ACCEPT_GENERAL_CONDITIONS value: {{ .Values.apitraffic.image.generalConditions.accept | quote }} {{- end }} {{- if .Values.anm.hostname }} - name: EMT_ANM_HOSTS value: {{ .Values.anm.hostname | quote }} {{- else }} - name: EMT_ANM_HOSTS value: "{{ include "gateway.fullname" . }}-anm:8090" {{- end }} {{- if .Values.apitraffic.extraVolumeMounts }} volumeMounts: {{- if .Values.apitraffic.license }} - name: license mountPath: "/opt/Axway/apigateway/conf/licenses/license.lic" subPath: "license.lic" {{- end }} {{- toYaml ( .Values.apitraffic.extraVolumeMounts ) | nindent 12 }} {{- end }} {{- if .Values.apitraffic.extraVolumes }} volumes: {{- if .Values.apitraffic.license }} - name: license configMap: name: {{ .Release.Name }}-apitraffic-license-config {{- end }} {{ toYaml ( .Values.apitraffic.extraVolumes ) | indent 8 }} {{- end }} {{- with .Values.apitraffic.nodeSelector }} nodeSelector: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.apitraffic.affinity }} affinity: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.apitraffic.tolerations }} tolerations: {{- toYaml . | nindent 8 }} {{- end }}