Commit Graph
2459 Commits
Author SHA1 Message Date
Travis Nielsen e8ea6dc2f8 ceph: no need for removal of legacy rgw deployments
The legacy rgw deployments were removed in 1.0, so there is no more need
for the operator to keep checking for those!

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-12-18 12:03:50 -07:00
Travis Nielsen 0d4e6843ba Merge pull request #6839 from varshar16/remove-ganesha-prefix-rados-config-obj
ceph: remove 'ganesha-' from nfs-ganesha config object name
2020-12-18 08:54:59 -07:00
Varsha Rao 9530807179 ceph: remove 'ganesha-' from nfs-ganesha config object name
PR[1] in volume nfs plugin will remove it too. Since it can cause
inconsistencies.

This change will not affect exports created using dashboard. As it looks for
ganesha config object just by 'conf-' [2].  Exports cannot be created by using
volume/nfs plugin in Octopus version. Because the ceph rook module is broken.

[1] https://github.com/ceph/ceph/pull/38510

[2] https://github.com/ceph/ceph/blob/octopus/src/pybind/mgr/dashboard/services/ganesha.py#L1111

Signed-off-by: Varsha Rao <varao@redhat.com>
2020-12-18 17:18:52 +05:30
shenjiatong 8d3d460e70 ceph: refactor and remove duplicate codes
Signed-off-by: shenjiatong <yshxxsjt715@gmail.com>
2020-12-18 18:01:30 +08:00
shenjiatong 04aabb3896 ceph: analyze result for new typed return from lvm batch
Signed-off-by: shenjiatong <yshxxsjt715@gmail.com>
2020-12-18 11:11:03 +08:00
ushen 373b952988 ceph: allow ceph 14.2.15 for lvm batch
14.2.15 lvm batch command prepare report changes
output format. This commit skips md check if ceph version
is greater than 14.2.13.

Signed-off-by: shenjiatong <yshxxsjt715@gmail.com>
2020-12-18 11:11:02 +08:00
Travis Nielsen 3beb625f08 ceph: update examples and operator to Ceph v15.2.8
The latest octopus release is now out with v15.2.8. We update the
operator base image and the examples to run with this version.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-12-17 18:21:15 -07:00
Travis Nielsen d38119631b Merge pull request #6801 from binoue/remove-deplicated-env-var-in-mgr-pod
ceph: remove overlapping env values
2020-12-16 15:48:06 -07:00
Travis Nielsen 45e8ca7173 Merge pull request #6838 from synarete/ceph-crush-rule-with-device-class
ceph: Two step crush rule with device class
2020-12-16 13:08:52 -07:00
Travis Nielsen 64fc740d8a ceph: revert new node is not provisioned when useallnodes is true
This reverts commit a6ee5657ae.
The operator reconcile of the cephcluster was staying in an endless
loop in clusters that did not have OSDs configured on all nodes.
Now we revert this change for the patch release and will follow
up with a more complete fix in https://github.com/rook/rook/pull/6813.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-12-16 11:36:31 -07:00
Shachar Sharon 39a806f747 test: ceph add-rule via crush-map explicit decompile/compile
Test the code-flow when creating crush-rule via explicit
decompile/compile crushmap, when building two-steps crush rule. Relevant
for the case where 'PoolSpec.Replicated.ReplicasPerFailureDomain' is non
zeoro.

This test requires ceph's 'crushtool' to be installed on local machine.
Otherwise, it is ignored.

Signed-off-by: Shachar Sharon <ssharon@redhat.com>
2020-12-16 17:43:49 +02:00
Shachar Sharon 53461dd2ef ceph: pass 'device-class' when creating explicit crush-rule
When 'pool.Replicated.ReplicasPerFailureDomain' is non zero, the code
goes via route of adding explicit crush-rule from template, but ignores
the 'pool.DeviceClass' if it is set. Added option to template to have
(optional) 'class hdd|ssd'

Signed-off-by: Shachar Sharon <ssharon@redhat.com>
2020-12-16 17:42:27 +02:00
binoue 2ecde7c9c6 ceph: remove deplicated env value
Currently, mgr deployment has two overlapping environment variables, ROOK_POD_IP.
This causes kube-apiserver to create error logs

Signed-off-by: binoue <banji-inoue@cybozu.co.jp>
2020-12-15 09:11:26 +09:00
Travis Nielsen 27b0295ac1 Merge pull request #6815 from travisn/osd-deviceclass
ceph: Apply deviceClass properly to new osds
2020-12-14 13:13:55 -07:00
Travis Nielsen a635707538 Merge pull request #6822 from travisn/osds-on-pvc-and-devices
ceph: Allow OSDs on both PVCs and devices
2020-12-14 13:13:24 -07:00
Travis Nielsen 3ca3d7783b ceph: allow OSDs on both pvcs and devices
The OSD configuration on local devices was being skipped if a
storageClassDeviceSet was specified. Both types of OSDs should
be allowed in the same cluster, which allows a cluster in the cloud
to also take advantage of local devices with different perf
properties.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-12-11 14:21:47 -07:00
Travis Nielsenandshenjiatong a0a27bc426 ceph: apply deviceClass properly to new osds
The deviceClass property was being ignored when creating the
non-pvc OSDs. Now the deviceClass will be specified as a property
for individual devices, all devices on a node, or all OSDs in the
cluster, depending on the level where the config is applied in the
cluster CR.

Co-authored-by: shenjiatong <yshxxsjt715@gmail.com>
Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-12-11 10:16:00 -07:00
Madhu Rajanna 5392bc0d07 ceph: update csi to v3.2.0
updating cephcsi to latest release version

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2020-12-11 20:22:36 +05:30
Travis Nielsen d0ba899341 ceph: check stretch cluster is ready to configure arbiter
The arbiter can only be configured with the stretch cluster if the
CRUSH map is balanced and there are two zones in the CRUSH map.
After the OSDs are configured, we wait for all the OSD pods to be
running and that the CRUSH map is balanced. If it takes more than
two minutes, we fail the reconcile and try again. This is only done
the first time the stretch cluster is configured. In future reconciles
we first check if the stretch cluster is already enabled before
enabling it again.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-12-09 16:37:24 -07:00
Travis Nielsen 6fff48fbf5 ceph: remove obsolete mon pod and retry variables
The mon timeouts and pod retries were removed back in v1.1,
this just removes some obsolete variables from the legacy
mon scheduling.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-12-09 11:26:18 -07:00
Travis Nielsen bfbae0e4fe ceph: reset maxMonId if mons were not started after canaries
The operator schedules all the mons at the same time, then
serially starts each of the mons. If the operator was restarted
or otherwise failed before all the mons were started, the next
reconcile will schedule new mons again and ignore the scheduling
that was already computed. Since the last mon running is always
expected to be in quorum, we can reset the maxMonId to be
the highest mon currently created.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-12-09 11:00:44 -07:00
Madhu Rajanna ece9efd978 ceph: add mgr caps for csi-rbd-node client
If the kernel doesnt support mapping of
rbd image with deep-flatten feature,cephcsi
need to flatten the rbd image first and than
map the image on the node.

cephcsi first tries to add a task to flatten
the rbd image if its receives any permission
error it will try to call rbd CLI command which
is a blocking call.
This commit adds mgr caps to the csi-rbd-node user
so that cephcsi will add flatten task and return
immediate error to the kubelet, let kubelet retry
again,If we go with blocking rbd CLI call we may
end up having stale maps on the node in corner cases.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2020-12-08 17:09:18 +05:30
Travis Nielsen f46097db63 Merge pull request #6761 from travisn/arbiter-placement
ceph: Allow arbiter to have separate placement from other mons
2020-12-07 12:21:15 -07:00
Travis Nielsen eebb367e42 ceph: allow arbiter to have separate placement from other mons
The arbiter may have unique requirements for placement settings. Thus, if the arbiter
placement is specified in the cluster CR, that placement will be applied to the arbiter
mon and the other mons will retain their placement from the other mon or all
sections of the placement.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-12-07 10:58:20 -07:00
Travis Nielsen 6a00b4d296 ceph: remove obsolete NodeUsage type
The node usage was used for the obsolete mon selection algorithm, which
was replaced long ago with placement via canary pods.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-12-04 16:02:25 -07:00
Travis Nielsen c95ecaff0e ceph: retry mirror status update in tests
The TestCephBlockPoolController test is failing intermittently due
to a failure to update the rbd mirroring status on the pool CR.
Improve the test reliability by trying again several times if needed.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-12-04 15:37:30 -07:00
Blaine Gardner 744e18c3bc Merge pull request #6773 from BlaineEXE/revert-lib-bucket-prov-fix
Revert "ceph: update object bucket provisioner library"
2020-12-04 11:11:39 -07:00
Blaine Gardner 3fe61c115e ceph: add a missed cleanup item in obc provisioner
Add a cleanup item to remove user if it fails on S3 agent creation.

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2020-12-04 10:47:32 -07:00
Blaine Gardner 22cd1bf0f2 Revert "ceph: update object bucket provisioner library"
This reverts commit 3b4ee6c8e3.

Revert the fix that introduces the following bug on upgrade:
https://github.com/rook/rook/issues/6767

This fix as well as a fix for the upgrade case will follow in days to
come.

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2020-12-04 10:04:34 -07: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
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 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
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 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
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
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
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
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 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