Arranging https connection among OS services
The patch arranges https connection among deployed OpenStack
services.
Change-Id: Ic25bf3a2c701686e85c0cbffef825a0f4957edcb
diff --git a/classes/cluster/os-ha-ovs/openstack/control.yml b/classes/cluster/os-ha-ovs/openstack/control.yml
index 03c2070..ebde0a5 100644
--- a/classes/cluster/os-ha-ovs/openstack/control.yml
+++ b/classes/cluster/os-ha-ovs/openstack/control.yml
@@ -1,4 +1,5 @@
classes:
+- system.salt.minion.cert.proxy
- system.linux.system.lowmem
- system.linux.system.repo.glusterfs
- system.linux.system.repo.mcp.openstack
@@ -8,6 +9,10 @@
- system.memcached.server.single
- system.rabbitmq.server.cluster
- system.rabbitmq.server.vhost.openstack
+- system.nginx.server.single
+- system.nginx.server.proxy.openstack_api
+- system.nginx.server.proxy.openstack.designate
+- system.nginx.server.proxy.openstack.placement
- system.keystone.server.wsgi
- system.keystone.server.cluster
- system.glusterfs.client.cluster
@@ -38,7 +43,34 @@
- cluster.os-ha-ovs
parameters:
_param:
+ salt_minion_ca_authority: salt_master_ca
keepalived_vip_interface: ens4
+ ### nginx ssl sites settings
+ nginx_proxy_ssl:
+ enabled: true
+ engine: salt
+ authority: "${_param:salt_minion_ca_authority}"
+ key_file: "/etc/ssl/private/internal_proxy.key"
+ cert_file: "/etc/ssl/certs/internal_proxy.crt"
+ chain_file: "/etc/ssl/certs/internal_proxy-with-chain.crt"
+ nginx_proxy_openstack_api_address: ${_param:cluster_local_address}
+ nginx_proxy_openstack_keystone_host: 127.0.0.1
+ nginx_proxy_openstack_nova_host: 127.0.0.1
+ nginx_proxy_openstack_cinder_host: 127.0.0.1
+ nginx_proxy_openstack_glance_host: 127.0.0.1
+ nginx_proxy_openstack_neutron_host: 127.0.0.1
+ nginx_proxy_openstack_heat_host: 127.0.0.1
+ nginx_proxy_openstack_designate_host: 127.0.0.1
+ nginx_proxy_openstack_placement_host: 127.0.0.1
+ apache_keystone_api_host: ${_param:single_address}
+ apache_keystone_ssl: ${_param:nginx_proxy_ssl}
+ nginx:
+ server:
+ site:
+ nginx_proxy_openstack_api_keystone:
+ enabled: false
+ nginx_proxy_openstack_api_keystone_private:
+ enabled: false
linux:
system:
package:
@@ -102,16 +134,35 @@
notification:
driver: messagingv2
topics: "notifications"
+ bind:
+ address: 127.0.0.1
+ identity:
+ protocol: https
+ registry:
+ protocol: https
heat:
server:
notification:
driver: messagingv2
topics: "notifications"
+ bind:
+ api:
+ address: 127.0.0.1
+ api_cfn:
+ address: 127.0.0.1
+ api_cloudwatch:
+ address: 127.0.0.1
+ identity:
+ protocol: https
neutron:
server:
notification:
driver: messagingv2
topics: "notifications"
+ bind:
+ address: 127.0.0.1
+ identity:
+ protocol: https
bind:
server:
control:
@@ -133,9 +184,15 @@
metadata:
password: ${_param:metadata_password}
bind:
- private_address: ${_param:cluster_local_address}
+ private_address: 127.0.0.1
public_address: ${_param:cluster_vip_address}
novncproxy_port: 6080
+ identity:
+ protocol: https
+ network:
+ protocol: https
+ glance:
+ protocol: https
vncproxy_url: http://${_param:cluster_vip_address}:6080
workers: 1
notification:
@@ -150,3 +207,51 @@
notification:
driver: messagingv2
topics: "notifications"
+ identity:
+ protocol: https
+ osapi:
+ host: 127.0.0.1
+ glance:
+ protocol: https
+ salt:
+ minion:
+ cert:
+ internal_proxy:
+ host: ${_param:salt_minion_ca_host}
+ authority: ${_param:salt_minion_ca_authority}
+ common_name: internal_proxy
+ signing_policy: cert_open
+ alternative_names: IP:127.0.0.1,IP:${_param:cluster_local_address},IP:${_param:cluster_public_host},DNS:${linux:system:name},DNS:${linux:network:fqdn},DNS:${_param:cluster_local_address},DNS:${_param:cluster_public_host}
+ key_file: "/etc/ssl/private/internal_proxy.key"
+ cert_file: "/etc/ssl/certs/internal_proxy.crt"
+ all_file: "/etc/ssl/certs/internal_proxy-with-chain.crt"
+ haproxy:
+ proxy:
+ listen:
+ keystone_public_api:
+ type: ~
+ designate_api:
+ type: ~
+ keystone_admin_api:
+ type: ~
+ nova_api:
+ type: ~
+ nova_metadata_api:
+ type: ~
+ cinder_api:
+ type: ~
+ glance_api:
+ type: ~
+ glance_registry_api:
+ type: ~
+ heat_cloudwatch_api:
+ type: ~
+ heat_api:
+ type: ~
+ heat_cfn_api:
+ type: ~
+ neutron_api:
+ type: ~
+ nova_placement_api:
+ type: ~
+
diff --git a/classes/cluster/os-ha-ovs/openstack/init.yml b/classes/cluster/os-ha-ovs/openstack/init.yml
index d478f1f..7748a18 100644
--- a/classes/cluster/os-ha-ovs/openstack/init.yml
+++ b/classes/cluster/os-ha-ovs/openstack/init.yml
@@ -1,7 +1,7 @@
parameters:
_param:
openstack_proxy_hostname: cfg
- openstack_proxy_address: ${_param:infra_config_address}
+ openstack_proxy_address: 172.16.10.254
openstack_proxy_node01_hostname: cfg01
openstack_proxy_node01_address: ${_param:infra_config_address}
openstack_control_hostname: ctl
@@ -27,8 +27,16 @@
mcp_repo_version: 1.1
openstack_region: RegionOne
admin_email: root@localhost
- cluster_public_protocol: http
+ cluster_public_protocol: https
+ cluster_internal_protocol: https
cluster_public_host: ${_param:openstack_proxy_address}
+ keystone_service_protocol: ${_param:cluster_internal_protocol}
+ glance_service_protocol: ${_param:cluster_internal_protocol}
+ nova_service_protocol: ${_param:cluster_internal_protocol}
+ neutron_service_protocol: ${_param:cluster_internal_protocol}
+ heat_service_protocol: ${_param:cluster_internal_protocol}
+ cinder_service_protocol: ${_param:cluster_internal_protocol}
+ designate_service_protocol: ${_param:cluster_internal_protocol}
neutron_public_protocol: http
neutron_control_dvr: False
neutron_tenant_network_types: "flat,vxlan"
diff --git a/classes/cluster/os-ha-ovs/openstack/proxy.yml b/classes/cluster/os-ha-ovs/openstack/proxy.yml
index 8b2e13c..3f32322 100644
--- a/classes/cluster/os-ha-ovs/openstack/proxy.yml
+++ b/classes/cluster/os-ha-ovs/openstack/proxy.yml
@@ -14,4 +14,4 @@
authority: ${_param:salt_minion_ca_authority}
engine: salt
mode: secure
- salt_minion_ca_host: cfg01.${_param:cluster_domain}
+ salt_minion_ca_host: cfg01.${linux:system:domain}