operator.yaml 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703
  1. #################################################################################################################
  2. # The deployment for the rook operator
  3. # Contains the common settings for most Kubernetes deployments.
  4. # For example, to create the rook-ceph cluster:
  5. # kubectl create -f crds.yaml -f common.yaml -f operator.yaml
  6. # kubectl create -f cluster.yaml
  7. #
  8. # Also see other operator sample files for variations of operator.yaml:
  9. # - operator-openshift.yaml: Common settings for running in OpenShift
  10. ###############################################################################################################
  11. # Rook Ceph Operator Config ConfigMap
  12. # Use this ConfigMap to override Rook-Ceph Operator configurations.
  13. # NOTE! Precedence will be given to this config if the same Env Var config also exists in the
  14. # Operator Deployment.
  15. # To move a configuration(s) from the Operator Deployment to this ConfigMap, add the config
  16. # here. It is recommended to then remove it from the Deployment to eliminate any future confusion.
  17. kind: ConfigMap
  18. apiVersion: v1
  19. metadata:
  20. name: rook-ceph-operator-config
  21. # should be in the namespace of the operator
  22. namespace: rook-ceph # namespace:operator
  23. data:
  24. # The logging level for the operator: ERROR | WARNING | INFO | DEBUG
  25. ROOK_LOG_LEVEL: "INFO"
  26. # The address for the operator's controller-runtime metrics. 0 is disabled. :8080 serves metrics on port 8080.
  27. ROOK_OPERATOR_METRICS_BIND_ADDRESS: "0"
  28. # Allow using loop devices for osds in test clusters.
  29. ROOK_CEPH_ALLOW_LOOP_DEVICES: "false"
  30. # Enable CSI Operator
  31. ROOK_USE_CSI_OPERATOR: "false"
  32. # Enable the CSI driver.
  33. # To run the non-default version of the CSI driver, see the override-able image properties in operator.yaml
  34. ROOK_CSI_ENABLE_CEPHFS: "true"
  35. # Enable the default version of the CSI RBD driver. To start another version of the CSI driver, see image properties below.
  36. ROOK_CSI_ENABLE_RBD: "true"
  37. # Enable the CSI NFS driver. To start another version of the CSI driver, see image properties below.
  38. ROOK_CSI_ENABLE_NFS: "false"
  39. # Disable the CSI driver.
  40. ROOK_CSI_DISABLE_DRIVER: "false"
  41. # Set to true to enable Ceph CSI pvc encryption support.
  42. CSI_ENABLE_ENCRYPTION: "false"
  43. # Set to true to enable host networking for CSI CephFS and RBD nodeplugins. This may be necessary
  44. # in some network configurations where the SDN does not provide access to an external cluster or
  45. # there is significant drop in read/write performance.
  46. # CSI_ENABLE_HOST_NETWORK: "true"
  47. # Set to true to enable adding volume metadata on the CephFS subvolume and RBD images.
  48. # Not all users might be interested in getting volume/snapshot details as metadata on CephFS subvolume and RBD images.
  49. # Hence enable metadata is false by default.
  50. # CSI_ENABLE_METADATA: "true"
  51. # cluster name identifier to set as metadata on the CephFS subvolume and RBD images. This will be useful in cases
  52. # like for example, when two container orchestrator clusters (Kubernetes/OCP) are using a single ceph cluster.
  53. # CSI_CLUSTER_NAME: "my-prod-cluster"
  54. # Set logging level for cephCSI containers maintained by the cephCSI.
  55. # Supported values from 0 to 5. 0 for general useful logs, 5 for trace level verbosity.
  56. # CSI_LOG_LEVEL: "0"
  57. # Set logging level for Kubernetes-csi sidecar containers.
  58. # Supported values from 0 to 5. 0 for general useful logs (the default), 5 for trace level verbosity.
  59. # CSI_SIDECAR_LOG_LEVEL: "0"
  60. # csi driver name prefix for cephfs, rbd and nfs. if not specified, default
  61. # will be the namespace name where rook-ceph operator is deployed.
  62. # search for `# csi-provisioner-name` in the storageclass and
  63. # volumesnashotclass and update the name accordingly.
  64. # CSI_DRIVER_NAME_PREFIX: "rook-ceph"
  65. # Set replicas for csi provisioner deployment.
  66. CSI_PROVISIONER_REPLICAS: "2"
  67. # OMAP generator will generate the omap mapping between the PV name and the RBD image.
  68. # CSI_ENABLE_OMAP_GENERATOR need to be enabled when we are using rbd mirroring feature.
  69. # By default OMAP generator sidecar is deployed with CSI provisioner pod, to disable
  70. # it set it to false.
  71. # CSI_ENABLE_OMAP_GENERATOR: "false"
  72. # set to false to disable deployment of snapshotter container in CephFS provisioner pod.
  73. CSI_ENABLE_CEPHFS_SNAPSHOTTER: "true"
  74. # set to false to disable deployment of snapshotter container in NFS provisioner pod.
  75. CSI_ENABLE_NFS_SNAPSHOTTER: "true"
  76. # set to false to disable deployment of snapshotter container in RBD provisioner pod.
  77. CSI_ENABLE_RBD_SNAPSHOTTER: "true"
  78. # set to false to disable volume group snapshot feature. This feature is
  79. # enabled by default as long as the necessary CRDs are available in the cluster.
  80. CSI_ENABLE_VOLUME_GROUP_SNAPSHOT: "true"
  81. # Enable cephfs kernel driver instead of ceph-fuse.
  82. # If you disable the kernel client, your application may be disrupted during upgrade.
  83. # See the upgrade guide: https://rook.io/docs/rook/latest/ceph-upgrade.html
  84. # NOTE! cephfs quota is not supported in kernel version < 4.17
  85. CSI_FORCE_CEPHFS_KERNEL_CLIENT: "true"
  86. # (Optional) policy for modifying a volume's ownership or permissions when the RBD PVC is being mounted.
  87. # supported values are documented at https://kubernetes-csi.github.io/docs/support-fsgroup.html
  88. CSI_RBD_FSGROUPPOLICY: "File"
  89. # (Optional) policy for modifying a volume's ownership or permissions when the CephFS PVC is being mounted.
  90. # supported values are documented at https://kubernetes-csi.github.io/docs/support-fsgroup.html
  91. CSI_CEPHFS_FSGROUPPOLICY: "File"
  92. # (Optional) policy for modifying a volume's ownership or permissions when the NFS PVC is being mounted.
  93. # supported values are documented at https://kubernetes-csi.github.io/docs/support-fsgroup.html
  94. CSI_NFS_FSGROUPPOLICY: "File"
  95. # (Optional) control the host mount of /etc/selinux for csi plugin pods.
  96. CSI_PLUGIN_ENABLE_SELINUX_HOST_MOUNT: "false"
  97. # The default version of CSI supported by Rook will be started. To change the version
  98. # of the CSI driver to something other than what is officially supported, change
  99. # these images to the desired release of the CSI driver.
  100. # ROOK_CSI_CEPH_IMAGE: "quay.io/cephcsi/cephcsi:v3.14.2"
  101. # ROOK_CSI_REGISTRAR_IMAGE: "registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.13.0"
  102. # ROOK_CSI_RESIZER_IMAGE: "registry.k8s.io/sig-storage/csi-resizer:v1.13.2"
  103. # ROOK_CSI_PROVISIONER_IMAGE: "registry.k8s.io/sig-storage/csi-provisioner:v5.2.0"
  104. # ROOK_CSI_SNAPSHOTTER_IMAGE: "registry.k8s.io/sig-storage/csi-snapshotter:v8.2.1"
  105. # ROOK_CSI_ATTACHER_IMAGE: "registry.k8s.io/sig-storage/csi-attacher:v4.8.1"
  106. # To indicate the image pull policy to be applied to all the containers in the csi driver pods.
  107. # ROOK_CSI_IMAGE_PULL_POLICY: "IfNotPresent"
  108. # (Optional) set user created priorityclassName for csi plugin pods.
  109. CSI_PLUGIN_PRIORITY_CLASSNAME: "system-node-critical"
  110. # (Optional) set user created priorityclassName for csi provisioner pods.
  111. CSI_PROVISIONER_PRIORITY_CLASSNAME: "system-cluster-critical"
  112. # CSI CephFS plugin daemonset update strategy, supported values are OnDelete and RollingUpdate.
  113. # Default value is RollingUpdate.
  114. # CSI_CEPHFS_PLUGIN_UPDATE_STRATEGY: "OnDelete"
  115. # A maxUnavailable parameter of CSI cephFS plugin daemonset update strategy.
  116. # Default value is 1.
  117. # CSI_CEPHFS_PLUGIN_UPDATE_STRATEGY_MAX_UNAVAILABLE: "1"
  118. # CSI RBD plugin daemonset update strategy, supported values are OnDelete and RollingUpdate.
  119. # Default value is RollingUpdate.
  120. # CSI_RBD_PLUGIN_UPDATE_STRATEGY: "OnDelete"
  121. # A maxUnavailable parameter of CSI RBD plugin daemonset update strategy.
  122. # Default value is 1.
  123. # CSI_RBD_PLUGIN_UPDATE_STRATEGY_MAX_UNAVAILABLE: "1"
  124. # CSI NFS plugin daemonset update strategy, supported values are OnDelete and RollingUpdate.
  125. # Default value is RollingUpdate.
  126. # CSI_NFS_PLUGIN_UPDATE_STRATEGY: "OnDelete"
  127. # kubelet directory path, if kubelet configured to use other than /var/lib/kubelet path.
  128. # ROOK_CSI_KUBELET_DIR_PATH: "/var/lib/kubelet"
  129. # Labels to add to the CSI CephFS Deployments and DaemonSets Pods.
  130. # ROOK_CSI_CEPHFS_POD_LABELS: "key1=value1,key2=value2"
  131. # Labels to add to the CSI RBD Deployments and DaemonSets Pods.
  132. # ROOK_CSI_RBD_POD_LABELS: "key1=value1,key2=value2"
  133. # Labels to add to the CSI NFS Deployments and DaemonSets Pods.
  134. # ROOK_CSI_NFS_POD_LABELS: "key1=value1,key2=value2"
  135. # (Optional) CephCSI CephFS plugin Volumes
  136. # CSI_CEPHFS_PLUGIN_VOLUME: |
  137. # - name: lib-modules
  138. # hostPath:
  139. # path: /run/current-system/kernel-modules/lib/modules/
  140. # - name: host-nix
  141. # hostPath:
  142. # path: /nix
  143. # (Optional) CephCSI CephFS plugin Volume mounts
  144. # CSI_CEPHFS_PLUGIN_VOLUME_MOUNT: |
  145. # - name: host-nix
  146. # mountPath: /nix
  147. # readOnly: true
  148. # (Optional) CephCSI RBD plugin Volumes
  149. # CSI_RBD_PLUGIN_VOLUME: |
  150. # - name: lib-modules
  151. # hostPath:
  152. # path: /run/current-system/kernel-modules/lib/modules/
  153. # - name: host-nix
  154. # hostPath:
  155. # path: /nix
  156. # (Optional) CephCSI RBD plugin Volume mounts
  157. # CSI_RBD_PLUGIN_VOLUME_MOUNT: |
  158. # - name: host-nix
  159. # mountPath: /nix
  160. # readOnly: true
  161. # (Optional) CephCSI provisioner NodeAffinity (applied to both CephFS and RBD provisioner).
  162. # CSI_PROVISIONER_NODE_AFFINITY: "role=storage-node; storage=rook, ceph"
  163. # (Optional) CephCSI provisioner tolerations list(applied to both CephFS and RBD provisioner).
  164. # Put here list of taints you want to tolerate in YAML format.
  165. # CSI provisioner would be best to start on the same nodes as other ceph daemons.
  166. # CSI_PROVISIONER_TOLERATIONS: |
  167. # - effect: NoSchedule
  168. # key: node-role.kubernetes.io/control-plane
  169. # operator: Exists
  170. # - effect: NoExecute
  171. # key: node-role.kubernetes.io/etcd
  172. # operator: Exists
  173. # (Optional) CephCSI plugin NodeAffinity (applied to both CephFS and RBD plugin).
  174. # CSI_PLUGIN_NODE_AFFINITY: "role=storage-node; storage=rook, ceph"
  175. # (Optional) CephCSI plugin tolerations list(applied to both CephFS and RBD plugin).
  176. # Put here list of taints you want to tolerate in YAML format.
  177. # CSI plugins need to be started on all the nodes where the clients need to mount the storage.
  178. # CSI_PLUGIN_TOLERATIONS: |
  179. # - effect: NoSchedule
  180. # key: node-role.kubernetes.io/control-plane
  181. # operator: Exists
  182. # - effect: NoExecute
  183. # key: node-role.kubernetes.io/etcd
  184. # operator: Exists
  185. # (Optional) CephCSI RBD provisioner NodeAffinity (if specified, overrides CSI_PROVISIONER_NODE_AFFINITY).
  186. # CSI_RBD_PROVISIONER_NODE_AFFINITY: "role=rbd-node"
  187. # (Optional) CephCSI RBD provisioner tolerations list(if specified, overrides CSI_PROVISIONER_TOLERATIONS).
  188. # Put here list of taints you want to tolerate in YAML format.
  189. # CSI provisioner would be best to start on the same nodes as other ceph daemons.
  190. # CSI_RBD_PROVISIONER_TOLERATIONS: |
  191. # - key: node.rook.io/rbd
  192. # operator: Exists
  193. # (Optional) CephCSI RBD plugin NodeAffinity (if specified, overrides CSI_PLUGIN_NODE_AFFINITY).
  194. # CSI_RBD_PLUGIN_NODE_AFFINITY: "role=rbd-node"
  195. # (Optional) CephCSI RBD plugin tolerations list(if specified, overrides CSI_PLUGIN_TOLERATIONS).
  196. # Put here list of taints you want to tolerate in YAML format.
  197. # CSI plugins need to be started on all the nodes where the clients need to mount the storage.
  198. # CSI_RBD_PLUGIN_TOLERATIONS: |
  199. # - key: node.rook.io/rbd
  200. # operator: Exists
  201. # (Optional) CephCSI CephFS provisioner NodeAffinity (if specified, overrides CSI_PROVISIONER_NODE_AFFINITY).
  202. # CSI_CEPHFS_PROVISIONER_NODE_AFFINITY: "role=cephfs-node"
  203. # (Optional) CephCSI CephFS provisioner tolerations list(if specified, overrides CSI_PROVISIONER_TOLERATIONS).
  204. # Put here list of taints you want to tolerate in YAML format.
  205. # CSI provisioner would be best to start on the same nodes as other ceph daemons.
  206. # CSI_CEPHFS_PROVISIONER_TOLERATIONS: |
  207. # - key: node.rook.io/cephfs
  208. # operator: Exists
  209. # (Optional) CephCSI CephFS plugin NodeAffinity (if specified, overrides CSI_PLUGIN_NODE_AFFINITY).
  210. # CSI_CEPHFS_PLUGIN_NODE_AFFINITY: "role=cephfs-node"
  211. # NOTE: Support for defining NodeAffinity for operators other than "In" and "Exists" requires the user to input a
  212. # valid v1.NodeAffinity JSON or YAML string. For example, the following is valid YAML v1.NodeAffinity:
  213. # CSI_CEPHFS_PLUGIN_NODE_AFFINITY: |
  214. # requiredDuringSchedulingIgnoredDuringExecution:
  215. # nodeSelectorTerms:
  216. # - matchExpressions:
  217. # - key: myKey
  218. # operator: DoesNotExist
  219. # (Optional) CephCSI CephFS plugin tolerations list(if specified, overrides CSI_PLUGIN_TOLERATIONS).
  220. # Put here list of taints you want to tolerate in YAML format.
  221. # CSI plugins need to be started on all the nodes where the clients need to mount the storage.
  222. # CSI_CEPHFS_PLUGIN_TOLERATIONS: |
  223. # - key: node.rook.io/cephfs
  224. # operator: Exists
  225. # (Optional) CephCSI NFS provisioner NodeAffinity (overrides CSI_PROVISIONER_NODE_AFFINITY).
  226. # CSI_NFS_PROVISIONER_NODE_AFFINITY: "role=nfs-node"
  227. # (Optional) CephCSI NFS provisioner tolerations list (overrides CSI_PROVISIONER_TOLERATIONS).
  228. # Put here list of taints you want to tolerate in YAML format.
  229. # CSI provisioner would be best to start on the same nodes as other ceph daemons.
  230. # CSI_NFS_PROVISIONER_TOLERATIONS: |
  231. # - key: node.rook.io/nfs
  232. # operator: Exists
  233. # (Optional) CephCSI NFS plugin NodeAffinity (overrides CSI_PLUGIN_NODE_AFFINITY).
  234. # CSI_NFS_PLUGIN_NODE_AFFINITY: "role=nfs-node"
  235. # (Optional) CephCSI NFS plugin tolerations list (overrides CSI_PLUGIN_TOLERATIONS).
  236. # Put here list of taints you want to tolerate in YAML format.
  237. # CSI plugins need to be started on all the nodes where the clients need to mount the storage.
  238. # CSI_NFS_PLUGIN_TOLERATIONS: |
  239. # - key: node.rook.io/nfs
  240. # operator: Exists
  241. # (Optional) CEPH CSI RBD provisioner resource requirement list, Put here list of resource
  242. # requests and limits you want to apply for provisioner pod
  243. #CSI_RBD_PROVISIONER_RESOURCE: |
  244. # - name : csi-provisioner
  245. # resource:
  246. # requests:
  247. # memory: 128Mi
  248. # cpu: 100m
  249. # limits:
  250. # memory: 256Mi
  251. # - name : csi-resizer
  252. # resource:
  253. # requests:
  254. # memory: 128Mi
  255. # cpu: 100m
  256. # limits:
  257. # memory: 256Mi
  258. # - name : csi-attacher
  259. # resource:
  260. # requests:
  261. # memory: 128Mi
  262. # cpu: 100m
  263. # limits:
  264. # memory: 256Mi
  265. # - name : csi-snapshotter
  266. # resource:
  267. # requests:
  268. # memory: 128Mi
  269. # cpu: 100m
  270. # limits:
  271. # memory: 256Mi
  272. # - name : csi-rbdplugin
  273. # resource:
  274. # requests:
  275. # memory: 512Mi
  276. # cpu: 250m
  277. # limits:
  278. # memory: 1Gi
  279. # - name : csi-omap-generator
  280. # resource:
  281. # requests:
  282. # memory: 512Mi
  283. # cpu: 250m
  284. # limits:
  285. # memory: 1Gi
  286. # - name : liveness-prometheus
  287. # resource:
  288. # requests:
  289. # memory: 128Mi
  290. # cpu: 50m
  291. # limits:
  292. # memory: 256Mi
  293. # (Optional) CEPH CSI RBD plugin resource requirement list, Put here list of resource
  294. # requests and limits you want to apply for plugin pod
  295. #CSI_RBD_PLUGIN_RESOURCE: |
  296. # - name : driver-registrar
  297. # resource:
  298. # requests:
  299. # memory: 128Mi
  300. # cpu: 50m
  301. # limits:
  302. # memory: 256Mi
  303. # - name : csi-rbdplugin
  304. # resource:
  305. # requests:
  306. # memory: 512Mi
  307. # cpu: 250m
  308. # limits:
  309. # memory: 1Gi
  310. # - name : liveness-prometheus
  311. # resource:
  312. # requests:
  313. # memory: 128Mi
  314. # cpu: 50m
  315. # limits:
  316. # memory: 256Mi
  317. # (Optional) CEPH CSI CephFS provisioner resource requirement list, Put here list of resource
  318. # requests and limits you want to apply for provisioner pod
  319. #CSI_CEPHFS_PROVISIONER_RESOURCE: |
  320. # - name : csi-provisioner
  321. # resource:
  322. # requests:
  323. # memory: 128Mi
  324. # cpu: 100m
  325. # limits:
  326. # memory: 256Mi
  327. # - name : csi-resizer
  328. # resource:
  329. # requests:
  330. # memory: 128Mi
  331. # cpu: 100m
  332. # limits:
  333. # memory: 256Mi
  334. # - name : csi-attacher
  335. # resource:
  336. # requests:
  337. # memory: 128Mi
  338. # cpu: 100m
  339. # limits:
  340. # memory: 256Mi
  341. # - name : csi-snapshotter
  342. # resource:
  343. # requests:
  344. # memory: 128Mi
  345. # cpu: 100m
  346. # limits:
  347. # memory: 256Mi
  348. # - name : csi-cephfsplugin
  349. # resource:
  350. # requests:
  351. # memory: 512Mi
  352. # cpu: 250m
  353. # limits:
  354. # memory: 1Gi
  355. # - name : liveness-prometheus
  356. # resource:
  357. # requests:
  358. # memory: 128Mi
  359. # cpu: 50m
  360. # limits:
  361. # memory: 256Mi
  362. # (Optional) CEPH CSI CephFS plugin resource requirement list, Put here list of resource
  363. # requests and limits you want to apply for plugin pod
  364. #CSI_CEPHFS_PLUGIN_RESOURCE: |
  365. # - name : driver-registrar
  366. # resource:
  367. # requests:
  368. # memory: 128Mi
  369. # cpu: 50m
  370. # limits:
  371. # memory: 256Mi
  372. # - name : csi-cephfsplugin
  373. # resource:
  374. # requests:
  375. # memory: 512Mi
  376. # cpu: 250m
  377. # limits:
  378. # memory: 1Gi
  379. # - name : liveness-prometheus
  380. # resource:
  381. # requests:
  382. # memory: 128Mi
  383. # cpu: 50m
  384. # limits:
  385. # memory: 256Mi
  386. # (Optional) CEPH CSI NFS provisioner resource requirement list, Put here list of resource
  387. # requests and limits you want to apply for provisioner pod
  388. # CSI_NFS_PROVISIONER_RESOURCE: |
  389. # - name : csi-provisioner
  390. # resource:
  391. # requests:
  392. # memory: 128Mi
  393. # cpu: 100m
  394. # limits:
  395. # memory: 256Mi
  396. # - name : csi-nfsplugin
  397. # resource:
  398. # requests:
  399. # memory: 512Mi
  400. # cpu: 250m
  401. # limits:
  402. # memory: 1Gi
  403. # - name : csi-attacher
  404. # resource:
  405. # requests:
  406. # memory: 128Mi
  407. # cpu: 100m
  408. # limits:
  409. # memory: 256Mi
  410. # (Optional) CEPH CSI NFS plugin resource requirement list, Put here list of resource
  411. # requests and limits you want to apply for plugin pod
  412. # CSI_NFS_PLUGIN_RESOURCE: |
  413. # - name : driver-registrar
  414. # resource:
  415. # requests:
  416. # memory: 128Mi
  417. # cpu: 50m
  418. # limits:
  419. # memory: 256Mi
  420. # - name : csi-nfsplugin
  421. # resource:
  422. # requests:
  423. # memory: 512Mi
  424. # cpu: 250m
  425. # limits:
  426. # memory: 1Gi
  427. # Configure CSI CephFS liveness metrics port
  428. # Set to true to enable Ceph CSI liveness container.
  429. CSI_ENABLE_LIVENESS: "false"
  430. # CSI_CEPHFS_LIVENESS_METRICS_PORT: "9081"
  431. # Configure CSI RBD liveness metrics port
  432. # CSI_RBD_LIVENESS_METRICS_PORT: "9080"
  433. # We can override the ports for each individual component that uses the CSIADDONS sidecar
  434. # This is useful if we're running in hostNetwork, where ports may conflict on the same host
  435. # CSIADDONS_PORT: "9070"
  436. # CSIADDONS_RBD_PROVISIONER_PORT: "9070"
  437. # CSIADDONS_CEPHFS_PROVISIONER_PORT: "9070"
  438. # Set CephFS Kernel mount options to use https://docs.ceph.com/en/latest/man/8/mount.ceph/#options
  439. # Set to "ms_mode=secure" when connections.encrypted is enabled in CephCluster CR
  440. # CSI_CEPHFS_KERNEL_MOUNT_OPTIONS: "ms_mode=secure"
  441. # (Optional) Duration in seconds that non-leader candidates will wait to force acquire leadership. Default to 137 seconds.
  442. # CSI_LEADER_ELECTION_LEASE_DURATION: "137s"
  443. # (Optional) Deadline in seconds that the acting leader will retry refreshing leadership before giving up. Defaults to 107 seconds.
  444. # CSI_LEADER_ELECTION_RENEW_DEADLINE: "107s"
  445. # (Optional) Retry Period in seconds the LeaderElector clients should wait between tries of actions. Defaults to 26 seconds.
  446. # CSI_LEADER_ELECTION_RETRY_PERIOD: "26s"
  447. # Whether the OBC provisioner should watch on the ceph cluster namespace or not, if not default provisioner value is set
  448. ROOK_OBC_WATCH_OPERATOR_NAMESPACE: "true"
  449. # Custom prefix value for the OBC provisioner instead of ceph cluster namespace, do not set on existing cluster
  450. # ROOK_OBC_PROVISIONER_NAME_PREFIX: "custom-prefix"
  451. # Many OBC additional config fields may be risky for administrators to allow users control over.
  452. # The safe and default-allowed fields are 'maxObjects' and 'maxSize'.
  453. # Other fields should be considered risky. To allow all additional configs, use this value:
  454. # "maxObjects,maxSize,bucketMaxObjects,bucketMaxSize,bucketPolicy,bucketLifecycle,bucketOwner"
  455. # ROOK_OBC_ALLOW_ADDITIONAL_CONFIG_FIELDS: "maxObjects,maxSize" # default allowed configs
  456. # Whether to start the discovery daemon to watch for raw storage devices on nodes in the cluster.
  457. # This daemon does not need to run if you are only going to create your OSDs based on StorageClassDeviceSets with PVCs.
  458. ROOK_ENABLE_DISCOVERY_DAEMON: "false"
  459. # The timeout value (in seconds) of Ceph commands. It should be >= 1. If this variable is not set or is an invalid value, it's default to 15.
  460. ROOK_CEPH_COMMANDS_TIMEOUT_SECONDS: "15"
  461. # Enable the csi addons sidecar.
  462. CSI_ENABLE_CSIADDONS: "false"
  463. # Enable watch for faster recovery from rbd rwo node loss
  464. ROOK_WATCH_FOR_NODE_FAILURE: "true"
  465. # ROOK_CSIADDONS_IMAGE: "quay.io/csiaddons/k8s-sidecar:v0.12.0"
  466. # The CSI GRPC timeout value (in seconds). It should be >= 120. If this variable is not set or is an invalid value, it's default to 150.
  467. CSI_GRPC_TIMEOUT_SECONDS: "150"
  468. # Enable topology based provisioning.
  469. CSI_ENABLE_TOPOLOGY: "false"
  470. # Domain labels define which node labels to use as domains
  471. # for CSI nodeplugins to advertise their domains
  472. # NOTE: the value here serves as an example and needs to be
  473. # updated with node labels that define domains of interest
  474. # CSI_TOPOLOGY_DOMAIN_LABELS: "kubernetes.io/hostname,topology.kubernetes.io/zone,topology.rook.io/rack"
  475. # Whether to skip any attach operation altogether for CephCSI PVCs.
  476. # See more details [here](https://kubernetes-csi.github.io/docs/skip-attach.html#skip-attach-with-csi-driver-object).
  477. # If set to false it skips the volume attachments and makes the creation of pods using the CephCSI PVC fast.
  478. # **WARNING** It's highly discouraged to use this for RWO volumes. for RBD PVC it can cause data corruption,
  479. # csi-addons operations like Reclaimspace and PVC Keyrotation will also not be supported if set to false
  480. # since we'll have no VolumeAttachments to determine which node the PVC is mounted on.
  481. # Refer to this [issue](https://github.com/kubernetes/kubernetes/issues/103305) for more details.
  482. CSI_CEPHFS_ATTACH_REQUIRED: "true"
  483. CSI_RBD_ATTACH_REQUIRED: "true"
  484. CSI_NFS_ATTACH_REQUIRED: "true"
  485. # Rook Discover toleration. Will tolerate all taints with all keys.
  486. # (Optional) Rook Discover tolerations list. Put here list of taints you want to tolerate in YAML format.
  487. # DISCOVER_TOLERATIONS: |
  488. # - effect: NoSchedule
  489. # key: node-role.kubernetes.io/control-plane
  490. # operator: Exists
  491. # - effect: NoExecute
  492. # key: node-role.kubernetes.io/etcd
  493. # operator: Exists
  494. # (Optional) Rook Discover priority class name to set on the pod(s)
  495. # DISCOVER_PRIORITY_CLASS_NAME: "<PriorityClassName>"
  496. # (Optional) Discover Agent NodeAffinity.
  497. # DISCOVER_AGENT_NODE_AFFINITY: |
  498. # requiredDuringSchedulingIgnoredDuringExecution:
  499. # nodeSelectorTerms:
  500. # - matchExpressions:
  501. # - key: myKey
  502. # operator: DoesNotExist
  503. # (Optional) Discover Agent Pod Labels.
  504. # DISCOVER_AGENT_POD_LABELS: "key1=value1,key2=value2"
  505. # Disable automatic orchestration when new devices are discovered
  506. ROOK_DISABLE_DEVICE_HOTPLUG: "false"
  507. # The duration between discovering devices in the rook-discover daemonset.
  508. ROOK_DISCOVER_DEVICES_INTERVAL: "60m"
  509. # DISCOVER_DAEMON_RESOURCES: |
  510. # - name: DISCOVER_DAEMON_RESOURCES
  511. # resources:
  512. # limits:
  513. # memory: 512Mi
  514. # requests:
  515. # cpu: 100m
  516. # memory: 128Mi
  517. # (Optional) Burst to use while communicating with the kubernetes apiserver.
  518. # CSI_KUBE_API_BURST: "10"
  519. # (Optional) QPS to use while communicating with the kubernetes apiserver.
  520. # CSI_KUBE_API_QPS: "5.0"
  521. # Whether to create all Rook pods to run on the host network, for example in environments where a CNI is not enabled
  522. ROOK_ENFORCE_HOST_NETWORK: "false"
  523. # RevisionHistoryLimit value for all deployments created by rook.
  524. # ROOK_REVISION_HISTORY_LIMIT: "3"
  525. # Custom label to identify node hostname. If not set `kubernetes.io/hostname` will be used
  526. ROOK_CUSTOM_HOSTNAME_LABEL: ""
  527. ---
  528. # OLM: BEGIN OPERATOR DEPLOYMENT
  529. apiVersion: apps/v1
  530. kind: Deployment
  531. metadata:
  532. name: rook-ceph-operator
  533. namespace: rook-ceph # namespace:operator
  534. labels:
  535. operator: rook
  536. storage-backend: ceph
  537. app.kubernetes.io/name: rook-ceph
  538. app.kubernetes.io/instance: rook-ceph
  539. app.kubernetes.io/component: rook-ceph-operator
  540. app.kubernetes.io/part-of: rook-ceph-operator
  541. spec:
  542. selector:
  543. matchLabels:
  544. app: rook-ceph-operator
  545. strategy:
  546. type: Recreate
  547. replicas: 1
  548. template:
  549. metadata:
  550. labels:
  551. app: rook-ceph-operator
  552. spec:
  553. tolerations:
  554. - effect: NoExecute
  555. key: node.kubernetes.io/unreachable
  556. operator: Exists
  557. tolerationSeconds: 5
  558. serviceAccountName: rook-ceph-system
  559. containers:
  560. - name: rook-ceph-operator
  561. image: docker.io/rook/ceph:v1.17.7
  562. args: ["ceph", "operator"]
  563. securityContext:
  564. runAsNonRoot: true
  565. runAsUser: 2016
  566. runAsGroup: 2016
  567. capabilities:
  568. drop: ["ALL"]
  569. volumeMounts:
  570. - mountPath: /var/lib/rook
  571. name: rook-config
  572. - mountPath: /etc/ceph
  573. name: default-config-dir
  574. env:
  575. # If the operator should only watch for cluster CRDs in the same namespace, set this to "true".
  576. # If this is not set to true, the operator will watch for cluster CRDs in all namespaces.
  577. - name: ROOK_CURRENT_NAMESPACE_ONLY
  578. value: "false"
  579. # Whether to start pods as privileged that mount a host path, which includes the Ceph mon, osd pods and csi provisioners(if logrotation is on).
  580. # Set this to true if SELinux is enabled (e.g. OpenShift) to workaround the anyuid issues.
  581. # For more details see https://github.com/rook/rook/issues/1314#issuecomment-355799641
  582. - name: ROOK_HOSTPATH_REQUIRES_PRIVILEGED
  583. value: "false"
  584. # Whether to run Ceph mon pods as root (runAsUser: 0) at the pod level.
  585. # Set this to true if mon pods are CrashLooping on SELinux-enabled systems despite other settings.
  586. # For more context, see https://github.com/rook/rook/issues/15564
  587. - name: ROOK_CEPH_MON_RUN_AS_ROOT
  588. value: "false"
  589. # Provide customised regex as the values using comma. For eg. regex for rbd based volume, value will be like "(?i)rbd[0-9]+".
  590. # In case of more than one regex, use comma to separate between them.
  591. # Default regex will be "(?i)dm-[0-9]+,(?i)rbd[0-9]+,(?i)nbd[0-9]+"
  592. # Add regex expression after putting a comma to blacklist a disk
  593. # If value is empty, the default regex will be used.
  594. - name: DISCOVER_DAEMON_UDEV_BLACKLIST
  595. value: "(?i)dm-[0-9]+,(?i)rbd[0-9]+,(?i)nbd[0-9]+"
  596. # Time to wait until the node controller will move Rook pods to other
  597. # nodes after detecting an unreachable node.
  598. # Pods affected by this setting are:
  599. # mgr, rbd, mds, rgw, nfs, PVC based mons and osds, and ceph toolbox
  600. # The value used in this variable replaces the default value of 300 secs
  601. # added automatically by k8s as Toleration for
  602. # <node.kubernetes.io/unreachable>
  603. # The total amount of time to reschedule Rook pods in healthy nodes
  604. # before detecting a <not ready node> condition will be the sum of:
  605. # --> node-monitor-grace-period: 40 seconds (k8s kube-controller-manager flag)
  606. # --> ROOK_UNREACHABLE_NODE_TOLERATION_SECONDS: 5 seconds
  607. - name: ROOK_UNREACHABLE_NODE_TOLERATION_SECONDS
  608. value: "5"
  609. # The name of the node to pass with the downward API
  610. - name: NODE_NAME
  611. valueFrom:
  612. fieldRef:
  613. fieldPath: spec.nodeName
  614. # The pod name to pass with the downward API
  615. - name: POD_NAME
  616. valueFrom:
  617. fieldRef:
  618. fieldPath: metadata.name
  619. # The pod namespace to pass with the downward API
  620. - name: POD_NAMESPACE
  621. valueFrom:
  622. fieldRef:
  623. fieldPath: metadata.namespace
  624. # Recommended resource requests and limits, if desired
  625. #resources:
  626. # limits:
  627. # memory: 512Mi
  628. # requests:
  629. # cpu: 200m
  630. # memory: 128Mi
  631. # Uncomment it to run lib bucket provisioner in multithreaded mode
  632. #- name: LIB_BUCKET_PROVISIONER_THREADS
  633. # value: "5"
  634. # Uncomment these two settings to run the operator on the host network
  635. # hostNetwork: true
  636. # dnsPolicy: ClusterFirstWithHostNet
  637. volumes:
  638. - name: rook-config
  639. emptyDir: {}
  640. - name: default-config-dir
  641. emptyDir: {}
  642. # OLM: END OPERATOR DEPLOYMENT