Commit Graph
147 Commits
Author SHA1 Message Date
Anton Skriptsov d75a281d6e edgefs: FailureDomain-SysRepCount validation
Additional failureDomain,sysRepCount validation

Signed-off-by: Anton Skriptsov <sabbotagge@gmail.com>
2019-10-25 06:27:35 -07:00
rohan47 7f9611d489 Ceph: Added removeOSDsIfOutAndSafeToRemove to Cluster CR
OSDs can be removed automatically with the current mechanism if a new
setting removeOSDsIfOutAndSafeToRemove is set to true. The default for
all new or upgraded clusters should be false.

Signed-off-by: rohan47 <rohgupta@redhat.com>
2019-10-23 15:10:36 +05:30
Sébastien Han 1765ad6508 ceph: expose prepare pod resource limits
The osd-prepare jobs should not inherit osd resources since this might
cause scheduling issues.
Instead, we can now use the new CRD property `prepareosd` in the resource section.

Refer to the documentation for more details.

Closes: https://github.com/rook/rook/issues/2502
Signed-off-by: Sébastien Han <seb@redhat.com>
2019-10-18 16:48:03 +02:00
Travis Nielsen f52abf4ed6 Merge pull request #4058 from jmolmo/edgefs_selfgenerated_code
EdgeFS: Auto generated code missed
2019-10-15 23:55:04 -06:00
Juan Miguel Olmo Martínez 6f439a7328 EdgeFS: Auto generated code missed
Auto generated code was missed in https://github.com/rook/rook/pull/3995.

Signed-off-by: Juan Miguel Olmo Martínez <jolmomar@redhat.com>
2019-10-08 14:32:51 +02:00
Sébastien Han 233df963e7 ceph: fix various spelling issues
Correct spelling.

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-10-03 11:42:40 +02:00
Juan Miguel Olmo Martínez 2de0787fc8 New setting to avoid delete pools on <fs>/<os> resources deletion
A new CRD property `PreservePoolsOnDelete` has been added to Filesystem(fs) and
Object Store(os) resources in order to increase protection against data loss.
If it is set to `true`, associated pools won't be deleted when the main
resource(fs/os) is deleted. Creating again the deleted fs/os with the same name
 will reuse the preserved pools.

Signed-off-by: Juan Miguel Olmo Martínez <jolmomar@redhat.com>
2019-09-30 08:13:39 +02:00
Madhu Rajanna 3af3cd63ab Rename AddNodeAffinity to GenerateNodeAffinity
function AddNodeAffinity was not adding any node
affinity instead it was forming the nodeaffinity
object. renamed it to GenerateNodeAffinity for more
meaningful

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
2019-09-27 10:05:45 +05:30
Sergey Kaydalov 07ba73bb8f EdgeFS: support for rtkvs disk engine and Samsung KVSSD
Signed-off-by: Sergey Kaydalov <kayserg@gmail.com>
2019-09-26 18:02:32 +03:00
Sébastien Han 087d71106b ceph: add a new CR property to force upgrades
On rare occasion, the ceph checks might not be 100% correct and the user
might decide to force an upgrade anyway.
Correctly, if we are in an upgrade, we perform `ok-to-stop` check for
each daemon, if one of them fails, we retry and eventually fail.
They are corner-cases where users would like to force the upgrade anyway.

Enhance the new CR property: "skipUpgradeChecks: true".

Closes: https://github.com/rook/rook/issues/3872
Signed-off-by: Sébastien Han <seb@redhat.com>
2019-09-19 10:55:56 +02:00
Juan Miguel Olmo Martínez 4700193b1f ceph: dashboard - get right ssl port from ceph settings
Starting with Nautilus 14.2.1 the dashboard SSL port is readed from <<mgr/dashboard/ssl_server_port>> ceph setting.
Previous versions use the port specified in <<mgr/dashboard/server_port>>

