137 lines
4.6 KiB
YAML
137 lines
4.6 KiB
YAML
apiVersion: v1
|
|
kind: ServiceAccount
|
|
metadata:
|
|
name: litmus-admin
|
|
namespace: litmus
|
|
labels:
|
|
name: litmus-admin
|
|
---
|
|
# Source: openebs/templates/clusterrole.yaml
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRole
|
|
metadata:
|
|
name: litmus-admin
|
|
labels:
|
|
name: litmus-admin
|
|
rules:
|
|
# ***************************************************************************************
|
|
# Permissions needed for preparing and monitor the chaos resources by chaos-runner
|
|
# ***************************************************************************************
|
|
|
|
# The chaos operator watches the chaosengine resource and orchestartes the chaos experiment..
|
|
## .. by creating the chaos-runner
|
|
|
|
# for creating and monitoring the chaos-runner pods
|
|
- apiGroups: [""]
|
|
resources: ["pods","events"]
|
|
verbs: ["create","delete","get","list","patch","update", "deletecollection"]
|
|
|
|
# for fetching configmaps and secrets to inject into chaos-runner pod (if specified)
|
|
- apiGroups: [""]
|
|
resources: ["secrets","configmaps"]
|
|
verbs: ["get","list",]
|
|
|
|
# for tracking & getting logs of the pods created by chaos-runner to implement individual steps in the runner
|
|
- apiGroups: [""]
|
|
resources: ["pods/log"]
|
|
verbs: ["get","list","watch"]
|
|
|
|
# for configuring and monitor the experiment job by chaos-runner pod
|
|
- apiGroups: ["batch"]
|
|
resources: ["jobs"]
|
|
verbs: ["create","list","get","delete","deletecollection"]
|
|
|
|
# ********************************************************************
|
|
# Permissions needed for creation and discovery of chaos experiments
|
|
# ********************************************************************
|
|
|
|
# The helper pods are created by experiment to perform the actual chaos injection ...
|
|
# ... for a period of chaos duration
|
|
|
|
# for creating and deleting the helper or target app pod and events by experiment
|
|
- apiGroups: [""]
|
|
resources: ["pods"]
|
|
verbs: ["create","delete","deletecollection"]
|
|
|
|
# for creating and monitoring the events for chaos operations
|
|
- apiGroups: [""]
|
|
resources: ["events"]
|
|
verbs: ["create","delete","get","list","patch","update","deletecollection"]
|
|
|
|
# for monitoring the helper and target app pod
|
|
- apiGroups: [""]
|
|
resources: ["pods"]
|
|
verbs: ["get","list","patch","update"]
|
|
|
|
# for creating and managing to execute comands inside target container
|
|
- apiGroups: [""]
|
|
resources: ["pods/exec","pods/eviction","replicationcontrollers"]
|
|
verbs: ["get","list","create"]
|
|
|
|
# for tracking & getting logs of the pods created by experiment pod to implement individual steps in the experiment
|
|
- apiGroups: [""]
|
|
resources: ["pods/log"]
|
|
verbs: ["get","list","watch"]
|
|
|
|
# for creating and monitoring liveness services or monitoring target app services during chaos injection
|
|
- apiGroups: [""]
|
|
resources: ["services"]
|
|
verbs: ["create","delete","get","list","delete","deletecollection"]
|
|
|
|
# for checking the app parent resources as deployments or sts and are eligible chaos candidates
|
|
- apiGroups: ["apps"]
|
|
resources: ["deployments","statefulsets"]
|
|
verbs: ["list","get","patch","update"]
|
|
|
|
# for checking the app parent resources as replicasets and are eligible chaos candidates
|
|
- apiGroups: ["apps"]
|
|
resources: ["replicasets"]
|
|
verbs: ["list","get"]
|
|
|
|
# for checking the app parent resources as deamonsets and are eligible chaos candidates
|
|
- apiGroups: ["apps"]
|
|
resources: ["daemonsets"]
|
|
verbs: ["list","get","delete"]
|
|
|
|
# for checking (openshift) app parent resources if they are eligible chaos candidates
|
|
- apiGroups: ["apps.openshift.io"]
|
|
resources: ["deploymentconfigs"]
|
|
verbs: ["list","get"]
|
|
|
|
# for checking (argo) app parent resources if they are eligible chaos candidates
|
|
- apiGroups: ["argoproj.io"]
|
|
resources: ["rollouts"]
|
|
verbs: ["list","get"]
|
|
|
|
# performs CRUD operations on the network policies
|
|
- apiGroups: ["networking.k8s.io"]
|
|
resources: ["networkpolicies"]
|
|
verbs: ["create","delete","list","get"]
|
|
|
|
# for creation, status polling and deletion of litmus chaos resources used within a chaos workflow
|
|
- apiGroups: ["litmuschaos.io"]
|
|
resources: ["chaosengines","chaosexperiments","chaosresults"]
|
|
verbs: ["create","list","get","patch","update","delete"]
|
|
|
|
# for experiment to perform node status checks and other node level operations like taint, drain in the experiment.
|
|
- apiGroups: [""]
|
|
resources: ["nodes"]
|
|
verbs: ["patch","get","list","update"]
|
|
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRoleBinding
|
|
metadata:
|
|
name: litmus-admin
|
|
labels:
|
|
name: litmus-admin
|
|
roleRef:
|
|
apiGroup: rbac.authorization.k8s.io
|
|
kind: ClusterRole
|
|
name: litmus-admin
|
|
subjects:
|
|
- kind: ServiceAccount
|
|
name: litmus-admin
|
|
namespace: litmus
|
|
|