Commit Graph

281 Commits (main)

Author SHA1 Message Date
Guillaume Abrioux b6d09b510f tests: refact ci testing master
We should test ceph-ansible against the latest ansible stable version on
master.

This commit also remove the pinning to 1.7.1 version of testinfra
because ansible 2.5 requires a newer version.

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
2018-07-06 16:31:49 +00:00
Guillaume Abrioux 081600842f tests: reduce the amount of time we wait
This sleep 120 looks a bit long, let's reduce this to 30sec and see if
things go faster.

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
2018-06-27 10:13:26 +00:00
Guillaume Abrioux 775a77dcd9 Revert "tests: add more verbosity in testinfra"
This reverts commit 68eb850b27.

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
2018-06-20 16:56:48 +02:00
Guillaume Abrioux 68eb850b27 tests: add more verbosity in testinfra
that may be helpful to know why a test has been skipped.

from pytest doc:

```
  -r chars              show extra test summary info as specified by chars
                        (f)ailed, (E)error, (s)skipped, (x)failed, (X)passed,
                        (p)passed, (P)passed with output, (a)all except pP.
                        Warnings are displayed at all times except when
                        --disable-warnings is set
```

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
2018-06-20 13:54:18 +02:00
Guillaume Abrioux 21894655a7 tests: keep same ceph release during handlers/idempotency test
since `latest` points to `mimic`, we need to force the test to keep the
same ceph release when testing anything else than `mimic`.

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
2018-06-15 11:45:51 -04:00
Guillaume Abrioux 752781e2c9 core: make ansible pinning to latest ansible 2.4
it looks "ansible~=2.4" install latest ansible release in 2.5 so we must
specify we want latest release but inferior to 2.5.

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
2018-06-12 14:26:29 +08:00
Guillaume Abrioux a351b08726 tests: set CEPH_DOCKER_IMAGE_TAG when ceph release is luminous
Since latest points to mimic for the ceph container images, we need to
set `CEPH_DOCKER_IMAGE_TAG` to `latest-luminous` when ceph release is
luminous

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
2018-06-11 23:35:56 +08:00
Sébastien Han 41b4632abc test: do not always copy admin key
The admin key must be copied on the osd nodes only when we test the
shrink scenario. Shrink relies on ceph-disk commands that require the
admin key on the node where it's being executed.

Now we only copy the key when running on the shrink-osd scenario.

Signed-off-by: Sébastien Han <seb@redhat.com>
2018-06-05 09:39:30 +02:00
Guillaume Abrioux 98cb6ed8f6 tests: avoid yum failures
In the CI we can see at many times failures like following:

`Failure talking to yum: Cannot find a valid baseurl for repo:
base/7/x86_64`

It seems the fastest mirror detection is sometimes counterproductive and
leads yum to fail.

This fix has been added in the `setup.yml`.
This playbook was used until now only just before playing `testinfra`
and could be used before running ceph-ansible so we can add some
provisionning tasks.

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
Co-authored-by: Erwan Velu <evelu@redhat.com>
2018-05-28 22:04:35 +02:00
Sébastien Han 203c9af0ac ci: test ansible 2.5
Signed-off-by: Sébastien Han <seb@redhat.com>
2018-04-23 10:17:24 +02:00
Sébastien Han 14eff6b571 tox: use container latest tag for upgrades
Currently tag-build-master-luminous-ubuntu-16.04 is not used anymore.
Also now, 'latest' points to CentOS so we need to make that switch here
too.

We know have latest tags for each stable release so let's use them and
point tox at them to deploy the right version.

Signed-off-by: Sébastien Han <seb@redhat.com>
2018-04-09 13:54:55 +02:00
Andy McCrae 60d4b75f51 Cleanup plugins directories and references
Having callback_plugins, and action plugins in random locations causes
a lot of disparity.

We should centralize this into one place in the plugins directory and
fix up the ansible.cfg to reflect this.

Additionally, since the ansible.cfg already reflects action_plugins, we
don't need a link to action_plugins in the base of the repository.
2018-03-14 11:15:39 +01:00
Guillaume Abrioux 1e283bf69b tests: make CI jobs using 'ansible.cfg'
The jobs launches by the CI are not using 'ansible.cfg'.
There are some parameters that should avoid SSH failure that we are used
to see in the CI so far.

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
2018-02-28 13:51:52 +01:00
Guillaume Abrioux 707458c979 ci: add tripleo scenario testing
This should help to see earlier any failure in a tripleo deployment scenario.

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
2018-02-23 13:54:32 +01:00
Sébastien Han 7ba25b20dc ci: test on ansible 2.4.2
Signed-off-by: Sébastien Han <seb@redhat.com>
2018-01-11 17:27:42 +01:00
Andrew Schoen a8509fbc9c test: set UPDATE_CEPH_DOCKER_IMAGE_TAG for jewel tests
We want to be explict here and update to luminous and not
the 'latest' tag.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2018-01-06 14:07:55 +01:00
Guillaume Abrioux 73a20e9b50 Revert "tests: set CEPH_STABLE_RELEASE in ceph-build"
This reverts commit 7a1d7d92ff.
2017-12-12 09:48:50 +01:00
Guillaume Abrioux 7a1d7d92ff tests: set CEPH_STABLE_RELEASE in ceph-build
`CEPH_STABLE_RELEASE` needs to bet set in ceph-build according
to ceph/ceph-ansible#2165

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
2017-11-14 13:39:54 +01:00
Guillaume Abrioux de0900eae1 tests: sync with ceph/ceph-build for ceph-ansible-nightlies
Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
2017-11-03 10:25:12 +01:00
Guillaume Abrioux 4596fbaac1 common: make the delegate_facts feature optional
Since we encountered issue with this on ansible2.2, this commit provide
the ability to enable or disable it regarding which ansible we are
running.

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
2017-10-31 16:44:26 +01:00
Guillaume Abrioux c28882c1cd tests: add missing test for rbd
Add a missing test `test_rbd_mirror_service_is_running_from_luminous()`.
Also using bash -c "<cmd>" to make testinfra aware that later in
the upgrade process we are now running `luminous` ceph release so we
must skip the rbd tests related to `jewel` ceph release.

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
2017-10-30 19:44:56 +01:00
Guillaume Abrioux 97b1cb0258 tests: followup on testing against ansible2.4
ceph-ansible is now being testing against ansible2.2 and ansible2.4. We
need to update tox.ini so we use the right version of testinfra
regarding which ansible version we are using.

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
2017-10-30 16:40:39 +01:00
Sébastien Han b3c9de90f4 Merge pull request #2090 from ceph/ansible-2.4
[skip ci] Test ansible 2.4.1
2017-10-27 17:39:05 +02:00
Sébastien Han c4ad247718 Test ansible 2.4.1
We now test with Ansible 2.4. We had to change testinfra's version since
only recent versions work with 2.4. See:
https://github.com/philpep/testinfra/issues/249

Closes: https://github.com/ceph/ceph-ansible/issues/2087
Signed-off-by: Sébastien Han <seb@redhat.com>
2017-10-27 15:20:13 +02:00
Alfredo Deza f0364ba47f tests add the bluestore scenario in tox.ini
Signed-off-by: Alfredo Deza <adeza@redhat.com>
2017-10-25 06:50:19 -04:00
Guillaume Abrioux 280de30484 tests: split purge_cluster, followup on a53aa9e
- split purge_cluster because we need to test filestore and bluestore
scenarios.
- clean some leftover.

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
2017-10-23 16:27:48 +02:00
Guillaume Abrioux db6b93d441 tests: only test upgrade jewel > luminous
Since it has been decided to stop testing against kraken, we have to
test upgrade from jewel to luminous instead of kraken.

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
2017-10-19 17:00:27 +02:00
Guillaume Abrioux 93f0856770 tests: re-add missing param in tox
this line has been removed by mistake in a53aa9e.

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
2017-10-19 17:00:27 +02:00
Sébastien Han a53aa9e8b4 ci: new osd scenarios
This commit add new osd scenarios, it aims to simplify the CI setup and
brings a better coverage on the OSD scenarios.
We decided to differentiate between filestore and bluestore, thinking
ahead when filestore won't be supported anymore.
So we now have two classes of tests:

* Filestore
* Bluestore

In each of those classes we have container and non-container.
Then for each we test the following:

* collocated
* collocated dmcrypt
* non-collocated
* non-collocated dmcrypt
* auto discovery collocated
* auto discovery collocated dmcrypt

This gives us a nice coverage and also reduces the footprint on the CI.
We are now up to 4 scenarios, each containing 6 OSD VMs.

Signed-off-by: Sébastien Han <seb@redhat.com>
2017-10-18 09:26:06 +02:00
Sébastien Han 3e058bff06 ci: reboot with ansible instead of vagrant reload
vagrant is serialized and takes a lot of time compare to simple reboot.
See the benchmarks below for 3 VMs:

