From ab068a824ed51e78bf111387223e58e885ec5c84 Mon Sep 17 00:00:00 2001 From: David Moreau Simard Date: Thu, 11 Feb 2016 11:55:54 -0500 Subject: [PATCH] Nova Neutron configuration now uses keystone v3 endpoint Our current nova-neutron configuration does not work with the latest puppet-nova. In particular, this patch[1]. This commit adds keystone v3 endpoints to the map and gets the nova::network::neutron configuration to use them. [1] https://github.com/openstack/puppet-nova/commit/d09868a59c451932d67c66101b725182d7066a14 Change-Id: Ifb8c23c81c665c2732fa5cd757760668b06a449a --- network/endpoints/endpoint_map.yaml | 32 ++++++++++++++++++++++++++++++++ puppet/compute.yaml | 2 +- puppet/controller.yaml | 2 +- 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/network/endpoints/endpoint_map.yaml b/network/endpoints/endpoint_map.yaml index 096ee558..54ec7e33 100644 --- a/network/endpoints/endpoint_map.yaml +++ b/network/endpoints/endpoint_map.yaml @@ -65,6 +65,9 @@ parameters: KeystoneAdmin: {protocol: 'http', port: '35357', host: 'IP_ADDRESS'} KeystoneInternal: {protocol: 'http', port: '5000', host: 'IP_ADDRESS'} KeystonePublic: {protocol: 'http', port: '5000', host: 'IP_ADDRESS'} + KeystoneV3Admin: {protocol: 'http', port: '35357', host: 'IP_ADDRESS'} + KeystoneV3Internal: {protocol: 'http', port: '5000', host: 'IP_ADDRESS'} + KeystoneV3Public: {protocol: 'http', port: '5000', host: 'IP_ADDRESS'} NeutronAdmin: {protocol: 'http', port: '9696', host: 'IP_ADDRESS'} NeutronInternal: {protocol: 'http', port: '9696', host: 'IP_ADDRESS'} NeutronPublic: {protocol: 'http', port: '9696', host: 'IP_ADDRESS'} @@ -267,6 +270,32 @@ resources: IP: {get_param: KeystonePublicApiVirtualIP} CloudName: {get_param: CloudName} UriSuffix: '/v2.0/ec2tokens' + # TODO(ayoung): V3 is a temporary fix. Endpoints should be versionless. + # Required for https://bugs.launchpad.net/puppet-nova/+bug/1542486 + KeystoneV3Internal: + type: OS::TripleO::Endpoint + properties: + EndpointName: KeystoneV3Internal + EndpointMap: { get_param: EndpointMap } + IP: {get_param: KeystonePublicApiVirtualIP} + CloudName: {get_param: CloudName} + UriSuffix: '/v3' + KeystoneV3Public: + type: OS::TripleO::Endpoint + properties: + EndpointName: KeystoneV3Public + EndpointMap: { get_param: EndpointMap } + IP: {get_param: PublicVirtualIP} + CloudName: {get_param: CloudName} + UriSuffix: '/v3' + KeystoneV3Admin: + type: OS::TripleO::Endpoint + properties: + EndpointName: KeystoneV3Admin + EndpointMap: { get_param: EndpointMap } + IP: {get_param: KeystoneAdminApiVirtualIP} + CloudName: {get_param: CloudName} + UriSuffix: '/v3' NeutronInternal: type: OS::TripleO::Endpoint @@ -461,6 +490,9 @@ outputs: KeystonePublic: {get_attr: [ KeystonePublic, endpoint] } KeystoneAdmin: {get_attr: [ KeystoneAdmin, endpoint] } KeystoneEC2: {get_attr: [ KeystoneEC2, endpoint] } + KeystoneV3Internal: {get_attr: [ KeystoneV3Internal, endpoint] } + KeystoneV3Public: {get_attr: [ KeystoneV3Public, endpoint] } + KeystoneV3Admin: {get_attr: [ KeystoneV3Admin, endpoint] } NeutronInternal: {get_attr: [ NeutronInternal, endpoint] } NeutronPublic: {get_attr: [ NeutronPublic, endpoint] } NeutronAdmin: {get_attr: [ NeutronAdmin, endpoint] } diff --git a/puppet/compute.yaml b/puppet/compute.yaml index 360eb58d..d30e9a0b 100644 --- a/puppet/compute.yaml +++ b/puppet/compute.yaml @@ -624,7 +624,7 @@ resources: AGENT_EXTENSIONS: {get_param: NeutronAgentExtensions} neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice} neutron_internal_url: {get_param: [EndpointMap, NeutronInternal, uri]} - neutron_auth_url: {get_param: [EndpointMap, KeystoneAdmin, uri]} + neutron_auth_url: {get_param: [EndpointMap, KeystoneV3Admin, uri]} keystone_vip: {get_param: KeystonePublicApiVirtualIP} admin_password: {get_param: AdminPassword} rabbit_username: {get_param: RabbitUserName} diff --git a/puppet/controller.yaml b/puppet/controller.yaml index f2068d83..51c9b6c0 100644 --- a/puppet/controller.yaml +++ b/puppet/controller.yaml @@ -1083,7 +1083,7 @@ resources: neutron_internal_url: { get_param: [ EndpointMap, NeutronInternal, uri ] } neutron_public_url: { get_param: [ EndpointMap, NeutronPublic, uri ] } neutron_admin_url: { get_param: [ EndpointMap, NeutronAdmin, uri ] } - neutron_auth_url: { get_param: [ EndpointMap, KeystoneAdmin, uri_no_suffix ] } + neutron_auth_url: { get_param: [ EndpointMap, KeystoneV3Admin, uri ] } nova_internal_url: { get_param: [ EndpointMap, NovaInternal, uri ] } ceilometer_backend: {get_param: CeilometerBackend} ceilometer_metering_secret: {get_param: CeilometerMeteringSecret} -- 2.16.6