Bugzilla will be upgraded to version 5.0. The upgrade date is tentatively scheduled for 2 December 2018, pending final testing and feedback.
Bug 1185652 - [RFE] Packstack should support installation over IPv6 addresses
[RFE] Packstack should support installation over IPv6 addresses
Status: CLOSED ERRATA
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-packstack (Show other bugs)
6.0 (Juno)
Unspecified Unspecified
high Severity high
: ga
: 7.0 (Kilo)
Assigned To: Martin Magr
Udi Shkalim
: FutureFeature, ZStream
Depends On: 1100360 1210658
Blocks: 1083896
  Show dependency treegraph
 
Reported: 2015-01-25 09:34 EST by Ofer Blaut
Modified: 2015-08-05 09:19 EDT (History)
10 users (show)

See Also:
Fixed In Version:
Doc Type: Enhancement
Doc Text:
This feature adds IPv6 support to Packstack, allowing Packstack to use IPv6 address as values in networking-related parameters such as CONFIG_CONTROLLER_HOST, CONFIG_COMPUTE_HOSTS, and CONFIG_NETWORK_HOSTS.
Story Points: ---
Clone Of:
Environment:
Last Closed: 2015-08-05 09:19:40 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
Launchpad 1340641 None None None Never
Launchpad 1456963 None None None Never
OpenStack gerrit 154030 None None None Never
OpenStack gerrit 164149 None None None Never
OpenStack gerrit 164153 None None None Never
OpenStack gerrit 164154 None None None Never
OpenStack gerrit 164157 None None None Never
OpenStack gerrit 164846 None None None Never
OpenStack gerrit 165252 None None None Never
OpenStack gerrit 165831 None None None Never
OpenStack gerrit 166970 None None None Never
OpenStack gerrit 166977 None None None Never
OpenStack gerrit 167259 None None None Never
Red Hat Product Errata RHEA-2015:1548 normal SHIPPED_LIVE Red Hat Enterprise Linux OpenStack Platform Enhancement Advisory 2015-08-05 13:07:06 EDT

  None (edit)
Description Ofer Blaut 2015-01-25 09:34:44 EST
Description of problem:

Packstack should support installation of services using ONLY ipv6 address

Version-Release number of selected component (if applicable):
openstack-packstack-2014.2-0.14.dev1401.gdd19d48.el7ost.noarch

How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:
Comment 2 Sofer Athlan-Guyot 2015-03-16 11:48:17 EDT
Hi,

I'm testing the whole patchset:

    git fetch https://review.openstack.org/stackforge/puppet-keystone refs/changes/49/164149/2

    git fetch https://review.openstack.org/stackforge/puppet-neutron refs/changes/53/164153/1

    curl https://github.com/xbezdick/puppetlabs-mongodb/commit/71b33de332eadd3ccc9f3fc6fd2e21a86201de67.patch

    git fetch https://review.openstack.org/stackforge/puppet-heat refs/changes/54/164154/1

    git fetch https://review.openstack.org/stackforge/puppet-swift refs/changes/57/164157/1


I'm using a standard allinone answerfile.  The only modification being the
ip which uses the ipv6.

I've this issue:

Notice: /Stage[main]/Main/Cinder::Type[iscsi]/Exec[cinder type-create iscsi]/returns: ERROR: Unable to establish connection to http://[fdf8:f53b:82e4::179]:5000/v2.0/tokens
Error: cinder type-create iscsi returned 1 instead of one of [0]
Error: /Stage[main]/Main/Cinder::Type[iscsi]/Exec[cinder type-create iscsi]/returns: change from notrun to 0 failed: cinder type-create iscsi returned 1 instead of one of [0]
Notice: /Stage[main]/Main/Cinder::Type[iscsi]/Cinder::Type_set[lvm]/Exec[cinder type-key iscsi set volume_backend_name=lvm]: Dependency Exec[cinder type-create iscsi] has failures: true
Warning: /Stage[main]/Main/Cinder::Type[iscsi]/Cinder::Type_set[lvm]/Exec[cinder type-key iscsi set volume_backend_name=lvm]: Skipping because of failed dependencies

The problem is that keystone listen on '0.0.0.0', not on '::0', making
connection to the http://[fdf8:f53b:82e4::179]:5000 impossible.

Those patches fix the issue:

=> in packstack

