]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
tests: add a docker2podman scenario
authorGuillaume Abrioux <gabrioux@redhat.com>
Fri, 10 Jan 2020 13:31:42 +0000 (14:31 +0100)
committerDimitri Savineau <savineau.dimitri@gmail.com>
Fri, 10 Jan 2020 15:21:29 +0000 (10:21 -0500)
This commit adds a new scenario in order to test docker-to-podman.yml
migration playbook.

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
tests/functional/docker2podman/Vagrantfile [new symlink]
tests/functional/docker2podman/ceph-override.json [new file with mode: 0644]
tests/functional/docker2podman/group_vars/all [new file with mode: 0644]
tests/functional/docker2podman/group_vars/clients [new file with mode: 0644]
tests/functional/docker2podman/group_vars/iscsigws [new file with mode: 0644]
tests/functional/docker2podman/group_vars/mons [new file with mode: 0644]
tests/functional/docker2podman/group_vars/osds [new file with mode: 0644]
tests/functional/docker2podman/group_vars/rgws [new file with mode: 0644]
tests/functional/docker2podman/hosts [new file with mode: 0644]
tests/functional/docker2podman/vagrant_variables.yml [new file with mode: 0644]
tox-docker2podman.ini [new file with mode: 0644]

diff --git a/tests/functional/docker2podman/Vagrantfile b/tests/functional/docker2podman/Vagrantfile
new file mode 120000 (symlink)
index 0000000..706a5bb
--- /dev/null
@@ -0,0 +1 @@
+../../../Vagrantfile
\ No newline at end of file
diff --git a/tests/functional/docker2podman/ceph-override.json b/tests/functional/docker2podman/ceph-override.json
new file mode 100644 (file)
index 0000000..e3a1865
--- /dev/null
@@ -0,0 +1,36 @@
+{
+  "ceph_conf_overrides": {
+    "global": {
+      "osd_pool_default_pg_num": 12,
+      "osd_pool_default_size": 1,
+      "mon_warn_on_pool_no_redundancy": false
+    }
+  },
+  "cephfs_pools": [
+    {
+      "name": "cephfs_data",
+      "pg_num": 8,
+      "pgp_num": 8,
+      "rule_name": "replicated_rule",
+      "type": 1,
+      "erasure_profile": "",
+      "expected_num_objects": "",
+      "application": "cephfs",
+      "size": 3,
+      "min_size": 0
+    },
+    {
+      "name": "cephfs_metadata",
+      "pg_num": 8,
+      "pgp_num": 8,
+      "rule_name": "replicated_rule",
+      "type": 1,
+      "erasure_profile": "",
+      "expected_num_objects": "",
+      "application": "cephfs",
+      "size": 3,
+      "min_size": 0
+    }
+  ],
+  "ceph_mon_docker_memory_limit": "2g"
+}
diff --git a/tests/functional/docker2podman/group_vars/all b/tests/functional/docker2podman/group_vars/all
new file mode 100644 (file)
index 0000000..cfe60bf
--- /dev/null
@@ -0,0 +1,42 @@
+---
+# this is only here to let the CI tests know
+# that this scenario is using docker
+docker: True
+
+containerized_deployment: True
+monitor_interface: "{{ 'eth1' if ansible_distribution == 'CentOS' else 'ens6' }}"
+radosgw_interface: "{{ 'eth1' if ansible_distribution == 'CentOS' else 'ens6' }}"
+ceph_mon_docker_subnet: "{{ public_network }}"
+ceph_docker_on_openstack: False
+public_network: "192.168.58.0/24"
+cluster_network: "192.168.59.0/24"
+rgw_override_bucket_index_max_shards: 16
+rgw_bucket_default_quota_max_objects: 1638400
+ceph_conf_overrides:
+  global:
+    mon_warn_on_pool_no_redundancy: false
+    osd_pool_default_size: 1
+openstack_config: False
+openstack_glance_pool:
+  name: "images"
+  pg_num: "{{ osd_pool_default_pg_num }}"
+  pgp_num: "{{ osd_pool_default_pg_num }}"
+  rule_name: "HDD"
+  type: 1
+  erasure_profile: ""
+  expected_num_objects: ""
+  size: 1
+openstack_cinder_pool:
+  name: "volumes"
+  pg_num: "{{ osd_pool_default_pg_num }}"
+  pgp_num: "{{ osd_pool_default_pg_num }}"
+  rule_name: "HDD"
+  type: 1
+  erasure_profile: ""
+  expected_num_objects: ""
+  size: 1
+openstack_pools:
+  - "{{ openstack_glance_pool }}"
+  - "{{ openstack_cinder_pool }}"
+handler_health_mon_check_delay: 10
+handler_health_osd_check_delay: 10
diff --git a/tests/functional/docker2podman/group_vars/clients b/tests/functional/docker2podman/group_vars/clients
new file mode 100644 (file)
index 0000000..a8ea366
--- /dev/null
@@ -0,0 +1,22 @@
+---
+user_config: True
+copy_admin_key: True
+test:
+  name: "test"
+  pg_num: "{{ osd_pool_default_pg_num }}"
+  pgp_num: "{{ osd_pool_default_pg_num }}"
+  rule_name: "HDD"
+  type: 1
+  erasure_profile: ""
+  expected_num_objects: ""
+test2:
+  name: "test2"
+  pg_num: "{{ osd_pool_default_pg_num }}"
+  pgp_num: "{{ osd_pool_default_pg_num }}"
+  rule_name: "HDD"
+  type: 1
+  erasure_profile: ""
+  expected_num_objects: ""
+pools:
+  - "{{ test }}"
+  - "{{ test2 }}"
diff --git a/tests/functional/docker2podman/group_vars/iscsigws b/tests/functional/docker2podman/group_vars/iscsigws
new file mode 100644 (file)
index 0000000..8d0932a
--- /dev/null
@@ -0,0 +1,2 @@
+---
+generate_crt: True
diff --git a/tests/functional/docker2podman/group_vars/mons b/tests/functional/docker2podman/group_vars/mons
new file mode 100644 (file)
index 0000000..f7f3792
--- /dev/null
@@ -0,0 +1,11 @@
+---
+create_crush_tree: False
+crush_rule_config: False
+crush_rule_hdd:
+  name: HDD
+  root: default
+  type: host
+  class: hdd
+  default: true
+crush_rules:
+  - "{{ crush_rule_hdd }}"
diff --git a/tests/functional/docker2podman/group_vars/osds b/tests/functional/docker2podman/group_vars/osds
new file mode 100644 (file)
index 0000000..9cea91d
--- /dev/null
@@ -0,0 +1,10 @@
+---
+ceph_osd_docker_run_script_path: /var/tmp
+osd_objectstore: "bluestore"
+lvm_volumes:
+  - data: data-lv1
+    data_vg: test_group
+  - data: data-lv2
+    data_vg: test_group
+    db: journal1
+    db_vg: journals
\ No newline at end of file
diff --git a/tests/functional/docker2podman/group_vars/rgws b/tests/functional/docker2podman/group_vars/rgws
new file mode 100644 (file)
index 0000000..18a2be6
--- /dev/null
@@ -0,0 +1,7 @@
+---
+copy_admin_key: True
+rgw_create_pools:
+  foo:
+    pg_num: 16
+  bar:
+    pg_num: 16
diff --git a/tests/functional/docker2podman/hosts b/tests/functional/docker2podman/hosts
new file mode 100644 (file)
index 0000000..60e953a
--- /dev/null
@@ -0,0 +1,14 @@
+[mons]
+mon0
+
+[osds]
+osd0
+
+[grafana-server]
+mon0
+
+[mgrs]
+mon0
+
+#[all:vars]
+#ansible_python_interpreter=/usr/bin/python3
\ No newline at end of file
diff --git a/tests/functional/docker2podman/vagrant_variables.yml b/tests/functional/docker2podman/vagrant_variables.yml
new file mode 100644 (file)
index 0000000..6d6042f
--- /dev/null
@@ -0,0 +1,33 @@
+---
+
+# DEPLOY CONTAINERIZED DAEMONS
+docker: True
+
+# DEFINE THE NUMBER OF VMS TO RUN
+mon_vms: 1
+osd_vms: 1
+mds_vms: 0
+rgw_vms: 0
+nfs_vms: 0
+grafana_server_vms: 0
+rbd_mirror_vms: 0
+client_vms: 0
+iscsi_gw_vms: 0
+mgr_vms: 0
+
+# SUBNETS TO USE FOR THE VMS
+public_subnet: 192.168.58
+cluster_subnet: 192.168.59
+
+# MEMORY
+# set 1024 for CentOS
+memory: 2048
+
+vagrant_box: centos/7
+# 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: /vagrant
+# 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
diff --git a/tox-docker2podman.ini b/tox-docker2podman.ini
new file mode 100644 (file)
index 0000000..b9b5678
--- /dev/null
@@ -0,0 +1,51 @@
+[tox]
+envlist = centos-container-docker_to_podman
+
+skipsdist = True
+
+[testenv]
+whitelist_externals =
+    vagrant
+    bash
+    pip
+    sleep
+    rm
+passenv=*
+sitepackages=True
+setenv=
+  ANSIBLE_SSH_ARGS = -F {changedir}/vagrant_ssh_config -o ControlMaster=auto -o ControlPersist=600s -o PreferredAuthentications=publickey
+  ANSIBLE_CONFIG = {toxinidir}/ansible.cfg
+  ANSIBLE_CALLBACK_WHITELIST = profile_tasks
+  ANSIBLE_KEEP_REMOTE_FILES = 1
+  ANSIBLE_CACHE_PLUGIN = memory
+  ANSIBLE_GATHERING = implicit
+  # only available for ansible >= 2.5
+  ANSIBLE_STDOUT_CALLBACK = yaml
+  # Set the vagrant box image to use
+  CEPH_ANSIBLE_VAGRANT_BOX = centos/7
+
+deps= -r{toxinidir}/tests/requirements.txt
+changedir= {toxinidir}/tests/functional/docker2podman
+
+commands=
+  bash {toxinidir}/tests/scripts/vagrant_up.sh --no-provision {posargs:--provider=virtualbox}
+  bash {toxinidir}/tests/scripts/generate_ssh_config.sh {changedir}
+
+  # configure lvm
+  ansible-playbook -vv -i {changedir}/hosts {toxinidir}/tests/functional/lvm_setup.yml
+
+  ansible-playbook -vv -i {changedir}/hosts {toxinidir}/tests/functional/setup.yml
+
+  ansible-playbook -vv -i {changedir}/hosts {toxinidir}/site-container.yml.sample --extra-vars "\
+      delegate_facts_host={env:DELEGATE_FACTS_HOST:True} \
+      fetch_directory={env:FETCH_DIRECTORY:{changedir}/fetch} \
+      ceph_docker_registry={env:CEPH_DOCKER_REGISTRY:docker.io} \
+      ceph_docker_image={env:CEPH_DOCKER_IMAGE:ceph/daemon} \
+      ceph_docker_image_tag={env:CEPH_DOCKER_IMAGE_TAG:latest-nautilus} \
+  "
+
+  ansible-playbook -vv -i {changedir}/hosts {toxinidir}/infrastructure-playbooks/docker-to-podman.yml
+
+  py.test --reruns 5 --reruns-delay 1 -n 8 --durations=0 --sudo -v --connection=ansible --ansible-inventory={changedir}/hosts --ssh-config={changedir}/vagrant_ssh_config {toxinidir}/tests/functional/tests
+
+  vagrant destroy -f