summaryrefslogtreecommitdiffstats
path: root/ansible/roles/rke
diff options
context:
space:
mode:
authorBartek Grzybowski <b.grzybowski@partner.samsung.com>2021-02-03 15:01:34 +0100
committerBartek Grzybowski <b.grzybowski@partner.samsung.com>2021-02-03 15:01:34 +0100
commit5ee1e950f1e2be10762f5f08fe82bb7bd3a68bb4 (patch)
treeec7095c8cd6ae287f133f0c3e3582e937eb6ade8 /ansible/roles/rke
parent31d3a265b3f7613f1af536c4a04f119ea83d9794 (diff)
Change 'rke' role testing strategy
So far Molecule framework setup allowed full rke cluster deployment in testing env but since rke cluster often fails to deploy in resource constrained CI environment this change switches testing strategy to only simulate 'rke up' operation. Change-Id: Ia221da6666d558e086cd24155f5bd81237d82388 Issue-ID: OOM-2665 Signed-off-by: Bartek Grzybowski <b.grzybowski@partner.samsung.com>
Diffstat (limited to 'ansible/roles/rke')
-rw-r--r--ansible/roles/rke/molecule/default/molecule.yml4
-rw-r--r--ansible/roles/rke/molecule/default/prepare.yml1
-rw-r--r--ansible/roles/rke/molecule/default/tests/test_controlplane.py14
-rw-r--r--ansible/roles/rke/molecule/default/tests/test_etcd.py13
-rw-r--r--ansible/roles/rke/molecule/default/tests/test_infrastructure.py38
-rw-r--r--ansible/roles/rke/molecule/default/tests/test_nodes.py13
-rw-r--r--ansible/roles/rke/molecule/etcd_storage/molecule.yml5
7 files changed, 11 insertions, 77 deletions
diff --git a/ansible/roles/rke/molecule/default/molecule.yml b/ansible/roles/rke/molecule/default/molecule.yml
index 3078c115..6da9e83b 100644
--- a/ansible/roles/rke/molecule/default/molecule.yml
+++ b/ansible/roles/rke/molecule/default/molecule.yml
@@ -49,6 +49,10 @@ provisioner:
env:
ANSIBLE_ROLES_PATH: ../../../../test/roles
ANSIBLE_LIBRARY: ../../../../library
+ inventory:
+ group_vars:
+ all:
+ cluster_config_dir: /opt/onap/cluster
options:
e: "app_data_path=/opt/onap"
lint:
diff --git a/ansible/roles/rke/molecule/default/prepare.yml b/ansible/roles/rke/molecule/default/prepare.yml
index b012790a..d20f1962 100644
--- a/ansible/roles/rke/molecule/default/prepare.yml
+++ b/ansible/roles/rke/molecule/default/prepare.yml
@@ -5,7 +5,6 @@
- role: prepare-rke
vars:
mode: all
- - prepare-docker-dind
- name: "Infra specific preparations"
hosts: infrastructure
diff --git a/ansible/roles/rke/molecule/default/tests/test_controlplane.py b/ansible/roles/rke/molecule/default/tests/test_controlplane.py
deleted file mode 100644
index 0bfbca2d..00000000
--- a/ansible/roles/rke/molecule/default/tests/test_controlplane.py
+++ /dev/null
@@ -1,14 +0,0 @@
-import os
-import pytest
-
-import testinfra.utils.ansible_runner
-
-testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
- os.environ['MOLECULE_INVENTORY_FILE']).get_hosts(
- 'kubernetes-control-plane')
-
-
-@pytest.mark.parametrize('container_name', [
- 'kube-apiserver', 'kube-controller-manager', 'kube-scheduler', 'kubelet'])
-def test_container_running(host, container_name):
- assert host.docker(container_name).is_running
diff --git a/ansible/roles/rke/molecule/default/tests/test_etcd.py b/ansible/roles/rke/molecule/default/tests/test_etcd.py
deleted file mode 100644
index 0f4b6f12..00000000
--- a/ansible/roles/rke/molecule/default/tests/test_etcd.py
+++ /dev/null
@@ -1,13 +0,0 @@
-import os
-import pytest
-
-import testinfra.utils.ansible_runner
-
-testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
- os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('kubernetes-etcd')
-
-
-@pytest.mark.parametrize('container_name', [
- 'etcd'])
-def test_container_running(host, container_name):
- assert host.docker(container_name).is_running
diff --git a/ansible/roles/rke/molecule/default/tests/test_infrastructure.py b/ansible/roles/rke/molecule/default/tests/test_infrastructure.py
index 731f38bf..81f90d17 100644
--- a/ansible/roles/rke/molecule/default/tests/test_infrastructure.py
+++ b/ansible/roles/rke/molecule/default/tests/test_infrastructure.py
@@ -1,6 +1,5 @@
import os
import pytest
-import json
import testinfra.utils.ansible_runner
@@ -11,7 +10,9 @@ testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
@pytest.mark.parametrize('filename', [
'/root/.kube/config',
'/opt/onap/cluster/cluster.yml',
- '/opt/onap/cluster/cluster.rkestate'])
+ '/opt/onap/cluster/kubernetes-dashboard.yml',
+ '/opt/onap/cluster/k8s-dashboard-user.yml',
+ '/opt/onap/cluster/kube_config_cluster.yml'])
def test_file_existence(host, filename):
assert host.file(filename).exists
@@ -22,35 +23,4 @@ def test_rke_in_path(host):
def test_rke_version_works(host):
# Note that we need to cd to the cluster data dir first, really.
- assert host.run('cd /opt/onap/cluster && rke version').rc == 0
-
-
-def test_nodes_ready(host):
- # Retrieve all node names.
- nodecmdres = host.run('kubectl get nodes -o name')
- assert nodecmdres.rc == 0
- nodes = nodecmdres.stdout.split('\n')
- for node in nodes:
- assert host.run(
- 'kubectl wait --timeout=0 --for=condition=ready ' + node).rc == 0
-
-
-def test_pods_ready(host):
- # Retrieve all pods from all namespaces.
- # Because we need pod and namespace name, we get full json representation.
- podcmdres = host.run('kubectl get pods --all-namespaces -o json')
- assert podcmdres.rc == 0
- pods = json.loads(podcmdres.stdout)['items']
- for pod in pods:
- # Each pod may be either created by a job or not.
- # In job case they should already be completed
- # when we are here so we ignore them.
- namespace = pod['metadata']['namespace']
- podname = pod['metadata']['name']
- condition = 'Ready'
- if len(pod['metadata']['ownerReferences']) == 1 and pod[
- 'metadata']['ownerReferences'][0]['kind'] == 'Job':
- continue
- assert host.run(
- 'kubectl wait --timeout=240s --for=condition=' + condition + ' -n ' +
- namespace + ' pods/' + podname).rc == 0
+ assert host.run('cd /opt/onap/cluster && rke').rc == 0
diff --git a/ansible/roles/rke/molecule/default/tests/test_nodes.py b/ansible/roles/rke/molecule/default/tests/test_nodes.py
deleted file mode 100644
index 60413018..00000000
--- a/ansible/roles/rke/molecule/default/tests/test_nodes.py
+++ /dev/null
@@ -1,13 +0,0 @@
-import os
-import pytest
-
-import testinfra.utils.ansible_runner
-
-testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
- os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('kubernetes-node')
-
-
-@pytest.mark.parametrize('container_name', [
- 'kubelet', 'kube-proxy'])
-def test_container_running(host, container_name):
- assert host.docker(container_name).is_running
diff --git a/ansible/roles/rke/molecule/etcd_storage/molecule.yml b/ansible/roles/rke/molecule/etcd_storage/molecule.yml
index 3c915284..a68ceb95 100644
--- a/ansible/roles/rke/molecule/etcd_storage/molecule.yml
+++ b/ansible/roles/rke/molecule/etcd_storage/molecule.yml
@@ -52,18 +52,19 @@ provisioner:
inventory:
group_vars:
all:
+ cluster_config_dir: /opt/onap/cluster
rke_etcd:
enabled_custom_etcd_storage: false
storage_path: /var/lib/etcd-custom
storage_mountpoint: /var/lib/rancher/etcd-custom
enabled_unsafe_volatile_storage: true
tmpfs_size: 5G
+ options:
+ e: "app_data_path=/opt/onap"
playbooks:
prepare: ../default/prepare.yml
converge: ../default/playbook.yml
destroy: ../default/destroy.yml
- options:
- e: "app_data_path=/opt/onap"
lint:
name: ansible-lint
scenario: