Commit Graph
6005 Commits
Author SHA1 Message Date
Sébastien Han 44305085df Merge pull request #6759 from travisn/aggregate-affinity
ceph: Merge placement node affinity for stretch clusters
2020-12-04 18:12:08 +01:00
Travis Nielsen c083711c3d ceph: merge required node affinity for stretch clusters
Stretch clusters require certain node affinity for the mons and
must also be merged with the required node affinity in the placement
of the cluster CR. All conditions, both requested and generated must
be met, rather than one overriding the other.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-12-04 09:20:34 -07:00
Travis Nielsen 156774c459 ceph: remove obsolete topology comments and fix comment typo
Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-12-04 09:10:52 -07:00
Travis Nielsen 6fb3c522bb Merge pull request #6768 from shaas/master
ceph: fix #6214 New node is not provisioned when useAllNodes: true
2020-12-04 08:57:49 -07:00
Sébastien Han 3b9dad94c9 Merge pull request #6714 from leseb/mgr-port-config-external-simple
ceph: ability to set external services ports
2020-12-04 16:18:43 +01:00
Stefan Haas a6ee5657ae ceph: fix #6214 New node is not provisioned when useAllNodes: true
Signed-off-by: Stefan Haas <shaas@suse.com>
2020-12-04 15:05:58 +01:00
Sébastien Han 6aab4f79d2 Merge pull request #6757 from Aisuko/fix-doc-broken-address
docs: Replace the broken addresses of the document
2020-12-04 11:54:09 +01:00
Sébastien Han 1cc4c22e6c Merge pull request #6763 from leseb/fix-6762
ceph: fix cluster.yaml example
2020-12-04 10:39:22 +01:00
Sébastien Han f2bfb094f9 ceph: fix cluster.yaml example
Uncomment the `cleanupPolicy:` so that the file can be injected.

Closes: https://github.com/rook/rook/issues/6762
Signed-off-by: Sébastien Han <seb@redhat.com>
2020-12-04 10:18:08 +01:00
aisuko 5ccde7691c docs: replace the broken addresses of the doc
Replace the old links which were broken.

Signed-off-by: aisuko <urakiny@gmail.com>
2020-12-04 17:14:36 +08:00
Sébastien Han 8aaff235bb ceph: ability to set external services ports
When the cluster is external we want to expose manager service port
along with the endpoints.
This allows us to connect but Rook will keep on using 9283 as a facing
port for Prometheus and more.

```
monitoring:
  enabled: true
  ...
  ...
  externalMgrPrometheusPort: 9283
```

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-12-04 09:52:09 +01:00
Travis Nielsen c10bf1c044 Merge pull request #6758 from subhamkrai/helm-it
ci: helm integration test is failing on pre-k8s-1.16
2020-12-04 00:06:21 -07:00
subhamkrai c22590e2cb ci: helm integration test is failing on pre-k8s-1.16
testCephHelmSuite is failing in pre-k8s v1.16
due to invalid schema. v1beta1 doesn't support
null value so returning quotes instead of an empty
string.

Signed-off-by: subhamkrai <srai@redhat.com>
2020-12-04 10:52:32 +05:30
Blaine Gardner bc08f51f65 Merge pull request #6699 from BlaineEXE/update-lib-bucket-provisioner
ceph: update object bucket provisioner library
2020-12-03 14:47:44 -07:00
Blaine Gardner 3b4ee6c8e3 ceph: update object bucket provisioner library
The library for object bucket provisioning is updated to fix errors
during provisioning.

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2020-12-03 09:43:12 -07:00
Sébastien Han ada6d6a59a Merge pull request #6687 from leseb/fix-6659
ceph: include csi by default in the csv
2020-12-03 09:56:42 +01:00
Sébastien Han f27b954963 Merge pull request #6742 from travisn/rgw-service-selector
ceph: RGW service selector should not change during upgrade
2020-12-03 09:30:18 +01:00
Travis Nielsen 8913a14ce4 ceph: rgw service selector should not change
If the selector changes on the rgw service, during upgrade the
clients will briefly not be able to connect to the rgw pods.
After all the pods are updated with any new labels, the connections
would be restored, but we want to avoid that temporary outage.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-12-02 16:45:02 -07:00
Blaine Gardner a31f5a7265 Merge pull request #6657 from BlaineEXE/obc-add-more-debugging
ceph: add more debug logging to obj bucket claims
2020-12-02 10:13:10 -07:00
Sébastien Han 8170fa2326 Merge pull request #6731 from thotz/minorupdatesforkmsdoc
docs: update vault kms integration doc
2020-12-02 14:35:49 +01:00
Jiffin Tony Thottan a92a58e23e docs: update vault kms integration doc
correct the name policy mentioned

