Commit Graph
6469 Commits
Author SHA1 Message Date
subhamkrai b46e31dbee ci: add gh action for yaml linter
this commit adds gh action for yaml linter.

Signed-off-by: subhamkrai <srai@redhat.com>
2021-03-11 08:23:18 +05:30
Travis Nielsen c0eacc89d5 Merge pull request #7235 from travisn/mgr-sidecar
ceph: Allow two mgr daemons and actively reconcile the mgr services with a sidecar
2021-03-10 10:35:40 -07:00
Travis Nielsen c06a0090c3 Merge pull request #7354 from cybozu-go/ceph-fix-improper-json-parsing-in-radosgw-admin
ceph: fix improper json parsing
2021-03-10 10:13:19 -07:00
Satoru Takeuchi a89d35e5b6 ceph: fix improper json parsing in radosgw-admin
Sometimes `radosgw-admin` succeeds after showing logs to stderr. We should
skip non-json strings if parsing output as json.

Here is an example.

```
2021-02-26 04:10:44.190418 I | op-bucket-prov: creating Ceph user "ceph-user-aSzNqgE7"
E0226 04:11:37.901310       8 controller.go:199] error syncing 'logging/loki-bucket': error provisioning bucket: Provision: can't create ceph user: error creating ceph user "ceph-user-aSzNqgE7": failed to unmarshal json. 2021-02-26T04:11:21.425+0000 7f6714be4980  1 robust_notify: If at first you don't succeed: (110) Connection timed out
2021-02-26T04:11:21.426+0000 7f6714be4980  0 ERROR: failed to distribute cache for ceph-hdd-object-store.rgw.meta:users.uid:ceph-user-aSzNqgE7
2021-02-26T04:11:32.168+0000 7f6714be4980  1 robust_notify: If at first you don't succeed: (110) Connection timed out
2021-02-26T04:11:32.168+0000 7f6714be4980  0 ERROR: failed to distribute cache for ceph-hdd-object-store.rgw.meta:users.keys:23Z8GUEXR0TJDO86PSJR
{
    "user_id": "ceph-user-aSzNqgE7",
    "display_name": "ceph-user-aSzNqgE7",
...
    "mfa_ids": []
}: invalid character '-' after top-level value: failed to unmarshal json.
```

In this case, some logs like "robust_notify:..." was shown in stderr.
Unmarsharing was failed due to tried to parse these logs as json.

Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
2021-03-10 16:06:56 +00:00
Travis Nielsen 58c8e9e7f0 Merge pull request #7381 from leseb/fix-raw-mode-pacific
ceph: use raw mode for pacific on non-pvc
2021-03-10 09:04:41 -07:00
Travis Nielsen 51996be952 ceph: remove extra mgr deployments if count is reduced
If the count of mgr daemons is reduced, we remove the extra one.
The check is made during each reconcile.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-03-10 08:37:18 -07:00
Travis Nielsen 38efe8ceba ceph: get active mgr with new pacific command
In Pacific the simple command to retrieve the active mgr is with
ceph mgr stat instead of retrieving the full ceph mgr dump.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-03-10 08:37:18 -07:00
Travis Nielsen a1c6a706f1 ceph: configure resources for the mgr sidecar
The mgr sidecar container has a new mgr-sidecar section
for specifying resources if desired.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-03-10 08:37:17 -07:00
Travis Nielsen e7331b0191 ceph: multiple mgrs have antiaffinity across hosts or zones
If there are multiple mgrs running, the operator will automatically
add pod antiaffinity across hosts by default. For stretch clusters,
antiaffinity across the stretch failure domain (e.g. zones)
will be added. Required antiaffinity will be created unless the
test setting allowMultiplePerNode is set to true.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-03-10 08:37:17 -07:00
Travis Nielsen 142ba63b6a ceph: enforce anti-affinity to multiple mgrs
If there are two mgr daemons, they should be running on different
hosts or zones, depending on the failure domain.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-03-10 08:37:17 -07:00
Travis Nielsen 388ff3e78b ceph: start sidecar to monitor active mgr
The mgr daemon may be failed over by ceph if the active mgr is not
responding and the standby mgr is available. If the active mgr changes
the services for the dashboard and metrics will be updated with a
label selector for the new active mgr. The services cannot direct
traffic to the standby mgr or else they will be incorrectly redirected
to the active mgr.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-03-10 08:37:17 -07:00
Travis Nielsen d93ff428ec ceph: reconcile the mgr services with the active mgr
The active mgr should match the labels on the services that
are available for prometheus and the dashboard. The selector
labels must be updated whenever there is a new active mgr.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-03-10 08:29:16 -07:00
ushen 7e691af439 ceph: allow user decide num of mgrs
Allow user to decide how many mgrs to be used
by make mgr replicas configurable

Signed-off-by: shenjiatong <yshxxsjt715@gmail.com>
2021-03-10 08:29:14 -07:00
Travis Nielsen de283f8b62 Merge pull request #7379 from Madhu-1/disable-metrics
ceph: disable CSI GRPC metrics by default
2021-03-10 08:25:01 -07:00
Sébastien Han a51d8c5f2e ceph: use raw mode for pacific on non-pvc
We will now use raw mode on non-pvc for pacific and onward.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-03-10 12:18:31 +01:00
Madhu Rajanna 0a81ce2251 ceph: disable CSI GRPC metrics by default
The GRPC metrics exposed by both the provisioner pod
and the node plugin pod on some port. Provisioner pod
is running on the pod network and the daemonset pods
run on the host network. sometimes starting the GRPC
metrics by default can lead to node plugin pods
crashloopback state this is due to the port conflict.
Moreover, the GRPC metrics are not for the user it's
for the one which will help to debug the time taken
by cephcsi to serve each GRPC call. Enabling it by
default won't be a good idea. So the plan is to
disable it by default, If someone faces any issue it
can be enabled later at some point in time.

closes #7378

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2021-03-10 11:30:50 +05:30
Travis Nielsen 3f128a49f6 Merge pull request #7347 from subhamkrai/update-doc-convention
docs: updating according to the markdown convention
2021-03-09 10:31:00 -07:00
Sébastien Han 395feddbc2 Merge pull request #7374 from leseb/fix-vault-kv-2
ceph: fix vault when used with kv version 2
2021-03-09 17:02:54 +01:00
Sébastien Han 33be24d1a1 ceph: fix vault when used with kv version 2
The API path when the KV enfine is used in version is different and must
be adapted. We need to append a 'data' path, thus the path and response
are changing.

v1 is https://vault.local.com:8200/v1/test-kv1/key
v2 is https://vault.local.com:8200/v1/test-kv2/data/key

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-03-09 16:36:26 +01:00
Travis Nielsen 9d881c55ad Merge pull request #7377 from leseb/ci-v14
ceph: use latest stable nautilus
2021-03-09 08:27:23 -07:00
Travis Nielsen 6cb2680abf Merge pull request #7372 from travisn/upgrade-1.5-test
ceph: Upgrade integration test to use v1.5 as the base install and read manifests from source
2021-03-09 07:57:07 -07:00
Sébastien Han 8fb6fdff94 Merge pull request #7370 from leseb/fix-7359
ceph: do not duplicate osd info
2021-03-09 15:54:16 +01:00
Sébastien Han a8a8e8ca49 ceph: use latest stable nautilus
The latest 14.2.14 has all the patches that are needed for KMS.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-03-09 15:25:51 +01:00
Sébastien Han 504e9aa806 ceph: do not duplicate osd info
When c-v runs after the end of the prepare sequence, it will look for
lvm and raw-based OSDs. The raw mode detects LVM OSDs so we must trim
the list of OSD, only to report the LVM ones if their ID exists.

Closes: https://github.com/rook/rook/issues/7359
Signed-off-by: Sébastien Han <seb@redhat.com>
2021-03-09 15:17:32 +01:00
Sébastien Han 128dc4cb79 Merge pull request #7325 from subhamkrai/cert-manager
ceph: use cert-manager for admission webhooks
2021-03-09 10:38:27 +01:00
Sébastien Han 2a035b2f99 Merge pull request #7333 from subhamkrai/port-check
ceph: webhook check if one of port or securePort are non-zero
2021-03-09 09:33:11 +01:00
Sébastien Han 6b21cf073b Merge pull request #7358 from anmolsachan/osd_flapping_alert
ceph: add osd flapping alert
2021-03-09 09:01:48 +01:00
Travis Nielsen c402e40f54 ceph: load test crds from files or urls
The integration tests will now read the manifests from the same source
that is used in the examples for installation. No longer is there a need
for a copy of the CRDs in the integration test code.

The tests will read the manifests directly from disk under a path
relative to the rook root. The upgrade test will read the manifests from
a github url where the base version has been published.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-03-08 21:34:59 -07:00
Travis Nielsen 3fd89dc355 ceph: upgrade test upgrades from 1.5 instead of 1.4
Since the 1.5 releaase we need the integration test to upgrade from
1.5 to master instead of from 1.4 to master.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-03-08 18:12:42 -07:00
subhamkrai d594a6c904 ceph: remove config-admission-controller.sh
this commit removes file `config-admission-controller.sh`
as we don't need this anymore and update the doc to point
`tests/scripts/deploy_admission_controller.sh` to start
admission controller.

Signed-off-by: subhamkrai <srai@redhat.com>
2021-03-05 16:39:52 +05:30
Anmol Sachan 1532070a3e ceph: add osd flapping alert
This PR adds an alert that notifies the users if an OSD restarts
for 5 times under 5 minutes. Each restart corresponds to 2 changes
in the value of ceph_osd_up metric.

Signed-off-by: Anmol Sachan <anmol13694@gmail.com>
2021-03-05 16:22:16 +05:30
subhamkrai 51910d0fed docs: updating according to the markdown convention
this commit update all the docs according to the
markdown convention for the command.

[skip ci]

Signed-off-by: subhamkrai <srai@redhat.com>
2021-03-05 10:45:04 +05:30
Sébastien Han 2a192300e2 Merge pull request #4879 from leseb/raw-mode-non-pvc
ceph: add raw mode for non-pvc osd
2021-03-03 18:55:21 +01:00
subhamkrai 40a99a20ff ceph: webhook check if one of port or securePort are non-zero
this commit adds new crd to admission webhooks to check
if one of the port or securePort are set to non-zero
value in objectstore crd.

If both are set to 0 in crd we'll see error like
```
Error from server (invalid create: either of port or securePort
fields should be not be zero): error when creating "object-test.yaml":
admission webhook
"cephobjectstore-wh-rook-ceph-admission-controller-rook-ceph.rook.io"
denied the request: invalid create: either of port or securePort fields
should be not be zero.
```

Signed-off-by: subhamkrai <srai@redhat.com>
2021-03-03 21:22:04 +05:30
Travis Nielsen ec5691ee3a Merge pull request #7330 from thotz/updatecrdsforhealthcheck
ceph: update CRDs for healthcheck in crds.yaml
2021-03-03 08:20:59 -07:00
subhamkrai 8b6ec60653 ceph: use cert-manager for admission webhooks
we are now using cert-manager for certificates
instead of a self-signed certificate for admission
webhooks.

Signed-off-by: subhamkrai <srai@redhat.com>
2021-03-03 20:22:53 +05:30
Sébastien Han 3dde2609fa ceph: add raw mode for non-pvc osd
For simple OSD scenario that don't require the following:

* an encrypted osd
* an osd with a backing device
* multiple osd on the same block device

The OSD will be prepared using the ceph-volume raw mode which does
not use LVM on non-pvc case.

Closes: https://github.com/rook/rook/issues/4768
Signed-off-by: Sébastien Han <seb@redhat.com>
2021-03-03 14:11:26 +01:00
Sébastien Han 06810b9700 ceph: fix iteration
block if not defined was used with osdInfo.Device so not empty anymore
in the loop, which means it will have the same value for all OSDs in the
loop.
This is only called when running on PVC, where a single device is
present so the loop has a single iteration, so not a big issue.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-03-03 14:06:19 +01:00
Sébastien Han c1362ce482 ceph: revert "ceph: test latest ceph on raw device"
This reverts commit 114a949cfb since
14.2.14 is out and has a fix to use raw mode instead of LVM mode on
   partitions.

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-03-03 14:06:19 +01:00
Blaine Gardner bc9c5f2057 ceph: start using latest Ceph v15 in integration
Do not use old Ceph v15.2.7 in integration that was working around the
issue of ceph-volume partition support being removed in v15.2.8.

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
(cherry picked from commit 99cee7648cfaf72b02d62e281a2ac3a18bce4132)
2021-03-03 14:06:19 +01:00
Sébastien Han e335851b96 Merge pull request #7273 from anmolsachan/BZ1904302
ceph: fixed prometheus query to avoid many-to-many match error
2021-03-03 11:30:13 +01:00
Sébastien Han c28fdfa371 Merge pull request #7307 from leseb/ceph-multi-fs
ceph: rework multiple filesystem support
2021-03-03 07:57:40 +01:00
Santosh Pillai 1159455345 ceph: update CRDs for healthcheck in crds.yaml
Even though CRs for bucket health check was added, CRDs were missing from
crds.yaml file. So the health check always enabled for RGW.

Signed-off-by: Santosh Pillai <sapillai@redhat.com>
Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2021-03-03 10:42:35 +05:30
Satoru Takeuchi 03a3854281 Merge pull request #7344 from travisn/purge-osd-doc-link
docs: Fix link to the sample osd purge job
2021-03-03 09:31:51 +09:00
Travis Nielsen 6d821d6a51 docs: fix link to the sample osd purge job
The osd purge job link requires an absolute url depending
on the branch name since links to the examples do not work
as relative paths.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-03-02 17:09:56 -07:00
Travis Nielsen efcf2760e7 Merge pull request #7315 from travisn/conditions-rewrite
ceph: Only raise CephCluster conditions that represent current state
2021-03-02 17:04:24 -07:00
Travis Nielsen ccfd1191da ceph: document the CephCluster CR status
The CephCluster CR status has a number of fields that are
now finally documented, including the Ceph status, conditions,
and other general status.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-03-02 15:13:07 -07:00
Travis Nielsen 15d0537cec ceph: only raise conditions that represent current state
The conditions on the cephcluster CR were being set to false
when not in progress, which is misleading to the purpose of
conditions. The conditions will now always represent current
state of the cluster. Transient conditions that show progress of
a reconcile will be removed from the status.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2021-03-02 14:15:47 -07:00
Travis Nielsen ddedecabac Merge pull request #7334 from thotz/livenessprobergwsslenabled
ceph: handle ssl cases for RGW's livenessprobe
2021-03-02 11:42:06 -07:00
Sébastien Han 8dfa99e01d ceph: rework multiple filesystem support
The upcoming Rook release 1.6 will support Ceph Pacific which introduces
stable support for multiple Ceph Filesystems in the same cluster. So we
now allow the creation of multiple Filesystem if the release is Pacific.

Also, we remove the Operator config flag which was not necessary.

Here I have 2 filesystems:

```
[root@rook-ceph-tools-6b4889fdfd-vncck /]# ceph fs ls
name: myfs, metadata pool: myfs-metadata, data pools: [myfs-data0 ]
name: myfs2, metadata pool: myfs2-metadata, data pools: [myfs2-data0 ]
```

```
  cluster:
    id:     cc747950-589a-4862-bad2-ff7de1217b1a
    health: HEALTH_WARN
            mons a,b,c are low on available space
            6 pool(s) have no replicas configured

  services:
    mon: 3 daemons, quorum a,b,c (age 2d)
    mgr: a(active, since 2d)
    mds: myfs:1 myfs2:1 {myfs2:0=myfs2-b=up:active,myfs:0=myfs-b=up:active} 2 up:standby-replay
    osd: 3 osds: 3 up (since 2m), 3 in (since 6d)

  data:
    pools:   6 pools, 717 pgs
    objects: 44 objects, 4.2 KiB
    usage:   46 MiB used, 90 GiB / 90 GiB avail
    pgs:     717 active+clean

  io:
    client:   1.8 KiB/s rd, 4 op/s rd, 0 op/s wr

  progress:
    Global Recovery Event (45s)
      [===========================.]
```

Signed-off-by: Sébastien Han <seb@redhat.com>
2021-03-02 18:27:04 +01:00