Switch services to use mesos-dns names

Change-Id: I12a0212aa50b1f5efd45eace5fb6e960e95abff9
Partially-Implements: blueprint services-use-mesos-dns
DocImpact
This commit is contained in:
Artur Zarzycki 2016-02-24 15:45:05 +01:00
parent 5d88c2ce80
commit 625e5988ba
23 changed files with 96 additions and 88 deletions

View File

@ -126,10 +126,19 @@ openstack_region_name: "RegionOne"
# Valid options are [ novnc, spice ]
nova_console: "novnc"
####################
# Mesos-dns hosts
####################
keystone_auth_host: "keystone-api-keystone-openstack-{{ deployment_id }}.{{ marathon_framework }}.{{ mesos_dns_domain }}"
neutron_server_host: "neutron-server-neutron-openstack-{{ deployment_id }}.{{ marathon_framework }}.{{ mesos_dns_domain }}"
glance_api_host: "glance-api-glance-api-openstack-{{ deployment_id }}.{{ marathon_framework }}.{{ mesos_dns_domain }}"
cinder_api_host: "cinder-api-cinder-openstack-{{ deployment_id }}.{{ marathon_framework }}.{{ mesos_dns_domain }}"
nova_api_host: "nova-api-nova-openstack-{{ deployment_id }}.{{ marathon_framework }}.{{ mesos_dns_domain }}"
# Openstack authentication string. You should only need to override these if you
# are changing the admin tenant/project or user.
openstack_auth:
auth_url: "http://{{ kolla_internal_address }}:{{ keystone_admin_port }}"
auth_url: "http://{{ keystone_auth_host }}:{{ keystone_admin_port }}"
username: "admin"
password: "{{ keystone_admin_password }}"
project_name: "admin"
@ -137,7 +146,7 @@ openstack_auth:
# This shouldn't be needed for long. It is only temporary until we get the
# ansible modules sorted out
openstack_auth_v2:
auth_url: "http://{{ kolla_internal_address }}:{{ keystone_admin_port }}/v2.0"
auth_url: "http://{{ keystone_auth_host }}:{{ keystone_admin_port }}/v2.0"
username: "admin"
password: "{{ keystone_admin_password }}"
project_name: "admin"
@ -175,7 +184,6 @@ rabbitmq_user: "openstack"
####################
haproxy_user: "openstack"
#################################
# Cinder - Block Storage options
#################################

View File

@ -6,7 +6,7 @@ use_stderr = {{ openstack_use_stderr }}
enable_v1_api=false
volume_name_template = %s
glance_api_servers = http://{{ kolla_internal_address }}:{{ glance_api_port }}
glance_api_servers = http://{{ glance_api_host }}.{{ mesos_dns_domain }}:{{ glance_api_port }}
glance_api_version = 2
os_region_name = {{ openstack_region_name }}
@ -23,8 +23,8 @@ auth_strategy = keystone
connection = mysql+pymysql://{{ cinder_database_user }}:{{ cinder_database_password }}@{{ cinder_database_address }}/{{ cinder_database_name }}
[keystone_authtoken]
auth_uri = http://{{ kolla_internal_address }}:{{ keystone_public_port }}
auth_url = http://{{ kolla_internal_address }}:{{ keystone_admin_port }}
auth_uri = http://{{ keystone_auth_host }}:{{ keystone_public_port }}
auth_url = http://{{ keystone_auth_host }}:{{ keystone_admin_port }}
auth_type = password
project_domain_id = default
user_domain_id = default

View File

@ -47,6 +47,7 @@ glance_keystone_user: "glance"
openstack_glance_auth: "{'auth_url':'{{ openstack_auth_v2.auth_url }}','username':'{{ openstack_auth_v2.username }}','password':'{{ openstack_auth_v2.password }}','project_name':'{{ openstack_auth_v2.project_name }}'}"
glance_registry_host: "glance-registry-glance-registry-openstack-{{ deployment_id }}.{{ marathon_framework }}.{{ mesos_dns_domain }}"
####################
# Resources

View File

