apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    sidecar.jaegertracing.io/inject: jaeger
  name: edaservice-api
spec:
  progressDeadlineSeconds: 600
  replicas: 2
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: edaservice-api
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      annotations:
        kubectl.kubernetes.io/default-container: edaservice-api
      labels:
        app: edaservice-api
    spec:
      containers:
        - command:
            - /app/runapp.sh
          envFrom:
            - secretRef:
                name: eda-service-env
          env:
            - name: ENVIRONMENT
              value: dev
            - name: BROKER_URL
              value: redis://platform-dev.v5szfq.ng.0001.usw2.cache.amazonaws.com:6379/1
            - name: JAEGER_SERVICE_NAME
              value: edaservice-api.nightly-ms
            - name: JAEGER_PROPAGATION
              value: jaeger,b3,w3c
            - name: AIPOWER_ADDR
              value: http://aipower-api-service.nightly-ms.svc.cluster.local:10010
            - name: ACCOUNT_ADDR
              value: http://account-central-http.nightly-ms.svc.cluster.local:11000
            - name: API_ADDR
              value: https://us-west-2.nightly.shared.aws.tidbcloud.com
            - name: CROSS_REGION_ENV
              value: dev
            - name: SQS_REGION_ENV
              value: dev
          image: edaservice:latest
          imagePullPolicy: IfNotPresent
          name: edaservice-api
          readinessProbe:
            failureThreshold: 10
            httpGet:
              path: /healthz
              port: 11000
              scheme: HTTP
            initialDelaySeconds: 5
            periodSeconds: 5
            successThreshold: 1
            timeoutSeconds: 1
          resources:
            limits:
              cpu: "2"
              memory: 4Gi
            requests:
              cpu: "2"
              memory: 4Gi
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          volumeMounts:
            - mountPath: /etc/dbaas
              name: eda-service-config
              readOnly: true
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      serviceAccount: central
      serviceAccountName: central
      terminationGracePeriodSeconds: 30
      volumes:
        - secret:
            defaultMode: 420
            secretName: eda-service-config
          name: eda-service-config
---
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    sidecar.jaegertracing.io/inject: jaeger
  name: edaservice-worker
spec:
  progressDeadlineSeconds: 600
  replicas: 2
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: edaservice-worker
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      annotations:
        kubectl.kubernetes.io/default-container: edaservice-worker
      labels:
        app: edaservice-worker
    spec:
      containers:
        - command:
            - /app/runworker.sh
          envFrom:
            - secretRef:
                name: eda-service-env
          env:
            - name: ENVIRONMENT
              value: dev
            - name: BROKER_URL
              value: redis://platform-dev.v5szfq.ng.0001.usw2.cache.amazonaws.com:6379/1
            - name: JAEGER_SERVICE_NAME
              value: edaservice-worker.nightly-ms
            - name: JAEGER_PROPAGATION
              value: jaeger,b3,w3c
            - name: AIPOWER_ADDR
              value: http://aipower-api-service.nightly-ms.svc.cluster.local:10010
            - name: ACCOUNT_ADDR
              value: http://account-central-http.nightly-ms.svc.cluster.local:11000
            - name: API_ADDR
              value: https://us-west-2.nightly.shared.aws.tidbcloud.com
            - name: CROSS_REGION_ENV
              value: dev
            - name: SQS_REGION_ENV
              value: dev
          image: edaservice:latest
          imagePullPolicy: IfNotPresent
          name: edaservice-worker
          readinessProbe:
            failureThreshold: 10
            httpGet:
              path: /healthz
              port: 11000
              scheme: HTTP
            initialDelaySeconds: 5
            periodSeconds: 5
            successThreshold: 1
            timeoutSeconds: 1
          resources:
            limits:
              cpu: "2"
              memory: 4Gi
            requests:
              cpu: "2"
              memory: 4Gi
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          volumeMounts:
            - mountPath: /etc/dbaas
              name: eda-service-config
              readOnly: true
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      serviceAccount: central
      serviceAccountName: central
      terminationGracePeriodSeconds: 30
      volumes:
        - secret:
            defaultMode: 420
            secretName: eda-service-config
          name: eda-service-config
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: edaservice-worker-monitor
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: edaservice-worker-monitor
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      annotations:
        kubectl.kubernetes.io/default-container: edaservice-worker-monitor
      labels:
        app: edaservice-worker-monitor
    spec:
      containers:
        - env:
            - name: CE_BROKER_URL
              value: redis://platform-dev.v5szfq.ng.0001.usw2.cache.amazonaws.com:6379/1
          image: edaservice:worker-monitor
          imagePullPolicy: Always
          name: edaservice-worker-monitor
          resources:
            limits:
              cpu: "2"
              memory: 4Gi
            requests:
              cpu: "2"
              memory: 4Gi
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      serviceAccount: central
      serviceAccountName: central
      terminationGracePeriodSeconds: 30
