From: Andrew Schoen Date: Wed, 30 Nov 2016 18:20:07 +0000 (-0600) Subject: tests: adds a docker_cluster scenario X-Git-Tag: v2.1.0~32^2~13 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=11c13ad7c0ef22237931ae94c6fbf7746d56cef4;p=ceph-ansible.git tests: adds a docker_cluster scenario Signed-off-by: Andrew Schoen --- diff --git a/tests/functional/centos/7/docker-cluster/Vagrantfile b/tests/functional/centos/7/docker-cluster/Vagrantfile new file mode 120000 index 000000000..dfd7436c9 --- /dev/null +++ b/tests/functional/centos/7/docker-cluster/Vagrantfile @@ -0,0 +1 @@ +../../../../../Vagrantfile \ No newline at end of file diff --git a/tests/functional/centos/7/docker-cluster/group_vars/all b/tests/functional/centos/7/docker-cluster/group_vars/all new file mode 100644 index 000000000..e256b09ab --- /dev/null +++ b/tests/functional/centos/7/docker-cluster/group_vars/all @@ -0,0 +1,21 @@ +--- + +ceph_stable: True +mon_containerized_deployment: True +osd_containerized_deployment: True +mds_containerized_deployment: True +rgw_containerized_deployment: True +ceph_mon_docker_interface: enp0s8 +ceph_mon_docker_subnet: "192.168.15.0/24" +ceph_osd_docker_extra_env: "CEPH_DAEMON=OSD_CEPH_DISK_ACTIVATE,OSD_JOURNAL_SIZE=100" +ceph_docker_on_openstack: False +public_network: "192.168.15.0/24" +cluster_network: "192.168.16.0/24" +journal_size: 100 +ceph_rgw_civetweb_port: 8080 +ceph_osd_docker_devices: + - '/dev/sda' + - '/dev/sdb' +os_tuning_params: + - { name: kernel.pid_max, value: 4194303 } + - { name: fs.file-max, value: 26234859 } diff --git a/tests/functional/centos/7/docker-cluster/group_vars/osds b/tests/functional/centos/7/docker-cluster/group_vars/osds new file mode 100644 index 000000000..ed9b23ad1 --- /dev/null +++ b/tests/functional/centos/7/docker-cluster/group_vars/osds @@ -0,0 +1,4 @@ +--- +os_tuning_params: + - { name: kernel.pid_max, value: 4194303 } + - { name: fs.file-max, value: 26234859 } diff --git a/tests/functional/centos/7/docker-cluster/hosts b/tests/functional/centos/7/docker-cluster/hosts new file mode 100644 index 000000000..3b0be9641 --- /dev/null +++ b/tests/functional/centos/7/docker-cluster/hosts @@ -0,0 +1,11 @@ +[mons] +mon0 + +[osds] +osd0 + +[mdss] +mds0 + +[rgws] +rgw0 diff --git a/tests/functional/centos/7/docker-cluster/scenario.py b/tests/functional/centos/7/docker-cluster/scenario.py new file mode 100644 index 000000000..4597b589f --- /dev/null +++ b/tests/functional/centos/7/docker-cluster/scenario.py @@ -0,0 +1,27 @@ +# Basic information about ceph and its configuration +ceph = { + 'releases': ['infernalis', 'jewel'], + 'cluster_name': 'ceph' +} + +# remote nodes to test, with anything specific to them that might be useful for +# tests to get. Each one of these can get requested as a py.test fixture to +# validate information. +nodes = { + 'mon0': { + 'username': 'vagrant', + 'components': ['mon', 'mon_initial_members'] + }, + 'osd0': { + 'username': 'vagrant', + 'components': [] + }, + 'mds0': { + 'username': 'vagrant', + 'components': [] + }, + 'rgw0': { + 'username': 'vagrant', + 'components': [] + }, +} diff --git a/tests/functional/centos/7/docker-cluster/vagrant_variables.yml b/tests/functional/centos/7/docker-cluster/vagrant_variables.yml new file mode 100644 index 000000000..ce6530507 --- /dev/null +++ b/tests/functional/centos/7/docker-cluster/vagrant_variables.yml @@ -0,0 +1,69 @@ +--- + +# DEPLOY CONTAINERIZED DAEMONS +docker: True + +# DEFINE THE NUMBER OF VMS TO RUN +mon_vms: 1 +osd_vms: 1 +mds_vms: 1 +rgw_vms: 1 +nfs_vms: 0 +rbd_mirror_vms: 0 +client_vms: 0 +iscsi_gw_vms: 0 + +# Deploy RESTAPI on each of the Monitors +restapi: true + +# INSTALL SOURCE OF CEPH +# valid values are 'stable' and 'dev' +ceph_install_source: stable + +# SUBNETS TO USE FOR THE VMS +public_subnet: 192.168.15 +cluster_subnet: 192.168.16 + +# MEMORY +# set 1024 for CentOS +memory: 1024 + +# Disks +# For libvirt use disks: "[ '/dev/vdb', '/dev/vdc' ]" +# For CentOS7 use disks: "[ '/dev/sda', '/dev/sdb' ]" +disks: "[ '/dev/sda', '/dev/sdb' ]" + +# VAGRANT BOX +# Ceph boxes are *strongly* suggested. They are under better control and will +# not get updated frequently unless required for build systems. These are (for +# now): +# +# * ceph/ubuntu-xenial +# +# Ubuntu: ceph/ubuntu-xenial bento/ubuntu-16.04 or ubuntu/trusty64 or ubuntu/wily64 +# CentOS: bento/centos-7.1 or puppetlabs/centos-7.0-64-puppet +# libvirt CentOS: centos/7 +# parallels Ubuntu: parallels/ubuntu-14.04 +# Debian: deb/jessie-amd64 - be careful the storage controller is named 'SATA Controller' +# For more boxes have a look at: +# - https://atlas.hashicorp.com/boxes/search?utf8=✓&sort=&provider=virtualbox&q= +# - https://download.gluster.org/pub/gluster/purpleidea/vagrant/ +vagrant_box: centos/atomic-host +#ssh_private_key_path: "~/.ssh/id_rsa" +# The sync directory changes based on vagrant box +# Set to /home/vagrant/sync for Centos/7, /home/{ user }/vagrant for openstack and defaults to /vagrant +#vagrant_sync_dir: /home/vagrant/sync +#vagrant_sync_dir: / +# Disables synced folder creation. Not needed for testing, will skip mounting +# the vagrant directory on the remote box regardless of the provider. +vagrant_disable_synced_folder: true +# VAGRANT URL +# This is a URL to download an image from an alternate location. vagrant_box +# above should be set to the filename of the image. +# Fedora virtualbox: https://download.fedoraproject.org/pub/fedora/linux/releases/22/Cloud/x86_64/Images/Fedora-Cloud-Base-Vagrant-22-20150521.x86_64.vagrant-virtualbox.box +# Fedora libvirt: https://download.fedoraproject.org/pub/fedora/linux/releases/22/Cloud/x86_64/Images/Fedora-Cloud-Base-Vagrant-22-20150521.x86_64.vagrant-libvirt.box +# vagrant_box_url: https://download.fedoraproject.org/pub/fedora/linux/releases/22/Cloud/x86_64/Images/Fedora-Cloud-Base-Vagrant-22-20150521.x86_64.vagrant-virtualbox.box + +os_tuning_params: + - { name: kernel.pid_max, value: 4194303 } + - { name: fs.file-max, value: 26234859 } diff --git a/tox.ini b/tox.ini index b163734c8..e30dbd61d 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = {ansible2.2}-{xenial_conf_tests,xenial_mon_osd,xenial_cluster,journal_collocation,centos7_cluster,dmcrypt_journal,dmcrypt_journal_collocation} +envlist = {ansible2.2}-{xenial_conf_tests,xenial_mon_osd,xenial_cluster,journal_collocation,centos7_cluster,dmcrypt_journal,dmcrypt_journal_collocation,docker_cluster} skipsdist = True [testenv] @@ -30,6 +30,8 @@ changedir= dmcrypt_journal_collocation: {toxinidir}/tests/functional/centos/7/dmcrypt-journal-collocation # tests a 1 mon, 1 osd, 1 mds and 1 rgw centos7 cluster using raw_multi_journal OSD scenario centos7_cluster: {toxinidir}/tests/functional/centos/7/mon-osd-mds-rgw + # tests a 1 mon, 1 osd, 1 mds and 1 rgw centos7 cluster using docker + docker_cluster: {toxinidir}/tests/functional/centos/7/docker-cluster commands= vagrant up --no-provision {posargs:--provider=virtualbox} bash {toxinidir}/tests/scripts/generate_ssh_config.sh {changedir}