log:
  level: 0

secret_source:
  rootConfigSecretName: prod-devops-secret
  awsASM:
    region: us-west-2

asset:
  bucketName: tidbcloud-devops-assets-prod

mysql:
  host: vpce-050be0bb3f1cddd13-nblszha8.vpce-svc-0679cde159cc189f2.us-west-2.vpce.amazonaws.com
  port: 4000
  # user: <SECRET>
  # password: <SECRET>
  database: devops_prod
  logLevel: 4  # 1: silent, 2: error, 3: warn, 4: info
  traceQuerySQL: false

eventbus:
  disable: false
  appName: devops-server

grpcServer:
  listenAddr: "0.0.0.0:8089"

apiServer:
  listenAddr: "0.0.0.0:8088"
  trustedProxies: [172.31.0.0/16]
  auth:
    enableIAMAuth: true
    authServiceAddr: "0.0.0.0:8089"
    # authDomain: <SECRET>
    # authAudience: <SECRET>

services:
  autoCredit:
    cronDisable: false  
  activeEMEATenant:
    cronDisable: true
    dryRun: false
    operatorEmail: xieyujie@pingcap.com
    candidateProfileTTL: 24h
    enrichmentTTL: 720h
    enrichmentSchemaVersion: v1
    reportS3Prefix: active-emea-tenant-report
    opsPortalBaseURL: https://ops.tidbcloud.com
  approval:
    templatesFilepath: /etc/config/approval-templates.yaml
    fixedAdminApproverUserGroup: cloud-operation-force-approve
    disableAdminApprove: false
  kernelImage:
    enabled: true
    localDevOpsEnvironment: prod
    selectionPolicy:
      versionCount: 3
      imageTagCount: 4
    availabilityCheck:
      cronDisable: false
      cronSpec: "0 0 * * *"
      concurrency: 2
    fid:
      repositoryOwner: tidbcloud
      repositoryName: docker-image-controller
      queueLabelPrefix: delivery-queue-tidbx
      queueCommentLimit: 2000
    byocSync:
      enabled: true
      ref: main
      workflow: image-sync-byoc-on-demand-prod.yml
      maxWait: 2h
  release:
    syncReleaseFromJiraInitDelay: 10m
    syncReleaseFromJiraInterval: 24h
    watchTicketsFromJiraInterval: 24h
    listIssuesUpdatedMonthAgo: 1
    jiraProject: DM
    watchChangeInterval: 60s
    notifyChatID: oc_1e82cdc5f96213fa1fbb143e628479aa  # Cloud App Release Notification
    ngImageBuildApproverEmailsMap:
      pingcap/tidb: ["bear.c@pingcap.com", "xurui@pingcap.com", "wangcong@pingcap.com", "xufei@pingcap.com", "zhangyuanjia@pingcap.com"]
      pingcap/tiflash: ["xufei@pingcap.com", "zhangjinpeng@pingcap.com", "luancheng@pingcap.com"]
      pingcap/tiproxy: ["wangcong@pingcap.com", "zhangming@pingcap.com"]
      pingcap/ticdc: ["shawn@pingcap.com", "lidezhu@pingcap.com"]
      tikv/pd: ["xuchengxuan@pingcap.com", "liangyutong@pingcap.com"]
      tidbcloud/cloud-storage-engine: ["zhangjinpeng@pingcap.com", "shentaining@pingcap.com", "zhangbokang@pingcap.com", "yang.zhang@pingcap.com", "luancheng@pingcap.com", "yujuncen@pingcap.com"]
      pingcap/tiflow: ["wangcong@pingcap.com", "guominghao@pingcap.com"]
    lastApproverEmails: ["charles.m@pingcap.com", "yu.dong@pingcap.com"]
    minDeployInterval: 1h
    minObserveDuration: 2h
    notifyToCloseInterval: 24h
  clusterCtl:
    blockedCommands:
      - '[&`|;`\n\r]'
      - '^tikv\-ctl.*mvcc'
      - '^tikv\-ctl.*print'
      - '^tikv\-ctl.*raft'
      - '^tikv\-ctl.*raw-scan'
      - '^tikv\-ctl.*scan'
      - '^pd\-ctl.*resource'
  clusterMaintenance:
    notifyChatID: oc_119af4c1b93540b926b21f0fc8163cd1  # TiDB Service Oncall 内部群
    maintenanceEmailCheckInterval: 60s
    emailFromAddress: no-reply@tidbcloud.com
    beforeTemplateID: d-db53dda9182c4478bd50c26b34a8fe4a
    startedTemplateID: d-4fca9aecf6264b32ad214273758d3cb6
    completedTemplateID: d-d99c737660994a6e9abd331c89fe813e
    firstInterval: "3 day"
    nextInterval: "14 day"
  incident:
    reportChatId: oc_035cf25d0bd4c0ad8bf0ab605d94f912 # Lark Global Incident Report Channel
    overdueToDoActionReminderCronDisable: true
  remediationTicket:
    responsiblePersons:
      regionTSELeader:
        APAC: jinchun.chen@pingcap.com
        EMEA: hua.lu@pingcap.com
        JP: mizuki.masuda@pingcap.com
        NA: hua.lu@pingcap.com
      rdgSLAOwner:
        serverlessPerson: yuqing.bai@pingcap.com
        dedicatedPerson: xuhuaiyu@pingcap.com
      rdgFinalDecisionMaker:
        person: xukai@pingcap.com
      globalDealDesk:
        person: ran.xu@pingcap.com
      regionalGM:
        APAC: tl@pingcap.com
        EMEA: liang.yang@pingcap.com
        JP: hanwei@pingcap.com
        NA: liang.yang@pingcap.com
      commercialOperation:
        person: mickey.roberts@pingcap.com
    watchRemediationTicketsInterval: 60s
    workflow:
      default:
        phases:
          - created
          - region_tse_leader
          - rdg_sla_owner
          - global_deal_desk
          - rdg_final_decision_maker
          - commercial_operation
          - regional_gm
          - succeed
          - closed
        labels:
          created: "Creator"
          region_tse_leader: "Region TSE Leader"
          rdg_sla_owner: "EG SLA Owner"
          global_deal_desk: "Global Deal Desk"
          rdg_final_decision_maker: "EG Decision Maker"
          commercial_operation: "Commercial Operation"
          regional_gm: "Regional GM"
          succeed: "Succeed"
          closed: "Closed"
        optionalPhases:
          - commercial_operation
    successApprovalCCByBizRegion:
      APAC:
        - yaodongsen@pingcap.com
  monitoring:
    certificate:
      audience: https://tidb-soc2.us.auth0.com/api/v2/
      grantType: client_credentials
      bizType: tidbcloud
      cronDisable: false
      cronSpec: "0 10 * * 4" # every Thursday at 10:00
      env: PROD
      regions:
        - us-west-2.aws
        - us-east-1.aws
        - ap-southeast-1.aws
        - ap-southeast-2.aws
        - ap-northeast-1.aws
        - ap-northeast-2.aws
        - eu-central-1.aws
        - sa-east-1.aws
        - us-west1.gcp
        - us-central1.gcp
        - asia-northeast1.gcp
        - asia-southeast1.gcp
        - asia-east1.gcp
        - us-east4.gcp
    compoent_diff_report:
      cronDisable: false
      cronSpec: "0 6 * * 5" # every Friday at 06:00
      cleanCronSpec: "0 6 * * 6" # every Saturday at 07:00
      reportRetentionCount: 10
    idle_reminder:
      weekly_report:
        cronDisable: true
        cronSpec: "0 10 * * 6" # every Saturday at 10:00
        template_id: "d-8f583ec26b1745648b9bc2253b97270c"
        email_from_address: "no-reply@tidbcloud.com"
        receiver_emails: ["tl@pingcap.com", "bear.c@pingcap.com", "wangcong@pingcap.com", "terry.purcell@pingcap.com", "sunruoxi@pingcap.com", "xuhuaiyu@pingcap.com", "haisheng.yuan@pingcap.com", "jin.yu@pingcap.com", "xuchengxuan@pingcap.com", "xurui@pingcap.com", "yu.dong@pingcap.com", "weiwan@pingcap.com", "brian.w@pingcap.com", "zhangjinpeng@pingcap.com", "alice.xu@pingcap.com", "duanbing@pingcap.com", "bing.wang@pingcap.com", "shengbo.ma@pingcap.com", "charles.m@pingcap.com", "qifangfang@pingcap.com", "guozhi.qiao@pingcap.com", "zhuoran.li@pingcap.com", "lu.xing@pingcap.com", "lili@pingcap.com", "chunlu.zhang@pingcap.com", "shawn@pingcap.com", "chenhuansheng@pingcap.com", "zhangxiang02@pingcap.com", "yichen.han@pingcap.com", "yuqing.bai@pingcap.com", "zhaohui@pingcap.com", "alex.quan@pingcap.com", "duo.chai@pingcap.com", "zhangdonghui@pingcap.com", "fan.wang@pingcap.com", "xukai@pingcap.com"]
        cc: ["nizheming@pingcap.com"]
        bcc: ["hu.guo@pingcap.com"]
      daily_report:
        cronDisable: true
        cronSpec: "0 10 * * *" # every day at 10:00
        template_id: "d-0d217c27eb7b47d681915379d2c9502c"
        email_from_address: "no-reply@tidbcloud.com"
        receiver_emails: ["tl@pingcap.com", "bear.c@pingcap.com", "wangcong@pingcap.com", "terry.purcell@pingcap.com", "sunruoxi@pingcap.com", "xuhuaiyu@pingcap.com", "haisheng.yuan@pingcap.com", "jin.yu@pingcap.com", "xuchengxuan@pingcap.com", "xurui@pingcap.com", "yu.dong@pingcap.com", "weiwan@pingcap.com", "brian.w@pingcap.com", "zhangjinpeng@pingcap.com", "alice.xu@pingcap.com", "duanbing@pingcap.com", "bing.wang@pingcap.com", "shengbo.ma@pingcap.com", "charles.m@pingcap.com", "qifangfang@pingcap.com", "guozhi.qiao@pingcap.com", "zhuoran.li@pingcap.com", "lu.xing@pingcap.com", "lili@pingcap.com", "chunlu.zhang@pingcap.com", "shawn@pingcap.com", "chenhuansheng@pingcap.com", "zhangxiang02@pingcap.com", "yichen.han@pingcap.com", "yuqing.bai@pingcap.com", "zhaohui@pingcap.com", "alex.quan@pingcap.com", "duo.chai@pingcap.com", "zhangdonghui@pingcap.com", "fan.wang@pingcap.com", "xukai@pingcap.com"]
        cc: ["nizheming@pingcap.com"]
        bcc: ["hu.guo@pingcap.com"]
      jira_report:
        jiraSpec:
          - cronDisable: true
            cronSpec: "0 2 * * *" # every day at 10:00
            jql: "(project = TCOC AND type = Incident AND created >= -90d AND created <= -7d AND \"PostMoterm Status[Dropdown]\" IN (\"Not started\", \"RCA WIP\", \"TCOCP WIP\") AND \"environment(tcoc)[select list (multiple choices)]\" != \"Serverless TIER Cluster\") OR ( project = O11Y AND ((priority = Critical AND created <= -1d) OR (priority = Major AND created <= -3d)) AND created >= -90d AND description ~ \"stability_governance\" AND type = Task AND status IN (Created, \"In Progress\") ) ORDER BY project, assignee ASC"
            mailEnable: true
            template_id: "d-0d217c27eb7b47d681915379d2c9502c"
            email_from_address: "no-reply@tidbcloud.com"
            receiver_emails: ["tl@pingcap.com", "bear.c@pingcap.com", "wangcong@pingcap.com", "terry.purcell@pingcap.com", "sunruoxi@pingcap.com", "xuhuaiyu@pingcap.com", "haisheng.yuan@pingcap.com", "jin.yu@pingcap.com", "xuchengxuan@pingcap.com", "xurui@pingcap.com", "yu.dong@pingcap.com", "weiwan@pingcap.com", "brian.w@pingcap.com", "zhangjinpeng@pingcap.com", "alice.xu@pingcap.com", "duanbing@pingcap.com", "bing.wang@pingcap.com", "shengbo.ma@pingcap.com", "charles.m@pingcap.com", "qifangfang@pingcap.com", "guozhi.qiao@pingcap.com", "zhuoran.li@pingcap.com", "lu.xing@pingcap.com", "lili@pingcap.com", "chunlu.zhang@pingcap.com", "shawn@pingcap.com", "chenhuansheng@pingcap.com", "zhangxiang02@pingcap.com", "yichen.han@pingcap.com", "yuqing.bai@pingcap.com", "zhaohui@pingcap.com", "alex.quan@pingcap.com", "duo.chai@pingcap.com", "zhangdonghui@pingcap.com", "fan.wang@pingcap.com", "sunxiaoguang@pingcap.com", "xukai@pingcap.com"]
            cc: ["nizheming@pingcap.com"]
            bcc: ["hu.guo@pingcap.com"]
          - cronDisable: true
            cronSpec: "0 2 * * *" # every day at 10:00
            jql: "(project = TCOC AND type = Incident AND created >= -90d AND created <= -5d AND \"PostMoterm Status[Dropdown]\" IN (\"Not started\", \"RCA WIP\", \"TCOCP WIP\") AND \"environment(tcoc)[select list (multiple choices)]\" != \"Serverless TIER Cluster\") OR ( project = O11Y AND ((priority = Critical AND created <= -1d) OR(priority = Major AND created <= -2d)) AND created >= -90d AND description ~ \"stability_governance\" AND type = Task AND status IN (Created, \"In Progress\")) ORDER BY project, assignee ASC"
            mailEnable: true
            template_id: "d-0d217c27eb7b47d681915379d2c9502c"
            email_from_address: "no-reply@tidbcloud.com"
            receiver_emails: ["hu.guo@pingcap.com"]
    cluster_anomaly_detections:
      - cron_disable: false
        cron_spec: "*/30 * * * *"
        template_id: "d-959ac731020d47db936e7e7241183eec"
        email_from_address: "no-reply@tidbcloud.com"
        receiver_emails: ["andi.2026@outlook.com"]
        bcc: ["hu.guo@pingcap.com", "cong.cao@pingcap.com", "j.zhou@pingcap.com"]
        cluster_ids: ["10740209187796942021", "10196872840201859170"]
        top_sql_detection:
          enable: true
          duration: "1h"
  tenant:
    tenantTableName: gcp-digital-bi.model_tidbcloud.dws_cloud_tenants_basicinfo
    cronDisable: false
    cronSpec: "00 2 * * *" # every day 2:00 UTC
    o11yEndpoint: http://www.ds.us-west-2.aws.observability.tidbcloud.com
    prometheusPath: /internal/metrics/047f9bb7-ebde-411c-86a3-dae713ee5445
  github:
    syncRepositoryInterval: 12h
    syncRepositoryPushedBefore: 720h
    builtinRepositories:
    - pingcap/tidb-operator
    syncPullRequestInterval: 1h
  dashboard:
    slaDB:
      host: gateway01.us-west-2.prod.aws.tidbcloud.com
      port: 4000
      user: RDgFArWiyRK5wbH.dbaas-sli
      database: dbaas-sli
      tlsConfigKey: true
    serverlessSlaDB:
      host: gateway01.us-west-2.prod.aws.tidbcloud.com
      port: 4000
      user: xxensiNE5nrMtWm.serverless_rd
      database: serverless_prod
      tlsConfigKey: true
    eePrometheusEndpoint: https://www.ds.us-west-2.aws.observability.tidbcloud.com/internal/metrics/047f9bb7-ebde-411c-86a3-dae713ee5445
    basePrometheusEndpoint: https://www.ds.us-west-2.aws.observability.tidbcloud.com/internal/metrics/90c5d4fa-ba99-4c40-8b5f-041f6dd28501
  operation:
    syncInstanceInterval: 10s
    operationRegistryFilepath: /etc/config/operations.yaml
    operationNotifyWehookURL: https://open.feishu.cn/open-apis/bot/v2/hook/07ee266f-1658-4cd0-96ba-21a8b4c3dd59
    operationClusterWhiteList:
      1379661944646416306: # test cluster
        tenantID: 1372813089208161328
        clusterAgentURL: http://k8s-tidbadmi-dataflow-2f9b599ced-967bb2850fcd8db4.elb.us-west-2.amazonaws.com
      1379661944646415623:
        tenantID: 1372813089209031895
        clusterAgentURL: http://k8s-tidbadmi-dataflow-5fe280499c-9dd5c7c5316aa053.elb.ap-northeast-1.amazonaws.com
      1379661944646415112:
        tenantID: 1372813089209031895
        clusterAgentURL: http://k8s-tidbadmi-dataflow-06d55616d5-d934f8b6d6b2197b.elb.ap-northeast-1.amazonaws.com
  jump:
    watchJumpAuthorizationInterval: 10s
    watchJumpAuthorizationSlowlyInterval: 10m
    jumpPodRecycleThreshold: 12h
    forceFinilizeJumpThreshold: 12h
    destinationRegistryFilepath: /etc/config/jump-destinations.yaml
    jumpRoleDir: /etc/jump-roles
    grantSEEPrivilegeCron: "0 4 * * 5" # every Friday at 12:00(UTC+8)
    syncOncallerInterval: 30m
    console:
      jumpServerAddr: jump-server.tidbcloud.com
      jumpServerAccessUrl: https://jump-server.tidbcloud.com
      jumpServerSSHAddr: jump-server-nlb-prod-142e08a5f97a83c0.elb.us-west-2.amazonaws.com
      # jumpServerAccessKeyID: <Secret>
      # jumpServerAccessKeySecret: <Secret>
      jumpServerBaseAssetName: jump-cluster
    gateway:
      accessURL: https://prod.devops.pingcap.com/jump-gateway
      audience: jump-gateway
    dedicated:
      dedicatedNewArchAccessRole: ""   # empty means pod role is used
      dedicatedAKSAuth:
        subscriptionID: efe59dff-e62f-4356-b93d-de124c967a1f  # tidb-dedicated-prod-dataplane-000
        tenantID: 6c865c34-8ff8-4792-bbca-8c9d15efb29d
        clientID: 1005fafe-0646-4616-b11c-e30e0b2b259b # jump-service
        federatedTokenFilepath: /var/run/secrets/federated-tokens/token-azure
    premium:
      premiumACKAuth:
        profileName: jump-service-role-for-5464160084398809
    jumpPod:
      provider: eks
      jumpPodNamespace: jump-service-prod
      jumpPodRoleARN: arn:aws:iam::557537366020:role/jump-pod-prod
      jumpPodImage: 557537366020.dkr.ecr.us-west-2.amazonaws.com/dbaas/prod/jump-pod:1e3a25b1b37e9c458c2da302a13c0b577106414b
      jumpPodAgentImage: 557537366020.dkr.ecr.us-west-2.amazonaws.com/dbaas/prod/jump-pod-agent:754760cd3cc0f336c79670bd1c72da7cc04e7fb0
      jumpPodCPULimit: 1000m
      jumpPodMemLimit: 500Mi
      jumpPodAgentCPULimit: 500m
      jumpPodAgentMemLimit: 1000Mi
      jumpPodSharedFSAddr: fs-02bca2665e59c4fbf.efs.us-west-2.amazonaws.com
    tailscale:
      # tailscaleClientID: <SECRET>
      # tailscaleClientSecret: <SECRET>
      tailscaleAuthKeyTags: ["tag:jump-pod-prod"]
      tailscaleTailnetName: pingcap.com
  alert:
    jiraProject: O11Y
  cloudConfig:
    syncClusterConfigChangeInterval: 30s
    subEnvironments: [dev, staging]
    # subEnvironmentAPIKeys:
    #   dev: <SECRET>
  k8sUpgrade:
    syncUpgradeTasksInterval: 5m
    detailLinkBaseURL: https://ops.tidbcloud.com/k8sUpgradeTask/%d
    k8sUpgradeTaskApprovers: [ "cwen@pingcap.com" ]
    k8sUpgradeTaskCCUserGroup:
      APAC: cloud-operation-region-admin-apac
      EMEA: cloud-operation-region-admin-emea
      JAPAN: cloud-operation-region-admin-japan
      NA: cloud-operation-region-admin-na
    k8sUpgradeTaskCCEmails: [ "charles.m@pingcap.com", "shawn@pingcap.com", "jianghuaxi@pingcap.com" ]
    larkWebhook: https://open.feishu.cn/open-apis/bot/v2/hook/3cb0aa40-4b06-492e-b009-181191ea7c61
    supportedEOSVersions:
      aws:
        - "1.30"
        - "1.31"
        - "1.32"
        - "1.33"
        - "1.34"
        - "1.35"
        - "1.36"
      gcp:
        - "1.30"
        - "1.31"
        - "1.32"
        - "1.33"
        - "1.34"
        - "1.35"
        - "1.36"
    generatorConfig:
      eksAddonsConfig:
        "1.30":
          - name: kube-proxy
            version: v1.30.0-eksbuild.3
        "1.31":
          - name: kube-proxy
            version: v1.31.0-eksbuild.2
        "1.32":
          - name: kube-proxy
            version: v1.32.0-eksbuild.2
    upgradePlanConfig:
      adminApprovers:
        - "fangdong.jia@pingcap.com"
    notify:
      pageURLBase: https://ops.tidbcloud.com/k8sUpgradeTask/clusterSummary?task_id=%d
      channels:
        - lark_group
      defaultWebhook: https://open.feishu.cn/open-apis/bot/v2/hook/8d414438-72f2-4594-9ca1-09e9a5d301d3
      larkCardTemplateID: AAqtNQfGORGV9
      regionEmailMap:
        JAPAN:
          - "mizuki.masuda@pingcap.com"
      noticeTemplate:
        title: "### {{.InfraProvider}} Kubernetes Cluster Upgrade Notice"
        content: |
          &nbsp;
          **Hello everyone, a new round of Kubernetes upgrades has begun. Please pay attention to the relevant upgrade details.**
          &nbsp;
          #### Background
          - **Description:** {{.InfraProvider}} {{.Version}} is approaching the End of Support. We plan to upgrade to {{.TargetVersion}}.
          - **Target Kubernetes Version:** {{.TargetVersion}}
          - **Upgrade Deadline:** {{.Deadline}}
          - **Estimated Kubernetes Cluster Count:** {{.ClusterCount}}
          - **Upgrade Scope:** Control Plane, Addons, Admin Nodes, TiDB Nodes, CDC/DM/O11Y Nodes
          
          &nbsp;
          #### Effect
          - TiDB will perform a rolling restart, if necessary.
          - TiDB will be in maintenance mode and cannot perform any changes.
          - CDC/DM/O11Y will perform a restart, with minute-level downtime.
          
          &nbsp;
          #### Action Required (Sales Owners & TAMs)
          - Click the **[Detail]** button below to view the cluster list and upgrade plan on the Ops Portal.
          - Verify the cluster upgrade plan for your responsible region. Communicate and confirm with customers if needed.
          - Promptly report any adjustments to the upgrade plan.
          
          &nbsp;
          Refer to [Kubernetes Upgrade Introduction](https://pingcap.feishu.cn/wiki/R1Iuw0PG3iTJHjklEubclK5Nnvb) to learn more about common Kubernetes upgrade information.
  premiumUpgrade:
    dummy: false
    detailLinkBaseURL: https://ops.tidbcloud.com/premiumUpgradePlans/%d
    maxParallelTargets: 3
    approval:
      nodes:
        # These user-group names are examples. Replace them with existing
        # Approval Service user groups in the target environment.
        # selfApprove + ANY means the applicant or any group member can approve.

        - name: TiFlash approval
          components:
            - SHARED_POOL/tiflash_compute
            - SHARED_POOL/tiflash_write
          userGroup: kernel_component_owner_tiflash
          method: ANY

        - name: PD approval
          components:
            - SHARED_POOL/pd
            - SHARED_POOL/pd_tso
            - SHARED_POOL/pd_scheduling
            - SHARED_POOL/resource_manager
          userGroup: kernel_component_owner_pd
          method: ANY

        - name: TiKV approval
          components:
            - SHARED_POOL/tikv_worker
            - SHARED_POOL/coprocessor_worker
            - SHARED_POOL/tikv
            - SHARED_POOL/schema_manager
          userGroup: kernel_component_owner_tikv
          method: ANY

        - name: TiDB approval
          components:
            - SHARED_POOL/tidb_worker
            - SHARED_POOL/tidb
            - LOGICAL_CLUSTER/tidb
          userGroup: kernel_component_owner_tidb
          method: ANY

        - name: Backup and Restore approval
          components:
            - SHARED_POOL/classic_restore
            - SHARED_POOL/tibr_autobackup
            - SHARED_POOL/tibr_restore
            - SHARED_POOL/tibrgc_t2_dfsgc
            - SHARED_POOL/tibrgc_t3_archive
          userGroup: kernel_component_owner_br
          method: ANY

        - name: TiProxy approval
          components:
            - SHARED_POOL/tiproxy
            - LOGICAL_CLUSTER/tiproxy
          userGroup: kernel_component_owner_tiproxy
          method: ANY

        - name: Data Migration approval
          components:
            - SHARED_POOL/data_migration
          userGroup: kernel_component_owner_dm
          method: ANY

        - name: Dumpling approval
          components:
            - LOGICAL_CLUSTER/dumpling
          userGroup: kernel_component_owner_dumpling
          method: ANY

        # Fallback for newly supported components that are not listed above.
        - name: Default approval
          default: true
          userGroup: ops-portal-admin
          method: ANY
  privilege:
    watchPrivilegesInterval: 30s
    watchPrivilegesSlowlyInterval: 20m
  userbehavior:
    gtm:
      enabled: true
      enabledGeoSelectors:
        - NA
        - EMEA
        - LATAM
      emailDisabledGeoSelectors:
        - NA
      fromAddress: "c.hofmann@pingcap.com"
      fromName: "Chris Hofmann"
      emailDelay: 6h
      emailQueueScanInterval: 5m
      internalCCList:
        - "fan.wang@pingcap.com"
        - "clay.adams@pingcap.com"
        - "c.hofmann@pingcap.com"
        - "chensiyu@pingcap.com"
      notifyUserIDs:
        - "343396e2" # chensiyu@pingcap.com
        - "dc584df6" # fan.wang@pingcap.com
        - "3f28c17d" # clay.adams@pingcap.com
        - "8b1a46ae" # c.hofmann@pingcap.com
      useCaseProfiles:
        - name: "ai-llm-platform"
          description: "AI/LLM platforms and applications"
          customerReferences:
            - "manus"
            - "dify"
          requiredKeywords:
            - "ai"
            - "agent"
            - "machine learning"
            - "llm"
            - "artificial intelligence"
          preferredBusinessModel: "b2b"
    tenantEventCapture:
      enabled: true
      autoMigrate: false
      targetDB:
        host: gateway01.us-west-2.prod.aws.tidbcloud.com
        port: 4000
        # user: <SECRET>
        # password: <SECRET>
        database: regional_support
      regions:
        - EMEA
      excludedTenantIDs:
        - 1372813089209300444
        - 1372813089209260919
        - 1372813089209245725
        - 1372813089209302377
        - 1372813089209301246
      eventFilters:
        cluster_event:
          eventTypes: ["ClusterScaled"]
        display_event:
          excludedStatuses:
            - started
            - canceled
            - skipped
            - running
            - paused
            - resumed
        tenant_plan:
          eventTypes: ["plan_change"]
        org_event:
          eventTypes: ["activate"]
  featureGates:
    k8supgradeClusterMaintenance:
      all: false
      projects:
        - "1372813089454571329" # sky2-prod
        - "1372813089454811070" # k8s-upgrade-test

controllers:
  webhook:
    s1TicketScheduleEnabled: true
    s1TicketSchedules:
    - startHour: 1 # UTC-0
      endHour: 10 # UTC-0
      emails: [wen.hu@pingcap.com]

clients:
  lark:
    global:
      appCode: cli_a4007d80d078500d
      # appSecret: <SECRET>
      # encryptKey: <SECRET>
      # verificationToken: <SECRET>
    cardEventProxyKey: "env"
    cardEventProxyAddrs:
      dev: dev.devops.pingcap.com
      staging: staging.devops.pingcap.com
  aws:
    dummy: false
  gcp:
    dummy: false
    secretName: prod-devops-gcp-sa
    region: us-west-2
    projectID: gcp-resilience-dev
  aliyun:
    dummy: true
  jira:
    jiraURL: https://tidb.atlassian.net
    jiraUsername: charles.m@pingcap.com
    # jiraPassword: <SECRET>
    # larkGroupPluginQueryURL: <SECRET>
    # larkGroupPluginBindURL: <SECRET>
  eeServer:
    addr: https://do2.pingcap.net/tibuild
    user: ops-client
    # password: <SECRET>
  infraAPIServer:
    kubeConfigSecretName: prod-devops-server-infra-kubeconfig
  authing:
    dummy: true
  ones:
    dummy: true
  accountServer:
    ak: "ak_devops_prod"
    sk: "prod_67d4e888-d30c-499d-afc4-853266e89a27"
  githubAction:
    #  token: <SECRET>
    owner: "tidbcloud"
    repo: "auto-deploy"
  clinicServer:
    addr: https://clinic.pingcap.com
    # token: <SECRET>
  aiopsServer:
    addr: "aiops-server.aiops-prod:8090"
  oncall:
    addr: http://oncall.oncall-prod.svc.cluster.local
    # serviceKey: <SECRET>

dbaasAddr:
  # hosts of cloud apps is a privatelink services, refer: https://github.com/tidbcloud/devops-cd/blob/main/infra-in-base/src/devops-to-base-apps.ts
  coreServiceAddr: vpce-0a4f1b5ac5ff600aa-v3swj418.vpce-svc-0bb4e079eb3f71c7b.us-west-2.vpce.amazonaws.com:10102
  mgmtServiceAddr: vpce-0a4f1b5ac5ff600aa-v3swj418.vpce-svc-0bb4e079eb3f71c7b.us-west-2.vpce.amazonaws.com:10001
  nextGenGlobalAddr: vpce-0a4f1b5ac5ff600aa-v3swj418.vpce-svc-0bb4e079eb3f71c7b.us-west-2.vpce.amazonaws.com:10106
  dedicatedServiceAddr: vpce-0a4f1b5ac5ff600aa-v3swj418.vpce-svc-0bb4e079eb3f71c7b.us-west-2.vpce.amazonaws.com:10000
  accountServiceAddr: vpce-0a4f1b5ac5ff600aa-v3swj418.vpce-svc-0bb4e079eb3f71c7b.us-west-2.vpce.amazonaws.com:10100
  accountHttpAddr: "https://us-west-2.prod.aws.tidbcloud.com"
  billingServiceAddr: vpce-0a4f1b5ac5ff600aa-v3swj418.vpce-svc-0bb4e079eb3f71c7b.us-west-2.vpce.amazonaws.com:18888
  serverlessServiceAddr: vpce-0a4f1b5ac5ff600aa-v3swj418.vpce-svc-0bb4e079eb3f71c7b.us-west-2.vpce.amazonaws.com:10101
  configCenterAddr: vpce-0a4f1b5ac5ff600aa-v3swj418.vpce-svc-0bb4e079eb3f71c7b.us-west-2.vpce.amazonaws.com:8080
  dataflowServiceAddr: vpce-0a4f1b5ac5ff600aa-v3swj418.vpce-svc-0bb4e079eb3f71c7b.us-west-2.vpce.amazonaws.com:10103
  dataflowNgServiceAddr: vpce-0a4f1b5ac5ff600aa-v3swj418.vpce-svc-0bb4e079eb3f71c7b.us-west-2.vpce.amazonaws.com:10104
  mgmtPortalServiceAddr: vpce-0a4f1b5ac5ff600aa-v3swj418.vpce-svc-0bb4e079eb3f71c7b.us-west-2.vpce.amazonaws.com:9091
  o11yServiceAddr: www.gs.us-west-2.aws.observability.tidbcloud.com
  opsCoreServiceAddr: core-server.core-server-prod:9090
  cloudInfraMetaDB:
    host: gateway01.us-west-2.prod.aws.tidbcloud.com
    port: 4000
    database: backup_db
    logLevel: 4
    traceQuerySQL: false
  mgmtService:
    httpAddr: http://vpce-0a4f1b5ac5ff600aa-v3swj418.vpce-svc-0bb4e079eb3f71c7b.us-west-2.vpce.amazonaws.com:9090
    # httpToken: <SECRET>
