apiVersion: apps/v1
kind: Deployment
metadata:
  name: cluster-controller
  labels:
    app: cluster-controller
spec:
  replicas: 1
  selector:
    matchLabels:
      app: cluster-controller
  template:
    metadata:
      labels:
        app: cluster-controller
    spec:
      securityContext:
        fsGroup: 65532
      serviceAccountName: cluster-controller
      containers:
        - name: controller
          image: IMAGE_REGISTRY/tidbcloud/eks-provider:633a616fa45a501dd9a56d395e56a6d5023246ac
          command:
            - /eks-provider
            - --infra-kubeconfig=
            - --root-config=/etc/cluster-controller/main/root-config.yaml
            - --enable-cm-controllers=true
            - --enable-dp-controllers=false
            - --leader-elect=true
          volumeMounts:
            - name: root-config
              mountPath: /etc/cluster-controller/main
            - name: extra-config
              mountPath: /etc/cluster-controller/extra
          env:
            - name: O11Y_AUTH0_CLIENT_ID
              valueFrom:
                secretKeyRef:
                  name: o11y-auth0-client
                  key: Auth0ClientID
            - name: O11Y_AUTH0_CLIENT_SECRET
              valueFrom:
                secretKeyRef:
                  name: o11y-auth0-client
                  key: Auth0ClientSecret
            - name: PROXY_AUTH0_CLIENT_ID
              valueFrom:
                secretKeyRef:
                  name: proxy-auth0-client
                  key: Auth0ClientID
            - name: PROXY_AUTH0_CLIENT_SECRET
              valueFrom:
                secretKeyRef:
                  name: proxy-auth0-client
                  key: Auth0ClientSecret
            - name: ACCOUNT_XREGION_AUTH_KEY
              valueFrom:
                secretKeyRef:
                  key: auth_key
                  name: common-external-secrets
            - name: CLINIC_ACTIVITY_TOKEN
              valueFrom:
                secretKeyRef:
                  key: clinic_activity_token
                  name: common-external-secrets
          livenessProbe:
            failureThreshold: 2
            httpGet:
              path: /healthz
              port: 8081
              scheme: HTTP
            initialDelaySeconds: 3
            periodSeconds: 3
            successThreshold: 1
            timeoutSeconds: 1
          readinessProbe:
            failureThreshold: 2
            httpGet:
              path: /readyz
              port: 8081
              scheme: HTTP
            initialDelaySeconds: 3
            periodSeconds: 3
            successThreshold: 1
            timeoutSeconds: 1
          startupProbe:
            failureThreshold: 20
            httpGet:
              path: /healthz
              port: 8081
              scheme: HTTP
            periodSeconds: 3
            successThreshold: 1
            timeoutSeconds: 1
          resources:
            requests:
              cpu: 100m
              memory: 100Mi
            limits:
              memory: 500Mi
      volumes:
        - name: root-config
          configMap:
            name: cluster-controller-root-config
        - name: extra-config
          configMap:
            name: cluster-controller-extra-config
