Age | Commit message (Collapse) | Author | Files | Lines |
|
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>
|
|
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>
|
|
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>
|
|
|
|
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>
|
|
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>
|
|
Change-Id: I330bc036f901d4ba61bc94ee6e085cadf54b4d8b
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>
|
|
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>
|
|
The location where we were putting the scenarios was wrong as it was
placing them in xci/playbooks/roles/$scenario/$scenario so in the end
the Ansible couldn't find the role we were looking for. As a result,
the role was never executed. Moreover, we can use the synchronize
module instead of the shell which should be both faster and safer.
Change-Id: I3d996652bb6a62d23e259da5674d94596dad4d8d
Signed-off-by: Markos Chandras <mchandras@suse.de>
|
|
Make sure that any local changes to scenarios are being propagated to
the checkouts. This should only happen when we are testing the 'master'
branch of the scenario since it may be desirable to test a specific SHA
in which case we shouldn't modify the checkout code.
Change-Id: I4197f09a3e4d5a54c86905bc556b06e08948fbc2
Signed-off-by: Markos Chandras <mchandras@suse.de>
|
|
1. the "+" and "'" will be part of the string in the path parameter of ansible.
So the directories we create are not right. we need remove these char.
2. it miss the "{{" in ansible variable
Change-Id: I30c9804450588c63f5f18c63c1d90cd869fad90e
Signed-off-by: wutianwei <wutianwei1@huawei.com>
|
|
We need to use proper jinja2 code to set the fact properly.
Change-Id: I903233c0e059edf2af973ea9c08b8bd80795e1a9
Signed-off-by: Markos Chandras <mchandras@suse.de>
|
|
Rest of the OPNFV projects use the variable DEPLOY_SCENARIO so
XCI should be aligned with them as well even though OPNFV_SCENARIO
fits better than DEPLOY_SCENARIO.
Change-Id: Id48c41fa8a1fa9493cfc7a4906f64b6d8ed27d64
Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
|
|
Scenarios may not support all XCI flavors so record that information
per scenario basis. This will resolve failures when we try to deploy
a scenario that doesn't support the selected flavor.
JIRA: RELENG-338
Change-Id: I5f73b139ee6c1831896aa32147c4dc1368673d92
Signed-off-by: Markos Chandras <mchandras@suse.de>
|
|
There is too much noise when XCI is cloning repositories, installing
packages etc so lets make the console output somewhat more readable.
Change-Id: I15667e0349f943ad5488daf0e3cea9336c9166d1
Signed-off-by: Markos Chandras <mchandras@suse.de>
|
|
This change fixes the scenario os-nosdn-nofeature by
moving directories/files from os-nosdn-ovs to os-nosdn-nofeature.
The contents of the files and variables are also either adjusted
or removed in order to prevent impacts on CI.
Change-Id: Icfde27f413c8f93d097f9f262c8cb1230b7fe59d
Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
|
|
|
|
All scenarios are being cloned to XCI_SCENARIOS_CACHE so look
there for the various override files. This will allow external
scenarios to influence the XCI environment.
Change-Id: I39a48ce55baaa29d09737ce6232867ef1165f099
Signed-off-by: Markos Chandras <mchandras@suse.de>
|
|
Previously, the scenarios were symlinked from the checked out location
to {{ playbook_dir }}/roles. However, the symlinks were pointless since
they only exist in our local releng-xci directory. The roles much also
be present in OPNFV_RELENG_PATH which is the place where the deployment
happens. We use 'rsync' to copy our local releng-xci directory to the
remote one so our roles can be automatically be placed there if we copy
them instead of symlinking them.
Change-Id: I735db71eedfaa51d7196761aa2af8329d86cb775
Signed-off-by: Periyasamy Palanisamy <periyasamy.palanisamy@ericsson.com>
Signed-off-by: Markos Chandras <mchandras@suse.de>
|
|
In order to plug the scenarios' roles properly, we need to have all
roles physically present in advance. As such, add a
opnfv-scenario-requirements.yml file which can be used to populate the
roles directory with all the scenarios.
Change-Id: I0cdadb63849e4565c31559817660d23217879053
Signed-off-by: Markos Chandras <mchandras@suse.de>
|