Add note to docs about overcloud node names being required

If the kayobe overcloud provision command is executed with overcloud
ironic nodes without names, cloud-init will fail with the following
Traceback when the deployed image boots:

Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/cloudinit/sources/__init__.py", line 447, in find_source
    if s.get_data():
  File "/usr/lib/python2.7/site-packages/cloudinit/sources/__init__.py", line 132, in get_data
    self._get_standardized_metadata())
  File "/usr/lib/python2.7/site-packages/cloudinit/sources/__init__.py", line 110, in _get_standardized_metadata
    'local-hostname': self.get_hostname(),
  File "/usr/lib/python2.7/site-packages/cloudinit/sources/__init__.py", line 317, in get_hostname
    if util.is_ipv4(lhost):
  File "/usr/lib/python2.7/site-packages/cloudinit/util.py", line 544, in is_ipv4
    toks = instr.split('.')

This is a bug [1] in cloud-init. The symptom is that hosts provision
successfully, but are not accessible via SSH. A solution is to ensure
that all nodes are named.

Until we have a release of CentOS with the cloud-init fix included, we
should at least mention this limitation in our documentation.

[1] https://bugs.launchpad.net/cloud-init/+bug/1852100

Change-Id: If54f56fb9f0b626d9fae80db622b0feeae5464b9
Story: 2006832
Task: 37405
This commit is contained in:
Mark Goddard 2019-11-11 17:41:58 +00:00 committed by Pierre Riteau
parent 5408bb5453
commit 25ea46debc
1 changed files with 16 additions and 1 deletions

View File

@ -231,6 +231,8 @@ Leave the seed VM and return to the shell on the Ansible control host::
Overcloud
=========
.. _deployment-discovery:
Discovery
---------
@ -257,7 +259,7 @@ the following on the seed::
$ docker exec -it bifrost_deploy bash
(bifrost_deploy) $ source env-vars
(bifrost_deploy) $ ironic node-list
(bifrost_deploy) $ openstack baremetal node list
In order to interact with these nodes using Kayobe, run the following command
to add them to the Kayobe and Kolla-Ansible inventories::
@ -307,6 +309,19 @@ properties and root device hints. To perform manual hardware inspection::
Provisioning
------------
.. note::
There is a `cloud-init issue
<https://storyboard.openstack.org/#!/story/2006832>`__ which prevents Ironic
nodes without names from being accessed via SSH after provisioning. To avoid
this issue, ensure that all Ironic nodes in the Bifrost inventory are named.
This may be achieved via :ref:`autodiscovery <deployment-discovery>`, or
manually, e.g. from the seed::
$ docker exec -it bifrost_deploy bash
(bifrost_deploy) $ source env-vars
(bifrost_deploy) $ openstack baremetal node set ee77b4ca-8860-4003-a18f-b00d01295bda --name controller0
Provisioning of the overcloud is performed by the ironic service running in the
bifrost container on the seed. To provision the overcloud nodes::