Skip to content
Snippets Groups Projects
  1. Nov 07, 2023
    • Will Szumski's avatar
      Support exposing prometheus_server externally · 37c2ab2a
      Will Szumski authored
      This avoids the need to use a proxy, or some other means, to connect to
      Prometheus. This is disabled by default and can be enabled by setting
      enable_prometheus_server_external to true.
      
      Change-Id: Ia0af044ff436c2a204b357750a16ff49fcdfec45
      37c2ab2a
  2. Jun 28, 2023
  3. Sep 09, 2022
  4. Aug 31, 2022
  5. Aug 29, 2022
  6. Aug 10, 2022
  7. Jul 25, 2022
    • Michal Nasiadka's avatar
      Fix var-spacing · dcf5a8b6
      Michal Nasiadka authored
      ansible-lint introduced var-spacing - let's fix our code.
      
      Change-Id: I0d8aaf3c522a5a6a5495032f6dbed8a2be0251f0
      dcf5a8b6
  8. Jul 20, 2022
  9. Jun 27, 2022
  10. Jun 23, 2022
  11. May 23, 2022
  12. May 12, 2022
  13. Apr 20, 2022
  14. Apr 15, 2022
  15. Feb 18, 2022
    • Pierre Riteau's avatar
      Configure node-exporter to report correct file system metrics · b210dcd6
      Pierre Riteau authored
      Without this configuration, all mount points are reporting the same
      utilisation metrics [1]. With the rslave option, all root mounts from
      the host are visible in the container, so we can remove the bind mounts
      for /proc and /sys.
      
      [1] https://github.com/prometheus/node_exporter#docker
      
      Change-Id: I4087dc81f9d1fa5daa24b9df6daf1f9e1ccd702f
      Closes-Bug: #1961438
      b210dcd6
    • Pierre Riteau's avatar
      Allow to define extra parameters for Prometheus exporters · dcba8297
      Pierre Riteau authored
      The following variables are added:
      
      * prometheus_blackbox_exporter_cmdline_extras
      * prometheus_elasticsearch_exporter_cmdline_extras
      * prometheus_haproxy_exporter_cmdline_extras
      * prometheus_memcached_exporter_cmdline_extras
      * prometheus_mysqld_exporter_cmdline_extras
      * prometheus_node_exporter_cmdline_extras
      * prometheus_openstack_exporter_cmdline_extras
      
      Change-Id: I5da2031b9367115384045775c515628e2acb1aa4
      dcba8297
  16. Jan 05, 2022
  17. Dec 31, 2021
    • Pierre Riteau's avatar
      Move project_name and kolla_role_name to role vars · 56fc74f2
      Pierre Riteau authored
      Role vars have a higher precedence than role defaults. This allows to
      import default vars from another role via vars_files without overriding
      project_name (see related bug for details).
      
      Change-Id: I3d919736e53d6f3e1a70d1267cf42c8d2c0ad221
      Related-Bug: #1951785
      56fc74f2
  18. Aug 05, 2021
  19. Jul 08, 2021
    • Piotr Parczewski's avatar
      Reduce container metrics cardinality · c2ae21fd
      Piotr Parczewski authored
      Adds support for passing extra runtime options to cAdvisor.
      By default new options disable exporting rarely useful metrics
      and labels by cAdvisor. This helps reducing the load on Prometheus
      and cAdvisor itself.
      
      Change-Id: I81f3845d6cd03a70a0c8569f8d0ea421027df083
      c2ae21fd
  20. Jun 23, 2021
    • Mark Goddard's avatar
      Use ansible_facts to reference facts · ade5bfa3
      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
      ade5bfa3
  21. Jun 20, 2021
    • Radosław Piliszek's avatar
      Revert "Reduce container metrics cardinality" · 640dbb03
      Radosław Piliszek authored
      This reverts commit c6259158.
      
      Reason for revert: cAdvisor fails with:
      
      invalid value "percpu,referenced_memory,cpu_topology,resctrl,udp,advtcp,sched,hugetlb,memory_numa,tcp,process" for flag -disable_metrics: unsupported metric "referenced_memory" specified in disable_metrics
      
      Change-Id: I1a0eea5c20f95f38c707401b56b7d2454484377d
      640dbb03
  22. Jun 16, 2021
    • Piotr Parczewski's avatar
      Reduce container metrics cardinality · c6259158
      Piotr Parczewski authored
      Adds support for passing extra runtime options to cAdvisor.
      By default new options disable exporting rarely useful metrics
      and labels by cAdvisor. This helps reducing the load on Prometheus
      and cAdvisor itself.
      
      Change-Id: Id0144e8fa518e3236cb94ba2e3961fb455d36443
      c6259158
  23. Mar 02, 2021
    • Piotr Parczewski's avatar
      Deprecate Prometheus 1.x · a50bef0f
      Piotr Parczewski authored
      Deprecates support for Prometheus v1.x.
      In Xena support for it will be removed from Kolla Ansible.
      
      Change-Id: I027b19621196c698e09f79af294ba1b5dbfc0516
      a50bef0f
  24. Jan 12, 2021
  25. Oct 09, 2020
  26. Sep 01, 2020
    • Pierre Riteau's avatar
      Remove unused configuration for prometheus-openstack-exporter · 295f8d1b
      Pierre Riteau authored
      The Prometheus OpenStack exporter was needlessly configured to use the
      prometheus Docker volume and change permissions of /data, which does
      not exist in the container image.
      
      This must have been copy-pasted from existing Prometheus code.
      
      Change-Id: I96017c17e68ca7a00a2d5ac41f2f43ef87694514
      295f8d1b
  27. Aug 10, 2020
    • Mark Goddard's avatar
      Mount /etc/timezone based on host OS · 146b00ef
      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
      146b00ef
  28. Jul 27, 2020
    • Justinas Balciunas's avatar
      prometheus-openstack-exporter config service filtering · 9fc98be1
      Justinas Balciunas authored
      This change disables services in the Prometheus openstack-exporter
      if they are not enabled in the deployment. Such behaviour allows
      to avoid warnings and errors in the log files and keep the
      log file contents clean and informative.
      
      Change-Id: I4dcac976620a5f451e3d273183199aefe400994a
      9fc98be1
  29. Apr 09, 2020
    • Dincer Celik's avatar
      Introduce /etc/timezone to Debian/Ubuntu containers · 4b5df0d8
      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
      4b5df0d8
  30. Mar 20, 2020
    • Doug Szumski's avatar
      Support disabling Prometheus server · 505cded2
      Doug Szumski authored
      This is useful to people who manage their Prometheus Server
      externally to Kolla Ansible, or want to use the exporters with
      another framework such as Monasca.
      
      Change-Id: Ie3f61e2e186c8e77e21a7b53d2bd7d2a27eee18e
      505cded2
  31. Feb 25, 2020
  32. Feb 22, 2020
    • James Kirsch's avatar
      Construct service configuration urls using kolla_internal_fqdn · 256322a8
      James Kirsch authored
      Service configuration urls should be constructed using
      kolla_internal_fqdn instead of kolla_internal_vip_address. Otherwise SSL
      validation will fail when certificates are issued using domain names.
      
      Change-Id: I21689e22870c2f6206e37c60a3c33e19140f77ff
      Closes-Bug: 1862419
      256322a8
  33. Jan 10, 2020
    • Mark Goddard's avatar
      CentOS 8: Support variable image tag suffix · 9755c924
      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
      9755c924
  34. Oct 16, 2019
    • Radosław Piliszek's avatar
      Implement IPv6 support in the control plane · bc053c09
      Radosław Piliszek authored
      Introduce kolla_address filter.
      Introduce put_address_in_context filter.
      
      Add AF config to vars.
      
      Address contexts:
      - raw (default): <ADDR>
      - memcache: inet6:[<ADDR>]
      - url: [<ADDR>]
      
      Other changes:
      
      globals.yml - mention just IP in comment
      
      prechecks/port_checks (api_intf) - kolla_address handles validation
      
      3x interface conditional (swift configs: replication/storage)
      
      2x interface variable definition with hostname
      (haproxy listens; api intf)
      
      1x interface variable definition with hostname with bifrost exclusion
      (baremetal pre-install /etc/hosts; api intf)
      
      neutron's ml2 'overlay_ip_version' set to 6 for IPv6 on tunnel network
      
      basic multinode source CI job for IPv6
      
      prechecks for rabbitmq and qdrouterd use proper NSS database now
      
      MariaDB Galera Cluster WSREP SST mariabackup workaround
      (socat and IPv6)
      
      Ceph naming workaround in CI
      TODO: probably needs documenting
      
      RabbitMQ IPv6-only proto_dist
      
      Ceph ms switch to IPv6 mode
      
      Remove neutron-server ml2_type_vxlan/vxlan_group setting
      as it is not used (let's avoid any confusion)
      and could break setups without proper multicast routing
      if it started working (also IPv4-only)
      
      haproxy upgrade checks for slaves based on ipv6 addresses
      
      TODO:
      
      ovs-dpdk grabs ipv4 network address (w/ prefix len / submask)
      not supported, invalid by default because neutron_external has no address
      No idea whether ovs-dpdk works at all atm.
      
      ml2 for xenapi
      Xen is not supported too well.
      This would require working with XenAPI facts.
      
      rp_filter setting
      This would require meddling with ip6tables (there is no sysctl param).
      By default nothing is dropped.
      Unlikely we really need it.
      
      ironic dnsmasq is configured IPv4-only
      dnsmasq needs DHCPv6 options and testing in vivo.
      
      KNOWN ISSUES (beyond us):
      
      One cannot use IPv6 address to reference the image for docker like we
      currently do, see: https://github.com/moby/moby/issues/39033
      (docker_registry; docker API 400 - invalid reference format)
      workaround: use hostname/FQDN
      
      RabbitMQ may fail to bind to IPv6 if hostname resolves also to IPv4.
      This is due to old RabbitMQ versions available in images.
      IPv4 is preferred by default and may fail in the IPv6-only scenario.
      This should be no problem in real life as IPv6-only is indeed IPv6-only.
      Also, when new RabbitMQ (3.7.16/3.8+) makes it into images, this will
      no longer be relevant as we supply all the necessary config.
      See: https://github.com/rabbitmq/rabbitmq-server/pull/1982
      
      For reliable runs, at least Ansible 2.8 is required (2.8.5 confirmed
      to work well). Older Ansible versions are known to miss IPv6 addresses
      in interface facts. This may affect redeploys, reconfigures and
      upgrades which run after VIP address is assigned.
      See: https://github.com/ansible/ansible/issues/63227
      
      Bifrost Train does not support IPv6 deployments.
      See: https://storyboard.openstack.org/#!/story/2006689
      
      
      
      Change-Id: Ia34e6916ea4f99e9522cd2ddde03a0a4776f7e2c
      Implements: blueprint ipv6-control-plane
      Signed-off-by: default avatarRadosław Piliszek <radoslaw.piliszek@gmail.com>
      bc053c09
  35. Sep 18, 2019
    • Scott Solkhon's avatar
      Adding Prometheus blackbox exporter · b22375eb
      Scott Solkhon authored
      
      This commit follows up the work in Kolla to provide deploy and configure the
      Prometheus blackbox exporter.
      
      An example blackbox-exporter module has been added (disabled by default)
      called os_endpoint. This allows for the probing of endpoints over HTTP
      and HTTPS. This can be used to monitor that OpenStack endpoints return a status
      code of either 200 or 300, and the word 'versions' in the payload.
      
      This change introduces a new variable `prometheus_blackbox_exporter_endpoints`.
      Currently no defaults are specified because the configuration is heavily
      dependent on the deployment.
      
      Co-authored-by: default avatarJack Heskett <Jack.Heskett@gresearch.co.uk>
      Change-Id: I36ad4961078d90e2fd70c9a3368f5157d6fd89cd
      b22375eb
  36. Jun 27, 2019
  37. Mar 18, 2019
    • Doug Szumski's avatar
      Standardise Prometheus install type · 5b4e4876
      Doug Szumski authored
      All Prometheus services should use the Prometheus install type which
      defaults to the Kolla install type, rather than directly using the
      Kolla install type.
      
      Change-Id: Ieaa924986dff33d4cf4a90991a8f34534cfc3468
      5b4e4876
  38. Mar 11, 2019
    • Erol Guzoglu's avatar
      Support the prometheus elasticsearch exporter · 14ab9a7c
      Erol Guzoglu authored
      This patch implements the support for the elasticsearch-exporter in
      kolla-ansible
      
      The configuration and prechecks are reused from the other exporters
      
      Depends-On: Id138f12e10102a6dd2cd8d84f2cc47aa29af3972
      Change-Id: Iae0eac0179089f159804490bf71f1cf2c38dde54
      14ab9a7c
Loading