cluster-autoscaler-rbac.yaml 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. kind: ClusterRole
  2. apiVersion: rbac.authorization.k8s.io/v1
  3. metadata:
  4. name: cluster-autoscaler
  5. labels:
  6. addonmanager.kubernetes.io/mode: Reconcile
  7. rules:
  8. # leader election
  9. - apiGroups: ["coordination.k8s.io"]
  10. resources: ["leases"]
  11. verbs: ["create"]
  12. - apiGroups: ["coordination.k8s.io"]
  13. resources: ["leases"]
  14. resourceNames: ["cluster-autoscaler"]
  15. verbs: ["get", "update", "patch", "delete"]
  16. # TODO: remove in 1.18; CA uses lease objects for leader election since 1.17
  17. - apiGroups: [""]
  18. resources: ["endpoints"]
  19. verbs: ["create"]
  20. - apiGroups: [""]
  21. resources: ["endpoints"]
  22. resourceNames: ["cluster-autoscaler"]
  23. verbs: ["get", "update", "patch", "delete"]
  24. # accessing & modifying cluster state (nodes & pods)
  25. - apiGroups: [""]
  26. resources: ["nodes"]
  27. verbs: ["get", "list", "watch", "update", "patch"]
  28. - apiGroups: [""]
  29. resources: ["pods"]
  30. verbs: ["get", "list", "watch"]
  31. - apiGroups: [""]
  32. resources: ["pods/eviction"]
  33. verbs: ["create"]
  34. # read-only access to cluster state
  35. - apiGroups: [""]
  36. resources: ["services", "replicationcontrollers", "persistentvolumes", "persistentvolumeclaims"]
  37. verbs: ["get", "list", "watch"]
  38. - apiGroups: ["apps"]
  39. resources: ["daemonsets", "replicasets"]
  40. verbs: ["get", "list", "watch"]
  41. - apiGroups: ["apps"]
  42. resources: ["statefulsets"]
  43. verbs: ["get", "list", "watch"]
  44. - apiGroups: ["batch"]
  45. resources: ["jobs"]
  46. verbs: ["get", "list", "watch"]
  47. - apiGroups: ["policy"]
  48. resources: ["poddisruptionbudgets"]
  49. verbs: ["get", "list", "watch"]
  50. - apiGroups: ["storage.k8s.io"]
  51. resources: ["storageclasses", "csinodes"]
  52. verbs: ["get", "list", "watch"]
  53. # misc access
  54. - apiGroups: [""]
  55. resources: ["events"]
  56. verbs: ["create", "update", "patch"]
  57. - apiGroups: [""]
  58. resources: ["configmaps"]
  59. verbs: ["create"]
  60. - apiGroups: [""]
  61. resources: ["configmaps"]
  62. resourceNames: ["cluster-autoscaler-status"]
  63. verbs: ["get", "update", "patch", "delete"]
  64. ---
  65. kind: ClusterRoleBinding
  66. apiVersion: rbac.authorization.k8s.io/v1
  67. metadata:
  68. name: cluster-autoscaler
  69. labels:
  70. addonmanager.kubernetes.io/mode: Reconcile
  71. subjects:
  72. - kind: User
  73. name: cluster-autoscaler
  74. namespace: kube-system
  75. roleRef:
  76. kind: ClusterRole
  77. name: cluster-autoscaler
  78. apiGroup: rbac.authorization.k8s.io