apiVersion: apps/v1
kind: Deployment
metadata:
  name: csi-ehr-config
  namespace: moh-prod
spec:
  selector:
    matchLabels:
      app: csi-ehr-config
      tier: backend
      track: stable
  template:
    metadata:
      labels:
        app: csi-ehr-config
        tier: backend
        track: stable
    spec:
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
              matchExpressions:
               - key: app
                 operator: In
                 values:
                 - csi-ehr-config
            topologyKey: "kubernetes.io/hostname"
      containers:
        - env:
            - name: active_profile
              valueFrom:
                configMapKeyRef:
                  key: activeProfile
                  name: service-configs
            - name: SPRING_DATASOURCE_URL
              valueFrom:
                configMapKeyRef:
                  key: database-url
                  name: ehr-database-configs
            - name: SPRING_DATASOURCE_USERNAME
              valueFrom:
                secretKeyRef:
                  key: db-con-username
                  name: ehr-database-secret
            - name: SPRING_SECOND-DATASOURCE_URL
              valueFrom:
                configMapKeyRef:
                  key: database-url-second
                  name: ehr-database-configs
            - name: SPRING_SECOND-DATASOURCE_USERNAME
              valueFrom:
                secretKeyRef:
                  key: db-con-username-second
                  name: ehr-database-secret                 
            - name: SPRING_JPA_HIBERNATE_DIALECT
              valueFrom:
                configMapKeyRef:
                  key: db-dialect
                  name: service-configs
            - name: SPRING_JPA_DATABASE-PLATFORM
              valueFrom:
                configMapKeyRef:
                  key: db-dialect
                  name: service-configs
            - name: SPRING_DATASOURCE_PASSWORD
              valueFrom:
                secretKeyRef:
                  key: db-con-password
                  name: ehr-database-secret
            - name: SPRING_SECOND-DATASOURCE_PASSWORD
              valueFrom:
                secretKeyRef:
                  key: db-con-password-second
                  name: ehr-database-secret
            - name: configserver
              valueFrom:
                configMapKeyRef:
                  key: config_server
                  name: service-configs
            - name: hostname
              value: csi-java-ehr-config
            - name: JVM_OPTS              
              value: "-Xms256m -Xmx1024m"
            - name: JAVA_OPTS              
              value: "-Xms256m -Xmx1024m"
          envFrom:
            - configMapRef:
                name: service-configs
            - secretRef:
                name: service-configs-secret
          image: harbor.moh.gov.sa/vidamoh/csi-ehr-config-java-sev:4.1.7.0
          imagePullPolicy: IfNotPresent
          livenessProbe:
            httpGet:
              path: /actuator/health
              port: http
            initialDelaySeconds: 1200
            timeoutSeconds: 30
            failureThreshold: 3
            periodSeconds: 40
          readinessProbe:
            httpGet:
              path: /actuator/health
              port: http
            initialDelaySeconds: 20
            failureThreshold: 3
            timeoutSeconds: 10
          name: csi-ehr-config
          ports:
            - containerPort: 80
              name: http
          resources:
            limits:
              memory: 2Gi
            requests:
              cpu: 250m
              memory: 512Mi
      imagePullSecrets:
        - name: regcred