Skip to content
Snippets Groups Projects
  1. May 15, 2020
    • Jeffrey Zhang's avatar
      Configure RabbitMQ user tags in nova-cell role · 869e3f21
      Jeffrey Zhang authored
      The RabbitMQ 'openstack' user has the 'administrator' tag assigned via
      the RabbitMQ definitions.json file.
      
      Since the Train release, the nova-cell role also configures the RabbitMQ
      user, but omits the tag. This causes the tag to be removed from the
      user, which prevents it from accessing the management UI and API.
      
      This change adds support for configuring user tags to the
      service-rabbitmq role, and sets the administrator tag by default.
      
      Change-Id: I7a5d6fe324dd133e0929804d431583e5b5c1853d
      Closes-Bug: #1875786
      869e3f21
  2. May 06, 2020
    • Radosław Piliszek's avatar
      Make nova perms consistent between applications · 93c9ad89
      Radosław Piliszek authored
      Nova cells support introduced a slight regression that triggers
      odd behaviour when we tried switching to Apache (httpd) [1].
      Bootstrap no longer applied permissions recursively to all log
      files, creating a discrepancy between normal and bootstrap runs
      and also Nova and other services such as Cinder (regarding
      bootstrap logging).
      
      This patch fixes it.
      
      Backport to Train.
      
      Not creating reno nor a bug record because it does not affect
      any current standard usage in any currently known way.
      
      Note this only really hides (standardizes?) the global issue that
      we don't control file permissions on newly created files too well.
      
      [1] https://review.opendev.org/724793
      
      Change-Id: I35e9924ccede5edd2e1307043379aba944725143
      Needed-By: https://review.opendev.org/724793
      93c9ad89
  3. Apr 16, 2020
    • Michal Nasiadka's avatar
      Ansible lint: lines longer than 160 chars · d403690b
      Michal Nasiadka authored
      Change-Id: I500cc8800c412bc0e95edb15babad5c1189e6ee4
      d403690b
    • Mark Goddard's avatar
      Fix nova cell message queue URL with separate notification queue · e8ad5f37
      Mark Goddard authored
      If using a separate message queue for nova notifications, i.e.
      nova_cell_notify_transport_url is different from
      nova_cell_rpc_transport_url, then Kolla Ansible will unnecessarily
      update the cell. This should not cause any issues since the URL is taken
      from nova.conf.
      
      This change fixes the comparison to use the correct URL.
      
      Change-Id: I5f0e30957bfd70295f2c22c86349ebbb4c1fb155
      Closes-Bug: #1873255
      e8ad5f37
  4. Apr 15, 2020
  5. Apr 14, 2020
    • Mark Goddard's avatar
      Fix nova compute addition with limit · 3af28d21
      Mark Goddard authored
      Deploy a small cloud. Add one host to the compute group in the
      inventory, and scale out:
      
      $ kolla-ansible deploy --limit <new compute host>
      
      The command succeeds, but creating an instance fails with the following:
      
          Host 'compute0' is not mapped to any cell
      
      This happens because we only discover computes on the first host in the
      cell's nova conductor group. If that host is not in the specified limit,
      the discovery will not happen.
      
      This change fixes the issue by running compute discovery when any ironic
      or virtualised compute hosts are in the play batch, and delegating it to
      a conductor.
      
      Change-Id: Ie984806240d147add825ffa8446ae6ff55ca4814
      Closes-Bug: #1869371
      3af28d21
    • 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
  6. 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
    • John Garbutt's avatar
      Fix live migration to use migration int. address · 628c27ce
      John Garbutt authored
      In kolla ansible we typically configure services to communicate via IP
      addresses rather than hostnames. One accidental exception to this was
      live migration, which used the hostname of the destination even when
      not required (i.e. TLS not being used for libvirt).
      
      To make such hostnames work, k-a adds entries to /etc/hosts in the
      bootstrap-servers command. Alternatively users may provide DNS.
      
      One problem with using /etc/hosts is that, if a new compute host is
      added to the cloud, or an IP address is changed, that will not be
      reflected in the /etc/hosts file of other hosts. This would cause live
      migration to the new host from an old host to fail, as the name cannot
      be resolved.
      
      The workaround for this was to update the /etc/hosts file (perhaps via
      bootstrap-servers) on all hosts after adding new compute hosts. Then the
      nova_libvirt container had to be restarted to pick up the change.
      
      Similarly, if user has overridden the migration_interface, the used
      hostname could point to a wrong address on which libvirt would not
      listen.
      
      This change adds the live_migration_inbound_addr option to nova.conf. If
      TLS is not in use for libvirt, this will be set to the IP address of the
      host on the migration network. If TLS is enabled for libvirt,
      live_migration_inbound_addr will be set to migration_hostname, since
      certificates will typically reference the hostname rather than the
      host's IP. With libvirt TLS enabled, DNS is recommended to avoid the
      /etc/hosts issue which is likely the case in production deployments.
      
      Change-Id: I0201b46a9fbab21433a9f53685131aeb461543a8
      Closes-Bug: #1729566
      628c27ce
  7. Apr 08, 2020
    • 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
  8. Apr 03, 2020
  9. 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
  10. 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
  11. Mar 02, 2020
  12. 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
  13. Feb 11, 2020
  14. Jan 31, 2020
    • Ning Yao's avatar
      Fix qemu loading of ceph.conf (permission error) · 91910d2a
      Ning Yao authored
      
      ceph.conf is loaded by qemu, not libvirt.
      Since qemu runs as the nova user, ceph.conf owned by root
      causes a permission error. The logs in
      /var/log/libvirt/qemu/instance-*.log reveal the error.
      
      This change fixes the issue by changing the ownership of ceph.conf
      in nova-libvirt to the nova user.
      
      Closes-Bug: #1861513
      Change-Id: I1881f51a6c8508f0f186a5623443343dc1df41d4
      Signed-off-by: default avatarNing Yao <yaoning@unitedstack.com>
      91910d2a
  15. Jan 30, 2020
    • Mark Goddard's avatar
      Python 3: Use distro_python_version for dev mode · 5a786436
      Mark Goddard authored
      In dev mode currently the python source is mounted under python2.7
      site-packages. This change fixes this to use the distro_python_version
      variable to ensure dev mode works with Python 3 images.
      
      Change-Id: Ieae3778a02f1b79023b4f1c20eff27b37f481077
      Partially-Implements: blueprint python-3
      5a786436
  16. Jan 29, 2020
    • Michal Nasiadka's avatar
      External Ceph: add ceph_*_user variables · fdf3729f
      Michal Nasiadka authored
      To make the configuration easier for the user, and to allow non-standard
      ceph authentication ids - introduce ceph_*_user variables.
      
      Change-Id: I24e01c43c826b62b6748d93a498f4b7d8ce9e309
      fdf3729f
  17. 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
  18. Jan 22, 2020
    • Michal Nasiadka's avatar
      External Ceph: keys as variables · 1f929336
      Michal Nasiadka authored
      Introduce user modifiable variables instead of fixed-names
      of Ceph keyring files for external Ceph functionality.
      
      Change-Id: I1a33b3f9d6eca5babf53b91187461e43aef865ce
      1f929336
  19. Jan 14, 2020
    • Michal Nasiadka's avatar
      External Ceph: copy also cinder keyring to nova services · 71d4c697
      Michal Nasiadka authored
      Since [1] nova-compute uses rbd python library instead of libvirt to cleanup
      volumes and get pool info - so it requires cinder keyring on filesystem.
      
      In external ceph case it is often that nova key does not exist (is simply a copied
      cinder key) and the rbd user is set to cinder - therefore the earlier mentioned
      operations will fail due to a missing keyring on the filesystem.
      
      [1]: https://review.opendev.org/#/c/668564/
      
      Change-Id: Idef21dc5f7e9ff512bc8920630a3de61a1e69eee
      Backport: train
      Closes-Bug: #1859408
      71d4c697
  20. Jan 13, 2020
  21. 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
  22. Nov 25, 2019
  23. Nov 22, 2019
    • Pierre Riteau's avatar
      Use valid_interfaces instead of os_interface for placement · 96590822
      Pierre Riteau authored
      The [placement].os_interface option was replaced by
      [placement].valid_interfaces in Queens and was removed in Rocky.
      
      Change-Id: I306c57305b9088159dd18af4aa373bbc39a8b881
      Closes-Bug: #1853621
      96590822
    • 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
  24. Oct 21, 2019
    • Jan Horstmann's avatar
      Extract cephx keys from vault encrypted files · 44709f41
      Jan Horstmann authored
      Cephx keys are not picked up by "local_action: shell cat [...]"
      when using ansible-vault encrypted keyrings.
      This commit changes the logic to use the file lookup plugin and
      extracts the key using jinja2 regex filters. The raw keys are then
      set as ansible facts.
      
      Closes-Bug: 1849127
      
      Change-Id: Iacb1e42307c4de6a7a379e8cf279e073995fd5d3
      44709f41
  25. Oct 18, 2019
    • Doug Szumski's avatar
      Add unit tests for Nova Cells filters · 8e068099
      Doug Szumski authored
      This moves the Nova Cells filters alongside the service filters
      for ease of testing.
      
      Partially Implements: blueprint support-nova-cells
      Change-Id: I32d35c065812c6b46c64bacdf283a0bdad0f8a0f
      8e068099
  26. Oct 16, 2019
    • Doug Szumski's avatar
      Support multiple nova cells · 78a828ef
      Doug Szumski authored
      
      This patch adds initial support for deploying multiple Nova cells.
      
      Splitting a nova-cell role out from the Nova role allows a more granular
      approach to deploying and configuring Nova services.
      
      A new enable_cells flag has been added that enables the support of
      multiple cells via the introduction of a super conductor in addition to
      cell-specific conductors. When this flag is not set (the default), nova
      is configured in the same manner as before - with a single conductor.
      
      The nova role now deploys the global services:
      
      * nova-api
      * nova-scheduler
      * nova-super-conductor (if enable_cells is true)
      
      The nova-cell role handles services specific to a cell:
      
      * nova-compute
      * nova-compute-ironic
      * nova-conductor
      * nova-libvirt
      * nova-novncproxy
      * nova-serialproxy
      * nova-spicehtml5proxy
      * nova-ssh
      
      This patch does not support using a single cell controller for managing
      more than one cell. Support for sharing a cell controller will be added
      in a future patch.
      
      This patch should be backwards compatible and is tested by existing CI
      jobs. A new CI job has been added that tests a multi-cell environment.
      
      ceph-mon has been removed from the play hosts list as it is not
      necessary - delegate_to does not require the host to be in the play.
      
      Documentation will be added in a separate patch.
      
      Partially Implements: blueprint support-nova-cells
      Co-Authored-By: default avatarMark Goddard <mark@stackhpc.com>
      Change-Id: I810aad7d49db3f5a7fd9a2f0f746fd912fe03917
      78a828ef
  27. Oct 01, 2019
    • Doug Szumski's avatar
      Copy Nova role as a basis for the Nova cell role · 952b5308
      Doug Szumski authored
      The idea is to factor out a role for deploying Nova related services
      to cells. Since all deployments use cells, this role can be used
      in both regular deployments which have just cell0 and cell1,
      and deployments with many cells.
      
      Partially Implements: blueprint support-nova-cells
      Change-Id: Ib1f36ec0a773c384f2c1eac1843782a3e766045a
      952b5308
Loading