[leseb@rick docker]$ time ANSIBLE_SSH_ARGS="-F
/home/leseb/reproduce-ci/tmp.zgGC7d5mIC/build/workspace/ceph-ansible/tests/functional/centos/7/docker/vagrant_ssh_config"  ansible-playbook -i /home/leseb/reproduce-ci/tmp.zgGC7d5mIC/build/workspace/ceph-ansible/tests/functional/centos/7/docker/hosts reboot.yml

PLAY [mons]
****************************************************************************************************************************************************************************************************

TASK [Gathering Facts]
*****************************************************************************************************************************************************************************************
ok: [mon1]
ok: [mon2]
ok: [mon0]

TASK [restart machine]
*****************************************************************************************************************************************************************************************
changed: [mon2]
changed: [mon1]
changed: [mon0]

TASK [wait for server to boot]
*********************************************************************************************************************************************************************************
ok: [mon2 -> localhost]
ok: [mon0 -> localhost]
ok: [mon1 -> localhost]

TASK [uptime]
**************************************************************************************************************************************************************************************************
changed: [mon2]
changed: [mon0]
changed: [mon1]

PLAY RECAP
*****************************************************************************************************************************************************************************************************
mon0                       : ok=4    changed=2    unreachable=0
failed=0
mon1                       : ok=4    changed=2    unreachable=0
failed=0
mon2                       : ok=4    changed=2    unreachable=0
failed=0

real    0m35.112s
user    0m5.737s
sys     0m1.849s

[leseb@rick docker]$ time vagrant reload
==> mon0: Halting domain...
==> mon0: Starting domain.
==> mon0: Waiting for domain to get an IP address...
==> mon0: Waiting for SSH to become available...
==> mon0: Creating shared folders metadata...
==> mon0: Rsyncing folder:
/home/leseb/reproduce-ci/tmp.zgGC7d5mIC/build/workspace/ceph-ansible/tests/functional/centos/7/docker/
=> /home/vagrant/sync
==> mon0: Machine already provisioned. Run `vagrant provision` or use
the `--provision`
==> mon0: flag to force provisioning. Provisioners marked to run always
will still run.
==> mon1: Halting domain...
==> mon1: Starting domain.
==> mon1: Waiting for domain to get an IP address...
==> mon1: Waiting for SSH to become available...
==> mon1: Creating shared folders metadata...
==> mon1: Rsyncing folder:
/home/leseb/reproduce-ci/tmp.zgGC7d5mIC/build/workspace/ceph-ansible/tests/functional/centos/7/docker/
=> /home/vagrant/sync
==> mon1: Machine already provisioned. Run `vagrant provision` or use
the `--provision`
==> mon1: flag to force provisioning. Provisioners marked to run always
will still run.
==> mon2: Halting domain...
==> mon2: Starting domain.
==> mon2: Waiting for domain to get an IP address...
==> mon2: Waiting for SSH to become available...
==> mon2: Creating shared folders metadata...
==> mon2: Rsyncing folder:
/home/leseb/reproduce-ci/tmp.zgGC7d5mIC/build/workspace/ceph-ansible/tests/functional/centos/7/docker/
=> /home/vagrant/sync
==> mon2: Machine already provisioned. Run `vagrant provision` or use
the `--provision`
==> mon2: flag to force provisioning. Provisioners marked to run always
will still run.

real    1m31.850s
user    0m7.387s
sys     0m0.796s

Reboot via Ansible: 0m35.112s
Reboot via vagrant: 1m31.850s

We save 1/3 time.

Signed-off-by: Sébastien Han <seb@redhat.com>
2017-10-13 09:04:26 +02:00
Major Hayden c233c874f5
Enable profile_tasks callback plugin
This patch adds the `profile_tasks` callback plugin to the whitelist
so that we can identify the tasks which are taking the longest amount
of time to run.
2017-10-12 11:43:29 -05:00
Sébastien Han e15302c284 tox: decrease sleep to 2min instead of 5.
Signed-off-by: Sébastien Han <seb@redhat.com>
2017-10-09 17:25:44 +02:00
Guillaume Abrioux f0fd3aae79 tests: increase number of threads for testinfra
from 4 to 8 to make testing faster.

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
2017-10-04 16:51:32 +02:00
Sébastien Han 5968cf09b1 ci: add collocation scenario
Signed-off-by: Sébastien Han <seb@redhat.com>
2017-10-04 11:19:12 +02:00
Sébastien Han 18e2ab4d07 test: add handler support
Add idempotency and handler test.

Signed-off-by: Sébastien Han <seb@redhat.com>
2017-10-03 14:44:00 +02:00
Sébastien Han 083c53c6bd ci: run purge cluster on centos not ubuntu
Signed-off-by: Sébastien Han <seb@redhat.com>
2017-09-29 02:38:24 +02:00
Sébastien Han e113d94c9a tests: implement reboot after a deployment
We don't test server reboot, a lot of things can happen after that.
So now, we deploy, reboot then we run testinfra.

Signed-off-by: Sébastien Han <seb@redhat.com>
2017-09-29 02:38:24 +02:00
Sébastien Han 6bac613611 shrink: support for container
We can now shrink mon and osds on containerized deployment.

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1492115
Signed-off-by: Sébastien Han <seb@redhat.com>
2017-09-20 16:25:07 +02:00
Sébastien Han 4f325c7ebe ci: remove scenario bluestore_docker_cluster
We don't need to bootstrap a full cluster to bootstrap bluestore. We
have individual scenarios for that.

Signed-off-by: Sébastien Han <seb@redhat.com>
2017-09-08 19:33:24 +02:00
Sébastien Han e3386b771d Merge pull request #1803 from ceph/disk-auto
ceph-osd: fix autodetection activation
2017-09-07 22:51:40 +02:00
Sébastien Han 3753e6cfa7 ceph-osd: fix autodetection activation
Prior to this patch this activation sequence for autodetection was
always skipped because we were asking to activate on device without
partitions, which doesn't make sense.

We also fix the way we lookup for a device, since the data partition is
always numbered 1, we take the min element of the dict.

Closes: https://github.com/ceph/ceph-ansible/issues/1782
Signed-off-by: Sébastien Han <seb@redhat.com>
Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
2017-09-07 17:47:37 +02:00
Andrew Schoen 6748b5aae4 tests: set ceph_stable_release to luminous for rhcs
Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-09-07 09:46:59 -05:00
Guillaume Abrioux d987d26719 tests: force docker variable for switch-to-containers scenario
we need to force the value of `docker` variable which is initially set
to `false` since it's a migration from non-containerized to
containerized cluster.

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
2017-09-06 18:03:52 +02:00
Sébastien Han b7db600caa switch-from-non-containerized-to-containerized: mask unit files
We must mask the image so we are sure that even if the system reboots
then the OSDs won't start.

Also remove Ceph udev rules if found on the system prior to deploy
containers. If we don't do this we are exposed to conflicts between udev
rules and sytemd unit files.

Also add the CI will now test the migration from a non-containerized cluster to a
containerized cluster.

Signed-off-by: Sébastien Han <seb@redhat.com>
2017-09-05 15:20:31 +02:00
Sébastien Han 5b3ba28607 Merge pull request #1847 from ceph/luminous
ci: test luminous
2017-09-02 00:48:12 +02:00
Sébastien Han ab43588bcf ci: test luminous
Luminous is out so let's test it instead of Kraken.

Signed-off-by: Sébastien Han <seb@redhat.com>
2017-09-01 19:52:54 +02:00
Sébastien Han 298a63c437 shrink mon and osd
Rework shrinking a monitor and an OSD playbook. Also adding test
scenario.

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1366807
Signed-off-by: Sébastien Han <seb@redhat.com>
2017-09-01 19:12:00 +02:00
Sébastien Han ae2fd45994 common: refactor installation method
The installation process is now described as follow:

* you still have to choose a 'ceph_origin' installation method. The
origin can be a 'repository' (add a new repository), distro (it will use
the packages provided by the native repo source of your distribution),
local (only available on redhat system, it installs locally built
packages). This option is not well tested, so use it carefully

* if ceph_origin == 'repository' you will have to decide what kind of
repository you want to enable:
  - community: corresponds to the stable upstream/community version
  - enterprise: corresponds to the stable enterprise/downstream version
    (basically you are a red hat customer)
  - dev: it will install ceph from packages built out of the github
    development branches

Signed-off-by: Sébastien Han <seb@redhat.com>
Co-Authored-by: Guillaume Abrioux <gabrioux@redhat.com>
Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
2017-08-30 10:52:01 +02:00
Andrew Schoen 24107b9b3d tests: always use sitepackages=True
This is mostly important in rhcs testing so that our tests can use
packages installed on the distro.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-08-28 09:59:28 -05:00
Andrew Schoen bed57572cc purge-cluster: adds support for purging lvm osds
This also adds a new testing scenario for purging lvm osds

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-08-23 10:33:35 -05:00
Gregory Meno c4cebdbcc4 change ansible environment to 2.3 release
Signed-off-by: Gregory Meno <gmeno@redhat.com>
Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-08-09 10:52:23 -05:00
Andrew Schoen 661de0f3b0 tests: adds an lvm_osds testing scenario
Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-08-04 06:13:09 -05:00
Sébastien Han 30991b1c0a osd: simplify scenarios
There is only two main scenarios now:

* collocated: everything remains on the same device:
  - data, db, wal for bluestore
  - data and journal for filestore
* non-collocated: dedicated device for some of the component

Signed-off-by: Sébastien Han <seb@redhat.com>
2017-08-03 10:20:39 +02:00
Andrew Schoen 7293c40c40 tests: run all existing tests with shaman repos
If you use the 'dev' factor, the testing scenario will
use repos from shaman.ceph.com. You can define CEPH_DEV_BRANCH
and CEPH_DEV_SHA1 to specify which repo you'd like to test.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-07-17 14:42:32 -05:00
Guillaume Abrioux f16841e09e Tests: rename tests directories
Since we are hitting this bug :

https://bugzilla.redhat.com/show_bug.cgi?id=1324587
eg:

`failed: internal error: Monitor path /var/lib/libvirt/qemu/domain-bs-docker-cl
uster-dmcrypt-journal-collocation_mon0_1499294943_ba9faf7bf296533177f6/monitor.
sock too big for destination`

and we can't upgrade libvirt in our CI for some reason

we need to get the directories name shorter in order to workaround this
issue

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
2017-07-12 15:02:39 +02:00
Guillaume Abrioux 94c3756167 Tests: Add bluestore scenarios
Since we started testing against Luminous, we need to add more scenarios
testing.

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
2017-07-12 15:02:32 +02:00
Alfredo Deza d5ee82d295 testing: add luminous factor for testing
Signed-off-by: Alfredo Deza <adeza@redhat.com>
Co-Authored-by: Guillaume Abrioux <gabrioux@redhat.com>
2017-07-11 22:08:15 +02:00
Guillaume Abrioux 1c8680ef2d Tests: Add bluestore tests
Add two scenarios bluestore_journal_collocation and bluestore_cluster.

Signed-off-by: Sébastien Han <seb@redhat.com>
2017-07-04 19:07:23 +02:00
Andrew Schoen d15e464b81 tests: adds *-update_docker_cluster testing scenarios
Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-06-13 08:56:43 -05:00
Andrew Schoen 22541a9c9a tests: use docker playbook when redeploying a purged cluster
When we purge a containerized cluster we need to use the correct
playbook when redploying the cluster.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-05-31 12:48:51 -05:00
Andrew Schoen ecdb6f4967 tests: adds a scenario for purging containerized clusters
Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-05-25 08:41:36 -05:00
Andrew Schoen 8756c553cc tests: rhcs should set ceph_stable_release to jewel
rhcs is based off of jewel, so we need to set this var in the tests so
that the ceph-mgr role is skipped.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-05-15 09:54:01 -05:00
Ken Dreyer e2300d5b1d tox: bump ansible version to 2.2.3
The Ansible team has released v2.2.3, which fixes two CVEs:

CVE-2017-7481
CVE-2017-7466

https://www.ansible.com/security
2017-05-10 11:38:51 -06:00
Andrew Schoen 52d9fbd3d0 tests: update default of CEPH_STABLE_RELEASE to kraken
Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-05-05 15:51:54 -05:00
Andrew Schoen cf037b5473 tests: use the xenial container for jewel instead of centos7
Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-05-05 09:18:11 -05:00
Andrew Schoen 2fada9bd6b tests: allow for insecure docker registries when testing rhcs
Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-05-02 16:21:48 -05:00
Andrew Schoen e384b24987 tests: switch to using key/value extra-vars instead of json
I continue to have issues with extra-vars as json. The latest issue
being that the ceph_docker_image_tag config option included in the json
was being ignored. I can't find the root cause, by using the key/value
format seems to work.

I've also removed several options here to simply the interface. We can
add those back if they become necessary.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-05-02 13:08:49 -05:00
Andrew Schoen 1fcc3283d8 tests: actually test a jewel container for the jewel-* docker tests
Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-05-01 14:08:55 -05:00
Andrew Schoen 63983fa0b7 tests: remove CEPH_STABLE environment variable
I'm removing this because when we use an 'rhcs' scenario then we attempt
to set CEPH_STABLE=false as an environment variable. The issue with that
is because the value is coming from an environment variable it is always
treated as a string and ansible treats that as a boolean True. I plan to
set the ceph_stable value with our rhcs_setup.yml playbook instead of
relying on ---extra-vars and environment variables.

Related ansible issue: https://github.com/ansible/ansible/issues/17193

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-04-12 07:50:41 -05:00
Andrew Schoen 16e889c30a tests: add docker environment variables to tox.ini
This allows us to control the docker registry, image name and tag name
for the containers.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-04-06 10:29:16 -05:00
Andrew Schoen 4ca0f7fa71 tests: add an alias of cluster for the centos7_cluster scenario
When testing this downstream it makes more sense for this scenario to be
named just 'cluster' because have 'centos7' in the name is misleading.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-04-05 13:36:51 -05:00
Sébastien Han 3c59ed58a5 Merge pull request #1411 from ceph/bump-ansible
tests: bump the version of ansible to 2.2.2
2017-04-05 16:03:20 +02:00
Alfredo Deza 3f6cdbb646 tests: bump the version of ansible to 2.2.2
Signed-off-by: Alfredo Deza <adeza@redhat.com>
2017-04-05 07:38:58 -04:00
Andrew Schoen 1b6b6d6255 tests: run all tests for jewel and kraken
Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-04-03 16:11:55 -05:00
Andrew Schoen 5c34c9ccf1 tests: when testing rhcs default CEPH_STABLE=false
This will keep ceph-ansible from installing the upstream repo file on
the testing nodes.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-03-23 06:42:43 -05:00
Andrew Schoen 66f3f31702 tests: adds a task to download a repo file for nightly rhel7 packages
This is a url to an actual repo file, not a baseurl to use in a repo.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-03-22 16:18:57 -05:00
Andrew Schoen b0caeed682 tests: fix task in rhcs_setup that changes vagrant box to rhel7
Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-03-22 12:38:12 -05:00
Andrew Schoen 28f1f24759 tests: use the rhcs_setup.yml playbook in tox.ini
Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-03-22 10:14:41 -05:00
Andrew Schoen 1fce790128 test: docker dmcrypt tests should use the site.docker.yml playbook
Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-03-22 09:16:06 -05:00
Andrew Schoen 274c76f897 tests: adds a 'rhcs-' prefix to the testing scenarios matrix
This allows for us to have a copy of the existing testing scenarios with
a 'rhcs-' prefix. We can use that in the tox.ini to take actions we need
to properly test Red Hat Ceph Storage.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-03-22 08:49:49 -05:00
Andrew Schoen 2967023ea9 tests: allow setting fetch_directory with an environment variable
Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-03-20 16:22:07 -05:00
Andrew Schoen 000110d2a2 tests: convert extra-vars to use json
This will prevent ansible from misreading any of these values. There
were failures with xenial deployments because the value set for
``ceph_rhcs`` was being treated as a boolean True even though I'd set
the value to false. This is because boolean values passed in with
--extra-vars must use the json format.

The formatting of the json is very important as you need a '\' to escape
the starting and ending json to make tox happy. Also, each line needs to
end with '\' if it's a multi-line command.

Another thing to note is that if you want to use extra vars at the
command line to respond to a vars_prompt it must be in key/value format.
This is why we have a -e and a --extra-vars on the purge and update
tests.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-03-16 14:23:41 -05:00
Andrew Schoen d76b1d9609 tests: change USE_CEPH_RHCS to CEPH_RHCS
Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-03-15 16:37:21 -05:00
Andrew Schoen e3c8f7db4e tests: use CEPH_STABLE to set the value for ceph_stable
When using CEPH_DEV=true you'll need to set CEPH_STABLE=false so that
that an upstream repo file doesn't get created.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-03-15 16:37:21 -05:00
Andrew Schoen b1f5798607 tests: reformat tox.ini for better readability
Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-03-15 16:37:21 -05:00
Andrew Schoen 19a5362868 tests: adds the ability to set the ceph_stable_release value
Use CEPH_STABLE_RELEASE to set the name of the ceph release you plan to
install. When testing an upgrade scenario you'll also need to set
UPGRADE_CEPH_STABLE_RELEASE.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-03-15 16:37:20 -05:00
Andrew Schoen fbe2aca9af tests: add the ability to run tests with shaman repos
To run tests that deploy shaman repos set CEPH_DEV=true and optionally
use CEPH_DEV_BRANCH and CEPH_DEV_SHA1 to define with branch and sha1 to
test. CEPH_DEV_BRANCH defaults to master and CEPH_DEV_SHA1 defaults to
latest.

For example, this would run the journal_collocation test with the latest
build of the master branch:

  CEPH_DEV=true tox -rve ansible2.2-journal_collocation

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-03-15 16:37:20 -05:00
Andrew Schoen 635f204001 tests: use CEPH_ORIGIN to control the value of ceph_origin
For example, the following would run the journal collocation test and
would install ceph from the repos already on the nodes:

  CEPH_ORIGIN=distro tox -rve ansible2.2-journal_collocation

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-03-15 16:37:20 -05:00
Andrew Schoen 1f40347bd2 tests: when running test set USE_RHCS=true to install set ceph_rhcs=true
When invoking the tests if USE_RHCS=true is set then all tests will be
run with ceph_rhcs=True.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-03-15 16:37:20 -05:00
Andrew Schoen 04c113b05f tests: adds an update_cluster testing scenario
This updates the centos 7 cluster scenario from jewel to kraken using
the rolling_update playbook.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-03-09 09:52:26 -06:00
Sébastien Han 7b216aa8e0 ci: add docker-cluster-dmcrypt-journal-collocation scenario
Signed-off-by: Sébastien Han <seb@redhat.com>
2017-02-21 15:56:09 -05:00
Andrew Schoen 36eaca693b tests: enable the docker_dedicated_journal scenario
Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-02-21 15:55:38 -05:00
Andrew Schoen 0cdc6fb79a tests: adds a new ansible2.2-update_dmcrypt scenario
This performs a rolling update on a cluster using dmcrypt dedicated
journals.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-02-21 12:31:27 -06:00
Sébastien Han 549a25c5bc Revert "ci: dummy commit to debug"
This reverts commit ff135a5024.
2017-01-31 09:19:55 +01:00
Sébastien Han ff135a5024 ci: dummy commit to debug
Signed-off-by: Sébastien Han <seb@redhat.com>
2017-01-30 16:12:36 +01:00
Andrew Schoen 2a87c13f17 tests/purge_cluster: setup a xenial cluster instead of centos7
The purge_dmcrypt scenario also tests centos7, so change this one to
xenial so we can have more test coverage.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-01-27 06:12:10 -06:00
Andrew Schoen e05df64fd0 tests: adds purge_cluster and purge_dmcrypt scenarios
This also removes the purge_cluster_collocated scenario as it's not
needed now because of purge_cluster.

Moving all the purge commands into its own section allows for ease of
reuse when creating new purge scenarios.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-01-26 10:41:29 -06:00
Alfredo Deza 6b46da5538 tests: remove the pip install ansible from stable github branch
Signed-off-by: Alfredo Deza <adeza@redhat.com>
2017-01-16 16:19:25 -05:00
Alfredo Deza 1a4886a561 tests: bump ansible testing version to 2.2.1 for the 2.2 environment
Signed-off-by: Alfredo Deza <adeza@redhat.com>
2017-01-16 16:18:55 -05:00
Andrew Schoen 48ac9579b6 tests: copy purge-cluster.yml to root of ceph-ansible
There is an Ansible bug which makes the playbook fail when we are
running a playbook from the non-git root directory. The real problem is
that the ansible.cfg is not honoured and we are including variable from
roles/<role>/defaults/main.yml

The fix is too copy the purge cluster playbook on the git root directory
and execute it.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-01-10 16:56:07 -06:00
Andrew Schoen 6d3a334439 tests: test with the latest ansible stable-2.2 branch from github
Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-01-10 15:27:19 -06:00
Andrew Schoen 0ce18daa49 tests: adds a purge_cluster_collocated scenario
This scenario brings up a 1 mon 1 osd cluster using journal collocation,
purges the cluster and then verifies it can redeploy the cluster.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2017-01-03 15:57:17 -06:00
Andrew Schoen 529d0f4103 tests: preserve newlines in ansible output when testing
Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2016-12-15 12:23:17 -06:00
Andrew Schoen 7c1a45260d tests: run testinfra with --sudo
It needs this so that the modules can use sudo

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2016-12-06 14:56:19 -06:00
Andrew Schoen 465bafc444 tests: run the setup.yml playbook with tox
Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2016-12-06 14:56:19 -06:00
Andrew Schoen 870a4358f0 tests: use testinfra in tox.ini instead of pytest directly
Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2016-12-06 14:56:18 -06:00
Andrew Schoen 155bcf5ae2 tests: rename the directory for centos7_cluster
Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2016-12-01 16:59:27 -06:00
Andrew Schoen 234b2c1cc2 tests: removes unused xenial_conf_tests and xenial_mon_osd scenarios
Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2016-12-01 16:56:06 -06:00
Andrew Schoen da6d68c042 tests: rename the directory for xenial_cluster
Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2016-12-01 16:49:40 -06:00
Andrew Schoen af568b7e62 tests: docker_cluster should use the site-docker.yml playbook
This commits allows for scenarios to pick their own playbook while
defaulting to use site.yml.sample.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2016-12-01 10:28:55 -06:00
Andrew Schoen 11c13ad7c0 tests: adds a docker_cluster scenario
Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2016-12-01 10:28:54 -06:00
Alfredo Deza 10df63dcf9 tests: use underscores to prevent tox combinatorial issues
Signed-off-by: Alfredo Deza <adeza@redhat.com>

Resolves: colocated#tests
2016-11-29 16:08:42 -05:00
Andrew Schoen 138e5a9421 tests: change centos7-cluster to use raw_multi_journal
Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2016-11-28 15:10:07 -06:00
Andrew Schoen eae3463a9e tests: change xenial-cluster to use raw_multi_journal
Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2016-11-28 15:05:48 -06:00
Andrew Schoen a05a1b9b0f testing: change raw-multi-journal to journal-collocation
We want to test journal collocation here because we're gonna switch
xenial-cluster and centos7-cluster to use a dedicated journal.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2016-11-28 15:04:04 -06:00
Andrew Schoen c6e96897ba testing: rename the dmcrypt-dedicated-journal to dmcrypt-journal
We're going to assume all scenarios use a dedicated journal unless
otherwise specified.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2016-11-28 14:58:09 -06:00
Andrew Schoen c212162afb tests: adds a scenario using OSD dmcrypt_journal_collocation
Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2016-11-28 12:03:00 -06:00
Andrew Schoen 9f432bfb05 tests: adds a dmcrypt-dedicated-journal testing scenario
Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2016-11-28 12:02:32 -06:00
Andrew Schoen 20ac2cad9d testing: each scenario should use it's own fetch_directory
Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2016-11-21 17:08:39 -06:00
Andrew Schoen 0570d2911b testing: remove the timeout for the ansible-playbook call
This isn't available on OSX and we'll end up hitting this timeout when
we don't want to, let's just remove it.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2016-11-18 14:15:34 -06:00
Alfredo Deza 2e9d2f872c testing: add a timeout per ansible call to workaround possible gatherkeys issues
Signed-off-by: Alfredo Deza <adeza@redhat.com>
2016-11-17 12:48:25 -05:00
Sébastien Han a10aecea83 ci: bump ansible version to 2.2
ceph-ansible is now fully compliant with ansible 2.2 so bumping the
ansible version to make we test the right things.

Signed-off-by: Sébastien Han <seb@redhat.com>
2016-11-16 16:44:45 +01:00
Andrew Schoen 118834b752 tests: adds comments to tox.ini describing each scenario
Signed-off-by: Andrew Schoen <aschoen@redhat.com>

Resolves: vagrant#boxes
2016-11-10 12:05:23 -06:00
Andrew Schoen 4a2e06cb45 tests: adds the centos7-cluster scenario to tox.ini
Signed-off-by: Andrew Schoen <aschoen@redhat.com>

Resolves: vagrant#boxes
2016-11-10 12:05:23 -06:00
Andrew Schoen c5b3378a18 tests: adds the xenial mon-osd-mds-rgw scenario as xenial-cluster
I tried adding the scenario as xenial-mon-osd-mds-rgw but for
whatever reason tox refused to select that environment. Changing the
name to xenial-cluster fixed that though.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>

Resolves: vagrant#boxes
2016-11-10 12:05:23 -06:00
Andrew Schoen db657ed8e1 tests: provide a way use libvirt with vagrant and tox
This allows for:

tox -- --provider=libvirt

Signed-off-by: Andrew Schoen <aschoen@redhat.com>

Resolves: vagrant#boxes
2016-11-08 17:00:09 -06:00
Andrew Schoen 99fc84276e tests: updates tox to test the new scenarios
This also turns on -vv for ansible and adds an environment for
ansible==1.9.4 testing.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>

Resolves: testing#updates
2016-11-08 12:37:04 -06:00
Andrew Schoen d5a7f3de8f tests: require a group_vars folder in the scenario dir
This will allow for no changes needed in the ansible playbook command
when adding new scenarios. Each scenario will just need a hosts file and
a group_vars directory to define how the cluster should be setup.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2016-11-04 16:35:45 -05:00
Alfredo Deza 8427e5a4a3 tests: make the tox.ini config call the ssh config helper script
Signed-off-by: Alfredo Deza <adeza@redhat.com>

Resolves: pytest#harness
2016-11-04 14:13:30 -04:00
Andrew Schoen e319ccf691 tests: remove the need for a setenv entry per scenario in tox.ini
Signed-off-by: Andrew Schoen <aschoen@redhat.com>

Resolves: pytest#harness
2016-11-04 14:13:30 -04:00
Andrew Schoen 80e955cc40 tests: adds a tox.ini to run the functional tests
This currently tests the initial-members scenario for both ansible 2.1
and ansible 2.2. It assumes a hosts file and vagrant_ssh_config exists
in the scenario directory.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>

Resolves: pytest#harness
2016-11-04 14:13:30 -04:00