apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: argo-rollouts-clusterrole
  labels:
    app.kubernetes.io/component: rollouts-controller
    app.kubernetes.io/name: argo-rollouts-clusterrole
    app.kubernetes.io/part-of: argo-rollouts
rules:
- apiGroups:
  - argoproj.io
  resources:
  - rollouts
  - rollouts/status
  - rollouts/finalizers
  verbs:
  - get
  - list
  - watch
  - update
  - patch
- apiGroups:
  - argoproj.io
  resources:
  - analysisruns
  - analysisruns/finalizers
  - experiments
  - experiments/finalizers
  verbs:
  - create
  - get
  - list
  - watch
  - update
  - patch
  - delete
- apiGroups:
  - argoproj.io
  resources:
  - analysistemplates
  - clusteranalysistemplates
  verbs:
  - get
  - list
  - watch
# replicaset access needed for managing ReplicaSets
- apiGroups:
  - apps
  resources:
  - replicasets
  verbs:
  - create
  - get
  - list
  - watch
  - update
  - patch
  - delete
# services patch needed to update selector of canary/stable/active/preview services
- apiGroups:
  - ""
  resources:
  - services
  verbs:
  - get
  - list
  - watch
  - patch
# secret read access to run analysis templates which reference secrets
- apiGroups:
  - ""
  resources:
  - secrets
  verbs:
  - get
  - list
  - watch
# pod list/update needed for updating ephemeral data
- apiGroups:
  - ""
  resources:
  - pods
  verbs:
  - list
  - update
# pods eviction needed for restart
- apiGroups:
  - ""
  resources:
  - pods/eviction
  verbs:
  - create
# event write needed for emitting events
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
  - update
  - patch
# ingress patch needed for managing ingress annotations, create needed for nginx canary
- apiGroups:
  - networking.k8s.io
  - extensions
  resources:
  - ingresses
  verbs:
  - create
  - get
  - list
  - watch
  - patch
# job access needed for analysis template job metrics
- apiGroups:
  - batch
  resources:
  - jobs
  verbs:
  - create
  - get
  - list
  - watch
  - update
  - patch
  - delete
# virtualservice/destinationrule access needed for using the Istio provider
- apiGroups:
  - networking.istio.io
  resources:
  - virtualservices
  - destinationrules
  verbs:
  - watch
  - get
  - update
  - patch
  - list
# trafficsplit access needed for using the SMI provider
- apiGroups:
  - split.smi-spec.io
  resources:
  - trafficsplits
  verbs:
  - create
  - watch
  - get
  - update
  - patch
- apiGroups:
  - getambassador.io
  resources:
  - mappings
  verbs:
  - create
  - watch
  - get
  - update
  - list
  - delete