Signed-off-by: Jiffin Tony Thottan <jthottan@redhat.com>
2020-12-02 11:52:07 +05:30
Travis Nielsen 75af038309 Merge pull request #6726 from travisn/ceph-15.2.7
ceph: Update examples and base image to v15.2.7
2020-12-01 14:05:37 -07:00
Blaine Gardner e75dcac8a3 ceph: add more debug logging to obj bucket claims
Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2020-12-01 14:01:33 -07:00
Travis Nielsen 94d6357b12 Merge pull request #6723 from travisn/clear-release-notes
docs: Clear the pending release notes for 1.6
2020-12-01 12:36:07 -07:00
Blaine Gardner 87ee8dce29 Merge pull request #6679 from leseb/add-log-collector
ceph: add log collector
2020-12-01 12:08:50 -07:00
Travis Nielsen 0a35a08f2f ceph: update examples and base image to v15.2.7
With the release of the latest octopus v15.2.7 we update the base
of the operator image and set the examples to use the same release
to pick up the security and other bug fixes.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-12-01 12:05:39 -07:00
Travis Nielsen c36868eb0a Merge pull request #6720 from cloudical-io/fix_label_merge
core: fix label merge
2020-12-01 11:56:52 -07:00
Travis Nielsen 6b8315c53c docs: clear the pending release notes for 1.6
The pending release notes were for v1.5, now cleared for adding
v1.6 features.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-12-01 11:10:15 -07:00
Travis Nielsen 5b72a3f866 Merge pull request #6719 from sp98/ignore-pending-daemons-on-cleanup
ceph: cleanup should ignore ceph daemon pods that are not scheduled on any node.
2020-12-01 10:37:46 -07:00
Santosh Pillai 753bdb3526 ceph: ignore unscheduled ceph daemons while cleaning up
Before cleaning up the cluster, we wait for all the daemon pods to be cleaned up. This fails when
a daemon is in pending state and has no NodeName. This PR ignores daemon pods that are not scheduled on any node.

Signed-off-by: Santosh Pillai <sapillai@redhat.com>
2020-12-01 22:44:32 +05:30
Sébastien Han c6a87203ca ceph: add log collector
We can now collect logs directly into a side-car container.
A new CRD spec has been added:

spec:
  logCollector:
    enabled: true
    periodicity: 24h

Every 24h we will rotate log files for each Ceph daemon.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-12-01 16:30:17 +01:00
Alexander Trost 48d21947c2 core: fix label merge
This makes it so the label merging function returns a new Labels object
with the merged content instead of modifying the existing one, which
would cause previously merged labels to be returned for a different set
of input labels.

Signed-off-by: Alexander Trost <galexrt@googlemail.com>
2020-12-01 15:11:21 +01:00
Blaine Gardner d5435e8092 Merge pull request #6717 from BlaineEXE/blaine-update-owners-md
docs: update Blaine's email in OWNERS.md
2020-11-30 16:50:51 -07:00
Blaine Gardner e529e72364 docs: update Blaine's email in OWNERS.md
Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2020-11-30 15:44:36 -07:00
Satoru Takeuchi 859e86929f Merge pull request #6713 from kanekoh/doc_typo
test: Fixed a wrong test suite name
2020-11-27 23:46:51 +09:00
Hiroyuki Kaneko 862edaf371 test: fixed a wrong test suite name
A test suite name is not existing in the integration test suites.
Replace the wrong name "TestRookClusterInstallation_SmokeTest" with "TestARookClusterInstallation_SmokeTest"

Signed-off-by: Hiroyuki Kaneko <hkaneko@redhat.com>
2020-11-27 23:25:15 +09:00
Satoru Takeuchi a17cec45a6 Merge pull request #6709 from leseb/fix-6708
ceph: fix RBAC for cron cash pruner
2020-11-27 15:18:36 +09:00
Sébastien Han 6cede4574d Merge pull request #6710 from synarete/minikube-script-fixes
Minikube script fixes
2020-11-26 17:52:12 +01:00
Shachar Sharon 0786b72752 test: avoid minikube deprecated option
Minikube deprecates '--vm-driver' option. When user starts new minkube
run with '--driver=xxx', the test will fail and cause him to use the wrong
default value of 'virtualbox'.

Tested with minikube=v1.15.1, driver=kvm2 on Fedora32.

