---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: rms-apiserver
  namespace: test-infra
spec:
  selector:
    matchLabels:
      app: rms-apiserver
  replicas: 2
  template:
    metadata:
      annotations:
        app.kubernetes.io/managed-by: test-infra
      labels:
        app: rms-apiserver
    spec:
      serviceAccountName: rms-apiserver-sa
      tolerations:
        - effect: NoSchedule
          key: dedicated
          operator: Equal
          value: test-infra
      topologySpreadConstraints:
        - maxSkew: 1
          topologyKey: kubernetes.io/hostname
          whenUnsatisfiable: DoNotSchedule
          labelSelector:
            matchLabels:
              app: rms-apiserver
      containers:
        - name: tc-validator
          image: "hub.pingcap.net/qa/tc-validator:latest"
          imagePullPolicy: Always
          ports:
            - containerPort: 8080
          resources:
            requests:
              cpu: 100m
              memory: 200Mi
        - name: apiserver
          args:
            - "--config=/etc/config/config.yaml"
          image: "hub.pingcap.net/qa/rms:latest"
          imagePullPolicy: Always
          ports:
            - containerPort: 80
          resources:
            requests:
              cpu: 500m
              memory: 2000Mi
            limits:
              cpu: 500m
              memory: 2000Mi
          env:
            - name: TZ
              value: Asia/Shanghai
            - name: MINIO_ID
              valueFrom:
                secretKeyRef:
                  name: minio
                  key: ID
            - name: MINIO_SECRET
              valueFrom:
                secretKeyRef:
                  name: minio
                  key: SECRET
            - name: TIDBCLOUD_AUTH0_CLIENT_ID
              valueFrom:
                secretKeyRef:
                  name: tidbcloud-secret
                  key: TIDBCLOUD_AUTH0_CLIENT_ID
            - name: TIDBCLOUD_AUTH0_CLIENT_SECRET
              valueFrom:
                secretKeyRef:
                  name: tidbcloud-secret
                  key: TIDBCLOUD_AUTH0_CLIENT_SECRET
            - name: TIDBCLOUD_AUTH0_DOMAIN
              valueFrom:
                secretKeyRef:
                  name: tidbcloud-secret
                  key: TIDBCLOUD_AUTH0_DOMAIN
            - name: TIDBCLOUD_CLOUD_PROVIDER
              valueFrom:
                secretKeyRef:
                  name: tidbcloud-secret
                  key: TIDBCLOUD_CLOUD_PROVIDER
            - name: TIDBCLOUD_REGION
              valueFrom:
                secretKeyRef:
                  name: tidbcloud-secret
                  key: TIDBCLOUD_REGION
            - name: TIDBCLOUD_THANOS_URL
              valueFrom:
                secretKeyRef:
                  name: tidbcloud-secret
                  key: TIDBCLOUD_THANOS_URL
            - name: TIDBCLOUD_URL
              valueFrom:
                secretKeyRef:
                  name: tidbcloud-secret
                  key: TIDBCLOUD_URL
          volumeMounts:
            - name: config-volume
              mountPath: /etc/config
      volumes:
        - name: config-volume
          configMap:
            name: rms-apiserver-config
      terminationGracePeriodSeconds: 10
---
apiVersion: v1
kind: Service
metadata:
  name: rms-apiserver-service
  namespace: test-infra
spec:
  type: NodePort
  selector:
    app: rms-apiserver
  ports:
    - port: 80
      targetPort: 80
      nodePort: 30007
