Skip to content
Snippets Groups Projects
  1. Mar 29, 2022
    • Mark Goddard's avatar
      nova: improve compute service registration failure handling · f1d3ff11
      Mark Goddard authored
      If any nova compute service fails to register itself, Kolla Ansible will
      fail the host that queries the Nova API. This is the first compute host
      in the inventory, and fails in the task:
      
          Waiting for nova-compute services to register themselves
      
      Other hosts continue, often leading to further errors later on. Clearly
      this is not idea.
      
      This change modifies the behaviour to query the compute service list
      until all expected hosts are present, but does not fail the querying
      host if they are not. A new task is added that executes for all hosts,
      and fails only those hosts that have not registered successfully.
      
      Alternatively, to fail all hosts in a cell when any compute service
      fails to register, set nova_compute_registration_fatal to true.
      
      Change-Id: I12c1928cf1f1fb9e28f1741e7fe4968004ea1816
      Closes-Bug: #1940119
      f1d3ff11
  2. Oct 12, 2020
    • Radosław Piliszek's avatar
      Performance: optimize genconfig · 3411b9e4
      Radosław Piliszek authored
      Config plays do not need to check containers. This avoids skipping
      tasks during the genconfig action.
      
      Ironic and Glance rolling upgrades are handled specially.
      
      Swift and Bifrost do not use the handlers at all.
      
      Partially-Implements: blueprint performance-improvements
      Change-Id: I140bf71d62e8f0932c96270d1f08940a5ba4542a
      3411b9e4
  3. Aug 28, 2020
  4. Jun 09, 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
  6. 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
  7. 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
  8. 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
  9. Sep 11, 2019
  10. Dec 14, 2018
    • Mark Goddard's avatar
      Create cells before starting nova services · 365bb517
      Mark Goddard authored
      Nova services may reasonably expect cell databases to exist when they
      start. The current cell setup tasks in kolla run after the nova
      containers have started, meaning that cells may or may not exist in the
      database when they start, depending on timing. In particular, we are
      seeing issues in kolla CI currently with jobs timing out waiting for
      nova compute services to start. The following error is seen in the nova
      logs of these jobs, which may or may not be relevant:
      
      No cells are configured, unable to continue
      
      This change creates the cell0 and cell1 databases prior to starting nova
      services.
      
      In order to do this, we must create new containers in which to run the
      nova-manage commands, because the nova-api container may not yet exist.
      This required adding support to the kolla_docker module for specifying a
      command for the container to run that overrides the image's command.
      
      We also add the standard output and error to the module's result when a
      non-detached container is run. A secondary benefit of this is that the
      output of bootstrap containers is now displayed in the Ansible output if
      the bootstrapping command fails, which will help with debugging.
      
      Change-Id: I2c1e991064f9f588f398ccbabda94f69dc285e61
      Closes-Bug: #1808575
      365bb517
  11. Oct 10, 2018
    • Mark Goddard's avatar
      Generate Ceph configuration during upgrade · 242625df
      Mark Goddard authored
      If upgrading the nova, cinder or manila services via 'kolla-ansible
      upgrade', the Ceph config files are not generated. Users will expect
      that these files are generated, to pull in any changes from their
      configuration or the base kolla configuration.
      
      This change moves Ceph tasks inside config.yml to ensure that they are
      performed during deploy, reconfigure and upgrade. This has been done for
      nova, cinder, gnocchi and manila - glance already does this.
      
      Change-Id: Ic75692c2bcba9b81dee922ff6fbbccd160e7fa19
      Closes-Bug: #1794275
      242625df
  12. Aug 24, 2018
    • caoyuan's avatar
      Provide support for nova dev mode in kolla · 0b0b2b39
      caoyuan authored
      
      Add a possibility to mount sources as volumes to containers,
      in "more than documentation" way. That will let us to use kolla
      as a replacement for devstack.
      
      Partially implements: blueprint mount-sources
      Co-Authored-By: default avatarzhulingjie <easyzlj@gmail.com>
      
      Change-Id: I10677e5ad22f2107a0657feeeaf32287ab9f8e28
      0b0b2b39
  13. Jul 25, 2018
  14. Jun 21, 2018
  15. Mar 20, 2018
    • Jianghua Wang's avatar
      XenAPI: use dom0's hostname for nova-compute · 3b89a7d4
      Jianghua Wang authored
      When the virt dirver is xenapi, we should explicitly specify host
      with dom0's hostname for nova-compute. The host field should be same
      as neutron-openvswitch-agent-xenapi.
      
      In order to use dom0's hostname, we need pull the bootstrap_xenapi
      to before running nova config tasks. The dom0's hostname will be
      included in the XenAPI facts.
      
      Change-Id: Ibfc964bbd6c569062ad33c1399f9a4612baf5b92
      blueprint: xenserver-support
      3b89a7d4
  16. Aug 07, 2017
  17. Jul 10, 2017
  18. Feb 02, 2017
  19. Jan 25, 2017
  20. Jan 12, 2017
  21. Jul 27, 2016
    • Mathias Ewald's avatar
      External Ceph - Implementation Nova · ffafebf8
      Mathias Ewald authored
      Introduced nova backend selection flag for Ceph and priority if
      multiple backends are configured
      
      Add mechanism to deploy arbitrary ceph.conf and keyring files into
      nova-compute and nova-libvirt containers
      
      Added documentation
      
      Change-Id: Id010ca9cc2d914e5358ef79edeb600a28220dd4b
      Implements: blueprint external-ceph
      ffafebf8
  22. Jan 20, 2016
    • Artur Zarzycki's avatar
      Fix permissions to /var/lib/nova/ · ef971bff
      Artur Zarzycki authored
      
      Due to changes with the drop-root work, we lost the ability to write
      to /var/lib/nova/*. This fixes those permissions and ensures cross
      container talk works properly between nova_libvirt and nova_compute
      
      Additionally, this fixes another issue introduced which saw that
      nova-compute could not run sudo commands as it did not have a proper
      sudoers entry
      
      Testing from previous deploys means you need a fresh environment. You
      have to remove all of the named volumes that kolla created in docker.
      Check these with `docker volume ls`
      
      Signed-off-by: default avatarHui Kang <kangh@us.ibm.com>
      Signed-off-by: default avatarArtur Zarzycki <azarzycki@mirantis.com>
      Co-Authored-By: default avatarSam Yaple <sam@yaple.net>
      Co-Authored-By: default avatarHui Kang <kangh@us.ibm.com>
      Closes-Bug: #1533350
      Change-Id: I7f864c448a2414e0b5d89f48337be411b891df35
      ef971bff
  23. Jan 06, 2016
  24. Dec 29, 2015
  25. Nov 23, 2015
    • Hui Kang's avatar
      Fix bootstrap for services · 790bf336
      Hui Kang authored
      
      The bootstrap tasks could be started on any node listed in the
      site.yml
      
      The issue is that all the tasks must run on the same node, and the
      only node that all the tasks can run on is the 'api' node due to
      needing to start the bootstrap container which binds in the configs.
      
      delegate_to is required to ensure that the proper node gets the task.
      
      Co-Authored-By: default avatarSam Yaple <sam@yaple.net>
      Change-Id: Ica04ab366777a571a92212ac22c482f1881d4ecd
      Closes-Bug: #1513598
      Related-Bug: #1513439
      790bf336
  26. Nov 05, 2015
    • Sam Yaple's avatar
      Remove vip for rabbitmq · 347730ce
      Sam Yaple authored
      Adjust all the configs to list all the rabbitmq hosts rather than
      running rabbitmq through the VIP. This is made possible by clusterer
      which has already merged.
      
      Change-Id: I5db48f5f10ec68f4c8863a29bc13984f6845a4f9
      Partially-Implements: blueprint rabbitmq-clusterer
      347730ce
  27. Sep 26, 2015
  28. Sep 25, 2015
    • Sam Yaple's avatar
      Make OpenStack use Ceph · 99c7eb19
      Sam Yaple authored
      This implements all the openstack pieces needed to make ceph work.
      
      DocImpact
      Change-Id: I1d24476a966602cf955e5ef872b0efb01319894a
      Partially-Implements: blueprint ceph-container
      Implements: blueprint kolla-live-migration
      99c7eb19
  29. Jul 12, 2015
    • Sam Yaple's avatar
      Ansible Nova w/ libvirt support · 7da0b2a8
      Sam Yaple authored
      Initial support for Nova in Ansible
      
      Partially-Implements: blueprint ansible-service
      
      Change-Id: I4b0a74bd3e5daa5664f5e1e622bfb40c3285949e
      7da0b2a8
    • Sam Yaple's avatar
      Add temporary Ansible keystone modules · 05a6640a
      Sam Yaple authored
      Due to the licensing issues and the modules not existing in upstream
      Ansible yet, I have written a simple module to fill the gaps.
      
      This also uses Keystone v2.0 for all create of users, roles and
      endpoints. The implementation of Keystone v3 must be discussed after the
      new modules arrive.
      
      Partially-Implements: blueprint ansible-service
      
      Change-Id: I389edd56741360dd26fbbc0a982f365ca27ff446
      05a6640a
  30. Jul 09, 2015
    • Sam Yaple's avatar
      Ansible Glance support · e7a7cc90
      Sam Yaple authored
      Adds support for glance in ansible
      
      Partially-Implements: blueprint ansible-service
      Change-Id: I2d162e79f85877116b0e33b1843de6ccb62a445a
      e7a7cc90
  31. Jun 30, 2015
    • Sam Yaple's avatar
      Add initial config function and keystone support · 3ac7da64
      Sam Yaple authored
      Add set_configs function that implements the flow from the proposed
      ansible-multi spec. Move start.sh to config-internal.sh to preserve existing
      behaviour.
      
      config-externall.sh copies the appropriate configs in from the bind'd
      location and sets permissions and ownership appropriately.
      
      Partially Implements: blueprint ansible-multi
      
      Change-Id: I53fca0660451087f273fefc3c63e0d8cf1a2c096
      3ac7da64
  32. May 05, 2015
Loading