common.yaml 36 KB

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