rbac-volume-snapshot-controller.yaml 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. # RBAC file for the volume snapshot controller.
  2. apiVersion: v1
  3. kind: ServiceAccount
  4. metadata:
  5. name: volume-snapshot-controller
  6. namespace: kube-system
  7. labels:
  8. kubernetes.io/cluster-service: "true"
  9. addonmanager.kubernetes.io/mode: Reconcile
  10. ---
  11. kind: ClusterRole
  12. apiVersion: rbac.authorization.k8s.io/v1
  13. metadata:
  14. # rename if there are conflicts
  15. name: volume-snapshot-controller-runner
  16. namespace: kube-system
  17. labels:
  18. kubernetes.io/cluster-service: "true"
  19. addonmanager.kubernetes.io/mode: Reconcile
  20. rules:
  21. - apiGroups: [""]
  22. resources: ["persistentvolumes"]
  23. verbs: ["get", "list", "watch"]
  24. - apiGroups: [""]
  25. resources: ["persistentvolumeclaims"]
  26. verbs: ["get", "list", "watch", "update"]
  27. - apiGroups: ["storage.k8s.io"]
  28. resources: ["storageclasses"]
  29. verbs: ["get", "list", "watch"]
  30. - apiGroups: [""]
  31. resources: ["events"]
  32. verbs: ["list", "watch", "create", "update", "patch"]
  33. - apiGroups: ["snapshot.storage.k8s.io"]
  34. resources: ["volumesnapshotclasses"]
  35. verbs: ["get", "list", "watch"]
  36. - apiGroups: ["snapshot.storage.k8s.io"]
  37. resources: ["volumesnapshotcontents"]
  38. verbs: ["create", "get", "list", "watch", "update", "delete"]
  39. - apiGroups: ["snapshot.storage.k8s.io"]
  40. resources: ["volumesnapshots"]
  41. verbs: ["get", "list", "watch", "update"]
  42. - apiGroups: ["snapshot.storage.k8s.io"]
  43. resources: ["volumesnapshots/status"]
  44. verbs: ["update"]
  45. - apiGroups: ["apiextensions.k8s.io"]
  46. resources: ["customresourcedefinitions"]
  47. verbs: ["create", "list", "watch", "delete", "get", "update"]
  48. ---
  49. kind: ClusterRoleBinding
  50. apiVersion: rbac.authorization.k8s.io/v1
  51. metadata:
  52. name: volume-snapshot-controller-role
  53. namespace: kube-system
  54. labels:
  55. kubernetes.io/cluster-service: "true"
  56. addonmanager.kubernetes.io/mode: Reconcile
  57. subjects:
  58. - kind: ServiceAccount
  59. name: volume-snapshot-controller
  60. namespace: kube-system
  61. roleRef:
  62. kind: ClusterRole
  63. # change the name also here if the ClusterRole gets renamed
  64. name: volume-snapshot-controller-runner
  65. apiGroup: rbac.authorization.k8s.io
  66. ---
  67. kind: Role
  68. apiVersion: rbac.authorization.k8s.io/v1
  69. metadata:
  70. name: volume-snapshot-controller-leaderelection
  71. namespace: kube-system
  72. labels:
  73. kubernetes.io/cluster-service: "true"
  74. addonmanager.kubernetes.io/mode: Reconcile
  75. rules:
  76. - apiGroups: ["coordination.k8s.io"]
  77. resources: ["leases"]
  78. verbs: ["get", "watch", "list", "delete", "update", "create"]
  79. ---
  80. kind: RoleBinding
  81. apiVersion: rbac.authorization.k8s.io/v1
  82. metadata:
  83. name: volume-snapshot-controller-leaderelection
  84. namespace: kube-system
  85. labels:
  86. kubernetes.io/cluster-service: "true"
  87. addonmanager.kubernetes.io/mode: Reconcile
  88. subjects:
  89. - kind: ServiceAccount
  90. name: volume-snapshot-controller
  91. namespace: kube-system
  92. roleRef:
  93. kind: Role
  94. name: volume-snapshot-controller-leaderelection
  95. apiGroup: rbac.authorization.k8s.io