summaryrefslogtreecommitdiffstats
path: root/xci/playbooks
AgeCommit message (Collapse)AuthorFilesLines
2018-06-26xci: playbooks: manage-ssh-keys: Create regular user and SSH keysMarkos Chandras1-0/+9
We may need to perform non-root tasks on the nodes, so we should have a regular user present as well. Change-Id: I0b824f1875ce04fe67424fc96e754e06da53be8d Signed-off-by: Markos Chandras <mchandras@suse.de>
2018-06-26xci: roles: create-vm-nodes: Add role for creating XCI VM nodesManuel Buil12-0/+704
Add a new role based on the bifrost one to create nodes for the bifrost virtual deployments. This role will install and configure libvirt on the host, download a prebuilt OPNFV VM image and deploy the OPNFV VM using that image. Moreover, it will create the rest of the nodes for the virtual deployment which will be configured by bifrost later on. Change-Id: I9fbd084261351d3b53ae373060f43df046191c5e Co-Authored-by: Markos Chandras <mchandras@suse.de> Signed-off-by: Manuel Buil <mbuil@suse.com>
2018-06-26Pin functest-healthcheck docker image to known shaFatih Degirmenci1-2/+2
Functest changes have significant impact which blocks everything in XCI so this change pins the image to a known sha to get the original set of healthcheck testcases until the impacts are analysed and concerns are raised to Functest and the wider OPNFV Community and addressed based on community consensus. Pinned version of functest-healthcheck contains the test cases below. - connection_check - api_check - snaps_health_check deploy-scenario:os-nosdn-nofeature installer-type:osa Change-Id: Ic9222af8c27e58491b7b60a7504df9d792b5e753 Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
2018-06-12xci: dynamic_inventory: Add new entry for deployment_hostMarkos Chandras1-0/+5
The deployment host is normally the host which runs the various playbooks so we add a new entry in the inventory for localhost. Change-Id: I43baddf4fabd69579c1a02f55ece230a062c2d9b Signed-off-by: Markos Chandras <mchandras@suse.de>
2018-06-06roles: bootstrap-host: Ensure DNS info from IDF is respectedMarkos Chandras5-5/+21
We are configuring static IPs in the various nodes but we don't do anything for DNS assuming that DNS is being configured by another entity. However, the IDF file already contains DNS information for us so we should use that instead. Moreover, we update the IDF file to use the gateway as DNS instead of the Google one in order to make it more usable on restricted networks. Change-Id: Ieba58ec9558080a1296e204c4f99bae859e9daef Signed-off-by: Markos Chandras <mchandras@suse.de>
2018-06-01Merge "xci: kubespray: Use bootstrap role for k8s deployments"Markos Chandras1-0/+1
2018-05-18xci: kubespray: Use bootstrap role for k8s deploymentsMarkos Chandras1-0/+1
The bootstrap role configures NTP and networking on hosts so we should use it on k8s deployments as well. installer-type:kubespray deploy-scenario:k8-nosdn-nofeature Change-Id: I04bd1e1c2c325baabfb836bd8cca60c5f59344c7 Signed-off-by: Markos Chandras <mchandras@suse.de>
2018-05-18Merge "xci: kubespray: Switch kubespray to dynamic inventory"Markos Chandras1-3/+25
2018-05-17Merge "xci: Wipe repositories at the beginning of the deployment"Markos Chandras1-1/+0
2018-05-17Merge "xci: bootstrap-host: Fetch netmask information from IDF"Markos Chandras8-35/+38
2018-05-17xci: Wipe repositories at the beginning of the deploymentMarkos Chandras1-1/+0
We should not wipe the repositories in the localhost playbooks since it makes it somewhat hard to debug problems. We should do that at the beginning of the deployment to ensure that we start without any stale git data. Change-Id: I70b2ac77284a9ca304d6aa68dbf1654f59260dc4 Signed-off-by: Markos Chandras <mchandras@suse.de>
2018-05-16xci: get-opnfv-scenario-requirements: Fix stale scenario factsMarkos Chandras1-6/+0
We always need to update the local facts for the scenario we are deploying in order to avoid deployments with stale data. Change-Id: I36298d2ebc1b813e95a2f213cd13649a0b4e04bf Signed-off-by: Markos Chandras <mchandras@suse.de>
2018-05-16xci: bootstrap-host: Fetch netmask information from IDFMarkos Chandras8-35/+38
The IDF file contains the netmask for every network so we should use that information instead of using hardcoded values. Change-Id: Ie798cb49563bdb72fdfb7b6e9e269692bf1f7bc9 Signed-off-by: Markos Chandras <mchandras@suse.de>
2018-05-16xci: kubespray: Switch kubespray to dynamic inventoryMarkos Chandras1-3/+25
The kubespray installer contains one inventory per flavor. We can get rid of these files and use the dynamic inventory similar to OSA. Moreover, we extend the dynamic inventory to read additional group variables per flavor if necessary. This way we can still pass additional information to inventory on per-flavor basis. This also fixes a typo in the 'IDF' file. We also need to bump Ansible for kubespray since the version we were using is having troubles with dynamic inventories. Change-Id: Ic58101555f81aec5fee3c193608440aa89bbe445 Signed-off-by: Markos Chandras <mchandras@suse.de>
2018-05-09xci: osa: Add initial dynamic inventory from PDF/IDF filesMarkos Chandras4-12/+165
The PDF and IDF files contain all the information we need for the virtual XCI deployment, so we can use it to create a dynamic inventory and get rid of all the static ones which could easily get outdated as PDF and IDF files evolve over time. This inital version of the dynamic inventory contains a lot of unnecessary generated information but we do that in order to ease the migration from static files to the dynamic inventory. The dynamic inventory will be improved in the future as we consume more and more information from the PDF and IDF files. Change-Id: Id9f07a61c67a5cffcbc18079a341e5d395020a27 Signed-off-by: Markos Chandras <mchandras@suse.de>
2018-04-30xci: Remove intermediate scenarios tasks fileMarkos Chandras1-43/+0
Now that the scenario role is recorded as a local fact, we can include the role directly directly so we don't need the the intermediate file anymore. deploy-scenario:os-nosdn-nofeature installer-type:osa Change-Id: Ia3c5658826f115538b2a103d987ee8f33d3048b9 Signed-off-by: Markos Chandras <mchandras@suse.de>
2018-04-30xci: Improve scenario bootstrapping processMarkos Chandras1-48/+73
It's best to check whether the scenario/distro/flavor combination is supported before spending time cloning all the scenarios. Moreover, we can record the scenario information as a local fact so we can use it during the deployment later on. Change-Id: I1971444c6c6302a844f44ea651ad3b83c4da435c Signed-off-by: Markos Chandras <mchandras@suse.de>
2018-04-30xci: playbooks: Simplify scenario overrides mechanismMarkos Chandras1-50/+16
Now that releng-xci does not have any internal scenarios anymore, we can simplify the way we plug scenarios to XCI. We keep cloning scenarios in the cache directory but we also allow users to pass a special 'xci_scenarios_overrides' variable similar to the 'opnfv_scenario_requirements.yml' file to allow them to override specific keys of the dictionaries. This can be used by Jenkins to test incoming changes by altering the defaults values. For example, when we want to test a Gerrit change we can create a file called foobar.yml with the following contents xci_scenarios_overrides: - scenario: os-odl-sfc version: 9fa5400012e02408b416eb7bd26307e7d179abce refspec: refs/changes/79/55879/7 and load it using XCI_ANSIBLE_PARAMS="-e @foobar.yml" This will make XCI checkout the refspec that we want instead of the default version. Change-Id: Ida49910b4c79b843582ddd70c00063fe9bc90dd4 Signed-off-by: Markos Chandras <mchandras@suse.de>
2018-04-30xci: roles: bootstrap-host: Simplify configuration filesMarkos Chandras16-330/+202
We split the networking task on distro specific files to make it easier to read. Moreover, the debian network configuration has been improved by simply sharing a common file across all nodes and also use the 'source' facility in the main /etc/network/interfaces file to use one configuration file per interface. Change-Id: Ic822fe6dc197227e70c0ba7cee812629df287d82 Signed-off-by: Markos Chandras <mchandras@suse.de>
2018-04-25Merge "Move configuration network templates"Markos Chandras11-5/+5
2018-04-17Merge "xci: Add k8-nosdn-nofeature role"Markos Chandras1-0/+4
2018-04-16xci: Add k8-nosdn-nofeature rolewutianwei1-0/+4
Move default k8s-cluster.yml from kubespray/files/ to role/k8-nosdn-nofeature/files/k8s-cluster.yml since it's scenario specific. Moreover, we set 'cloud' as kube_network_plugin, which would use kubnet as network plugin. The kubenet network plugin requires routing between to be setup by the administrator so we need to add static routes on every host since they are connected using a bridge instead of a router. installer-type:kubespray deploy-scenario:k8-nosdn-nofeature Change-Id: I6ab7288c966d7f17e9d61279056f7673be37bebe Signed-off-by: wutianwei <wutianwei1@huawei.com> Signed-off-by: Markos Chandras <mchandras@suse.de>
2018-04-14Download only the needed images for OpenStack Functest HealthcheckFatih Degirmenci1-1/+9
Some of the files needed by Functest are pretty big and it takes time to download them all so this change ensures that the files are needed by healthcheck is downloaded and the rest is not. Further changes are needed to make the list even smaller for smoke test but we need Functest guidance to identify which of them are needed for what testing. It could be done by having suite specific download_images.sh like download_images_healthcheck.sh, download_images_smoke.sh and so on. deploy-scenario:os-nosdn-nofeature installer-type:osa Change-Id: Ib2c5867adfad8097d1a084c39ad08cc4df2e4549 Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
2018-04-13Integrate the k8-flannel-nofeature scenarioTaseer Ahmed1-0/+4
installer-type:kubespray deploy-scenario:k8-flannel-nofeature Change-Id: Ie47efe4759b2cf52421cd2edf5e7817442b0026f Signed-off-by: Taseer Ahmed <taseer94@gmail.com>
2018-04-13Create the k8-calico-nofeature scenariowutianwei1-0/+4
installer-type:kubespray deploy-scenario:k8-calico-nofeature Change-Id: Ief8557149fd47faab43f8f4bedcf6466dac2275f Signed-off-by: wutianwei <wutianwei1@huawei.com>
2018-04-12Create the k8-canal-nofeature scenariowutianwei1-0/+4
add the k8-nosdn-noeature and k8-canal-nofeature roles under scenarios directory run different roles to configure the k8s-cluster according to the deploy scenario installer-type:kubespray deploy-scenario:k8-canal-nofeature Change-Id: Ia96b01f79fb058e045c5b7d9d9aecb7f15a21e63 Signed-off-by: wutianwei <wutianwei1@huawei.com>
2018-04-12Update prepare-functest role for k8s and fix fetching xci.envFatih Degirmenci3-25/+61
This change updates prepare-functest role for testing k8s scenarios using functest healthcheck. The changes include - update tasks to skip checking/creation of public gateway which is needed for OpenStack based scenarios - update run-functest.sh.j2 template and set the used docker image name based on FUNCTEST_SUITE_NAME that is going to be used - update run-functest.sh.j2 template and add commands needed to run tests using functest-kubernetes-${FUNCTEST_SUITE_NAME} docker image - update env.j2 to exclude setting the var EXTERNAL_NETWORK which is needed for OpenStack based scenarios Apart from updating the the prepare-functest role, a bug has also been fixed by adding the fetching of xci.env for installer kubespray. installer-type:kubespray deploy-scenario:k8-nosdn-nofeature Change-Id: Ia701db9748ea9509a2dc165341285fb189aa7266 Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
2018-04-11Set additional variables for functestFatih Degirmenci1-1/+1
CI_LOOP, NODE_NAME, and BUILD_TAG are needed for logging info to console. FUNCTEST_MODE and FUNCTEST_SUITE_NAME are important for stating what level of testing we do for verify and merge jobs. Change-Id: Iaa5499155b4b94a1cfc6b5c70fe6f8f7417502a6 Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
2018-04-10Merge "Revert "display the correct deploy scenario for the functest run""Fatih Degirmenci1-1/+1
2018-04-10Merge "xci: osa: Move SSL certification tasks to a new file"Manuel Buil1-0/+32
2018-04-09Revert "display the correct deploy scenario for the functest run"Manuel Buil1-1/+1
This reverts commit 5dc7b76e38019c059cea159769cdb2c37af98ded. OPENSTACK_OSA_VERSION was removed by this patch and that variable is needed. By looking at the patch, it seems theat variable was removed by mistake Change-Id: I73dc7a7ec393231717f847ff303f9b2f99a00cc0
2018-04-08[XCI] Fix ansible synchronize module parameterwutianwei1-1/+1
synchronize module unsupported parameter "recurse", it would be failed, when trying to synchronize the directory. we need change it to "recursive", more information please refer to http://docs.ansible.com/ansible/devel/modules/synchronize_module.html Change-Id: If18ce8a3411ba9425dd573f090c5f4e0c41858e0 Signed-off-by: wutianwei <wutianwei1@huawei.com>
2018-04-06xci: osa: Move SSL certification tasks to a new fileMarkos Chandras1-0/+32
The tasks for creating and managing the XCI SSL certificates can be shared between installers so move them to a common file. Change-Id: I9df82517e737681420429a992aa8d68e78528fd4 Signed-off-by: Markos Chandras <mchandras@suse.de>
2018-04-06Move configuration network templatesVictor Morales11-5/+5
The jinja templates that are used for networking setup are based on the openstack-ansible needs, those needs can differ for another installers. This change propose to make the network configuration depending on the installer. Signed-off-by: Victor Morales <victor.morales@intel.com> Change-Id: Ie805c3c7716393377d4dfcb32ed794cc1039d515
2018-04-04xci: osa: Use Ansible modules to create ssl certificatesMarkos Chandras1-27/+9
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>
2018-04-03xci: osa: Move tasks for managing SSH keys to a new fileMarkos Chandras1-0/+47
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>
2018-03-28xci: bootstrap-host: Make active network interface consistentMarkos Chandras2-21/+50
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>
2018-03-28xci: Use proper Ansible modules to manage SSH keysMarkos Chandras1-0/+14
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>
2018-03-28Merge "xci: playbooks: Fixes various ansible-lint warnings"Markos Chandras6-7/+22
2018-03-26xci: get-opnfv-scenario-requirements: Use checksum for rsync updatesMarkos Chandras1-0/+8
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>
2018-03-26xci: playbooks: Fixes various ansible-lint warningsMarkos Chandras6-7/+22
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>
2018-03-26xci: get-opnfv-scenario-requirements: Fix local scenario syncMarkos Chandras1-4/+4
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>
2018-03-24xci: playbooks: Fix synchronization of external scenariosMarkos Chandras1-1/+1
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>
2018-03-22Merge "xci: playbooks: Fix message on fail task for deployed scenario"Fatih Degirmenci1-2/+2
2018-03-22Move bootstrap-scenarios.yml to common playbooks directorywutianwei1-0/+27
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>
2018-03-22xci: playbooks: Fix message on fail task for deployed scenarioMarkos Chandras1-2/+2
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>
2018-03-21Clean up opnfv ansible vars and switch to lowercaseFatih Degirmenci2-41/+41
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>
2018-03-20Add proxy supportVictor Morales2-0/+8
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>
2018-03-20Merge changes from topic 'allow-deployment-overrides'Markos Chandras1-42/+0
* changes: xci: infra: bifrost: Avoid installing Ansible twice Add initial support for multiple infra deployers
2018-03-20Add initial support for multiple infra deployersMarkos Chandras1-42/+0
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>