- Apr 13, 2023
-
-
Matt Crees authored
With the addition of the variable `om_enable_rabbitmq_high_availability`, this feature in the upgrade task should be brought back. It is also now used in the deploy task. The `ha-all` policy is cleared only when `om_enable_rabbitmq_high_availability` is set to `false`. Change-Id: Ia056aa40e996b1f0fed43c0f672466c7e4a2f547
-
- Apr 12, 2023
-
-
Michal Nasiadka authored
Since RMQ 3.8 we can use rolling upgrade [1]. Depends-On: https://review.opendev.org/c/openstack/kolla/+/872393 [1]: https://www.rabbitmq.com/upgrade.html#rolling-upgrades Change-Id: If6a7c6c12d9226a2406728108b3c87b3485ac55f
-
- Jul 27, 2022
-
-
Radosław Piliszek authored
It is no longer needed per the removed comment. Change-Id: I8d88c21c7e115b842a56f0ba5c780c3bde593964
-
- Jul 25, 2022
-
-
Michal Nasiadka authored
ansible-lint introduced var-spacing - let's fix our code. Change-Id: I0d8aaf3c522a5a6a5495032f6dbed8a2be0251f0
-
- Mar 18, 2022
-
-
Mark Goddard authored
Follow up to I91d0e23b22319cf3fdb7603f5401d24e3b76a56e, which fixes a conditional corner case when removing the ha-all policy. Change-Id: Iea75551bc6d0da7dd10515dd8bd28c014eed7a5e
-
- Feb 21, 2022
-
-
Doug Szumski authored
When OpenStack is deployed with Kolla-Ansible, by default there are no durable queues or exchanges created by the OpenStack services in RabbitMQ. In Rabbit terminology, not being durable is referred to as `transient`, and this means that the queue is generally held in memory. Whether OpenStack services create durable or transient queues is traditionally controlled by the Oslo Notification config option: `amqp_durable_queues`. In Kolla-Ansible, this remains set to the default of `False` in all services. The only `durable` objects are the `amq*` exchanges which are internal to RabbitMQ. More recently, Oslo Notification has introduced support for Quorum queues [7]. These are a successor to durable classic queues, however it isn't yet clear if they are a good fit for OpenStack in general [8]. For clustered RabbitMQ deployments, Kolla-Ansible configures all queues as `replicated` [1]. Replication occurs over all nodes in the cluster. RabbitMQ refers to this as 'mirroring of classic queues'. In summary, this means that a multi-node Kolla-Ansible deployment will end up with a large number of transient, mirrored queues and exchanges. However, the RabbitMQ documentation warns against this, stating that 'For replicated queues, the only reasonable option is to use durable queues: [2]`. This is discussed further in the following bug report: [3]. Whilst we could try enabling the `amqp_durable_queues` option for each service (this is suggested in [4]), there are a number of complexities with this approach, not limited to: 1) RabbitMQ is planning to remove classic queue mirroring in favor of 'Quorum queues' in a forthcoming release [5]. 2) Durable queues will be written to disk, which may cause performance problems at scale. Note that this includes Quorum queues which are always durable. 3) Potential for race conditions and other complexity discussed recently on the mailing list under: `[ops] [kolla] RabbitMQ High Availability` The remaining option, proposed here, is to use classic non-mirrored queues everywhere, and rely on services to recover if the node hosting a queue or exchange they are using fails. There is some discussion of this approach in [6]. The downside of potential message loss needs to be weighed against the real upsides of increasing the performance of RabbitMQ, and moving to a configuration which is officially supported and hopefully more stable. In the future, we can then consider promoting specific queues to quorum queues, in cases where message loss can result in failure states which are hard to recover from. [1] https://www.rabbitmq.com/ha.html [2] https://www.rabbitmq.com/queues.html [3] https://github.com/rabbitmq/rabbitmq-server/issues/2045 [4] https://wiki.openstack.org/wiki/Large_Scale_Configuration_Rabbit [5] https://blog.rabbitmq.com/posts/2021/08/4.0-deprecation-announcements/ [6] https://fuel-ccp.readthedocs.io/en/latest/design/ref_arch_1000_nodes.html#replication [7] https://bugs.launchpad.net/oslo.messaging/+bug/1942933 [8] https://www.rabbitmq.com/quorum-queues.html#use-cases Partial-Bug: #1954925 Change-Id: I91d0e23b22319cf3fdb7603f5401d24e3b76a56e
-
- 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
-
- 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
-
- Sep 21, 2018
-
-
Paul Bourke authored
Depends-On: I75e00312b36e1678b90a42cf58d24652323eff27 Change-Id: Ia716fabffca41eff816e59bbf9f4cab79ee8b72f
-
- Aug 21, 2018
-
-
Paul Bourke authored
In order to migrate to the latest release of rabbitmq (3.7), we need to first remove this deprecated plugin which is no longer supported (the problems it solved are now addressed in rabbitmq itself). This avoids a circular dependency in CI where the new images depend on the new clustering and the new clustering depends on the new images. Change-Id: I921459f3e40b9e0d4af9497384e49aabf0abe79b
-
- Jul 25, 2018
-
-
Jeffrey Zhang authored
include is marked as deprecated since ansible 2.4[0] [0] https://docs.ansible.com/ansible/2.4/include_module.html#deprecated Co-Authored-By:
confi-surya <singh.surya64mnnit@gmail.com> Change-Id: Ic9d71e1865d1c728890625aeddf424a5734c0a8a
-
- Jun 08, 2018
-
-
Ha Manh Dong authored
Add become to all tasks that use the module "kolla_docker" Change-Id: I4309c4011687b88ec31d739fd8f834fe2326ff10 Partial-Implements: blueprint ansible-specific-task-become
-
- May 11, 2018
-
-
Jeffrey Zhang authored
- rename action and serial to kolla_ansible and kolla_serial - use become instead of "sudo <command>" in shell - Remove quota for failed_when and changed_when in rabbitmq tasks Change-Id: I78cb60168aaa40bb6439198283546b7faf33917c Implements: blueprint migrate-to-ansible-2-2-0
-
- Oct 27, 2017
-
-
Eduardo Gonzalez authored
This reverts commit c618dbcd. Pike is already released Change-Id: Id54a90e1c1d60f2be02ff4af3b648671d053c6a6
-
- Aug 21, 2017
-
-
Mick Thompson authored
Upgrade fails as outward_rabbitmq does not exist and cannot therefore be upgraded. Omit it from the upgrade check and bootstrap it after rabbitmq upgrade. Remove jinja2 from 'Find gospel node' task; removes warnings. Change-Id: I3766271c62779c8dbd31e7cf2300473815bbbe68
-
- Jun 15, 2017
-
-
Paul Bourke authored
Certain services such as Murano and trove require access to a rabbitmq instance from tenant networks. [0] Exposing the internal rabbitmq to end users is a security hole, hence there are two options, 1) use vhosts in the existing rabbitmq, or two a separate rabbitmq instances. Given the importance of rabbitmq to the OpenStack deployment, we have decided to go with a separate instance. Refer to [1] for more detail on the various options. This change makes the rabbitmq role generic so that it can be reused, in this case to start 'outward_rabbitmq'. It needs to be exposed via haproxy both for network isolation and also because this is what Murano configuration requires. Follow on patches will be added to add a vhost in this outward instance for Murano and other services which require access. Based on the original work by bdaca[2] [0] http://murano.readthedocs.io/en/stable-liberty/intro/architecture.html [1] http://lists.openstack.org/pipermail/openstack-dev/2016-December/109091.html [2] https://review.openstack.org/#/c/374525 Change-Id: Ib2bcc7ed4bf4f883a7cd1dfad3db89201e3cfd8d Partial-Bug: #1620374 Depends-On: I020eb6219f89a310451becde41f6f1c7f54baadd Co-Authored-By:
Bartłomiej Daca <bartek.daca@gmail.com>
-
- Feb 17, 2017
-
-
caoyuan authored
Change-Id: I14e1619f8fd33be5b0652982131c2a4a4b3e1292 Partially-implements: blueprint better-reconfigure
-
- Apr 10, 2016
-
-
Serguei Bezverkhi authored
This fix adds a check of Rabbitmq's image version during the upgrade. The container gets restarted only when the image version is different. Change-Id: Ie038845c0c8fff1ac51b7cbf21e1b593229c2c0e Closes-Bug: #1558832
-
- Mar 18, 2016
-
-
Michal (inc0) Jastrzebski authored
Main issue with rabbitmq clusterer setup is to shut down gospel node as last one, which is bulk of this change Co-Authored-By:
Sam Yaple <sam@yaple.net> Change-Id: I88e566a19ed813b0e3eef65ef7139ccfaa0c2700 Implements: blueprint upgrade-rabbitmq Partially-implements: blueprint upgrade-kolla
-
- Jan 26, 2016
-
-
Michal Jastrzebski authored
After introduction of pull action and turing every main.yml into {{action}}.yml we lost ability to perform upgrade Change-Id: Ie9fa2cd083b061033abc733fba53d54f9c55e393 Fixes-Bug: #1538210
-