Commit Graph
5036 Commits
Author SHA1 Message Date
Blaine Gardner e3d24106d9 Ceph op: Add spec package, shared vol/mnt defns
Add a package called 'spec' to the Ceph operator to store resource
definition specs that are shared by all Ceph daemons.

Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
2018-09-21 09:58:32 -06:00
Blaine Gardner 78c2cec1ad Add k8s volume/mount tests to operator test pkg
Add functions for helping test Kubernetes volumes and volume mounts.

- Create functions for testing the existence of volumes/mounts by
name in a list of vols/mounts without needing to know the index of
the vol/mount in the list.

- Create functions for printing vols/mounts in a human-readable format
so that tests may output more useful errors.

- Create a test definition for ensuring that all the volumes a pod
provides and all the mounts from each pod container match. For each
volume, there must be at least one container which mounts the volume,
and for each mount, there must be a source volume.

Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
2018-09-21 09:58:31 -06:00
Travis Nielsen 9ce83f9267 Merge pull request #2131 from travisn/start-before-check-quorum
Wait for mon pods to start before checking for quorum
2018-09-18 11:40:23 -06:00
travisn d02325c41d mon: wait for pods to start before checking for quorum
Signed-off-by: travisn <tnielsen@redhat.com>
2018-09-17 13:41:15 -06:00
Travis Nielsen 8afeaf110e Merge pull request #2095 from SUSE/ceph-mon-decouple-rook-ceph-versions-w-init-container
Ceph mon: initialize mon config in init container
2018-09-17 11:19:00 -06:00
Travis Nielsen bcb71378d6 Merge pull request #1995 from rtnpro/support-storageclass-reclaimpolicy
Support storageclass reclaimpolicy
2018-09-14 11:02:47 -06:00
Travis Nielsen ae4e3369ca Merge pull request #2111 from rootfs/relist-cm
reset resource version if watch channel closed
2018-09-14 08:25:39 -06:00
Ratnadeep Debnath ed089777bd Added unit tests for ceph provisioner to assert if reclaimPolicy is set properly.
Signed-off-by: Ratnadeep Debnath <rtnpro@gmail.com>
2018-09-14 10:05:36 +05:30
Ratnadeep Debnath 7ae2149961 Add support for storageclass' reclaimPolicy when creating PV.
Signed-off-by: Ratnadeep Debnath <rtnpro@gmail.com>
2018-09-14 10:05:34 +05:30
Huamin Chen 1c225185b6 adjust cluster and osd provision timeout
Signed-off-by: Huamin Chen <hchen@redhat.com>
2018-09-13 11:21:11 -04:00
Blaine Gardner 655692e845 Ceph mon: Set up config in init containers
Progress toward issue #2003.
Includes design from design doc PR #1578

Use init containers to create configuration for Ceph mons. There are 3
init containers in this design:
 1. Using the Rook image, call the Rook binary to create Ceph config
files ultimately stored in a k8s EmptyDir which is shared between all
containers in a mon pod.
 2. Leaving room to use the Ceph-versioned image in the future, call
`monmaptool` to generate the monmap, stored in a shared config dir.
 3. Leaving room to use the Ceph-versioned image in the future, call
`ceph-mon --mkfs ...` to set up the mon filesystem on the host's disk.

Once this init is run, the main mon daemon is run. Leaving room to use
the Ceph-versioned image in the future, call `ceph-mon --foreground ...`
to run the Ceph mon.

Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
2018-09-12 17:56:08 -06:00
Ganesh Maharaj Mahalingam 92f91ab156 golang 1.11 support
Signed-off-by: Ganesh Maharaj Mahalingam <ganesh.mahalingam@intel.com>
2018-09-12 10:53:53 -07:00
Huamin Chen 9ec37d5c00 reset resource version if watch channel closed
Signed-off-by: Huamin Chen <hchen@redhat.com>
2018-09-11 13:27:26 -04:00
Ganesh Maharaj Mahalingam b8c7e151bc use return error code instead
Signed-off-by: Ganesh Maharaj Mahalingam <ganesh.mahalingam@intel.com>
2018-09-08 15:23:28 -07:00
Ganesh Maharaj Mahalingam ff9230a10f PVC create resiliency
While creating a PVC, if the operator dies between successfully creating a rbd
image and associating it with a PV, that PVC will never be completed. A
restarted operator will also fail to complete the task as the requested rbd
image already exists. With the assumption that a PVC UID will always be unique,
this patch will try to use the existing volume and complete the PVC request.

