Molecule test for resources playbook.
Issue-ID: OOM-1813
Change-Id: I5c070f1ed20bf29b432c91e9de5d861267802b6d
Signed-off-by: Samuli Silvius <s.silvius@partner.samsung.com>
diff --git a/ansible/test/play-resources/molecule/default/cleanup.yml b/ansible/test/play-resources/molecule/default/cleanup.yml
new file mode 100644
index 0000000..e0c0b62
--- /dev/null
+++ b/ansible/test/play-resources/molecule/default/cleanup.yml
@@ -0,0 +1,23 @@
+---
+- name: Cleanup data from instance (doing it from hosts requires root access).
+ hosts: resources
+ gather_facts: false
+ ignore_unreachable: true
+ pre_tasks:
+ - name: Find files and dirs to delete
+ find:
+ paths: /data/ # Only deleting content not dir itself as we get "Device or resource busy" error as it's mounted to container doing the deletion
+ patterns: "*"
+ recurse: true
+ file_type: any
+ register: files_to_delete
+ - name: Make file/dir path list
+ set_fact:
+ to_delete_paths: "{{ to_delete_paths | default([]) + [item.path] }}"
+ loop: "{{ files_to_delete.files }}"
+ when: files_to_delete.files is defined
+ roles:
+ - role: cleanup-directories
+ vars:
+ directories_files_list_to_remove: "{{ to_delete_paths }}"
+ when: to_delete_paths is defined
diff --git a/ansible/test/play-resources/molecule/default/group_vars/all.yml b/ansible/test/play-resources/molecule/default/group_vars/all.yml
new file mode 100644
index 0000000..558eacb
--- /dev/null
+++ b/ansible/test/play-resources/molecule/default/group_vars/all.yml
@@ -0,0 +1,7 @@
+---
+app_data_path: /opt/myleculeapp
+aux_data_path: "{{ app_data_path }}/runtime_images_source_dir"
+resources_dir: /data
+resources_filename: resources_package.tar
+aux_resources_filename: aux_resources_package.tar
+ansible_ssh_private_key_file: ~/.ssh/offline_ssh_key
diff --git a/ansible/test/play-resources/molecule/default/molecule.yml b/ansible/test/play-resources/molecule/default/molecule.yml
new file mode 100644
index 0000000..9ac1aac
--- /dev/null
+++ b/ansible/test/play-resources/molecule/default/molecule.yml
@@ -0,0 +1,41 @@
+---
+dependency:
+ name: galaxy
+driver:
+ name: docker
+lint:
+ name: yamllint
+platforms:
+ - name: resource-host
+ image: molecule-${PREBUILD_PLATFORM_DISTRO:-centos}:${PREBUILD_DISTRO_VERSION:-centos7.6}
+ pre_build_image: true
+ privileged: true
+ override_command: false
+ volumes:
+ - /sys/fs/cgroup:/sys/fs/cgroup:ro
+ groups:
+ - resources
+ networks:
+ - name: resource-data
+
+ - name: infrastructure-server
+ image: molecule-${PREBUILD_PLATFORM_DISTRO:-centos}:${PREBUILD_DISTRO_VERSION:-centos7.6}
+ pre_build_image: true
+ privileged: true
+ override_command: false
+ volumes:
+ - /sys/fs/cgroup:/sys/fs/cgroup:ro
+ groups:
+ - infrastructure
+ networks:
+ - name: resource-data
+provisioner:
+ name: ansible
+ env:
+ ANSIBLE_ROLES_PATH: ../../../../roles:../../../roles
+ lint:
+ name: ansible-lint
+verifier:
+ name: testinfra
+ lint:
+ name: flake8
diff --git a/ansible/test/play-resources/molecule/default/playbook.yml b/ansible/test/play-resources/molecule/default/playbook.yml
new file mode 100644
index 0000000..50ba233
--- /dev/null
+++ b/ansible/test/play-resources/molecule/default/playbook.yml
@@ -0,0 +1,6 @@
+---
+- name: Test resource transfer with ssh
+ hosts: all
+ roles:
+ - setup
+ - resource-data
diff --git a/ansible/test/play-resources/molecule/default/prepare.yml b/ansible/test/play-resources/molecule/default/prepare.yml
new file mode 100644
index 0000000..a443600
--- /dev/null
+++ b/ansible/test/play-resources/molecule/default/prepare.yml
@@ -0,0 +1,5 @@
+---
+- name: Prepare resource-data
+ hosts: all
+ roles:
+ - prepare-resource-data
diff --git a/ansible/test/play-resources/molecule/nfs/molecule.yml b/ansible/test/play-resources/molecule/nfs/molecule.yml
new file mode 100644
index 0000000..ffaabb0
--- /dev/null
+++ b/ansible/test/play-resources/molecule/nfs/molecule.yml
@@ -0,0 +1,47 @@
+---
+dependency:
+ name: galaxy
+driver:
+ name: docker
+lint:
+ name: yamllint
+platforms:
+ - name: resource-host
+ image: molecule-${PREBUILD_PLATFORM_DISTRO:-centos}:${PREBUILD_DISTRO_VERSION:-centos7.6}
+ pre_build_image: true
+ privileged: true
+ override_command: false
+ volumes:
+ - /sys/fs/cgroup:/sys/fs/cgroup:ro
+ - ${HOME}/data:/data:rw # mount fs from host to get nfs exportfs task working
+ groups:
+ - resources
+ networks:
+ - name: resource-data
+
+ - name: infrastructure-server
+ image: molecule-${PREBUILD_PLATFORM_DISTRO:-centos}:${PREBUILD_DISTRO_VERSION:-centos7.6}
+ pre_build_image: true
+ privileged: true
+ override_command: false
+ volumes:
+ - /sys/fs/cgroup:/sys/fs/cgroup:ro
+ groups:
+ - infrastructure
+ networks:
+ - name: resource-data
+provisioner:
+ name: ansible
+ playbooks:
+ cleanup: ../default/cleanup.yml
+ env:
+ ANSIBLE_ROLES_PATH: ../../../../roles:../../../roles
+ inventory:
+ links:
+ group_vars: ../default/group_vars
+ lint:
+ name: ansible-lint
+verifier:
+ name: testinfra
+ lint:
+ name: flake8
diff --git a/ansible/test/play-resources/molecule/nfs/playbook.yml b/ansible/test/play-resources/molecule/nfs/playbook.yml
new file mode 100644
index 0000000..8844011
--- /dev/null
+++ b/ansible/test/play-resources/molecule/nfs/playbook.yml
@@ -0,0 +1,8 @@
+---
+- name: Test resource transfer with nfs
+ hosts: all
+ roles:
+ - setup
+ - role: resource-data
+ vars:
+ resources_on_nfs: true
diff --git a/ansible/test/play-resources/molecule/nfs/prepare.yml b/ansible/test/play-resources/molecule/nfs/prepare.yml
new file mode 100644
index 0000000..d381ba7
--- /dev/null
+++ b/ansible/test/play-resources/molecule/nfs/prepare.yml
@@ -0,0 +1,7 @@
+---
+- name: Prepare resource-data
+ hosts: all
+ roles:
+ - role: prepare-resource-data
+ vars:
+ resources_on_nfs: true