apiVersion: v1
kind: ServiceAccount
metadata:
  name: serverless-controller
  namespace: tidb-serverless
  annotations:
    eks.amazonaws.com/role-arn: __CP9_RUNTIME_ROLE_ARN__
imagePullSecrets:
  - name: cp9-ecr-pull-385595570414
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: backup-restore
  namespace: tidb-serverless
imagePullSecrets:
  - name: cp9-ecr-pull-385595570414
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: dm
  namespace: tidb-serverless
imagePullSecrets:
  - name: cp9-ecr-pull-385595570414
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: serverless-role
  namespace: tidb-serverless
rules:
  - apiGroups: [""]
    resources:
      - configmaps
      - endpoints
      - events
      - persistentvolumeclaims
      - pods
      - secrets
      - services
      - serviceaccounts
    verbs: ["*"]
  - apiGroups: ["apps"]
    resources:
      - controllerrevisions
      - deployments
      - statefulsets
      - statefulsets/status
    verbs: ["*"]
  - apiGroups: ["apps.pingcap.com"]
    resources:
      - statefulsets
      - statefulsets/status
    verbs: ["*"]
  - apiGroups: ["batch"]
    resources: ["jobs"]
    verbs: ["*"]
  - apiGroups: ["extensions"]
    resources: ["ingresses"]
    verbs: ["*"]
  - apiGroups: ["networking.k8s.io"]
    resources: ["ingresses"]
    verbs: ["*"]
  - apiGroups: ["pingcap.com"]
    resources: ["*"]
    verbs: ["*"]
  - apiGroups: ["rbac.authorization.k8s.io"]
    resources:
      - roles
      - rolebindings
    verbs:
      - create
      - delete
      - escalate
      - get
      - update
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: serverless-rolebinding
  namespace: tidb-serverless
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: serverless-role
subjects:
  - kind: ServiceAccount
    name: serverless-controller
    namespace: tidb-serverless
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: serverless-clusterrole
rules:
  - apiGroups: [""]
    resources:
      - configmaps
      - endpoints
      - events
      - nodes
      - persistentvolumeclaims
      - persistentvolumes
      - pods
      - secrets
      - services
      - serviceaccounts
    verbs: ["*"]
  - apiGroups: ["apps"]
    resources:
      - controllerrevisions
      - deployments
      - statefulsets
      - statefulsets/status
    verbs: ["*"]
  - apiGroups: ["apps.pingcap.com"]
    resources:
      - statefulsets
      - statefulsets/status
    verbs: ["*"]
  - apiGroups: ["batch"]
    resources: ["jobs"]
    verbs: ["*"]
  - apiGroups: ["extensions"]
    resources: ["ingresses"]
    verbs: ["*"]
  - apiGroups: ["metrics.k8s.io"]
    resources: ["pods"]
    verbs:
      - get
      - list
  - apiGroups: ["networking.k8s.io"]
    resources: ["ingresses"]
    verbs: ["*"]
  - apiGroups: ["pingcap.com"]
    resources: ["*"]
    verbs: ["*"]
  - apiGroups: ["rbac.authorization.k8s.io"]
    resources:
      - clusterrolebindings
      - clusterroles
      - rolebindings
      - roles
    verbs:
      - create
      - delete
      - escalate
      - get
      - update
  - apiGroups: ["storage.k8s.io"]
    resources: ["storageclasses"]
    verbs:
      - get
      - list
      - watch
  - nonResourceURLs: ["/metrics"]
    verbs:
      - get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: serverless-clusterrolebinding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: serverless-clusterrole
subjects:
  - kind: ServiceAccount
    name: serverless-controller
    namespace: tidb-serverless