Addressed @travisn suggestion about use of <ssl> attribute in conditional.
This suggestion drove me to change the type of the SSl attribute (from *bool to bool) in the DashboardSpec Struct.
This makes code more clean/safe and make sure that the SSL atribute has always a meaningful value.

Now if you want to run the <secure dashboard> you need to set explicitly SSL to true, as is demonstrated in unit tests.

[x] Code generation (make codegen) has been run to update object specifications

Signed-off-by: Juan Miguel Olmo Martínez <jolmomar@redhat.com>
2019-09-09 11:08:17 +02:00
travisnandAshish Ranjan 638b591535 ceph: Adds support for MDB controller and machineLabel controller
Add support for MachineDisruptionBudget controller and MachineLabel controller required for fencing
in OpenShift. This will ensure that machines are only fenced and OSDs are only stopped
when Ceph is in a healthy state.

Co-authored-by: Ashish Ranjan <aranjan@redhat.com>
Signed-off-by: travisn <tnielsen@redhat.com>
2019-09-06 16:32:06 -06:00
travisnandSébastien Han c30cc697c7 ceph: ability to enable mgr module via CRD
We can now enable via the cluster CR any manager module with a
setting under the new mgr element

mgr:
  modules:
  - name: pg_autoscaler
    enabled: true

Co-authored-by: Sébastien Han <seb@redhat.com>
Co-authored-by: travisn <tnielsen@redhat.com>
Signed-off-by: travisn <tnielsen@redhat.com>
2019-09-06 11:32:51 -06:00
Dmitry Yusupov 2282e956d9 support for mdpsize
Signed-off-by: Dmitry Yusupov <dmitry.yusupov@nexenta.com>
2019-09-05 18:13:56 -07:00
Dmitry Yusupov 6fcd2c21fa Merge pull request #3774 from dyusupov/master
ISGW doesnt need large chunk cache
2019-09-05 18:12:38 -07:00
Blaine Gardner 3a243d2978 ceph: remove configOverride functionality from CRD
After further consideration and working with the feature for a few
weeks, the `configOverride` functionality seems to be more complexity
than is worth it for the expected benefit. Users still have the most
preferred option of setting configs in Ceph's config database using
`ceph cofig set` or the dashboard, and the override ConfigMap still
exists for fallback scenarios. The config database can still be used
by Rook for setting necessary configs, but the user has no way of
telling Rook to do so.

Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
2019-09-05 12:30:56 -06:00
Dmitry Yusupov 175e5a7888 ISGW doesnt need large chunk cache
Signed-off-by: Dmitry Yusupov <dmitry.yusupov@nexenta.com>
2019-09-04 15:04:45 -07:00
Rohan CJ 4072d14557 Add tests for the clusterdisruption controller and update the docs and
pending releas notes for managed PDBs.

Signed-off-by: Rohan CJ <rohantmp@gmail.com>
2019-08-30 14:04:23 +05:30
Rohan CJ 5a248fbf59 Set a noout on failuredomains when in maintenance.
Maintenance is only defined when managedDisruptionBudgets are enabled.
Details can be found in the design doc for manged poddisriptionbudgets.

Signed-off-by: Rohan CJ <rohantmp@gmail.com>
2019-08-30 09:01:15 +05:30
Rohan CJ d6b23dd549 Add nodedrain controller for deploying canary deployments for every node.
Canary pods can be watched to determine when a node is draining.

Signed-off-by: Rohan CJ <rohantmp@gmail.com>
2019-08-30 09:01:11 +05:30
Travis Nielsen 5eab7ca658 Merge pull request #3573 from SUSE/mon-kv-store
Ceph: override configs in CRD
2019-08-29 19:04:16 -06:00
Blaine Gardner 1be43290be Ceph: override configs in CRD
Allow users to specify overrides in the CephCluster CRD. The override
ConfigMap still exists for emergency situations and is mounted into
daemon pods directly instead of being merged into a Rook-created config
file.

