# run as job
# leave this here for changing back to Job in future
apiVersion: batch/v1
kind: Job
metadata:
  name: prerelease-cluster-controller-job
spec:
  parallelism: 1
  backoffLimit: 0

---
# run as Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
  name: prerelease-cluster-controller-job
spec:
  replicas: 0
  selector:
    matchLabels:
      app: readonly-cluster-controller

  template:
    metadata:
      labels:
        app: readonly-cluster-controller
    spec:
      containers:
      - name: controller
        image: 385595570414.dkr.ecr.us-west-2.amazonaws.com/tidbcloud/eks-provider:this_is_image_tag
        imagePullPolicy: Always
        command:
          - /eks-provider
          - --infra-kubeconfig=
          - --root-config=/etc/cluster-controller/main/root-config.yaml
          - --enabled-controllers=cluster
          - --dryrun
        volumeMounts:
          - name: root-config
            mountPath: /etc/cluster-controller/main
          - name: extra-config
            mountPath: /etc/cluster-controller/extra
        env:
        - 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
        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: 2000Mi
        ports:
          - containerPort: 8080
            name: metrics
            protocol: TCP
      # restartPolicy: Never # comment out for run as Deployment
      serviceAccountName: readonly-cluster-controller
      volumes:
        - name: root-config
          configMap:
            name: cluster-controller-root-config
        - name: extra-config
          configMap:
            name: cluster-controller-extra-config
