Description of problem: With IPv6-only tenant network cloud-init won't be able to configure instances. We confirmed this in a reproducer (available right now if you want it). Below are some of the output from an instance: 2019-08-15 09:46:35,970 - util.py[DEBUG]: Getting data from <class 'cloudinit.soo urces.DataSourceOpenStack.DataSourceOpenStackLocal'> failed Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/cloudinit/sources/__init__.py", line 733 3, in find_source if s.update_metadata([EventType.BOOT_NEW_INSTANCE]): File "/usr/lib/python2.7/site-packages/cloudinit/sources/__init__.py", line 622 2, in update_metadata result = self.get_data() File "/usr/lib/python2.7/site-packages/cloudinit/sources/__init__.py", line 255 6, in get_data return_value = self._get_data() File "/usr/lib/python2.7/site-packages/cloudinit/sources/DataSourceOpenStack.pp y", line 131, in _get_data with EphemeralDHCPv4(self.fallback_interface): File "/usr/lib/python2.7/site-packages/cloudinit/net/dhcp.py", line 57, in __ee nter__ return self.obtain_lease() File "/usr/lib/python2.7/site-packages/cloudinit/net/dhcp.py", line 83, in obtt ain_lease leases = maybe_perform_dhcp_discovery(self.iface) File "/usr/lib/python2.7/site-packages/cloudinit/net/dhcp.py", line 135, in maa ybe_perform_dhcp_discovery return dhcp_discovery(dhclient_path, nic, tdir) File "/usr/lib/python2.7/site-packages/cloudinit/net/dhcp.py", line 199, in dhh cp_discovery util.subp(cmd, capture=True) File "/usr/lib/python2.7/site-packages/cloudinit/util.py", line 2068, in subp cmd=args) ProcessExecutionError: Unexpected error while running command. Command: ['/var/tmp/cloud-init/cloud-init-dhcp-wgbF9P/dhclient', '-1', '-v', '-ll f', '/var/tmp/cloud-init/cloud-init-dhcp-wgbF9P/dhcp.leases', '-pf', '/var/tmp/cc loud-init/cloud-init-dhcp-wgbF9P/dhclient.pid', 'eth0', '-sf', '/bin/true'] Exit code: 2 Reason: - Stdout: Stderr: Internet Systems Consortium DHCP Client 4.2.5 Copyright 2004-2013 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on LPF/eth0/fa:16:3e:81:72:ae Sending on LPF/eth0/fa:16:3e:81:72:ae Sending on Socket/fallback DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 8 (xid=0x60824dd c2) DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 19 (xid=0x608244 dc2) DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 15 (xid=0x608244 dc2) DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 8 (xid=0x60824dd c2) DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 8 (xid=0x60824dd c2) DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3 (xid=0x60824dd c2) No DHCPOFFERS received. Unable to obtain a lease on first try. Exiting. But somehow the instance is aware of it's new IP: [ 119.918362] cloud-init[899]: Cloud-init v. 18.5 running 'init' at Thu, 15 Aug 2019 09:47:0 8 +0000. Up 119.86 seconds. [ 120.034627] cloud-init[899]: ci-info: ++++++++++++++++++++++++++++++++++++Net device info+ ++++++++++++++++++++++++++++++++++++ [ 120.092343] cloud-init[899]: ci-info: +--------+------+------------------------------+---- -------+-------+-------------------+ [ 120.154315] cloud-init[899]: ci-info: | Device | Up | Address | Mask | Scope | Hw-Address | [ 120.196936] cloud-init[899]: ci-info: +--------+------+------------------------------+---- -------+-------+-------------------+ [ 120.248330] cloud-init[899]: ci-info: | eth0 | True | fe80::f816:3eff:fe81:72ae/64 | . | link | fa:16:3e:81:72:ae | [ 120.311185] cloud-init[899]: ci-info: | lo | True | 127.0.0.1 | 255 .0.0.0 | host | . | [ 120.379342] cloud-init[899]: ci-info: | lo | True | ::1/128 | . | host | . | [ 120.447838] cloud-init[899]: ci-info: +--------+------+------------------------------+---- -------+-------+-------------------+ fe80::f816:3eff:fe81:72ae/64 is the port created by neutron: (overcloud) [stack@undercloud-0 ~]$ openstack port show 656fd19e-d951-407f-b45f-9e58961d7878 +-----------------------+-------------------------------------------------------------------------------------------------------+ | Field | Value | +-----------------------+-------------------------------------------------------------------------------------------------------+ | admin_state_up | UP | | allowed_address_pairs | | | binding_host_id | compute-0.localdomain | | binding_profile | | | binding_vif_details | datapath_type='system', ovs_hybrid_plug='True', port_filter='True' | | binding_vif_type | ovs | | binding_vnic_type | normal | | created_at | 2019-08-15T09:44:33Z | | data_plane_status | None | | description | | | device_id | 5be04cb6-f655-4ce8-9389-efc531632811 | | device_owner | compute:nova | | dns_assignment | None | | dns_name | None | | extra_dhcp_opts | | | fixed_ips | ip_address='2a01:e34:ec29:d136:f816:3eff:fe81:72ae', subnet_id='99301d98-7eb8-4681-921f-b27d612dd7e3' | | id | 656fd19e-d951-407f-b45f-9e58961d7878 | | ip_address | None | | mac_address | fa:16:3e:81:72:ae | | name | | | network_id | e2689333-4e13-4b31-9c7e-09ef46af41cf | | option_name | None | | option_value | None | | port_security_enabled | True | | project_id | 8f66f7df99b04d8a9e55a33ae6df9813 | | qos_policy_id | None | | revision_number | 10 | | security_group_ids | b2de312b-6c4a-477d-ac29-fc8d3d2cb64f | | status | ACTIVE | | subnet_id | None | | tags | | | trunk_details | None | | updated_at | 2019-08-15T09:44:52Z | +-----------------------+-------------------------------------------------------------------------------------------------------+ Dnsmasq is running on the controller. Let me know if you need anything else. Thank you. Version-Release number of selected component (if applicable): openstack-neutron-12.0.6-9.el7ost.noarch How reproducible: 100% Steps to Reproduce: 1. Configure IPv6-only tenant network setup 2. Try to spawn instances 3. Actual results: Instances stay localhost and can't get dhcp address Expected results: Instances get configured properly Additional info: https://bugs.launchpad.net/neutron/+bug/1460177
There was upstream work on this as an RFE that was abandoned due to lack of interest. We can look at resuming this as an RFE.
I am wondering if we have some workaround for cloud-init (config-drive is not widely supported) for this case (without adding IPv4 network)? I guess that we need to address the issue if we don't: this could escalate quickly when more customers will learn about this limitation.
This RFE is implemented U/S now https://bugs.launchpad.net/neutron/+bug/1460177 and should be available in OSP-17 We will not backport it to the OSP-13 so I'm closing this BZ.
(In reply to Slawek Kaplonski from comment #5) > This RFE is implemented U/S now > https://bugs.launchpad.net/neutron/+bug/1460177 and should be available in > OSP-17 > We will not backport it to the OSP-13 so I'm closing this BZ. do we want to clone this one for OSP17?
@Eran, I think it is good idea. So we can plan eg. testing for it and be sure that all is in place.