Update keystone services, update public endpoints
diff --git a/keystone/client/service/aodh.yml b/keystone/client/service/aodh.yml
index c91a354..d2e8693 100644
--- a/keystone/client/service/aodh.yml
+++ b/keystone/client/service/aodh.yml
@@ -16,7 +16,8 @@
               description: OpenStack Alarming Service
               endpoints:
               - region: ${_param:openstack_region}
-                public_address: ${_param:aodh_service_host}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: https
                 public_port: 8042
                 public_path: '/'
                 internal_address: ${_param:aodh_service_host}
@@ -24,4 +25,4 @@
                 internal_path: '/'
                 admin_address: ${_param:aodh_service_host}
                 admin_port: 8042
-                admin_path: '/'
\ No newline at end of file
+                admin_path: '/'
diff --git a/keystone/client/service/billometer.yml b/keystone/client/service/billometer.yml
index 86a153f..55e7c43 100644
--- a/keystone/client/service/billometer.yml
+++ b/keystone/client/service/billometer.yml
@@ -16,7 +16,8 @@
               description: OpenStack Billing Service
               endpoints:
               - region: ${_param:openstack_region}
-                public_address: ${_param:billometer_service_host}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: https
                 public_port: 9753
                 public_path: '/v1'
                 internal_address: ${_param:billometer_service_host}
diff --git a/keystone/client/service/ceilometer.yml b/keystone/client/service/ceilometer.yml
index c40383a..91554f1 100644
--- a/keystone/client/service/ceilometer.yml
+++ b/keystone/client/service/ceilometer.yml
@@ -16,7 +16,8 @@
               description: OpenStack Telemetry Service
               endpoints:
               - region: ${_param:openstack_region}
-                public_address: ${_param:ceilometer_service_host}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: https
                 public_port: 8777
                 public_path: '/'
                 internal_address: ${_param:ceilometer_service_host}
diff --git a/keystone/client/service/cinder.yml b/keystone/client/service/cinder.yml
index 329c7ac..30ca40b 100644
--- a/keystone/client/service/cinder.yml
+++ b/keystone/client/service/cinder.yml
@@ -16,7 +16,8 @@
               description: OpenStack Volume Service
               endpoints:
               - region: ${_param:openstack_region}
-                public_address: ${_param:cinder_service_host}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: https
                 public_port: 8776
                 public_path: '/v1/$(tenant_id)s'
                 internal_address: ${_param:cinder_service_host}
diff --git a/keystone/client/service/cinder2.yml b/keystone/client/service/cinder2.yml
index a24f06a..42ec575 100644
--- a/keystone/client/service/cinder2.yml
+++ b/keystone/client/service/cinder2.yml
@@ -16,7 +16,8 @@
               description: OpenStack Volume Service v2
               endpoints:
               - region: ${_param:openstack_region}
-                public_address: ${_param:cinder_service_host}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: https
                 public_port: 8776
                 public_path: '/v2/$(tenant_id)s'
                 internal_address: ${_param:cinder_service_host}
diff --git a/keystone/client/service/designate.yml b/keystone/client/service/designate.yml
new file mode 100644
index 0000000..e11984e
--- /dev/null
+++ b/keystone/client/service/designate.yml
@@ -0,0 +1,28 @@
+parameters:
+  keystone:
+    client:
+      server:
+        identity:
+          project:
+            service:
+              user:
+                designate:
+                  is_admin: true
+                  password: ${_param:keystone_designate_password}
+                  email: ${_param:admin_email}
+    service:
+      designate:
+          type: dns
+          description: OpenStack DNS service
+          endpoints:
+            - region: ${_param:openstack_region}
+              public_address: ${_param:cluster_public_host}
+              public_protocol: https
+              public_port: 9001
+              public_path: '/'
+              internal_address: ${_param:designate_service_host}
+              internal_port: 9001
+              internal_path: '/'
+              admin_address: ${_param:designate_service_host}
+              admin_port: 9001
+              admin_path: '/'
diff --git a/keystone/client/service/glance.yml b/keystone/client/service/glance.yml
index 33d90c7..d740565 100644
--- a/keystone/client/service/glance.yml
+++ b/keystone/client/service/glance.yml
@@ -16,7 +16,8 @@
               description: OpenStack Image Service
               endpoints:
               - region: ${_param:openstack_region}
