summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManuel Buil <mbuil@suse.com>2017-09-15 14:20:39 +0200
committerFatih Degirmenci <fatih.degirmenci@ericsson.com>2017-09-27 10:27:11 +0200
commit707469c08ade38c713eccdf4040221bf35cd92d3 (patch)
tree67f85b61c8f62b2fd372f1e05c4394d39a85267a
parente728ad6988a15c71376860b1ea6eaedcce15fa4e (diff)
Create a role which prepares xci for functest
Functest requires xci deployment to have: - A public neutron network - A subnet attached to the public neutron network - The gateway from the subnet attached to one interface The network and subnet creation are done via a script instead of using Ansible OpenStack module in order to get things working asap. These three tasks are implemented in a role This patch depends on a pending patch: https://gerrit.opnfv.org/gerrit/#/c/39517/2 Change-Id: I0635227153087fd9e25b76f0859f82bf48bfb930 Signed-off-by: Manuel Buil <mbuil@suse.com> Signed-off-by: Fatih Degirmenci <fatih.degirmenci@ericsson.com>
-rw-r--r--xci/playbooks/configure-opnfvhost.yml6
-rw-r--r--xci/playbooks/roles/prepare-functest/defaults/main.yml14
-rw-r--r--xci/playbooks/roles/prepare-functest/tasks/main.yml32
-rw-r--r--xci/playbooks/roles/prepare-functest/templates/env.j24
-rw-r--r--xci/playbooks/roles/prepare-functest/templates/prepare-functest.sh.j212
5 files changed, 65 insertions, 3 deletions
diff --git a/xci/playbooks/configure-opnfvhost.yml b/xci/playbooks/configure-opnfvhost.yml
index 439201ef..7b16c5aa 100644
--- a/xci/playbooks/configure-opnfvhost.yml
+++ b/xci/playbooks/configure-opnfvhost.yml
@@ -146,10 +146,10 @@
name: "{{ docker_package_name }}"
state: latest
when: lookup('env', 'JENKINS_HOME') != ""
- # install shade on opnfv host only if we are running as part of CI
- - name: install shade
+ # install python-openstackclient on opnfv host only if we are running as part of CI
+ - name: install python-openstackclient
pip:
- name: shade
+ name: python-openstackclient
state: present
when: lookup('env', 'JENKINS_HOME') != ""
diff --git a/xci/playbooks/roles/prepare-functest/defaults/main.yml b/xci/playbooks/roles/prepare-functest/defaults/main.yml
new file mode 100644
index 00000000..a3638302
--- /dev/null
+++ b/xci/playbooks/roles/prepare-functest/defaults/main.yml
@@ -0,0 +1,14 @@
+---
+# Gateway parameters
+gateway_ip: "10.10.10.1"
+gateway_ip_mask: "10.10.10.1/24"
+broadcast_ip: "10.10.10.255"
+gateway_interface: "br-vlan"
+
+# Network parameters
+external_network: "ext-net"
+
+# Subnet parameters
+subnet_name: "ext-subnet"
+allocation_pool: "start=10.10.10.5,end=10.10.10.254"
+subnet_cidr: "10.10.10.0/24"
diff --git a/xci/playbooks/roles/prepare-functest/tasks/main.yml b/xci/playbooks/roles/prepare-functest/tasks/main.yml
new file mode 100644
index 00000000..9a380cd1
--- /dev/null
+++ b/xci/playbooks/roles/prepare-functest/tasks/main.yml
@@ -0,0 +1,32 @@
+---
+# SPDX-license-identifier: Apache-2.0
+##############################################################################
+# Copyright (c) 2017 SUSE Linux GmbH
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+- name: check if the gateway was already set
+ shell: "ip a | grep {{ gateway_ip }}"
+ register: gateway_ip_result
+ ignore_errors: True
+
+- name: add public network gateway
+ command: "ip addr add {{ gateway_ip_mask }} brd {{ broadcast_ip }} dev {{ gateway_interface }}"
+ when: gateway_ip_result|failed
+
+- name: prepare script to create networks for functest
+ template:
+ src: prepare-functest.sh.j2
+ dest: /root/prepare-functest.sh
+ mode: 0755
+
+- name: Create networks
+ shell: "/root/prepare-functest.sh"
+
+- name: prepare environment file for functest
+ template:
+ src: env.j2
+ dest: /root/env
+ mode: 0755
diff --git a/xci/playbooks/roles/prepare-functest/templates/env.j2 b/xci/playbooks/roles/prepare-functest/templates/env.j2
new file mode 100644
index 00000000..52211b45
--- /dev/null
+++ b/xci/playbooks/roles/prepare-functest/templates/env.j2
@@ -0,0 +1,4 @@
+INSTALLER_TYPE=osa
+INSTALLER_IP="192.168.122.2"
+EXTERNAL_NETWORK="{{ external_network }}"
+DEPLOY_SCENARIO="os-nosdn-nofeature-noha"
diff --git a/xci/playbooks/roles/prepare-functest/templates/prepare-functest.sh.j2 b/xci/playbooks/roles/prepare-functest/templates/prepare-functest.sh.j2
new file mode 100644
index 00000000..bb3a437b
--- /dev/null
+++ b/xci/playbooks/roles/prepare-functest/templates/prepare-functest.sh.j2
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+source /root/openrc
+
+openstack --insecure network create --share --external \
+ --provider-physical-network flat \
+ --provider-network-type flat {{ external_network }}
+
+openstack --insecure subnet create --network {{ external_network }} \
+ --allocation-pool {{ allocation_pool }} \
+ --subnet-range {{ subnet_cidr }} --gateway {{ gateway_ip }} \
+ --no-dhcp {{ subnet_name }}