Commit Graph
13292 Commits
Author SHA1 Message Date
Sébastien Han db17533435 docs: add design doc template
Rook already has a design process in place when introducing new
functionality. The only missing thing is a clear template to bring
consistency in our design documents.

This is inspired and shrunk version of
https://github.com/openshift/enhancements/tree/master/guidelines to add
some guidelines when it comes to writing a design document.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-06-10 19:05:14 +02:00
Ahmad Nurus S f5f6484869 docs: design nfs operator using controller-runtime
This commit is adding a design to implement controller-runtime in nfs operator

Signed-off-by: Ahmad Nurus S <prksu.sh@gmail.com>
2020-06-10 23:41:15 +07:00
Andreas Feldmann 05cfbf3dda nfs: changing the loglevel into INFO
Signed-off-by: Andreas Feldmann <an.feldmann@googlemail.com>
2020-06-10 18:23:26 +02:00
Sébastien Han 04a4560900 Merge pull request #5622 from leseb/mgr-fixes
ceph: a couple of ceph-mgr fixes
2020-06-10 18:20:38 +02:00
Sébastien Han ee4d133cd2 Merge pull request #5634 from leseb/clean-olm-make
build: purge olm directory on clean
2020-06-10 17:14:46 +02:00
Sébastien Han 02dc1f0219 Merge pull request #5631 from RyuunoAelia/add-okd-support
build: add OKD metadata for CSV generation
2020-06-10 15:25:42 +02:00
Jiffin Tony Thottan 96e3d1529e ceph: remove unlinking user in revoke api for obc
UnlinkUser works if bucket owner is obc user, otherwise it result in mismatch.

Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2020-06-10 18:30:21 +05:30
Jiffin Tony Thottan c0e23e0e16 ceph: clean up resources incase of failure
When obc creation fails in Grant() or Provision() the resources such as rgw user or bucket
created while provisioning need to remove.

Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2020-06-10 18:30:16 +05:30
Jiffin Tony Thottan 07f5aa7a19 ceph: remove deleteCephUser() and deleteBucket()
Replacing deleteCephUser() and deleteBucket() with deleteOBCResource()
Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2020-06-10 18:30:12 +05:30
Jiffin Tony Thottan 9fccfb0e6f ceph: introduce new function for cleaning resources
Combining DeleteUser() and DeleteBucket() into single function
Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
2020-06-10 18:30:06 +05:30
Sébastien Han e936c97b50 build: purge olm directory on clean
When running `make clean` we also purge any existing OLM files.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-06-10 14:40:21 +02:00
Diego Abelenda 2ea06aba71 build: add OKD metadata for CSV generation
Add Ceph CSV metadata for OKD platform.
This will allow to have a CSV compatible with OKD as the CSV should be different than both OCP (Red Hat supported) and k8s (missing some security definitions).

Signed-off-by: Diego Abelenda <diego.abelenda@gmail.com>
2020-06-10 14:21:10 +02:00
Ali Maredia fc579f4520 ceph: initial commit for ceph rgw multisite resources
This commit contains CR implementations for:
CephObjectRealm
CephObjectZoneGroup
CephObjectZone

Also there are changes made to the objectstore
to add rgws in the object-store to zones and
zone groups in a multisite configuration and
the removal of the --default parameter for any
realms/zonegroups/zones that are created.

Signed-off-by: Ali Maredia <amaredia@redhat.com>
2020-06-09 16:28:53 -04:00
Sébastien Han 3d62996090 Merge pull request #5615 from leseb/ci-cleaver-2
ci: auto-detect storage provider
2020-06-09 16:11:53 +02:00
Sébastien Han 993af443a4 ceph: always turn on balancer on octopus
When running Octopus, we still need to turn on the balancer module. The
distinction is tricky, the module is "enabled" but it has to be "turned
on" and configured.

This was only working when the `pg_autoscaler` module was explicitly
listed in the CephCluster spec mgr section module section but not
automatically configured when running Octopus (the `pg_autoscaler`
module is already enabled).

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-06-09 15:42:15 +02:00
Sébastien Han 2749035315 ceph: do not activate crash module
The mgr crash module is always enabled so we don't need to run the
command again. It saves some orchestration time.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-06-09 15:37:04 +02:00
Sébastien Han 1c7ac716a7 Merge pull request #5613 from travisn/increase-osd-pvc-size
Increase OSD size when the template size increases
2020-06-09 09:26:32 +02:00
Sébastien Han 33a90a10d1 ci: more debug
Signed-off-by: Sébastien Han <seb@redhat.com>
2020-06-08 22:49:25 -06:00
Travis Nielsen 282a2a3741 ceph: increase osd size when pvc template increases
When the PVC template increases in size for the storageClassDeviceSet
in the cluster CR, we need to increase the size of the PVC and restart
the OSD. The OSD is restarted by changing a variable on the pod spec
that indicates the desired size of the OSD.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-06-08 14:34:43 -06:00
Travis Nielsen daeb9b56b0 ceph: remove dead osd code
The completeProvisionSkipOSDStart function is no longer used.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-06-08 14:34:43 -06:00
Sébastien Han 887836586a Merge pull request #5595 from afflom/port-naming-work
Configurable Service Port Names
2020-06-08 12:57:01 +02:00
Sébastien Han 4e8f7e725d ci: auto-detect storage provider
If the PR follows our contribution guideline https://rook.io/docs/rook/master/development-flow.html#commit-structure
and then the PR title contains for example "ceph: add a feature", then
the CI will run the ceph storage integration tests.

Closes: https://github.com/rook/rook/issues/5612
Signed-off-by: Sébastien Han <seb@redhat.com>
2020-06-08 11:24:54 +02:00
Sébastien Han 99e6277d9a docs: lint INSTALL.md file
Address linters comments and clarify some sections.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-06-08 10:50:50 +02:00
Alex Flom 9a4d535f09 ceph: hardcode service port and container port names
When integrating rook with istio, service port names need to be prefixed by their protocol.
Trying to fix this by removing static port names in favor of configurable names.

Closes: #5587

add protocol prefix to service port names, hardcoded as discussed. renamed container ports

Signed-off-by: Alex Flom <alexander.flom@gmail.com>
2020-06-06 21:58:23 -04:00
Sébastien Han 08167f9fef Merge pull request #4028 from leseb/cleaver-ci
ci: do not run when no code changes
2020-06-05 18:50:16 +02:00
Sébastien Han 01784a4b59 ci: do not run when no code changes
If no Golang files were modified we don't want to run the integration
test.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-06-05 18:04:19 +02:00
Sébastien Han be04b1ac33 Merge pull request #5607 from leseb/fix-5492
ceph: increase liveness probe start delay on OSD
2020-06-05 17:24:18 +02:00
Sébastien Han 8592caed58 Merge pull request #5606 from leseb/fix-5521
ceph: fix osd number detection on upgrade
2020-06-05 17:12:38 +02:00
Sébastien Han 1728e84115 Merge pull request #5603 from Madhu-1/csi-v2.1.2
ceph: update cephcsi to v2.1.2
2020-06-05 16:38:48 +02:00
Sébastien Han c8de7009de ceph: increase liveness probe start delay on OSD
When the cluster is loaded and we restart an OSD, it will need some time
to respond to socket calls, basically more to be ready.
Increasing the initialDelaySeconds of the liveness probe fixes that
issue. For OSD, it waits for 45 sec, where other daemons 10 sec.

Closes: https://github.com/rook/rook/issues/5492
Signed-off-by: Sébastien Han <seb@redhat.com>
2020-06-05 15:53:49 +02:00
Sébastien Han 3c7a252862 ceph: fix osd number detection on upgrade
If the cluster has 3 OSDs, during the upgrade when the OSD restarts it
will temporarily disappear from the "ceph versions" list so we need a
more robust way to list the number of OSDs and always returns the total
number of OSDs.

Closes: https://github.com/rook/rook/issues/5521
Signed-off-by: Sébastien Han <seb@redhat.com>
2020-06-05 15:20:46 +02:00
Sébastien Han 5520ee35bb ceph: check if ok-to-stop even on failure
Even if we cannot determine wheter all the OSDs are running on the host,
we still need to perform the ok-to-stop check. It is far more common to
have more than 3 OSDs anyways.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-06-05 15:06:35 +02:00
Sébastien Han a29aa38bc1 Merge pull request #5528 from RyuunoAelia/operator-sdk-update
chore: Make csv generation work with operator-sdk 0.15.0 and later, remove support for previous versions.
2020-06-05 14:13:19 +02:00
Madhu Rajanna 09ccf55453 ceph: update cephcsi to v2.1.2
Cephcsi v2.1.2 is released with bug fixes,
refer https://github.com/ceph/ceph-csi/releases/tag/v2.1.2
for release details.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2020-06-05 14:43:05 +05:30
Jared Watts 67075f6cf7 Merge pull request #5541 from prksu/fix-nfs-gvk
design: rename nfs object kind
2020-06-04 22:38:30 -07:00
Travis Nielsen d7448c1e9b Merge pull request #5593 from cybozu-go/ceph-fix-the-document-of-osd-management
ceph: fix the document of OSD management
2020-06-04 13:29:32 -06:00
Travis Nielsen 872e6ff44a Merge pull request #5585 from ashangit/podAntiAffinity_rgw
ceph: fallback podAntiAffinity to preferredDuringSchedulingIgnoredDuringExecution on rgw
2020-06-04 13:28:14 -06:00
Travis Nielsen 9fc164071d Merge pull request #5594 from leseb/fix-5495
ceph: do not use external node IP for mon endpoint
2020-06-04 13:24:44 -06:00
Satoru Takeuchi 91e7912336 ceph: fix the document of OSD management
Removing a disk is not mandatory after the data in the corresponding
OSD is moved to other OSDs. It's better to just let users to know it's
safe to remove the disk.

Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
2020-06-04 16:32:05 +00:00
Sébastien Han d09e3dbd8b Merge pull request #5582 from leseb/no-ci-on-draft
ci: do not run the pipeline if PR is draft
2020-06-04 15:46:00 +02:00
Sébastien Han bfa3b4daf4 ceph: do not use external node IP for mon endpoint
When the cluster is using HostNetworking, Rook was either picking up the
external or internal IP of the node. This resulted in mon endpoints have
public IP addresses. Those IP are not reachable from within the cluster
so OSD/CSI couldn't access the monitors from the configmap endpoint.

Also, exposing the cluster on a public network does not seem realistic,
so sticky with private/internal IP addresses is better.

Closes: https://github.com/rook/rook/issues/5495
Signed-off-by: Sébastien Han <seb@redhat.com>
2020-06-04 14:12:45 +02:00
n.fraison c8df6c0faf ceph: add preferred pod anti-affinity on rgw if not host network
If host networking is not enabled add preferred pod anti-affinity on rgw pods to
improve spread of them

Signed-off-by: n.fraison <n.fraison@criteo.com>
2020-06-04 13:34:30 +02:00
Sébastien Han fc648970c4 Merge pull request #5511 from thotz/existingbucketsuserpolicy
obc: Do not delete user for retain policy if it is owner
2020-06-03 14:11:57 +02:00
Sébastien Han 5a36f335c0 Merge pull request #5276 from subhamkrai/osd-on-pvc
ceph: Updated initializeBlockPVC method and added unit tests.
2020-06-03 11:53:25 +02:00
Sébastien Han c9d306fe61 ci: do not run the pipeline if PR is draft
If the PR is a draft, it's not ready for review and most likely the CI
pipeline should not run as the code might be broken in some places.

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-06-03 10:19:28 +02:00
Sébastien Han 9911e5ccc9 Merge pull request #5577 from leseb/obc-additional-config
ceph: fix obc additionalConfig field
2020-06-02 17:24:57 +02:00
Sébastien Han a90c18e0cb ceph: fix obc additionalConfig field
Some external consumers of Rook-Ceph are using the
lib-bucket-provisioner operator which creates different CRDs for both
objectbuckets.objectbucket.io and objectbucketclaims.objectbucket.io.
They have the `additionalConfig` declared in their spec. Rook-Ceph does
not and thus ignores it.
For the OB creation to work, the `additionalConfig` must be acknowledged
by the operator and populate or initialize it if empty.

This is preventing the following error:

controller.go:190] error syncing 'default/ceph-retain-bucket-converged': error creating OB "": ObjectBucket.objectbucket.io "obc-default-ceph-retain-bucket-converged" is invalid: spec.endpoint.additionalConfig: Invalid value: "null": spec.endpoint.additionalConfig in body must be of type object: "null", requeuing

Signed-off-by: Sébastien Han <seb@redhat.com>
2020-06-02 16:04:20 +02:00
Travis Nielsen 3ac06a5336 Merge pull request #5568 from travisn/csi-driver-fail-load
Start csi driver in parallel of cluster configuration
2020-06-01 10:15:48 -06:00
Sébastien Han 3b0af29678 Merge pull request #5565 from travisn/obc-storageclass-provider
docs: update the obc provisioner name
2020-06-01 10:13:08 +02:00
Travis Nielsen 6c249e751b ceph: start csi driver in parallel of cluster
The csi driver does not need to be started before the cluster
is created. When the csi driver fails to load, neither should
it prevent the cluster from being created. Therefore, we
initialize the basic constructs in the csi driver that are required
for cluster creation, then start the csi driver in a goroutine
so the cluster creation can continue. If the csi driver fails
or takes a long time to load, it will no longer affect cluster
creation.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2020-05-29 16:42:22 -06:00