Commit Graph
314 Commits
Author SHA1 Message Date
Madhu Rajanna 4fde0ad9af csi: fix indentation for mountinfo
Fixed the indentation for the mountinfo
or else an emptyDir is getting created
for it.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
(cherry picked from commit 9f2b7d572d)
2023-10-12 13:20:06 +00:00
Madhu Rajanna 2a12cc1b91 csi: add mountinfo path for cephfs daemonset
If mountinfo path is available cephcsi will
try to recover the fuse client. adding the
support for the same in Rook.

fixes: #13009

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
(cherry picked from commit 54ce2a96da)
2023-10-09 16:47:57 +00:00
guoguangwu b81d618de5 core: import packages only once
Signed-off-by: guoguangwu <guoguangwu@magic-shield.com>
(cherry picked from commit 235ac293ff)
2023-09-21 21:30:45 +00:00
Blaine Gardner 8b72dfa020 multus: detect network CIDRs via canary
Change how Rook detects network CIDRs for Multus networks. The IPAM
configuration is only defined as an arbitrary string JSON blob with a
"type" field and nothing more. Rook's detection of CIDRs for whereabouts
had already grown out of date since the initial implementation.
Additionally, Rook did not support DHCP IPAM, which is a reasonable
choice for users. And more, Rook did not support CNI plugin chaining,
which further complicates NADs. Based on the CNI spec, network chaning
can result in any changes to network CIDRs from the first-given plugin.

All these problems make it more and more difficult for Rook to support
Multus by inspecting the NAD itself to predict network CIDRs. Instead,
it is better for Rook to treat the CNI process as a black box. To
preserve legacy functionality of auto-detecting networks and to make
that as robust as possible, change to a canary-style architecture like
that used for Ceph mons, from which Rook will detect the network CIDRs
if possible.

Also allow users to specify overrides for CIDR ranges. This allows Rook
to still support esoteric and unexpected NAD or network configurations
where a CIDR range is not detectable or where the range detected would
be incomplete. Because it may be impossible for Rook to understand the
network CIDRs wholistically while residing only on a portion of the
network, this feature should have been present from Multus's inception.

Improving CIDR auto-detection and allowing users to specify overrides
for auto-detected CIDRs rounds out Rook's Multus support for CephCluster
(core/RADOS) installations. No further architectural changes should be
needed for CephClusters as regards application of public/cluster network
CIDRs for Multus networks.

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
(cherry picked from commit 3c43268d0a)
2023-09-07 19:43:17 +00:00
subhamkrai 0ad92bd4b8 csi: enable csi-addons-side when crds are deployed
when deploying csi, we'll check if csi-addons crds
are deployed we'll enable csi-addons sidecar by default.

Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit a755ec156a)
2023-09-01 13:24:40 +00:00
Madhu Rajanna 8ce7c719d6 csi: set ceph cluster as ControllerRef for holder
Setting ceph cluster as the ControllerRef
for the holder daemonset set so that when
a ceph cluster is deleted the holder daemoset
will also gets deleted.

fixes: #12645

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
(cherry picked from commit d7a4f0038c)
2023-08-22 13:42:03 +00:00
karthik-us cc819f00df csi: add maxUnavailable for cephfs csi daemonset
Adding maxUnavailable parameter to the cephfs csi daemonset. The
default value of maxUnavailable = 1 can make the upgrade process
slower in environments with large number of nodes.

Fixes: #12636
Signed-off-by: karthik-us <ksubrahm@redhat.com>
(cherry picked from commit 2675c976d5)
2023-08-08 17:12:41 +00:00
Travis Nielsen 65f413ce1f Merge pull request #12286 from subhamkrai/fix-node-loss-rbd
core: faster recovery from rbd rwo node loss
2023-07-07 10:35:59 -06:00
subhamkrai 39b5c057ce core: faster recovery from rbd rwo node loss
in the existing node watcher, we'll check for node update
event and see if there are `out-of-service` taints are applied
and `ROOK_WATCH_FOR_NODE_FAILURE` is enabled in rook-ceph-operator-configmap,
if then we'll create the networkFence cr and delete the cr if nodes come back.
And, added the unit test too.

