apiVersion: apps/v1
kind: Deployment
metadata:
  name: metrics-server
  namespace: prod-ms
spec:
  progressDeadlineSeconds: 600
  replicas: 2
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: metrics-server
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: metrics-server
    spec:
      containers:
        - env:
            - name: AWS_DEFAULT_REGION
              value: us-west-2
            - name: AWS_REGION
              value: us-west-2
            - name: AWS_DEFAULT_PROFILE
              value: dbaas
            - name: AWS_CONFIG_FILE
              value: /etc/aws/config
            - name: AWS_SDK_LOAD_CONFIG
              value: "1"
          image: 557537366020.dkr.ecr.us-west-2.amazonaws.com/dbaas/prod/dbaas-metrics-server:20250603
          imagePullPolicy: IfNotPresent
          name: metrics-server
          readinessProbe:
            failureThreshold: 10
            httpGet:
              path: /healthz
              port: 8080
              scheme: HTTP
            initialDelaySeconds: 5
            periodSeconds: 5
            successThreshold: 1
            timeoutSeconds: 1
          resources:
            limits:
              cpu: "2"
              memory: 4Gi
            requests:
              cpu: "1"
              memory: 2Gi
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          volumeMounts:
            - mountPath: /etc/metrics
              name: metrics-central-config
              readOnly: true
            - mountPath: /etc/aws
              name: aws-shared-config
              readOnly: true
            - mountPath: /var/run/secrets/eks.amazonaws.com/serviceaccount
              name: aws-iam-token
              readOnly: true
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      serviceAccount: central
      serviceAccountName: central
      terminationGracePeriodSeconds: 30
      volumes:
        - configMap:
            defaultMode: 420
            name: metrics-central-conf
          name: metrics-central-config
        - name: aws-iam-token
          projected:
            defaultMode: 420
            sources:
              - serviceAccountToken:
                  audience: sts.amazonaws.com
                  expirationSeconds: 86400
                  path: token
        - configMap:
            defaultMode: 420
            name: aws-shared-config
          name: aws-shared-config
