Bug 1300798

Summary: Unable to assign IPv6 address by using PublicVirtualFixedIPs
Product: Red Hat OpenStack Reporter: Marius Cornea <mcornea>
Component: openstack-tripleo-heat-templatesAssignee: Giulio Fidente <gfidente>
Status: CLOSED ERRATA QA Contact: Marius Cornea <mcornea>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: 7.0 (Kilo)CC: dmacpher, dsneddon, jslagle, kbasil, mburns, rhel-osp-director-maint, sasha
Target Milestone: y3   
Target Release: 7.0 (Kilo)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: openstack-tripleo-heat-templates-0.8.6-112.el7ost Doc Type: Bug Fix
Doc Text:
Setting a fixed IPv6 address for Overcloud networks failed due to Neutron not allowing fixed IP addresses in SLAAC mode. This fix changes the default IPv6 address mechanism to 'dhcpv6-stateful'. Now the director can configure the Overcloud using fixed IPv6 addresses.
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-02-18 16:51:21 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 Marius Cornea 2016-01-21 18:17:45 UTC
Description of problem:
Assigning IPv6 address by using PublicVirtualFixedIPs fails with:

Stack failed with status: resources.PublicVirtualIP: BadRequest: resources.ExternalPort: Invalid input for operation: IPv6 address 2001:db8:fd00:1000:f816:3eff:fe80:75ea can not be directly assigned to a port on subnet fa3af936-b005-44c1-a9e7-9669d2d87a34 since the subnet is configured for automatic addresses.

Version-Release number of selected component (if applicable):
openstack-tripleo-heat-templates-0.8.6-110.el7ost.noarch
os-net-config-0.1.4-7.el7ost.noarch
os-cloud-config-0.2.8-13.el7ost.noarch

How reproducible:
100%

Steps to Reproduce:
1. Deploy IPv6 overcloud by providing PublicVirtualFixedIPs in network-environment:
  PublicVirtualFixedIPs: [{'ip_address':'2001:db8:fd00:1000:f816:3eff:fe80:75ea'}]



Actual results:
Deploying templates in the directory /home/stack/templates/my-overcloud
Stack failed with status: resources.PublicVirtualIP: BadRequest: resources.ExternalPort: Invalid input for operation: IPv6 address 2001:db8:fd00:1000:f816:3eff:fe80:75ea can not be directly assigned to a port on subnet fa3af936-b005-44c1-a9e7-9669d2d87a34 since the subnet is configured for automatic addresses.


Expected results:
Deployment continues

Additional info:
stack@instack:~>>> neutron subnet-show fa3af936-b005-44c1-a9e7-9669d2d87a34
+-------------------+--------------------------------------------------------------------------------------+
| Field             | Value                                                                                |
+-------------------+--------------------------------------------------------------------------------------+
| allocation_pools  | {"start": "2001:db8:fd00:1000::10", "end": "2001:db8:fd00:1000:ffff:ffff:ffff:fffe"} |
| cidr              | 2001:db8:fd00:1000::/64                                                              |
| dns_nameservers   |                                                                                      |
| enable_dhcp       | True                                                                                 |
| gateway_ip        | 2001:db8:fd00:1000::1                                                                |
| host_routes       |                                                                                      |
| id                | fa3af936-b005-44c1-a9e7-9669d2d87a34                                                 |
| ip_version        | 6                                                                                    |
| ipv6_address_mode | slaac                                                                                |
| ipv6_ra_mode      | slaac                                                                                |
| name              | external_subnet                                                                      |
| network_id        | bf959c79-8a47-476c-9393-b803dd62592f                                                 |
| subnetpool_id     |                                                                                      |
| tenant_id         | 7e5eb436765b43aa8bb74607fade7e62                                                     |
+-------------------+--------------------------------------------------------------------------------------+

Comment 1 Dan Sneddon 2016-01-21 21:55:01 UTC
We may need to set the network type to dchpv6-stateful or dhcpv6-stateless in order to be able to assign a fixed_ip. This is currently being tested.

Comment 2 Marius Cornea 2016-01-21 21:58:49 UTC
After adjusting in network/external_v6.yaml: ipv6_address_mode: dhcpv6-stateful
ipv6_ra_mode: dhcpv6-stateful I was able to set the public vip in the network environment file like this: PublicVirtualFixedIPs: [{'ip_address':'2001:db8:fd00:1000:f816:3eff:fe80:75ea'}]

I tested dhcpv6-stateful option for ipv6_address_mode and ipv6_ra_mode without specifying PublicVirtualFixedIP (automatic assignment) and it worked. In fact the first address from the ExternalAllocationPools was assigned for the public_virtual_ip.

Comment 4 Marius Cornea 2016-01-25 10:59:03 UTC
openstack-tripleo-heat-templates-0.8.6-112.el7ost.noarch

stack@instack:~>>> heat stack-show overcloud | grep PublicVirtualFixedIP
|                       |   "PublicVirtualFixedIPs": "[{\"ip_address\": \"2001:db8:fd00:1000::10\"}]",    

stack@instack:~>>> neutron port-list | grep public
| e54f64a9-a960-4149-87f2-53fcb7b15d1f | public_virtual_ip             | fa:16:3e:2e:54:12 | {"subnet_id": "ea09aba4-6c05-4e44-9fe7-44082b4210cd", "ip_address": "2001:db8:fd00:1000::10"}  |

Comment 6 errata-xmlrpc 2016-02-18 16:51:21 UTC
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://rhn.redhat.com/errata/RHBA-2016-0264.html