-                public_address: ${_param:glance_service_host}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: https
                 public_port: 9292
                 public_path: ''
                 internal_address: ${_param:glance_service_host}
diff --git a/keystone/client/service/heat-cfn.yml b/keystone/client/service/heat-cfn.yml
index 3bb5449..d692da8 100644
--- a/keystone/client/service/heat-cfn.yml
+++ b/keystone/client/service/heat-cfn.yml
@@ -9,7 +9,8 @@
               description: OpenStack CloudFormation Service
               endpoints:
               - region: ${_param:openstack_region}
-                public_address: ${_param:heat_service_host}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: https
                 public_port: 8000
                 public_path: '/v1'
                 internal_address: ${_param:heat_service_host}
diff --git a/keystone/client/service/heat.yml b/keystone/client/service/heat.yml
index 233cc75..a864696 100644
--- a/keystone/client/service/heat.yml
+++ b/keystone/client/service/heat.yml
@@ -19,7 +19,8 @@
               description: OpenStack Orchestration Service
               endpoints:
               - region: ${_param:openstack_region}
-                public_address: ${_param:heat_service_host}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: https
                 public_port: 8004
                 public_path: '/v1/%(tenant_id)s'
                 internal_address: ${_param:heat_service_host}
diff --git a/keystone/client/service/keystone.yml b/keystone/client/service/keystone.yml
index 914777c..5596e1e 100644
--- a/keystone/client/service/keystone.yml
+++ b/keystone/client/service/keystone.yml
@@ -9,7 +9,8 @@
               description: OpenStack Identity Service
               endpoints:
               - region: ${_param:openstack_region}
-                public_address: ${_param:keystone_service_host}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: https
                 public_port: 5000
                 public_path: '/v2.0'
                 internal_address: ${_param:keystone_service_host}
diff --git a/keystone/client/service/keystone3.yml b/keystone/client/service/keystone3.yml
index 9aaedc2..e6546d7 100644
--- a/keystone/client/service/keystone3.yml
+++ b/keystone/client/service/keystone3.yml
@@ -9,7 +9,8 @@
               description: OpenStack Identity Service v3
               endpoints:
               - region: ${_param:openstack_region}
-                public_address: ${_param:keystone_service_host}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: https
                 public_port: 5000
                 public_path: '/v3'
                 internal_address: ${_param:keystone_service_host}
diff --git a/keystone/client/service/murano.yml b/keystone/client/service/murano.yml
new file mode 100644
index 0000000..3547cee
--- /dev/null
+++ b/keystone/client/service/murano.yml
@@ -0,0 +1,29 @@
+
+parameters:
+  keystone:
+    client:
+      server:
+        identity:
+          project:
+            service:
+              user:
+                murano:
+                  is_admin: true
+                  password: ${_param:keystone_murano_password}
+                  email: ${_param:admin_email}
+      service:
+        murano:
+          type: application-catalog
+          description: Application Catalog for OpenStack
+          endpoints:
+            - region: ${_param:openstack_region}
+              public_address: ${_param:cluster_public_host}
+              public_protocol: https
+              public_port: 8082
+              public_path: ''
+              internal_address: ${_param:murano_service_host}
+              internal_port: 8082
+              internal_path: ''
+              admin_address: ${_param:murano_service_host}
+              admin_port: 8082
+              admin_path: ''
diff --git a/keystone/client/service/neutron.yml b/keystone/client/service/neutron.yml
index 48ca372..65eaa13 100644
--- a/keystone/client/service/neutron.yml
+++ b/keystone/client/service/neutron.yml
@@ -16,7 +16,8 @@
               description: OpenStack Networking Service
               endpoints:
               - region: ${_param:openstack_region}
