- Sep 21, 2021
-
-
Mark Goddard authored
This allows one variable to specify the tag for all MariaDB images. Change-Id: I164cdd41787f8bd52d8e08cb380d42625a8bbd84 TrivialFix
-
- Aug 10, 2021
-
-
Radosław Piliszek authored
We get a nice optimisation by using a filtered loop instead of task skipping per service with 'when'. Partially-Implements: blueprint performance-improvements Change-Id: I8f68100870ab90cb2d6b68a66a4c97df9ea4ff52
-
- Jun 23, 2021
-
-
Mark Goddard authored
By default, Ansible injects a variable for every fact, prefixed with ansible_. This can result in a large number of variables for each host, which at scale can incur a performance penalty. Ansible provides a configuration option [0] that can be set to False to prevent this injection of facts. In this case, facts should be referenced via ansible_facts.<fact>. This change updates all references to Ansible facts within Kolla Ansible from using individual fact variables to using the items in the ansible_facts dictionary. This allows users to disable fact variable injection in their Ansible configuration, which may provide some performance improvement. This change disables fact variable injection in the ansible configuration used in CI, to catch any attempts to use the injected variables. [0] https://docs.ansible.com/ansible/latest/reference_appendices/config.html#inject-facts-as-vars Change-Id: I7e9d5c9b8b9164d4aee3abb4e37c8f28d98ff5d1 Partially-Implements: blueprint performance-improvements
-
- May 28, 2021
-
-
Pierre Riteau authored
The mariadb image was removed in Wallaby, leading to database backup failures. Change-Id: I90986e7521779997df2782767bb95efcbd8ef232 Closes-Bug: #1928129
-
- Apr 15, 2021
-
-
Michał Nasiadka authored
Change-Id: I14376dac46809f8bb466ec41f279be8d323d459d
-
- Apr 14, 2021
-
-
Michal Arbet authored
- Replace hardcoded haproxy monitor user with variable. - Rename mariadb_backup variable to mariadb_backup_possible. - Drop creation of monitor user in handlers as this is now handled in register.yml for good reason. Change-Id: I255a79d36ae18ca42d0befd00b235ca509197db3
-
Michał Nasiadka authored
Change-Id: Id16ec7d7b57630ae20430675c4a196e63ca8d4a5
-
- Apr 07, 2021
-
-
Michal Arbet authored
Kolla-ansible is currently installing mariadb cluster on hosts defined in group['mariadb'] and render haproxy configuration for this hosts. This is not enough if user want to have several service databases in several mariadb clusters (shards). Spread service databases to multiple clusters (shards) is usefull especially for databases with high load (neutron,nova). How it works ? It works exactly same as now, but group reference 'mariadb' is now used as group where all mariadb clusters (shards) are located, and mariadb clusters are installed to dynamic groups created by group_by and host variable 'mariadb_shard_id'. It also adding special user 'shard_X' which will be used for creating users and databases, but only if haproxy is not used as load-balance solution. This patch will not affect user which has all databases on same db cluster on hosts in group 'mariadb', host variable 'mariadb_shard_id' is set to 0 if not defined. Mariadb's task in loadbalancer.yml (haproxy) is configuring mariadb default shard hosts as haproxy backends. If mariadb role is used to install several clusters (shards), only default one is loadbalanced via haproxy. Mariadb's backup is working only for default shard (cluster) when using haproxy as mariadb loadbalancer, if proxysql is used, all shards are backuped. After this patch will be merged, there will be way for proxysql patches which will implement L7 SQL balancing based on users and schemas. Example of inventory: [mariadb] server1 server2 server3 mariadb_shard_id=1 server4 mariadb_shard_id=1 server5 mariadb_shard_id=2 server6 mariadb_shard_id=3 Extra: wait_for_loadbalancer is removed instead of modified as its role is served by check already. The relevant refactor is applied as well. Change-Id: I933067f22ecabc03247ea42baf04f19100dffd08 Co-Authored-By:
Radosław Piliszek <radoslaw.piliszek@gmail.com>
-
- Mar 13, 2021
-
-
Michal Arbet authored
This trivial patch is just turning off ansible changed report for group_by tasks as it could be confusing for user. Change-Id: I7512af573782359a6f01290a55291ac7eb0de867
-
- Jan 29, 2021
-
-
fudunwei authored
Need to consider Negative seqno to compare in some cases, but the task does not support to do that, we need to make it work. 1.we use mariabackup to restore datas on control1, delete the mariadb data on control2 and control3, and then use cluster recovery, as a result that the seqno of the other two nodes will be '-1'. 2. add one more control node into our existing mariadb cluster, and then use cluster recovery, the seqno of the new node will be '-1'. Change-Id: Ic1ac8656f28c3835e091637014f075ac5479d390
-
- Jan 25, 2021
- Jan 21, 2021
-
-
Will Szumski authored
The handler was firing even when we were only generating config. This is an issue because the services may not have been deployed. TrivialFix Change-Id: I2f832d73138b4c9f29e3c71e2463293eab71483a
-
- Dec 14, 2020
-
-
Mark Goddard authored
This reverts commit 9cae59be. Reason for revert: This patch was found to introduce issues with fluentd customisation. The underlying issue is not currently fully understood, but could be a sign of other obscure issues. Change-Id: Ia4859c23d85699621a3b734d6cedb70225576dfc Closes-Bug: #1906288
-
- Dec 10, 2020
-
-
Mark Goddard authored
Mariadb recovery fails if a cluster has previously been deployed, but any of the mariadb containers do not exist. Steps to reproduce ================== * Deploy a mariadb galera cluster * Remove the mariadb container from at least one host (docker rm -f mariadb) * Run kolla-ansible mariadb_recovery Expected results ================ The cluster is recovered, and a new container deployed where necessary. Actual results ============== The task 'Stop MariaDB containers' fails on any host where the container does not exist. Solution ======== This change fixes the issue by using the 'ignore_missing' flag for kolla_docker with the stop_container action. This means the task does not fail when the container does not exist. It is also necessary to swap some 'docker cp' commands for 'cp' on the host, using the path to the volume. Closes-Bug: #1907658 Change-Id: Ibd4a6adeb8443e12c45cbab65f501392ffb16fc7
-
- Nov 08, 2020
-
-
Radosław Piliszek authored
CentOS 8 should work fine without the workaround. This change adds the missing CentOS 8 IPv6 CI job as well. Change-Id: I58af7a09b5ae09a10b9efc33c1f30c2efc6613f7
-
- Oct 27, 2020
-
-
Radosław Piliszek authored
Main plays are action-redirect-stubs, ideal for import_tasks. This avoids 'include' penalty and makes logs/ara look nicer. Fixes haproxy and rabbitmq not to check the host group as well. Change-Id: I46136fc40b815e341befff80b54a91ef431eabc0 Partially-Implements: blueprint performance-improvements
-
- Oct 12, 2020
-
-
Radosław Piliszek authored
Config plays do not need to check containers. This avoids skipping tasks during the genconfig action. Ironic and Glance rolling upgrades are handled specially. Swift and Bifrost do not use the handlers at all. Partially-Implements: blueprint performance-improvements Change-Id: I140bf71d62e8f0932c96270d1f08940a5ba4542a
-
- Sep 29, 2020
-
-
Isaac Prior authored
Trivial: log-error & log-bin are both invalid mariadb config options. The appropriate options are log_error & log_bin. Note - this change mostly unnecessary as log_error is provided via cli and log_bin value is the default. Change-Id: If7051f7139a68864e599cccffaf17c21855fc4a8
-
- Sep 17, 2020
-
-
Michal Nasiadka authored
Since change [1] merged we have two mariadb images (mariadb and mariadb-server) Let's use mariadb-server in kolla-ansible, so we can deprecate mariadb image. [1]: https://review.opendev.org/#/c/710217/ Change-Id: I4ae2ccaaba8fb516f469f4ce8628e8c61de03f0d
-
- Aug 28, 2020
-
-
Mark Goddard authored
Including tasks has a performance penalty when compared with importing tasks. If the include has a condition associated with it, then the overhead of the include may be lower than the overhead of skipping all imported tasks. For unconditionally included tasks, switching to import_tasks provides a clear benefit. Benchmarking of include vs. import is available at [1]. This change switches from include_tasks to import_tasks where there is no condition applied to the include. [1] https://github.com/stackhpc/ansible-scaling/blob/master/doc/include-and-import.md#task-include-and-import Partially-Implements: blueprint performance-improvements Change-Id: Ia45af4a198e422773d9f009c7f7b2e32ce9e3b97
-
- Aug 10, 2020
-
-
Mark Goddard authored
Previously we mounted /etc/timezone if the kolla_base_distro is debian or ubuntu. This would fail prechecks if debian or ubuntu images were deployed on CentOS. While this is not a supported combination, for correctness we should fix the condition to reference the host OS rather than the container OS, since that is where the /etc/timezone file is located. Change-Id: Ifc252ae793e6974356fcdca810b373f362d24ba5 Closes-Bug: #1882553
-
- Jul 28, 2020
-
-
Mark Goddard authored
Including tasks has a performance penalty when compared with importing tasks. If the include has a condition associated with it, then the overhead of the include may be lower than the overhead of skipping all imported tasks. In the case of the check-containers.yml include, the included file only has a single task, so the overhead of skipping this task will not be greater than the overhead of the task import. It therefore makes sense to switch to use import_tasks there. Partially-Implements: blueprint performance-improvements Change-Id: I65d911670649960708b9f6a4c110d1a7df1ad8f7
-
- Jul 07, 2020
-
-
Mark Goddard authored
The common role was previously added as a dependency to all other roles. It would set a fact after running on a host to avoid running twice. This had the nice effect that deploying any service would automatically pull in the common services for that host. When using tags, any services with matching tags would also run the common role. This could be both surprising and sometimes useful. When using Ansible at large scale, there is a penalty associated with executing a task against a large number of hosts, even if it is skipped. The common role introduces some overhead, just in determining that it has already run. This change extracts the common role into a separate play, and removes the dependency on it from all other roles. New groups have been added for cron, fluentd, and kolla-toolbox, similar to other services. This changes the behaviour in the following ways: * The common role is now run for all hosts at the beginning, rather than prior to their first enabled service * Hosts must be in the necessary group for each of the common services in order to have that service deployed. This is mostly to avoid deploying on localhost or the deployment host * If tags are specified for another service e.g. nova, the common role will *not* automatically run for matching hosts. The common tag must be specified explicitly The last of these is probably the largest behaviour change. While it would be possible to determine which hosts should automatically run the common role, it would be quite complex, and would introduce some overhead that would probably negate the benefit of splitting out the common role. Partially-Implements: blueprint performance-improvements Change-Id: I6a4676bf6efeebc61383ec7a406db07c7a868b2a
-
- Jun 08, 2020
-
-
Mark Goddard authored
This was missed in the original patch. Change-Id: I991b0563560cf4a0b1feb718951ffdf21ab81856
-
- May 20, 2020
-
-
Michal Nasiadka authored
Depends-On: https://review.opendev.org/710217/ Change-Id: I85652f23e487c40192106d23f2cdd45a3077deca
-
- Apr 09, 2020
-
-
Dincer Celik authored
Some services look for /etc/timezone on Debian/Ubuntu, so we should introduce it to the containers. In addition, added prechecks for /etc/localtime and /etc/timezone. Closes-Bug: #1821592 Change-Id: I9fef14643d1bcc7eee9547eb87fa1fb436d8a6b3
-
- Mar 25, 2020
-
-
LinPeiWen authored
mariadb container name variable is fixed in some places, but in the defaults directory, mariadb container_name variable is variable. If the mariadb container_name variable is changed during deployment, it will not be assigned to container_name, but a fixed 'mariadb' name. Change-Id: Ie8efa509953d5efa5c3073c9b550be051a7f4f9b
-
- Mar 02, 2020
-
-
Radosław Piliszek authored
Both include_role and import_role expect role's name to be given via "name" param instead of "role". This worked but caused errors with ansible-lint. See: https://review.opendev.org/694779 Change-Id: I388d4ae27111e430d38df1abcb6c6127d90a06e0
-
- Feb 28, 2020
-
-
Mark Goddard authored
We assume that all groups are present in the inventory, and quite obtuse errors can result if any are not. This change adds a precheck that checks for the presence of all expected groups in the inventory for each service. It also introduces a common service-precheck role that we can use for other common prechecks. Change-Id: Ia0af1e7df4fff7f07cd6530e5b017db8fba530b3 Partially-Implements: blueprint improve-prechecks
-
- Feb 19, 2020
-
-
Michal Nasiadka authored
Change-Id: I26206bece95d31c0182e75f2a585c50d6f0fad6f
-
- Feb 02, 2020
-
-
Radosław Piliszek authored
This fixes issues reported by Mark: - possible failure with 4-node cluster (however unlikely) - failure to stop all nodes from progressing when conditions are not valid (due to: "any_errors_fatal: False") Change-Id: Ib6995bf4c99202c9813859b3d9e2f420448f0445
-
- Jan 15, 2020
-
-
Radosław Piliszek authored
These affected both deploy (and reconfigure) and upgrade resulting in WSREP issues, failed deploys or need to recover the cluster. This patch makes sure k-a does not abruptly terminate nodes to break cluster. This is achieved by cleaner separation between stages (bootstrap, restart current, deploy new) and 3 phases for restarts (to keep the quorum). Upgrade actions, which operate on a healthy cluster, went to its section. Service restart was refactored. We no longer rely on the master/slave distinction as all nodes are masters in Galera. Closes-bug: #1857908 Closes-bug: #1859145 Change-Id: I83600c69141714fc412df0976f49019a857655f5
-
- Jan 13, 2020
-
-
Mark Goddard authored
Change-Id: Ibf40216b847f103e383f19fe1ef608a75fcfd452 Co-Authored-By:
Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
-
Mark Goddard authored
Change-Id: Iecbc2fe5fa3391dca5a3cc7e575314b95942114b Co-Authored-By:
Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
-
- Jan 10, 2020
-
-
Mark Goddard authored
For the CentOS 7 to 8 transition, we will have a period where both CentOS 7 and 8 images are available. We differentiate these images via a tag - the CentOS 8 images will have a tag of train-centos8 (or master-centos8 temporarily). To achieve this, and maintain backwards compatibility for the openstack_release variable, we introduce a new 'openstack_tag' variable. This variable is based on openstack_release, but has a suffix of 'openstack_tag_suffix', which is empty except on CentOS 8 where it has a value of '-centos8'. Change-Id: I12ce4661afb3c255136cdc1aabe7cbd25560d625 Partially-Implements: blueprint centos-rhel-8
-
- Jan 02, 2020
-
-
yj.bai authored
CentOS 7 uses old galera which has multiple issues handling IPv6 addressing. This patch applies two workarounds for CentOS 7. Co-Authored-By:
Jeffrey Zhang <jeffrey.zhang@99cloud.net> Co-Authored-By:
Radosław Piliszek <radoslaw.piliszek@gmail.com> Change-Id: I7c178aba60c389e65075e0e6cbe4dfa5b8ce06ec Closes-Bug: #1856532 Signed-off-by:
yj.bai <bai.yongjun@99cloud.net>
-
- Nov 22, 2019
-
-
Michal Nasiadka authored
As part of the effort to implement Ansible code linting in CI (using ansible-lint) - we need to implement recommendations from ansible-lint output [1]. One of them is to stop using local_action in favor of delegate_to - to increase readability and and match the style of typical ansible tasks. [1]: https://review.opendev.org/694779/ Partially implements: blueprint ansible-lint Change-Id: I46c259ddad5a6aaf9c7301e6c44cd8a1d5c457d3
-
- Nov 07, 2019
-
-
Mark Goddard authored
After performing a recovery of MariaDB, the mariadb containers are left without a restart policy. This leaves them unable to recover from the crash of a single galera node. There is another issue, in that the 'master' node is left in a bootstrap configuration, with the --wsrep-new-cluster argument configured as BOOTSTRAP_ARGS. This change fixes these issues by removing the restart policy of 'no' from the 'slave' containers, and recreating the master container without the restart policy or bootstrap arguments. Change-Id: I36c875611931163ca2c29ae93b71d3af64cb197c Closes-Bug: #1851594
-
- Nov 04, 2019
-
-
lklimin authored
Change-Id: I12fa6ae8dcec79485c30c4fea2977875aa8f4fae Closes-Bug: #1850792
-