Commit Graph
822 Commits
Author SHA1 Message Date
Dmitry Yusupov b0dffa6f9b Merge pull request #3702 from sabbot/transition-to-v1
Declare EdgeFS CRDs as v1
2019-08-29 11:26:45 -07:00
Travis Nielsen 6ccd243af1 Merge pull request #3729 from rohan47/node_selector_pvc
OSD: fixed label selector for osd prepare job pod
2019-08-29 10:55:04 -06:00
rohan47 a098cdd1a6 OSD: fixed label selector for osd prepare job pod
OSD prepare job pods don't require node selector when the OSDs are based
on PVC.
The bug was intruduced in https://github.com/rook/rook/pull/3707 which
added node selector to the prepare job pod when portable property of
storageClassDeviceSets is false.
Adding node selector set kubernetes.io/hostname=example-storagedeviceset-xxx, while there is no host example-storagedeviceset-xxx the prepare job failed.

Signed-off-by: rohan47 <rohgupta@redhat.com>
2019-08-29 19:30:02 +05:30
Sébastien Han bed14cfd71 ceph: improve upgrade on image change
From now on, Rook will only perform check before upgrades when there is
an actual upgrade. So if the Ceph image changed and a new version is
desired Rook will go through all the daemons and update them one by one
and perform checks in between.

Closes: https://github.com/rook/rook/issues/3583
Signed-off-by: Sébastien Han <seb@redhat.com>
2019-08-29 10:18:19 +02:00
rohan47 21deea9d64 OSD: CRUSH map can be based on node or PVC in case of PVC backed OSD
Signed-off-by: rohan47 <rohgupta@redhat.com>
2019-08-29 04:01:41 +05:30
Anton Skriptsov c0fe6af712 Initial v1
Signed-off-by: Anton Skriptsov <sabbotagge@gmail.com>
2019-08-28 15:18:38 -07:00
Travis Nielsen 0aa1774ebe Merge pull request #3668 from noahdesu/canary-sched
ceph/mon: support monitor migration without rebuils
2019-08-27 22:50:43 -06:00
Noah Watkins e2fccdf03b ceph: remove the CRD option Mon.PreferredCount
Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2019-08-27 17:43:35 -07:00
Noah Watkins 94bd70a14c ceph/mon: support monitor migration without rebuils
this patch adds two new related features. first, it removes the
requirement that all monitor deployments be pinned to nodes using node
selector. this is allowed when not using host networking and when PVC
storage is used. the second feature introduced in this patch is the
elimination of the Rook scheduler for placing monitors that continue to
use the node selector by using canary pods to that are scheduled by k8s,
after which Rook uses the scheduling results to pin the monitors to
nodes.

fixes: #3667

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2019-08-27 17:43:35 -07:00
Sameer Kulkarni 7febf030cb yugabytedb: operator/controller implementation
Signed-off-by: Sameer Kulkarni <samkulkarni20@gmail.com>
2019-08-27 22:45:14 +05:30
Umanga Chapagain da47c23c23 adds wait.Poll to create ObjectUser
creating an objectstore user requires that the objectstore is
created first. This commits adds changes to wait for the object
store to be created before the objectstore user can be created.
It'll retry every 15sec for 5mins.

Signed-off-by: Umanga Chapagain <chapagainumanga@gmail.com>
2019-08-27 15:41:27 +05:30
Noah Watkins 88e28e7b3e ceph: fix spurious merge of dead code
for some reason 8c8c48e0ac introduced some
old scheduler code that had previously been removed.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2019-08-26 18:51:11 -07:00
Travis Nielsen 769949bca9 Merge pull request #3694 from leseb/new-images
ceph: use latest ceph images
2019-08-26 18:40:49 -06:00
Sébastien Han a42916eff0 ceph: use latest ceph images
The last image has disabled ephemeral repositories so it's now possible
for images older than 15 days to install packages without having an
  error from non-existing repositories.

Closes: https://github.com/rook/rook/issues/3662
Signed-off-by: Sébastien Han <seb@redhat.com>
2019-08-26 23:50:55 +02:00
Sébastien Han 50e8fced8c Merge pull request #3698 from travisn/skip-start-discovery
Start the ceph device discovery only based on env var
2019-08-26 22:27:22 +02:00
Travis Nielsen 164491bff7 Merge pull request #3642 from Madhu-1/csi-leader-election
Use Deployment with leader election instead of StatefulSet
2019-08-26 13:00:46 -06:00
travisn f3e9a5adac ceph: starting the device discovery only based on env var
The decision to start the device discovery daemonset is made
by an env var on the operator pod since in some scenarios
the discovery needs to be started immediately with the operator
instead of being delayed to start with the cluster.

Signed-off-by: travisn <tnielsen@redhat.com>
2019-08-26 11:20:38 -06:00
Madhu Rajanna 78fb35a93d Use Deployment with leader election instead of StatefulSet
Deployment behaves better when a node gets disconnected
from the rest of the cluster - new provisioner leader
is elected in ~15 seconds, while it may take up to
5 minutes for StatefulSet to start a new replica.

if kube version is 1.13.x deploy provisioner as statefulset.
if kube version is higher than 1.14+ deploy provisioner
as deployment.

Refer: kubernetes-csi/external-provisioner@52d1fbc
Refer: ceph/ceph-csi#497

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2019-08-26 19:29:37 +05:30
Sébastien Han 0bdc98f333 Merge pull request #3576 from giovanism/multus
Multi-homing networking
2019-08-26 15:17:24 +02:00
Madhu Rajanna fcf6250df9 remove unused files related to cephcsi
Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2019-08-26 15:45:23 +05:30
giovanism 4974be4b20 rook: Move network util functions to k8sutil
rook: Remove NetworkSelector type alias

rook: Add error return value for multus funcs

Signed-off-by: giovanism <giovanism@outlook.co.id>
2019-08-26 16:17:04 +07:00
giovanism cc62702d39 ceph: Use rook's NetworkSpec with type embedding
ceph: Use the new NetworkSpec api

ceph: Change all tests to use the NetworkSpec

ceph: Remove TypeMeta field from NetworkSpec

ceph: Change IsHost network func signature

Signed-off-by: giovanism <giovanism@outlook.co.id>
2019-08-26 16:17:03 +07:00
giovanism ea14b555d9 edgefs: Replace NetworkSpec with rookv1alpha2 version
edgefs: Change IsHost and IsMultus network func signature

edgefs: Reorder mgr annotations declaration

edgefs: Update cluster CRD docs and example for NetworkSpec

Signed-off-by: giovanism <giovanism@outlook.co.id>
2019-08-26 16:17:03 +07:00
giovanism 6f48eb49e9 cockroachdb: Duplicate rook's NetworkSpec
cockroachdb: Remove TypeMeta and HostNetwork field from NetworkSpec

Signed-off-by: giovanism <giovanism@outlook.co.id>
2019-08-26 16:16:48 +07:00
Dmitry Yusupov 8412bf6b3c edgefs: Initial prototype
fix ApplyMultus

apply multus to target template spec too

Modify NetworkSpec for new proposal

Prevent duplicated multus network annotations

Rename Network "Interfaces" with "Selectors"

Signed-off-by: giovanism <giovanism@outlook.co.id>
2019-08-26 14:45:16 +07:00
Travis Nielsen b298a02fce Merge pull request #3067 from yard-turkey/bucket-provisioner
Bucket provisioner
2019-08-23 00:06:58 -06:00
jiffin abe3678990 adding smoke test for bucket store
Signed-off-by: jiffin <thottanjiffin@gmail.com>
Signed-off-by: Jon Cope <jcope@redhat.com>
Signed-off-by: jeffvance <jeff.h.vance@gmail.com>
2019-08-22 19:54:44 -06:00
c852e86fe9 ceph-rook object bucket provisioner
Signed-off-by: travisn <tnielsen@redhat.com>
Signed-off-by: jeffvance <jeff.h.vance@gmail.com>
Signed-off-by: Jon Cope <jcope@redhat.com>

Co-authored-by: Jon Cope <copejon@users.noreply.github.com>
Co-authored-by: Jeff Vance <jeff.h.vance@gmail.com>
2019-08-22 19:54:43 -06:00
rohan47 7307575637 Added portable and failure-domain label to the OSD deployment
Signed-off-by: rohan47 <rohgupta@redhat.com>
2019-08-23 01:49:14 +05:30
Sébastien Han b3f58863e9 Merge pull request #3600 from mvollman/bugfix-osdsPerDevice
ceph: fix osdsPerDevice config
2019-08-22 20:24:01 +02:00
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 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 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
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
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
Ashish Ranjan 8d852359b9 fix ceph cluster namespace not showing in the logs
This commit fixes cluster namespace not showing in the rook operator logs.

Signed-off-by: Ashish Ranjan <aranjan@redhat.com>
2019-08-20 17:30:17 +05:30