@ -7,14 +7,14 @@ bind_host = {{ get_ip_address(api_interface) }}
bind_port = {{ glance_api_port }}
registry_host = {{ kolla_internal_address }}
registry_host = {{ glance_registry_host }}
[database]
connection = mysql+pymysql://{{ glance_database_user }}:{{ glance_database_password }}@{{ glance_database_address }}/{{ glance_database_name }}
[keystone_authtoken]
auth_uri = http://{{ kolla_internal_address }}:{{ keystone_public_port }}
auth_url = http://{{ kolla_internal_address }}:{{ keystone_admin_port }}
auth_uri = http://{{ keystone_auth_host }}:{{ keystone_public_port }}
auth_url = http://{{ keystone_auth_host }}:{{ keystone_admin_port }}
auth_type = password
project_domain_id = default
user_domain_id = default

View File

@ -11,8 +11,8 @@ bind_port = {{ glance_registry_port }}
connection = mysql+pymysql://{{ glance_database_user }}:{{ glance_database_password }}@{{ glance_database_address }}/{{ glance_database_name }}
[keystone_authtoken]
auth_uri = http://{{ kolla_internal_address }}:{{ keystone_public_port }}
auth_url = http://{{ kolla_internal_address }}:{{ keystone_admin_port }}
auth_uri = http://{{ keystone_auth_host }}:{{ keystone_public_port }}
auth_url = http://{{ keystone_auth_host }}:{{ keystone_admin_port }}
auth_type = password
project_domain_id = default
user_domain_id = default

View File

@ -150,7 +150,7 @@ EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
# ('http://cluster2.example.com:5000/v2.0', 'cluster2'),
#]
OPENSTACK_HOST = "{{ kolla_external_address }}"
OPENSTACK_HOST = "{{ keystone_auth_host }}"
OPENSTACK_KEYSTONE_URL = "http://%s:{{ keystone_public_port }}/v3" % OPENSTACK_HOST
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "_member_"

View File

@ -61,6 +61,7 @@ neutron_bridge_name: "br-ex"
openstack_neutron_auth: "{'auth_url':'{{ openstack_auth_v2.auth_url }}','username':'{{ openstack_auth_v2.username }}','password':'{{ openstack_auth_v2.password }}','project_name':'{{ openstack_auth_v2.project_name }}'}"
nova_api_host: "nova-api-nova-openstack-{{ deployment_id }}.{{ marathon_framework }}.{{ mesos_dns_domain }}"
####################
# Resources

View File

@ -1,5 +1,5 @@
# metadata_agent.ini
[DEFAULT]
nova_metadata_ip = {{ kolla_internal_address }}
nova_metadata_ip = {{ nova_api_host }}
nova_metadata_port = {{ nova_metadata_port }}
metadata_proxy_shared_secret = {{ metadata_secret }}

View File

@ -15,7 +15,7 @@ core_plugin = ml2
service_plugins = router
[nova]
auth_url = http://{{ kolla_internal_address }}:{{ keystone_admin_port }}
auth_url = http://{{ keystone_auth_host }}:{{ keystone_admin_port }}
auth_plugin = password
project_domain_id = default
user_domain_id = default
@ -40,8 +40,8 @@ root_helper = sudo neutron-rootwrap /etc/neutron/rootwrap.conf
connection = mysql+pymysql://{{ neutron_database_user }}:{{ neutron_database_password }}@{{ neutron_database_address }}/{{ neutron_database_name }}
[keystone_authtoken]
auth_uri = http://{{ kolla_internal_address }}:{{ keystone_public_port }}
auth_url = http://{{ kolla_internal_address }}:{{ keystone_admin_port }}
auth_uri = http://{{ keystone_auth_host }}:{{ keystone_public_port }}
auth_url = http://{{ keystone_auth_host }}:{{ keystone_admin_port }}
auth_plugin = password
project_domain_id = default
user_domain_id = default

View File

@ -79,7 +79,8 @@ nova_keystone_user: "nova"
openstack_nova_auth: "{'auth_url':'{{ openstack_auth_v2.auth_url }}','username':'{{ openstack_auth_v2.username }}','password':'{{ openstack_auth_v2.password }}','project_name':'{{ openstack_auth_v2.project_name }}'}"
nova_novncproxy_host: "nova-novncproxy-nova-openstack-{{ deployment_id }}.{{ marathon_framework }}.{{ mesos_dns_domain }}"
nova_spicehtml5proxy_host: "nova-spicehtml5proxy-nova-openstack-{{ deployment_id }}.{{ marathon_framework }}.{{ mesos_dns_domain }}"
####################
# Resources
####################

View File

