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. May 14, 2024
  11. 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
  12. Jan 02, 2024
  13. Nov 07, 2023
  14. 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
  15. 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
  16. Jun 28, 2023
  17. Jun 21, 2023
  18. Oct 20, 2022
    • Michal Arbet's avatar
      Adds ability to configure ProxySQL's max replication lag · bee253e3
      Michal Arbet authored
      By default ProxySQL's default value of max_replication_lag
      is 0 which is in fact disabling this feature [1].
      If it is greater than 0, ProxySQL will regularly monitor
      replication lag and if it goes beyond the configured threshold
      it will temporary shun the host until replication catches up.
      
      This should be configurable via kolla-ansible as every
      openstack deployment can be different in terms of network
      delays, database load etc.. , so user should have option
      to configure when database backend will be shunned.
      
      [1] https://proxysql.com/documentation/main-runtime/
      
      Change-Id: I66171638abc712cb84b380042f1d29f54c499e73
      bee253e3
  19. Jul 29, 2022
  20. Feb 09, 2022
  21. Nov 16, 2021
  22. Aug 19, 2021
    • Michal Arbet's avatar
      Rename role haproxy to loadbalancer · ffd53512
      Michal Arbet authored
      For now role haproxy is maintaining haproxy
      and keepalived. In follow-up changes there is also
      proxysql added.
      
      This patch is *only* renaming/moving stuff to more
      prominent role loadbalancer, and moving also specific
      templates to subdirectory.
      
      This was done only to better diff in follow-up
      changes.
      
      Change-Id: I1d39d5bcaefc4016983bf267a2736b742cc3a555
      ffd53512
Loading