apiVersion: apps/v1
kind: Deployment
metadata:
  name: dp-gke-infra-provider
  labels:
    app: dp-gke-provider
spec:
  replicas: 1
  selector:
    matchLabels:
      app: dp-gke-provider
  template:
    metadata:
      labels:
        app: dp-gke-provider
    spec:
      serviceAccountName: gke-provider
      nodeSelector:
        iam.gke.io/gke-metadata-server-enabled: "true"
      tolerations:
        - effect: NoSchedule
          key: iam.gke.io/gke-metadata-server-enabled
          operator: Exists
      containers:
        - name: gke-provider
          image: gcr.io/pingcap-gardener/dbaas/dev/eks-provdider:62e06c807a9e5bd6395263163425f80d85f9fb25
          command:
            - /eks-provider
            - --namespace=infra
            - --root-config=/etc/infra-api/config.yaml
            - --enable-cm-controllers=false
            - --enable-dp-controllers=true
          volumeMounts:
            - name: kubeconfig
              mountPath: /.kube
            - name: root-config
              mountPath: /etc/infra-api
          env:
            - name: KUBECONFIG
              value: /.kube/config
            - 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
          resources:
            requests:
              cpu: 100m
              memory: 100Mi
            limits:
              cpu: 500m
              memory: 500Mi
      volumes:
        - name: kubeconfig
          secret:
            secretName: api-server-kubeconfig
        - name: root-config
          configMap:
            name: gke-provider-root-config

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: dp-gke-infra-provider-br
  labels:
    app: dp-gke-provider-br
spec:
  replicas: 1
  selector:
    matchLabels:
      app: dp-gke-provider-br
  template:
    metadata:
      labels:
        app: dp-gke-provider-br
    spec:
      serviceAccountName: gke-provider
      nodeSelector:
        iam.gke.io/gke-metadata-server-enabled: "true"
      tolerations:
        - effect: NoSchedule
          key: iam.gke.io/gke-metadata-server-enabled
          operator: Exists
      containers:
        - name: gke-provider
          image: gcr.io/pingcap-gardener/tidbcloud/gke-provider:b051f865ea56135699938a2c6892d293a841a86c
          command:
            - /eks-provider
            - run-br-controller
            - --namespace=infra
            - --root-config=/etc/infra-api/config.yaml
          volumeMounts:
            - name: kubeconfig
              mountPath: /.kube
            - name: root-config
              mountPath: /etc/infra-api
          env:
            - name: KUBECONFIG
              value: /.kube/config
            - 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
          resources:
            requests:
              cpu: 100m
              memory: 100Mi
            limits:
              cpu: 500m
              memory: 500Mi
      volumes:
        - name: kubeconfig
          secret:
            secretName: api-server-kubeconfig
        - name: root-config
          configMap:
            name: gke-provider-root-config

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: dp-gke-infra-provider-cdc
  labels:
    app: dp-gke-provider-cdc
spec:
  replicas: 1
  selector:
    matchLabels:
      app: dp-gke-provider-cdc
  template:
    metadata:
      labels:
        app: dp-gke-provider-cdc
    spec:
      serviceAccountName: gke-provider
      nodeSelector:
        iam.gke.io/gke-metadata-server-enabled: "true"
      tolerations:
        - effect: NoSchedule
          key: iam.gke.io/gke-metadata-server-enabled
          operator: Exists
      containers:
        - name: gke-provider
          image: gcr.io/pingcap-gardener/tidbcloud/gke-provider:b051f865ea56135699938a2c6892d293a841a86c
          command:
            - /eks-provider
            - run-cdc-controller
            - --namespace=infra
            - --root-config=/etc/infra-api/config.yaml
          volumeMounts:
            - name: kubeconfig
              mountPath: /.kube
            - name: root-config
              mountPath: /etc/infra-api
          env:
            - name: KUBECONFIG
              value: /.kube/config
            - 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
          resources:
            requests:
              cpu: 100m
              memory: 100Mi
            limits:
              cpu: 500m
              memory: 500Mi
      volumes:
        - name: kubeconfig
          secret:
            secretName: api-server-kubeconfig
        - name: root-config
          configMap:
            name: gke-provider-root-config