Signed-off-by: Shachar Sharon <ssharon@redhat.com>
2020-11-26 18:16:49 +02:00
Shachar Sharon 72791c7151 test: use proper shell variable in minikube script
Users may prefer to use docker alternatives, by setting DOCKERCMD
variable, which is set by 'common.sh'. Use it in 'copy_image_to_cluster'
instead of plain 'docker'.

Tested with DOCKERCMD=podman (podman-2.1.1).

Signed-off-by: Shachar Sharon <ssharon@redhat.com>
2020-11-26 18:16:42 +02:00
Sébastien Han 13da4a1521 ceph: fix RBAC for cron cash pruner
The rook-ceph-system service account was lacking delete permission and
the operator was complaining.

Closes: https://github.com/rook/rook/issues/6708
Signed-off-by: Sébastien Han <seb@redhat.com>
2020-11-26 11:29:47 +01:00
Sébastien Han aca5a8cc53 ceph: use debug message for snap schedule
We don't need to print this every 60s in the operator log.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-11-26 09:12:11 +01:00
Satoru Takeuchi c953de538b Merge pull request #6702 from cloudical-io/fix_ceph_csi_pod_labels
ceph: fix pod labels set on csi components
2020-11-26 13:24:55 +09:00
Satoru Takeuchi d3ebaedc32 Merge pull request #6696 from leseb/fix-6685
ceph: fix metadata device passed by-id
2020-11-26 07:57:04 +09:00
Sébastien Han 78f22fcf6a Merge pull request #6693 from leseb/abort-reconcile-simple
ceph: ability to abort orchestration
2020-11-25 16:23:01 +01:00
Sébastien Han ad24990473 ceph: ability to abort orchestration
We can now prioritize orchestrations on certain event. Today only two
events will cancel on-going orchestrations (if any):

* request for cluster deletion
* request for cluster upgrade

If one of the two are caught by the watcher we will cancel the on-going
orchestration.
For that we implemented a simple approach based on check points, where
we will check for a cancellation request in certain part of the
orchestration. Mainly before each mons/mgr/osds orchestration loops.

This solution is not perfect, but we are waiting for the
controller-runtime to release its 0.7 version which will embed context
support. With that we will be able to cancel reconciles more precisely
and rapidly.

Operator log example:

