951924ab51f78f984cbfa5625ce1f3b708e9fd16
75 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
Jonathan Rosser
|
951924ab51 |
Use keystone catalog and fix looking up and storing admin tenant id
Trove is now able to properly use the service catalog [1]. We have another[2] patch that this patch depends-on, which causes us to have a circular dependency. As the change is minimal, should be ok to squash them together to be able to fix that role. The paragraph bellow contains the commit message of the patch that is being squashed. The 'Get admin tenant id' task was passing invalid arguments to the os_project_facts module, and the 'Store admin tenant id' task was not using the correct variable to retrieve the project id. [1] https://review.opendev.org/#/c/574254/ [2] https://review.opendev.org/#/c/665458/ Change-Id: I779ba715d20d83b1efe4f07226a5eadd7e0a1870 |
||
|
Kanishk Godha
|
2563c39ab0 |
Replace Module
Modified the file to use the os_project module instead of the keystone module. w Change-Id: Ib12f291002914cc2fcd9df34fad54ef23176ee70 |
||
|
OpenStack Proposal Bot
|
3f7c0c1313 |
Updated from OpenStack Ansible Tests
Change-Id: Icd40bcdf33e260a6219407f0d21ef3d84498cc63 |
||
|
OpenStack Proposal Bot
|
a2bfa3da8d |
Updated from OpenStack Ansible Tests
Change-Id: Id5875a54ad7b1119bd80f9f10c45bf43c2da3719 |
||
|
Zuul
|
aa4df37921 | Merge "Updated from OpenStack Ansible Tests" | ||
|
Jonathan Rosser
|
0b0cd41801 |
Delegate service network creation to service setup host
Change-Id: Id81ab36c3b812b734d47846b4a6f049542a593ab |
||
|
OpenStack Proposal Bot
|
d97f43f34f |
Updated from OpenStack Ansible Tests
Change-Id: I72889e7afcf3aaf0aea7a0e232e567afbf6dfe5e |
||
|
Zuul
|
68c5162597 | Merge "Test using integrated build" | ||
|
Mohammed Naser
|
cce89975cd |
Test using integrated build
In order to do a more complete verification of any patches, we add a full uncontainerised OpenStack deployment to do the functional testing using the integrated repo. This replaces the previous functional test mechanism. Any additional role tests are left as-is. They will require some extra implementation in the integrated build before they can be transferred. There are some developer mode references that are causing the role to not run properly due to an undefined variable. Depends-On: https://review.openstack.org/649397 Depends-On: https://review.openstack.org/649442 Change-Id: Ib021b074d4675ca5a3164cfd5f0196d347740639 |
||
|
OpenStack Proposal Bot
|
caba3093c9 |
Updated from OpenStack Ansible Tests
Change-Id: I4a2696cd2727658fadbe56f172b54e70db57aa6b |
||
|
Guilherme Steinmüller
|
c9330452d0 |
Update role for new source build process
The variables trove_developer_mode and trove_venv_download no longer carry any meaning. This review changes trove to do the equivalent of what developer_mode was all the time, meaning that it always builds the venv and never requires the repo server, but it will use a repo server when available. As part of this, we move the source build out of its own file because it's now a single task to include the venv build role. This is just to make it easier to follow the code. Change-Id: I08c864eaef894074326d765bb424fa6b98ec0ed2 |
||
|
Kevin Carter
|
8a7b586848 |
Remove the private option from include_role
The private option on include role was never implemented and will no longer be developed. This change removes the option so ansible no longer raises a deprecation warning. Change-Id: Ia682b9fdeef6d29546c5996bd7bf2978ae6f0ef3 Signed-off-by: Kevin Carter <kevin.carter@rackspace.com> |
||
|
Kourosh Vivan
|
24151682bd |
Add segmentation option
Needed if trove service network is vlan or vxlan or gre If flat, this option is omit Change-Id: Ic28a6802ad00178cbabb7303c22e16fcf3a4f83a |
||
|
Jesse Pretorius
|
6f76d95d01 |
Enable overriding the service setup host python interpreter
In order to enable the service setup host python interpreter to be changed easily, we make it a variable. This will be useful when someone sets the service setup host to be the utility container, because we'll be able to set this var by default. Change-Id: I2a4b1b82307b3dd195bff8f9a8fb219ad581c2ad |
||
|
Zuul
|
ee7531a932 | Merge "use include_tasks instead of include" | ||
|
caoyuan
|
d21b6809e9 |
use include_tasks instead of include
include is marked as deprecated since ansible 2.4[0] Switch to include_tasks or import_playbook as necessary [0] https://docs.ansible.com/ansible/2.4/include_module.html#deprecated Change-Id: I2351c93c2ce5beb44404dc05b487f40e14973810 |
||
|
Jesse Pretorius
|
92614127c7 |
Use a common python build/install role
In order to radically simplify how we prepare the service venvs, we use a common role to do the wheel builds and the venv preparation. This makes the process far simpler to understand, because the role does its own building and installing. It also reduces the code maintenance burden, because instead of duplicating the build processes in the repo_build role and the service role - we only have it all done in a single place. We also change the role venv tag var to use the integrated build's common venv tag so that we can remove the role's venv tag in group_vars in the integrated build. This reduces memory consumption and also reduces the duplication. This is by no means the final stop in the simplification process, but it is a step forward. The will be work to follow which: 1. Replaces 'developer mode' with an equivalent mechanism that uses the common role and is simpler to understand. We will also simplify the provisioning of pip install arguments when doing this. Depends-On: https://review.openstack.org/598957 Change-Id: Iaff49b75b03635fb07260c9a96f6459d270aed83 Implements: blueprint python-build-install-simplification Signed-off-by: Jesse Pretorius <jesse.pretorius@rackspace.co.uk> |
||
|
OpenStack Proposal Bot
|
403372c93c |
Updated from OpenStack Ansible Tests
Change-Id: Id584ab056bf23db6459aa4c6f6b12f7e853c6c8a |
||
|
OpenStack Proposal Bot
|
96f65cb3d7 |
Updated from OpenStack Ansible Tests
Change-Id: I373aec0522117508a94792145c43d450f41880d7 |
||
|
Zuul
|
f3c39b9e33 | Merge "Setup oslo.messaging extra packages for optional drivers" | ||
|
Jesse Pretorius
|
5333f1a759 |
Allow tags to be used for MQ tasks
The use of 'include_tasks' and a loop of variables creates a situation where a user is unable to use tags to scope the inclusion of only the MQ tasks when running the playbooks. The use-case this is important for is when the rabbitmq containers are destroyed and rebuilt in order to resolve an issue with them, and the user wishes to quickly recreate all the vhosts/users. Ansible's 'include_tasks' is a dynamic inclusion, and dynamic inclusions are not included when using tags. The nice thing about dynamic inclusions is that they completely skip all tasks when the condition does not apply, cutting down deploy time. However, given the use-case, we should rather take on the extra deployment time. This patch changes the dynamic inclusion to a static one, adds a 'common-mq' tag to cover all MQ implementations, and re-implements the 'common-rabbitmq' tag for the tasks that relate to RabbitMQ specifically. It also implements conditionals for each task set so that the rpc/notify tasks can be skipped if a vhost/user is not required for that purpose (eg: swift does not use RPC, and most roles will not use notifications by default). Depends-On: https://review.openstack.org/588191 Change-Id: I320ae83839869ee89fa5db3bf5c55d245f3b17db |
||
|
Jesse Pretorius
|
63afb90d82 |
Add missing domain_id argument to os_project task
Somehow the previous patch merged without this required argument. Change-Id: I18a99443d457a7b50f4c1beb7cc123f716f1ad20 |
||
|
Andy Smith
|
820fe6786f |
Setup oslo.messaging extra packages for optional drivers
Change-Id: I23eecb8747dad03df32927697e4d01fbb9224770 |
||
|
Jesse Pretorius
|
f2c6b96076 |
Move MQ vhost/user creation into role
There is no record for why we implement the MQ vhost/user creation outside of the role in the playbook, when we could do it inside the role. Implementing it inside the role allows us to reduce the quantity of group_vars duplicated from the role, and allows us to better document the required variables in the role. The delegation can still be done as it is done in the playbook too. In this patch we implement two new variables: - trove_oslomsg_rpc_setup_host - trove_oslomsg_notify_setup_host These are used in the role to allow delegation of the MQ vhost/user setup for each type to any host, but they default to using the first member of the applicable oslomsg host group. We also adjust some of the defaults to automatically inherit existing vars set in group_vars form the integrated build so that we do not need to do the wiring in the integrated build's group vars. We still default them in the role too for independent role usage. Change-Id: I88514f00c4b4c0452b573d765bb895cb562f952e |
||
|
Jesse Pretorius
|
ad2d239eb4 |
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: I9ce106569ced891c551b36506d360e4b8718c7e3 |
||
|
Jean-Philippe Evrard
|
1b03c3debe |
Fix usage of "|" for tests
With the more recent versions of ansible, we should now use "is" instead of the "|" sign for the tests. This should fix it. Change-Id: I27326b56cfec69444dae0ca1c7abf0b78ad2299b |
||
|
Zuul
|
faf3357177 | Merge "Move database creation into role" | ||
|
Kevin Carter
|
0fc0cc2ff9 |
Add systemd tags to include role
There are times when a deployer will need to reconfigure parts of an environment and having a general purpose tag to run said operation will be important especicially should the deployer be needing to reconfigure systemd unit files in a downtime event. This change adds a general purpose systemd tag where include_role and systemd is found which will assit operators with day2 operational tasks. Change-Id: Iab6c46d082e0218dcbd37ac4ac7a48fac7080a47 Signed-off-by: Kevin Carter <kevin.carter@rackspace.com> |
||
|
Kevin Carter
|
fb1b211021 |
correct typo in service setup
Change-Id: Idfa2ba78862912aea856c1e54b22e45de857a9c4 Signed-off-by: Kevin Carter <kevin.carter@rackspace.com> |
||
|
Jesse Pretorius
|
a1b510f7ba |
Move database creation into role
There is no record for why we implement the database creation outside of the role in the playbook, when we could do it inside the role. Implementing it inside the role allows us to reduce the quantity of group_vars duplicated from the role, and allows us to better document the required variables in the role. The delegation can still be done as it is done in the playbook too. In this patch we implement a new variable called 'trove_db_setup_host' which is used in the role to allow delegation of the database setup task to any host, but defaults to the first member of the galera_all host group. We also document the variable 'trove_galera_address' which has been used for a long time, but never documented. A bunch of unused variables have also been removed. The extras folder is removed given that trove's playbooks have been merged into the integrated repository. Change-Id: I0bf801416bd0349534588fc7272dffd4b86b7bb9 |
||
|
Zuul
|
f7d32b5099 | Merge "Convert role to use a common systemd service role" | ||
|
Zuul
|
20c3feaef4 | Merge "Only replace python when re-initializing the venv" | ||
|
Jesse Pretorius
|
6ad4d35c24 |
Do not log passwords
This prevents data to be leaked into the callback plugin. Change-Id: I52c62a5a3267023087343adeffc6301443c5f703 |
||
|
Jesse Pretorius
|
365cbc29b1 |
Only replace python when re-initializing the venv
We reinitialize the venv to ensure that the right version of python is in the venv, but we do not want virtualenv to also replace pip, setuptools and wheel so we tell it not to. If we don't do this then virtualenv will install the latest available version, which is not what we want. Change-Id: I59a70585a2bfe4916b3df8eb627f6f6a4b1ef19b Partial-Bug: #1764470 |
||
|
Kevin Carter
|
51fa0eb892 |
Convert role to use a common systemd service role
This removes the systemd service templates and tasks from this role and leverages a common systemd service role instead. This change removes a lot of code duplication across all roles all without sacrificing features or functionality. The intention of this change is to ensure uniformity and reduce the maintenance burden on the community when sweeping changes are needed. The exterior role is built to be OSA compatible and may be pulled into tree should we deem it necessary. Change-Id: Id833d4ecf9d17bb74c1c0702c00ace241ac48873 Signed-off-by: Kevin Carter <kevin.carter@rackspace.com> |
||
|
Jean-Philippe Evrard
|
2b51da5f0a |
Replace virtualenv-tools by a script
virtualenv-tools has a bug which gets triggered in gates: it can't change the shebang of a virtualenv python bin/ files if they were generated with a virtualenv script whose shebang ends with python2 instead of python. Because we can't modify virtualenv-tools, we use shell scripts instead. Change-Id: Iad3a44f35c57d92dcbbfde4acbd86a3a4eb1879d Partial-Bug: #1741634 |
||
|
Mohammed Naser
|
76fea25f33 |
Update the Tempest plugin to point towards the new plugin
The Trove service has split it's tests for Tempest in a seperate repo so this patch updates it. This patch also fixes the lint issue to use the systemd module reload feature instead of a command. Closes-Bug: #1747608 Co-Authored-By: Major Hayden <major@mhtx.net> Depends-On: I5f1ecb71c6125c29d6487bef6c2be215c1b561c1 Change-Id: I26d384a5c9aadade94052cc859f9405335635ed4 |
||
|
Aaron Mehar
|
2701e37f78 |
Adds CentOS 7 support
Fix circular python issues, same fix in Keystone and Barbican Change-Id: I77e60ed42ab43e3f5984b8a52dc5898325df1c8e |
||
|
Samuel Matzek
|
69f47bc587 |
Remove trove_regular_user
Remove the unnecessary trove_regular_user. The documenation that was referenced [1] when this was added to the role is intended to configure Trove for development purposes. The trove_regular_user is not used by the Trove service and is only being created to give the developer a non-admin user to use for testing. [1] https://docs.openstack.org/trove/latest/install/manual_install.html Change-Id: I7c9289e191255e92530ea62568b212320f705ff8 |
||
|
ZhongShengping
|
b316e406c6 |
Update URLs in documents according to document migration
Change-Id: Ib423aac8a0d5394b5f6803352c3f606cce18f0e1 |
||
|
Andy McCrae
|
7bfa684eb9 |
Allow the endpoint_type for service net creation to be specified.
Change-Id: I735a5e2e6d07813ad34c5203a4ef8cf29b17939c |
||
|
Andy McCrae
|
9855742abd |
Allow the developer constraints to be adjusted
In order to do a developer mode that allows installation of packages from local file, which take precedence over the developer_mode constraints, we need to allow the order of the constraints to be changed. This patch adds a "pip_install_developer_constraints" var which is used to set the developer mode constraints. By default this will leave the same behaviour but will allow additional constraints to be added, or the developermode constraints file to be overriden altogether. Change-Id: I64affcd1b3d5580e1cee5047df465e2ab8144211 |
||
|
Jesse Pretorius
|
cec3b715d1 |
Add venv_tag local fact
In order to make it easier to detect the currently deployed
venv for a service, and therefore allow smarter decisions
for things like upgrading, we implement the venv tag as a
local fact.
The file used to store facts will be the same for all
OpenStack services, with each service using its own section.
Example:
"ansible_local": {
"openstack_ansible": {
"trove": {
"venv_tag": "14.2.1"
}
}
}
Change-Id: Id2545ad38d78c5c28310b67a8a3eb74b8b51b026
|
||
|
Ravi Gummadi
|
1de5237221 |
Fix trove network related deployment issue
When openstack_networks is empty list, an error is seen while setting trove service network id. The error seen was "list object has no element 0". Added a validation task to fail if trove network is not created yet. Change-Id: I9acfc8e06f461073777469712fd6ce50e3187b30 |
||
|
Rick Box
|
ffdd1b3966 |
Fix for lookup and get_url occuring in different places
We use an SSH bastion host which we do our deployment through. The deployment host doesn't have direct access to the same network as the host. As a result the venv local checksum lookup fails. I have described this here: https://bugs.launchpad.net/openstack-ansible/+bug/1689283 This is a simple fix for this problem, assuming everything is good it will need repeating in multiple places in the code base. Change-Id: I681491539aa4aa3b3c88ce059ae6d1f7e56f651d |
||
|
Jesse Pretorius
|
27545d222a |
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: Ieaf67c9a776c43e9fd39c63a92642b55a49bb9bc |
||
|
Kyle L. Henderson
|
9d8a9347c4 |
Implement trove networking
To operate properly the trove guest agent needs access to rabbitmq and also the neutron network for trove to use must be created and defined in the trove.conf file. This changeset adds documentation, tasks and configuration defaults to setup the networking for trove. Change-Id: Idcf87c2eef0af475c02412f03433d22d7b08643f |
||
|
Kyle L. Henderson
|
b948402c76 |
Add RPC encryption key support
In the Ocata release, trove added support for encrypting the rpc communication between the guest instances and the control plane. These settings allow the user to specify installation specific keys versus using the default keys. Change-Id: Ie42d754d58e983a15b553ad8a399813c9a700344 |
||
|
Kevin Carter
|
b6efe327aa |
Ensure the components are isolated from the system
This creates a specific slice which all OpenStack services will operate from. By creating an independent slice these components will be governed away from the system slice allowing us to better optimise resource consumption. See the following for more information on slices: * https://www.freedesktop.org/software/systemd/man/systemd.slice.html See for following for more information on resource controls: * https://www.freedesktop.org/software/systemd/man/systemd.resource-control.html Tools like ``systemd-cgtop`` and ``systemd-cgls`` will now give us insight into specific processes, process groups, and resouce consumption in ways that we've not had access to before. To enable some of this reporting the accounting options have been added to the [Service] section of the unit file. Change-Id: I6dccb6eeabceea30922cbcf3a60e32e841612fd0 Signed-off-by: Kevin Carter <kevin.carter@rackspace.com> |
||
|
Chhavi Agarwal
|
17ce2cd1fe |
Adding the trove-guestagent.conf
Updating the trove-post-install to generate the trove-guestagent.conf during the os_trove deployment. Closes-Bug: #1658694 Change-Id: I4d8ac1b40d36b188718a02b89a1ea70fb89e7111 |