Sébastien Han [Fri, 16 Dec 2016 13:53:14 +0000 (14:53 +0100)]
docker: only use systemd to manage containers
Prior to this patch we had several ways to runs containers, we could use
ansible's docker module on some distro and on containers distros we were
using systemd. We strongly believe threating containers as services with
systemd is the right approach so this patch generalizes to all the
distros. These days most of the distros are running systemd so it's fair
assumption.
Sébastien Han [Tue, 6 Dec 2016 10:20:23 +0000 (11:20 +0100)]
test: add cluster name support test scenario
We need to test the cluster name support in this CI as well. This
commit might be prone to debate because it tests 2 things in a single
scenario. We first test our ability to deploy a cluster AND the cluster
name support. However it's easier to do it this way and will reduce the
amount of time for testingg. If we don't do this we will have a
duplicate those 2 existing tests into new ones 'only' to test the
cluster name support.
common: do not regenerate initial mon keyring if cluster exists
This commit solves the situation where you lost your fetch directory and
you are running ansible against an existing cluster. Since no fetch
directory is present the file containing the initial mon keyring
doesn't exist so we are generating a new one.
Sébastien Han [Wed, 14 Dec 2016 18:03:04 +0000 (19:03 +0100)]
common: remove uncessary conditions and spell red hat entirely
We do not need to run another condition for 'ceph_rhcs' since the
include we came from already has it, so we are already inside this
condition.
We also spell red hat entirely instead of rh and we remove capital
letters.
Andrew Schoen [Wed, 14 Dec 2016 15:13:55 +0000 (09:13 -0600)]
ensure site.yml.sample always gathers facts and installs python2
Then avoids an issue where if you're using tags to run the playbook then
no facts are gathered, resulting in subsequent tasks failing that depend
on them.
Ken Dreyer [Mon, 12 Dec 2016 21:20:47 +0000 (14:20 -0700)]
Makefile: improve version detection
Prior to this change, if there was a stray tag in the repository that
did not start with a "v", the Makefile would still try to use that tag
as a version tag when constructing the RPMs.
Only use the tags that start with "v", in this case.
Sébastien Han [Fri, 9 Dec 2016 13:51:35 +0000 (14:51 +0100)]
common: do not run tasks in main.yml, use include
For readibility and clarity we do not run any tasks directly in the
main.yml file. This file should only contain include, which helps us
later to apply conditionnals if we want to.
Sébastien Han [Tue, 6 Dec 2016 16:28:30 +0000 (17:28 +0100)]
docker: consolidate ceph-ansible and ceph-docker varible
This commit re-uses some of the existing ceph-ansible variables for a
containirzed deployment. There is no reasons why we should add new
variables for the containerized deployment.
Logan V [Thu, 8 Dec 2016 19:16:02 +0000 (13:16 -0600)]
Fix the mons running check to use group name var
mon_group_name variable can be used to override mons group, but
this task assumes the group is always 'mons'. So we need to use
the var to find the group name instead.
- Add option to configure default pool size
- Add option not to install MDS and RGW
- Improve ssh_setup to check if file and key already exist
- Improve populate_vars for safety rerun for idempotent
- Change path of inventory file to where ansible run. So this won't pollute the system
Sébastien Han [Wed, 7 Dec 2016 13:36:24 +0000 (14:36 +0100)]
mon: remove collect keys
Once the monitor process starts it will also trigger `ceph-create-keys`
which will collect the admin key and bootstrap keys. We used to force
this command because we were having issues on some distros like centos
7.0 and 7.1 not triggering this. This is fixed on centos 7.2 and not an
issue on ubuntu 14.04 or 16.04 so we can remove this task. If the
monitor hangs or fails to start the playbook will fail right after at
the "wait for client.admin key exists" task after 300sec.
Closes: #1161 Signed-off-by: Sébastien Han <seb@redhat.com>
Sébastien Han [Tue, 6 Dec 2016 14:59:49 +0000 (15:59 +0100)]
common: do not regenerate a cluster fsid if cluster exists
This commit solves the situation where you lost your fetch directory and
you are running ansible against an existing cluster. Since no fetch
directory is present the file containing the fsid doesn't exist so we
are creating a new one. Later the ceph.conf gets updated with a wrong
fsid which causes problems for clients and ceph processes.
Closes: #1148 Signed-off-by: Sébastien Han <seb@redhat.com>
Andrew Schoen [Sat, 3 Dec 2016 14:07:09 +0000 (08:07 -0600)]
tests: change conftest.py to support dynamic markers and test selection
This applies correct markers to tests depending on their file path.
Tests that live at the root of tests/functional/tests will be given a
marker of 'all' and apply to any type of ceph node.
Tests that live in tests/functional/tests/mon will get the
'mons' marker and will only run for nodes in the 'mons' group.
Tests that live in tests/functional/tests/osd will get the 'osds'
marker and will only run for nodes in the 'osds' group.
All tests must use the CephNode fixture for this to work and be
parameterized by testinfra.
Sébastien Han [Tue, 6 Dec 2016 14:02:49 +0000 (15:02 +0100)]
take-over: use more precise ceph.conf detection
Prior to this patch we were just looking for any *.conf file which
sometimes could results in multiple matches. The new command looks for a
.conf file that must contain [global] and 'fsid' patterns. This will
definitely get us the ceph.conf file. We can not directly use ceph.conf
because of a different cluster name.