apiVersion: apps/v1
kind: Deployment
metadata:
  name: nextgen-global-service-deploy
  annotations:
    sidecar.jaegertracing.io/inject: jaeger
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nextgen-global-service
  template:
    metadata:
      labels:
        app: nextgen-global-service
    spec:
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            - labelSelector:
                matchLabels:
                  app: nextgen-global-service
              topologyKey: kubernetes.io/hostname
      topologySpreadConstraints:
        - maxSkew: 1
          topologyKey: topology.kubernetes.io/zone
          whenUnsatisfiable: ScheduleAnyway
          labelSelector:
            matchLabels:
              app: nextgen-global-service
      containers:
        - name: nextgen-global-service
          command:
            - /command/nextgen-global-service/nextgen-global-service
          args:
            - serve
            - --config=/etc/nextgen-global-service/config.yaml
          image: 385595570414.dkr.ecr.us-west-2.amazonaws.com/tidbcloud/tidb-management-service:latest
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 8080
              protocol: TCP
          env:
            - name: TIINF_POD_NAME
              value: nextgen-global-service-base
            - name: POD_NAME
              valueFrom:
                fieldRef:
                  fieldPath: metadata.name
            - name: POD_IP
              valueFrom:
                fieldRef:
                  fieldPath: status.podIP
          readinessProbe:
            failureThreshold: 10
            initialDelaySeconds: 5
            periodSeconds: 5
            successThreshold: 1
            tcpSocket:
              port: 10000
            timeoutSeconds: 1
          resources:
            limits:
              cpu: "2"
              memory: 1Gi
          volumeMounts:
            - mountPath: /etc/nextgen-global-service
              name: config
              readOnly: true
        - args:
            - --agent.tags=cluster=undefined,container.name=nextgen-global-service,deployment.name=nextgen-global-service,host.ip=${HOST_IP:},pod.name=${POD_NAME:},pod.namespace=tidb-management-service
            - --reporter.grpc.host-port=dns:///jaeger-collector-headless.jaeger.svc:14250
          env:
            - name: POD_NAME
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: metadata.name
            - name: HOST_IP
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: status.hostIP
          image: gcr.io/pingcap-public/pingcap/jaegertracing/jaeger-agent:1.22
          imagePullPolicy: IfNotPresent
          name: jaeger-agent
          ports:
            - containerPort: 5775
              name: zk-compact-trft
              protocol: UDP
            - containerPort: 5778
              name: config-rest
              protocol: TCP
            - containerPort: 6831
              name: jg-compact-trft
              protocol: UDP
            - containerPort: 6832
              name: jg-binary-trft
              protocol: UDP
            - containerPort: 14271
              name: admin-http
              protocol: TCP
      volumes:
        - name: config
          configMap:
            name: nextgen-global-service
      serviceAccountName: tidb-management-service