```
2020-11-24 13:54:59.499719 I | op-mon: parsing mon endpoints: a=10.109.126.120:6789
2020-11-24 13:54:59.499719 I | op-mon: parsing mon endpoints: a=10.109.126.120:6789
2020-11-25 12:59:12.986264 I | ceph-cluster-controller: done reconciling ceph cluster in namespace "rook-ceph"
2020-11-25 13:07:33.776947 I | ceph-cluster-controller: CR has changed for "rook-ceph". diff=  v1.ClusterSpec{
        CephVersion: v1.CephVersionSpec{
                Image:            "ceph/ceph:v15.2.5",
-               AllowUnsupported: true,
+               AllowUnsupported: false,
        },
        DriveGroups: nil,
        Storage:     {UseAllNodes: true, Selection: {UseAllDevices: &true}},
        ... // 20 identical fields
  }
2020-11-25 13:07:33.777039 I | ceph-cluster-controller: reconciling ceph cluster in namespace "rook-ceph"
2020-11-25 13:07:33.785088 I | op-mon: parsing mon endpoints: a=10.107.242.49:6789,b=10.109.71.30:6789,c=10.98.93.224:6789
2020-11-25 13:07:33.788626 I | ceph-cluster-controller: detecting the ceph image version for image ceph/ceph:v15.2.5...
2020-11-25 13:07:35.280789 I | ceph-cluster-controller: detected ceph image version: "15.2.5-0 octopus"
2020-11-25 13:07:35.280806 I | ceph-cluster-controller: validating ceph version from provided image
2020-11-25 13:07:35.285888 I | op-mon: parsing mon endpoints: a=10.107.242.49:6789,b=10.109.71.30:6789,c=10.98.93.224:6789
2020-11-25 13:07:35.287828 I | cephclient: writing config file /var/lib/rook/rook-ceph/rook-ceph.config
2020-11-25 13:07:35.288082 I | cephclient: generated admin config in /var/lib/rook/rook-ceph
2020-11-25 13:07:35.621625 I | ceph-cluster-controller: cluster "rook-ceph": version "15.2.5-0 octopus" detected for image "ceph/ceph:v15.2.5"
2020-11-25 13:07:35.642688 I | op-mon: start running mons
2020-11-25 13:07:35.646323 I | op-mon: parsing mon endpoints: a=10.107.242.49:6789,b=10.109.71.30:6789,c=10.98.93.224:6789
2020-11-25 13:07:35.654070 I | op-mon: saved mon endpoints to config map map[csi-cluster-config-json:[{"clusterID":"rook-ceph","monitors":["10.107.242.49:6789","10.109.71.30:6789","10.98.93.224:6789"]}] data:a=10.107.242.49:6789,b=10.109.71.30:6789,c=10.98.93.224:6789 mapping:{"node":{"a":{"Name":"minikube","Hostname":"minikube","Address":"192.168.39.3"},"b":{"Name":"minikube","Hostname":"minikube","Address":"192.168.39.3"},"c":{"Name":"minikube","Hostname":"minikube","Address":"192.168.39.3"}}} maxMonId:2]
2020-11-25 13:07:35.868253 I | cephclient: writing config file /var/lib/rook/rook-ceph/rook-ceph.config
2020-11-25 13:07:35.868573 I | cephclient: generated admin config in /var/lib/rook/rook-ceph
2020-11-25 13:07:37.074353 I | op-mon: targeting the mon count 3
2020-11-25 13:07:38.153435 I | op-mon: checking for basic quorum with existing mons
2020-11-25 13:07:38.178029 I | op-mon: mon "a" endpoint is [v2:10.107.242.49:3300,v1:10.107.242.49:6789]
2020-11-25 13:07:38.670191 I | op-mon: mon "b" endpoint is [v2:10.109.71.30:3300,v1:10.109.71.30:6789]
2020-11-25 13:07:39.477820 I | op-mon: mon "c" endpoint is [v2:10.98.93.224:3300,v1:10.98.93.224:6789]
2020-11-25 13:07:39.874094 I | op-mon: saved mon endpoints to config map map[csi-cluster-config-json:[{"clusterID":"rook-ceph","monitors":["10.107.242.49:6789","10.109.71.30:6789","10.98.93.224:6789"]}] data:a=10.107.242.49:6789,b=10.109.71.30:6789,c=10.98.93.224:6789 mapping:{"node":{"a":{"Name":"minikube","Hostname":"minikube","Address":"192.168.39.3"},"b":{"Name":"minikube","Hostname":"minikube","Address":"192.168.39.3"},"c":{"Name":"minikube","Hostname":"minikube","Address":"192.168.39.3"}}} maxMonId:2]
2020-11-25 13:07:40.467999 I | cephclient: writing config file /var/lib/rook/rook-ceph/rook-ceph.config
2020-11-25 13:07:40.469733 I | cephclient: generated admin config in /var/lib/rook/rook-ceph
2020-11-25 13:07:41.071710 I | cephclient: writing config file /var/lib/rook/rook-ceph/rook-ceph.config
2020-11-25 13:07:41.078903 I | cephclient: generated admin config in /var/lib/rook/rook-ceph
2020-11-25 13:07:41.125233 I | op-mon: deployment for mon rook-ceph-mon-a already exists. updating if needed
2020-11-25 13:07:41.327778 I | op-k8sutil: updating deployment "rook-ceph-mon-a" after verifying it is safe to stop
2020-11-25 13:07:41.327895 I | op-mon: checking if we can stop the deployment rook-ceph-mon-a
2020-11-25 13:07:44.045644 I | op-k8sutil: finished waiting for updated deployment "rook-ceph-mon-a"
2020-11-25 13:07:44.045706 I | op-mon: checking if we can continue the deployment rook-ceph-mon-a
2020-11-25 13:07:44.045740 I | op-mon: waiting for mon quorum with [a b c]
2020-11-25 13:07:44.109159 I | op-mon: mons running: [a b c]
2020-11-25 13:07:44.474596 I | op-mon: Monitors in quorum: [a b c]
2020-11-25 13:07:44.478565 I | op-mon: deployment for mon rook-ceph-mon-b already exists. updating if needed
2020-11-25 13:07:44.493374 I | op-k8sutil: updating deployment "rook-ceph-mon-b" after verifying it is safe to stop
2020-11-25 13:07:44.493403 I | op-mon: checking if we can stop the deployment rook-ceph-mon-b
2020-11-25 13:07:47.135524 I | op-k8sutil: finished waiting for updated deployment "rook-ceph-mon-b"
2020-11-25 13:07:47.135542 I | op-mon: checking if we can continue the deployment rook-ceph-mon-b
2020-11-25 13:07:47.135551 I | op-mon: waiting for mon quorum with [a b c]
2020-11-25 13:07:47.148820 I | op-mon: mons running: [a b c]
2020-11-25 13:07:47.445946 I | op-mon: Monitors in quorum: [a b c]
2020-11-25 13:07:47.448991 I | op-mon: deployment for mon rook-ceph-mon-c already exists. updating if needed
2020-11-25 13:07:47.462041 I | op-k8sutil: updating deployment "rook-ceph-mon-c" after verifying it is safe to stop
2020-11-25 13:07:47.462060 I | op-mon: checking if we can stop the deployment rook-ceph-mon-c
2020-11-25 13:07:48.853118 I | ceph-cluster-controller: CR has changed for "rook-ceph". diff=  v1.ClusterSpec{
        CephVersion: v1.CephVersionSpec{
-               Image:            "ceph/ceph:v15.2.5",
+               Image:            "ceph/ceph:v15.2.6",
                AllowUnsupported: false,
        },
        DriveGroups: nil,
        Storage:     {UseAllNodes: true, Selection: {UseAllDevices: &true}},
        ... // 20 identical fields
  }
2020-11-25 13:07:48.853140 I | ceph-cluster-controller: upgrade requested, cancelling any ongoing orchestration
2020-11-25 13:07:50.119584 I | op-k8sutil: finished waiting for updated deployment "rook-ceph-mon-c"
2020-11-25 13:07:50.119606 I | op-mon: checking if we can continue the deployment rook-ceph-mon-c
2020-11-25 13:07:50.119619 I | op-mon: waiting for mon quorum with [a b c]
2020-11-25 13:07:50.130860 I | op-mon: mons running: [a b c]
2020-11-25 13:07:50.431341 I | op-mon: Monitors in quorum: [a b c]
2020-11-25 13:07:50.431361 I | op-mon: mons created: 3
2020-11-25 13:07:50.734156 I | op-mon: waiting for mon quorum with [a b c]
2020-11-25 13:07:50.745763 I | op-mon: mons running: [a b c]
2020-11-25 13:07:51.045108 I | op-mon: Monitors in quorum: [a b c]
2020-11-25 13:07:51.054497 E | ceph-cluster-controller: failed to reconcile. failed to reconcile cluster "rook-ceph": failed to configure local ceph cluster: failed to create cluster: CANCELLING CURRENT ORCHESTATION
2020-11-25 13:07:52.055208 I | ceph-cluster-controller: reconciling ceph cluster in namespace "rook-ceph"
2020-11-25 13:07:52.070690 I | op-mon: parsing mon endpoints: a=10.107.242.49:6789,b=10.109.71.30:6789,c=10.98.93.224:6789
2020-11-25 13:07:52.088979 I | ceph-cluster-controller: detecting the ceph image version for image ceph/ceph:v15.2.6...
2020-11-25 13:07:53.904811 I | ceph-cluster-controller: detected ceph image version: "15.2.6-0 octopus"
2020-11-25 13:07:53.904862 I | ceph-cluster-controller: validating ceph version from provided image
```

