Commit Graph
13292 Commits
Author SHA1 Message Date
Travis Nielsen d4bb4b6346 ci: enable K8s 1.20.0 to run the integration tests
The integration tests need to run on all the supported version of K8s.
With the release of 1.20.0, we now enable the tests there. To keep the
tests running in master on 5 versions, we drop 1.17 and keep 1.15 so
we can keep testing against v1beta1 extensions in master.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-12-15 13:09:17 -07: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
Santosh Pillai 049b44f990 ceph: requeue clusterDisruption controller more proactively
Currently the reconcile of the clusterDisruption controller was triggered mainly due to the
ceph status update in the cephCluster CR. This PR adds reconciles the cluster when:
1. Reconcile when the cluster is created. (This will trigger the first reconcile)
2. Reconcile only when the clusterSpec is updated. (This will avoid triggers when cluster status is updated)
3. Reconcile for events on cephblockpool, cephfilesystem and cephObjectStore.
4. Reconcile for events on Main PDB and when `DisruptionsAllowed` is 0. (that is, when one of the OSD goes down).
5. Reconcile after 30 seconds when there is an active drain going on, that is, pdbStateMap has `draining-failure-domain` as not empty.

Signed-off-by: Santosh Pillai <sapillai@redhat.com>
2020-12-14 16:22:52 +05:30
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 Nielsen 713fc80d03 Merge pull request #6769 from Madhu-1/csi-v3.2.0
ceph: update csi to v3.2.0
2020-12-11 13:45:15 -07:00
Travis Nielsen f3f06da322 Merge pull request #6809 from BlaineEXE/add-namespace-comments-to-manifests
ceph: add namespace meta-comments to manifests
2020-12-11 13:43:42 -07:00
Blaine Gardner 2e62b5fb3b ceph: update upgrade docs to allow diff namespaces
Update the upgrade docs to allow users with different cluster/operator
namespaces to use a `sed` command and the new manifest meta-comments for
updates.

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2020-12-11 11:35:41 -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 d06f5629f9 Merge pull request #6800 from subhamkrai/test-canary-it
ci: minor update to validate cluster script
2020-12-10 09:37:31 -07:00
subhamkrai 24c3002307 ci: minor update to validate script
canary test failing because the validate
script not updating the argument passed.

Signed-off-by: subhamkrai <srai@redhat.com>
2020-12-10 13:12:39 +05:30
Travis Nielsen 143d88a603 Merge pull request #6811 from subhamkrai/yaml-validation
ci: add yaml validation check
2020-12-09 21:55:50 -07:00
subhamkrai 702569ba21 ci: add yaml validation check
this commit add yaml validation check
by adding `--dry-run` and add path
'.github/workflows/**' to Canary integration
tests.

Signed-off-by: subhamkrai <srai@redhat.com>
2020-12-10 09:49:33 +05:30
Travis Nielsen 8c0f70cf37 Merge pull request #6806 from travisn/stretch-cluster-stable
ceph: Stretch cluster waits for OSDs to stabilize before enabling arbiter
2020-12-09 16:54:52 -07:00
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
Blaine Gardner 8be853fddb ceph: pull ceph-upgrade.md from release-1.5 branch
In order to allow this PR to backport properly to release-1.5, checkout
the ceph-upgrad.md file from the release-1.5 branch.

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2020-12-09 16:21:31 -07:00
Blaine Gardner 26c9512962 ceph: add namespace meta-comments to manifests
Add meta-comments to manifests to allow basic templating via `sed`.

Add the following types of meta-comments:
- # namespace:X
  - A basic namespace
  - replace the field with a namespace for X
- # serviceaccount:namespace:X
  - A service account namespace for SCC
  - e.g., "system:serviceaccount:<ns>:rook-ceph-system"
  - Replace the namespace "<ns>" with with a namespace for X
- # provisioner:namespace:X
  - A provisioner identifier with namespace prefix
  - e.g., "<ns>.cephfs.csi.ceph.com"
  - e.g., "<ns>.ceph.rook.io/bucket"
  - Replace the namespace "<ns>" with a namespace for X

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2020-12-09 16:21:31 -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
Travis Nielsen abf77ba28b Merge pull request #6765 from Madhu-1/rbd-node-cap
ceph: add mgr caps for csi-rbd-node client
2020-12-09 09:00:08 -07:00
Travis Nielsen acb4658731 Merge pull request #6785 from anmolsachan/osd_alerts
ceph: Updated thresholds of OSD capacity alerts and added the device_class info
2020-12-08 09:21:46 -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
Blaine Gardner f5c7c13bb3 Merge pull request #6779 from BlaineEXE/junit-add-missing-line-to-go-sum
build: add missing junit line to go.sum
2020-12-07 12:35:47 -07:00
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 a27f93232a Merge pull request #6781 from travisn/retry-mirror-status-update
ceph: Retry mirror status update in tests
2020-12-07 11:00:41 -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
Anmol Sachan fdb88edb6a ceph: updated thresholds of OSD capacity alerts and the device_class
This commit updates the OSD capacity thresholds to match the cluster capacity alert thresholds.
Also updated device_class info to provide info about which type of storage needs to be added.

Signed-off-by: Anmol Sachan <anmol13694@gmail.com>
2020-12-07 20:11:01 +05:30
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 e7ac118dd4 build: add missing junit line to go.sum
Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2020-12-04 13:30:14 -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 e6ba1b469d ceph: add objectBucketName to OBC CRD manifests
If this property is present, this should fix some of the
first-time-creation issues with OBCs reported in bug #6751.

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