Commit Graph

32 Commits

Author SHA1 Message Date
Dmitriy Rabotyagov 8ceea78a97 Fix linters and metadata
With update of ansible-lint to version >=6.0.0 a lot of new
linters were added, that enabled by default. In order to comply
with linter rules we're applying changes to the role.

With that we also update metdata to reflect current state.

Depends-On: https://review.opendev.org/c/openstack/ansible-role-systemd_service/+/888223
Change-Id: I3905e334cfbeb7ccb976358016f81c5edd6cd284
2023-09-04 18:55:41 +02:00
Jonathan Rosser d8c643eeb2 Remove references to unsupported operating systems
All references to Gentoo, SUSE, Debian stretch and Centos-7  are removed.
Conditional tasks, ternary operators and variables are simplified where possible
OS specific variables files are generalised where possible

Change-Id: I746e9c3246a257ca57c56b63c25a3cf9fcc49c9a
2021-03-10 23:15:59 +00:00
Jean-Philippe Evrard a37d9a070b Clarify supported SUSE versions
This role only support openSUSE Leap 15, not 42.3, not tumbleweed.
Saying all is confusing and a bad practice. This fixes it, while
ensuring the job is properly defined to test that assertion.

Change-Id: I069e43812acfe537f7c8bd48e1511ea2f18ceda1
2019-05-21 09:50:57 +02:00
Mohammed Naser 38cf379e4c debian: add ci and update meta
This patch adds the Debian jobs for this role to make sure
it's always passing as well as updates the meta to reflect
it's support of Debian accordingly.

Depends-On: I9a92b73c419a0dc1cca40dacfef75de61a61db94
Change-Id: I498079817afff3643220b4b36b616fa920eb4e16
2019-04-06 18:58:09 -04:00
Markos Chandras 29f7c0624a SUSE: Add support for openSUSE Leap 15
This also removes python-keystonemiddleware from the distro packages
since anything that needs it should pull it as a dependency.

Depends-On: https://review.openstack.org/604473
Change-Id: I24b1afd41618bf5c090bc28a5514fd67d940824c
2018-09-28 14:46:49 +01:00
Jesse Pretorius 6b4c019918 Remove galera_client meta-dependency
Given that pymysql is pure python and has no C binding
dependencies, we no longer need the role to install the
MariaDB client libraries.

Change-Id: I2d7496d4d4fd4c8d10a355246fc5d5b26bd14d52
2018-09-16 03:25:53 +00:00
Jonathan Rosser 488d6ac80f Add bionic to galaxy_info metadata
Change-Id: Iabd4c665e50a3981661a120947458b334901987c
2018-08-02 15:03:45 +01:00
Jesse Pretorius 3bd96fecbf Execute service setup against a delegated host using Ansible built-in modules
In order to reduce the packages required to pip install on to the hosts,
we allow the service setup to be delegated to a specific host, defaulting
to the deploy host. We also switch as many tasks as possible to using the
built-in Ansible modules which make use of the shade library.

The 'virtualenv' package is now installed appropriately by the openstack_hosts
role, so there's no need to install it any more. The 'httplib2' package is a
legacy Ansible requirement for the get_url/get_uri module which is no longer
needed. The keystone client library is not required any more now that we're
using the upstream modules. As there are no required packages left, the task
to install them is also removed.

Change-Id: I2e33c4cb468e93259860b600719d87c4022d6805
2018-07-12 18:15:37 +01:00
Manuel Buil 7b2a0d0e03 Move the roles defined in meta to tasks
Defining roles in the meta directory is not recommended because of performance
and flexibility. It is better to define them as normal tasks and that's what
this patch does

Change-Id: I932fa228f994db975db3b80129a22a20896bd3ef
Signed-off-by: Manuel Buil <mbuil@suse.com>
2018-03-15 13:24:59 +00:00
Zuul 6f4bb91e8a Merge "Remove pip_install dependency" 2017-12-06 09:43:36 +00:00
Jean-Philippe Evrard e4b6d1512a Remove pip_install dependency
With addition of pip_install on every node, we don't
need to have pip_install as a meta dependency.

Depends-On: If3412bb888ebb854874bbc43eb76bfcb3e4a7868
Depends-On: I79ff70c438b44753be2a93f004ebbc46de0a963d
Change-Id: Ia3f488d33c660d3f45cc86394d75802ce77febdd
2017-12-05 11:52:44 +00:00
Zuul 3297c7c9c9 Merge "Fix swift port conflict" 2017-12-04 18:01:50 +00:00
Jean-Philippe Evrard 7dc9c890a9 Fix swift port conflict
To avoid any port conflict, whether on LB or on bare metal nodes,
we should make sure each service runs on its own port.

Here, we introduce a new variable, opendaylight_port, that maps
to upstream role port configuration ``nb_rest_port``.

