Skip to content
Snippets Groups Projects
  1. Jan 08, 2025
  2. Oct 25, 2024
    • Matus Jenca's avatar
      Add frontend TLS ability to ProxySQL · d23433ac
      Matus Jenca authored
      This patch ads an ability to receive TLS connections
      to ProxySQL. Certificates and variable lookups are
      added in order for TLS to be enabled by
      <project_name>_database_internal_tls_enable.
      Note that in order for this to work, mysql
      connection strings need to have TLS enabled,
      which can be added in separate per-service patches
      
      Change-Id: I2c06ce5e138f52259c1725dae37f25c1b00d1e6b
      d23433ac
    • Matus Jenca's avatar
      Add backend TLS between MariaDB and ProxySQL · 23413d4e
      Matus Jenca authored
      
      This commit adds TLS connection between ProxySQL and MariaDB.
      Frontend TLS ( between services and ProxySQL) will be
      added in another commit.
      
      Parialy Implements: mariadb-ssl-support
      
      Change-Id: I154cbb096469c5515c9d8156c2c1c5dd07b95849
      Signed-off-by: default avatarMatus Jenca <matus.jenca@dnation.cloud>
      23413d4e
  3. Oct 17, 2024
    • Michal Arbet's avatar
      Adjust ProxySQL shunning behavior for single-node clusters · dafac823
      Michal Arbet authored
      In single-node clusters, ProxySQL shuns the server on MySQL
      errors, causing failures during upgrades or container restarts.
      This change increases the timeout to 10 seconds, allowing
      the backend time to recover and preventing immediate errors
      in CI environments.
      
      Change-Id: I70becdc3fcb4ca8f7ae31d26097d95bdc6dd67eb
      dafac823
  4. Sep 23, 2024
    • Michal Arbet's avatar
      Improvement of ProxySQL Monitoring Configuration · 79897566
      Michal Arbet authored
      This update enhances the monitoring of the databasecluster
      in ProxySQL. The default monitoring intervals were insufficient
      for reliably detecting failures in the Galera cluster environment.
      
      A detailed configuration for monitoring intervals has been
      introduced, providing better control over how quickly and accurately
      ProxySQL can identify issues.
      
        - Variables such as `mariadb_monitor_connect_interval`,
          `mariadb_monitor_galera_healthcheck_interval, and
          `mariadb_monitor_ping_interval` significantly reduce
          the time between connection checks.
      
        - Timeouts like `mariadb_monitor_galera_healthcheck_timeout`
          and `mariadb_monitor_ping_timeout` allow faster failure
          detection, while `mariadb_monitor_galera_healthcheck_max_timeout_count`
          sets the maximum number of allowed timeouts before marking a node as down.
      
      Calculation:
      
       - Galera healthcheck:
      
         4 seconds (interval) + 1 second (timeout) + 4 seconds (interval)
         + 1 second (timeout) = 10 seconds.
      
       - Ping healthcheck:
      
         3 seconds (interval) + 2 seconds (timeout) + 3 seconds (interval)
         + 2 seconds (timeout) = 10 seconds.
      
      Both the health check and ping check mechanisms will detect a node failure
      within a maximum of 10 seconds. Both processes (health check and ping)
      operate independently, and failure in either mechanism will mark the node
      as failed.
      
      Health Check Failure Detection: Up to 10 seconds.
      Ping Failure Detection: Up to 10 seconds.
      Connect Attempts: ProxySQL also tries to connect every 2 seconds, which
      helps monitor connectivity.
      
      These changes ensure that ProxySQL can detect issues in 10 seconds
      as haproxy, significantly reducing downtime compared to default settings.
      This adjustment enables faster and more reliable monitoring, improving system
      stability and reducing potential downtime in production environments.
      
      Change-Id: Ic28801519cdb35ed2387a1468b9df661847a5476
      79897566
    • Michal Arbet's avatar
      Fix ProxySQL startup mode to use --initial · 7723a6f4
      Michal Arbet authored
      The ProxySQL startup script was incorrectly using
      the `--reload` flag, which only reloads/merges the configuration
      without initializing the database from the config file [1]. This
      change corrects it to use the `--initial` flag, ensuring that
      the database is always reloaded from the configuration at startup.
      
      [1] https://proxysql.com/documentation/configuring-proxysql/#initialstartup
      
      Change-Id: I9cc721555a6d19409b6ac24432b6b34a83efc42c
      7723a6f4
  5. Sep 20, 2024
    • Michal Arbet's avatar
      Fix IPv6 address format in ProxySQL configuration · 12eeccdd
      Michal Arbet authored
      This patch resolves an issue where ProxySQL could not
      bind due to incorrectly formatted IPv6 addresses in the
      `mysql_ifaces` configuration. The kolla's
      `put_address_in_context` filter is now used, ensuring
      the addresses are properly enclosed in square brackets
      for correct binding.
      
      Closes-Bug: #2081106
      Change-Id: Ic166b8d9a500023c8d23ec9fee03b28b268b26e7
      12eeccdd
  6. Sep 17, 2024
  7. Sep 13, 2024
  8. Sep 09, 2024
  9. Aug 30, 2024
  10. Aug 12, 2024
    • 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
  11. 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
  12. Jul 09, 2024
  13. 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
  14. Jun 27, 2024
  15. May 14, 2024
  16. Apr 27, 2024
  17. Apr 25, 2024
  18. Apr 24, 2024
  19. Apr 08, 2024
    • Roman Krček's avatar
      Add sysctl role · e2a0d1f5
      Roman Krček authored
      
      This new role will handle setting sysctl values.
      
      It also handles cases when IPv6 setting is changed, but IPv6 is
      not enabled on the system by skipping those settings.
      
      This is an augmentation of previous patch:
      Icccfc1c509179c3cfd59650b7917a637f9af9646
      
      Related-bug: #1906306
      Change-Id: I5d6cda3307b3d2f27c1b2995f28772523b203fe7
      Signed-off-by: default avatarRoman Krček <roman.krcek@tietoevry.com>
      e2a0d1f5
  20. Mar 13, 2024
    • Roman Krček's avatar
      Add conditionals for IPv6 sysctl settings · 9301e82d
      Roman Krček authored
      This way the playbooks won't try to set ipv6 systemctl options
      unless ipv6 is available on the system.
      
      Closes-bug: #1906306
      Change-Id: Icccfc1c509179c3cfd59650b7917a637f9af9646
      9301e82d
  21. Jan 05, 2024
    • Dawud's avatar
      Enable HAProxy Prometheus metrics endpoint · 140722f7
      Dawud authored
      
      HAProxy exposes a Prometheus metrics endpoint, it just needs to be
      enabled. Enable this and remove configuration for
      prometheus-haproxy-exporter. Remaining prometheus-haproxy-exporter
      containers will automatically be removed.
      
      Change-Id: If6e75691d2a996b06a9b95cb0aae772db54389fb
      Co-Authored-By: default avatarMatt Anson <matta@stackhpc.com>
      140722f7
  22. Jan 02, 2024
  23. Nov 15, 2023
  24. Nov 07, 2023
  25. Aug 18, 2023
    • Léo Gillot-Lamure's avatar
      loadbalancer: remove support for haproxy_processes · b230858f
      Léo Gillot-Lamure authored
      Threads are the recommended way to scale CPU performance since HAProxy
      1.8.
      
      Official documentation says: « While "nbproc" historically used to be the only
      way to use multiple processors, it also involved a number of shortcomings
      related to the lack of synchronization between processes (health-checks, peers,
      stick-tables, stats, ...) which do not affect threads. As such, any modern
      configuration is strongly encouraged to migrate away from "nbproc" to
      "nbthread". ».
      
      Change-Id: I6f2e9d74e68703c8e0827e495945a75f020e1561
      b230858f
  26. Aug 02, 2023
    • Léo Gillot-Lamure's avatar
      loadbalancer: support cpu-map for threads · 789ac738
      Léo Gillot-Lamure authored
      The directive used has the same semantic as what is done above for nbproc > 1:
      it binds each thread to a CPU. It is simpler and does not require a loop because
      it uses the auto: syntax available in HAProxy 2.4.
      
      Change-Id: I1ce124b678140f5f4737df557683bb67bc7cfc66
      789ac738
    • Léo Gillot-Lamure's avatar
      loadbalancer: support setting nbthread with variable haproxy_threads · e0438286
      Léo Gillot-Lamure authored
      Threads are the recommended way to scale CPU performance since HAProxy
      1.8.
      
      Official documentation says: « While "nbproc" historically used to be the only
      way to use multiple processors, it also involved a number of shortcomings
      related to the lack of synchronization between processes (health-checks, peers,
      stick-tables, stats, ...) which do not affect threads. As such, any modern
      configuration is strongly encouraged to migrate away from "nbproc" to
      "nbthread". ».
      
      While more recent versions of HAProxy automatically detect the number of
      available CPU and enable threads for them, it can be useful to explicitely set
      the value.
      
      In this patch, setting cpu-map for threads is not supported.
      
      Change-Id: Id917c70f3dbe52f24f25d9403ba8151729e8966b
      e0438286
  27. Jun 28, 2023
  28. Jun 21, 2023
  29. May 25, 2023
    • Mark Goddard's avatar
      Apply public firewalld rules immediately · 2fbb067b
      Mark Goddard authored
      Previously, firewalld rules were applied to configuration, then
      firewalld reloaded to pick up all the new rules. Reloading firewalld can
      be disruptive because it sets all chains to a DROP policy while building
      up its firewall rules, breaking open connections.
      
      This change switches to applying rules both permanently (to config) and
      immediately, such that no reload is required.
      
      Change-Id: I8e48b7827b33bdd2061d0e89c905bea8e29f60e8
      2fbb067b
  30. 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
  31. Jan 09, 2023
    • Erik Berg's avatar
      loadbalancer: Use assert on checks for readability · 984612f0
      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: Ia72c7052d7f9b8c7d86d74a15dcd9e003178972b
      984612f0
  32. 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
Loading