Commit Graph
226 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
sp98 ad9f34bdd5 mgr: setting balancer mode from cluster spec
This PR adds a `settings` option in the `Module` struct
which can help users to futher customize the `balancer`
module with a differet mode.

Signed-off-by: sp98 <sapillai@redhat.com>
(cherry picked from commit 1ad37ecce9)
2024-05-29 16:45:02 +00:00
Michael Adam 98732a50f8 docs: document how to have StorageClass consume Rados Namespace
closes: https://github.com/rook/rook/issues/13214

Co-authored-by: Travis Nielsen <tnielsen@redhat.com>
Co-authored-by: Blaine Gardner <b.blaine.gardner@gmail.com>
Signed-off-by: Michael Adam <obnox@samba.org>
(cherry picked from commit 8e7ac95f97)
2024-05-20 13:14:13 +00:00
Travis Nielsen 5a34cd9f9e osd: add cephcluster status for legacy osds to replace
LVM-based OSDs on PVCs are legacy and are not well tested.
Therefore, we add status to the cephcluster CR that at least
gives a clue that the OSDs should be replaced.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
(cherry picked from commit 3628e83892)
2024-05-13 14:31:14 +00:00
Michael Adam d6855803a8 docs: improve wording in BlockPoolRados Namespace CRD doc
Signed-off-by: Michael Adam <obnox@samba.org>
(cherry picked from commit 10df932d62)
2024-05-07 13:22:50 +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
mergify[bot] 636e74b731 Merge pull request #14122 from rook/mergify/bp/release-1.14/pr-14115
operator: support custom dashboard service labels and annotations (backport #14115)
2024-04-24 15:13:06 +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
ev cdab7999d0 docs: fixing typo in ceph-object-store-crd.md
Example cephobjectstore uses wrong field name for "dnsNames".

Signed-off-by: Adam Prycki <adam.prycki@gmail.com>
(cherry picked from commit c1e727384a)
2024-04-23 16:46:43 +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
NymanRobin b30d82284b operator: make crds outputs more verbose
The following printcolumns were added

CephBlockPoolRadosNamespace: Phase,
BlockPoolName, Age
CephFilesystemSubVolumeGroup: Phase,
FilesystemName, PinningConfig, Age

Also improved the error messages in
SubVolumeGroupClient

Signed-off-by: NymanRobin <nyman.robin@gmail.com>
(cherry picked from commit 70a7e61da5)
2024-04-16 18:00:59 +00:00
Travis Nielsen cfe61733e2 Merge pull request #14055 from rook/mergify/bp/release-1.14/pr-14036
subvolumegroup: add support for size and datapool (backport #14036)
2024-04-11 15:49:57 -06: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
Madhu Rajanna 87a61fb494 subvolumegroup: add support for size and datapool
cephfs subvolumegroup supports creating svg
with quota and the datapool, This PR adds the
support for the same.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
(cherry picked from commit f57a8b6bbe)
2024-04-10 10:58:48 -06: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
Liang Zheng ded63dab1c rgw: fix typo on crd endpoint address
The rgw endpoint address had a typo

Signed-off-by: Liang Zheng <zhengliang0901@gmail.com>
(cherry picked from commit 76d3d85628)
2024-04-03 14:55:39 +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 a67d742195 Merge pull request #13913 from travisn/reef-18.2.2
core: Set default ceph version to v18.2.2
2024-03-12 10:07:45 -06:00
Travis Nielsen fdacfd51c5 object: create an object store based on shared pools
Until now, an object store would create all the necessary
metadata pools and the data pool that were exclusively
for its own object store. When isolation between object
stores is necessary, this would cause many pools and
PGs to be created in the cluster, which was not
manageable.

Now one set of pools can be created to be shared
by any number of object stores. The metadata and data
between each object store is isolated by
RADOS namespaces, which by design will keep the
data safe for multi-tenancy.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2024-03-11 11:20:57 -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
Jiffin Tony Thottan b0989ee1d2 object: add rgw dns names
The virtual hosting for bucket is provided with help of `rgw_dns_name`

Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2024-03-08 13:43:25 +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 2c922c2879 doc: remove legacy rgw service documentation
the rgw service was removed, because users reported certificate
issues when Rook created Services for RGWs that had TLS (HTTPS) enabled.
It is now up to the user to create a Service if they want to use one.

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

Signed-off-by: parth-gr <partharora1010@gmail.com>
2024-03-06 20:59:04 +05:30
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
Liang Zheng 4e9e4c53d8 mds: fix incorrect comment on crd resource requirements
The MDS resource requirements had an incorrect comment of the RGW component.

Signed-off-by: Liang Zheng <zhengliang0901@gmail.com>
2024-02-22 10:23:06 +08:00
Blaine Gardner bd9577f43a Merge pull request #13793 from rkachach/fix_issue_crds_desc
manifest: reduce CRD size by removing some descriptions
2024-02-20 11:59:49 -07:00
Redouane KachachandBlaine Gardner bd7477ec61 manifest: reduce CRD size by removing some descriptions
Reduce CRD size by removing some descriptions for things that
(a) are long, (b) are repeated, and (c) are commong kubernetes types.

Remove the `Status` field from VolumeClaimTemplates (a.k.a. PVCs) in
types.go to remove all unnecessary status-related fields.

Use `yq` to go through generated `crds.yaml` to strip out descriptions
for well-known k8s types that are long and repeated where we can't
remove them from types.go. This is mostly placement descriptions and
volumeSource descriptions.

The overall `crds.yaml` file is reduced to less than 60% of its original
size.

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
Signed-off-by: Redouane Kachach <rkachach@redhat.com>
Co-authored-by: Blaine Gardner <blaine.gardner@ibm.com>
2024-02-20 10:08:44 +01:00
travisn 806608cdbc pool: allow setting the application on a pool
Rook has been setting the application automatically on all
pools to rbd for CephBlockPools, rook-ceph-rgw for
CephObjectStores, mgr on the built-in .mgr pool,
and nfs on the built-in .nfs pool.

The legacy pool device_health_metrics is long gone
from Pacific which is no longer supported, so we can
remove special handling for that pool in the upgrade
guide and in the code.

The application setting is now available on the pool spec
although it is not expected to commonly need to override
the default applications set by Rook.

The application for CephFilesystem pools is now being
set to cephfs, where it was previously blank.

Signed-off-by: travisn <tnielsen@redhat.com>
2024-02-14 16:53:25 -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