Skip to content
Snippets Groups Projects
  1. 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
  2. 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
  3. 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
  4. 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
  5. Jan 12, 2021
  6. Oct 09, 2020
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. Feb 25, 2020
  13. 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
  14. 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
  15. 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
  16. 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
  17. Jun 27, 2019
  18. 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
  19. 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
  20. Mar 01, 2019
  21. Feb 27, 2019
    • Doug Szumski's avatar
      Default to Prometheus tag for all Prometheus images · 4aed0440
      Doug Szumski authored
      This allows an operator to pin the Prometheus docker image
      tag for all Prometheus images to that specified by the `prometheus_tag`.
      Without this change, the alert manager and cadvisor tags would also need
      to be set.
      
      Change-Id: Iadef001af7d3be5b2a39ce5e2363d05a33a775e4
      4aed0440
  22. Jan 21, 2019
    • Jorge Niedbalski's avatar
      [prometheus] Support the prometheus openstack exporter · 6c64b7c7
      Jorge Niedbalski authored
      This patch implements the initial support for the
      openstack-exporter[0] in the kolla-ansible
      prometheus monitoring system.
      
      The configuration and prechecks are reused from the other
      exporters and a new template is provided for generating
      a os-client-config file required by the exporter.
      
      The default scrape interval is 60 seconds, but it can
      be extended via a configuration option.
      
      [0] https://github.com/Linaro/openstack-exporter
      
      Change-Id: I4a34c4bb56e74b5cd544972cbd6540d9acb6e4a1
      6c64b7c7
  23. Sep 26, 2018
    • Adam Harwell's avatar
      Refactor haproxy config (split by service) V2.0 · f1c81365
      Adam Harwell authored
      Having all services in one giant haproxy file makes altering
      configuration for a service both painful and dangerous. Each service
      should be configured with a simple set of variables and rendered with a
      single unified template.
      
      Available are two new templates:
      
      * haproxy_single_service_listen.cfg.j2: close to the original style, but
      only one service per file
      * haproxy_single_service_split.cfg.j2: using the newer haproxy syntax
      for separated frontend and backend
      
      For now the default will be the single listen block, for ease of
      transition.
      
      Change-Id: I6e237438fbc0aa3c89a3c8bd706a53b74e71904b
      f1c81365
  24. Sep 25, 2018
  25. Jul 23, 2018
  26. Jul 11, 2018
  27. May 29, 2018
    • Mark Giles's avatar
      Add cAdvisor for Prometheus monitoring · 41254b6c
      Mark Giles authored
      cAdvisor (Container Advisor) provides metrics on resource usage and
      performance characteristics of running containers.  This change
      deploys a cadvisor container and configures prometheus to scrape
      data from it.
      
      Change-Id: I55dd4fee954f9be68efda397746861ddaaa0a565
      Partially-Implements: blueprint prometheus
      41254b6c
  28. May 25, 2018
  29. Apr 19, 2018
    • Mathias Ewald's avatar
      Add role to deploy prometheus · 4d1f3735
      Mathias Ewald authored
      This patch adds the ansible role to deploy the prometheus service which
      can be used to collect performance metrics accross the environment
      
      Partially-Implements: blueprint prometheus
      Change-Id: I908b9c9dad63ab5c9b80be1e3a80a4fc8191cb9e
      4d1f3735
Loading