Rook Ceph no longer uses a config file for managing daemons with the
exception of the OSDs which still generate a config in an init
container.

Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
2019-08-29 15:38:27 -06:00
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
Sameer Kulkarni 7bb820db61 yugabytedb: CRD types & specs
Signed-off-by: Sameer Kulkarni <samkulkarni20@gmail.com>
2019-08-27 22:45:14 +05:30
Sébastien Han 0bdc98f333 Merge pull request #3576 from giovanism/multus
Multi-homing networking
2019-08-26 15:17:24 +02:00
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 95644b7067 rook: Replace NetworkSpec with the new Spec
Duplicate edgefs's NetworkSpec funcs to rook

rook: Add NetworkSpec related tests

Support multus's json syntax

Add ApplyMultus using json

Fix uncaught index error on parseMultusSelector

Fix parseMultusSelector short form

Fix invalid JSON literal on network_test.go

rook: Ignore selectors order in ApplyMultus tests

rook: Improve network docs and tests readability

rook: Change IsHost and IsMultus network func signature

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
giovanism 7d1c8f8848 ceph: Duplicate rook's NetworkSpec
Signed-off-by: giovanism <giovanism@outlook.co.id>
2019-08-26 14:45:39 +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
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 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
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 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
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
Anton Skriptsov e99df703c5 Add useHostLocalTime option
Signed-off-by: Anton Skriptsov <sabbotagge@gmail.com>
2019-08-14 11:26:42 -07:00
travisn 113da4a94f update the default ceph version from 14.2.1 to 14.2.2
The Nautilus v14.2.2 release was out last week. This is the new
default version for Rook in the documentation and manifests.

Signed-off-by: travisn <tnielsen@redhat.com>
2019-08-13 07:23:00 -06:00
travisn 9a3dc52a11 ceph: minimum version allowed is mimic 13.2.4
With the 1.1 release we should not be creating bluestore OSDs
with rook's legacy partitioning scheme. All new bluestore OSDs
should be created with ceph-volume. Therefore, the miminum
version allowed is a version of mimic supporting ceph-volume.

This commit also adds consistent version checking between
the Add and Update methods for the operator handling the
CR events.

Signed-off-by: travisn <tnielsen@redhat.com>
2019-08-13 07:22:59 -06:00
rohan47andAshish Ranjan d2f52aebe5 Adds support for storageClassDeviceSet in rook-ceph operator
- Added code to support StorageClassDeviceSet spec provided in the cluster-on-pvc.yaml
- The code reads the StorageClassDeviceSet spec and creates pvc based on the ‘count’ field for each device set.
- OSD prepare job is started for each PVC which activates the ceph-volume on each PVC
- Finally OSD is started on each of the PVC device.

Co-authored-by: rohan47 <rohgupta@redhat.com>
Co-authored-by: Ashish Ranjan <aranjan@redhat.com>
Signed-off-by: Santosh Pillai <sapillai@redhat.com>
2019-08-12 09:24:13 -06:00
Travis Nielsen 7fb43d72eb Merge pull request #3546 from noahdesu/mon-pvc
ceph: base monitor storage of pvc
2019-08-02 22:25:57 -06:00
Noah Watkins 4173c5544e ceph: base monitor storage of pvc
Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2019-08-02 10:30:23 -07:00
Nick McKinney d9aec6bad6 Allow control over K8s service type via CRD
Signed-off-by: Nick McKinney <nmckinney@breakpoint-labs.com>
2019-07-25 15:49:18 -04:00
Anton Skriptsov 3952874ae1 Add mgr pod liveness probe
Signed-off-by: Anton Skriptsov <sabbotagge@gmail.com>
2019-07-23 11:25:19 -07:00
Dmitry Yusupov a3d02fb6ea make getModifiedRookImagePath be generic and use it for isgw too
Signed-off-by: Dmitry Yusupov <dmitry.yusupov@nexenta.com>
2019-07-22 10:07:22 -07:00