Resolves: #2072

Signed-off-by: Ganesh Maharaj Mahalingam <ganesh.mahalingam@intel.com>
2018-09-07 15:34:59 -07:00
travisn 6a335ebe8a mon: refactor mon naming for use by other daemons
Signed-off-by: travisn <tnielsen@redhat.com>
2018-09-06 11:46:45 -06:00
Blaine Gardner 4be911c5b1 Ceph: include daemons as <dmn>daemon
To help with code readability, include daemons from `pkg/daemon/ceph`
as `<dmn>daemon "github.com/rook/rook/pkg/daemon/ceph/<dmn>`. This will
make it easier to understand code lines without needing to scroll up to
check the includes, as there are mon/mds/mgr/osd/rgw packages for
daemons as well as operator and cmd.

Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
2018-09-06 09:40:00 -06:00
Travis Nielsen 02accb5d62 Merge pull request #2081 from SUSE/ceph-refactor-mon-config
Ceph: Refactor daemon/mon module's config and keyring generation into cephconfig module
2018-09-05 22:03:06 -06:00
Blaine Gardner 3731f06176 Ceph: Refactor mon config/keyring to cephconfig
Create a cephconfig module in Ceph's daemon pkg source, and refactor the
config and keyring generation that exists in the mon package into the
new cephconfig package. The config/keyring generation code is used by
most all daemons and not just mon, so a new package is a more
appropriate place for this.

Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
2018-09-05 10:17:11 -06:00
Alexander Trost 408ef6315a Merge pull request #2086 from arm64b/alignment-size-of-the-PV
Align the size of the PV to the actual one
2018-09-05 14:36:01 +02:00
travisn c0af417b00 osd: delete legacy deployment with -id in the name
Signed-off-by: travisn <tnielsen@redhat.com>
2018-09-04 14:15:18 -05:00
Sage Weil 8e773612ca Remove unnecessary "-id" from OSD pod names
The -id portion of the name is unnecessary and inconsistent with the other
pod names.

Signed-off-by: Sage Weil <sage@redhat.com>
2018-09-04 14:15:18 -05:00
Dennis Chen 7dce5c004f Align the size of the PV to the actual one
We maybe roundup the size to the next `MB` boundary in some cases
when creating the volume, thus we need to make sure the size of
the PV generated is consistent with the actual one.

Signed-off-by: Dennis Chen <dennis.chen@arm.com>
2018-09-04 16:27:19 +08:00
travisn f840e3574e mon: start a deployment instead of replicaset
Signed-off-by: travisn <tnielsen@redhat.com>
2018-09-01 00:12:42 -06:00
travisn 5f01178e83 mon: set names based on chars instead of integers
Signed-off-by: travisn <tnielsen@redhat.com>
2018-08-30 22:18:53 -06:00
Dennis Chen 25086c01ad Roundup the size of the RBD volume image
Current code will truncate the generated RBD image in some cases,
this PR will round up the size to make sure the final RBD image
generated can cover all the required data space.

Also, corresponding unit test cases added to verify the change.

Signed-off-by: Dennis Chen <dennis.chen@arm.com>
2018-08-29 11:10:07 +08:00
Alexander Trost 4ccaea654a Updated DefaultClusterName to match rook-ceph
Signed-off-by: Alexander Trost <galexrt@googlemail.com>
2018-08-27 14:51:29 +02:00
Travis Nielsen 6976364e80 Merge pull request #2070 from SUSE/ceph-runasnonroot-allow-false
ceph osd operator: Allow explicit runAsNonRoot=false
2018-08-24 17:38:18 -06:00
Blaine Gardner 406067788d ceph osd oper: Allow explicit runAsNonRoot=false
Rook no longer supports Kubernetes < 1.7
Remove a workaround for k8s < 1.6.4 where `runAsNonRoot` could not be
explicitly set to false.

Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
2018-08-24 15:11:45 -06:00
travisn 1a86a8cb7b metered loading of flex drivers
Signed-off-by: travisn <tnielsen@redhat.com>
2018-08-24 13:28:57 -06:00
Alexander Trost 614fef7fce Merge pull request #2055 from arm64b/remove-unused-volume-mgr
Remove unused volume manager parameters
2018-08-24 16:40:40 +02:00
travisn 51e60b7b4d tests: upgrade integration test from 0.8.1 to master
Signed-off-by: travisn <tnielsen@redhat.com>
2018-08-23 16:43:10 -06:00
rohan47 9aec1d3002 nfs: Documentation, user guides, examples
Signed-off-by: rohan47 <rohanrgupta1996@gmail.com>
2018-08-22 11:57:44 +00:00
rohan47 41ab581b76 nfs: operator/controller implementation
Signed-off-by: rohan47 <rohanrgupta1996@gmail.com>
2018-08-22 10:34:40 +00:00
rohan47 4a7274d35d nfs: generated clientset code
Signed-off-by: rohan47 <rohanrgupta1996@gmail.com>
2018-08-22 10:34:40 +00:00
rohan47 d09bf3d62e nfs: CRD types and specs
Signed-off-by: rohan47 <rohanrgupta1996@gmail.com>
2018-08-22 10:34:40 +00:00
Dennis Chen 4a15529db5 Remove unused volume manager parameters
We don't use volume manager argument in NewClusterController()
and NewFlexvolumeServer() functions, so remove the unused volume
manager parameter from those functions.

