Commit Graph
7961 Commits
Author SHA1 Message Date
Sébastien Han e1cd82beb3 ceph: add fs-mirror to cleanup list
Before running the cleanup job we now also wait for the fs-mirror pods
to be gone.
Also, small refactor to print nicely the list of remaining daemons.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-08-03 15:22:36 +02:00
Travis Nielsen 9771641378 Merge pull request #8456 from leseb/rm-pool-id
ceph: remove pool id from the peer
2021-08-03 07:18:04 -06:00
Humble Chirammal 8034a4ef98 ceph: set default FsGroupChangePolicy value to 'None'
The `None` value Indicates that volumes will be mounted
with no modifications, as the CSI volume driver does not
support these operations. While volumes are provisioned
by the CephFS CSI driver the global permissions are set
on the volume and we dont expect the Fsgroup policy or
check from CO side  to play a role here.

Ref #ceph/ceph-csi/../internal/cephfs/nodeserver.go#L190

```
!csicommon.MountOptionContains(fuseMountOptions, readOnly) {
		// #nosec - allow anyone to write inside the stagingtarget path
		err = os.Chmod(stagingTargetPath, 0o777)
```

The current default value ie `ReadWriteOnceWithFSType` cause
volumes to be examined to determine if volume ownership and permissions
should be modified to match the pod's security policy. Changes could occur
if the fsType is defined and the persistent volume's accessModes contains
ReadWriteOnce.

Signed-off-by: Humble Chirammal <hchiramm@redhat.com>
2021-08-03 16:54:10 +05:30
Sébastien Han 73b0ce08ff ceph: do not stack trace on error
We should not use %+v when printing errors and wrapping it in the
caller. Passing %+v to errors.Wrap() returns a strack trace.

See:

```
2021-08-03 09:42:40.460946 E | ceph-file-controller: failed to reconcile failed to create filesystem "myfs2": failed to start deployment for MDS "a" for filesystem "myfs2": failed to update mds deployment "rook-ceph-mds-myfs2-a": failed to check if deployment "rook-ceph-mds-myfs2-a" can continue: failed to check if we can continue the deployment rook-ceph-mds-myfs2-a: failed to check if rook-ceph-mds-myfs2-a was ok to continue: max retries exceeded, last err: mds myfs2-a is up:creating, bad state
github.com/rook/rook/pkg/daemon/ceph/client.MdsActiveOrStandbyReplay
        /home/leseb/go/src/github.com/rook/rook/pkg/daemon/ceph/client/status.go:286
github.com/rook/rook/pkg/daemon/ceph/client.okToContinueMDSDaemon.func1
        /home/leseb/go/src/github.com/rook/rook/pkg/daemon/ceph/client/upgrade.go:215
github.com/rook/rook/pkg/util.Retry
        /home/leseb/go/src/github.com/rook/rook/pkg/util/retry.go:31
github.com/rook/rook/pkg/daemon/ceph/client.okToContinueMDSDaemon
        /home/leseb/go/src/github.com/rook/rook/pkg/daemon/ceph/client/upgrade.go:214
github.com/rook/rook/pkg/daemon/ceph/client.OkToContinue
        /home/leseb/go/src/github.com/rook/rook/pkg/daemon/ceph/client/upgrade.go:181
github.com/rook/rook/pkg/operator/ceph/cluster/mon.UpdateCephDeploymentAndWait.func1
        /home/leseb/go/src/github.com/rook/rook/pkg/operator/ceph/cluster/mon/spec.go:370
github.com/rook/rook/pkg/operator/k8sutil.UpdateDeploymentAndWait
        /home/leseb/go/src/github.com/rook/rook/pkg/operator/k8sutil/deployment.go:113
github.com/rook/rook/pkg/operator/ceph/cluster/mon.UpdateCephDeploymentAndWait
        /home/leseb/go/src/github.com/rook/rook/pkg/operator/ceph/cluster/mon/spec.go:383
github.com/rook/rook/pkg/operator/ceph/file/mds.(*Cluster).startDeployment
        /home/leseb/go/src/github.com/rook/rook/pkg/operator/ceph/file/mds/mds.go:216
github.com/rook/rook/pkg/operator/ceph/file/mds.(*Cluster).Start
        /home/leseb/go/src/github.com/rook/rook/pkg/operator/ceph/file/mds/mds.go:138
github.com/rook/rook/pkg/operator/ceph/file.createFilesystem
        /home/leseb/go/src/github.com/rook/rook/pkg/operator/ceph/file/filesystem.go:81
github.com/rook/rook/pkg/operator/ceph/file.(*ReconcileCephFilesystem).reconcileCreateFilesystem
        /home/leseb/go/src/github.com/rook/rook/pkg/operator/ceph/file/controller.go:373
github.com/rook/rook/pkg/operator/ceph/file.(*ReconcileCephFilesystem).reconcile
        /home/leseb/go/src/github.com/rook/rook/pkg/operator/ceph/file/controller.go:288
github.com/rook/rook/pkg/operator/ceph/file.(*ReconcileCephFilesystem).Reconcile
        /home/leseb/go/src/github.com/rook/rook/pkg/operator/ceph/file/controller.go:167
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler
        /home/leseb/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.9.0/pkg/internal/controller/controller.go:298
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
        /home/leseb/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.9.0/pkg/internal/controller/controller.go:253
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2
        /home/leseb/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.9.0/pkg/internal/controller/controller.go:214
runtime.goexit
        /usr/local/go/src/runtime/asm_amd64.s:1371
```

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-08-03 11:48:54 +02:00
Sébastien Han 8556f3fe26 ceph: remove pool id from the peer
We don't need to put this information in the token.
It's not useful and not used anywhere.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-08-03 09:44:54 +02:00
Sébastien Han 1c8caa2270 Merge pull request #8379 from leseb/manual-peer-bootstrap
ceph: add an rbd-mirror bootstrap token on cluster creation
2021-08-02 19:03:29 +02:00
Sébastien Han 630c2f6a8b ceph: add an rbd-mirror bootstrap token on cluster creation
They are scenarios where the mirroring information want to be shared
between clusters prior to creating pool. Because the bootstrap peer
import command needs a pool name to operate this is not suitable. So
additionally now each time the cluster is reconciled and on any new
clusters a new secret will be created that contains a boostrap peer
token. It can be exchanged with another cluster.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-08-02 18:34:27 +02:00
Travis Nielsen ff7535a697 Merge pull request #8453 from leseb/upgrade-images
docs: add note about new container image location
2021-08-02 10:01:27 -06:00
Sébastien Han 7f8c6c91d1 docs: add note about new container image location
Recently, images moved from docker.io to quay.io so people using main
major tag like `v16` needs to switch to use the quay.io URL.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-08-02 17:25:20 +02:00
Travis Nielsen 59f5939d63 Merge pull request #8425 from Madhu-1/csi-3.4.0
ceph: update cephcsi to v3.4.0
2021-08-02 08:56:21 -06:00
Sébastien Han a2e465f0f3 docs: fix typo in section
The section header was updated to Ceph Pacific since the tag used is
`v16.2.5-20210708`, which means Pacific and not Octopus.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-08-02 14:56:34 +02:00
Sébastien Han 4e2879a154 ceph: signal signals handling with context
As of Golang 1.16, we can use `signal.NotifyContext()` from the signal
package. Essentially it combines signal handling for termination as well
as canceling the context to stop any ongoing operations.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-08-02 14:19:50 +02:00
Madhu Rajanna b556dbf109 ceph: update cephcsi to v3.4.0
This PR updates the required RBAC, templates,
CSI image version and examples for new
cephcsi v3.4.0 release.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2021-08-02 10:22:54 +05:30
Dominik Münch c980dc2d4d ceph: add empty dirs for /var/lib/rook and /etc/ceph
Adds volumes and mounts for /var/lib/rook and /etc/ceph to the operator deployment in the Helm
chart. This is consistent with the example operator manifest and is sometimes even required on
clusters with stricter permissions on the local filesystem.

Signed-off-by: Dominik Münch <d.muench@celonis.com>
2021-07-30 23:03:50 +02:00
Travis Nielsen a3107cfdf7 Merge pull request #8439 from cemsbr/fix-teardown-docs
docs: fix command to remove cluster CRD finalizer
2021-07-30 13:26:53 -06:00
Blaine Gardner e5a261fd3a Merge pull request #8437 from travisn/upgrade-old-instructions
docs: Upgrade guide cleanup of previous release upgrade issues
2021-07-30 09:33:30 -06:00
Sébastien Han 082858bf53 ceph: use v16 for mirroring test in ci
The CI test for mirroring now runs on stable v16 tag. Internally our
code has a minimum version of 16.2.5 for cephfs mirroring since it's
available.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-07-30 16:17:08 +02:00
Sébastien Han 7ef127b816 ceph: append additional info in the rbd-mirror bootstrap peer token
If the title looks familiar this is normal, this piece of code was
removed during https://github.com/rook/rook/pull/7604. Probably due to a
rebase. So I'm re-adding the code.