@ -58,7 +58,7 @@ novncproxy_port = {{ nova_novncproxy_port }}
vncserver_listen = {{ get_ip_address(api_interface) }}
vncserver_proxyclient_address = {{ get_ip_address(api_interface) }}
{% if service_name == "openstack/nova/nova-compute" %}
novncproxy_base_url = http://{{ kolla_internal_address }}:{{ nova_novncproxy_port }}/vnc_auto.html
novncproxy_base_url = http://{{ nova_novncproxy_host }}:{{ nova_novncproxy_port }}/vnc_auto.html
{% endif %}
{% elif nova_console == 'spice' %}
[vnc]
@ -68,7 +68,7 @@ enabled = false
server_listen = {{ get_ip_address(api_interface) }}
server_proxyclient_address = {{ get_ip_address(api_interface) }}
{% if service_name == "openstack/nova/nova-compute" %}
html5proxy_base_url = http://{{ kolla_internal_address }}:{{ nova_spicehtml5proxy_port }}/spice_auto.html
html5proxy_base_url = http://{{ nova_spicehtml5proxy_host }}:{{ nova_spicehtml5proxy_port }}/spice_auto.html
{% endif %}
html5proxy_host = {{ get_ip_address(api_interface) }}
html5proxy_port = {{ nova_spicehtml5proxy_port }}
@ -94,25 +94,19 @@ rabbit_hosts = {{ list_ips_by_service('infra/rabbitmq/rabbitmq', rabbitmq_port)
lock_path = /var/lib/nova/tmp
[glance]
{% if enable_ceph | bool %}
host = {{ kolla_internal_address }}
port = {{ glance_api_port }}
{% else %}
api_servers = {{ list_ips_by_service('openstack/glance/glance-api', glance_api_port) }}
api_servers = {{ glance_api_host }}:{{ glance_api_port }}
num_retries = {{ list_ips_by_service('openstack/glance/glance-api').split(',') | length }}
{% endif %}
[cinder]
catalog_info = volume:cinder:internalURL
[neutron]
url = http://{{ kolla_internal_address }}:{{ neutron_server_port }}
url = http://{{ neutron_server_host }}:{{ neutron_server_port }}
auth_strategy = keystone
metadata_proxy_shared_secret = {{ metadata_secret }}
service_metadata_proxy = true
auth_url = http://{{ kolla_internal_address }}:{{ keystone_admin_port }}
auth_url = http://{{ keystone_auth_host }}:{{ keystone_admin_port }}
auth_plugin = password
project_domain_name = default
user_domain_id = default
@ -127,8 +121,8 @@ connection = mysql+pymysql://{{ nova_database_user }}:{{ nova_database_password
connection = mysql+pymysql://{{ nova_api_database_user }}:{{ nova_api_database_password }}@{{ nova_api_database_address }}/{{ nova_api_database_name }}
[keystone_authtoken]
auth_uri = http://{{ kolla_internal_address }}:{{ keystone_public_port }}
auth_url = http://{{ kolla_internal_address }}:{{ keystone_admin_port }}
auth_uri = http://{{ keystone_auth_host }}:{{ keystone_public_port }}
auth_url = http://{{ keystone_auth_host }}:{{ keystone_admin_port }}
auth_plugin = password
project_domain_id = default
user_domain_id = default
@ -151,3 +145,4 @@ hw_disk_discard = unmap
[upgrade_levels]
compute = auto

View File

@ -15,7 +15,7 @@ if [ $OS_USERNAME == "admin" ]; then
export OS_PASSWORD={{ keystone_admin_password }}
fi
export OS_AUTH_URL=http://{{ kolla_internal_address }}:{{ keystone_admin_port }}
export OS_AUTH_URL=http://{{ keystone_auth_host }}:{{ keystone_admin_port }}
export OS_REGION_NAME={{ openstack_region_name }}
export NOVA_VERSION=${NOVA_VERSION:-1.1}

View File

@ -52,22 +52,19 @@ rabbit_hosts = 2.1.2.3:9090,2.1.2.4:9090
lock_path = /var/lib/nova/tmp
[glance]
api_servers = 1.1.2.3:8776,1.1.2.4:8776
api_servers = glance-api-glance-api-openstack-did.mfrm.mdom:8776
num_retries = 2
[cinder]
catalog_info = volume:cinder:internalURL
[neutron]
url = http://5.5.5.5:4422
url = http://neutron-server-neutron-openstack-did.mfrm.mdom:4422
auth_strategy = keystone
metadata_proxy_shared_secret = shshsh
service_metadata_proxy = true
auth_url = http://5.5.5.5:2084
auth_url = http://keystone-api-keystone-openstack-did.mfrm.mdom:2084
auth_plugin = password
project_domain_name = default
user_domain_id = default
@ -82,8 +79,8 @@ connection = mysql+pymysql://nova_dba:yikes@3.3.3.3/noova
connection = mysql+pymysql://sucker:noo@1.2.3.4/noova_api
[keystone_authtoken]
auth_uri = http://5.5.5.5:1111
auth_url = http://5.5.5.5:2084
auth_uri = http://keystone-api-keystone-openstack-did.mfrm.mdom:1111
auth_url = http://keystone-api-keystone-openstack-did.mfrm.mdom:2084
auth_plugin = password
project_domain_id = default
user_domain_id = default
@ -96,4 +93,4 @@ connection_uri = "qemu+tcp://1.2.3.4/system"
[upgrade_levels]
compute = auto
compute = auto

View File

@ -52,21 +52,19 @@ rabbit_hosts = 2.1.2.3:9090,2.1.2.4:9090
lock_path = /var/lib/nova/tmp
[glance]
host = 5.5.5.5
port = 8776
api_servers = glance-api-glance-api-openstack-did.mfrm.mdom:8776
num_retries = 2
[cinder]
catalog_info = volume:cinder:internalURL
[neutron]
url = http://5.5.5.5:4422
url = http://neutron-server-neutron-openstack-did.mfrm.mdom:4422
auth_strategy = keystone
metadata_proxy_shared_secret = shshsh
service_metadata_proxy = true
auth_url = http://5.5.5.5:2084
auth_url = http://keystone-api-keystone-openstack-did.mfrm.mdom:2084
auth_plugin = password
project_domain_name = default
user_domain_id = default
@ -81,8 +79,8 @@ connection = mysql+pymysql://nova_dba:yikes@3.3.3.3/noova
connection = mysql+pymysql://sucker:noo@1.2.3.4/noova_api
[keystone_authtoken]
auth_uri = http://5.5.5.5:1111
auth_url = http://5.5.5.5:2084
auth_uri = http://keystone-api-keystone-openstack-did.mfrm.mdom:1111
auth_url = http://keystone-api-keystone-openstack-did.mfrm.mdom:2084
auth_plugin = password
project_domain_id = default
user_domain_id = default
@ -104,4 +102,4 @@ hw_disk_discard = unmap
[upgrade_levels]
compute = auto
compute = auto

View File

@ -54,22 +54,19 @@ rabbit_hosts = 2.1.2.3:9090,2.1.2.4:9090
lock_path = /var/lib/nova/tmp
[glance]
api_servers = 1.1.2.3:8776,1.1.2.4:8776
api_servers = glance-api-glance-api-openstack-did.mfrm.mdom:8776
num_retries = 2
[cinder]
catalog_info = volume:cinder:internalURL
[neutron]
url = http://5.5.5.5:4422
url = http://neutron-server-neutron-openstack-did.mfrm.mdom:4422
auth_strategy = keystone
metadata_proxy_shared_secret = shshsh
service_metadata_proxy = true
auth_url = http://5.5.5.5:2084
auth_url = http://keystone-api-keystone-openstack-did.mfrm.mdom:2084
auth_plugin = password
project_domain_name = default
user_domain_id = default
@ -84,8 +81,8 @@ connection = mysql+pymysql://nova_dba:yikes@3.3.3.3/noova
connection = mysql+pymysql://sucker:noo@1.2.3.4/noova_api
[keystone_authtoken]
auth_uri = http://5.5.5.5:1111
auth_url = http://5.5.5.5:2084
auth_uri = http://keystone-api-keystone-openstack-did.mfrm.mdom:1111
auth_url = http://keystone-api-keystone-openstack-did.mfrm.mdom:2084
auth_plugin = password
project_domain_id = default
user_domain_id = default
@ -98,4 +95,4 @@ connection_uri = "qemu+tcp://1.2.3.4/system"
[upgrade_levels]
compute = auto
compute = auto

View File

@ -52,22 +52,19 @@ rabbit_hosts = 2.1.2.3:9090,2.1.2.4:9090
lock_path = /var/lib/nova/tmp
[glance]
api_servers = 1.1.2.3:8776,1.1.2.4:8776
api_servers = glance-api-glance-api-openstack-did.mfrm.mdom:8776
num_retries = 2
[cinder]
catalog_info = volume:cinder:internalURL
[neutron]
url = http://5.5.5.5:4422
url = http://neutron-server-neutron-openstack-did.mfrm.mdom:4422
auth_strategy = keystone
metadata_proxy_shared_secret = shshsh
service_metadata_proxy = true
auth_url = http://5.5.5.5:2084
auth_url = http://keystone-api-keystone-openstack-did.mfrm.mdom:2084
auth_plugin = password
project_domain_name = default
user_domain_id = default
@ -82,8 +79,8 @@ connection = mysql+pymysql://nova_dba:yikes@3.3.3.3/noova
connection = mysql+pymysql://sucker:noo@1.2.3.4/noova_api
[keystone_authtoken]
auth_uri = http://5.5.5.5:1111
auth_url = http://5.5.5.5:2084
auth_uri = http://keystone-api-keystone-openstack-did.mfrm.mdom:1111
auth_url = http://keystone-api-keystone-openstack-did.mfrm.mdom:2084
auth_plugin = password
project_domain_id = default
user_domain_id = default
@ -96,4 +93,4 @@ connection_uri = "qemu+tcp://1.2.3.4/system"
[upgrade_levels]
compute = auto
compute = auto

View File

@ -690,7 +690,18 @@ class RenderNovaConfTest(base.BaseTestCase):
'keystone_public_port': '1111',
'rabbitmq_password': 'jumpforjoy',
'rabbitmq_port': '9090',
'nova_api_database_user': 'sucker'}
'nova_api_database_user': 'sucker',
'marathon_framework': 'mfrm',
'mesos_dns_domain': 'mdom',
'keystone_auth_host':
'keystone-api-keystone-openstack-did.mfrm.mdom',
'neutron_server_host':
'neutron-server-neutron-openstack-did.mfrm.mdom',
'glance_api_host':
'glance-api-glance-api-openstack-did.mfrm.mdom',
'cinder_api_host':
'cinder-api-cinder-openstack-did.mfrm.mdom',
'nova_api_host': 'nova-api-nova-openstack-did.mfrm.mdom'}
for nam, val in variables.items():
self.client.create('/kolla/did/variables/%s' % nam,
getattr(self, nam, val),

View File

@ -34,7 +34,8 @@ class TestWriteOpenRC(base.BaseTestCase):
variables = {'keystone_admin_password': 'foofee',
'kolla_internal_address': 'here.not',
'keystone_admin_port': '4511',
'openstack_region_name': 'there'}
'openstack_region_name': 'there',
'keystone_auth_host': 'not.here'}
configuration.write_variables_zookeeper(self.client, variables)
mock_open.return_value = mock.MagicMock(spec=file)
@ -51,7 +52,8 @@ class TestWriteOpenRC(base.BaseTestCase):
# missing variable "keystone_admin_port"
variables = {'keystone_admin_password': 'foofee',
'kolla_internal_address': 'here.not',
'openstack_region_name': 'there'}
'openstack_region_name': 'there',
'keystone_auth_host': 'not.here'}
configuration.write_variables_zookeeper(self.client, variables)
with mock.patch.object(deployment.zk_utils, 'connection') as m_zk_c:

