Skip to main content

Least Privilege To Deploy PhoenixAI

You can install the PhoenixAI operator and PhoenixAI cluster by kubectl or helm. No matter which way you choose, you may need the following permissions:

Note: Operator will use its own service account, cluster role and cluster role binding to create and manage PhoenixAI

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: install-phoenixai-rb
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: install-phoenixai-role
subjects:
- kind: ServiceAccount
name: your-sa-name
namespace: your-namespace

---

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: install-phoenixai-role
rules:
- apiGroups:
- ""
resources:
- secrets
- serviceaccounts
- configmaps
verbs:
- '*'
- apiGroups:
- rbac.authorization.k8s.io
resources:
- clusterrolebindings
- rolebindings
- clusterroles
- roles
verbs:
- '*'
- apiGroups:
- apps
resources:
- deployments
verbs:
- '*'
- apiGroups:
- monitoring.coreos.com
resources:
- servicemonitors
verbs:
- '*'
- apiGroups:
- phoenixdata.ai
resources:
- phoenixaiclusters
- phoenixaiwarehouses
verbs:
- '*'
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions
verbs:
- '*'
- apiGroups:
- batch
resources:
- jobs
verbs:
- '*'
# The operator's own ClusterRole grants policy/poddisruptionbudgets (the auto-PDB feature is
# enabled by default in the Helm chart and the released operator.yaml). Kubernetes prevents
# privilege escalation: to create that ClusterRole, the installing account must hold these
# permissions as well.
- apiGroups:
- policy
resources:
- poddisruptionbudgets
verbs:
- '*'
# Only needed when the PVC volume expansion feature is enabled
# (phoenixAIOperator.enablePVCExpansion / enablePVCExpansionRBAC): the operator's RBAC then
# additionally grants persistentvolumeclaims, storageclasses, and events.
# - apiGroups:
# - ""
# resources:
# - persistentvolumeclaims
# - events
# verbs:
# - '*'
# - apiGroups:
# - storage.k8s.io
# resources:
# - storageclasses
# verbs:
# - get
# - list
# - watch