Upgrading a Ceph objectstore was failing the upgrade test because the
existing method for handling the case where update errors occurred
because labels and label selectors have changed was not robust enough.
Make this more robust by attempting delete-and-create if a normal update
does not work on an rgw deployment.
Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
Update integration test suite fails on an error with getting the keyring
for the mgr. The mgr's cephx capabilities have changed and need to be
updated before get, create, or get-or-create can be called. Since other
daemons' caps may change in the future, make an attempt to update the
user's caps on any key generation. This makes the key generation more
declarative from within the operator code for individual Ceph daemons.
Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
The Ceph mon flag `--public-bind-addr` does not keep the same port as
the previous daemon run when the port is left off the flag's value. A
port is undesired since that could interfere with Nautilus' msgr2
protocol, so instead configure the mon's services to forward the default
bind port on pods (6789) to the mon endpoint's port. The endpoint port
will be 6789 for new mons, but it may be 6790 for legacy clusters.
Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
pass env vars with rook-ceph-system namespace and API version to
ceph-mgr containers to remove hardcoded values from rook orchestrator in
ceph-mgr and updated the unit tests for the same
Signed-off-by: rohan47 <rohgupta@redhat.com>
Allow adding additional required environment variables on a situational
basis to Ceph's spec unit tests.
Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
(cherry picked from commit 94bf2a6e14b88a8e965b4ad5ce1289b606e5c32d)
The RBD module is an important prerequisite for Rook Ceph. It is mentioned as a possible problem on the Common Issues page, but that is the ambulance at the bottom of the cliff 😄. We should mention the perquisite for new users, tell them how to check, and note any major Kubernetes-as-a-service providers that do not have the RBD module.
https://rook.io/docs/rook/master/common-issues.html#rook-agent-rbd-module-missing-error
Signed-off-by: Aaron Roydhouse <aaron@roydhouse.com>
The examples folder has Service examples but no Ingress examples. This example Ingress is important because it demonstrates how to configure and Ingress that will work with the self-signed certificate the `rook-ceph` installs. The Service name and Namespace matches the default `rook-ceph` install.
Signed-off-by: Aaron Roydhouse <aaron@roydhouse.com>
Nautilus has an issue targeting Luminous when running the rbd info command.
Rook already has the info it needs for the call and can return it
after the rbd create command succeeds.
Signed-off-by: travisn <tnielsen@redhat.com>
To target a Nautilus image with msgr2 and configure the nfs ganesha feature
for Ceph, we need to update the base image to Nautilus.
Signed-off-by: travisn <tnielsen@redhat.com>
The desired number of mons could change depending on the number of nodes in a cluster.
For example, three mons would be the min number of mons in a production cluster with at
least three nodes. If there are five or more nodes, the number of mons could increase
to five in order to increase the failure tolerance to two nodes.
This is accomplished by a new setting in the cluster CRD preferredCount. If the number
of hosts exceeds preferredCount, more mons are added to quorum. If the number
of hosts drops below the preferred count, the operator would reduce the quorum size to
the smaller desired count.
Signed-off-by: travisn <tnielsen@redhat.com>
Re-write the Rook/ceph-csi (short term) integration section
to conform to my goals and understanding of the integration
needs.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
The "Coexist with flex driver" section was overly technical about
details in the implementation of CSI vs. flex. Remove the detail
and replace it with more goal oriented paragraphs.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
The basic idea here is to replace the release name in the ClusterInfo
object with the fine grained version information queried at runtime.
This patch also removes the Name field from the cluster spec, which was
also runtime determined and was redundant with ClusterInfo relase name.
Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
The user may want to connect to storage that is in a Ceph cluster,
independent from the local Kubernetes cluster. This design doc
describes the changes needed to enable the scenario.
Signed-off-by: travisn <tnielsen@redhat.com>