We know append additional information to the rbd-mirror bootstrap peer
token. It is useful for disaster recovery scenario where the other
cluster is reading the peer token and needs to know the pool_id as well
as the namespace.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-07-30 15:40:35 +02:00
Travis Nielsen 30063359da Merge pull request #8410 from leseb/simplify-cluster-creation-internal-flow
ceph: small bootstrap sequence refactor
2021-07-30 07:37:12 -06:00
Travis Nielsen 8304303120 Merge pull request #8355 from anmolsachan/add_metric_label
ceph: added monitoring managedBy label to metrics
2021-07-30 07:28:42 -06:00
Sébastien Han fa3ab50eff Merge pull request #8429 from leseb/admin-ops-api-debug
ceph: change the debug implementation of the admin ops API
2021-07-30 15:23:07 +02:00
Sébastien Han 65aea09e7d ceph: small bootstrap sequence refactor
Moving and factoring code here and there to hopefully make the
initialization sequence easier to go by.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-07-30 15:03:25 +02:00
Anmol Sachan c6944edc37 ceph: added monitoring managedBy label to metrics
This commit adds 'managedBy' label to the ceph metrics if the
cephcluster is managed by another higher Resource. The optional
label shall be added as part of cephcluster CRs monitoring labels.

Signed-off-by: Anmol Sachan <anmol13694@gmail.com>
2021-07-30 11:41:33 +05:30
Carlos Eduardo Moreira dos Santos 9ab343f409 docs: fix command to remove cluster CRD finalizer
Add the namespace option to the `kubectl patch` command.

Signed-off-by: Carlos Eduardo Moreira dos Santos <cems@cemshost.com.br>
2021-07-30 02:58:39 -03:00
Travis Nielsen 8a48374965 ceph: update docs to point to quay for ceph images
Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-07-29 17:27:37 -06:00
Travis Nielsen cad9c5dd90 ceph: remove obsolete instructions in upgrade guide
Previous release upgrades included instructions for removing obsolete
drive groups and dealing with a preserveUnknownFields error. These
should no longer be an issue with the v1.7 upgrades.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-07-29 17:20:06 -06:00
Blaine Gardner 88adffb3b2 Merge pull request #8389 from BlaineEXE/add-ocs-build-target
build: stage CSV files into tmp while building
2021-07-29 10:19:18 -06:00
Satoru Takeuchi 2218c53fda Merge pull request #8403 from cybozu-go/ceph-dont-remove-pvc-in-osd-purge-job
ceph: add an option to preserve pvc in osd purge job
2021-07-30 01:04:28 +09:00
Blaine Gardner 8a19f6d758 Merge pull request #8419 from BlaineEXE/upgrade-docs-1.7
docs: ceph: update upgrade docs for Rook v1.7
2021-07-29 09:56:04 -06:00
Satoru Takeuchi 89b6a6028c ceph: add an option to preserve pvc in osd purge job
Sometimes we want to investigate a PVC for removed OSD.

Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
2021-07-29 14:20:06 +00:00
Travis Nielsen 990d92790b Merge pull request #8420 from travisn/cleanup-old-versions
ceph: Remove old references to luminous and mimic versions
2021-07-29 07:40:46 -06:00
Sébastien Han ad45924807 ceph: change the debug implementation of the admin ops API
The go-ceph library has removed the `Debug` field from the API type in
https://github.com/ceph/go-ceph/pull/543. Since the HTTP Client can be
mutated we now have our own client to dump requests and responses when
the operator log level is DEBUG.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-07-29 13:59:50 +02:00
Sébastien Han f415a58e25 Merge pull request #8265 from leseb/auto-detect-vault-kv-version
ceph: auto detect vault k/v version
2021-07-29 11:41:01 +02:00
Sébastien Han 99e00dea1e ceph: auto detect vault k/v version
Rook will now auto detect the kv version of the vault server. This
allows users not having to pass the VAULT_BACKEND configuration in the
CephCluster CR.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-07-29 10:16:31 +02:00
Travis Nielsen c2a551123f Merge pull request #8401 from TomHellier/add-additional-rook-ceph-cluster-helm-features
ceph: Add additional helm chart functionality for ingresses and defining the ceph storage crds
2021-07-28 16:14:48 -06:00
Blaine Gardner 9dfcb943d1 docs: ceph: update upgrade docs for Rook v1.7
Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2021-07-28 14:54:06 -06:00
Tom Hellier 89ab4f90ec ceph: adds helm functionality for ingress, and ceph storage crds
This commit adds an ingress resource to the rook-ceph-cluster helm chart, allowing
ingress to the ceph-dashboard service. It also adds the ability to define the
various storage types that you can run on ceph inside kubernetes.

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

