summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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
-rw-r--r--ansible/test/play-rke/molecule/default/prepare.yml1
-rw-r--r--ansible/test/play-rke/molecule/default/vars.yml1
-rw-r--r--ansible/test/roles/prepare-rke/tasks/all.yml3
-rw-r--r--ansible/test/roles/prepare-rke/tasks/infra.yml13
-rw-r--r--ansible/test/roles/prepare-rke/templates/rke.j214
12 files changed, 41 insertions, 79 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:
diff --git a/ansible/test/play-rke/molecule/default/prepare.yml b/ansible/test/play-rke/molecule/default/prepare.yml
index 9f254c00..6d810052 100644
--- a/ansible/test/play-rke/molecule/default/prepare.yml
+++ b/ansible/test/play-rke/molecule/default/prepare.yml
@@ -2,7 +2,6 @@
- name: Prepare for all
hosts: all
roles:
- - prepare-docker-dind
- role: prepare-rke
vars:
mode: all
diff --git a/ansible/test/play-rke/molecule/default/vars.yml b/ansible/test/play-rke/molecule/default/vars.yml
index fa5b60e3..739dc955 100644
--- a/ansible/test/play-rke/molecule/default/vars.yml
+++ b/ansible/test/play-rke/molecule/default/vars.yml
@@ -1,3 +1,4 @@
---
app_name: moleculeapp
app_data_path: "/opt/{{ app_name }}"
+cluster_config_dir: "/opt/{{ app_name }}/cluster"
diff --git a/ansible/test/roles/prepare-rke/tasks/all.yml b/ansible/test/roles/prepare-rke/tasks/all.yml
index d4b67c1f..7f876ff3 100644
--- a/ansible/test/roles/prepare-rke/tasks/all.yml
+++ b/ansible/test/roles/prepare-rke/tasks/all.yml
@@ -4,3 +4,6 @@
name: systemd-user-sessions
state: started
+- name: "Add docker group"
+ group:
+ name: docker
diff --git a/ansible/test/roles/prepare-rke/tasks/infra.yml b/ansible/test/roles/prepare-rke/tasks/infra.yml
index 8aa93ca7..0a0b9273 100644
--- a/ansible/test/roles/prepare-rke/tasks/infra.yml
+++ b/ansible/test/roles/prepare-rke/tasks/infra.yml
@@ -4,11 +4,22 @@
path: "{{ app_data_path }}/downloads"
state: directory
+- name: "Create rke binary wrapper"
+ template:
+ src: rke.j2
+ dest: "{{ app_data_path }}/downloads/rke_linux-amd64"
+ mode: 0755
+
- name: "Install rke-{{ rke_version }}"
- command: "curl --connect-timeout 10 -L https://github.com/rancher/rke/releases/download/v{{ rke_version }}/rke_linux-amd64 -o {{ app_data_path }}/downloads/rke_linux-amd64"
+ command: "curl --connect-timeout 10 -L https://github.com/rancher/rke/releases/download/v{{ rke_version }}/rke_linux-amd64 -o {{ app_data_path }}/downloads/rke_linux-amd64_real"
register: result
retries: 10
delay: 1
until: not result.failed
args:
warn: false
+
+- name: "Ensure downloaded rke binary has correct file mode"
+ file:
+ path: "{{ app_data_path }}/downloads/rke_linux-amd64_real"
+ mode: 0755
diff --git a/ansible/test/roles/prepare-rke/templates/rke.j2 b/ansible/test/roles/prepare-rke/templates/rke.j2
new file mode 100644
index 00000000..ea1267ea
--- /dev/null
+++ b/ansible/test/roles/prepare-rke/templates/rke.j2
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+if [[ $@ =~ 'up' ]];
+then
+ # If the operation is 'rke up' then simulate rke up operation
+ echo $@
+ touch {{ cluster_config_dir }}/kube_config_cluster.yml
+elif [[ $@ =~ 'version' ]];
+then
+ {{ app_data_path }}/downloads/rke_linux-amd64_real version
+ exit 0
+else
+ {{ app_data_path }}/downloads/rke_linux-amd64_real $@
+fi