apiVersion: apps/v1 kind: Deployment metadata: name: {{ include "hapi-fhir-jpaserver.fullname" . }} labels: {{- include "hapi-fhir-jpaserver.labels" . | nindent 4 }} {{- with .Values.deploymentAnnotations }} annotations: {{- toYaml . | nindent 8 }} {{- end }} spec: replicas: {{ .Values.replicaCount }} selector: matchLabels: {{- include "hapi-fhir-jpaserver.selectorLabels" . | nindent 6 }} template: metadata: {{- with .Values.podAnnotations }} annotations: {{- toYaml . | nindent 8 }} {{- end }} labels: {{- include "hapi-fhir-jpaserver.selectorLabels" . | nindent 8 }} spec: {{- with .Values.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} {{- end }} securityContext: {{- toYaml .Values.podSecurityContext | nindent 8 }} initContainers: - name: wait-for-db-to-be-ready image: docker.io/bitnami/postgresql:15.1.0-debian-11-r0@sha256:27915588d5203a10a1c23624d9c81644437f33b7c224e25f79bcd9bd09bbb8e2 imagePullPolicy: IfNotPresent {{- with .Values.restrictedContainerSecurityContext }} securityContext: {{- toYaml . | nindent 12 }} {{- end }} env: - name: PGHOST value: "{{ include "hapi-fhir-jpaserver.database.host" . }}" - name: PGPORT value: "{{ include "hapi-fhir-jpaserver.database.port" . }}" - name: PGUSER value: "{{ include "hapi-fhir-jpaserver.database.user" . }}" command: ["/bin/sh", "-c"] args: - | until pg_isready; do echo "Waiting for DB ${PGUSER}@${PGHOST}:${PGPORT} to be up"; sleep 15; done; containers: - name: {{ .Chart.Name }} securityContext: {{- toYaml .Values.securityContext | nindent 12 }} image: {{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag }} imagePullPolicy: {{ .Values.image.pullPolicy }} ports: - name: http containerPort: 8080 protocol: TCP - name: http-metrics containerPort: 8081 protocol: TCP startupProbe: httpGet: path: /readyz port: http {{- with .Values.startupProbe }} initialDelaySeconds: {{ .initialDelaySeconds }} periodSeconds: {{ .periodSeconds }} timeoutSeconds: {{ .timeoutSeconds }} successThreshold: {{ .successThreshold }} failureThreshold: {{ .failureThreshold }} {{- end }} readinessProbe: httpGet: path: /readyz port: http {{- with .Values.readinessProbe }} initialDelaySeconds: {{ .initialDelaySeconds }} periodSeconds: {{ .periodSeconds }} timeoutSeconds: {{ .timeoutSeconds }} successThreshold: {{ .successThreshold }} failureThreshold: {{ .failureThreshold }} {{- end }} livenessProbe: httpGet: path: /livez port: http {{- with .Values.livenessProbe }} initialDelaySeconds: {{ .initialDelaySeconds }} periodSeconds: {{ .periodSeconds }} timeoutSeconds: {{ .timeoutSeconds }} successThreshold: {{ .successThreshold }} failureThreshold: {{ .failureThreshold }} {{- end }} resources: {{- toYaml .Values.resources | nindent 12 }} env: - name: SPRING_DATASOURCE_URL value: {{ include "hapi-fhir-jpaserver.database.jdbcUrl" $ }} - name: SPRING_DATASOURCE_USERNAME value: {{ include "hapi-fhir-jpaserver.database.user" $ }} - name: SPRING_DATASOURCE_PASSWORD valueFrom: secretKeyRef: name: {{ include "hapi-fhir-jpaserver.postgresql.secretName" . }} key: {{ include "hapi-fhir-jpaserver.postgresql.secretKey" . }} - name: SPRING_DATASOURCE_DRIVERCLASSNAME value: org.postgresql.Driver - name: spring.jpa.properties.hibernate.dialect value: ca.uhn.fhir.jpa.model.dialect.HapiFhirPostgres94Dialect - name: HAPI_FHIR_USE_APACHE_ADDRESS_STRATEGY value: "true" - name: MANAGEMENT_ENDPOINT_HEALTH_PROBES_ADD_ADDITIONAL_PATHS value: "true" - name: MANAGEMENT_SERVER_PORT value: "8081" {{- if .Values.extraEnv }} {{ toYaml .Values.extraEnv | nindent 12 }} {{- end }} volumeMounts: - mountPath: /tmp name: tmp-volume - mountPath: /app/target name: lucenefiles-volume {{- with .Values.nodeSelector }} nodeSelector: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.affinity }} affinity: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.tolerations }} tolerations: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.topologySpreadConstraints }} topologySpreadConstraints: {{- toYaml . | nindent 8 }} {{- end }} volumes: - name: tmp-volume emptyDir: {} - name: lucenefiles-volume emptyDir: {}