View File

@ -46,9 +46,9 @@ commands:
service_type=volume
description='Openstack Block Storage'
endpoint_region={{ openstack_region_name }}
admin_url='http://{{ kolla_internal_address }}:{{ cinder_api_port }}/v2/%(tenant_id)s'
internal_url='http://{{ kolla_internal_address }}:{{ cinder_api_port }}/v2/%(tenant_id)s'
public_url='http://{{ kolla_external_address }}:{{ cinder_api_port }}/v2/%(tenant_id)s'
admin_url='http://{{ cinder_api_host }}:{{ cinder_api_port }}/v2/%(tenant_id)s'
internal_url='http://{{ cinder_api_host }}:{{ cinder_api_port }}/v2/%(tenant_id)s'
public_url='http://{{ cinder_api_host }}:{{ cinder_api_port }}/v2/%(tenant_id)s'
region_name={{ openstack_region_name }}
auth={{ '{{ openstack_cinder_auth }}' }}"
-e "{'openstack_cinder_auth':{{ openstack_cinder_auth }}}"
@ -63,9 +63,9 @@ commands:
service_type=volumev2
description='Openstack Block Storage'
endpoint_region={{ openstack_region_name }}
admin_url='http://{{ kolla_internal_address }}:{{ cinder_api_port }}/v2/%(tenant_id)s'
internal_url='http://{{ kolla_internal_address }}:{{ cinder_api_port }}/v2/%(tenant_id)s'
public_url='http://{{ kolla_external_address }}:{{ cinder_api_port }}/v2/%(tenant_id)s'
admin_url='http://{{ cinder_api_host }}:{{ cinder_api_port }}/v2/%(tenant_id)s'
internal_url='http://{{ cinder_api_host }}:{{ cinder_api_port }}/v2/%(tenant_id)s'
public_url='http://{{ cinder_api_host }}:{{ cinder_api_port }}/v2/%(tenant_id)s'
region_name={{ openstack_region_name }}
auth={{ '{{ openstack_cinder_auth }}' }}"
-e "{'openstack_cinder_auth':{{ openstack_cinder_auth }}}"

