encryptionsalt: v1:gF5orucaNGg=:v1:2NwbVvL+mer7DIpA:YtV3VLVMY2ofW3s6bcXsUqpDwFxA3g==
config:
  aws:region: us-west-2
  eks-freetier:disable-tiflash-wn-infra: true
  eks-freetier:regional-redis-pub-white-ips:
    - 47.87.10.158/32
  eks-freetier:admin-roles:
    - cicd-role
    - bastion-5fddc83
    - argocd-oidc-role
    - dbaas-prod-devops
  eks-freetier:auth0Audience: prod-proxy-service
  eks-freetier:auth0Domain: tidb.auth0.com
  eks-freetier:cidrBlock: 10.0.0.0/16
  eks-freetier:dbaas-proxy-image: 380838443567.dkr.ecr.us-west-2.amazonaws.com/dbaas/prod/cluster-proxy:v1.2.60
  eks-freetier:base-k8s-outbounds-cidrs:
    - "54.188.27.23/32"
    - "44.231.162.131/32"
    - "100.20.198.224/32"
  eks-freetier:env: prod
  eks-freetier:servicetype: tidbzero
  eks-freetier:regional-infra: false
  eks-freetier:regionalRedisServiceName: com.amazonaws.vpce.us-west-2.vpce-svc-05dafb36d99f7072b
  eks-freetier:k8s-version: "1.34"
  eks-freetier:addon-compatible-k8s-version: "1.32"
  eks-freetier:ca-image: "380838443567.dkr.ecr.us-east-1.amazonaws.com/dbaas/nightly/cluster-autoscaler"
  eks-freetier:ca-version: "0241dd5d0aa8fad250d24c8b822b206e406b289b"
  eks-freetier:eks-releases:
    32v251029:
      ami:
        amd64: ami-0ee0f4c051a526480 # amazon-eks-node-1.32-v20251029
        arm64: ami-016caa0d31ab6bc68 # amazon-eks-arm64-node-1.32-v20251029
      releaseVersion: 1.32.9-20251029
    # Control plane is on 1.34, which no longer accepts the AL2 AMI types the
    # 32v251029 release carries (CreateNodegroup rejects AL2_ARM_64 on >=1.33).
    # Existing nodegroups predate the upgrade and keep running; any NEW nodegroup
    # on this stack must use this AL2023 release instead.
    34v260714:
      ami:
        amd64: ami-096f9d1f04b0fca90 # amazon-eks-node-al2023-x86_64-standard-1.34-v20260714 (us-west-2)
        arm64: ami-06088fd6327fe4429 # amazon-eks-node-al2023-arm64-standard-1.34-v20260714 (us-west-2)
      releaseVersion: 1.34.9-20260714
  eks-freetier:ca-releaseTag: "32v251029"
  eks-freetier:ca-costOptimization: true
  eks-freetier:public-access-cidrs:
    # Bastion
    - 54.185.150.209/32
    # Jenkins
    - 104.196.246.224/32
    - 35.233.250.206/32
    # Argo CD
    - 34.69.36.199/32
    # Base us-west-2
    - 54.188.27.23/32
    - 44.231.162.131/32
    - 100.20.198.224/32
    # o11y
    - 52.72.84.40/32
    # Jump Service
    - 35.82.108.84/32
  eks-freetier:public-hosted-zone-domain: prod.aws.tidbcloud.com
  eks-freetier:public-hosted-zone-id: Z08648051F27XQI0DF51K
  eks-freetier:region: us-west-2
  eks-freetier:primary-zone: us-west-2c
  eks-freetier:standby-zone: us-west-2b
  eks-freetier:witness-zone: us-west-2a
  eks-freetier:suffix: f03
  eks-freetier:index: "03"
  eks-freetier:tidb-operator-tag: 74508dc5061419e57fb25ecc2f412d7d1df67cea
  eks-freetier:tidb-operator-image: 380838443567.dkr.ecr.us-west-2.amazonaws.com/tidbcloud/serverless/tidb-operator
  eks-freetier:downThreshold: 0.7
  eks-freetier:pca-arn: arn:aws:acm-pca:us-west-2:380838443567:certificate-authority/ed5106d3-0890-4af9-bd60-b6df4f6299ca
  eks-freetier:pca-region: us-west-2
  eks-freetier:serverless-cse-master-key-id: "alias/prod-us-west-2-f03-key"
  eks-freetier:serverless-cse-master-key-cipher-text: "AQIDAHiEo0l5rDq7vFbKXauVt7cr8SL1stobhvD89ZbRjov1LwH8PKOV4OLhMIOqlAAGOd3wAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMz5DG83KPTaHaKOoHAgEQgDsSBzgoDT+R7XCKY/f+LdhRM3tqAa6auPpmxLL1ElB4aapsrmqiM7rbCbwaFwha8xr4IViO1yxAelBq1g=="
  eks-freetier:serverless-cse-master-key-vendor: "aws"
  eks-freetier:serverless-tikv-config:
    walSyncDir: "/var/lib/tikv-raft-wal"
    enableSafePointV2: true
    disableSafePointFallBackV1: true
    pushMetricsAddr: "http://serverless-metering.serverless-metering:9091"
    pushMetricsInterval: 30
    buildColumnar: true
    buildFtsIndex: true
    storageVolumes:
      - storageClassName: "io2-500"
        storageSize: "10Gi"
        name: "raft-wal"
      - storageClassName: "ebs-sc"
        storageSize: "30Gi"
        name: "raft-db"
    blacklist:
      enableRollingUpdate: false
      keyspaceNames: []
      regionIDs: []
    failoverReplicasPerFailureStore: 2
    canaryUpgrade:
      enabled: true
      clusterReadySeconds: 900
      stageReadySeconds: 300
      stagePercents: [ 10, 67, 100 ]
    autoScaling:
      enabled: true
      paused: false
      maxReplicas: 9
      cpu:
        maxThreshold: 0.7
        minThreshold: 0.3
        scaleInIntervalSeconds: 900
        scaleOutIntervalSeconds: 600
      storage:
        maxThreshold: 0.8
        minThreshold: 0.6
        scaleInIntervalSeconds: 500
        scaleOutIntervalSeconds: 1
    scaleInProtection:
      enabled: true
      storageThreshold: 0.8
      minReplicas: 1
    storeLimit:
      enabled: true
      unbalanceThreshold: 0.7
      normalRate: 64
      scalingInRate: 128
      scalingOutRate: 128
    hotCluster:
      enabled: true
      scaleToZero: true
      initialReplicas: 2
      cpuThreshold: 0.5
      hotDurationSeconds: 120
      hotRegionSeconds: 180
      coldRegionSeconds: 480
      autoScaling:
        cpu:
          maxThreshold: 0.6
          minThreshold: 0.2
          scaleInIntervalSeconds: 600
          scaleOutIntervalSeconds: 180
    workerReleaseTag: "32v251029"
    worker:
      replicas:
        min: 2
        max: 100
      resources:
        limits:
          cpu: 4000m
          memory: 7.5Gi
        requests:
          cpu: 1500m
          memory: 7Gi
    copWorker:
      replicas:
        min: 2
        max: 100
      resources:
        limits:
          cpu: 4000m
          memory: 31Gi
        requests:
          cpu: 3500m
          memory: 26Gi
          storage: 500Gi
    tikvApi:
      releaseTag: "32v251029"
      sharedPoolEnabled: true
    schemaManager:
      replicas: 1
    replicationWorker:
      releaseTag: "32v251029"
      replicas: 0
    runtimeConfig:
      - name: memoryLimit
        value: "Math.max(Math.round(${memory} * 0.8), ${memory} - 8) + 'Gi'"
      - name: storageSize
        value: "(${instanceStorage} ? ${instanceStorage} - 150 : 0) + 'Gi'"
  eks-freetier:serverless-cse-archive-config:
    suspend: false
  eks-freetier:serverless-cse-dfsgc-config:
    suspend: false
  eks-freetier:serverless-cop-worker-cache-size: 16GB
  eks-freetier:serverless-cop-worker-stateful-cache-size: 8GB
  eks-freetier:serverless-cop-worker-block-cache-size: 8GB
  eks-freetier:serverless-namespace: tidb-serverless

  eks-freetier:etcd:
    # admin etcd gets the smallest tier: m*.large is 1930m / ~6.9Gi allocatable and DaemonSets take
    # ~400m / 512Mi. The 6Gi memory request is what holds the node -- it leaves ~400Mi, so no second
    # etcd replica and nothing that declares memory can land beside it. CPU is deliberately left at
    # 1, not sized to fill the node: ~530m stays free so a DaemonSet added later cannot make etcd
    # unschedulable. Actual usage is ~10m CPU and under 1Gi, so this is a reservation, not a need --
    # the manifest default (1 CPU / 8Gi) would not fit a large node at all. CPU limit stays at the
    # whole node so compaction and defrag are not throttled; memory request == limit.
    # releaseTag moves with the tier: guaranteed-large only exists on 34v260714.
    releaseTag: "34v260714"
    criticalTier: "large"
    resources:
      requests: { cpu: "1", memory: "6Gi" }
      limits: { cpu: "2", memory: "6Gi" }
  eks-freetier:pd-cluster:
    # release-0.62 gates the PD [controller.request-unit] block on this flag (default off);
    # the deployed release-0.61 config always emits it. Keep it true so the rendered PD config
    # matches the live cluster (reorder-only) and tidb-operator does not roll PD.
    enablePdServerRequestUnit: true
    # PD moves onto guaranteed-xl, which only exists on 34v260714, so its releaseTag -- a
    # serverless.tidbcloud.com/kubelet-version nodeSelector -- has to move with the tier or the two
    # selectors ANDed match no node. At 3 CPU / 6Gi requests one PD fills an xlarge: 3920m
    # allocatable minus ~400m of DaemonSets leaves no room for a second 3-CPU pod.
    apiServerReleaseTag: "34v260714"
    pdCriticalTier: "xl"
    # pd-tso already moved (applied 2026-07-22); sche and resource-manager are not migrated and
    # keep 32v251029, so they stay on the existing nodes.
    tsoServerReleaseTag: "34v260714"
    tsoServerCriticalTier: "xl"
    scheServerReleaseTag: "32v251029"
    resourceManagerServerReleaseTag: "32v251029"
    pdBaseImage: 380838443567.dkr.ecr.us-west-2.amazonaws.com/tidbcloud/serverless/pd
    pdMode: api
    pdServerImageTag: 20260720-775101be3c4f06b2557f1441685ac1baddc7aae8
    pdServerStorageSize: "50Gi"
    enableResourceManagerProxy: true
    tsoServerImageTag: 20260720-775101be3c4f06b2557f1441685ac1baddc7aae8
    tsoServerReplicas: 2
    tsoServerConfigMap: pd-tso-server-config
    tsoServerLease: 10
    tsoServerMinReadySeconds: 30
    tsoServerResourcesRequirements:
      limits:
        cpu: "3"
        memory: 6Gi
      requests:
        cpu: "3"
        memory: 6Gi
    scheServerImageTag: 20260720-775101be3c4f06b2557f1441685ac1baddc7aae8
    scheServerReplicas: 2
    resourceManagerServerImageTag: 20260720-775101be3c4f06b2557f1441685ac1baddc7aae8
    resourceManagerServerReplicas: 2
    # Flatten the PD leader priorities for the roll. The upgrade order is
    # witness -> standby -> primary (coordinator, pd.canaryUpgrade.clusterPriority in
    # cluster.yaml), and the leader currently sits on primary -- i.e. on the member that
    # rolls last, which is already the optimal position: one transfer, at primary's restart.
    # What would add a second one is the default 3/2/1: once primary comes back the PD
    # leader-priority check campaigns it back. Equal priorities remove that return trip.
    # Applied through the PD API (syncPDLeaderPriority -> SetPDLeaderPriority), not the pod
    # template, so this field alone never restarts anything.
    # replicas must be stated too: the program only injects the [1,1,1] default when the
    # whole multiAZ key is absent.
    # Restore [3, 2, 1] afterwards to bring the leader back to primary at a chosen time.
    multiAZ:
      replicas: [1, 1, 1]
      leaderPriorities: [3, 3, 3]
    pdResourcesRequirements:
      primary: { limits: { cpu: "3", memory: 6Gi }, requests: { cpu: "3", memory: 6Gi } }
      standby: { limits: { cpu: "3", memory: 6Gi }, requests: { cpu: "3", memory: 6Gi } }
      witness: { limits: { cpu: "3", memory: 6Gi }, requests: { cpu: "3", memory: 6Gi } }

  eks-freetier:serverless-tikv-base-image: 380838443567.dkr.ecr.us-west-2.amazonaws.com/tidbcloud/serverless/tikv
  # release-0.62 drops the empty tikv `wal-secondary-dir = ""` line; release-0.61 always emitted it.
  # Keep emitting it so the rendered tikv config matches the live cluster (reorder-only, no TiKV roll).
  eks-freetier:serverless-tikv-always-emit-wal-secondary-dir: true
  eks-freetier:serverless-tikv-version: v26.3.5
  eks-freetier:serverless-tikv-worker-version: v26.3.6
  eks-freetier:serverless-tidb-base-image: 380838443567.dkr.ecr.us-west-2.amazonaws.com/tidbcloud/serverless/tidb
  eks-freetier:serverless-tidb-version: d349efce65582e71bc46d9d4356c6eb426074a71
  eks-freetier:general-guaranteed-fleet:
    - tier: "standard"
      name: "guaranteed-4xl"
      releaseTag: "32v251029"
      instanceTypes: ["m6g.4xlarge", "m7g.4xlarge", "m8g.4xlarge", "m6a.4xlarge", "m6i.4xlarge", "m7i.4xlarge", "m7a.4xlarge"]
      # No-op (matches the program default and the live ASGs); stated so the
      # whole critical-services pool reads the same way.
      scaleInProtected: false
      primary:
        min: 0
      standby:
        min: 0
      witness:
        min: 0
    # 34v260714 twin of the entry above: same name (so it carries the same
    # nodegroup label and serves the same pods), newer release. The nodegroup
    # name embeds the releaseTag, so the two coexist and the pool can be drained
    # off 1.32/AL2 onto 1.34/AL2023 -- the control plane is already on 1.34.
    # The 32v251029 entry is dropped in a follow-up once it is empty.
    - tier: "standard"
      name: "guaranteed-4xl"
      releaseTag: "34v260714"
      instanceTypes: ["m6g.4xlarge", "m7g.4xlarge", "m8g.4xlarge", "m6a.4xlarge", "m6i.4xlarge", "m7i.4xlarge", "m7a.4xlarge"]
      scaleInProtected: false
      primary:
        min: 0
      standby:
        min: 0
      witness:
        min: 0
    # critical-services spec-tier menu (criticalTier opt-in). No workload is
    # pinned to these yet -- this change only provisions the nodegroups.
    # PD / pd-tso / keyspace-etcd land here at 3 CPU / 6Gi requests: 3.92 CPU
    # allocatable minus ~0.4 CPU of DaemonSets leaves room for exactly one such
    # pod per node.
    - tier: "standard"
      name: "guaranteed-xl"
      releaseTag: "34v260714"
      instanceTypes: ["m6g.xlarge", "m7g.xlarge", "m8g.xlarge", "m6i.xlarge", "m7i.xlarge"]
      scaleInProtected: false
      primary:
        min: 0
      standby:
        min: 0
      witness:
        min: 0
    # Rest of the tier menu, so a workload that outgrows xl has somewhere to go
    # without another nodegroup PR. No consumer today.
    - tier: "standard"
      name: "guaranteed-2xl"
      releaseTag: "34v260714"
      instanceTypes: ["m6g.2xlarge", "m7g.2xlarge", "m8g.2xlarge", "m6a.2xlarge", "m6i.2xlarge", "m7i.2xlarge", "m7a.2xlarge"]
      scaleInProtected: false
      primary:
        min: 0
      standby:
        min: 0
      witness:
        min: 0
    # admin etcd only (1.5 CPU / 6Gi requests). 2 vCPU / 8Gi gives 1.93 CPU and
    # ~6.9Gi allocatable; after DaemonSets (~0.4 CPU / 512Mi) etcd fills the node,
    # so nothing else can squat on it. min 0 like the rest: the rolling-upgrade
    # change in this PR gives the etcd rollout Job a 30min per-phase ceiling and
    # takes it off the update's critical path, so CA can scale this nodegroup
    # from zero while etcd is being rolled onto it.
    - tier: "standard"
      name: "guaranteed-large"
      releaseTag: "34v260714"
      instanceTypes: ["m6g.large", "m7g.large", "m8g.large", "m6i.large", "m7i.large"]
      scaleInProtected: false
      primary:
        min: 0
      standby:
        min: 0
      witness:
        min: 0
  eks-freetier:general-guaranteed-nodegroup:
    category: "control-plane"
    component: "critical-services"
    min: 0
    zones: ["primary", "standby", "witness"]
  eks-freetier:memory-burstable-fleet:
    - tier: "standard"
      name: "memory-burstable"
      releaseTag: "32v251029"
      primary:
        min: 0
      standby:
        min: 0
  eks-freetier:memory-burstable-nodegroup:
    category: "control-plane"
    component: "burstable"
    min: 0
    instanceTypes: ["r6g.2xlarge", "r7g.2xlarge", "r8g.2xlarge", "r6a.2xlarge", "r6i.2xlarge", "r7i.2xlarge", "r7a.2xlarge"]
    capacityType: "MIXED"
    mixedAsgOptions:
      alternativeAutoReplace: true
      alternativeParallelScaleUp: true
      alternativeScaleUpWait: "60s"
  eks-freetier:tidb-fleet:
    - tier: "standard"
      name: "tidb-x2xl"
      releaseTag: "32v251029"
      capacityType: "MIXED"
      mixedAsgOptions:
        alternativeAutoReplace: true
        alternativeParallelScaleUp: true
        alternativeScaleUpWait: "60s"
      spot:
        name: "tidb-tx2xl"
        instanceTypes: [ "m7g.2xlarge", "m6g.2xlarge", "m6a.2xlarge" ]
        max: 200
        labels:
          nodedrainer.tidbcloud.com/capacityType: "SPOT"
      onDemand:
        name: "tidb-od-x2xl"
        instanceTypes: [ "m6g.2xlarge", "m7g.2xlarge", "m6a.2xlarge", "m7a.2xlarge", "m6i.2xlarge", "m7i.2xlarge" ]
        max: 100
        labels:
          nodedrainer.tidbcloud.com/capacityType: "ON_DEMAND"
    - tier: "standard"
      name: "tidb-default-x2xl"
      releaseTag: "32v251029"
      capacityType: "ON_DEMAND"
      instanceTypes: [ "m6g.2xlarge", "m7g.2xlarge", "m6a.2xlarge", "m7a.2xlarge", "m6i.2xlarge", "m7i.2xlarge" ]
      rootVolumeSize: 50
      primary:
        min: 0
      standby:
        min: 0
      max: 100
    - tier: "standard"
      name: "tidb-vip-x4xl"
      releaseTag: "32v251029"
      capacityType: "ON_DEMAND"
      instanceTypes: [ "m6g.4xlarge", "m7g.4xlarge", "m6a.4xlarge", "m7a.4xlarge", "m6i.4xlarge", "m7i.4xlarge" ]
      rootVolumeSize: 50
      primary:
        min: 0
      standby:
        min: 0
      max: 100
  eks-freetier:tidb-nodegroup:
    category: "compute"
    component: "tidb"
    min: 0
  eks-freetier:tmp-worker-fleet:
    - tier: "standard"
      name: "tmp-worker-x4xl"
      releaseTag: "32v251029"
      instanceTypes:
        [ "m6g.4xlarge", "m7g.4xlarge", "m6a.4xlarge", "m5a.4xlarge" ]
  eks-freetier:tmp-worker-nodegroup:
    category: "control-plane"
    component: "tmp-worker"
    capacityType: "SPOT"
    min: 0
    max: 10
    spot:
      onDemandBaseCapacity: 1
  eks-freetier:dedicated-fleet:
    - tier: "standard"
      name: "dedicated-x12xl"
      releaseTag: "32v251029"
      instanceTypes: ["m6g.12xlarge", "m7g.12xlarge", "m6a.12xlarge", "m8g.12xlarge"]
      labels:
        dedicated-node-cpu-num: "48"
    - tier: "standard"
      name: "dedicated-x16xl"
      releaseTag: "32v251029"
      instanceTypes: ["m6g.16xlarge", "m7g.16xlarge", "m6a.16xlarge", "m8g.16xlarge"]
      labels:
        dedicated-node-cpu-num: "64"
    - tier: "standard"
      name: "dedicated-x24xl"
      releaseTag: "32v251029"
      instanceTypes: ["m6a.24xlarge", "m7a.24xlarge", "m8g.24xlarge"]
      labels:
        dedicated-node-cpu-num: "96"
    - tier: "standard"
      name: "dedicated-x32xl"
      releaseTag: "32v251029"
      instanceTypes: ["m6a.32xlarge", "m7a.32xlarge"]
      labels:
        dedicated-node-cpu-num: "128"
    - tier: "standard"
      name: "dedicated-x48xl"
      releaseTag: "32v251029"
      instanceTypes: ["m6a.48xlarge", "m7a.48xlarge", "m8g.48xlarge"]
      labels:
        dedicated-node-cpu-num: "192"
  eks-freetier:dedicated-nodegroup:
    category: "control-plane"
    component: "dedicated"
    capacityType: "ON_DEMAND"
    min: 0
    max: 10
  eks-freetier:import-super-vip-fleet:
    - tier: "standard"
      name: "import-super-vip-x12xl"
      releaseTag: "32v251029"
      instanceTypes:
        ["m6g.16xlarge", "m7g.16xlarge", "m6a.16xlarge"]
  eks-freetier:import-super-vip-nodegroup:
    category: "control-plane"
    component: "import-super-vip"
    min: 0
    max: 10
  eks-freetier:import-pool-fleet:
    - tier: "standard"
      releaseTag: "32v251029"
      name: "import-pool"
      instanceTypes: ["r6g.2xlarge", "r7g.2xlarge", "r5a.2xlarge", "r6a.2xlarge", "r8g.2xlarge"]
  eks-freetier:import-pool-nodegroup:
    category: "control-plane"
    component: "import-pool"
    min: 0
    max: 10
  eks-freetier:export-vip-tidb-fleet:
    - tier: "standard"
      name: "export-vip-tidb-x2xl"
      releaseTag: "32v251029"
      instanceTypes: ["r6g.2xlarge", "r7g.2xlarge", "r8g.2xlarge", "r6a.2xlarge", "r6i.2xlarge"]
  eks-freetier:export-vip-tidb-nodegroup:
    category: "control-plane"
    component: "export-vip-tidb"
    capacityType: "ON_DEMAND"
    min: 0
    max: 10
  eks-freetier:export-super-vip-fleet:
    - tier: "standard"
      name: "export-super-vip-x8xl"
      releaseTag: "32v251029"
      instanceTypes: ["c6g.8xlarge", "c7g.8xlarge", "c8g.8xlarge", "c6a.8xlarge", "c6i.8xlarge"]
  eks-freetier:export-super-vip-nodegroup:
    category: "control-plane"
    component: "export-super-vip"
    capacityType: "ON_DEMAND"
    min: 0
    max: 10
  eks-freetier:export-super-vip-tidb-fleet:
    - tier: "standard"
      name: "export-super-vip-tidb-x8xl"
      releaseTag: "32v251029"
      instanceTypes: ["r6g.8xlarge", "r7g.8xlarge", "r8g.8xlarge", "r6a.8xlarge", "r6i.8xlarge"]
  eks-freetier:export-super-vip-tidb-nodegroup:
    category: "control-plane"
    component: "export-super-vip-tidb"
    capacityType: "ON_DEMAND"
    min: 0
    max: 10
  eks-freetier:tiflash-cn-fleet:
    - tier: "standard"
      name: "tiflash-cn-r2xl"
      releaseTag: "32v251029"
      instanceTypes: ["r6g.2xlarge", "r7g.2xlarge", "r8g.2xlarge", "r6a.2xlarge", "r6i.2xlarge", "r7i.2xlarge", "r7a.2xlarge"]
  eks-freetier:tiflash-cn-nodegroup:
    category: "compute"
    component: "tiflash-cn"
    capacityType: "SPOT"
    min: 0
    max: 50
    exclusive: false
    labels:
      tiflash.used-for-compute: "true"
    taints:
      tiflash.used-for-compute: "true"
    spot:
      onDemandBaseCapacity: 2
  eks-freetier:adhoc-fleet:
    - tier: "standard"
      name: "adhoc-r2x"
      releaseTag: "32v251029"
      instanceTypes: ["r6g.2xlarge", "r7g.2xlarge", "r8g.2xlarge", "r6a.2xlarge", "r6i.2xlarge"]
      labels:
        adhoc-cpu: "8"
        adhoc-memory: "64"
      capacityType: "MIXED"
      mixedAsgOptions:
        alternativeAutoReplace: true
        alternativeParallelScaleUp: true
        alternativeScaleUpWait: "60s"
    - tier: "standard"
      name: "adhoc-r8x"
      releaseTag: "32v251029"
      instanceTypes: ["r6g.8xlarge", "r7g.8xlarge", "r8g.8xlarge", "r6a.8xlarge", "r6i.8xlarge"]
      labels:
        adhoc-cpu: "32"
        adhoc-memory: "256"
      capacityType: "MIXED"
      mixedAsgOptions:
        alternativeAutoReplace: true
        alternativeParallelScaleUp: true
        alternativeScaleUpWait: "60s"
    - tier: "standard"
      name: "adhoc-m4x"
      releaseTag: "34v260714"
      instanceTypes: ["m6g.4xlarge", "m7g.4xlarge", "m6a.4xlarge", "m5a.4xlarge"]
      labels:
        adhoc-cpu: "16"
        adhoc-memory: "64"
      capacityType: "MIXED"
      mixedAsgOptions:
        alternativeAutoReplace: true
        alternativeParallelScaleUp: true
        alternativeScaleUpWait: "60s"
    - tier: "standard"
      name: "adhoc-m8x"
      releaseTag: "32v251029"
      instanceTypes: ["m6g.8xlarge", "m7g.8xlarge", "m6a.8xlarge", "m5a.8xlarge"]
      labels:
        adhoc-cpu: "32"
        adhoc-memory: "128"
      capacityType: "MIXED"
      mixedAsgOptions:
        alternativeAutoReplace: true
        alternativeParallelScaleUp: true
        alternativeScaleUpWait: "60s"
    - tier: "standard"
      name: "adhoc-m16x"
      releaseTag: "32v251029"
      instanceTypes: ["m6g.16xlarge", "m7g.16xlarge", "m6a.16xlarge", "m8g.16xlarge"]
      labels:
        adhoc-cpu: "64"
        adhoc-memory: "256"
      capacityType: "MIXED"
      mixedAsgOptions:
        alternativeAutoReplace: true
        alternativeParallelScaleUp: true
        alternativeScaleUpWait: "60s"
  eks-freetier:adhoc-nodegroup:
    category: "control-plane"
    component: "adhoc"
    capacityType: "ON_DEMAND"
    min: 0
    max: 10
  eks-freetier:o11y-fleet:
    - tier: "standard"
      name: "o11y-2x"
      releaseTag: "32v251029"
      instanceTypes: ["m6g.2xlarge", "m7g.2xlarge", "m8g.2xlarge", "m6a.2xlarge", "m6i.2xlarge", "m7i.2xlarge"]
    - tier: "standard"
      name: "o11y-4x"
      releaseTag: "32v251029"
      instanceTypes: ["m6g.4xlarge", "m7g.4xlarge", "m8g.4xlarge", "m6a.4xlarge", "m6i.4xlarge", "m7i.4xlarge"]
  eks-freetier:o11y-nodegroup:
    category: "control-plane"
    component: "o11y"
    min: 0
    max: 50
  eks-freetier:default-fleet:
    - tier: "standard"
      name: "default-burstable"
      releaseTag: "32v251029"
      instanceTypes: ["m6g.2xlarge", "m7g.2xlarge", "m8g.2xlarge", "m6a.2xlarge", "m6i.2xlarge", "m7i.2xlarge", "m7a.2xlarge"]
      primary:
        min: 2
      standby:
        min: 1
  eks-freetier:default-nodegroup:
    category: "control-plane"
    component: "general"
    min: 1
    max: 50
    exclusive: false
  eks-freetier:tiflash-columnar-readnode-config:
    releaseTag: "32v251029"
    image: 380838443567.dkr.ecr.us-west-2.amazonaws.com/tidbcloud/tiflash:v26.3.10-nextgen
    storageClassName: "tiflash-gp3-6000-600"
    resourcePool: "export-vip-tidb"
    podSpec:
      replicas:
        min: 2
        max: 5
      resources:
        limits:
          cpu: 8000m
          memory: 56Gi
        requests:
          cpu: 6000m
          memory: 48Gi
          storage: 500Gi
  eks-freetier:ssd-provisioner-image: 380838443567.dkr.ecr.us-west-2.amazonaws.com/dbaas/serverless/eks-nvme-ssd-provisioner:202304282235

  eks-freetier:datacleaner:
    image: 380838443567.dkr.ecr.us-east-1.amazonaws.com/dbaas/aws-shared-provider-datacleaner:b76c60bf9fb41996e40fbea1e85f3378b7256d03
    ops: dump_archive_ks,dump_pd_rules,dump_region_labels,archive_ks,archive_pd_rules,archive_region_labels,archive_etcd_path,keyspace2tombstone
    skipConfirm: -skip-confirm
    realRun: -isrun
    delay: 168h
  eks-freetier:o11y-infra:
    version: "1"
    auth0:
      audience: https://tidb-soc2.us.auth0.com/api/v2/
      clientId:
        secure: v1:3Hl8eAhn+flP1EFr:aLb1+Ac2OfC6yDq9P3TuAqRdCZvppYQ4g5M/bmlZ5M3ak6xPbdjHZPt/JdhWkiRI
      clientSecret:
        secure: v1:aiYY2w8YGD2GduP5:N7d9RrZuIRAMHRTDfqXCFlYq4pVrFJkpcybKHYyc82TOLB/7peYc3qJLEq24rxhuYv0dT79MAlfFizwAE5NGSE13FUjIfSdlbVMhehOE3Iw=
      getTokenUrl: https://tidb-soc2.us.auth0.com/oauth/token
    createO11yInfraPath: /api/v1/clusters
    deleteO11yInfraPath: /api/v1/clusters
    getO11yInfraPath: /api/v1/clusters
    openApiAddress: https://www.gs.us-west-2.aws.observability.tidbcloud.com
    roleArnPrefix: "arn:aws:iam::557537366020:role/*"
    globalShardCount: 2
    serverlessShardCount: 2
    enableAgentController: true
    newInfraStage: init

  eks-freetier:serverless-cluster:
    tikv:
      # NEW nodegroups must use 34v260714 (AL2023); k8s 1.34 rejects AL2 AMI types.
      - instanceType: "r8g.2xlarge"
        releaseTag: "34v260714"
        tier: "standard"
        replicas: 3
        storageClassName: "gp3-500"
        storageSize: 1000Gi
        hotCluster:
          instanceType: "i8g.4xlarge"
          releaseTag: "32v251029"
        superseding:
          instanceType: "i7ie.3xlarge"
          releaseTag: "32v251029"
      - instanceType: "r6g.xlarge"
        releaseTag: "34v260714"
        tier: "standard"
        zoneTypes: [ "standby", "witness" ]
        replicas: 2
        storageClassName: "ebs-sc"
        storageSize: 100Gi
        superseding:
          instanceType: "i8g.2xlarge"
          releaseTag: "32v251029"
      - instanceType: "i8g.4xlarge"
        releaseTag: "32v251029"
        tier: "hot"
        replicas: 0
      - instanceType: "i8g.4xlarge"
        releaseTag: "32v251029"
        tier: "poc"
        replicas: 0
        partitionNumbers: [0, 1, 2]
  eks-freetier:probe-serverless-dsn:
    secure: v1:au2XVi+Tl+wbxJKZ:mVkStZpJA6DA48mU6VkYYgNe9kxvLH5QCnCz6QbvEfv+xy3d1OmfmgBK7rBIpCFZzMU06u3pABt9abQW6xRf7E9chL0PhNuwR441qGAHX/17Hx8f38vKivFa9aII47yuLlr0MYBahopo4lqwZE/YXu+odg5pjGjrcDEJWSFCHfXlAHS0C9ag0TfdLkRgSEtFvQoZqvCx9IkQ3y+B4h4QelEX2BjxCf5NpWoC9Vujx4LPeU+ddrHno2iFIWm/IPKl5jVOYIkOJnxzqlr2eseEegz5mJYj/IZvGMOYnzkPByqoauwTtOQBasn2/P0giP99N3rbK66TE+c8IhpPdQ4/5AmSXTPP/Kz69WhMu6j2D4N0AqhdThW7lwEV/8dPN3W/8Y04nMp69fj+T3Of1FHeMyeDKwxj2akaMtQLDUT9d+adWVyVSF3IcXr4PA2DxfuOoZva+q5w6r4dqaJKALKff3+g3h93Ub77mEK1yh6QY2ff5bQOIAQDG5qlt7snJlr3sjoducSph6zsfip/lO6yeQmd4X5LvL4fybEeIiyIbgCxVQ7RZ9+78x61c2nkrICnq29ZwuFi8UdcaGFkcz2jvhP2DzUKlSMH4G9xE0sNYT+9Y2L44JAMZV/uKA3cCu/ZEclJS32eMjv4otdhu7SBEnVe4Uf0+T7O+vikiWsJ0Fwx8NIzlM0oOnhM/8Yu+A4cuoahqYbNBP6utg3UIeq1+fE=
  eks-freetier:istio:
    repo: "https://istio-release.storage.googleapis.com/charts"
    hub: "380838443567.dkr.ecr.us-west-2.amazonaws.com/third-party/istio"
    imagePullPolicy: "IfNotPresent"
    version: "1.20.8"
  eks-freetier:loggers:
    asg: debug
    o11y: info
    serverless: debug
    istio: info
  eks-freetier:keyspace-etcd-group-count: 1
  eks-freetier:keyspace-etcd-group-spec:
    # 3 CPU / 6Gi fills a guaranteed-xl node: 3920m allocatable minus ~400m of DaemonSet requests
    # leaves no room for a second 3-CPU pod, so each of the three replicas gets a node to itself.
    # releaseTag is stated even though the group carried no pin before -- guaranteed-xl only exists
    # on 34v260714, and being explicit keeps the group on the 1.34 data plane if a 32v twin of the
    # tier is ever added. Both fields feed the rollout versionHash, so this is one rolling upgrade.
    criticalTier: "xl"
    releaseTag: "34v260714"
    resources:
      limits:
        cpu: "3"
        memory: 6Gi
      requests:
        cpu: "3"
        memory: 6Gi
