Skip to content
Snippets Groups Projects
  1. May 17, 2020
    • Michal Nasiadka's avatar
      CI: Add ansible-lint to tox · d8f31e0a
      Michal Nasiadka authored
      * Reworked tox pep8 into linters job, that runs:
        - pep8
        - bandit
        - bashate
        - doc8
        - yamllint
        - ansible-lint (validate-all-files.py + ansible-lint)
      
      * Skip E701 - missing galaxy_info in meta and E602 see [1].
      * Skip E301 and E503 - followup later in a separate change
      * Added ansible-role-jobs to zuul.d/project.yaml which will run
        openstack-tox-linters job in check queue
      * Fixed remaining style issue
      * Made tox and docs reference the new env for linters
      * Dropped pype environment (not supported)
      
      [1]: https://github.com/ansible/ansible-lint/issues/457
      
      Change-Id: I494b4b151804aac8173120e6c6e42bc2fdb00234
      d8f31e0a
  2. May 11, 2020
    • Will Szumski's avatar
      Add extras directory to prometheus config · d05578f5
      Will Szumski authored
      This provides a generic mechanism to include extra files
      that you can reference in prometheus.yml, for example:
      
      scrape_targets:
        - job_name: ipmi
          params:
            module: default
          scrape_interval: 1m
          scrape_timeout: 30s
          metrics_path: /ipmi
          scheme: http
          file_sd_configs:
          - files:
            - /etc/prometheus/extras/file_sd/ipmi-exporter-targets.yml
            refresh_interval: 5m
      
      Change-Id: Ie2f085204b71725b901a179ee51541f1f383c6fa
      Related: blueprint custom-prometheus-targets
      d05578f5
    • Will Szumski's avatar
      Support customizing prometheus.cfg files · 956a29f8
      Will Szumski authored
      This provides a mechanism to scrape targets defined outside of kolla-ansible.
      
      Depends-On: https://review.opendev.org/#/c/685671/
      Change-Id: I0950341b147bb374b4128f09f807ef5a756f5dfa
      Related: blueprint custom-prometheus-targets
      956a29f8
  3. Apr 14, 2020
    • James Kirsch's avatar
      Refactor copy certificates task · 4d155d69
      James Kirsch authored
      Refactor service configuration to use the copy certificates task. This
      reduces code duplication and simplifies implementing encrypting backend
      HAProxy traffic for individual services.
      
      Change-Id: I0474324b60a5f792ef5210ab336639edf7a8cd9e
      4d155d69
  4. 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
  5. Mar 10, 2020
    • yj.bai's avatar
      Add notify restart container when cert changed · d3cc2f67
      yj.bai authored
      
      When change the cert file in /etc/kolla/certificate/.
      The certificate in the container has not changed.
      So I think can use kolla-ansible deploy when certificate is
      changed. restart <container>
      
      Partially-Implements: blueprint custom-cacerts
      
      Change-Id: Iaac6f37e85ffdc0352e8062ae5049cc9a6b3db26
      Signed-off-by: default avataryj.bai <bai.yongjun@99cloud.net>
      d3cc2f67
  6. Mar 02, 2020
  7. Feb 28, 2020
    • Mark Goddard's avatar
      Add Ansible group check to prechecks · 49fb55f1
      Mark Goddard authored
      We assume that all groups are present in the inventory, and quite obtuse
      errors can result if any are not.
      
      This change adds a precheck that checks for the presence of all expected
      groups in the inventory for each service. It also introduces a common
      service-precheck role that we can use for other common prechecks.
      
      Change-Id: Ia0af1e7df4fff7f07cd6530e5b017db8fba530b3
      Partially-Implements: blueprint improve-prechecks
      49fb55f1
  8. Jan 28, 2020
    • James Kirsch's avatar
      Copy CA into containers. · 511ba9f6
      James Kirsch authored
      When kolla_copy_ca_into_containers is set to "yes", the Certificate
      Authority in /etc/kolla/certificates will be copied into service
      containers to enable trust for that CA. This is especially useful when
      the CA is self signed, and would not be trusted by default.
      
      Partially-Implements: blueprint custom-cacerts
      
      Change-Id: I4368f8994147580460ebe7533850cf63a419d0b4
      511ba9f6
  9. Jan 13, 2020
  10. Nov 22, 2019
    • Michal Nasiadka's avatar
      Change local_action to delegate_to: localhost · 10099311
      Michal Nasiadka authored
      As part of the effort to implement Ansible code linting in CI
      (using ansible-lint) - we need to implement recommendations from
      ansible-lint output [1].
      
      One of them is to stop using local_action in favor of delegate_to -
      to increase readability and and match the style of typical ansible
      tasks.
      
      [1]: https://review.opendev.org/694779/
      
      Partially implements: blueprint ansible-lint
      
      Change-Id: I46c259ddad5a6aaf9c7301e6c44cd8a1d5c457d3
      10099311
  11. 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
  12. Sep 26, 2019
    • Kris Lindgren's avatar
      Add a job that *only* deploys updated containers · 2fe0d98e
      Kris Lindgren authored
      Sometimes as cloud admins, we want to only update code that is running
      in a cloud.  But we dont need to do anything else.  Make an action in
      kolla-ansible that allows us to do that.
      
      Change-Id: I904f595c69f7276e71692696471e32fd1f88e6e8
      Implements: blueprint deploy-containers-action
      2fe0d98e
  13. 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
  14. Jun 27, 2019
    • Mark Goddard's avatar
      Simplify handler conditionals · de00bf49
      Mark Goddard authored
      Currently, we have a lot of logic for checking if a handler should run,
      depending on whether config files have changed and whether the
      container configuration has changed. As rm_work pointed out during
      the recent haproxy refactor, these conditionals are typically
      unnecessary - we can rely on Ansible's handler notification system
      to only trigger handlers when they need to run. This removes a lot
      of error prone code.
      
      This patch removes conditional handler logic for all services. It is
      important to ensure that we no longer trigger handlers when unnecessary,
      because without these checks in place it will trigger a restart of the
      containers.
      
      Implements: blueprint simplify-handlers
      
      Change-Id: I4f1aa03e9a9faaf8aecd556dfeafdb834042e4cd
      de00bf49
  15. Jun 06, 2019
    • Mark Goddard's avatar
      Use become for all docker tasks · b123bf66
      Mark Goddard authored
      Many tasks that use Docker have become specified already, but
      not all. This change ensures all tasks that use the following
      modules have become:
      
      * kolla_docker
      * kolla_ceph_keyring
      * kolla_toolbox
      * kolla_container_facts
      
      It also adds become for 'command' tasks that use docker CLI.
      
      Change-Id: I4a5ebcedaccb9261dbc958ec67e8077d7980e496
      b123bf66
  16. Apr 10, 2019
  17. Apr 02, 2019
    • Mark Goddard's avatar
      Fix up config file permissions on the host · a4bb8567
      Mark Goddard authored
      Several config file permissions are incorrect on the host. In general,
      files should be 0660, and directories and executables 0770.
      
      Change-Id: Id276ac1864f280554e98b937f2845bb424d521de
      Closes-Bug: #1821579
      a4bb8567
  18. 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
  19. 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
  20. Dec 27, 2018
  21. Dec 21, 2018
  22. Dec 17, 2018
  23. Nov 26, 2018
    • Eduardo Gonzalez's avatar
      Support stop specific containers · 1a682fab
      Eduardo Gonzalez authored
      With this change, an operator may be able to stop a
      service container without stopping all services in a host.
      This change is the starting point to start
      fast-forward upgrades support.
      In next changes new flags will be introducced to disable
      stop dataplane services during upgrades.
      
      Change-Id: Ifde7a39d7d8596ef0d7405ecf1ac1d49a459d9ef
      Implements: blueprint support-stop-containers
      1a682fab
  24. Oct 30, 2018
  25. 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
  26. Sep 04, 2018
    • Mark Goddard's avatar
      Add check.yml for prometheus and vitrage · 354894e2
      Mark Goddard authored
      Without this, kolla-ansible check fails with the following error:
      
      Unable to retrieve file contents
      Could not find or access '/path/to/kolla-ansible/ansible/check.yml'"}
      
      Also adds the check command to the CI tests, to ensure that it does not
      break again.
      
      Change-Id: I9fc2f9999f55cb742ac3ac38579dcf26524a9fc7
      Closes-Bug: #1790653
      354894e2
  27. Aug 08, 2018
  28. Jul 25, 2018
  29. Jul 23, 2018
  30. Jul 11, 2018
  31. Jun 08, 2018
  32. 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
  33. May 25, 2018
  34. May 16, 2018
    • Mark Goddard's avatar
      Fix missed kolla_action and kolla_serial · 2e190597
      Mark Goddard authored
      In change I78cb60168aaa40bb6439198283546b7faf33917c, action was changed
      to kolla_action, and serial to kolla_serial, to avoid Ansible warnings
      due to use of reserved keywords. In that change, some keywords were
      missed, and some changes that were merged since then have not switched
      to the new variables. This change fixes all current instances of those
      issues.
      
      Change-Id: I357dffdfcb2b405e280a962d366ee65eebf0a8d1
      Implements: blueprint migrate-to-ansible-2-2-0
      2e190597
  35. Apr 29, 2018
  36. 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