View File

@ -43,9 +43,9 @@ commands:
service_type=image
description='Openstack Image'
endpoint_region={{ openstack_region_name }}
admin_url='http://{{ kolla_internal_address }}:{{ glance_api_port }}'
internal_url='http://{{ kolla_internal_address }}:{{ glance_api_port }}'
public_url='http://{{ kolla_external_address }}:{{ glance_api_port }}'
admin_url='http://{{ glance_api_host }}:{{ glance_api_port }}'
internal_url='http://{{ glance_api_host }}:{{ glance_api_port }}'
public_url='http://{{ glance_api_host }}:{{ glance_api_port }}'
region_name={{ openstack_region_name }}
auth={{ '{{ openstack_glance_auth }}' }}"
-e "{'openstack_glance_auth':{{ openstack_glance_auth }}}"

View File

@ -67,9 +67,9 @@ commands:
service_type=identity
description='Openstack Identity'
endpoint_region={{ openstack_region_name }}
admin_url='http://{{ kolla_internal_address }}:{{ keystone_admin_port }}'
internal_url='http://{{ kolla_internal_address }}:{{ keystone_admin_port }}'
public_url='http://{{ kolla_external_address }}:{{ keystone_public_port }}'
admin_url='http://{{ keystone_auth_host }}:{{ keystone_admin_port }}'
internal_url='http://{{ keystone_auth_host }}:{{ keystone_admin_port }}'
public_url='http://{{ keystone_auth_host }}:{{ keystone_public_port }}'
region_name={{ openstack_region_name }}
auth_type=admin_token
auth={{ '{{ openstack_keystone_token_auth }}' }}"

