Don't have separate protocols/ports for Keystone v3
authorZane Bitter <zbitter@redhat.com>
Wed, 24 Feb 2016 17:04:59 +0000 (12:04 -0500)
committerJuan Antonio Osorio Robles <jaosorior@redhat.com>
Mon, 11 Apr 2016 04:50:28 +0000 (04:50 +0000)
The change in ab068a824ed51e78bf111387223e58e885ec5c84 is described as
temporary, so it would be better if it did not affect the EndpointMap
parameter (which is effectively a public interface, since it may be
overridden in an environment file). No configuration should end up with
different ports/protocols/hosts for Keystone v2 and v3, and somebody
customising them should not have to account for them separately. Nor
should things break when the need to distinguish between v2 and v3
endpoints goes away.

This change removes the KeystoneV3* keys from the EndpointMap input and
uses the Keystone* keys instead, so that any change to the internal
organisation becomes transparent to the user.

Change-Id: If4cdd9232f4dbc9f2af651bbdfe68f09dc26ed2e

environments/enable-tls.yaml
network/endpoints/endpoint_data.yaml
network/endpoints/endpoint_map.yaml

index 7018127..6edb8ac 100644 (file)
@@ -24,9 +24,6 @@ parameter_defaults:
     KeystoneAdmin: {protocol: 'http', port: '35357', host: 'IP_ADDRESS'}
     KeystoneInternal: {protocol: 'http', port: '5000', host: 'IP_ADDRESS'}
     KeystonePublic: {protocol: 'https', port: '13000', host: 'CLOUDNAME'}
-    KeystoneV3Admin: {protocol: 'http', port: '35357', host: 'IP_ADDRESS'}
-    KeystoneV3Internal: {protocol: 'http', port: '5000', host: 'IP_ADDRESS'}
-    KeystoneV3Public: {protocol: 'https', port: '13000', host: 'CLOUDNAME'}
     NeutronAdmin: {protocol: 'http', port: '9696', host: 'IP_ADDRESS'}
     NeutronInternal: {protocol: 'http', port: '9696', host: 'IP_ADDRESS'}
     NeutronPublic: {protocol: 'https', port: '13696', host: 'CLOUDNAME'}
index edcfaca..38d684e 100644 (file)
@@ -72,40 +72,27 @@ Horizon:
             '': /dashboard
     port: 80
 
+# TODO(ayoung): V3 is a temporary fix. Endpoints should be versionless.
+# Required for https://bugs.launchpad.net/puppet-nova/+bug/1542486
 Keystone:
     Internal:
         vip_param: KeystonePublicApi
         uri_suffixes:
             '': /v2.0
             EC2: /v2.0/ec2tokens
+            V3: /v3
         names:
             EC2: KeystoneEC2
     Public:
         vip_param: Public
         uri_suffixes:
             '': /v2.0
+            V3: /v3
     Admin:
         vip_param: KeystoneAdminApi
         uri_suffixes:
             '': /v2.0
-        port: 35357
-    port: 5000
-
-# TODO(ayoung): V3 is a temporary fix. Endpoints should be versionless.
-# Required for https://bugs.launchpad.net/puppet-nova/+bug/1542486
-KeystoneV3:
-    Internal:
-        vip_param: KeystonePublicApi
-        uri_suffixes:
-            '': /v3
-    Public:
-        vip_param: Public
-        uri_suffixes:
-            '': /v3
-    Admin:
-        vip_param: KeystoneAdminApi
-        uri_suffixes:
-            '': /v3
+            V3: /v3
         port: 35357
     port: 5000
 
index 07266f9..acd6b95 100644 (file)
@@ -43,9 +43,6 @@ 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}
@@ -963,119 +960,119 @@ outputs:
         host:
           str_replace:
             template:
-              get_param: [EndpointMap, KeystoneV3Admin, host]
+              get_param: [EndpointMap, KeystoneAdmin, host]
             params:
               CLOUDNAME: {get_param: CloudName}
               IP_ADDRESS: {get_param: KeystoneAdminApiVirtualIP}
         port:
-          get_param: [EndpointMap, KeystoneV3Admin, port]
+          get_param: [EndpointMap, KeystoneAdmin, port]
         protocol:
-          get_param: [EndpointMap, KeystoneV3Admin, protocol]
+          get_param: [EndpointMap, KeystoneAdmin, protocol]
         uri:
           list_join:
           - ''
-          - - get_param: [EndpointMap, KeystoneV3Admin, protocol]
+          - - get_param: [EndpointMap, KeystoneAdmin, protocol]
             - ://
             - str_replace:
                 template:
-                  get_param: [EndpointMap, KeystoneV3Admin, host]
+                  get_param: [EndpointMap, KeystoneAdmin, host]
                 params:
                   CLOUDNAME: {get_param: CloudName}
                   IP_ADDRESS: {get_param: KeystoneAdminApiVirtualIP}
             - ':'
