apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    control-plane: tiflash-manager
  name: tiflash-manager
  namespace: tiflash-autoscale
spec:
  replicas: 2
  selector:
    matchLabels:
      app.kubernetes.io/component: tiflash-manager
  strategy:
    rollingUpdate:
      maxSurge: 100%
      maxUnavailable: 0
    type: RollingUpdate
  template:
    metadata:
      labels:
        app.kubernetes.io/component: tiflash-manager
        app.kubernetes.io/name: tiflash-manager
      annotations:
        prometheus.io/path: /metrics
        prometheus.io/port: "8080"
        prometheus.io/scrape: "true"
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: serverless.tidbcloud.com/node
                operator: In
                values:
                - critical-services
          preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 100
            preference:
              matchExpressions:
              - key: serverless.tidbcloud.com/zone
                operator: In
                values:
                - primary
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
            - weight: 100
              podAffinityTerm:
                labelSelector:
                  matchExpressions:
                    - key: app.kubernetes.io/component
                      operator: In
                      values:
                        - tiflash-manager
                topologyKey: kubernetes.io/hostname
      containers:
        - name: manager
          env:
            - name: POD_IP
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: status.podIP
            - name: POD_NAME
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: metadata.name
          command:
            - /tiflash-manager
          args:
            - --http-port=8080
            - --tiflash-port=3930
            # - --tiflash-namespace=tiflash-autoscale
            - --tiflash-config-map=tiflash-tenants
            - --tiflash-main-pool=main
            - --tiflash-main-statefulset=tiflash-main
            - --tiflash-branch-pool=branch
            - --tiflash-branch-statefulset=tiflash-branch
            - --tiflash-default-pool=main
          image: 385595570414.dkr.ecr.us-east-1.amazonaws.com/tidbcloud/tiflash-autoscaler:1d31fc0542e427b98b136ded5d0cd22b312173f0
          imagePullPolicy: IfNotPresent
          livenessProbe:
            failureThreshold: 3
            successThreshold: 1
            httpGet:
              path: /healthz
              port: 8080
              scheme: HTTP
            initialDelaySeconds: 5
          readinessProbe:
            httpGet:
              path: /healthz
              port: 8080
              scheme: HTTP
            initialDelaySeconds: 5
          resources:
            limits:
              cpu: "2"
              memory: 8Gi
            requests:
              cpu: "1"
              memory: 8Gi
      tolerations:
      - effect: NoSchedule
        key: serverless.tidbcloud.com/node
        operator: Equal
        value: critical-services
      serviceAccount: serverless-controller
      serviceAccountName: serverless-controller