View File

@ -49,9 +49,9 @@ commands:
service_type=network
description='Openstack Networking'
endpoint_region={{ openstack_region_name }}
admin_url='http://{{ kolla_internal_address }}:{{ neutron_server_port }}'
internal_url='http://{{ kolla_internal_address }}:{{ neutron_server_port }}'
public_url='http://{{ kolla_external_address }}:{{ neutron_server_port }}'
admin_url='http://{{ neutron_server_host }}:{{ neutron_server_port }}'
internal_url='http://{{ neutron_server_host }}:{{ neutron_server_port }}'
public_url='http://{{ neutron_server_host }}:{{ neutron_server_port }}'
region_name={{ openstack_region_name }}
auth={{ '{{ openstack_neutron_auth }}' }}"
-e "{'openstack_neutron_auth':{{ openstack_neutron_auth }}}"

View File

@ -69,9 +69,9 @@ commands:
service_type=compute
description='Openstack Compute'
endpoint_region={{ openstack_region_name }}
admin_url='http://{{ kolla_internal_address }}:{{ nova_api_port }}/v2/%(tenant_id)s'
internal_url='http://{{ kolla_internal_address }}:{{ nova_api_port }}/v2/%(tenant_id)s'
public_url='http://{{ kolla_external_address }}:{{ nova_api_port }}/v2/%(tenant_id)s'
admin_url='http://{{ nova_api_host }}:{{ nova_api_port }}/v2/%(tenant_id)s'
internal_url='http://{{ nova_api_host }}:{{ nova_api_port }}/v2/%(tenant_id)s'
public_url='http://{{ nova_api_host }}:{{ nova_api_port }}/v2/%(tenant_id)s'
region_name={{ openstack_region_name }}
auth={{ '{{ openstack_nova_auth }}' }}"
-e "{'openstack_nova_auth':{{ openstack_nova_auth }}}"