Commit Graph
117 Commits
Author SHA1 Message Date
Blaine Gardner 745ad91974 multus: add host checking to validation tool
In order to help users check that they have implemented the newly-added
Multus host configuration prerequisites, add a check to the validation
tool to verify connectivity.

Because users who are already running clusters with Multus enabled, add
a flag that allows users to only check for host configuration
prerequisites. This mode will not start the large number of clients that
would normally be started because those clients could disrupt a running
Rook cluster negatively.

Host checking pods require host network access. Many Kubernetes
distributions have pod security features enabled. In order to allow
non-Vanilla distros to run this tool, allow specifying a service account
that pods will run as, which can be configured by the admin to allow
test pods.

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
(cherry picked from commit 33f5407dd4)

# Conflicts:
#	Documentation/CRDs/Cluster/network-providers.md
#	deploy/examples/multus-validation.yaml
2024-07-11 11:25:15 -06:00
parth-gr e881f7fa48 doc: add design to support nfs in external cluster
with recent discussion we come to conclusion
nfs can be suported easily in the external cluster
so adding the design that we discussed

closes: https://github.com/rook/rook/issues/13277

Signed-off-by: parth-gr <partharora1010@gmail.com>
(cherry picked from commit 9be33bca53)
2024-06-13 15:47:46 +00:00
Travis Nielsen dec8fed5dc mon: allow overriding the mon endpoint with annotation
For an advanced network configuration, the mon endpoints
expected for the ceph public network may be different from
the public IP address that is set on the K8s node. When
host networking is enabled in rook, the IP address of the
node was only allowed previously. Now, the IP address
used for a mon when scheduled on a node can be determined
by setting an annotation on each node where mons can run:
    network.rook.io/mon-ip: <ip-address>
This annotation must be set before the mons are created.
Mon endpoints cannot be changed after they are already
running.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
(cherry picked from commit e90ed3b912)
2024-06-06 15:31:01 +00:00
Travis Nielsen ad70539d28 osd: configure cluster full settings when osds fill up
When the clusters reach full, nearfull, or backfill full thresholds
ceph will raise health warnings and stop allowing IO or backfill
depending on the threshold. These settings require special ceph
commands instead of being generic ceph config. Allow these settings
to be set from the CephCluster CR in the spec.storage
section.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
(cherry picked from commit e479b051bc)
2024-05-30 18:52:35 +00:00
Blaine Gardner 1391228b1d ci: use markdownlint to enforce mkdocs compatibility
mkdocs uses a markdown renderer that is hardcoded to 4 spaces per tab
for detecting indentation levels, including ordered- and
unordered-lists. Since we cannot easily change the renderer, begin using
a markdown linter in CI that will fail if official docs do not adhere to
the spacing rules.

As a starting point, the markdownlint config does not begin with the
default set of checks, which might overwhelm attempts to fix them.
Instead, focus on list-tab-spacing rules and a few other highly useful
checks.

markdownlint also has some gaps in its abilities that allow common Rook
doc issues to pass acceptance. However, it allows creating custom
linting plugins. Create 2 such linting plugins to check 2 things:

- all doc lines (except code blocks) must be aligned to a 4-space
  boundary, without exception. This ensures that markdown will render
  correctly with mkdocs. This unfortunately makes it possible to create
  lists that are internally aligned strangely.
- admonitions must all follow the same format of
  ```
  !!! header
      body
  ```

For the strange lists, this is allowed and renders correctly, but it
looks strange:

