Red Hat Bugzilla – Bug 1185652
[RFE] Packstack should support installation over IPv6 addresses
Last modified: 2015-08-05 09:19:40 EDT
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:
https://github.com/puppetlabs/puppetlabs-mongodb/pull/183
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"
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,
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
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,
For the keystone patch I made also a patch on github for easier reading: https://github.com/sathlan/puppet-keystone/commit/07cf2e89e30601009ea4bc39e42eb59c1d7d2d86 regards,
Merged/commited all the patches on gerrit.
packstack now fully supports ipv6 installation but some configurations won't work because some openstack services don't support ipv6 yet.
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
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