101 lines
2 KiB
Django/Jinja
101 lines
2 KiB
Django/Jinja
---
|
|
kind: ClusterRole
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
metadata:
|
|
name: calico-kube-controllers
|
|
namespace: kube-system
|
|
rules:
|
|
{% if calico_datastore == "etcd" %}
|
|
- apiGroups:
|
|
- ""
|
|
- extensions
|
|
resources:
|
|
- pods
|
|
- namespaces
|
|
- networkpolicies
|
|
- nodes
|
|
- serviceaccounts
|
|
verbs:
|
|
- watch
|
|
- list
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- nodes
|
|
verbs:
|
|
- get
|
|
- apiGroups:
|
|
- networking.k8s.io
|
|
resources:
|
|
- networkpolicies
|
|
verbs:
|
|
- watch
|
|
- list
|
|
{% elif calico_datastore == "kdd" %}
|
|
# Nodes are watched to monitor for deletions.
|
|
- apiGroups: [""]
|
|
resources:
|
|
- nodes
|
|
verbs:
|
|
- watch
|
|
- list
|
|
- get
|
|
# Pods are queried to check for existence.
|
|
- apiGroups: [""]
|
|
resources:
|
|
- pods
|
|
verbs:
|
|
- watch
|
|
- list
|
|
- get
|
|
# IPAM resources are manipulated when nodes are deleted.
|
|
- apiGroups: ["crd.projectcalico.org"]
|
|
resources:
|
|
- ippools
|
|
- ipreservations
|
|
verbs:
|
|
- list
|
|
- apiGroups: ["crd.projectcalico.org"]
|
|
resources:
|
|
- blockaffinities
|
|
- ipamblocks
|
|
- ipamhandles
|
|
verbs:
|
|
- get
|
|
- list
|
|
- create
|
|
- update
|
|
- delete
|
|
- watch
|
|
# kube-controllers manages hostendpoints.
|
|
- apiGroups: ["crd.projectcalico.org"]
|
|
resources:
|
|
- hostendpoints
|
|
verbs:
|
|
- get
|
|
- list
|
|
- create
|
|
- update
|
|
- delete
|
|
# Needs access to update clusterinformations.
|
|
- apiGroups: ["crd.projectcalico.org"]
|
|
resources:
|
|
- clusterinformations
|
|
verbs:
|
|
- get
|
|
- create
|
|
- update
|
|
# KubeControllersConfiguration is where it gets its config
|
|
- apiGroups: ["crd.projectcalico.org"]
|
|
resources:
|
|
- kubecontrollersconfigurations
|
|
verbs:
|
|
# read its own config
|
|
- get
|
|
# create a default if none exists
|
|
- create
|
|
# update status
|
|
- update
|
|
# watch for changes
|
|
- watch
|
|
{% endif %}
|