Age | Commit message (Collapse) | Author | Files | Lines |
|
This patch is doing the first work item of the spec:
https://github.com/opnfv/releng-xci/blob/master/docs/specs/infra_manager.rst
It creates the required VMs by XCI to afterwards deploy the VIM. It does that
by reading the pdf provided by the user.
- It is currently assumed that the OS for the VM will be installed in the first
disk of the node described by the pdf
- It is assumed that the opnfv VM characteristics are not described in the pdf
but in a similar document called opnfv_vm.yml
- All references to csv from bifrost-create-vm-nodes were removed
Change-Id: I46a85284e4ce7df21cbf66f66619b35f74251e68
Signed-off-by: Manuel Buil <mbuil@suse.com>
Co-Authored-by: Markos Chandras <mchandras@suse.de>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
|
|
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>
|
|
|
|
|
|
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
|
|
|
|
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>
|
|
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>
|
|
installer-type:kubespray
deploy-scenario:k8-flannel-nofeature
Change-Id: Ie47efe4759b2cf52421cd2edf5e7817442b0026f
Signed-off-by: Taseer Ahmed <taseer94@gmail.com>
|
|
installer-type:kubespray
deploy-scenario:k8-calico-nofeature
Change-Id: Ief8557149fd47faab43f8f4bedcf6466dac2275f
Signed-off-by: wutianwei <wutianwei1@huawei.com>
|
|
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>
|
|
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>
|
|
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>
|
|
|
|
|
|
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
|
|
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>
|
|
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>
|
|
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
|
|
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
|