Signed-off-by: Dennis Chen <dennis.chen@arm.com>
2018-08-22 09:49:02 +08:00
Alexander Trost 2080330539 Add dataPool parameter to StorageClass
This change allows block storage to use a given Ceph pool for it's data.

Fixes #1733

Signed-off-by: Alexander Trost <galexrt@googlemail.com>
2018-08-17 16:28:08 +02:00
Bogdan Luca 22757663d1 Set application name to "rbd" when creating a RBD pool
Signed-off-by: Bogdan Luca <luca.bogdan@gmail.com>
2018-08-10 15:13:44 +03:00
Jared Watts 90fdea4ddd Merge pull request #1947 from arm64b/ceph-volmgr-err-handling
Enhancement of Ceph volume manager kmod detection
2018-08-09 06:25:32 -07:00
Travis Nielsen d331a3e6a4 Merge pull request #1999 from jcsp/wip-mds-caps
Fix client.admin's default MDS capabilities
2018-08-08 08:00:24 -06:00
John Spray 78a53870d1 Reduce mgr mon caps to "profile mgr"
This has been the correct style since luminous.  The
"allow *" version works fine but is more power than
needed.

Signed-off-by: John Spray <john.spray@redhat.com>
2018-08-07 12:53:18 +01:00
John Spray b6eab78d92 Grant mgr OSD and MDS caps
While the mgr can mostly do its job with just
mon caps, modules expect to also have access
to OSD and MDS daemons at will (e.g. for the dashboard
to display the MDS session list)

This change matches what other Ceph deployment tools do.

Signed-off-by: John Spray <john.spray@redhat.com>
2018-08-07 12:53:12 +01:00
John Spray a57434017d Fix client.admin's default MDS capabilities
Signed-off-by: John Spray <john.spray@redhat.com>
2018-08-07 12:46:29 +01:00
Dennis Chen ec84e6543c Return immediately when no valid node to run osd
We don't need to handle other osd(s) related tasks if there's
no valid nodes available in the cluster to run osd(s), log a
warning message to help user identify the cause of the issue.

Signed-off-by: Dennis Chen <dennis.chen@arm.com>
2018-08-07 10:09:14 +08:00
travisn 1d928ecd36 osd: init container to initialize config at startup
Signed-off-by: travisn <tnielsen@redhat.com>
2018-07-31 14:39:53 -06:00
Dennis Chen 9cfafaa0a7 Enhancement of Ceph volume manager kmod detection
Current Ceph volume manager code doesn't take the builtin
kernel module into the account, so the `modinfo` will fail
in this case. Also, we need to add error handling code to
make sure the volume manager does work when proceeding to
continue, otherwise we will encounter the `rbd` related issue
in the following step even we have an artificial `agent` pod
in running state.

Signed-off-by: Dennis Chen <dennis.chen@arm.com>
2018-07-31 16:56:40 +08:00
Blaine Gardner 3dbe54e7cc Undo spell fixes to generated code
Fixes #1962

I missed this change intended for PR #1952. Generated code should not be
modified.

Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
2018-07-31 00:20:20 -06:00
Travis Nielsen 5e4fba2aec Merge pull request #1952 from SUSE/simple-linting
Fix spellcheck and trailing space/newline issues
2018-07-27 14:02:00 -06:00
Travis Nielsen add4bd2fd2 Merge pull request #1926 from galexrt/fix_1920
operator/osd: Use UpdateStrategy Recreate
2018-07-26 14:45:56 -06:00