apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: {{ .Release.Name }}
  name: {{ .Release.Name }}
  namespace: {{ .Release.Namespace }}
spec:
  progressDeadlineSeconds: 600
  replicas: {{ .Values.replicaCount }}
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: {{ .Release.Name }}
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: {{ .Release.Name }}
    spec:
      containers:
        - env:
            - name: REGION
              value: {{ .Values.env.region }}
            - name: AWS_REGION
              value: {{ .Values.env.awsRegion }}
            - name: AUTH0_CLIENT_ID
              valueFrom:
                secretKeyRef:
                  key: AUTH0_CLIENT_ID
                  name: auth0-access
            - name: AUTH0_CLIENT_SECRET
              valueFrom:
                secretKeyRef:
                  key: AUTH0_CLIENT_SECRET
                  name: auth0-access
            - name: JWT_SECRET
              valueFrom:
                secretKeyRef:
                  key: JWT_SECRET
                  name: auth-server-jwt
            - name: CLOUD_URL_ALICLOUD
              value: https://www.ds.ap-southeast-1.alicloud.observability.tidbcloud.com/client
            - name: CLOUD_URL_GCP
              value: https://www.ds.asia-northeast1.gcp.observability.tidbcloud.com/client
            - name: ENVIRONMENT
              value: {{ .Values.env.environment }}
          image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
          imagePullPolicy: {{ .Values.image.pullPolicy }}
          name: auth-server
          ports:
            - containerPort: {{ .Values.service.targetPort }}
              protocol: TCP
          resources:
            limits:
              cpu: {{ .Values.resources.limits.cpu }}
              memory: {{ .Values.resources.limits.memory }}
            requests:
              cpu: {{ .Values.resources.requests.cpu }}
              memory: {{ .Values.resources.requests.memory }}
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          volumeMounts:
            - mountPath: /tmp
              name: tmp-volume
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      serviceAccount: auth-server-serviceaccount
      serviceAccountName: auth-server-serviceaccount
      terminationGracePeriodSeconds: 30
      volumes:
        - emptyDir: {}
          name: tmp-volume
