You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

140 lines
4.4 KiB

  1. apiVersion: rbac.authorization.k8s.io/v1
  2. kind: ClusterRole
  3. metadata:
  4. name: scheduler-plugins-scheduler
  5. rules:
  6. - apiGroups: [""]
  7. resources: ["namespaces"]
  8. verbs: ["get", "list", "watch"]
  9. - apiGroups: ["", "events.k8s.io"]
  10. resources: ["events"]
  11. verbs: ["create", "patch", "update"]
  12. - apiGroups: ["coordination.k8s.io"]
  13. resources: ["leases"]
  14. verbs: ["create"]
  15. - apiGroups: ["coordination.k8s.io"]
  16. resourceNames: ["kube-scheduler"]
  17. resources: ["leases"]
  18. verbs: ["get", "update"]
  19. - apiGroups: [""]
  20. resources: ["endpoints"]
  21. verbs: ["create"]
  22. - apiGroups: [""]
  23. resourceNames: ["kube-scheduler"]
  24. resources: ["endpoints"]
  25. verbs: ["get", "update"]
  26. - apiGroups: [""]
  27. resources: ["nodes"]
  28. verbs: ["get", "list", "watch", "patch"]
  29. - apiGroups: [""]
  30. resources: ["pods"]
  31. verbs: ["delete", "get", "list", "watch", "update"]
  32. - apiGroups: [""]
  33. resources: ["bindings", "pods/binding"]
  34. verbs: ["create"]
  35. - apiGroups: [""]
  36. resources: ["pods/status"]
  37. verbs: ["patch", "update"]
  38. - apiGroups: [""]
  39. resources: ["replicationcontrollers", "services"]
  40. verbs: ["get", "list", "watch"]
  41. - apiGroups: ["apps", "extensions"]
  42. resources: ["replicasets"]
  43. verbs: ["get", "list", "watch"]
  44. - apiGroups: ["apps"]
  45. resources: ["statefulsets"]
  46. verbs: ["get", "list", "watch"]
  47. - apiGroups: ["policy"]
  48. resources: ["poddisruptionbudgets"]
  49. verbs: ["get", "list", "watch"]
  50. - apiGroups: [""]
  51. resources: ["persistentvolumeclaims", "persistentvolumes"]
  52. verbs: ["get", "list", "watch", "patch", "update"]
  53. - apiGroups: ["authentication.k8s.io"]
  54. resources: ["tokenreviews"]
  55. verbs: ["create"]
  56. - apiGroups: ["authorization.k8s.io"]
  57. resources: ["subjectaccessreviews"]
  58. verbs: ["create"]
  59. - apiGroups: ["storage.k8s.io"]
  60. resources: ["csinodes", "storageclasses" , "csidrivers" , "csistoragecapacities"]
  61. verbs: ["get", "list", "watch"]
  62. - apiGroups: ["topology.node.k8s.io"]
  63. resources: ["noderesourcetopologies"]
  64. verbs: ["get", "list", "watch"]
  65. # resources need to be updated with the scheduler plugins used
  66. - apiGroups: ["scheduling.x-k8s.io"]
  67. resources: ["podgroups", "elasticquotas", "podgroups/status", "elasticquotas/status"]
  68. verbs: ["get", "list", "watch", "create", "delete", "update", "patch"]
  69. # for network-aware plugins add the following lines (scheduler-plugins v0.27.8)
  70. #- apiGroups: [ "appgroup.diktyo.x-k8s.io" ]
  71. # resources: [ "appgroups" ]
  72. # verbs: [ "get", "list", "watch", "create", "delete", "update", "patch" ]
  73. #- apiGroups: [ "networktopology.diktyo.x-k8s.io" ]
  74. # resources: [ "networktopologies" ]
  75. # verbs: [ "get", "list", "watch", "create", "delete", "update", "patch" ]
  76. ---
  77. kind: ClusterRoleBinding
  78. apiVersion: rbac.authorization.k8s.io/v1
  79. metadata:
  80. name: scheduler-plugins-scheduler
  81. roleRef:
  82. apiGroup: rbac.authorization.k8s.io
  83. kind: ClusterRole
  84. name: scheduler-plugins-scheduler
  85. subjects:
  86. - kind: ServiceAccount
  87. name: scheduler-plugins-scheduler
  88. namespace: {{ scheduler_plugins_namespace }}
  89. ---
  90. kind: ClusterRole
  91. apiVersion: rbac.authorization.k8s.io/v1
  92. metadata:
  93. name: scheduler-plugins-controller
  94. rules:
  95. - apiGroups: [""]
  96. resources: ["pods"]
  97. verbs: ["get", "list", "watch"]
  98. - apiGroups: [""]
  99. resources: ["events"]
  100. verbs: ["create", "patch", "update"]
  101. - apiGroups: [""]
  102. resources: ["nodes"]
  103. verbs: ["get", "list", "watch", "patch"]
  104. - apiGroups: ["topology.node.k8s.io"]
  105. resources: ["noderesourcetopologies"]
  106. verbs: ["get", "list", "watch"]
  107. # resources need to be updated with the scheduler plugins used
  108. - apiGroups: ["scheduling.x-k8s.io"]
  109. resources: ["podgroups", "elasticquotas", "podgroups/status", "elasticquotas/status"]
  110. verbs: ["get", "list", "watch", "create", "delete", "update", "patch"]
  111. ---
  112. kind: ClusterRoleBinding
  113. apiVersion: rbac.authorization.k8s.io/v1
  114. metadata:
  115. name: scheduler-plugins-controller
  116. subjects:
  117. - kind: ServiceAccount
  118. name: scheduler-plugins-controller
  119. namespace: {{ scheduler_plugins_namespace }}
  120. roleRef:
  121. kind: ClusterRole
  122. name: scheduler-plugins-controller
  123. apiGroup: rbac.authorization.k8s.io
  124. ---
  125. apiVersion: rbac.authorization.k8s.io/v1
  126. kind: RoleBinding
  127. metadata:
  128. name: sched-plugins::extension-apiserver-authentication-reader
  129. namespace: kube-system
  130. roleRef:
  131. apiGroup: rbac.authorization.k8s.io
  132. kind: Role
  133. name: extension-apiserver-authentication-reader
  134. subjects:
  135. - kind: ServiceAccount
  136. name: scheduler-plugins-scheduler
  137. namespace: {{ scheduler_plugins_namespace }}
  138. - kind: ServiceAccount
  139. name: scheduler-plugins-controller
  140. namespace: {{ scheduler_plugins_namespace }}