Signed-off-by: subhamkrai <srai@redhat.com>
2023-07-07 21:16:25 +05:30
Travis Nielsen 3ffec84100 Merge pull request #12462 from Madhu-1/fix-holderpod
csi: update csi holder daemonset template
2023-07-07 08:32:00 -06:00
Travis Nielsen 18e2502a69 Merge pull request #12295 from subhamkrai/remve-default-scc
security: remove default scc privileges
2023-07-07 08:24:37 -06:00
subhamkrai 48f84b37e8 security: drop all capabilities to the container
adding drop `ALL` capabilities in rook operator container
as this is not required and will remove warning in ocp cluster.

Signed-off-by: subhamkrai <srai@redhat.com>
2023-07-07 17:06:48 +05:30
Travis Nielsen 46dd374e30 Merge pull request #12478 from Rakshith-R/csi/rm-checks
csi: drop checks for k8s version below the support minimum version
2023-07-06 11:53:47 -06:00
Rakshith R aa0aa34c23 csi: update csi sidecars' image version
Signed-off-by: Rakshith R <rar@redhat.com>
2023-07-06 16:18:35 +05:30
Rakshith R 76f4b1f586 csi: remove code related to betav1CsiDriver
This commit removes code related to betav1CsiDriver
since minimum k8s version support by rook is now
k8s v1.22 which does not support betav1 csi driver crd.

Signed-off-by: Rakshith R <rar@redhat.com>
2023-07-06 15:55:57 +05:30
Rakshith R d6b8a8f380 csi: remove k8s version check for oidc token
This commit removes k8s version check for oidc token
which required k8s v1.20 or above since minimum
k8s version that rook supports now is v1.22.

Signed-off-by: Rakshith R <rar@redhat.com>
2023-07-06 15:44:45 +05:30
Madhu Rajanna 1ba3aa4d19 csi: update csi holder daemonset template
Currently the holder daemonset is never updated
which will leaves the images the daemonset also
not updated. we should update the daemonset
template but not restart the csi holder pods
which causes the CSI volume access problem,
set the updateStrategy to OnDelete (already set in
yaml files) which allow us to update the holder
daemonset but not restart/update the pods, when a
pod is deleted or node is rebooted
the new changes will take effect.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2023-07-03 14:13:38 +02:00
Rakshith R fa1be14bca csi: update csiaddons k8s-sidecar to v0.7.0
This commit updates k8s-sidecar to v0.7.0
and all links now point to v0.7.0 tag.

Signed-off-by: Rakshith R <rar@redhat.com>
2023-06-28 20:38:29 +05:30
Rakshith R 1af70aca60 csi: update cephcsi to v3.9.0
This commit updates cephcsi image to
v3.9.0 release and also removes support
for v3.7.x.

refer:
https://github.com/ceph/ceph-csi/releases/tag/v3.8.0

Signed-off-by: Rakshith R <rar@redhat.com>
2023-06-28 20:38:29 +05:30
Rakshith R c488693cb3 csi: add SeLinuxMount: true Option to csidriver obj
This feature is alpha and available from k8s 1.25.
This enabled faster mounting of volumes using
RWOP access pod.

refer:
https://kubernetes.io/blog/2023/04/18/kubernetes-1-27-\
efficient-selinux-relabeling-beta/

Signed-off-by: Rakshith R <rar@redhat.com>
2023-06-28 20:23:51 +05:30
travisn 557a3e06cc core: api updates for controller runtime v0.15
For the controller runtime v0.15 there are some breaking
changes to the api that need to be updated.

Signed-off-by: travisn <tnielsen@redhat.com>
2023-06-22 10:33:28 -06:00
travisn bbfba5425f csi: ipv6 compatibility for requiring msgr2
The msgr2 conversion assumed the endpoints were formatted
with a single :, which is not compatible with ipv6.
Now if the endpoint ends with the v1 port, it will
simply update the prefix to v2.

Signed-off-by: travisn <tnielsen@redhat.com>
2023-03-28 15:13:51 -06:00
Madhu Rajanna 4c710de791 csi: make AttachRequired as configurable
adding a option to make AttachRequired field
as configurable and added a comment to explain
the consequences of changing the default value

resolves: #11805

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2023-03-22 12:55:32 +01:00
Madhu Rajanna 3017d563f2 csi: remove default-fstype for cephfs
we dont need to have fstype for cephfs
pvc, removing the unwanted argument
for cephfs.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2023-03-22 12:55:32 +01:00
Madhu Rajanna 4bdab21db0 nfs: add csi-attacher to NFS provisioner
Add attacher sidecar to NFS provisioner pod
to avoid mounting RWO volumes on two nodes

details: https://github.com/rook/rook/issues/10692

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2023-03-22 12:55:32 +01:00
travisn 0484a3973f csi: update port to 3300 if msgr2 is required
When msgr2 is required, ensure the mon endpoints passed to
the csi configmap are on port 3300. The mons will be
listening on both 6789 and 3300. Existing volumes can
continue using port 6789 while new volumes will use
port 3300.

Signed-off-by: travisn <tnielsen@redhat.com>
2023-03-10 10:34:56 -07:00
Madhu Rajanna b01180580c csi: update cephcsi to v3.8.0
updating the cephcsi image to v3.8.0
release and also removing support for
3.6.0 as its deprecated and not supported
any more.

More details at
https://github.com/ceph/ceph-csi/releases/tag/v3.8.0
and https://github.com/ceph/ceph-csi/tree/release-v3.8
\#ceph-csi-container-images-and-release-compatibility

fixes #11688

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2023-02-22 15:49:36 +01:00
Rakshith R 8b9ded1f77 csi: add option to enable read affinity for rbd volumes
This commit adds code to supply variables required
to enable read affinity for rbd volumes.
It leverages `read_from_replica=localize,crush_locations=key:value`
krbd map option from ceph to serve reads from the most local OSD.
refer:
https://docs.ceph.com/en/latest/man/8/rbd/#kernel-rbd-krbd-options

Signed-off-by: Rakshith R <rar@redhat.com>
2023-02-16 19:09:39 +05:30
Madhu Rajanna d7dc12d834 csi: provide way to set cephfs kernel mount options
Exposing CSI configuration for the user to
set the cephfs kernel mount options.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2023-02-10 08:26:41 +01:00
Rakshith R 12fd87f40b csi: add default version to images if it is missing
Rook will now append internal default versions to custom
csi image variables passed down if version is missing in
them.
This will enable users using their private registries to
just pass different image names while rook takes care
of adding default versions to them.

Resolves: #10529

Signed-off-by: Rakshith R <rar@redhat.com>
2023-01-24 14:54:05 +05:30
Madhu Rajanna 436a87ea13 csi: fix custom ceph.conf for csi pods
we need to set the variable in the template
instead of the global variable for the
template rendering.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2023-01-18 11:33:02 +01:00
Madhu Rajanna f11e65f40c csi: update sidecars to latest release
update all the kubernetes sidecars to the latest
release.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2023-01-06 09:42:36 +01:00
Blaine Gardner b5aa9a76b2 Merge pull request #11337 from sp98/parse-debug-logs
core: parse peer pool output with --out-file flag
2022-11-28 09:01:04 -07:00
Santosh Pillai 4f3cd1d030 core: parse peer pool ouput with --out-file flag
When mirror logs are enabled, `ceph osd pool get <poolname> all` command returns peer pool info along
with the debug logs. This causes error while parsing the logs for json
data. Using --out-file flag saves the json data in the file which can be
parsed easily while logging will still be written to stdout/stderr.

Signed-off-by: Santosh Pillai <sapillai@redhat.com>
2022-11-21 15:28:31 +05:30
ac4b47d71a csi: add a parameter to modify the maxUnavailable value of rbd daemonset
The default value of maxUnavailable of daemonset is 1.
Sometimes the upgrade can be slow due to this setting.
So I add a parameter to change the value for rbd daemonset.

Signed-off-by: Shinya Hayashi <shinya-hayashi@cybozu.co.jp>
Co-authored-by: Toshikuni Fukaya <toshikuni-fukaya@cybozu.co.jp>
Co-authored-by: Yuji Ito <llamerada.jp@gmail.com>
2022-11-21 05:16:15 +00:00
parth-gr 9f432b4ecb core: add ability to add resources on discovery daemon set
Closes: https://github.com/rook/rook/issues/11265

Signed-off-by: parth-gr <paarora@redhat.com>
2022-11-10 17:50:06 +05:30
Madhu Rajanna 729f2a8b32 csi: update csi to latest release
This updates the cephcsi to latest 3.7.2
release and also updates sidecar to the latest
release in some missing files.

