Skip to content
Snippets Groups Projects
  1. May 23, 2020
    • Doug Szumski's avatar
      Switch to Monasca API for logs · b39a0f80
      Doug Szumski authored
      The Monasca Log API has been removed and in this change we switch
      to using the unified API. If dedicated log APIs are required then
      this can be supported through configuration. Out of the box the
      Monasca API is used for both logs and metrics which is envisaged to
      work for most use cases.
      
      In order to use the unified API for logs, we need to disable the
      legacy Kafka client. We also rename the Monasca API config file
      to remove a warning about using the old style name.
      
      Depends-On: https://review.opendev.org/#/c/728638
      Change-Id: I9b6bf5b6690f4b4b3445e7d15a40e45dd42d2e84
      b39a0f80
  2. Apr 26, 2020
    • Radosław Piliszek's avatar
      Fix haproxy restarting twice per Ansible run · 04effaa9
      Radosław Piliszek authored
      Since haproxy is orchestrated via site.yml in a single play,
      it does not need flushing handlers as handlers run will
      happen at the end of this play.
      
      Change-Id: Ia3743575da707325be93c39b4a2bcae9211cacb2
      Related-Bug: #1864810
      Closes-Bug: #1875228
      04effaa9
    • Radosław Piliszek's avatar
      Remove redundant listen on haproxy handler · 98e86ea6
      Radosław Piliszek authored
      Follow-up on [1] "Avoid multiple haproxy restarts after
      reconfiguration".
      
      There is no need to duplicate handler name in listen.
      The issue was because we had two handlers with the same
      name in the same environment.
      This causes Ansible not to mark handler as already run.
      
      [1] https://review.opendev.org/708385
      
      Change-Id: I5425a8037b6860ef71bce59becff8dfe5b601d4c
      Related-Bug: #1864810
      98e86ea6
  3. Apr 21, 2020
    • Christian Berendt's avatar
      Avoid multiple haproxy restarts after reconfiguration · 1efe0fe3
      Christian Berendt authored
      The haproxy role and the site.yml file calls the
      haproxy-config role to provide configuration for individual
      services.
      
      If the configuration within a service changes, the haproxy
      container is restarted.
      
      If the configuration in n services changes, there will be n
      restarts. This is not necessary, a restart at the end is
      sufficient.
      
      By removing the handler from the haproxy-config role and
      using the listen parameter in the handler of the haproxy role,
      the handler is executed only once.
      
      Change-Id: I535fe67579fb748093bb4b30a6bd31b81e021a1b
      Closes-Bug: #1864810
      1efe0fe3
  4. 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
  5. 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
    • James Kirsch's avatar
      Add support for encrypting backend Keystone HAProxy traffic · b475643c
      James Kirsch authored
      This patch introduces an optional backend encryption for Keystone
      service. When used in conjunction with enabling TLS for service API
      endpoints, network communcation will be encrypted end to end, from
      client through HAProxy to the Keystone service.
      
      Change-Id: I6351147ddaff8b2ae629179a9bc3bae2ebac9519
      Partially-Implements: blueprint add-ssl-internal-network
      b475643c
  6. Apr 08, 2020
    • Mark Goddard's avatar
      Remove support for CentOS 7 · f4e20a1f
      Mark Goddard authored
      CentOS 8 support is now fairly complete - time to drop CentOS 7.
      
      Partially-Implements: blueprint centos-rhel-8
      
      Change-Id: I940b1d3eceb98e16fa366c243672f588b1412d70
      f4e20a1f
    • Mark Goddard's avatar
      Perform host configuration during upgrade · 1d70f509
      Mark Goddard authored
      This is a follow up to I001defc75d1f1e6caa9b1e11246abc6ce17c775b. To
      maintain previous behaviour, and ensure we catch any host configuration
      changes, we should perform host configuration during upgrade.
      
      Change-Id: I79fcbf1efb02b7187406d3c3fccea6f200bcea69
      Related-Bug: #1860161
      1d70f509
  7. Apr 02, 2020
    • Mark Goddard's avatar
      Separate per-service host configuration tasks · fdea19a3
      Mark Goddard authored
      Currently there are a few services that perform host configuration
      tasks. This is done in config.yml. This means that these changes are
      performed during 'kolla-ansible genconfig', when we might expect not to
      be making any changes to the remote system.
      
      This change separates out these host configuration tasks into a
      config-host.yml file, which is included directly from deploy.yml.
      
      One change in behaviour is that this prevents these tasks from running
      during an upgrade or genconfig. This is probably what we want, but we
      should be careful when any of these host configuration tasks are
      changed, to ensure they are applied during an upgrade if necessary.
      
      Change-Id: I001defc75d1f1e6caa9b1e11246abc6ce17c775b
      Closes-Bug: #1860161
      fdea19a3
  8. Mar 25, 2020
    • Mark Goddard's avatar
      Fix HAProxy prechecks during scale-out with limit · f3350d4e
      Mark Goddard authored
      Deploy HAProxy on one or more servers. Add another server to the
      inventory in the haproxy group, and run the following:
      
      kolla-ansible prechecks --limit <new host>
      
      The following task will fail:
      
          TASK [haproxy : Checking if kolla_internal_vip_address and
          kolla_external_vip_address are not pingable from any node]
      
      This happens because ansible does not execute on hosts where
      haproxy/keepalived is running, and therefore does not know that the VIP
      should be active.
      
      This change skips VIP prechecks when not all HAProxy hosts are in the
      play.
      
      Closes-Bug: #1868986
      
      Change-Id: Ifbc73806b768f76f803ab01c115a9e5c2e2492ac
      f3350d4e
  9. Mar 10, 2020
    • Mark Goddard's avatar
      Fix HAProxy monitor VIP precheck · 93a4dcc1
      Mark Goddard authored
      If haproxy is running somewhere in the cluster and listening on the VIP,
      but not running locally, then the following precheck may fail:
      
         TASK [haproxy : Checking free port for HAProxy monitor (vip interface)]
      
         msg: Timeout when waiting for 192.0.2.10:61313 to stop.
      
      This change fixes the issue by skipping the check if HAProxy is running
      on any host.
      
      Change-Id: I831eb2f700ef3fcf65b7e08382c3b4fcc4ce8d8d
      Closes-Bug: #1866617
      93a4dcc1
  10. Mar 02, 2020
  11. 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
  12. Feb 11, 2020
  13. Jan 28, 2020
    • Mark Goddard's avatar
      CentOS 8: Deploy CentOS 8 containers · 3b24e566
      Mark Goddard authored
      * HAProxy is now 1.8 in CentOS 8
      * Support python3 in baremetal role
      * Remove support for environments without python2 installed (this could
        not have worked since we gather facts before this point)
      
      Workarounds:
      
      * Using CentOS 7 yum repo for Docker, with module_hotfixes
      
      Change-Id: I30bd3d58f6224ad4c9575ba66c74deabe6895cc4
      Partially-Implements: blueprint centos-rhel-8
      3b24e566
  14. Jan 17, 2020
  15. Jan 13, 2020
  16. 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
  17. Dec 10, 2019
    • Pierre Riteau's avatar
      Template custom HAProxy service configuration · 49f33428
      Pierre Riteau authored
      Change Id84e3b6e62e544582d6917047534e846e026798d added support for
      custom HAProxy service config using a plain copy of files in services.d.
      
      Use a template action instead of a copy so that we can use variables and
      iterate over group of hosts.
      
      Change-Id: I1f07785932de4e4540422bd18af95241f05a67bf
      49f33428
  18. 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
  19. Nov 14, 2019
  20. Nov 11, 2019
  21. 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
  22. Oct 03, 2019
  23. 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
  24. Sep 23, 2019
    • Mark Goddard's avatar
      Ensure keepalived is restarted during upgrade · 6f05f1b8
      Mark Goddard authored
      During upgrade, we stop all slave keepalived containers. However, if the
      keepalived container configuration has not changed, we never restart
      them.
      
      This change fixes the issue by notifying the restart handler when the
      containers are stopped.
      
      Change-Id: Ibe094b0c14a70a0eb811182d96f045027aa02c2a
      Closes-Bug: #1836368
      6f05f1b8
    • Mark Goddard's avatar
      Add <project>_install_type for all projects · cc555c41
      Mark Goddard authored
      This allows the install type for the project to be different than
      kolla_install_type
      
      This can be used to avoid hitting bug 1786238, since kuryr only supports
      the source type.
      
      Change-Id: I2b6fc85bac092b1614bccfd22bee48442c55dda4
      Closes-Bug: #1786238
      cc555c41
  25. Sep 19, 2019
  26. Sep 14, 2019
  27. Aug 22, 2019
    • Krzysztof Klimonda's avatar
      Implement TLS encryption for internal endpoints · b0ecd8b6
      Krzysztof Klimonda authored
      This review is the first one in a series of patches and it introduces an
      optional encryption for internal openstack endpoints, implementing part
      of the add-ssl-internal-network spec.
      
      Change-Id: I6589751626486279bf24725f22e71da8cd7f0a43
      b0ecd8b6
  28. Aug 15, 2019
  29. Aug 14, 2019
    • Scott Solkhon's avatar
      HAProxy backend connection limits · 46f9ad3a
      Scott Solkhon authored
      The default connection limits for backends is 2000
      however, mariadb defaults to a max of 10000 conections,
      therefore changing this limit to match the mariadb limit.
      
      'haproxy_max_connections' also needs to be bumped
      for this to work.
      
      Change-Id: I5ded328485855f3f3d4390282040b0d89d08d997
      46f9ad3a
  30. 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
  31. May 31, 2019
    • Gaetan Trellu's avatar
      Adds Qinling Ansible role · edb34898
      Gaetan Trellu authored
      Qinling is an OpenStack project to provide "Function as a Service".
      This project aims to provide a platform to support serverless functions.
      
      Change-Id: I239a0130f8c8b061b531dab530d65172b0914d7c
      Implements: blueprint ansible-qinling-support
      Story: 2005760
      Task: 33468
      edb34898
  32. May 17, 2019
    • binhong.hua's avatar
      Make kolla-ansible support extra volumes · 12ff28a6
      binhong.hua authored
      When integrating 3rd party component into openstack with kolla-ansible,
      maybe have to mount some extra volumes to container.
      
      Change-Id: I69108209320edad4c4ffa37dabadff62d7340939
      Implements: blueprint support-extra-volumes
      12ff28a6
  33. May 09, 2019
  34. May 02, 2019
    • Raimund Hook's avatar
      Updating Jinja filters to conform to Ansible 2.5+ · 84ea42bd
      Raimund Hook authored
      Since Ansible 2.5, the use of jinja tests as filters has been
      deprecated.
      
      I've run the script provided by the ansible team to 'fix' the
      jinja filters to conform to the newer syntax.
      
      This fixes the deprecation warnings.
      
      Change-Id: I844ecb7bec94e561afb09580f58b1bf83a6d00bd
      Closes-bug: #1827370
      84ea42bd
  35. Mar 08, 2019
    • Bai Yongjun's avatar
      Add cyborg to kolla-ansible · ed2fd243
      Bai Yongjun authored
      Because kolla-ansible not have cyborg so should add it.
      
      Implements: blueprint add-cyborg-to-kolla-ansible
      
      Depend-On: I497e67e3a754fccfd2ef5a82f13ccfaf890a6fcd
      
      Change-Id: I6f7ae86f855c5c64697607356d0ff3161f91b239
      ed2fd243
Loading