Closes-Bug: 1735764
Depends-On: I55b310e6def8873ed5739f5f5176b867bc89443d
Needed-By: Ia91dc9c758a38f455e3b8ebb4aba65dbd13f409c
Change-Id: I49ff040ba96adb444f3f900190187b7607a0e256
2017-12-04 10:49:24 +00:00
Zuul 3e9853852a Merge "Remove jinja2 delimiters from when clause" 2017-12-03 13:00:43 +00:00
Major Hayden 36bf06eb6f Remove jinja2 delimiters from when clause
This patch removes jinja2 delimiters from the when clause.

Closes-Bug: 1735783
Depends-On: I55b310e6def8873ed5739f5f5176b867bc89443d
Change-Id: I97045d9bc090c4ba41de222a850f758c026cd176
2017-12-03 10:57:46 +00:00
Dimitrios Markou db404dc4c8 Add OvS-NSH support
To be able to perform SFC through NSH
protocol special Openvswitch packages are needed.

Blueprint: https://review.openstack.org/#/c/476121/

Change-Id: Id0e22067ac5d2a33aa2150dd65ac3fb9ae7c7542
Signed-off-by: Dimitrios Markou <mardim@intracom-telecom.com>
2017-12-01 12:17:39 +02:00
Jimmy McCrory c03c932c9b Use known group names
Avoid assuming that provider or deployment specific groups are defined
in inventory by making use of the group names defined in the
'neutron_services' var and checking group membership through a host's
group_names instead of Ansible's groups dictionary.

Change-Id: I66b7c639494d98fdb3baa52fe56c670e32dea3ce
2017-11-13 11:10:33 -08:00
Jean-Philippe Evrard 45b6d4d69e Add OpenStack-Ansible metadata
We need to add openstack ansible information in the role
metadata to be able to track role maturity. With it,
we can create a role maturity table and take decisions about
role deprecations.

Change-Id: Id27ce71765f15e78e8ef620582af389fc8abfce2
2017-10-11 09:05:32 +00:00
Juan Vidal Allende 7dce6e2b07 Add option to deploy OpenDaylight SDN Controller
- This commit adds a new ML2 backend that uses OpenDaylight SDN
 Controller and networking-odl to handle neutron networking.

 - Installation of OpenDaylight uses the official ansible-opendaylight
 Ansible role.

 - It requires OpenvSwitch as traffic forwarder.

 - New test scenario for OpenDaylight

Change-Id: I67083992660a1aca4b6edd5ecf4f28113c0e547f
2017-08-18 09:19:21 +02:00
Markos Chandras dad6827891 Add support for the openSUSE Leap distributions
Add support for the openSUSE Leap distributions. Nothing special is
required for this except for adding the appropriate distro variables
file and also update the zypper cache before package installation.

Change-Id: I0e6461262ddc40aae7dcc1d5595f00dc802d94c2
2017-07-11 12:56:16 +01:00
Jesse Pretorius 9d43b6ffd0 Optimise apt cache update task
The update of the apt cache and the package installation
can all be handled in a single task by providing the
package action plugin with the right parameters. This
removes an extra task to optimise execution.

The minimum Ansible version is raised to 2.2 due to a
known bug [1] in Ansible's apt module which does not
update the cache properly if the cache update and the
install are combined in a single task.

[1] https://github.com/ansible/ansible-modules-core/issues/1497

Change-Id: I69970a3a76e6ac56095d0077c31f811d717d9216
2017-04-24 09:02:32 +00:00
Jean-Philippe Evrard 9eef229c0b Implement Dragonflow deployment
Add a deployment for Dragonflow, when neutron_plugin_type is ml2.dragonflow.

Change-Id: Id5184845d18461c6c37a560cdc0404c8a487c020
Co-Authored-By: Omer Anson <omer.anson@toganetworks.com>
2017-02-09 15:33:57 +00:00
Andy McCrae 00c1bb4ea3 Remove Trusty support from os_neutron role
Change-Id: I68190e4d5bbb99ceaa139229fa39b7499644df6e
Implements: blueprint trusty-removal
2016-12-15 13:20:29 +00:00
Jesse Pretorius 7cbcc7bc74 Use updated get_url module checksum functionality
Starting in Ansible 2.0, the get_url [1] module provides the
ability for a checksum to be provided to the get_url module
which will be verified against the local destination file
and the task skipped if it matches.

[1] http://docs.ansible.com/ansible/get_url_module.html

This patch implements the use of this functionality.

The ability to ignore a venv download failure is also removed
as this is not necessary or desirable. It is better for the
download to fail and the playbook execution to stop immediately
so that the failure point is exposed.

Change-Id: I564c0055cfae461fc8417ee7e57c5acb7080abe6
2016-11-09 16:28:47 +00:00
Logan V a0b5c6bfe5 Project Calico integration
Integrate deployment for Project Calico's Neutron networking
plugin into the os_neutron role.

See http://docs.openstack.org/developer/networking-calico/
for more information about Calico.

Change-Id: I80546b6deefe0878398716d173b7dcc36c3bef3a
2016-08-22 14:47:25 -05:00
Michael Gugino 3344d7566c Add missing xenial to meta.yml
os_neutron now supports Ubuntu 16.04, aka xenial.
This commit adds the missing platform version xenial to
the role meta data.

Change-Id: I50c77e3bcead7dfd22d7fd5579ab3b93cb9a2d59
2016-06-27 15:33:05 -04:00
Jimmy McCrory 063824e9b3 Remove pip_lock_down dependency
The pip_install and pip_lock_down roles have been merged.

Remove pip_lock_down from the role's meta dependencies and test
requirements.

Change-Id: I63c2700cd5636500fdd294d564ed5a76a12faed6
2016-06-07 23:36:48 -05:00
Jesse Pretorius b28687fa16 Update min_ansible_version to 1.9
This role makes use of the ternary filter which was only introduced in
Ansible 1.9, this patch updates the min_ansible_version to 1.9.

Change-Id: I33bc70206d5b51ea8d5da88a30ae877d78a2bba9
2016-04-11 12:20:46 +01:00
Jesse Pretorius 373d75a584 Ensure that pip lock down happens before other dependencies
The pip_install role is depended on by a lot of other roles, and
therefore sometimes gets processed prior to the pip_lock_down
role resulting in the pip, setuptools and wheels packages being
installed from a source other than the repo server once the repo
server is available. This is not the intended behaviour - the
repo server should always be a the primary source once it's
available.

This patch ensures that the pip_lock_down role is applied before
all the other dependent roles to ensure that the expected
behaviour is followed.

Change-Id: Ib899784e1f38914df37267418a5df77b7aa88737
2016-03-31 17:08:31 +00:00
Jimmy McCrory d750a0de32 Enable developer mode
This commit adds the ability to install neutron without a repo server.
This pattern is lifted from the os_keystone role and allows us to
further develop functional testing for this role.

Change-Id: I6a949ce79b7293efd1b966d253ee18f0339d87a4
Partial-Bug: #1553970
2016-03-11 11:45:33 -08:00
Kevin Carter e7cd187856 added role to pin packages
This new role is now providing the ability for a user to pin apt
packages as they see fit. The idea is to allow someone to implement
pinning in a generic way that can be represented as a global variable
or as a hostvar. The new role has been added to all install roles as
a dependency which will allow it to ensure that packages are pinned
everywhere as would be expected.

Change-Id: I354e8515570fa7174366ba57d57aece3c304568e
2015-05-08 13:22:42 -05:00
Kevin Carter ae6e53bd04 Convert existing roles into galaxy roles
This change implements the blueprint to convert all roles and plays into
a more generic setup, following upstream ansible best practices.

Items Changed:
* All tasks have tags.
* All roles use namespaced variables.
* All redundant tasks within a given play and role have been removed.
* All of the repetitive plays have been removed in-favor of a more
  simplistic approach. This change duplicates code within the roles but
  ensures that the roles only ever run within their own scope.
* All roles have been built using an ansible galaxy syntax.
* The `*requirement.txt` files have been reformatted follow upstream
  Openstack practices.
* Dynamically generated inventory is now more organized, this should assist
  anyone who may want or need to dive into the JSON blob that is created.
  In the inventory a properties field is used for items that customize containers
  within the inventory.
* The environment map has been modified to support additional host groups to
  enable the seperation of infrastructure pieces. While the old infra_hosts group
  will still work this change allows for groups to be divided up into seperate
  chunks; eg: deployment of a swift only stack.
* The LXC logic now exists within the plays.
* etc/openstack_deploy/user_variables.yml has all password/token
  variables extracted into the separate file
  etc/openstack_deploy/user_secrets.yml in order to allow seperate
  security settings on that file.

Items Excised:
* All of the roles have had the LXC logic removed from within them which
  should allow roles to be consumed outside of the `os-ansible-deployment`
  reference architecture.

Note:
* the directory rpc_deployment still exists and is presently pointed at plays
  containing a deprecation warning instructing the user to move to the standard
  playbooks directory.
* While all of the rackspace specific components and variables have been removed
  and or were refactored the repository still relies on an upstream mirror of
  Openstack built python files and container images. This upstream mirror is hosted
  at rackspace at "http://rpc-repo.rackspace.com" though this is
  not locked to and or tied to rackspace specific installations. This repository
  contains all of the needed code to create and/or clone your own mirror.

DocImpact
Co-Authored-By: Jesse Pretorius <jesse.pretorius@rackspace.co.uk>
Closes-Bug: #1403676
Implements: blueprint galaxy-roles
Change-Id: I03df3328b7655f0cc9e43ba83b02623d038d214e
2015-02-18 10:56:25 +00:00