Note:- sidecar images are upto date in most of
the places, in some places it was missing, This
PR updates it in missing place.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2022-10-20 09:16:05 +02:00
Madhu Rajanna ffdfeb5bec csi: add setmetadata and clustername flag to omap
The omap generator sidecar is the one who
sets the pvc name and clustername in the metadata
if the pv is re-attached to a new pvc or if the
clustername changes, for that reason we need to
set these flags on the omap generator sidecar
also.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2022-10-18 15:29:58 +02:00
Travis Nielsen 4370d9c710 Merge pull request #11085 from humblec/sidecar-update
update sidecars to latest in CSI deployment
2022-09-29 08:46:30 -06:00
Humble Chirammal b9fb023edf csi: explicitly set default fstype for attacher sidecar
With the attacher sidecar update to v4.0.0 this has to be set
explictly.

Signed-off-by: Humble Chirammal <hchiramm@redhat.com>
2022-09-29 19:35:24 +05:30
Humble Chirammal c847e6b98d csi: update sidecars to latest in CSI deployment
Signed-off-by: Humble Chirammal <hchiramm@redhat.com>
2022-09-29 19:35:17 +05:30
Humble Chirammal 4d435b224f csi: use ceph csi v3.7.1 for rook csi driver deployment
Signed-off-by: Humble Chirammal <hchiramm@redhat.com>
2022-09-29 16:46:43 +05:30
Travis Nielsen 0779618816 Merge pull request #10966 from avanthakkar/customizable-image-pull-policy
operator: make imagePullPolicy customizable for csi driver and ceph pods
2022-09-28 07:23:26 -06:00
Avan Thakkar 934aa91056 operator: make imagePullPolicy customizable for csi driver and ceph pods
Introduce a new env variable ROOK_CSI_IMAGE_PULL_POLICY in rook operator configmap which should be used to
customize the imagePullPolicy for the csi driver and imagePullPolicy property in cephVersionSpec for ceph pods.

Signed-off-by: Avan Thakkar <athakkar@redhat.com>
2022-09-27 11:57:43 +05:30
Blaine Gardner 2965373ea9 Merge pull request #10898 from parth-gr/test-nfs
nfs: fix nfs if multus is enabled
2022-09-22 12:27:47 -06:00
parth-gr 26584fc6e5 core: update loadclusterInfo with multus check
if Multus is enabled the clusterinfo should be updated with
network as multus as to run the ceph cmds in remote
executor

Signed-off-by: parth-gr <paarora@redhat.com>
2022-09-22 14:46:51 +05:30
Prasanna Kumar Kalever bf3a3aa92e csi: make sure we reset CSIParam booleans to default
On removing or setting params to false in operator config map, make sure
to set CSIParam to their appropriate defaults, since we are not restarting the
operator we cannot just assume these params/variables/flags are defaulted,
everytime we need to makesure some defaults are specified.

This is what happens without these changes:
* Set CSI_ENABLE_METADATA to true, this will tune CSIParam.CSIEnableMetadata
  to true from false
* Create a PVC and check the metadata is added to the rbd/cephfs volumes
* Now Set CSI_ENABLE_METADATA to false, we assume CSIParam.CSIEnableMetadata
  will be set to false, but that is not happening because the earlier value
  of `CSIParam.CSIEnableMetadata = true` still persist.
  (we are not restarting operator to assume value of CSIParam.CSIEnableMetadata
   to be reset to false)

This happens with CSI_ENABLE_OMAP_GENERATOR and many other flags too,
fixing them all with these changes.

Thanks to Madhu for debugging the issue and testing it along.

Credit: Madhu Rajanna <madhupr007@gmail.com>
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
2022-09-21 17:23:37 +05:30
Madhu Rajanna 80a96f8f32 csi: customize plugin volumes and volumemounts
This option open-up volumes and volumemounts
for user customization of the rbd,cephfs,nfs
plugin daemonset.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2022-09-16 09:57:37 +05:30
Rakshith R 3c5a2f4142 csi: add topology provisioning support
This commit adds topology provisioning
support. This makes modification to rbac,
csi deployment and daemonset.

Signed-off-by: Rakshith R <rar@redhat.com>
2022-09-12 16:10:18 +05:30
Rakshith R 9c4592720c csi: add NFS expansion support
This commit adds resizer sidecar to
NFS driver and required storageclass
and rbac changes.

Signed-off-by: Rakshith R <rar@redhat.com>
2022-09-08 16:15:37 +05:30