[MOLECULE] Configure and write tests for application-overrides role 51/127251/4
authorOstap Batih <o.batih@samsung.com>
Wed, 23 Feb 2022 11:16:06 +0000 (11:16 +0000)
committerBartek Grzybowski <b.grzybowski@partner.samsung.com>
Wed, 16 Mar 2022 10:10:33 +0000 (10:10 +0000)
    * configured molecule for application-override role for centos and ubuntu
    * wrote testinfra test for role

Issue-ID: OOM-2889
Signed-off-by: Ostap Batih <o.batih@samsung.com>
Change-Id: Iff17b0b9439f3fcb52eb6c4f3829f0c65b55c1a3

ansible/roles/application-override/.yamllint [new file with mode: 0644]
ansible/roles/application-override/molecule/default/cleanup.yml [new file with mode: 0644]
ansible/roles/application-override/molecule/default/converge.yml [new file with mode: 0644]
ansible/roles/application-override/molecule/default/molecule.yml [new file with mode: 0644]
ansible/roles/application-override/molecule/default/prepare.yml [new file with mode: 0644]
ansible/roles/application-override/molecule/default/tests/test_default.py [new file with mode: 0644]
ansible/roles/application-override/molecule/ubuntu/molecule.yml [new file with mode: 0644]
ansible/roles/application-override/tasks/main.yml
ansible/test/roles/cleanup-application-override/tasks/main.yml [new file with mode: 0644]
ansible/test/roles/prepare-application-override/tasks/main.yml [new file with mode: 0644]

diff --git a/ansible/roles/application-override/.yamllint b/ansible/roles/application-override/.yamllint
new file mode 100644 (file)
index 0000000..c5ae64b
--- /dev/null
@@ -0,0 +1,12 @@
+---
+extends: default
+
+rules:
+  braces:
+    max-spaces-inside: 1
+    level: error
+  brackets:
+    max-spaces-inside: 1
+    level: error
+  line-length: disable
+  truthy: disable
diff --git a/ansible/roles/application-override/molecule/default/cleanup.yml b/ansible/roles/application-override/molecule/default/cleanup.yml
new file mode 100644 (file)
index 0000000..6a0dbf4
--- /dev/null
@@ -0,0 +1,6 @@
+---
+- name: Cleanup infra
+  hosts: all
+  ignore_unreachable: true
+  roles:
+    - cleanup-application-override
diff --git a/ansible/roles/application-override/molecule/default/converge.yml b/ansible/roles/application-override/molecule/default/converge.yml
new file mode 100644 (file)
index 0000000..9f5eb23
--- /dev/null
@@ -0,0 +1,7 @@
+---
+- name: Converge
+  hosts: all
+  tasks:
+    - name: "Include application-override"
+      include_role:
+        name: "application-override"
diff --git a/ansible/roles/application-override/molecule/default/molecule.yml b/ansible/roles/application-override/molecule/default/molecule.yml
new file mode 100644 (file)
index 0000000..d80e2f1
--- /dev/null
@@ -0,0 +1,23 @@
+---
+dependency:
+  name: galaxy
+driver:
+  name: docker
+lint: |
+  set -e
+  yamllint .
+  ansible-lint .
+  flake8
+platforms:
+  - name: instance
+    image: centos:7
+provisioner:
+  name: ansible
+  env:
+    ANSIBLE_ROLES_PATH: ../../../../test/roles
+  inventory:
+    group_vars:
+      all:
+        app_helm_override_file: "/override.yml"
+verifier:
+  name: testinfra
diff --git a/ansible/roles/application-override/molecule/default/prepare.yml b/ansible/roles/application-override/molecule/default/prepare.yml
new file mode 100644 (file)
index 0000000..a2f608b
--- /dev/null
@@ -0,0 +1,5 @@
+---
+- name: Prepare infra
+  hosts: all
+  roles:
+    - prepare-application-override
diff --git a/ansible/roles/application-override/molecule/default/tests/test_default.py b/ansible/roles/application-override/molecule/default/tests/test_default.py
new file mode 100644 (file)
index 0000000..4b504be
--- /dev/null
@@ -0,0 +1,13 @@
+import yaml
+
+
+def test_override_file(host):
+    y = None
+    f = host.file("/override.yml")
+    assert f.exists
+    assert f.is_file
+    try:
+        y = yaml.safe_load(f.content)
+    except yaml.YAMLError:
+        assert False
+    assert y['global']['cacert'] == 'this is dummy server certificate value\n'
diff --git a/ansible/roles/application-override/molecule/ubuntu/molecule.yml b/ansible/roles/application-override/molecule/ubuntu/molecule.yml
new file mode 100644 (file)
index 0000000..9d97f71
--- /dev/null
@@ -0,0 +1,28 @@
+---
+dependency:
+  name: galaxy
+driver:
+  name: docker
+lint: |
+  set -e
+  yamllint .
+  ansible-lint .
+  flake8
+platforms:
+  - name: instance
+    image: ubuntu:18.04
+provisioner:
+  name: ansible
+  env:
+    ANSIBLE_ROLES_PATH: ../../../../test/roles
+  inventory:
+    group_vars:
+      all:
+        app_helm_override_file: "/override.yml"
+  playbooks:
+    prepare: ../default/prepare.yml
+    converge: ../default/converge.yml
+    cleanup: ../default/cleanup.yml
+verifier:
+  name: testinfra
+  directory: ../default/tests/
index 1ecf7c7..9bfeae8 100644 (file)
@@ -10,7 +10,7 @@
   set_fact:
     merged_overrides: "{{ overrides | default({}) | combine({'global': {'cacert': root_cert.content | b64decode}}, recursive=True) }}"
 
-- name: "Create {{ app_helm_override_file }}"
+- name: "Create override file"
   copy:
     dest: "{{ app_helm_override_file }}"
     content: "{{ merged_overrides | to_nice_yaml }}"
diff --git a/ansible/test/roles/cleanup-application-override/tasks/main.yml b/ansible/test/roles/cleanup-application-override/tasks/main.yml
new file mode 100644 (file)
index 0000000..084d7ae
--- /dev/null
@@ -0,0 +1,5 @@
+- name: "Clean application-override mocked certificate directory"
+  file:
+    path: "{{ playbook_dir }}/certs"
+    state: absent
+  delegate_to: localhost
diff --git a/ansible/test/roles/prepare-application-override/tasks/main.yml b/ansible/test/roles/prepare-application-override/tasks/main.yml
new file mode 100644 (file)
index 0000000..e601c90
--- /dev/null
@@ -0,0 +1,13 @@
+- name: "Create certificate directory"
+  file:
+    path: "{{ playbook_dir }}/certs"
+    state: directory
+  delegate_to: localhost
+
+- name: "Create dummy cert file"
+  copy:
+    content: |
+      this is dummy server certificate value
+    dest: certs/rootCA.crt
+  delegate_to: localhost
+