diff --git a/packstack/puppet/templates/keystone.pp b/packstack/puppet/templates/keystone.pp
index 4f59646..3ec138b 100644
--- a/packstack/puppet/templates/keystone.pp
+++ b/packstack/puppet/templates/keystone.pp
@@ -16,6 +16,14 @@ class { 'keystone':
   debug               => hiera('CONFIG_DEBUG_MODE'),
   service_name        => $keystone_service_name,
   enable_ssl          => $keystone_use_ssl,
+  public_bind_host    => hiera('CONFIG_IP_VERSION') ? {
+                           'ipv6' => '::0',
+                           default => '0.0.0.0',
+                         },
+  admin_bind_host     => hiera('CONFIG_IP_VERSION') ? {
+                           'ipv6' => '::0',
+                           default => '0.0.0.0',
+                         },
 }

 if $keystone_service_name == 'httpd' {


=> in puppet-keystone

 diff --git a/keystone/lib/puppet/provider/keystone.rb b/keystone/lib/puppet/provider/keystone.rb
index cc3a1ef..9de5f57 100644
--- a/keystone/lib/puppet/provider/keystone.rb
+++ b/keystone/lib/puppet/provider/keystone.rb
@@ -72,6 +72,8 @@ class Puppet::Provider::Keystone < Puppet::Provider::Openstack
           host = keystone_file['DEFAULT']['admin_bind_host'].strip
           if host == "0.0.0.0"
             host = "127.0.0.1"
+          elsif host == '::0'
+            host = '[::1]'
           end
         else
           host = "127.0.0.1"
Comment 3 Sofer Athlan-Guyot 2015-03-16 12:15:48 EDT
Hi,

I notice that the metadata_service is still listening on 0.0.0.0.

This fixes the problem:


diff --git a/packstack/puppet/templates/nova_api.pp b/packstack/puppet/templates/nova_api.pp
index b70f858..4bb4cbf 100644
--- a/packstack/puppet/templates/nova_api.pp
+++ b/packstack/puppet/templates/nova_api.pp
@@ -6,6 +6,7 @@ $bind_host = hiera('CONFIG_IP_VERSION') ? {
 }
 class { 'nova::api':
   api_bind_address                     => $bind_host,
+  metadata_listen                      => $bind_host,
   enabled                              => true,
   auth_host                            => hiera('CONFIG_KEYSTONE_HOST_URL'),
   admin_password                       => hiera('CONFIG_NOVA_KS_PW'),


Regards,
Comment 4 Sofer Athlan-Guyot 2015-03-16 15:59:21 EDT
In the same vein:

=> ceilometer api:

diff --git a/packstack/puppet/templates/ceilometer.pp b/packstack/puppet/templates/ceilometer.pp
index cd18a6b..947978b 100644
--- a/packstack/puppet/templates/ceilometer.pp
+++ b/packstack/puppet/templates/ceilometer.pp
@@ -48,7 +48,12 @@ class { 'ceilometer::alarm::evaluator':
   coordination_url => $coordination_url,
 }

+$bind_host = hiera('CONFIG_IP_VERSION') ? {
+  'ipv6' => '::0',
+  'ipv4' => '0.0.0.0',
+}
 class { 'ceilometer::api':
+  host              => $bind_host,
   keystone_host     => hiera('CONFIG_KEYSTONE_HOST_URL'),
   keystone_password => hiera('CONFIG_CEILOMETER_KS_PW'),
 }


=> memcache Horizon

 diff --git a/packstack/puppet/templates/horizon.pp b/packstack/puppet/templates/horizon.pp
index b55ddbc..e54affa 100644
--- a/packstack/puppet/templates/horizon.pp
+++ b/packstack/puppet/templates/horizon.pp
@@ -14,6 +14,11 @@ $is_django_debug = hiera('CONFIG_DEBUG_MODE') ? {
   false => 'False',
 }

+$bind_host = hiera('CONFIG_IP_VERSION') ? {
+  'ipv6' => '::0',
+  'ipv4' => '0.0.0.0',
+}
+
 class {'horizon':
   secret_key            => hiera('CONFIG_HORIZON_SECRET_KEY'),
   keystone_url          => "http://${keystone_host}:5000/v2.0",
@@ -68,7 +73,9 @@ if $is_horizon_ssl == true {
   }
 }

-class { 'memcached': }
+class { 'memcached':
+  listen_ip => $bind_host,
+}

 $firewall_port = hiera('CONFIG_HORIZON_PORT')

 => swift proxy

 diff --git a/packstack/puppet/templates/swift_proxy.pp b/packstack/puppet/templates/swift_proxy.pp
index d7e1efa..2424c0e 100644
--- a/packstack/puppet/templates/swift_proxy.pp
+++ b/packstack/puppet/templates/swift_proxy.pp
@@ -1,7 +1,14 @@

 package { 'curl': ensure => present }

-class { 'memcached': }
+$bind_host = hiera('CONFIG_IP_VERSION') ? {
+  'ipv6' => '::0',
+  'ipv4' => '0.0.0.0',
+}
+
+class { 'memcached':
+  listen_ip => $bind_host,
+}

 class { 'swift::proxy':
   proxy_local_net_ip => hiera('CONFIG_STORAGE_HOST_URL'),


   => nova novnc
   => nova libvirt compute
Comment 5 Sofer Athlan-Guyot 2015-03-16 17:56:46 EDT
Hi again,

I added some other patches.  To simplify I made a clean patch set above the current gerrit patch for packstack:


https://github.com/sathlan/packstack/commit/a49416dc132fc4f7aa4078952b4d5e4668e648c1

It's easier to follow.

So outside this patch, one need to apply the patch proposed above on keystone/lib/puppet/provider/keystone.rb in the patch https://review.openstack.org/#/c/164149/  

Regards,
Comment 6 Sofer Athlan-Guyot 2015-03-16 19:03:12 EDT
For the keystone patch I made also a patch on github for easier reading:

https://github.com/sathlan/puppet-keystone/commit/07cf2e89e30601009ea4bc39e42eb59c1d7d2d86

regards,
Comment 7 Sofer Athlan-Guyot 2015-03-17 19:54:58 EDT
Merged/commited all the patches on gerrit.
Comment 8 Lukas Bezdicka 2015-04-21 09:06:37 EDT
packstack now fully supports ipv6 installation but some configurations won't work because some openstack services don't support ipv6 yet.
Comment 11 Ofer Blaut 2015-06-08 07:14:55 EDT
Currently we can deploy IPv6 setup, but IPv6 console will  not work due to:

https://bugs.launchpad.net/nova/+bug/1456963

The suggested fix of https://bugs.launchpad.net/nova/+bug/1456963 was tested and it works
Comment 14 errata-xmlrpc 2015-08-05 09:19:40 EDT
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-2015:1548

Note You need to log in before you can comment on or make changes to this bug.