Molecule tests for rancher role
Issue-ID: OOM-1775
Change-Id: I6ea11db932cd77e03909e4c72acc4b92a544eb4b
Signed-off-by: Samuli Silvius <s.silvius@partner.samsung.com>
diff --git a/ansible/roles/rancher/molecule/default/cleanup.yml b/ansible/roles/rancher/molecule/default/cleanup.yml
new file mode 100644
index 0000000..13b4827
--- /dev/null
+++ b/ansible/roles/rancher/molecule/default/cleanup.yml
@@ -0,0 +1,14 @@
+---
+- name: Cleanup host
+ hosts: localhost
+ roles:
+ - role: cleanup-containers
+ vars:
+ container_list:
+ - rancher-agent
+ - rancher-server
+ # For some reason getting error "Device busy error" when trying to delete directory with root privileges and rancher-containers not anymore running.
+ # - role: cleanup-directories
+ # vars:
+ # directories_files_list_to_remove:
+ # - /var/lib/rancher/
diff --git a/ansible/roles/rancher/molecule/default/group_vars/all.yml b/ansible/roles/rancher/molecule/default/group_vars/all.yml
new file mode 100644
index 0000000..107377c
--- /dev/null
+++ b/ansible/roles/rancher/molecule/default/group_vars/all.yml
@@ -0,0 +1,2 @@
+---
+app_name: molecule-test-app
diff --git a/ansible/roles/rancher/molecule/default/molecule.yml b/ansible/roles/rancher/molecule/default/molecule.yml
new file mode 100644
index 0000000..e6152d5
--- /dev/null
+++ b/ansible/roles/rancher/molecule/default/molecule.yml
@@ -0,0 +1,91 @@
+---
+dependency:
+ name: galaxy
+driver:
+ name: docker
+lint:
+ name: yamllint
+platforms:
+ - name: infrastructure-server
+ image: molecule-${PREBUILD_PLATFORM_DISTRO:-centos}:${PREBUILD_DISTRO_VERSION:-centos7.6}
+ pre_build_image: true
+ privileged: true
+ override_command: false
+ restart_policy: unless-stopped
+ env:
+ container: docker
+ volumes:
+ - /var/run/docker.sock:/var/run/docker.sock
+ - /var/lib/rancher:/var/lib/rancher:ro
+ groups:
+ - infrastructure
+ networks:
+ - name: rancher
+
+ - name: kubernetes-node-1
+ image: molecule-${PREBUILD_PLATFORM_DISTRO:-centos}:${PREBUILD_DISTRO_VERSION:-centos7.6}
+ pre_build_image: true
+ privileged: true
+ override_command: false
+ restart_policy: unless-stopped
+ env:
+ container: docker
+ volumes:
+ - /var/run/docker.sock:/var/run/docker.sock
+ - /var/lib/rancher:/var/lib/rancher:ro
+ groups:
+ - kubernetes
+ networks:
+ - name: rancher
+
+provisioner:
+ name: ansible
+ env:
+ ANSIBLE_ROLES_PATH: ../../../../test/roles
+ ANSIBLE_LIBRARY: ../../../../library
+ inventory:
+ links:
+ group_vars: ../../../../group_vars
+ # 1) When running with molecule-dev container, use this definition and comment out localhost under host_vars (2)
+ hosts:
+ all:
+ hosts:
+ localhost:
+ ansible_connection: ssh
+ ansible_host: ${LOCALHOST_ANSIBLE_HOST:-""}
+ ansible_user: ${LOCALHOST_ANSIBLE_USER:-""}
+ ansible_password: ${LOCALHOST_ANSIBLE_PASSWORD:-""}
+ ansible_sudo_pass: ${LOCALHOST_ANSIBLE_SUDO_PASS:-""}
+ # end of 1)
+ # 2) When running with native molecule installation, use this definition and comment out hosts section under inventory (1)
+ # host_vars:
+ # localhost:
+ # ansible_sudo_pass: ${LOCALHOST_ANSIBLE_SUDO_PASS:-""}
+ # ansible_ssh_pass: ${LOCALHOST_ANSIBLE_PASSWORD:-""}
+ # End of 2)
+ lint:
+ name: ansible-lint
+scenario:
+ name: default
+ test_sequence:
+ - lint
+ - cleanup
+ - destroy
+ - dependency
+ - syntax
+ - create
+ - prepare
+ - converge
+ # - idempotence
+ # --> Action: 'idempotence'
+ # ERROR: Idempotence test failed because of the following tasks:
+ # * [infrastructure-server] => rancher : Create rancher kubernetes environment
+ # * [kubernetes-node-1] => rancher : Add Rancher Agent
+ - side_effect
+ - verify
+ - cleanup
+ - destroy
+verifier:
+ name: testinfra
+ lint:
+ name: flake8
diff --git a/ansible/roles/rancher/molecule/default/playbook.yml b/ansible/roles/rancher/molecule/default/playbook.yml
new file mode 100644
index 0000000..e0ef086
--- /dev/null
+++ b/ansible/roles/rancher/molecule/default/playbook.yml
@@ -0,0 +1,28 @@
+---
+- name: Converge rancher master
+ hosts: infrastructure
+ roles:
+ - prepare-common # molecule specific role needed here to populate cluster_ip
+ - role: rancher
+ vars:
+ mode: server
+ rancher_server_url: "http://{{ cluster_ip }}:8080"
+
+- name: Converge rancher agent
+ hosts: kubernetes
+ roles:
+ - role: rancher
+ vars:
+ mode: agent
+
+- name: Wait for Kubernetes environment to be healthy
+ hosts: infrastructure
+ roles:
+ - role: rancher
+ vars:
+ mode: health
+ rancher_server_url: "http://{{ cluster_ip }}:8080"
+ # Do not get rancher cluster healthy in this env (to be checked),
+ # but it's enough in molecule test to verify we get this unhealthy response
+ rancher_cluster_health_state: unhealthy
+ rancher_cluster_health_check_retries: 40
diff --git a/ansible/roles/rancher/molecule/default/prepare.yml b/ansible/roles/rancher/molecule/default/prepare.yml
new file mode 100644
index 0000000..90159c6
--- /dev/null
+++ b/ansible/roles/rancher/molecule/default/prepare.yml
@@ -0,0 +1,5 @@
+---
+- name: Prepare kube nodes
+ hosts: kubernetes
+ roles:
+ - prepare-docker