-            - get_param: [EndpointMap, KeystoneV3Admin, port]
+            - get_param: [EndpointMap, KeystoneAdmin, port]
             - /v3
         uri_no_suffix:
           list_join:
           - ''
-          - - get_param: [EndpointMap, KeystoneV3Admin, protocol]
+          - - get_param: [EndpointMap, KeystoneAdmin, protocol]
             - ://
             - str_replace:
                 template:
-                  get_param: [EndpointMap, KeystoneV3Admin, host]
+                  get_param: [EndpointMap, KeystoneAdmin, host]
                 params:
                   CLOUDNAME: {get_param: CloudName}
                   IP_ADDRESS: {get_param: KeystoneAdminApiVirtualIP}
             - ':'
-            - get_param: [EndpointMap, KeystoneV3Admin, port]
+            - get_param: [EndpointMap, KeystoneAdmin, port]
       KeystoneV3Internal:
         host:
           str_replace:
             template:
-              get_param: [EndpointMap, KeystoneV3Internal, host]
+              get_param: [EndpointMap, KeystoneInternal, host]
             params:
               CLOUDNAME: {get_param: CloudName}
               IP_ADDRESS: {get_param: KeystonePublicApiVirtualIP}
         port:
-          get_param: [EndpointMap, KeystoneV3Internal, port]
+          get_param: [EndpointMap, KeystoneInternal, port]
         protocol:
-          get_param: [EndpointMap, KeystoneV3Internal, protocol]
+          get_param: [EndpointMap, KeystoneInternal, protocol]
         uri:
           list_join:
           - ''
-          - - get_param: [EndpointMap, KeystoneV3Internal, protocol]
+          - - get_param: [EndpointMap, KeystoneInternal, protocol]
             - ://
             - str_replace:
                 template:
-                  get_param: [EndpointMap, KeystoneV3Internal, host]
+                  get_param: [EndpointMap, KeystoneInternal, host]
                 params:
                   CLOUDNAME: {get_param: CloudName}
                   IP_ADDRESS: {get_param: KeystonePublicApiVirtualIP}
             - ':'
-            - get_param: [EndpointMap, KeystoneV3Internal, port]
+            - get_param: [EndpointMap, KeystoneInternal, port]
             - /v3
         uri_no_suffix:
           list_join:
           - ''
-          - - get_param: [EndpointMap, KeystoneV3Internal, protocol]
+          - - get_param: [EndpointMap, KeystoneInternal, protocol]
             - ://
             - str_replace:
                 template:
-                  get_param: [EndpointMap, KeystoneV3Internal, host]
+                  get_param: [EndpointMap, KeystoneInternal, host]
                 params:
                   CLOUDNAME: {get_param: CloudName}
                   IP_ADDRESS: {get_param: KeystonePublicApiVirtualIP}
             - ':'
-            - get_param: [EndpointMap, KeystoneV3Internal, port]
+            - get_param: [EndpointMap, KeystoneInternal, port]
       KeystoneV3Public:
         host:
           str_replace:
             template:
-              get_param: [EndpointMap, KeystoneV3Public, host]
+              get_param: [EndpointMap, KeystonePublic, host]
             params:
               CLOUDNAME: {get_param: CloudName}
               IP_ADDRESS: {get_param: PublicVirtualIP}
         port:
-          get_param: [EndpointMap, KeystoneV3Public, port]
+          get_param: [EndpointMap, KeystonePublic, port]
         protocol:
-          get_param: [EndpointMap, KeystoneV3Public, protocol]
+          get_param: [EndpointMap, KeystonePublic, protocol]
         uri:
           list_join:
           - ''
-          - - get_param: [EndpointMap, KeystoneV3Public, protocol]
+          - - get_param: [EndpointMap, KeystonePublic, protocol]
             - ://
             - str_replace:
                 template:
-                  get_param: [EndpointMap, KeystoneV3Public, host]
+                  get_param: [EndpointMap, KeystonePublic, host]
                 params:
                   CLOUDNAME: {get_param: CloudName}
                   IP_ADDRESS: {get_param: PublicVirtualIP}
             - ':'
-            - get_param: [EndpointMap, KeystoneV3Public, port]
+            - get_param: [EndpointMap, KeystonePublic, port]
             - /v3
         uri_no_suffix:
           list_join:
           - ''
-          - - get_param: [EndpointMap, KeystoneV3Public, protocol]
+          - - get_param: [EndpointMap, KeystonePublic, protocol]
             - ://
             - str_replace:
                 template:
-                  get_param: [EndpointMap, KeystoneV3Public, host]
+                  get_param: [EndpointMap, KeystonePublic, host]
                 params:
                   CLOUDNAME: {get_param: CloudName}
                   IP_ADDRESS: {get_param: PublicVirtualIP}
             - ':'
-            - get_param: [EndpointMap, KeystoneV3Public, port]
+            - get_param: [EndpointMap, KeystonePublic, port]
       NeutronAdmin:
         host:
           str_replace: