Commit Graph
3298 Commits
Author SHA1 Message Date
Sébastien Han caa8b9cb2f ceph: external refuse cluster older than Nautilus
The external cluster must run at least on Nautilus. The main reason
being the msgr2 knowledge by the Operator and the Ceph CLI.

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-08-22 17:19:33 +02:00
Sébastien Han 83eca4b7ae ceph: fix various debug messages
Debug was used instead of Debugf so types were not interpreted
correctly.

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-08-22 17:19:33 +02:00
Sébastien Han f25e4a6fbc ceph: re-adapt controller code
Re-adapt controller code with the latest changes. Split External and not
external more accuratly in initializeCluster.

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-08-22 17:19:33 +02:00
Sébastien Han 300e9c35e6 ceph: remove redundant call
saveMonConfig already calls WriteConnectionConfig so there is no need to
call WriteConnectionConfig again after saveMonConfig is done.

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-08-22 17:19:33 +02:00
Sébastien Han 0785962e09 ceph: update mon configmap for external cluster
With this change, the admin can specify a single mon and the operator
will add any other mons to both ClusterInfo and the configmap of mon
endpoints.

It will periodically check for changes too and update both ClusterInfo
and the configmap accordingly.

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-08-22 17:19:33 +02:00
Sébastien Han 18bf541c00 ceph: remove redundant debug log
GetMonStatus is called by checkHealth in health.go and is already
printing GetMonStatus's response so there is no need to print it twice.

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-08-22 17:19:33 +02:00
Sébastien Han 2d24065ddb ceph: add check for external cluster spec
Before attempting to do anything let's just make sure the spec is
correctly fulfilled.

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-08-22 17:19:33 +02:00
Sébastien Han 1c50b30e0e ceph: fix condition
If the secret is not found, we create it, but once it was created we
were actually returning an error. The failure for getting the config
secret must be if the error is not that the secret is not found.

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-08-22 17:19:33 +02:00
Sébastien Han 25158d3d2b ceph: purge external cluster metadata
Add code to remove configmap and secret injected and used by Rook to
connect to the external cluster.

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-08-22 17:19:33 +02:00
Sébastien Han c7174b6b8e ceph: allow deployment of crds on external cluster
We can now deploy all the other Rook's CRDs. They will be deployed in
Kubernetes but will consume the external cluster storage.

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-08-22 17:19:33 +02:00
Sébastien Han 0d5569179c ceph: external cluster documentation
Add documentation and release note.

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-08-22 17:19:33 +02:00
Sébastien Han 062a885a98 ceph: health check populate cluster spec
When running external clusters we need to populate the cluster spec to
the health methods.

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-08-22 17:19:33 +02:00
Sébastien Han 033a664b56 ceph: controller: enhance external cluster
We now do multiple things:

* write ceph config and key to the operator
* check for the ceph verion and compare it
* set the cluster status

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-08-22 17:19:33 +02:00
Sébastien Han e3b2ae5278 ceph: controller rename crd to cr
We are talking about CR ressources (instanciation of CRD) so let's use
the correct word.

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-08-22 17:19:33 +02:00
Sébastien Han 7f98b77b99 ceph: controller: populate clusterInfo
For external clusters, clusterInfo must be populating so that the
heatlh checker can run correctly.

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-08-22 17:19:33 +02:00
Sébastien Han 8c8c48e0ac ceph: mon: export 'cluster'
By exporting cluster to Cluster we can now reach it from the controller
health check so that it can be populated with 'cluster' data, see the
next commit for better understanding.

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-08-22 17:19:33 +02:00
Sébastien Han c776d6d86e ceph: type omit some mon specs for external cluster
We need to ignore some monitor specs for the external cluster use case
otherwise the cluster will never start.
For an external cluster, the mon count and other values don't make sense
and don't need to be set. Basically we don't fail if there are not
present.

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-08-22 17:19:33 +02:00
Sébastien Han 46cdf15936 ceph: config: apply the correct msgr2 prefix
External clusters might only listen on msgr2, so we must acknowledge
that and set the correct prefix to 'v2:' instead of 'v1:' on the
operator's ceph config file.

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-08-22 17:19:33 +02:00
Sébastien Han c38981621f ceph: add yaml helper to run a cluster in a different namespace
This new yaml file is an example that will add the necessary
role/serviceAccount/bindings to a "rook-ceph-external" namespace that
will used to deploy an external cluster on.

Just inject it and then create your external cluster with:

kubectl create -f cluster-external.yaml

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-08-22 17:19:33 +02:00
Sébastien Han 9dab8db463 ceph: add helper script to inject external cluster data
This script will populate the necessary configmap and secret so that the
operator can connect to the external cluster.

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-08-22 17:19:33 +02:00
Sébastien Han 40c5bc7d4e ceph: let operator watch all namespace by default
Let's configure the operator so that it watches for all the cluster in
all namespaces.

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-08-22 17:19:33 +02:00
travisn 0885af771f ceph: handle the external mon status
Signed-off-by: travisn <tnielsen@redhat.com>
2019-08-22 17:19:32 +02:00
travisn 70e4c0ac19 ceph: skip local setup for an external ceph cluster
When configuring an external cluster the orchestration of discover and all the ceph
daemons will be skipped. The operator will still watch for the creation of
crds for this namespace. When a filesystem, object, object user, or
ganesha crd are created, the operator will simply print an error
to the log.

Signed-off-by: travisn <tnielsen@redhat.com>
Signed-off-by: Sébastien Han <seb@redhat.com>
2019-08-22 17:19:32 +02:00
travisn 12979f4259 ceph: wait for external mon connection info
Signed-off-by: travisn <tnielsen@redhat.com>
2019-08-22 17:19:32 +02:00
travisn 7ab689ee8e ceph: skip local setup for an external ceph cluster
When configuring an external cluster the orchestration of discover and all the ceph
daemons will be skipped. The operator will still watch for the creation of
crds for this namespace. When a filesystem, object, object user, or
ganesha crd are created, the operator will simply print an error
to the log.

Signed-off-by: travisn <tnielsen@redhat.com>
Signed-off-by: Sébastien Han <seb@redhat.com>
2019-08-22 17:19:32 +02:00
Sébastien Han ddfb403a3f Merge pull request #3338 from giovanism/multi-homed-network-design
Design: Multi-homed Cluster Network Spec
2019-08-22 16:43:38 +02:00
Sébastien Han 13e55653ba Merge pull request #3670 from hoeghh/master
Added imageFeatures, imageformat and fstype so that it works with snapshots
2019-08-22 16:07:54 +02:00
hoeghh a7d6c1c2cb Added imageFeatures, imageformat and fstype so that it works with snapshots
Signed-off-by: Henrik Høegh <heh@praqma.net>
2019-08-22 15:59:31 +02:00
Travis Nielsen 3de83d6ddf Merge pull request #3659 from umangachapagain/mds-placement
updates ceph filesystem yaml
2019-08-22 07:42:37 -06:00
Sébastien Han bdc440515f Merge pull request #3598 from giovanism/update-docs-setup-multinode
docs: Update kubespray development-environment instructions
2019-08-22 13:59:17 +02:00
Umanga Chapagain 8ed22649aa updates ceph filesystem yaml
- adds podAntiAffinity as default to spread MDS across different nodes

Signed-off-by: Umanga Chapagain <chapagainumanga@gmail.com>
2019-08-22 16:05:29 +05:30
Sébastien Han 46ca00627f Merge pull request #3663 from 928234269/patch0
fix typo in ceph-managed-disruptionbudgets.md
2019-08-22 11:51:16 +02:00
Sébastien Han a5cb65b6ea Merge pull request #3630 from ethan-daocloud/patch-5
types.go: fix bug in struct definition
2019-08-22 11:51:08 +02:00
giovanism 7e9403ccce docs: Update kubespray development-environment instructions
This is necessary as the current kubespray VM's dockerd engine
depreciated the --graph daemon option.

Signed-off-by: giovanism <giovanism@outlook.co.id>
2019-08-22 16:43:23 +07:00
Travis Nielsen 4472584726 Merge pull request #3666 from travisn/csi-doc-toc
Docs: Add CSI doc back to the TOC
2019-08-21 17:17:18 -06:00
Travis Nielsen 0016144f7c Merge pull request #3634 from davidvossel/csv-gen-template
Rook-Ceph CSV templates
2019-08-21 15:55:01 -06:00
travisn 8c81f9e898 docs: remove extra whitespace preventing csi doc from showing in TOC
Signed-off-by: travisn <tnielsen@redhat.com>
2019-08-21 15:20:16 -06:00
Guangming Wang 4f0c92a7d1 types.go: fix bug in struct definition
Signed-off-by: Guangming Wang <guangming.wang@daocloud.io>
2019-08-22 00:29:44 +08:00
Sakura ef70304ed2 fix typo in ceph-managed-disruptionbudgets.md
Signed-off-by: Sakura <longfei.shang@daocloud.io>
2019-08-22 00:04:40 +08:00
Travis Nielsen b8d306f18a Merge pull request #3534 from sebastian-philipp/cephcluster-validation
CRDs: Add some more validations
2019-08-21 08:00:43 -06:00
Travis Nielsen db2b267cb5 Merge pull request #3416 from Daniel-Pivonka/csi-liveness
ceph: deploy liveness sidecar with csi
2019-08-21 07:42:57 -06:00
Travis Nielsen 7a2c006c4d Merge pull request #3550 from infracloudio/yb_rook_design
Added a draft design doc for YugaByte Rook operator
2019-08-21 07:41:43 -06:00
David Vossel 4729e9cb90 Limit csv template generation to linux host platform
Signed-off-by: David Vossel <davidvossel@gmail.com>
2019-08-21 08:51:05 -04:00
Sebastian Wagner fe9f8d0560 Added compatibility to K8s < 1.14
This commit can ber reverted, as soon as 1.14 is mandatory.

K8s < 1.14 does not support `nullable` and `type: "null"` is not allowed.

See https://github.com/rook/rook/issues/3660

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
2019-08-21 11:47:37 +02:00
Vishal Biyani e02eaef39f Added a draft design doc for YugaByte Rook operator
Signed-off-by: Vishal Biyani <vishal@infracloud.io>
2019-08-21 12:56:59 +05:30
giovanism c2550ac8c4 design: Multi-homed Cluster Network
Signed-off-by: giovanism <giovanism@outlook.co.id>
2019-08-21 07:00:10 +07:00
Travis Nielsen 1d28489c4a Merge pull request #3633 from ashishranjan738/fixsds
fix(storageClassDeviceSet): fixes resource limits and placements not getting applied to osds
2019-08-20 17:38:47 -06:00
Travis Nielsen 33f810a787 Merge pull request #3650 from ashishranjan738/info
fix ceph cluster namespace not showing in the logs
2019-08-20 12:46:00 -06:00
David Vossel 27828261f7 Add 'yq' yaml merger tool as optional rook-ceph dependency
Signed-off-by: David Vossel <davidvossel@gmail.com>
2019-08-20 13:39:39 -04:00
David Vossel be3389130c Add operator sdk as optional build dependency for rook-ceph
Signed-off-by: David Vossel <davidvossel@gmail.com>
2019-08-20 13:39:39 -04:00