Closes: https://github.com/rook/rook/issues/6587
Signed-off-by: Sébastien Han <seb@redhat.com>
2020-11-25 15:32:04 +01:00
Sébastien Han 5d9612c2ae ceph: fix metadata device passed by-id
The code was assuming that devices were passed by the user as
"/dev/sda", this is bad! We all know people should be using paths like
/dev/disk/by-id so we must support them.

Closes: https://github.com/rook/rook/issues/6685
Signed-off-by: Sébastien Han <seb@redhat.com>
2020-11-25 15:00:47 +01:00
Alexander Trost b04f882372 ceph: fix pod labels set on csi components
Signed-off-by: Alexander Trost <galexrt@googlemail.com>
2020-11-25 14:55:36 +01:00
Sébastien Han 4d8af284a0 Merge pull request #6417 from renan-campos/issue_6332
ceph: periodically prune crash entries older than user-provided days
2020-11-25 09:49:09 +01:00
Renan Campos ad9dcb0c05 ceph: periodically prune crash entries older than user-provided days
Rook's crashcollector pod posts entries to the ceph cluster when a crash occurs.
Over time the number cluster may hold crash entries needlessly.
To clean up old crash entries, this PR adds a field to the ceph cluster CR for the user to specify the number of days a crash entry should be kept for.
Providing a value for the field keepXDays creates a cronjob that runs every day at midnight, calling "ceph crash prune <keepXDays>".

Closes: https://github.com/rook/rook/issues/6332
Signed-off-by: Renan Campos <rcampos@redhat.com>
2020-11-24 17:06:18 -05:00