-                public_address: ${_param:neutron_service_host}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: https
                 public_port: 9696
                 public_path: '/'
                 internal_address: ${_param:neutron_service_host}
diff --git a/keystone/client/service/nova-ec2.yml b/keystone/client/service/nova-ec2.yml
index b729061..144f0b7 100644
--- a/keystone/client/service/nova-ec2.yml
+++ b/keystone/client/service/nova-ec2.yml
@@ -9,7 +9,8 @@
               description: OpenStack EC2 Service
               endpoints:
               - region: ${_param:openstack_region}
-                public_address: ${_param:nova_service_host}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: https
                 public_port: 8773
                 public_path: '/services/Cloud'
                 internal_address: ${_param:nova_service_host}
diff --git a/keystone/client/service/nova.yml b/keystone/client/service/nova.yml
index 1497d69..7c3368b 100644
--- a/keystone/client/service/nova.yml
+++ b/keystone/client/service/nova.yml
@@ -16,7 +16,8 @@
               description: OpenStack Compute Service
               endpoints:
               - region: ${_param:openstack_region}
-                public_address: ${_param:nova_service_host}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: https
                 public_port: 8774
                 public_path: '/v2/$(tenant_id)s'
                 internal_address: ${_param:nova_service_host}
diff --git a/keystone/client/service/nova21.yml b/keystone/client/service/nova21.yml
index e09a9df..e7bb58e 100644
--- a/keystone/client/service/nova21.yml
+++ b/keystone/client/service/nova21.yml
@@ -16,7 +16,8 @@
               description: OpenStack Compute Service
               endpoints:
               - region: ${_param:openstack_region}
-                public_address: ${_param:nova_service_host}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: https
                 public_port: 8774
                 public_path: '/v2/$(tenant_id)s'
                 internal_address: ${_param:nova_service_host}
@@ -30,7 +31,8 @@
               description: OpenStack Compute Service v2.1
               endpoints:
               - region: ${_param:openstack_region}
-                public_address: ${_param:nova_service_host}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: https
                 public_port: 8774
                 public_path: '/v2.1'
                 internal_address: ${_param:nova_service_host}
