Age | Commit message (Collapse) | Author | Files | Lines |
|
Ansible already provides modules to create ssl certificates so we can
use these instead of running the openssl commands directly. Moreover, we
can drop all the tasks which create the ssl directories since there are
being created by the openssl package which also creates the appropriate
symlinks. Finally, there is no need to generate the certificate on
localhost if only the OPNFV host consumes it, so move these steps to
the appropriate playbook.
Change-Id: I0045945c502013be3d76440876e894a44a092690
Signed-off-by: Markos Chandras <mchandras@suse.de>
|
|
The tasks that manage the SSH keys are common across hosts and
also common across different installers. As such, lets move them
to a new file so we can share them more easily.
Change-Id: If235877394f224a47a2f2b8de748a2330eabcec1
Signed-off-by: Markos Chandras <mchandras@suse.de>
|
|
When we run XCI for the first time, Ansible picks the first active
interface as the default one. However, after we configure all the XCI
bridges etc, and we try to run this role again, Ansible may have changed
its mind about what interface is active and it could default to one of
the bridges. This forces the role to redo the network configuration but
this time the bridges are being attached to bridges so everything goes
terribly wrong after that. The way to solve this would be to add a local
fact about what interface should be considered as the 'real' default one
so subsequent calls to this role to not destroy the network.
This also drops the task which removed the network configuration files
on SUSE platforms since Ansible is smart enough to not touch them if
they are configured properly.
Change-Id: Ic0525e934b1934a40d69e6cf977615ab9b3dac6d
Signed-off-by: Markos Chandras <mchandras@suse.de>
|
|
We can use the 'user', 'slurp' and 'authorized_key' modules
to manage the various SSH configurations across the hosts instead
of using command line tools.
Change-Id: I2dde4d584fc336e267868607d5a58f5ee2c1feed
Signed-off-by: Markos Chandras <mchandras@suse.de>
|
|
|
|
Rsync will update modification times on transferred files so Ansible
marks the task as 'changed' all the time even though the source and
destination files are the same. This is confusing for XCI developers
because they may think that there are local changes to the scenarios
which is not always the case. As such, compare the 'checksums' of the
actual files to determine if there are any changes that need to be
copied over. This requires us to turn off the 'archive' option and
use the individual options directly.
This fixes the following problem where in a typical XCI job, all
inbound scenarios appear to have changes which is not true.
Mar 26 15:10:24 TASK [Synchronize local changes to scenarios' master branch] *******************
Mar 26 15:10:24 ok: [localhost] => (item=os-odl-sfc)
Mar 26 15:10:25 changed: [localhost] => (item=os-nosdn-nofeature)
Mar 26 15:10:25 changed: [localhost] => (item=os-odl-nofeature)
Mar 26 15:10:25 changed: [localhost] => (item=k8-nosdn-nofeature)
Mar 26 15:10:26 ok: [localhost] => (item=os-odl-bgpvpn)
Change-Id: I14f446c341a675b286e971f0b5c0be14d04abb9d
Signed-off-by: Markos Chandras <mchandras@suse.de>
|
|
In preparation for adding support for the 'ansible-lint' tool we fix
various problems in our playbooks to make the tool happy before we make
it mandatory.
Some of the problems that are fixed here are
- [ANSIBLE0011] All tasks should be named
- [ANSIBLE0012] Commands should not change things if nothing needs doing
- [ANSIBLE0013] Use shell only when shell functionality is required
- [ANSIBLE0010] Package installs should not use latest
installer-type:osa
deploy-scenario:os-nosdn-nofeature
Change-Id: I66c759d3932a414b81b2846393d2d98ce80c0b6d
Signed-off-by: Markos Chandras <mchandras@suse.de>
|
|
Commit 07747a53901e550280afb421b6fcbebc8994e93a ("xci: playbooks: Fix
synchronization of external scenarios") fixed copying of external
scenarios but broke internal ones because the regexp was wrong. The
variable was not evaluated properly so nothing was replaced for internal
scenarios. This also fixes a problem when the scenario and the role
names differ so we make sure that the role with the correct name is
created.
Change-Id: Idd7590d972841b5c03286b34757d7325b863c6bf
Signed-off-by: Markos Chandras <mchandras@suse.de>
|
|
The code was supposed to copy everything from
{{ xci_path }}/{{ scenario.role }} to the XCI roles directory but
external scenarios have their 'role' attribute relative to their
repository whereas internal one have it relative to the {{ xci_path }}.
As such, changes to external scenarios were not copied successfully
to the playbooks directory and their changes where never tested.
This removes the 'xci/scenarios/$scenario' part of the inbound
roles attribute to make all them relative to the
xci/scenarios/$scenario directory.
Change-Id: Id28671b30c8ee4aa6bc186444c0e5a3a3ea3d89b
Signed-off-by: Markos Chandras <mchandras@suse.de>
|
|
|
|
Move bootstrap-scenarios.yml from installer/osa/playbooks/bootstrap-scenarios.yml
to playbooks/bootstrap-scenarios.yml as a common playbook.
So we can use this file to bootstarap k8s-* scenarios, instead of creating a new
file under installer/kubespray/playbooks/bootstrap-scenarios.yml
Change-Id: Ic31ee00e1a0863f48fb86298d7c00fa8420fa28a
Signed-off-by: wutianwei <wutianwei1@huawei.com>
|
|
The fail message was a bit weird since it listed all the scenarion
information as below:
TASK [Fail if {'scm': u'git', 'src':
u'https://git.opnfv.org/releng-xci', 'scenario': u'os-nosdn-nofeature',
'installers': [{'flavors': [u'ha', u'mini', u'noha'], 'installer':
u'osa', 'distros': [u'opensuse', u'ubuntu', u'centos']}], 'version': u'master', 'role':
u'xci/scenarios/os-nosdn-nofeature/role/os-nosdn-nofeature'} is not
supported] ***
skipping: [localhost]
This looks awkward and we should only list the actual scenario name
instead.
Change-Id: I725793f91661f00606573906847336716fecd418
Signed-off-by: Markos Chandras <mchandras@suse.de>
|
|
This change removes the variables that are not used in any of the
playbooks/roles from opnfv ansible vars.
Apart from that, all caps ansible vars replaced with lowercase ones
and impacted playbooks/roles are updated.
installer-type:osa
deploy-scenario:os-nosdn-nofeature
Change-Id: I99ebdc155b3903176ac5940b64cef0c0f3aa0f0d
Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
|
|
In some cases the XCI development environment can be located behind a
corporate proxy resulting in a additional layer to consider to
configure. These changes pretend to include proxy support for all
linux distros in all the posible flavors.
Change-Id: Iab469268809ac471d09e244bb3ccd83de1a41b88
Signed-off-by: Victor Morales <victor.morales@intel.com>
|
|
* changes:
xci: infra: bifrost: Avoid installing Ansible twice
Add initial support for multiple infra deployers
|
|
bifrost is currently the only way to deploy the infrastructure but
in the future other solutions will be added so we need to do some
preparation for XCI integration.
Change-Id: I961dd42157c924d88747074ddba6a318f8b537ac
Signed-off-by: Markos Chandras <mchandras@suse.de>
|
|
Change-Id: I0b8a6d9409d95033839bdc5b3fbe9d1cbbdf4b7c
Signed-off-by: Periyasamy Palanisamy <periyasamy.palanisamy@ericsson.com>
|
|
OPNFV scenarios are forced to support at least two versions of OSA.
If there are API changes between two supported versions of OpenStack,
the testing code must have two versions. However, without knowing what
OpenStack version is deployed, it is impossible to automate the
decision of which testing code to use
Change-Id: I3ca8c6f33c05826a5d69417da774b7218bbd59e2
Signed-off-by: Manuel Buil <mbuil@suse.com>
|
|
|
|
The XCI hosts may need some of the XCI env variables to perform
certain tasks so dump the XCI environment to /root/xci.env file and
make that available to every host on the deployment.
Change-Id: I286a01ca7da8ff206438c261798167f5e4daf7f2
Signed-off-by: Markos Chandras <mchandras@suse.de>
|
|
There is probably no good reason anymore to be so strict with file
inclusions in the roles directory so drop the .gitignore file.
Change-Id: I84569c8c82c4aeb5da6c6e39e02ff514566e5213
Signed-off-by: Markos Chandras <mchandras@suse.de>
|
|
Those roles were too small and only used as part of the host
bootstrapping process. As such, we merge them into a common
'bootstrap-host' role which can be used to prepare the hosts
after the initial deployment
Change-Id: Ifc84cf40b98ced91b31aae699dc28e9642380550
Signed-off-by: Markos Chandras <mchandras@suse.de>
|
|
Change-Id: I330bc036f901d4ba61bc94ee6e085cadf54b4d8b
Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
|
|
The package module gets upset if we pass it an empty string as a package
name
Mar 09 15:15:33 TASK [configure-network : Ensure networking packages are present] **************
Mar 09 15:15:49 fatal: [opnfv]: FAILED! => {"changed": false, "failed":
true, "msg": "No package matching '' found available, installed or
updated", "rc": 126, "results": ["iproute-3.10.0-87.el7.x86_64 providing
iproute is already installed", "No package matching '' found available,
installed or updated"]}
As such, lets pass an existing package for non-Debian distros to make
the module happy.
Change-Id: Ib1128057097193278cfe50f79daf35332b54e781
Signed-off-by: Markos Chandras <mchandras@suse.de>
|
|
We need to make sure that the pip packages that we install are
compatible with the OSA components.
Change-Id: I87e80dc9b8fb862d9f9039d835b0908f752de3ca
Signed-off-by: Markos Chandras <mchandras@suse.de>
|
|
The docker packages that we install in the OPNFV VM are needed by
functest so add them to the related role.
Change-Id: I6ebe76fd030859f757d41ecf20c30ab76888ee9c
Signed-off-by: Markos Chandras <mchandras@suse.de>
|
|
the network"
|
|
Ansible some times loses connection with the host after we configure its
network interface. This shouldn't happen since the host is actually up
and running. As a result of which, we need to fire-and-forget the
restart of the network service and then try to reach the SSH port. We
also need to make sure that all required packages are installed.
Finally, we drop the 'ignore_errors' parameter since we really need to
know when the networking configuration has failed.
Change-Id: I366192737b5c4e01964eaf187396eababbdc808e
Signed-off-by: Markos Chandras <mchandras@suse.de>
|
|
The provision-vm-nodes playbook doesn't do any VM provisioning. It
basically just bootstraps the bifrost repository so rename it to
make it clear what this is about.
Change-Id: I1c10bc6135686c5197d553a885412a94312a41bc
Signed-off-by: Markos Chandras <mchandras@suse.de>
|
|
Change-Id: I8848d5bae22a408482d51a84636d230d25ca22be
Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
|
|
Ansible throws out the log at the end of task execution which
makes it hard to read. This change renames the role to prepare-functest
and then takes the script execution out which will be executed by
releng/jjb/xci/xci-run-functest.sh.
Change-Id: Icf399ce4f04357814ed7109cd11113a9decddc50
Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
|
|
CI_LOOP is hardcoded to daily (the common default value) [1].
[1] https://gerrit.opnfv.org/gerrit/#/c/51981/
Change-Id: I15f5d41f7f10a5c8fddcc4a4d303552ef45c5fb2
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
|
|
It conforms with "Unlink Energy from functest utils and constants":
https://gerrit.opnfv.org/gerrit/#/c/51943/
Depends-On: Iecd5d49b4d4c961c9dc51e43e54df1fcd4027266
Change-Id: I7c7125ac2fee9a2e8f24dcf060bdaab1b39ae552
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
|
|
THe prepare-functest role changed the name but .gitignore is still
using the old name
Change-Id: I67e962704a62756663abdc721fb8b9a9ac8648a2
Signed-off-by: Manuel Buil <mbuil@suse.com>
|
|
Hardcoding the interface as a variable is very fragile since it varies
from host to host. We could use the Ansible facts to find out the
interface name and then use that to configure all the VLANs and
networking.
Change-Id: Ie7e2409d638625b9bede23b6c1fe33dc36f81840
Signed-off-by: Markos Chandras <mchandras@suse.de>
|
|
Add a new volume to the docker container which will hold the results
from the functest run.
Change-Id: I70541a8337c9198a97304312adfab74d4dd06b70
Signed-off-by: Markos Chandras <mchandras@suse.de>
|
|
* Bump up upstream SHAs
* With these upstream SHAs, OSA installs neutron-agent container on
controller node which would require eth12 interface on controller for
establishing vlan provider networks. so adding eth12 interface and
linking it with br-vlan over br-vlan-veth link.
Change-Id: Iaf7cbe6e41dcfd15ec6527c5a50701f2d05eaad8
Signed-off-by: Markos Chandras <mchandras@suse.de>
Signed-off-by: Periyasamy Palanisamy <periyasamy.palanisamy@ericsson.com>
|
|
It follows the change "Rename a common credential file for OS and
K8S" which stops forcing OpenStack creds.
[1] https://gerrit.opnfv.org/gerrit/#/c/51283/
Change-Id: Ic83a2e696c9ea8821e29e6b3f4e69db25c528a0d
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
|
|
|
|
|
|
This commit introduces kubespray into XCI.
k8s install currently assumes k8s install
and OpenStack install cannot coexist.
If XCI_INSTALLER is set to "kubespray" and
DEPLOY_SCENARIO is set to "k8-nosdn-nofeature"
the xci-deploy.sh would install kubernetes instead of OpenStack.
The version of kubernetes is beta release v1.9.0 currently
according to the master of kubespray
it only support the ubuntu now.
Opensuse and centos still need to develop and test.
This patch create the directory xci/installer/kubespray,
the related files of kubespray would be placed to it.
The xci/installer/$installer/playbooks/configure-localhost.yml was moved
to xci/playbooks/configure-localhost.yml as a common yaml file.
You can modify some parameters according your need
in xci/installer/kubespray/files/k8s-cluster.yml to deploy cluster.
When deploying kubernetes,
it would download the kubespray to releng-xci/.cache/repos/kubespray.
If your flavor is Ha, it will download haproxy_server and keepalived
to xci/playbook/roles, which setup haproxy service for kubernetes.
Change-Id: I24d521a735d7ee85fbe5af8c4def65f37586b843
Signed-off-by: wutianwei <wutianwei1@huawei.com>
|
|
Functest requires to read the variable TEST_DB_URL from the env. variables:
https://gerrit.opnfv.org/gerrit/#/c/49757/
Change-Id: Idbfc2df989f5b2a8e6ddd2d9a9a70526dd9bf1f4
Signed-off-by: Manuel Buil <mbuil@suse.com>
|
|
The package requirements are the same across distros so
we simply hardcode them in the task. Fixes the following problem:
fatal: [opnfv]: FAILED! => {"changed": true, "cmd":
"/root/run-functest.sh", "delta": "0:00:09.150226", "end": "2018-01-26
14:01:18.758704", "failed": true, "rc": 125, "start": "2018-01-26 1
4:01:09.608478", "stderr": "/root/run-functest.sh: line 14: wget:
command not found
Change-Id: Ib07acac18f8ece1111ee0706766f32005d0ac1da
Signed-off-by: Markos Chandras <mchandras@suse.de>
|
|
This change integrates functest in most easiest and messy way to
get it up and running to bring functest into CI. The reason for
this is that there are strange failures during functest healthcheck
and it is important to look into those rather than beautifying how
functest is integrated at this phase.
Change-Id: I42e993be4aa15da022fa1e0069338447780f177e
Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
|
|
|
|
When the user selects an invalid combination then some facts may not be
set so the deployment may fail in a crypt way like in the following case
fatal: [localhost]: FAILED! => {"failed": true, "msg": "The conditional
check 'deploy_scenario_installer' failed. The error was: error while
evaluating conditional (deploy_scenario_installer):
'deploy_scenario_installer' is undefined\n\nThe error appears to have been in
'/home/opnfv/releng-xci/xci/playbooks/get-opnfv-scenario-requirements.yml':
line 114, column 11, but may\nbe elsewhere in the file depending on the
exact syntax problem.\n\nThe offending line appears to be:\n\n
when: item.installer == XCI_INSTALLER\n - set_fact:\n
^
here\n"}
Change-Id: I931376d99bb178b15c4a9a71d47b48b01b858e4e
Signed-off-by: Markos Chandras <mchandras@suse.de>
|
|
Change-Id: If8c0de44c313fdc22b1c7443b12d42769035c5b0
Signed-off-by: Tapio Tallgren <tapio.tallgren@nokia.com>
|
|
'redhat' as a ansible_os_family covers both the RedHat distros and
CentOS.
Change-Id: I2ab56024d2c0f1f40a014a236cfd94ef38daad04
Signed-off-by: Tapio Tallgren <tapio.tallgren@nokia.com>
|
|
Using 'installer' to describe the tool that will deploy the foundations
of a particular XCI scenario is more appropriate than NFVI which
normally describes both the physical and virtual resources needed by
an NFV deployment.
Change-Id: Ib8b1aac58673bf705ce2ff053574fd10cb390d71
Signed-off-by: Markos Chandras <mchandras@suse.de>
|
|
A scenario may only support certain NFVIs or distributions so we
need a mapping with all these things so we know what can be tested
and where.
Change-Id: Ibf1b640b762085f58627e05e1d2ca13edfc4d716
Signed-off-by: Markos Chandras <mchandras@suse.de>
|