Skip to content
Snippets Groups Projects
  1. Nov 04, 2024
  2. Oct 31, 2024
    • Matt Crees's avatar
      Prevent accidental downgrades of RabbitMQ · e6727bd4
      Matt Crees authored
      As version-check.yml is added to deploy.yml, we must make sure the
      tasks are only run when the rabbitmq container exists.
      
      Change-Id: Iaa31bae739110094affb5e402ed9ac40b153ac3d
      (cherry picked from commit f5ad7829)
      e6727bd4
  3. Aug 29, 2024
    • Matt Crees's avatar
      Add a precheck to catch RMQ SLURP upgrades · 4731e7f2
      Matt Crees authored
      Given we bump the RabbitMQ version each release, there is a manual
      upgrade to an intermediary RabbitMQ version needed before a skip-level
      upgrade can be performed.
      
      Change-Id: Id8a5ebe19a50ebdc59d12667889472c803b8d7c8
      4731e7f2
  4. Aug 12, 2024
    • Matt Crees's avatar
      Add command to upgrade to a target version of RMQ · 249c1e89
      Matt Crees authored
      Required before a SLURP upgrade
      
      Change-Id: I09a45d26a6075554b204e007f64122f23de5f53c
      249c1e89
    • Ivan Halomi's avatar
      Refactor of kolla_container_facts · 4ce47e22
      Ivan Halomi authored
      
      Refactor that prepares kolla_container_facts
      module for introducing more actions that will be moved
      from kolla_container module and kolla_container_volume_facts.
      
      This change is based on a discussion about adding a new action
      to kolla_container module that retrieves all names of the running
      containers. It was agreed that kolla-ansible should follow Ansible's
      direction of splitting modules between action modules and facts
      modules. Because of this, kolla_container_facts needs to be able
      to handle different requests for data about containers or volumes.
      
      Change-Id: Ieaec8f64922e4e5a2199db2d6983518b124cb4aa
      Signed-off-by: default avatarIvan Halomi <ivan.halomi@tietoevry.com>
      4ce47e22
  5. Jul 19, 2024
    • Michal Arbet's avatar
      Add support for docker_image_name_prefix · ae86e3a0
      Michal Arbet authored
      The Kolla project supports building images with
      user-defined prefixes. However, Kolla-ansible is unable
      to use those images for installation.
      
      This patch fixes that issue.
      
      Closes-Bug: #2073541
      Change-Id: Ia8140b289aa76fcd584e0e72686e3786215c5a99
      ae86e3a0
  6. Jun 28, 2024
    • Roman Krček's avatar
      Performance: use filters for service dicts · fb3a8f5f
      Roman Krček authored
      Most roles are not leveraging the jinja filters available.
      According to [1] filtering the list of services makes the execution
      faster than skipping the tasks.
      
      This patchset also includes some cosmetic changes to genconfig.
      Individual services are now also using a jinja filter. This has
      no impact on performance, just makes the tasks look cleaner.
      
      Naming of some vars in genconfig was changed to "service" to make
      the tasks more uniform as some were previously using
      the service name and some were using "service".
      
      Three metrics from the deployment were taken and those were
      - overall deployment time [s]
      - time spent on the specific role [s]
      - CPU usage (measured with perf) [-]
      Overall genconfig time went down on avg. from 209s to 195s
      Time spent on the loadbalancer role went down on avg. from 27s to 23s
      Time spent on the neutron role went down on avg from 102s to 95s
      Time spent on the nova-cell role went down on avg. from 54s to 52s
      Also the average CPUs utilized reported by perf went down
      from 3.31 to 3.15.
      For details of how this was measured see the comments in gerrit.
      
      [1] - https://github.com/stackhpc/ansible-scaling/blob/master/doc/skip.md
      
      
      
      Change-Id: Ib0f00aadb6c7022de6e8b455ac4b9b8cd6be5b1b
      Signed-off-by: default avatarRoman Krček <roman.krcek@tietoevry.com>
      fb3a8f5f
  7. May 13, 2024
  8. Apr 25, 2024
  9. Apr 22, 2024
  10. Mar 12, 2024
  11. Mar 05, 2024
  12. Dec 19, 2023
  13. Dec 13, 2023
  14. Nov 15, 2023
  15. Nov 14, 2023
    • Michal Nasiadka's avatar
      Introduce oneshot docker_restart_policy · cea076f3
      Michal Nasiadka authored
      docker_restart_policy: no causes systemd units to not get created
      and we use it in CI to disable restarts on services.
      
      Introducing oneshot policy to not create systemd unit for oneshot
      containers (those that are running bootstrap tasks, like db
      bootstrap and don't need a systemd unit), but still create systemd
      units for long lived containers but with Restart=No.
      
      Change-Id: I9e0d656f19143ec2fcad7d6d345b2c9387551604
      cea076f3
  16. Oct 06, 2023
  17. Aug 25, 2023
  18. Jun 28, 2023
  19. Jun 19, 2023
  20. Jun 17, 2023
  21. Apr 20, 2023
  22. Apr 19, 2023
    • Michal Arbet's avatar
      Trivial fix - add int filter for rabbitmq definitions · d1b24a41
      Michal Arbet authored
      Change-Id: I1d8021a1bc780449e3ca96183c6f4abaed17b382
      d1b24a41
    • Matt Crees's avatar
      Add precheck to fail if RabbitMQ HA needs configuring · a5331d32
      Matt Crees authored
      Currently, the process of enabling RabbitMQ HA with the variable
      ``om_enable_rabbitmq_high_availbility`` requires some manual steps to
      migrate from transient to mirrored queues. In preparation for setting
      this variable to ``True`` by default, this adds a precheck that will
      fail if a system is currently running non-mirrored queues and
      ``om_enable_rabbitmq_high_availbility`` is set to ``True``.
      
      Includes a helpful message informing the operator of their choice.
      Either follow the manual procedure to migrate the queues described in
      the docs, or set ``om_enable_rabbitmq_high_availbility`` to ``False``.
      
      The RabbitMQ HA section of the reference docs is updated to include
      these instructions.
      
      Change-Id: Ic5e64998bd01923162204f7bb289cc110187feec
      a5331d32
  23. Apr 13, 2023
    • Matt Crees's avatar
      Remove RabbitMQ ha-all policy when not required · c85b64d1
      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
      c85b64d1
  24. Apr 12, 2023
  25. Mar 21, 2023
  26. Mar 06, 2023
    • Christian Berendt's avatar
      rabbitmq: add rabbitmq_datadir_volume parameter · a7812741
      Christian Berendt authored
      With the parameter rabbitmq_datadir_volume it is possible
      to use a directory as volume for the rabbitmq service. By default,
      a volume named rabbitmq is used (the previous default).
      
      Change-Id: I99d6bd71ca79cba81062dedfb767c5ed341bb182
      a7812741
  27. Feb 14, 2023
    • John Garbutt's avatar
      Improve RabbitMQ performance by reducing ha replicas · 6cf22b0c
      John Garbutt authored
      Currently we do not follow the RabbitMQ advice on replicas here:
      https://www.rabbitmq.com/ha.html#replication-factor
      
      Here we reduce the number of replicas to n // 2 + 1 as advised
      above. The hope it this helps speed up recovery from rabbit
      issues.
      
      Related-Bug: #1954925
      Change-Id: Ib6bcb26c499c9884faa4a0cd51abaec00cacb096
      6cf22b0c
    • Matt Crees's avatar
      Add flag to change RabbitMQ ha-mode definition · e13072a9
      Matt Crees authored
      Adds the flag `rabbitmq_ha_replica_count` to change how many different
      nodes a queue should be mirrored across. If the value is not set, then
      it defaults to "ha-mode":"all". This value is unset by default to avoid
      any unexpected changes to the RabbitMQ definitions.json file, as that
      would trigger an unexpected restart of RabbitMQ during the next deploy.
      
      Change-Id: Iee98cd937197a73a3b04aa8501fa325e8ecfff24
      e13072a9
  28. Feb 09, 2023
    • John Garbutt's avatar
      RabbitMQ: Support setting ha-promote-on-shutdown · 94f3ce0c
      John Garbutt authored
      By default ha-promote-on-shutdown=when-synced. However we are seeing
      issues with RabbitMQ automatically recovering when nodes are restarted.
      https://www.rabbitmq.com/ha.html#cluster-shutdown
      
      Rather than waiting for operator interventions, it is better we allow
      recovery to happen, even if that means we may loose some messages.
      A few failed and timed out operations is better than a totaly broken
      cloud. This is achieved using ha-promote-on-shutdown=always.
      
      Note, when a node failure is detected, this is already the default
      behaviour from 3.7.5 onwards:
      https://www.rabbitmq.com/ha.html#promoting-unsynchronised-mirrors
      
      This patch adds the option to change the ha-promote-on-shutdown
      definition, using the flag `rabbitmq_ha_promote_on_shutdown`. This
      value is unset by default to avoid any unexpected changes to the
      RabbitMQ definitions.json file, as that would trigger an unexpected
      restart of RabbitMQ during the next deploy.
      
      Related-Bug: #1954925
      
      Change-Id: I2146bda2c72ddac2c9923c6941b0596395fd9ab5
      94f3ce0c
  29. Jan 17, 2023
    • Michal Arbet's avatar
      Add ability to configure rabbitmq · 701dc20f
      Michal Arbet authored
      As rabbitmq's configuration file is not ini or yaml file,
      there is no option to extend configuration by new config
      options via merge_configs or merge_yaml.
      
      This patch moves config options to dictionary
      so it can be overriden in /etc/kolla/globals.yml.
      
      Change-Id: I5cd772f4fb80a0e200fb24d67be735ca81e3fdeb
      701dc20f
  30. Jan 13, 2023
    • Matt Crees's avatar
      Add a flag to handle RabbitMQ high availability · 09df6fc1
      Matt Crees authored
      A combination of durable queues and classic queue mirroring can be used
      to provide high availability of RabbitMQ. However, these options should
      only be used together, otherwise the system will become unstable. Using
      the flag ``om_enable_rabbitmq_high_availability`` will either enable
      both options at once, or neither of them.
      
      There are some queues that should not be mirrored:
      * ``reply`` queues (these have a single consumer and TTL policy)
      * ``fanout`` queues (these have a TTL policy)
      * ``amq`` queues (these are auto-delete queues, with a single consumer)
      An exclusionary pattern is used in the classic mirroring policy. This
      pattern is ``^(?!(amq\\.)|(.*_fanout_)|(reply_)).*``
      
      Change-Id: I51c8023b260eb40b2eaa91bd276b46890c215c25
      09df6fc1
  31. Jan 12, 2023
    • Mark Goddard's avatar
      Fix prechecks in check mode · 46aeb984
      Mark Goddard authored
      When running in check mode, some prechecks previously failed because
      they use the command module which is silently not run in check mode.
      Other prechecks were not running correctly in check mode due to e.g.
      looking for a string in empty command output or not querying which
      containers are running.
      
      This change fixes these issues.
      
      Closes-Bug: #2002657
      Change-Id: I5219cb42c48d5444943a2d48106dc338aa08fa7c
      46aeb984
  32. Jan 09, 2023
    • Erik Berg's avatar
      rabbitmq: Use assert on checks for readability · e0538c81
      Erik Berg authored
      assert will also fail when we're not meeting the conditions, makes
      clear what we're actually testing, and isn't listed as a skipped task
      when the condition is ok.
      
      Change-Id: I4c919b523dde2602c81179ab3d28b913650b4c9f
      e0538c81
  33. Dec 21, 2022
    • Matt Crees's avatar
      Integrate oslo-config-validator · 6c2aace8
      Matt Crees authored
      Regularly, we experience issues in Kolla Ansible deployments because we
      use wrong options in OpenStack configuration files. This is because
      OpenStack services ignore unknown options. We also need to keep on top
      of deprecated options that may be removed in the future. Integrating
      oslo-config-validator into Kolla Ansible will greatly help.
      
      Adds a shared role to run oslo-config-validator on each service. Takes
      into account that services have multiple containers, and these may also
      use multiple config files. Service roles are extended to use this shared
      role. Executed with the new command ``kolla-ansible validate-config``.
      
      Change-Id: Ic10b410fc115646d96d2ce39d9618e7c46cb3fbc
      6c2aace8
  34. Nov 02, 2022
Loading