Signed-off-by: Tom Hellier <me@tomhellier.com>
2021-07-28 21:51:56 +01:00
Travis Nielsen f5030f0560 ceph: remove old references to mimic version
References to luminous and mimic, and unnecessary references to nautilus
were found in the docs that have been cleaned up and clarified. At the same
time, the tests are updated to use more recent versions.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-07-28 14:00:35 -06:00
Travis Nielsen 22c3cfdd21 Merge pull request #8406 from BlaineEXE/add-upgrade-section-for-monitoring
docs: update ancillary resources (monitoring)
2021-07-28 10:08:42 -06:00
Sébastien Han a62e7e75e7 Merge pull request #8380 from sp98/update-cephblockpool-cr
ceph: add mirroring peer specification to CephBlockPool CRD
2021-07-28 17:34:52 +02:00
Travis Nielsen 643eddf261 Merge pull request #8291 from jmolmo/enable_mgr_tests
ceph: enable again the Rook orchestrator mgr test
2021-07-28 09:27:46 -06:00
Juan Miguel Olmo Martínez 9edff582c3 ceph: enable again the Rook orchestrator mgr test
Enable again the mgr test:
- Now is more reliable and robust the start of the test.
- Minor fixes to adapt the <service ls>  to the new name of the crash daemon
deployed by rook

- The creation of OSDs is disabled in the orchestrator, so i have removed
this test until we will have the functionality ready again in the orchestrator
part

My plan is to provide in the orchestrator two different ways to create OSDs:
- Creation of OSD using specific devices if discovery daemon is running
- Creation of OSds using PVS (if we have LSO/other LS operator running)

Signed-off-by: Juan Miguel Olmo Martínez <jolmomar@redhat.com>
2021-07-28 16:27:42 +02:00
Travis Nielsen a2fa57eab9 Merge pull request #8408 from travisn/git-build-version
build: Detect git version instead of setting to 0
2021-07-28 08:02:54 -06:00
Travis Nielsen 87596c6f8e build: detect git version instead of setting to 0
The build version should be detected with the git describe
command, but if the VERSION var is already set, it will be
used instead of being detected from git. During the official
builds or even local builds, we just want to let the makefile
detect the git version.

The full git history is added to enable proper detection of the
version. Without the full history only a hash is returned for
the version, which then results in an invalid semantic version
error for the helm chart.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-07-28 07:25:10 -06:00
Santosh Pillai 3b50f5fd00 ceph: add MirroringPeerSpec to CephBlockPool.Spec.Mirroring
Instead of having the RBDMirroringPeerSpec in the RBDMirror CRD we want
to move it on the CephBlockPool CRD so that each pool can have its own peer.
This enables pool to re-use an existing peer secret if it points to the
same cluster peer.So we don't need to duplicate secret peer anymore.

Signed-off-by: Santosh Pillai <sapillai@redhat.com>
2021-07-28 17:47:36 +05:30
Blaine Gardner 1ac184894c docs: update ancillary resources (monitoring)
Add sections to docs to mention updating ancillary resources, of which
monitoring is the only one currently.

Fixes #7750

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2021-07-27 16:26:17 -06:00
Blaine Gardner 9138732c81 build: stage CSV files into tmp while building
If a user were to `make build` Rook, and after the Ceph CSV was
generated and before make had finished, the Rook repo would be left with
changes caused by the build modifying files temporarily in-place.

All CSV template generation in the Ceph makefile is now self-contained
and can be configured to operate outside of the main repo so that files
are not modified in-place.

In-place modification of files was also incorrect. On Mac some files
with `-e` trailing were left, and in-place backups were also present in
the form `<filename>''`. Therefore, also fix the generation to fix
in-place modifications.

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2021-07-27 16:11:58 -06:00
Travis Nielsen 6dcc60173a Merge pull request #8347 from josephsawaya/rook-ceph-mgr-role-changes
ceph: update rook-ceph-mgr-cluster role rules to include PV and SC
2021-07-27 11:22:31 -06:00
Travis Nielsen b8ad33be1e Merge pull request #7995 from cybozu-go/ceph-make-timeout-of-radosgw-admin-configurable
ceph: make the timeout of ceph commands configurable
2021-07-27 10:44:04 -06:00
Travis Nielsen 38c4d524e6 Merge pull request #8391 from travisn/publish-promote-action
build: Publish and promote with correct branch name
2021-07-27 07:22:35 -06:00