common.yaml 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329
  1. ####################################################################################################
  2. # Create the common resources that are necessary to start the operator and the ceph cluster.
  3. # These resources *must* be created before the operator.yaml and cluster.yaml or their variants.
  4. # The samples all assume that a single operator will manage a single cluster crd in the same
  5. # "rook-ceph" namespace.
  6. ####################################################################################################
  7. # Namespace where the operator and other rook resources are created
  8. apiVersion: v1
  9. kind: Namespace
  10. metadata:
  11. name: rook-ceph # namespace:cluster
  12. ---
  13. kind: ClusterRole
  14. apiVersion: rbac.authorization.k8s.io/v1
  15. metadata:
  16. name: cephfs-csi-nodeplugin
  17. rules:
  18. - apiGroups: [""]
  19. resources: ["nodes"]
  20. verbs: ["get"]
  21. - apiGroups: [""]
  22. resources: ["secrets"]
  23. verbs: ["get"]
  24. - apiGroups: [""]
  25. resources: ["configmaps"]
  26. verbs: ["get"]
  27. - apiGroups: [""]
  28. resources: ["serviceaccounts"]
  29. verbs: ["get"]
  30. - apiGroups: [""]
  31. resources: ["serviceaccounts/token"]
  32. verbs: ["create"]
  33. ---
  34. kind: ClusterRole
  35. apiVersion: rbac.authorization.k8s.io/v1
  36. metadata:
  37. name: cephfs-external-provisioner-runner
  38. rules:
  39. - apiGroups: [""]
  40. resources: ["secrets"]
  41. verbs: ["get", "list"]
  42. - apiGroups: [""]
  43. resources: ["configmaps"]
  44. verbs: ["get"]
  45. - apiGroups: [""]
  46. resources: ["nodes"]
  47. verbs: ["get", "list", "watch"]
  48. - apiGroups: ["storage.k8s.io"]
  49. resources: ["csinodes"]
  50. verbs: ["get", "list", "watch"]
  51. - apiGroups: [""]
  52. resources: ["persistentvolumes"]
  53. verbs: ["get", "list", "watch", "create", "update", "delete", "patch"]
  54. - apiGroups: [""]
  55. resources: ["persistentvolumeclaims"]
  56. verbs: ["get", "list", "watch", "patch", "update"]
  57. - apiGroups: ["storage.k8s.io"]
  58. resources: ["storageclasses"]
  59. verbs: ["get", "list", "watch"]
  60. - apiGroups: [""]
  61. resources: ["events"]
  62. verbs: ["list", "watch", "create", "update", "patch"]
  63. - apiGroups: ["storage.k8s.io"]
  64. resources: ["volumeattachments"]
  65. verbs: ["get", "list", "watch", "patch"]
  66. - apiGroups: ["storage.k8s.io"]
  67. resources: ["volumeattachments/status"]
  68. verbs: ["patch"]
  69. - apiGroups: [""]
  70. resources: ["persistentvolumeclaims/status"]
  71. verbs: ["patch"]
  72. - apiGroups: ["snapshot.storage.k8s.io"]
  73. resources: ["volumesnapshots"]
  74. verbs: ["get", "list", "watch"]
  75. - apiGroups: ["snapshot.storage.k8s.io"]
  76. resources: ["volumesnapshotclasses"]
  77. verbs: ["get", "list", "watch"]
  78. - apiGroups: ["snapshot.storage.k8s.io"]
  79. resources: ["volumesnapshotcontents"]
  80. verbs: ["get", "list", "watch", "patch", "update"]
  81. - apiGroups: ["snapshot.storage.k8s.io"]
  82. resources: ["volumesnapshotcontents/status"]
  83. verbs: ["update", "patch"]
  84. - apiGroups: ["groupsnapshot.storage.k8s.io"]
  85. resources: ["volumegroupsnapshotclasses"]
  86. verbs: ["get", "list", "watch"]
  87. - apiGroups: ["groupsnapshot.storage.k8s.io"]
  88. resources: ["volumegroupsnapshotcontents"]
  89. verbs: ["get", "list", "watch", "update", "patch"]
  90. - apiGroups: ["groupsnapshot.storage.k8s.io"]
  91. resources: ["volumegroupsnapshotcontents/status"]
  92. verbs: ["update", "patch"]
  93. - apiGroups: [""]
  94. resources: ["serviceaccounts"]
  95. verbs: ["get"]
  96. - apiGroups: [""]
  97. resources: ["serviceaccounts/token"]
  98. verbs: ["create"]
  99. - apiGroups: ["authentication.k8s.io"]
  100. resources: ["tokenreviews"]
  101. verbs: ["create"]
  102. ---
  103. kind: ClusterRole
  104. apiVersion: rbac.authorization.k8s.io/v1
  105. metadata:
  106. name: objectstorage-provisioner-role
  107. labels:
  108. app.kubernetes.io/part-of: container-object-storage-interface
  109. app.kubernetes.io/component: driver-ceph
  110. app.kubernetes.io/name: cosi-driver-ceph
  111. rules:
  112. - apiGroups: ["objectstorage.k8s.io"]
  113. resources: ["buckets", "bucketaccesses", "bucketclaims", "bucketaccessclasses", "buckets/status", "bucketaccesses/status", "bucketclaims/status", "bucketaccessclasses/status"]
  114. verbs: ["get", "list", "watch", "update", "create", "delete"]
  115. - apiGroups: ["coordination.k8s.io"]
  116. resources: ["leases"]
  117. verbs: ["get", "watch", "list", "delete", "update", "create"]
  118. - apiGroups: [""]
  119. resources: ["secrets", "events"]
  120. verbs: ["get", "delete", "update", "create"]
  121. ---
  122. kind: ClusterRole
  123. apiVersion: rbac.authorization.k8s.io/v1
  124. metadata:
  125. name: rbd-csi-nodeplugin
  126. labels:
  127. operator: rook
  128. storage-backend: ceph
  129. app.kubernetes.io/part-of: rook-ceph-operator
  130. rules:
  131. - apiGroups: [""]
  132. resources: ["secrets"]
  133. verbs: ["get", "list"]
  134. - apiGroups: [""]
  135. resources: ["persistentvolumes"]
  136. verbs: ["get", "list"]
  137. - apiGroups: ["storage.k8s.io"]
  138. resources: ["volumeattachments"]
  139. verbs: ["get", "list"]
  140. - apiGroups: [""]
  141. resources: ["configmaps"]
  142. verbs: ["get"]
  143. - apiGroups: [""]
  144. resources: ["serviceaccounts"]
  145. verbs: ["get"]
  146. - apiGroups: [""]
  147. resources: ["serviceaccounts/token"]
  148. verbs: ["create"]
  149. - apiGroups: [""]
  150. resources: ["nodes"]
  151. verbs: ["get"]
  152. - apiGroups: ["authentication.k8s.io"]
  153. resources: ["tokenreviews"]
  154. verbs: ["create"]
  155. ---
  156. kind: ClusterRole
  157. apiVersion: rbac.authorization.k8s.io/v1
  158. metadata:
  159. name: rbd-external-provisioner-runner
  160. rules:
  161. - apiGroups: [""]
  162. resources: ["secrets"]
  163. verbs: ["get", "list", "watch"]
  164. - apiGroups: [""]
  165. resources: ["persistentvolumes"]
  166. verbs: ["get", "list", "watch", "create", "update", "delete", "patch"]
  167. - apiGroups: [""]
  168. resources: ["persistentvolumeclaims"]
  169. verbs: ["get", "list", "watch", "update"]
  170. - apiGroups: ["storage.k8s.io"]
  171. resources: ["storageclasses"]
  172. verbs: ["get", "list", "watch"]
  173. - apiGroups: [""]
  174. resources: ["events"]
  175. verbs: ["list", "watch", "create", "update", "patch"]
  176. - apiGroups: ["storage.k8s.io"]
  177. resources: ["volumeattachments"]
  178. verbs: ["get", "list", "watch", "patch"]
  179. - apiGroups: ["storage.k8s.io"]
  180. resources: ["volumeattachments/status"]
  181. verbs: ["patch"]
  182. - apiGroups: [""]
  183. resources: ["nodes"]
  184. verbs: ["get", "list", "watch"]
  185. - apiGroups: ["storage.k8s.io"]
  186. resources: ["csinodes"]
  187. verbs: ["get", "list", "watch"]
  188. - apiGroups: [""]
  189. resources: ["persistentvolumeclaims/status"]
  190. verbs: ["patch"]
  191. - apiGroups: ["snapshot.storage.k8s.io"]
  192. resources: ["volumesnapshots"]
  193. verbs: ["get", "list", "watch"]
  194. - apiGroups: ["snapshot.storage.k8s.io"]
  195. resources: ["volumesnapshotclasses"]
  196. verbs: ["get", "list", "watch"]
  197. - apiGroups: ["snapshot.storage.k8s.io"]
  198. resources: ["volumesnapshotcontents"]
  199. verbs: ["get", "list", "watch", "patch", "update"]
  200. - apiGroups: ["snapshot.storage.k8s.io"]
  201. resources: ["volumesnapshotcontents/status"]
  202. verbs: ["update", "patch"]
  203. - apiGroups: ["groupsnapshot.storage.k8s.io"]
  204. resources: ["volumegroupsnapshotclasses"]
  205. verbs: ["get", "list", "watch"]
  206. - apiGroups: ["groupsnapshot.storage.k8s.io"]
  207. resources: ["volumegroupsnapshotcontents"]
  208. verbs: ["get", "list", "watch", "update", "patch"]
  209. - apiGroups: ["groupsnapshot.storage.k8s.io"]
  210. resources: ["volumegroupsnapshotcontents/status"]
  211. verbs: ["update", "patch"]
  212. - apiGroups: [""]
  213. resources: ["configmaps"]
  214. verbs: ["get"]
  215. - apiGroups: [""]
  216. resources: ["serviceaccounts"]
  217. verbs: ["get"]
  218. - apiGroups: [""]
  219. resources: ["serviceaccounts/token"]
  220. verbs: ["create"]
  221. - apiGroups: [""]
  222. resources: ["nodes"]
  223. verbs: ["get", "list", "watch"]
  224. - apiGroups: ["replication.storage.openshift.io"]
  225. resources: ["volumegroupreplicationcontents"]
  226. verbs: ["get", "list", "watch"]
  227. - apiGroups: ["replication.storage.openshift.io"]
  228. resources: ["volumegroupreplicationclasses"]
  229. verbs: ["get", "list", "watch"]
  230. - apiGroups: ["authentication.k8s.io"]
  231. resources: ["tokenreviews"]
  232. verbs: ["create"]
  233. ---
  234. # The cluster role for managing all the cluster-specific resources in a namespace
  235. apiVersion: rbac.authorization.k8s.io/v1
  236. kind: ClusterRole
  237. metadata:
  238. name: rook-ceph-cluster-mgmt
  239. labels:
  240. operator: rook
  241. storage-backend: ceph
  242. app.kubernetes.io/part-of: rook-ceph-operator
  243. rules:
  244. - apiGroups:
  245. - ""
  246. - apps
  247. - extensions
  248. resources:
  249. - secrets
  250. - pods
  251. - pods/log
  252. - services
  253. - configmaps
  254. - deployments
  255. - daemonsets
  256. verbs:
  257. - get
  258. - list
  259. - watch
  260. - patch
  261. - create
  262. - update
  263. - delete
  264. ---
  265. # The cluster role for managing the Rook CRDs
  266. apiVersion: rbac.authorization.k8s.io/v1
  267. # Rook watches for its CRDs in all namespaces, so this should be a cluster-scoped role unless the
  268. # operator config `ROOK_CURRENT_NAMESPACE_ONLY=true`.
  269. kind: ClusterRole
  270. metadata:
  271. name: rook-ceph-global
  272. labels:
  273. operator: rook
  274. storage-backend: ceph
  275. app.kubernetes.io/part-of: rook-ceph-operator
  276. rules:
  277. - apiGroups:
  278. - ""
  279. resources:
  280. # Pod access is needed for fencing
  281. - pods
  282. # Node access is needed for determining nodes where mons should run
  283. - nodes
  284. - nodes/proxy
  285. # Rook watches secrets which it uses to configure access to external resources.
  286. # e.g., external Ceph cluster or object store
  287. - secrets
  288. # Rook watches for changes to the rook-operator-config configmap
  289. - configmaps
  290. verbs:
  291. - get
  292. - list
  293. - watch
  294. - apiGroups:
  295. - ""
  296. - "discovery.k8s.io"
  297. resources:
  298. # Rook creates events for its custom resources
  299. - events
  300. # Rook creates PVs and PVCs for OSDs managed by the Rook provisioner
  301. - persistentvolumes
  302. - persistentvolumeclaims
  303. # Rook creates endpoints for mgr and object store access
  304. - endpoints
  305. - services
  306. - endpointslices
  307. - endpointslices/restricted
  308. verbs:
  309. - get
  310. - list
  311. - watch
  312. - patch
  313. - create
  314. - update
  315. - delete
  316. - apiGroups:
  317. - storage.k8s.io
  318. resources:
  319. - storageclasses
  320. verbs:
  321. - get
  322. - list
  323. - watch
  324. - apiGroups:
  325. - batch
  326. resources:
  327. - jobs
  328. - cronjobs
  329. verbs:
  330. - get
  331. - list
  332. - watch
  333. - create
  334. - update
  335. - delete
  336. - deletecollection
  337. # The Rook operator must be able to watch all ceph.rook.io resources to reconcile them.
  338. - apiGroups: ["ceph.rook.io"]
  339. resources:
  340. - cephclients
  341. - cephclusters
  342. - cephblockpools
  343. - cephfilesystems
  344. - cephnfses
  345. - cephobjectstores
  346. - cephobjectstoreusers
  347. - cephobjectrealms
  348. - cephobjectzonegroups
  349. - cephobjectzones
  350. - cephbuckettopics
  351. - cephbucketnotifications
  352. - cephrbdmirrors
  353. - cephfilesystemmirrors
  354. - cephfilesystemsubvolumegroups
  355. - cephblockpoolradosnamespaces
  356. - cephcosidrivers
  357. verbs:
  358. - get
  359. - list
  360. - watch
  361. # Ideally the update permission is not required, but Rook needs it to add finalizers to resources.
  362. - update
  363. # Rook must have update access to status subresources for its custom resources.
  364. - apiGroups: ["ceph.rook.io"]
  365. resources:
  366. - cephclients/status
  367. - cephclusters/status
  368. - cephblockpools/status
  369. - cephfilesystems/status
  370. - cephnfses/status
  371. - cephobjectstores/status
  372. - cephobjectstoreusers/status
  373. - cephobjectrealms/status
  374. - cephobjectzonegroups/status
  375. - cephobjectzones/status
  376. - cephbuckettopics/status
  377. - cephbucketnotifications/status
  378. - cephrbdmirrors/status
  379. - cephfilesystemmirrors/status
  380. - cephfilesystemsubvolumegroups/status
  381. - cephblockpoolradosnamespaces/status
  382. verbs: ["update"]
  383. # The "*/finalizers" permission may need to be strictly given for K8s clusters where
  384. # OwnerReferencesPermissionEnforcement is enabled so that Rook can set blockOwnerDeletion on
  385. # resources owned by Rook CRs (e.g., a Secret owned by an OSD Deployment). See more:
  386. # https://kubernetes.io/docs/reference/access-authn-authz/_print/#ownerreferencespermissionenforcement
  387. - apiGroups: ["ceph.rook.io"]
  388. resources:
  389. - cephclients/finalizers
  390. - cephclusters/finalizers
  391. - cephblockpools/finalizers
  392. - cephfilesystems/finalizers
  393. - cephnfses/finalizers
  394. - cephobjectstores/finalizers
  395. - cephobjectstoreusers/finalizers
  396. - cephobjectrealms/finalizers
  397. - cephobjectzonegroups/finalizers
  398. - cephobjectzones/finalizers
  399. - cephbuckettopics/finalizers
  400. - cephbucketnotifications/finalizers
  401. - cephrbdmirrors/finalizers
  402. - cephfilesystemmirrors/finalizers
  403. - cephfilesystemsubvolumegroups/finalizers
  404. - cephblockpoolradosnamespaces/finalizers
  405. verbs: ["update"]
  406. - apiGroups:
  407. - policy
  408. - apps
  409. - extensions
  410. resources:
  411. # This is for the clusterdisruption controller
  412. - poddisruptionbudgets
  413. # This is for both clusterdisruption and nodedrain controllers
  414. - deployments
  415. - replicasets
  416. verbs:
  417. - get
  418. - list
  419. - watch
  420. - create
  421. - update
  422. - delete
  423. - deletecollection
  424. - apiGroups:
  425. - apps
  426. resources:
  427. # This is to add osd deployment owner ref on key rotation
  428. # cron jobs.
  429. - deployments/finalizers
  430. verbs:
  431. - update
  432. - apiGroups:
  433. - healthchecking.openshift.io
  434. resources:
  435. - machinedisruptionbudgets
  436. verbs:
  437. - get
  438. - list
  439. - watch
  440. - create
  441. - update
  442. - delete
  443. - apiGroups:
  444. - machine.openshift.io
  445. resources:
  446. - machines
  447. verbs:
  448. - get
  449. - list
  450. - watch
  451. - create
  452. - update
  453. - delete
  454. - apiGroups:
  455. - storage.k8s.io
  456. resources:
  457. - csidrivers
  458. verbs:
  459. - create
  460. - delete
  461. - get
  462. - update
  463. - apiGroups:
  464. - k8s.cni.cncf.io
  465. resources:
  466. - network-attachment-definitions
  467. verbs:
  468. - get
  469. ---
  470. # Aspects of ceph-mgr that require cluster-wide access
  471. kind: ClusterRole
  472. apiVersion: rbac.authorization.k8s.io/v1
  473. metadata:
  474. name: rook-ceph-mgr-cluster
  475. labels:
  476. operator: rook
  477. storage-backend: ceph
  478. app.kubernetes.io/part-of: rook-ceph-operator
  479. rules:
  480. - apiGroups:
  481. - ""
  482. resources:
  483. - configmaps
  484. - nodes
  485. - nodes/proxy
  486. - persistentvolumes
  487. verbs:
  488. - get
  489. - list
  490. - watch
  491. - apiGroups:
  492. - ""
  493. resources:
  494. - events
  495. verbs:
  496. - create
  497. - patch
  498. - list
  499. - get
  500. - watch
  501. - apiGroups:
  502. - storage.k8s.io
  503. resources:
  504. - storageclasses
  505. verbs:
  506. - get
  507. - list
  508. - watch
  509. ---
  510. # Aspects of ceph-mgr that require access to the system namespace
  511. kind: ClusterRole
  512. apiVersion: rbac.authorization.k8s.io/v1
  513. metadata:
  514. name: rook-ceph-mgr-system
  515. rules:
  516. - apiGroups:
  517. - ""
  518. resources:
  519. - configmaps
  520. verbs:
  521. - get
  522. - list
  523. - watch
  524. ---
  525. # Used for provisioning ObjectBuckets (OBs) in response to ObjectBucketClaims (OBCs).
  526. # Note: Rook runs a copy of the lib-bucket-provisioner's OBC controller.
  527. # OBCs can be created in any Kubernetes namespace, so this must be a cluster-scoped role.
  528. kind: ClusterRole
  529. apiVersion: rbac.authorization.k8s.io/v1
  530. metadata:
  531. name: rook-ceph-object-bucket
  532. labels:
  533. operator: rook
  534. storage-backend: ceph
  535. app.kubernetes.io/part-of: rook-ceph-operator
  536. rules:
  537. - apiGroups: [""]
  538. resources: ["secrets", "configmaps"]
  539. verbs:
  540. # OBC controller creates secrets and configmaps containing information for users about how to
  541. # connect to object buckets. It deletes them when an OBC is deleted.
  542. - get
  543. - create
  544. - update
  545. - delete
  546. - apiGroups: ["storage.k8s.io"]
  547. resources: ["storageclasses"]
  548. verbs:
  549. # OBC controller gets parameters from the OBC's storageclass
  550. # Rook gets additional parameters from the OBC's storageclass
  551. - get
  552. - apiGroups: ["objectbucket.io"]
  553. resources: ["objectbucketclaims"]
  554. verbs:
  555. # OBC controller needs to list/watch OBCs and get latest version of a reconciled OBC
  556. - list
  557. - watch
  558. - get
  559. # Ideally, update should not be needed, but the OBC controller updates the OBC with bucket
  560. # information outside of the status subresource
  561. - update
  562. # OBC controller does not delete OBCs; users do this
  563. - apiGroups: ["objectbucket.io"]
  564. resources: ["objectbuckets"]
  565. verbs:
  566. # OBC controller needs to list/watch OBs and get latest version of a reconciled OB
  567. - list
  568. - watch
  569. - get
  570. # OBC controller creates an OB when an OBC's bucket has been provisioned by Ceph, updates them
  571. # when an OBC is updated, and deletes them when the OBC is de-provisioned.
  572. - create
  573. - update
  574. - delete
  575. - apiGroups: ["objectbucket.io"]
  576. resources: ["objectbucketclaims/status", "objectbuckets/status"]
  577. verbs:
  578. # OBC controller updates OBC and OB statuses
  579. - update
  580. - apiGroups: ["objectbucket.io"]
  581. # This does not strictly allow the OBC/OB controllers to update finalizers. That is handled by
  582. # the direct "update" permissions above. Instead, this allows Rook's controller to create
  583. # resources which are owned by OBs/OBCs and where blockOwnerDeletion is set.
  584. resources: ["objectbucketclaims/finalizers", "objectbuckets/finalizers"]
  585. verbs:
  586. - update
  587. ---
  588. kind: ClusterRole
  589. apiVersion: rbac.authorization.k8s.io/v1
  590. metadata:
  591. name: rook-ceph-osd
  592. rules:
  593. - apiGroups:
  594. - ""
  595. resources:
  596. - nodes
  597. verbs:
  598. - get
  599. - list
  600. ---
  601. kind: ClusterRole
  602. apiVersion: rbac.authorization.k8s.io/v1
  603. metadata:
  604. name: rook-ceph-system
  605. labels:
  606. operator: rook
  607. storage-backend: ceph
  608. app.kubernetes.io/part-of: rook-ceph-operator
  609. rules:
  610. # Most resources are represented by a string representation of their name, such as "pods", just as it appears in the URL for the relevant API endpoint.
  611. # However, some Kubernetes APIs involve a "subresource", such as the logs for a pod. [...]
  612. # To represent this in an RBAC role, use a slash to delimit the resource and subresource.
  613. # https://kubernetes.io/docs/reference/access-authn-authz/rbac/#referring-to-resources
  614. - apiGroups: [""]
  615. resources: ["pods", "pods/log"]
  616. verbs: ["get", "list"]
  617. - apiGroups: [""]
  618. resources: ["pods/exec"]
  619. verbs: ["create"]
  620. - apiGroups: ["csiaddons.openshift.io"]
  621. resources: ["networkfences"]
  622. verbs: ["create", "get", "update", "delete", "watch", "list", "deletecollection"]
  623. - apiGroups: ["apiextensions.k8s.io"]
  624. resources: ["customresourcedefinitions"]
  625. verbs: ["get"]
  626. - apiGroups: ["csi.ceph.io"]
  627. resources: ["cephconnections"]
  628. verbs: ["create", "delete", "get", "list", "update", "watch"]
  629. - apiGroups: ["csi.ceph.io"]
  630. resources: ["clientprofiles"]
  631. verbs: ["create", "delete", "get", "list", "update", "watch"]
  632. - apiGroups: ["csi.ceph.io"]
  633. resources: ["operatorconfigs"]
  634. verbs: ["create", "delete", "get", "list", "update", "watch"]
  635. - apiGroups: ["csi.ceph.io"]
  636. resources: ["drivers"]
  637. verbs: ["create", "delete", "get", "list", "update", "watch"]
  638. ---
  639. # This is required by operator-sdk to map the cluster/clusterrolebindings with SA
  640. # otherwise operator-sdk will create a individual file for these.
  641. kind: ClusterRoleBinding
  642. apiVersion: rbac.authorization.k8s.io/v1
  643. metadata:
  644. name: cephfs-csi-nodeplugin-role
  645. subjects:
  646. - kind: ServiceAccount
  647. name: rook-csi-cephfs-plugin-sa
  648. namespace: rook-ceph # namespace:operator
  649. roleRef:
  650. kind: ClusterRole
  651. name: cephfs-csi-nodeplugin
  652. apiGroup: rbac.authorization.k8s.io
  653. ---
  654. kind: ClusterRoleBinding
  655. apiVersion: rbac.authorization.k8s.io/v1
  656. metadata:
  657. name: cephfs-csi-provisioner-role
  658. subjects:
  659. - kind: ServiceAccount
  660. name: rook-csi-cephfs-provisioner-sa
  661. namespace: rook-ceph # namespace:operator
  662. roleRef:
  663. kind: ClusterRole
  664. name: cephfs-external-provisioner-runner
  665. apiGroup: rbac.authorization.k8s.io
  666. ---
  667. # RBAC for ceph cosi driver service account
  668. kind: ClusterRoleBinding
  669. apiVersion: rbac.authorization.k8s.io/v1
  670. metadata:
  671. name: objectstorage-provisioner-role-binding
  672. labels:
  673. app.kubernetes.io/part-of: container-object-storage-interface
  674. app.kubernetes.io/component: driver-ceph
  675. app.kubernetes.io/name: cosi-driver-ceph
  676. subjects:
  677. - kind: ServiceAccount
  678. name: objectstorage-provisioner
  679. namespace: rook-ceph # namespace:operator
  680. roleRef:
  681. kind: ClusterRole
  682. name: objectstorage-provisioner-role
  683. apiGroup: rbac.authorization.k8s.io
  684. ---
  685. kind: ClusterRoleBinding
  686. apiVersion: rbac.authorization.k8s.io/v1
  687. metadata:
  688. name: rbd-csi-nodeplugin
  689. subjects:
  690. - kind: ServiceAccount
  691. name: rook-csi-rbd-plugin-sa
  692. namespace: rook-ceph # namespace:operator
  693. roleRef:
  694. kind: ClusterRole
  695. name: rbd-csi-nodeplugin
  696. apiGroup: rbac.authorization.k8s.io
  697. ---
  698. kind: ClusterRoleBinding
  699. apiVersion: rbac.authorization.k8s.io/v1
  700. metadata:
  701. name: rbd-csi-provisioner-role
  702. subjects:
  703. - kind: ServiceAccount
  704. name: rook-csi-rbd-provisioner-sa
  705. namespace: rook-ceph # namespace:operator
  706. roleRef:
  707. kind: ClusterRole
  708. name: rbd-external-provisioner-runner
  709. apiGroup: rbac.authorization.k8s.io
  710. ---
  711. # Grant the rook system daemons cluster-wide access to manage the Rook CRDs, PVCs, and storage classes
  712. kind: ClusterRoleBinding
  713. apiVersion: rbac.authorization.k8s.io/v1
  714. metadata:
  715. name: rook-ceph-global
  716. labels:
  717. operator: rook
  718. storage-backend: ceph
  719. app.kubernetes.io/part-of: rook-ceph-operator
  720. roleRef:
  721. apiGroup: rbac.authorization.k8s.io
  722. kind: ClusterRole
  723. name: rook-ceph-global
  724. subjects:
  725. - kind: ServiceAccount
  726. name: rook-ceph-system
  727. namespace: rook-ceph # namespace:operator
  728. ---
  729. # Allow the ceph mgr to access cluster-wide resources necessary for the mgr modules
  730. kind: ClusterRoleBinding
  731. apiVersion: rbac.authorization.k8s.io/v1
  732. metadata:
  733. name: rook-ceph-mgr-cluster
  734. roleRef:
  735. apiGroup: rbac.authorization.k8s.io
  736. kind: ClusterRole
  737. name: rook-ceph-mgr-cluster
  738. subjects:
  739. - kind: ServiceAccount
  740. name: rook-ceph-mgr
  741. namespace: rook-ceph # namespace:cluster
  742. ---
  743. kind: ClusterRoleBinding
  744. # Give Rook-Ceph Operator permissions to provision ObjectBuckets in response to ObjectBucketClaims.
  745. apiVersion: rbac.authorization.k8s.io/v1
  746. metadata:
  747. name: rook-ceph-object-bucket
  748. roleRef:
  749. apiGroup: rbac.authorization.k8s.io
  750. kind: ClusterRole
  751. name: rook-ceph-object-bucket
  752. subjects:
  753. - kind: ServiceAccount
  754. name: rook-ceph-system
  755. namespace: rook-ceph # namespace:operator
  756. ---
  757. # Allow the ceph osd to access cluster-wide resources necessary for determining their topology location
  758. kind: ClusterRoleBinding
  759. apiVersion: rbac.authorization.k8s.io/v1
  760. metadata:
  761. name: rook-ceph-osd
  762. roleRef:
  763. apiGroup: rbac.authorization.k8s.io
  764. kind: ClusterRole
  765. name: rook-ceph-osd
  766. subjects:
  767. - kind: ServiceAccount
  768. name: rook-ceph-osd
  769. namespace: rook-ceph # namespace:cluster
  770. ---
  771. kind: ClusterRoleBinding
  772. apiVersion: rbac.authorization.k8s.io/v1
  773. metadata:
  774. name: rook-ceph-system
  775. labels:
  776. operator: rook
  777. storage-backend: ceph
  778. app.kubernetes.io/part-of: rook-ceph-operator
  779. roleRef:
  780. apiGroup: rbac.authorization.k8s.io
  781. kind: ClusterRole
  782. name: rook-ceph-system
  783. subjects:
  784. - kind: ServiceAccount
  785. name: rook-ceph-system
  786. namespace: rook-ceph # namespace:operator
  787. ---
  788. kind: Role
  789. apiVersion: rbac.authorization.k8s.io/v1
  790. metadata:
  791. name: cephfs-external-provisioner-cfg
  792. namespace: rook-ceph # namespace:operator
  793. rules:
  794. - apiGroups: ["coordination.k8s.io"]
  795. resources: ["leases"]
  796. verbs: ["get", "watch", "list", "delete", "update", "create"]
  797. - apiGroups: ["csiaddons.openshift.io"]
  798. resources: ["csiaddonsnodes"]
  799. verbs: ["get", "watch", "list", "create", "update", "delete"]
  800. - apiGroups: [""]
  801. resources: ["pods"]
  802. verbs: ["get"]
  803. - apiGroups: ["apps"]
  804. resources: ["replicasets"]
  805. verbs: ["get"]
  806. - apiGroups: ["apps"]
  807. resources: ["deployments/finalizers", "daemonsets/finalizers"]
  808. verbs: ["update"]
  809. ---
  810. kind: Role
  811. apiVersion: rbac.authorization.k8s.io/v1
  812. metadata:
  813. name: rbd-csi-nodeplugin
  814. namespace: rook-ceph # namespace:operator
  815. rules:
  816. - apiGroups: ["csiaddons.openshift.io"]
  817. resources: ["csiaddonsnodes"]
  818. verbs: ["get", "watch", "list", "create", "update", "delete"]
  819. - apiGroups: [""]
  820. resources: ["pods"]
  821. verbs: ["get"]
  822. - apiGroups: ["apps"]
  823. resources: ["replicasets"]
  824. verbs: ["get"]
  825. - apiGroups: ["apps"]
  826. resources: ["deployments/finalizers", "daemonsets/finalizers"]
  827. verbs: ["update"]
  828. ---
  829. kind: Role
  830. apiVersion: rbac.authorization.k8s.io/v1
  831. metadata:
  832. name: rbd-external-provisioner-cfg
  833. namespace: rook-ceph # namespace:operator
  834. rules:
  835. - apiGroups: ["coordination.k8s.io"]
  836. resources: ["leases"]
  837. verbs: ["get", "watch", "list", "delete", "update", "create"]
  838. - apiGroups: ["csiaddons.openshift.io"]
  839. resources: ["csiaddonsnodes"]
  840. verbs: ["get", "watch", "list", "create", "update", "delete"]
  841. - apiGroups: [""]
  842. resources: ["pods"]
  843. verbs: ["get"]
  844. - apiGroups: ["apps"]
  845. resources: ["replicasets"]
  846. verbs: ["get"]
  847. - apiGroups: ["apps"]
  848. resources: ["deployments/finalizers", "daemonsets/finalizers"]
  849. verbs: ["update"]
  850. ---
  851. kind: Role
  852. apiVersion: rbac.authorization.k8s.io/v1
  853. metadata:
  854. name: rook-ceph-cmd-reporter
  855. namespace: rook-ceph # namespace:cluster
  856. rules:
  857. - apiGroups:
  858. - ""
  859. resources:
  860. - pods
  861. - configmaps
  862. verbs:
  863. - get
  864. - list
  865. - watch
  866. - create
  867. - update
  868. - delete
  869. ---
  870. # Aspects of ceph-mgr that operate within the cluster's namespace
  871. kind: Role
  872. apiVersion: rbac.authorization.k8s.io/v1
  873. metadata:
  874. name: rook-ceph-mgr
  875. namespace: rook-ceph # namespace:cluster
  876. rules:
  877. - apiGroups:
  878. - ""
  879. resources:
  880. - pods
  881. - services
  882. - pods/log
  883. verbs:
  884. - get
  885. - list
  886. - watch
  887. - create
  888. - update
  889. - delete
  890. - apiGroups:
  891. - batch
  892. resources:
  893. - jobs
  894. verbs:
  895. - get
  896. - list
  897. - watch
  898. - create
  899. - update
  900. - delete
  901. - apiGroups:
  902. - ceph.rook.io
  903. resources:
  904. - cephclients
  905. - cephclusters
  906. - cephblockpools
  907. - cephfilesystems
  908. - cephnfses
  909. - cephobjectstores
  910. - cephobjectstoreusers
  911. - cephobjectrealms
  912. - cephobjectzonegroups
  913. - cephobjectzones
  914. - cephbuckettopics
  915. - cephbucketnotifications
  916. - cephrbdmirrors
  917. - cephfilesystemmirrors
  918. - cephfilesystemsubvolumegroups
  919. - cephblockpoolradosnamespaces
  920. - cephcosidrivers
  921. verbs:
  922. - get
  923. - list
  924. - watch
  925. - create
  926. - update
  927. - delete
  928. - patch
  929. - apiGroups:
  930. - apps
  931. resources:
  932. - deployments/scale
  933. - deployments
  934. verbs:
  935. - patch
  936. - delete
  937. - apiGroups:
  938. - ''
  939. resources:
  940. - persistentvolumeclaims
  941. verbs:
  942. - delete
  943. ---
  944. kind: Role
  945. apiVersion: rbac.authorization.k8s.io/v1
  946. metadata:
  947. name: rook-ceph-osd
  948. namespace: rook-ceph # namespace:cluster
  949. rules:
  950. # this is needed for rook's "key-management" CLI to fetch the vault token from the secret when
  951. # validating the connection details and for key rotation operations.
  952. - apiGroups: [""]
  953. resources: ["secrets"]
  954. verbs: ["get", "update"]
  955. - apiGroups: [""]
  956. resources: ["configmaps"]
  957. verbs: ["get", "list", "watch", "create", "update", "delete"]
  958. - apiGroups: ["ceph.rook.io"]
  959. resources: ["cephclusters", "cephclusters/finalizers"]
  960. verbs: ["get", "list", "create", "update", "delete"]
  961. ---
  962. # Aspects of ceph osd purge job that require access to the cluster namespace
  963. kind: Role
  964. apiVersion: rbac.authorization.k8s.io/v1
  965. metadata:
  966. name: rook-ceph-purge-osd
  967. namespace: rook-ceph # namespace:cluster
  968. rules:
  969. - apiGroups: [""]
  970. resources: ["configmaps"]
  971. verbs: ["get"]
  972. - apiGroups: ["apps"]
  973. resources: ["deployments"]
  974. verbs: ["get", "delete"]
  975. - apiGroups: ["batch"]
  976. resources: ["jobs"]
  977. verbs: ["get", "list", "delete"]
  978. - apiGroups: [""]
  979. resources: ["persistentvolumeclaims"]
  980. verbs: ["get", "update", "delete", "list"]
  981. ---
  982. # Allow the operator to manage resources in its own namespace
  983. apiVersion: rbac.authorization.k8s.io/v1
  984. kind: Role
  985. metadata:
  986. name: rook-ceph-system
  987. namespace: rook-ceph # namespace:operator
  988. labels:
  989. operator: rook
  990. storage-backend: ceph
  991. app.kubernetes.io/part-of: rook-ceph-operator
  992. rules:
  993. - apiGroups:
  994. - ""
  995. resources:
  996. - pods
  997. - configmaps
  998. - services
  999. verbs:
  1000. - get
  1001. - list
  1002. - watch
  1003. - patch
  1004. - create
  1005. - update
  1006. - delete
  1007. - apiGroups:
  1008. - apps
  1009. - extensions
  1010. resources:
  1011. - daemonsets
  1012. - statefulsets
  1013. - deployments
  1014. verbs:
  1015. - get
  1016. - list
  1017. - watch
  1018. - create
  1019. - update
  1020. - delete
  1021. - deletecollection
  1022. - apiGroups:
  1023. - batch
  1024. resources:
  1025. - cronjobs
  1026. verbs:
  1027. - delete
  1028. - apiGroups:
  1029. - cert-manager.io
  1030. resources:
  1031. - certificates
  1032. - issuers
  1033. verbs:
  1034. - get
  1035. - create
  1036. - delete
  1037. - apiGroups:
  1038. - multicluster.x-k8s.io
  1039. resources:
  1040. - serviceexports
  1041. verbs:
  1042. - get
  1043. - create
  1044. ---
  1045. kind: RoleBinding
  1046. apiVersion: rbac.authorization.k8s.io/v1
  1047. metadata:
  1048. name: cephfs-csi-provisioner-role-cfg
  1049. namespace: rook-ceph # namespace:operator
  1050. subjects:
  1051. - kind: ServiceAccount
  1052. name: rook-csi-cephfs-provisioner-sa
  1053. namespace: rook-ceph # namespace:operator
  1054. roleRef:
  1055. kind: Role
  1056. name: cephfs-external-provisioner-cfg
  1057. apiGroup: rbac.authorization.k8s.io
  1058. ---
  1059. kind: RoleBinding
  1060. apiVersion: rbac.authorization.k8s.io/v1
  1061. metadata:
  1062. name: rbd-csi-nodeplugin-role-cfg
  1063. namespace: rook-ceph # namespace:operator
  1064. subjects:
  1065. - kind: ServiceAccount
  1066. name: rook-csi-rbd-plugin-sa
  1067. namespace: rook-ceph # namespace:operator
  1068. roleRef:
  1069. kind: Role
  1070. name: rbd-csi-nodeplugin
  1071. apiGroup: rbac.authorization.k8s.io
  1072. ---
  1073. kind: RoleBinding
  1074. apiVersion: rbac.authorization.k8s.io/v1
  1075. metadata:
  1076. name: rbd-csi-provisioner-role-cfg
  1077. namespace: rook-ceph # namespace:operator
  1078. subjects:
  1079. - kind: ServiceAccount
  1080. name: rook-csi-rbd-provisioner-sa
  1081. namespace: rook-ceph # namespace:operator
  1082. roleRef:
  1083. kind: Role
  1084. name: rbd-external-provisioner-cfg
  1085. apiGroup: rbac.authorization.k8s.io
  1086. ---
  1087. # Allow the operator to create resources in this cluster's namespace
  1088. kind: RoleBinding
  1089. apiVersion: rbac.authorization.k8s.io/v1
  1090. metadata:
  1091. name: rook-ceph-cluster-mgmt
  1092. namespace: rook-ceph # namespace:cluster
  1093. roleRef:
  1094. apiGroup: rbac.authorization.k8s.io
  1095. kind: ClusterRole
  1096. name: rook-ceph-cluster-mgmt
  1097. subjects:
  1098. - kind: ServiceAccount
  1099. name: rook-ceph-system
  1100. namespace: rook-ceph # namespace:operator
  1101. ---
  1102. kind: RoleBinding
  1103. apiVersion: rbac.authorization.k8s.io/v1
  1104. metadata:
  1105. name: rook-ceph-cmd-reporter
  1106. namespace: rook-ceph # namespace:cluster
  1107. roleRef:
  1108. apiGroup: rbac.authorization.k8s.io
  1109. kind: Role
  1110. name: rook-ceph-cmd-reporter
  1111. subjects:
  1112. - kind: ServiceAccount
  1113. name: rook-ceph-cmd-reporter
  1114. namespace: rook-ceph # namespace:cluster
  1115. ---
  1116. # Allow the ceph mgr to access resources scoped to the CephCluster namespace necessary for mgr modules
  1117. kind: RoleBinding
  1118. apiVersion: rbac.authorization.k8s.io/v1
  1119. metadata:
  1120. name: rook-ceph-mgr
  1121. namespace: rook-ceph # namespace:cluster
  1122. roleRef:
  1123. apiGroup: rbac.authorization.k8s.io
  1124. kind: Role
  1125. name: rook-ceph-mgr
  1126. subjects:
  1127. - kind: ServiceAccount
  1128. name: rook-ceph-mgr
  1129. namespace: rook-ceph # namespace:cluster
  1130. ---
  1131. # Allow the ceph mgr to access resources in the Rook operator namespace necessary for mgr modules
  1132. kind: RoleBinding
  1133. apiVersion: rbac.authorization.k8s.io/v1
  1134. metadata:
  1135. name: rook-ceph-mgr-system
  1136. namespace: rook-ceph # namespace:operator
  1137. roleRef:
  1138. apiGroup: rbac.authorization.k8s.io
  1139. kind: ClusterRole
  1140. name: rook-ceph-mgr-system
  1141. subjects:
  1142. - kind: ServiceAccount
  1143. name: rook-ceph-mgr
  1144. namespace: rook-ceph # namespace:cluster
  1145. ---
  1146. # Allow the osd pods in this namespace to work with configmaps
  1147. kind: RoleBinding
  1148. apiVersion: rbac.authorization.k8s.io/v1
  1149. metadata:
  1150. name: rook-ceph-osd
  1151. namespace: rook-ceph # namespace:cluster
  1152. roleRef:
  1153. apiGroup: rbac.authorization.k8s.io
  1154. kind: Role
  1155. name: rook-ceph-osd
  1156. subjects:
  1157. - kind: ServiceAccount
  1158. name: rook-ceph-osd
  1159. namespace: rook-ceph # namespace:cluster
  1160. ---
  1161. # Allow the osd purge job to run in this namespace
  1162. kind: RoleBinding
  1163. apiVersion: rbac.authorization.k8s.io/v1
  1164. metadata:
  1165. name: rook-ceph-purge-osd
  1166. namespace: rook-ceph # namespace:cluster
  1167. roleRef:
  1168. apiGroup: rbac.authorization.k8s.io
  1169. kind: Role
  1170. name: rook-ceph-purge-osd
  1171. subjects:
  1172. - kind: ServiceAccount
  1173. name: rook-ceph-purge-osd
  1174. namespace: rook-ceph # namespace:cluster
  1175. ---
  1176. # Grant the operator, agent, and discovery agents access to resources in the rook-ceph-system namespace
  1177. kind: RoleBinding
  1178. apiVersion: rbac.authorization.k8s.io/v1
  1179. metadata:
  1180. name: rook-ceph-system
  1181. namespace: rook-ceph # namespace:operator
  1182. labels:
  1183. operator: rook
  1184. storage-backend: ceph
  1185. app.kubernetes.io/part-of: rook-ceph-operator
  1186. roleRef:
  1187. apiGroup: rbac.authorization.k8s.io
  1188. kind: Role
  1189. name: rook-ceph-system
  1190. subjects:
  1191. - kind: ServiceAccount
  1192. name: rook-ceph-system
  1193. namespace: rook-ceph # namespace:operator
  1194. ---
  1195. # Service account for Ceph COSI driver
  1196. apiVersion: v1
  1197. kind: ServiceAccount
  1198. metadata:
  1199. name: objectstorage-provisioner
  1200. namespace: rook-ceph # namespace:operator
  1201. labels:
  1202. app.kubernetes.io/part-of: container-object-storage-interface
  1203. app.kubernetes.io/component: driver-ceph
  1204. app.kubernetes.io/name: cosi-driver-ceph
  1205. # imagePullSecrets:
  1206. # - name: my-registry-secret
  1207. ---
  1208. # Service account for the job that reports the Ceph version in an image
  1209. apiVersion: v1
  1210. kind: ServiceAccount
  1211. metadata:
  1212. name: rook-ceph-cmd-reporter
  1213. namespace: rook-ceph # namespace:cluster
  1214. labels:
  1215. operator: rook
  1216. storage-backend: ceph
  1217. app.kubernetes.io/part-of: rook-ceph-operator
  1218. # imagePullSecrets:
  1219. # - name: my-registry-secret
  1220. ---
  1221. # Service account for other components
  1222. apiVersion: v1
  1223. kind: ServiceAccount
  1224. metadata:
  1225. name: rook-ceph-default
  1226. namespace: rook-ceph # namespace:cluster
  1227. labels:
  1228. operator: rook
  1229. storage-backend: ceph
  1230. # imagePullSecrets:
  1231. # - name: my-registry-secret
  1232. ---
  1233. # Service account for Ceph mgrs
  1234. apiVersion: v1
  1235. kind: ServiceAccount
  1236. metadata:
  1237. name: rook-ceph-mgr
  1238. namespace: rook-ceph # namespace:cluster
  1239. labels:
  1240. operator: rook
  1241. storage-backend: ceph
  1242. app.kubernetes.io/part-of: rook-ceph-operator
  1243. # imagePullSecrets:
  1244. # - name: my-registry-secret
  1245. ---
  1246. # Service account for Ceph OSDs
  1247. apiVersion: v1
  1248. kind: ServiceAccount
  1249. metadata:
  1250. name: rook-ceph-osd
  1251. namespace: rook-ceph # namespace:cluster
  1252. labels:
  1253. operator: rook
  1254. storage-backend: ceph
  1255. app.kubernetes.io/part-of: rook-ceph-operator
  1256. # imagePullSecrets:
  1257. # - name: my-registry-secret
  1258. ---
  1259. # Service account for job that purges OSDs from a Rook-Ceph cluster
  1260. apiVersion: v1
  1261. kind: ServiceAccount
  1262. metadata:
  1263. name: rook-ceph-purge-osd
  1264. namespace: rook-ceph # namespace:cluster
  1265. # imagePullSecrets:
  1266. # - name: my-registry-secret
  1267. ---
  1268. # Service account for RGW server
  1269. apiVersion: v1
  1270. kind: ServiceAccount
  1271. metadata:
  1272. name: rook-ceph-rgw
  1273. namespace: rook-ceph # namespace:cluster
  1274. labels:
  1275. operator: rook
  1276. storage-backend: ceph
  1277. app.kubernetes.io/part-of: rook-ceph-operator
  1278. # imagePullSecrets:
  1279. # - name: my-registry-secret
  1280. ---
  1281. # Service account for the Rook-Ceph operator
  1282. apiVersion: v1
  1283. kind: ServiceAccount
  1284. metadata:
  1285. name: rook-ceph-system
  1286. namespace: rook-ceph # namespace:operator
  1287. labels:
  1288. operator: rook
  1289. storage-backend: ceph
  1290. app.kubernetes.io/part-of: rook-ceph-operator
  1291. # imagePullSecrets:
  1292. # - name: my-registry-secret
  1293. ---
  1294. # Service account for the CephFS CSI driver
  1295. apiVersion: v1
  1296. kind: ServiceAccount
  1297. metadata:
  1298. name: rook-csi-cephfs-plugin-sa
  1299. namespace: rook-ceph # namespace:operator
  1300. # imagePullSecrets:
  1301. # - name: my-registry-secret
  1302. ---
  1303. # Service account for the CephFS CSI provisioner
  1304. apiVersion: v1
  1305. kind: ServiceAccount
  1306. metadata:
  1307. name: rook-csi-cephfs-provisioner-sa
  1308. namespace: rook-ceph # namespace:operator
  1309. # imagePullSecrets:
  1310. # - name: my-registry-secret
  1311. ---
  1312. # Service account for the RBD CSI driver
  1313. apiVersion: v1
  1314. kind: ServiceAccount
  1315. metadata:
  1316. name: rook-csi-rbd-plugin-sa
  1317. namespace: rook-ceph # namespace:operator
  1318. # imagePullSecrets:
  1319. # - name: my-registry-secret
  1320. ---
  1321. # Service account for the RBD CSI provisioner
  1322. apiVersion: v1
  1323. kind: ServiceAccount
  1324. metadata:
  1325. name: rook-csi-rbd-provisioner-sa
  1326. namespace: rook-ceph # namespace:operator
  1327. # imagePullSecrets:
  1328. # - name: my-registry-secret