diff --git a/keystone/client/service/radosgw-s3.yml b/keystone/client/service/radosgw-s3.yml
new file mode 100644
index 0000000..0dbe328
--- /dev/null
+++ b/keystone/client/service/radosgw-s3.yml
@@ -0,0 +1,28 @@
+parameters:
+  keystone:
+    client:
+      server:
+        identity:
+          project:
+            service:
+              user:
+                swift:
+                  is_admin: true
+                  password: ${_param:keystone_swift_password}
+                  email: ${_param:admin_email}
+      service:
+        radosgw-s3:
+          type: s3
+          description: S3 Service (radosgw)
+          endpoints:
+            - region: ${_param:openstack_region}
+              public_address: ${_param:radosgw_service_host_public}
+              public_protocol: https
+              public_port: 8081
+              public_path: '/' # /$(tenant_id)s
+              internal_address: ${_param:radosgw_service_host}
+              internal_port: 8081
+              internal_path: '/'
+              admin_address: ${_param:radosgw_service_host}
+              admin_port: 8081
+              admin_path: '/'
diff --git a/keystone/client/service/radosgw-swift.yml b/keystone/client/service/radosgw-swift.yml
new file mode 100644
index 0000000..5c88f28
--- /dev/null
+++ b/keystone/client/service/radosgw-swift.yml
@@ -0,0 +1,28 @@
+parameters:
+  keystone:
+    client:
+      server:
+        identity:
+          project:
+            service:
+              user:
+                swift:
+                  is_admin: true
+                  password: ${_param:keystone_swift_password}
+                  email: ${_param:admin_email}
+      service:
+        radosgw-swift:
+          type: object-store
+          description: Swift Service (radosgw)
+          endpoints:
+            - region: ${_param:openstack_region}
+              public_address: ${_param:radosgw_service_host_public}
+              public_protocol: https
+              public_port: 8081
+              public_path: '/swift/v1' # /$(tenant_id)s
+              internal_address: ${_param:radosgw_service_host}
+              internal_port: 8081
+              internal_path: '/swift/v1'
+              admin_address: ${_param:radosgw_service_host}
+              admin_port: 8081
+              admin_path: '/swift/v1'
diff --git a/keystone/client/service/sahara.yml b/keystone/client/service/sahara.yml
new file mode 100644
index 0000000..c37a67b
--- /dev/null
+++ b/keystone/client/service/sahara.yml
@@ -0,0 +1,28 @@
+parameters:
+  keystone:
+    client:
+      server:
+        identity:
+          project:
+            service:
+              user:
+                sahara:
+                  is_admin: true
+                  password: ${_param:keystone_sahara_password}
+                  email: ${_param:admin_email}
+      service:
+        swift:
+          type: data-processing
+          description: Sahara Data Processing
+          endpoints:
+            - region: ${_param:openstack_region}
+              public_address: ${_param:cluster_public_host}
+              public_protocol: https
+              public_port: 8386
+              public_path: '/v1.1/%(tenant_id)s'
+              internal_address: ${_param:sahara_service_host}
+              internal_port: 8386
+              internal_path: '/v1.1/%(tenant_id)s'
+              admin_address: ${_param:sahara_service_host}
+              admin_port: 8386
+              admin_path: '/v1.1/%(tenant_id)s'
diff --git a/keystone/client/service/swift-s3.yml b/keystone/client/service/swift-s3.yml
new file mode 100644
index 0000000..7f124ad
--- /dev/null
+++ b/keystone/client/service/swift-s3.yml
@@ -0,0 +1,32 @@
+parameters:
+  _param:
+    swift_service_host_public: ${_param:cluster_public_host}
+    swift_public_protocol: https
+  keystone:
+    client:
+      server:
+        identity:
+          project:
+            service:
+              user:
+                swift:
+                  is_admin: true
+                  password: ${_param:keystone_swift_password}
+                  email: ${_param:admin_email}
+      service:
+        swift-s3:
+          type: object-store
+          description: S3 Service (swift)
+          region: ${_param:keystone_region}
+          endpoints:
+            - region: ${_param:openstack_region}
+              public_address: ${_param:swift_service_host_public}
+              public_protocol: ${_param:swift_public_protocol}
+              public_port: 8080
+              public_path: '/v1/AUTH_%(tenant_id)s'
+              internal_address: ${_param:swift_service_host}
+              internal_port: 8080
+              internal_path: '/v1/AUTH_%(tenant_id)s'
+              admin_address: ${_param:swift_service_host}
+              admin_port: 8080
+              admin_path: '/'
diff --git a/keystone/client/service/swift.yml b/keystone/client/service/swift.yml
new file mode 100644
index 0000000..2713cfd
--- /dev/null
+++ b/keystone/client/service/swift.yml
@@ -0,0 +1,31 @@
+parameters:
+  _param:
+    swift_service_host_public: ${_param:cluster_public_host}
+    swift_public_protocol: https
+  keystone:
+    client:
+      server:
+        identity:
+          project:
+            service:
+              user:
+                swift:
+                  is_admin: true
+                  password: ${_param:keystone_swift_password}
+                  email: ${_param:admin_email}
+      service:
+        swift:
+          type: object-store
+          description: Swift Service
+          endpoints:
+            - region: ${_param:openstack_region}
+              public_address: ${_param:swift_service_host_public}
+              public_protocol: ${_param:swift_public_protocol}
+              public_port: 8080
+              public_path: '/v1/AUTH_%(tenant_id)s'
+              internal_address: ${_param:swift_service_host}
+              internal_port: 8080
+              internal_path: '/v1/AUTH_%(tenant_id)s'
+              admin_address: ${_param:swift_service_host}
+              admin_port: 8080
+              admin_path: '/'