```md
- first bullet
- second bullet
    still second bullet
- third bullet

    has a paragraph
    of text inside

- last bullet

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
(cherry picked from commit c9d99e01a0)
2024-05-01 13:52:39 -06:00
smoshiur1237 b2d1a8df88 external: restructure external cluster examples manifests
This PR will add separate directory to handle the external manifest. Here external manifests will have same namespace (rook-ceph) for external cluster.

Signed-off-by: smoshiur1237 <moshiur.rahman@est.tech>
(cherry picked from commit dab17f72a1)
2024-05-01 18:29:48 +00:00
Steven Fackler a60dfda70f operator: support custom dashboard service labels and annotations
Unlike other components, the Ceph dashboard Service object could not be
configured with custom labels and annotations. This can be useful when
integrating Rook into a cluster with custom controllers similarly to how
the RGW service is customized.

Signed-off-by: Steven Fackler <sfackler@gmail.com>
(cherry picked from commit 0c38dd81c2)
2024-04-23 20:22:54 +00:00
parth-gr 6fa4987323 doc: fix external cluster document
fixing the list numbers in external document

closes: https://github.com/rook/rook/issues/13968

Signed-off-by: parth-gr <partharora1010@gmail.com>
(cherry picked from commit fe30ac83ad)
2024-04-22 15:38:24 +00:00
mmaoyu 4c18227cd9 osd: add option upgradeOSDRequiresHealthyPGs
For check if cluster PGs are healthy before osd updates
Which helps gainning more confidence in the osd upgrades

Signed-off-by: mmaoyu <wupiaoyu61@gmail.com>
(cherry picked from commit 6d4afe23e5)
2024-04-11 20:14:32 +00:00
Blaine Gardner 0dc3dfec48 doc: fix network provider bullets and numbering
Most bullets and numbering in the network providers doc (sub-doc of
CephCluster CR) wasn't rendering properly on the web. Fix by making sure
there is a blank line before each numbered/bulleted section. And make
sure nested numberings are indented 4 spaces.

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
(cherry picked from commit ad9e0976e2)
2024-04-08 17:23:56 +00:00
Blaine Gardner 1fdff81e26 doc: make CSI host netowrking required
The network providers doc, including the holder pod migration sections,
were developed with the understanding that CSI could be placed into pod
networking mode if desired by users. In reality, this hasn't been
supported due to bugs.

This allows streamlining the holder pod migration sections to no longer
need to document for users what to do if they use CSI in pod network
mode.

Rook will continue to have the `CSI_ENABLE_HOST_NETWORK` config
available as an undocumented value. This can allow users who desperately
cannot use host networking to still use pod networking, though this will
mean any CSI node plugin updates could stall mounts for running apps.
Thus we do not support it.

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
(cherry picked from commit 519c7e8911)
2024-04-04 19:58:58 +00:00
subham rai b8b0377245 Merge pull request #14012 from rook/mergify/bp/release-1.14/pr-14008
docs: fix network configuration bullets (backport #14008)
2024-04-03 10:43:56 +05:30
Blaine Gardner d30c08da9a doc: update release notes and upgrade docs for v1.14
Update pending release notes, upgrade docs, and supplementary
documentation relevant for upgrades for the upcoming Rook v1.14 release.

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
(cherry picked from commit 0736d7613d)
2024-04-02 18:32:52 +00:00
Mathieu Parent 721486f2f2 docs: fix network configuration bullets
Signed-off-by: Mathieu Parent <math.parent@gmail.com>
(cherry picked from commit 6cd3b55861)
2024-04-02 18:04:27 +00:00
Travis Nielsen 61de68f3e2 Merge pull request #13955 from parth-gr/external-topology
doc: update the topology document for external mode
2024-03-27 11:07:31 -06:00
parth-gr 58f96b6aee external: remove replicated 3 pool for the rbd sc
csi pr get merged ceph/ceph-csi#4459
so, This reverts commit 812a9c02b0.
The csi PR removes the dependency of the pool parameter from the
rbd storage class if the topology pools are passed,
so removing them in the examples and making it optional

Signed-off-by: parth-gr <partharora1010@gmail.com>
2024-03-27 21:48:48 +05:30
parth-gr 078487a7a6 doc: update the topology document for external mode
we need to update the operator configmap
to get enable the topology provisioning

Signed-off-by: parth-gr <partharora1010@gmail.com>
2024-03-27 19:21:03 +05:30
Travis Nielsen 3a7bbe52ae Merge pull request #13821 from parth-gr/replica-1-external
external: add topologyconstraintpool support for rbd storageclass
2024-03-18 11:40:25 -06:00
parth-gr 0aa431c7e1 external: add ci and design documet
Signed-off-by: parth-gr <partharora1010@gmail.com>
2024-03-18 22:17:25 +05:30
Blaine Gardner 4f555dbbcb csi: allow force disabling holder pods
Add new CSI_DISABLE_HOLDER_PODS option for rook-ceph-operator.
This option will disable holder pods when set to "true".

In the long term, Rook plans to deprecate the holder pods entirely.
This new option will allow users to choose to migrate their clusters to
non-holder clusters when they are ready and able, giving them time to
gracefully migrate before the holders are permanently removed.

This option is set to "false" by default so that upgrading users don't
have their CSI pods modified unexpectedly.
Example manifests are modified to set this value to true so that new
clusters will not deploy holder pods.

Migrating users are provided with documentation to instruct them about
the new requirements they need to satisfy to successfully remove holder
pods, a procedure for migrating pods from holder to non-holder mounts,
and a way to delete holder pods once they are no longer in use.

When users set CSI_DISABLE_HOLDER_PODS="true", the CSI controller will
no longer deploy or update the holder pod Daemonsets, but it does not
delete any existing Daemonsets. This allows already-attached PVCs to
continue operating normally with their network connection continuing to
exist in the current holder pod. This is critical to avoid causing
ia cluster-wide storage outage.

More info: https://github.com/rook/rook/issues/13055

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
2024-03-14 09:53:08 -06:00
Travis Nielsen 026d745f8a core: set default ceph version to v18.2.2
With the release of Reef v18.2.2 we update the default
recommended version of Ceph to fix the prometheus issues
seen with v18.2.1

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2024-03-11 11:06:59 -06:00
parth-gr 04b71cf63e external: add toplogyconstraintpool support for rbd storageclass
with topologyconstrain pool we can enable any
replica pool usage and also can store data at any
topology

Signed-off-by: parth-gr <partharora1010@gmail.com>
2024-03-11 12:47:41 +05:30
subham rai 571f47f73f Merge pull request #13857 from parth-gr/external-creation-flow
external: restructure the external install steps
2024-03-11 12:45:35 +05:30
subham rai b857a37dc1 Merge pull request #13858 from parth-gr/admin-keyring
doc: add steps to configure external mode with admin privileges
2024-03-11 12:44:08 +05:30
parth-gr c00982ae48 external: restructure the external install steps
Updating the installation steps of external cluster
to make it more user friendly

part-of: https://github.com/rook/rook/discussions/13831

Signed-off-by: parth-gr <partharora1010@gmail.com>
2024-03-08 18:31:17 +05:30
parth-gr 51302c9dcb doc: add steps to configure external mode with admin privileges
sometimes user want to use the admin ower to create some resources
in the external ceph cluster, so adding a way to use the admin
privilege

part-of: https://github.com/rook/rook/issues/13827

Signed-off-by: parth-gr <partharora1010@gmail.com>
2024-03-08 18:25:53 +05:30
ESASHIKA Kaoru 9ceb8aa7e0 docs: note that changing encryption option settings for existing clusters is not dangerous
We have prohibited changing all network-related configurations after cluster creation.
However, as a result of https://github.com/rook/rook/discussions/13584, we found that
the connections.encryption flag can be regarded as an exception.

Signed-off-by: ESASHIKA Kaoru <kaoru-esashika@cybozu.co.jp>
2024-03-07 09:30:43 +00:00
Travis Nielsen 66fba39eab Merge pull request #13875 from parth-gr/external-doc-rg
doc: update objectuser example in the external install
2024-03-06 14:35:03 -07:00
parth-gr 9061bffd86 doc: update objectuser example in the external install
differentiate betwwen two different ways
of s3 storage consumption

Signed-off-by: parth-gr <partharora1010@gmail.com>
2024-03-06 20:38:34 +05:30
Blaine Gardner bbae064490 docs: separate network providers into sub-doc
Some users are still confused by Ceph networking, especially involving
Multus. Continuing to add network provider-specific information -- a
pretty advanced concept -- to the already-heavy CephCluster CRD doc is
becoming cumbersome. Separate network provider settings into a separate
child doc that notes it is an advanced topic.

This separation will also help with work to remove the holder pod
design, which requires additional Multus prerequisites.
See: https://github.com/rook/rook/issues/13055

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
2024-03-05 09:07:57 -07:00
subham rai a2ba8da0b3 Merge pull request #12973 from raghavendra-talur/rtalur-support-context
import-external-cluster.sh: allow specifying the kubernetes context
2024-02-12 22:28:49 +05:30
Satoru Takeuchi f1aa4f37cf Merge pull request #13314 from microyahoo/partition
osd: support create osd with metadata partition
2024-02-09 06:19:14 +09:00
travisn 27265ff279 helm: remove cpu limits from all pods
When CPU requests and limits are assigned to a pod,
the pod will be guaranteed the requests, up to the limits.
Even if there are spare CPU cycles, the pod cannot use
them. Thus, pods can be unnecessarily denied compute
when they need to burst if the limits are set.

Therefore, it is not recommended to set CPU limits
since the CPU requests are already guaranteeing that
no pod will be starved at least for its requests.

Signed-off-by: travisn <tnielsen@redhat.com>
2024-02-07 17:36:59 -07:00
Joshua Hoblitt a670fd9671 docs: fix CephCluster.spec.cephVersion.imagePullPolicy list item
Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2024-02-07 11:40:30 -07:00
Liang Zheng ee05e82cea osd: support create osd with metadata partition
Currently, when rook provisions OSDs(in the OSD prepare job), rook effectively run a
c-v command such as the following.
```console
ceph-volume lvm batch --prepare <deviceA> <deviceB> <deviceC> --db-devices <metadataDevice>
```
but c-v lvm batch only supports disk and lvm, instead of disk partitions.

We can resort to `ceph-volume lvm prepare` to implement it.

Signed-off-by: Liang Zheng <zhengliang0901@gmail.com>
2024-02-07 11:34:09 +08:00
Raghavendra Talur cb702d3d52 external: allow specifying the kubernetes context
If the import script is run on a system that has many kubernetes configs
in the kubeconfig file, it is useful to be able to specify the context
to use.

Signed-off-by: Raghavendra Talur <raghavendra.talur@gmail.com>
2024-02-06 12:52:02 -05:00
travisn f0c30e2edb manifest: remove pg_autoscaler from mgr modules examples
The pg_autoscaler mgr module is no longer possible to disable.
Ceph requires the module to always be enabled. Now the
autoscaling configuration is done with a per-pool setting.

Now the rook module is shown as an example to enable.

Signed-off-by: travisn <tnielsen@redhat.com>
2024-01-19 14:26:41 -07:00
travisn 56a3370d83 docs: update all examples to ceph v18.2.1
Since v18.2.1 is the default recommendation for the ceph version,
update all the docs and examples to that version.

Signed-off-by: travisn <tnielsen@redhat.com>
2024-01-03 14:37:11 -07:00
Yuma Ogami 3a55526d55 doc: add that resizing encryptedDevice is not yet supported for host-based clusters
Caused by the following issue:
https://github.com/rook/rook/issues/13262

Signed-off-by: Yuma Ogami <yuma-ogami@cybozu.co.jp>
2023-12-21 01:01:49 +00:00
Rakshith R 24430f989a doc: document spec.csi section in cephcluster crd
This commit documents the newly added `spec.csi`
section containing CSI driver related options.

Signed-off-by: Rakshith R <rar@redhat.com>
2023-12-14 19:27:18 +05:30
Blaine Gardner 685a60ed76 docs: remove lingering notes about required quincy ver
Remove some lingering notes stating that features require Ceph Quincy.

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
2023-12-08 14:15:51 -07:00
Satoru Takeuchi 2059a04fbd doc: update the table of supported configurations for OSD creation
In some cases, it's desired to use `must` than `should`.

Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
2023-12-05 20:36:31 +00:00
Satoru Takeuchi ab1f1d97ac doc: describe pgHealthCheckTimeout pgHealthyRegex
Add the missing explanation of pgHealthCheckTimeout and pgHealthyRegex
in the CephCluster' CRD doc. In addition, remove a verbose sentence
from the explanation of `osdMaintenanceTimeout`.

Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
2023-12-05 20:30:54 +00:00
Alexander Trost 3097455d78 Merge pull request #13246 from koor-tech/ceph_config_via_cluster_crd_impl
operator: allow setting ceph config options via ceph cluster crd
2023-12-02 11:27:20 +01:00
Alexander Trost 4ed35d6bd6 operator: allow setting ceph config options via ceph cluster crd
This implements the "Ceph Config via Ceph Cluster CRD" design document
as a `cephConfig:` structure on the CRD.
This also fixes the `yq` commands used to manipulate the
`cluster-test.yaml` that caused CI issues for this PR and potentially
unknowingly others.

Signed-off-by: Alexander Trost <galexrt@googlemail.com>
2023-12-02 00:05:48 +01:00
parth-gr df7c401d35 external: add support for rados namespace for external cluster
change the json output of storageclass to also inclusde rados namespace,
and also added the changes in the csi secret

Signed-off-by: parth-gr <paarora@redhat.com>
2023-11-28 11:52:30 +05:30
travisn 03d077aa6b core: remove support for ceph pacific
Pacific is end of life and no longer necessary to
support in Rook with v1.13.

Signed-off-by: travisn <tnielsen@redhat.com>
2023-11-14 17:07:03 -07:00
Satoru Takeuchi bab6e01d37 doc: add the table to know supported osd configuration
It's convenient to visualize the supported OSD configurations.
In addition, remove the reference to the common issue section
about OSD on LV-backed PVC because this issue doesn't happen anymore
for new OSDs.

Closes: https://github.com/rook/rook/issues/10859

Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
2023-10-25 20:10:35 +00:00
sp98 ffd69291f1 osd: use bash script if restart interval is > 0
If `FlappingRestartIntervalHours` for OSD is > 0 in the cephCluster CR,
then start OSD inside a bash script.

Signed-off-by: sp98 <sapillai@redhat.com>
2023-10-11 11:38:26 +05:30
subhamkrai c78bd1cbc6 external: update healthchecker caps for rbd command
when creating networkFence CR, it requires IP's to block
which we get from running `rbd status ...` command. But,
the client.healthchecker user didn't had the right caps
to run hence it was giving error. Now, adding the required
caps `profile rbd-read-only` to osd so that rbd command can
be executed.

Signed-off-by: subhamkrai <srai@redhat.com>
2023-09-28 08:21:21 +05:30