Commit Graph
3904 Commits
Author SHA1 Message Date
Travis Nielsen d984840677 Merge pull request #2930 from leseb/octopus-support
ceph: add support octopus version detection
2019-04-04 09:49:09 -06:00
Blaine Gardner 5c41da6705 ceph rgw: more robust update for selector change
Upgrading a Ceph objectstore was failing the upgrade test because the
existing method for handling the case where update errors occurred
because labels and label selectors have changed was not robust enough.
Make this more robust by attempting delete-and-create if a normal update
does not work on an rgw deployment.

Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
2019-04-04 09:02:09 -06:00
Sébastien Han f1f4bcccf7 ceph: add support octopus version detection
Now we are able to detect a Ceph Octopus version.

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-04-04 11:37:41 +02:00
Blaine Gardner a34fbaa594 ceph: update auth caps if get/create key fails
Update integration test suite fails on an error with getting the keyring
for the mgr. The mgr's cephx capabilities have changed and need to be
updated before get, create, or get-or-create can be called. Since other
daemons' caps may change in the future, make an attempt to update the
user's caps on any key generation. This makes the key generation more
declarative from within the operator code for individual Ceph daemons.

Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
2019-04-03 15:54:00 -06:00
Blaine Gardner feff587992 ceph: mon service forwards default bind port 6789
The Ceph mon flag `--public-bind-addr` does not keep the same port as
the previous daemon run when the port is left off the flag's value. A
port is undesired since that could interfere with Nautilus' msgr2
protocol, so instead configure the mon's services to forward the default
bind port on pods (6789) to the mon endpoint's port. The endpoint port
will be 6789 for new mons, but it may be 6790 for legacy clusters.

Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
2019-04-03 15:53:56 -06:00
rohan47 0ecce1015c ceph: update env vars for ceph-mgr containers
pass env vars with rook-ceph-system namespace and API version to
ceph-mgr containers to remove hardcoded values from rook orchestrator in
ceph-mgr and updated the unit tests for the same

Signed-off-by: rohan47 <rohgupta@redhat.com>
2019-04-04 02:11:44 +05:30
Blaine Gardner 7f26f4aa13 ceph spec tests: allow adding required env vars
Allow adding additional required environment variables on a situational
basis to Ceph's spec unit tests.

Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
(cherry picked from commit 94bf2a6e14b88a8e965b4ad5ce1289b606e5c32d)
2019-04-04 02:11:44 +05:30
travisn 6ec255e269 Avoid silent failure during upgrade integration test
Signed-off-by: travisn <tnielsen@redhat.com>
2019-04-02 17:48:47 -06:00
Dmitry Yusupov 9ad68500fa support for configurable resource profiles
Signed-off-by: Dmitry Yusupov <dmitry.yusupov@nexenta.com>
2019-03-29 10:33:13 -07:00
Dmitry Yusupov 06b6be3866 add selector for isgw service
Signed-off-by: Dmitry Yusupov <dmitry.yusupov@nexenta.com>
2019-03-21 16:32:32 -07:00
Dmitry Yusupov d91c0560cf added serviceAccountName to swift and others
Signed-off-by: Dmitry Yusupov <dmitry.yusupov@nexenta.com>
2019-03-21 16:32:32 -07:00
Dmitry Yusupov f58fcd0fc5 Support for OpenStack/SWIFT CRD
Signed-off-by: Dmitry Yusupov <dmitry.yusupov@nexenta.com>
2019-03-21 16:32:28 -07:00
Alexander Trost 2403655cb5 Merge pull request #2837 from sabbot/PR2513-zone-support
Edgefs:2513 Add failure domain and zones
2019-03-21 16:13:11 +01:00
Anton Skriptsov 4f909d86ac Edgefs:2513 Add failure domain and zones
Signed-off-by: Anton Skriptsov <sabbotagge@gmail.com>
2019-03-21 05:02:26 -07:00
travisn 7548e76bab Increase the number of mons when nodes are added
The desired number of mons could change depending on the number of nodes in a cluster.
For example, three mons would be the min number of mons in a production cluster with at
least three nodes. If there are five or more nodes, the number of mons could increase
to five in order to increase the failure tolerance to two nodes.

This is accomplished by a new setting in the cluster CRD preferredCount. If the number
of hosts exceeds preferredCount, more mons are added to quorum. If the number
of hosts drops below the preferred count, the operator would reduce the quorum size to
the smaller desired count.

Signed-off-by: travisn <tnielsen@redhat.com>
2019-03-19 13:00:37 -06:00
Noah Watkins 379cb98689 ceph: replace release name with fine-grained version
The basic idea here is to replace the release name in the ClusterInfo
object with the fine grained version information queried at runtime.
This patch also removes the Name field from the cluster spec, which was
also runtime determined and was redundant with ClusterInfo relase name.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2019-03-18 12:57:29 -07:00
Noah Watkins 7afe9d4b58 ceph: consolidate ceph version handling
Add a new package for parsing and interacting with ceph version
information. Previously ceph versions were limited to the release name,
and this patch supports ceph versions parts X.Y.Z for more fine grained
behavior.

The main structure introduced here in CephVersion which contains the
version parts. This will be used in the next patch to replace the Name
string component of the cluster CRD spec which was populated at runtime.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2019-03-17 15:33:44 -07:00
Travis Nielsen cbbfd6ee37 Merge pull request #2832 from sabbot/fix-2807
Edgefs,Issue 2807: Remove glog from edgefs rook operator
2019-03-15 14:06:36 -06:00
Travis Nielsen 935a6ec77b Merge pull request #2804 from SUSE/rbdmirror-updateandwait
Ceph rbd-mirror: use updateAndWait for daemons
2019-03-15 13:22:22 -06:00
Alexander Trostandnull 49f9a11cd4 Merge pull request #2813 from dyusupov/master
support for configurable rtlfs backend

Co-authored-by: null <dmitry.yusupov@nexenta.com>
2019-03-15 20:11:16 +01:00
Travis Nielsen 511cc6c365 Merge pull request #2764 from leseb/ceph-process-tuning
Ceph memory process tuning
2019-03-15 12:18:33 -06:00
Anton Skriptsov 3e5749c18f Remove glog from edgefs rook operator
Signed-off-by: Anton Skriptsov <sabbotagge@gmail.com>
2019-03-15 10:22:53 -07:00
Dmitry Yusupov 213e440923 support for configurable rtlfs backend
Signed-off-by: Dmitry Yusupov <dmitry.yusupov@nexenta.com>
2019-03-15 10:14:44 -07:00
Sébastien Han 871054e887 ceph: implement pod restriction on memory
If someone sets limits to pod, we want to ensure the possible
experience, so we want to make sure that people do not configure
inapropriate values for certain daemons.
We decide to fail if the memory.limit is too low.

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-03-15 17:35:44 +01:00
Travis Nielsen b3217173bf Merge pull request #2829 from noahdesu/dashboard-retry
retry dashboard operations
2019-03-15 07:59:32 -06:00
Sébastien Han b7fd64074c ceph: osd spec: tune osd memory target
If the spec of the OSD daemon contains resource limits, especially
memory.limit we will use that value for setting the osd memory target
value so the bluestore OSD knows the amount of memory available for its
cache.

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-03-15 11:45:29 +01:00
Sébastien Han 004e2e95c3 ceph: mds spec: tune mds cache memory limit
If the spec of the MDS daemon contains resource limits, especially
memory.limit we will use that value for setting the mds cache memory
limit value so the MDS knows the amount of memory available.

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-03-15 11:45:29 +01:00
Sébastien Han fa61c0441b ceph: pod: expose resource limits and requests
We now expose resource as environment variable in the pod.
They will be used by Ceph to report as a daemon metadata.

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-03-15 11:45:29 +01:00
Noah Watkins 1ee7cdfa8b ceph: refactor dashboard retry logic to use helper
Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2019-03-14 14:52:44 -07:00
Noah Watkins 8ebf9ac722 ceph: retry dashboard credentials setup
may need retry if manager hasn't fully loaded its modules.

fixes: #2809

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2019-03-14 14:51:50 -07:00
travisn 3548418774 print the diff for changes to the cluster crd
Signed-off-by: travisn <tnielsen@redhat.com>
2019-03-14 13:10:52 -06:00
travisn c1628141aa minimize args to mon creation in the operator
Only the args necessary have traditionally been passed to the mon package.
This has led to many properties in the mon struct, whereas we will
now simply pass the cluster crd spec to simplify.

Signed-off-by: travisn <tnielsen@redhat.com>
2019-03-14 13:10:52 -06:00
travisn 2fd1f7345d Trigger an orchestration on any crd update and only allow a single orchestration of mons at a time
The orchestrations need to be triggered on any update to the crd.
Users today restart the operator for various scenarios when the
operator could take care of it automatically. If unsupported options
are updated, they should just be ignored.

There are two goroutines that are working with the mons.
The first is an orchestration that is triggered by the operator
at startup, or when the cluster crd is updated. The second
is the health check that triggers periodically by default every
45 seconds. These goroutines must not try to make updates at the
same time. A mutex is added so one will block if the other is
still active. The mutex is only active for the duration of working
with mons, and not an entire orchestration of mgr, osd, etc

Signed-off-by: travisn <tnielsen@redhat.com>
2019-03-14 13:10:12 -06:00
Travis Nielsen a05ce45280 Merge pull request #2693 from SUSE/SH_#2208
#2208 OSDs not automatically started when adding nodes to existing cluster
2019-03-14 13:01:29 -06:00
Stefan Haas 1f1dbc7461 issue #2208 OSDs not automatically started when adding nodes to existing cluster
Signed-off-by: Stefan Haas <shaas@suse.com>
2019-03-14 18:54:40 +01:00
Alexander Trost 6140661766 Merge pull request #2817 from jarrpa/ceph-job-placement
Allow Ceph detect version Job to accept placement
2019-03-13 20:28:51 +01:00
Blaine Gardner 6f22781961 ceph rbd-mirror: update deployment if exists
Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
2019-03-13 12:43:46 -06:00
Travis Nielsen 73c24ddf72 Merge pull request #2789 from SUSE/rbdmirror-all-in-operator
ceph rbd-mirror: configure entirely in operator
2019-03-13 12:02:10 -06:00
Jose A. Rivera a211a3cd26 Allow Ceph detect version Job to accept placement
Signed-off-by: Jose A. Rivera <jarrpa@redhat.com>
2019-03-13 11:18:17 -05:00
Blaine Gardner c12aa6c7c5 ceph rbd-mirror: configure entirely in operator
In the form of mon, mgr, mds, and rgw, convert the rbd-mirror to be
configured completely from the operator. This is a straightforward
conversion with one functional addition: the rbd-mirror daemon stores
*no* data and has no default data dir, so the concept of a `Dataless`
daemon is here introduced.

Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
2019-03-13 09:54:09 -06:00
Travis Nielsen 28d9f9a9f3 Merge pull request #2802 from ajarr/fix-2725
ceph filesystem: don't use `mds deactivate` mimic onwards
2019-03-12 12:03:24 -07:00
Travis Nielsen 63e9e65815 Merge pull request #2803 from SUSE/typo
Ceph file/mds: fix typo: mgr -> mds
2019-03-12 11:23:11 -07:00
Travis Nielsen c58e82df61 Merge pull request #2799 from JoeWrightss/patch-3
Fix typo in config.go
2019-03-12 08:37:29 -07:00
Ramana Raja 828d2dd366 ceph filesystem: don't use mds deactivate from mimic onwards
From ceph mimic (13.x) onwards, `mds deactivate` command is
deprecated. To scale down the number of active MDSes of a filesystem,
it's sufficient to set the desired number of active MDSes using
'max_mds' setting, and is no longer required to individually
deactivate the unwanted MDSes.

Resolves: #2725
Signed-off-by: Ramana Raja <rraja@redhat.com>
2019-03-12 15:04:11 +05:30
Blaine Gardner 64d8b6d66b Ceph file/mds: fix typo: mgr -> mds
Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
2019-03-11 09:46:52 -06:00
zhoulin xie 7f8d3a35c5 Fix typo in config.go
Signed-off-by: zhoulin xie <zhoulin.xie@daocloud.io>
2019-03-10 20:32:04 +08:00
Travis Nielsen dcd24d3cca Merge pull request #2738 from SUSE/rgw-all-in-operator
Ceph rgw: configure completely from operator
2019-03-07 14:35:28 -07:00
Travis Nielsen 4d546ac63d Merge pull request #2744 from SUSE/mon-update-tests
ceph mon: update tests with new spec test lib
2019-03-07 11:23:21 -07:00
Blaine Gardner 7827ea8ff0 ceph mon: use new spec test framework
Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
2019-03-07 08:13:07 -07:00
Blaine Gardner 086fa8231c rgw: configure entirely in operator
Configure the Ceph rgw daemon completely from the operator a la the
recent changes to the Ceph mon, mgr, and mds operators.

Create the rgw deployment or daemonset first, and then create the
keyring secret for the object store with its owner reference as the
corresponding deployment or daemonset. When the replication controller
is deleted, the secret is also deleted.

The RGW's mime.types file is now stored in a configmap with a different
file created for each object store. This is primarily just a means to
get the mime.types file into the rgw pod, but the added benefit is that
the administrator can modify the configmap, which could reduce
susceptibility to file type execution vulnerabilities (worst case).

Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
2019-03-07 08:02:42 -07:00