Bug 1723451
| Summary: | [OSP16] api/dhcp_domain won't get set on the undercloud if nova::network::neutron::dhcp_domain isn't defined | ||
|---|---|---|---|
| Product: | Red Hat OpenStack | Reporter: | Martin Schuppert <mschuppe> |
| Component: | puppet-nova | Assignee: | Martin Schuppert <mschuppe> |
| Status: | CLOSED ERRATA | QA Contact: | Archit Modi <amodi> |
| Severity: | high | Docs Contact: | |
| Priority: | high | ||
| Version: | 16.0 (Train) | CC: | amodi, jjoyce, jschluet, lyarwood, mbooth, nlevinki, slinaber, tvignaud, whayutin |
| Target Milestone: | rc | Keywords: | Triaged |
| Target Release: | 16.0 (Train on RHEL 8.1) | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | openstack-tripleo-heat-templates-11.3.1-0.20191022072831.698e7db.el8ost puppet-nova-15.4.1-0.20191014175323.e6628d6.el8ost puppet-tripleo-11.3.1-0.20191022051220.c97dbd1.el8ost | Doc Type: | No Doc Update |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2020-02-06 14:40:58 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
|
Description
Martin Schuppert
2019-06-24 14:31:47 UTC
While the nova::api has an issue with setting the enabled_apis, this is not the root cause for this issue. I was wrong there.
In general we use the config_drive. The compute driver/ironic creates the config drive with the metadata and adds the instance information [1]. For this metadata added to the config drive the [api]dhcp_domain is used to get and add the hostname [2].
* [api]/dhcp_domain commented out (restart nova_compute)
[root@overcloud-novacompute-0 ~]# hostname
overcloud-novacompute-0.novalocal
[root@overcloud-novacompute-0 ~]# mount /dev/vda1 /mnt
mount: /dev/vda1 is write-protected, mounting read-only
[root@overcloud-novacompute-0 ~]# cat /mnt/openstack/latest/meta_data.json | python -m json.tool
{
...
"hostname": "overcloud-novacompute-0.novalocal",
...
* [api]/dhcp_domain=
[root@overcloud-novacompute-0 ~]# mount /dev/vda1 /mnt/
[root@overcloud-novacompute-0 ~]# cat /mnt/openstack/latest/meta_data.json | python -m json.tool
{
...
"hostname": "overcloud-novacompute-0",
...
On the undercloud the nova_compute container used for the ironic driver uses the same nova.conf
/var/lib/config-data/puppet-generated/nova/etc/nova/nova.conf as the api service. For this nova.conf we don't use the nova::metadata class which would set the [api]dhcp_domain setting with the nova::metadata::dhcp_domain key we have in the template.
In the puppet-tripleo nova/api.pp we include ::nova::network::neutron [3] which explains why we get the expected hostname domain when nova::network::neutron::dhcp_domain is set via the workaround patch.
So we'd need to include ::nova::metadata also for the compute services.
[1] https://github.com/openstack/nova/blob/master/nova/virt/configdrive.py#L71
[2] https://github.com/openstack/nova/blob/master/nova/api/metadata/base.py#L517
[3] https://github.com/openstack/puppet-tripleo/blob/master/manifests/profile/base/nova/api.pp#L128
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHEA-2020:0283 |