apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
  - ../tidb-serverless
patches:
  - target:
      group: pingcap.com
      version: v1alpha1
      kind: TidbCluster
      name: serverless-cluster
    patch: |-
      - op: replace
        path: /spec/pd/replicas
        value: 3
      - op: replace
        path: /spec/pd/requests/cpu
        value: 3500m
      - op: replace
        path: /spec/pd/requests/memory
        value: 14Gi
      - op: replace
        path: /spec/pd/limits/cpu
        value: 3500m
      - op: replace
        path: /spec/pd/limits/memory
        value: 14Gi
      - op: add
        path: /spec/pd/affinity
        value:
          podAntiAffinity:
            requiredDuringSchedulingIgnoredDuringExecution:
              - labelSelector:
                  matchLabels:
                    app.kubernetes.io/component: pd
                    app.kubernetes.io/instance: serverless-cluster
                topologyKey: kubernetes.io/hostname
      - op: remove
        path: /spec/pd/env/0
      - op: replace
        path: /spec/pd/config
        value: |
          [dashboard]
            enable-telemetry = false
            internal-proxy = true

          [replication]
            enable-placement-rules = true
            max-replicas = 3

          [security]
            enable-sem = true
            cacert-path = "/server-cert/ca.crt"
            cert-path = "/server-cert/tls.crt"
            key-path = "/server-cert/tls.key"

          [keyspace]
            enable-global-safe-point-v2 = true
            disable-raw-kv-region-split = true
            wait-region-split = true
            wait-region-split-timeout = "120s"
            check-region-split-interval = "1s"

          [micro-service]
            enable-resource-manager-fallback = true
  - target:
      version: v1
      kind: ConfigMap
      name: (pd-tso-server-config|pd-resource-manager-config)
    patch: |-
      $patch: delete
      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: ignored
  - target:
      version: v1
      kind: Service
      name: (tso-service|resource-manager-service)
    patch: |-
      $patch: delete
      apiVersion: v1
      kind: Service
      metadata:
        name: ignored
  - target:
      group: apps
      version: v1
      kind: StatefulSet
      name: (pd-tso-server|pd-resource-manager-server)
    patch: |-
      $patch: delete
      apiVersion: apps/v1
      kind: StatefulSet
      metadata:
        name: ignored
