From 37e1122f8c3c0411ba357a7e74ba7ce284f07597 Mon Sep 17 00:00:00 2001 From: Martin Schuppert Date: Sun, 24 Feb 2019 18:01:57 +0100 Subject: [PATCH] Add OvnDbInternal to EndpointMap and use it for ovn_db_host OVN controller/metadata use ovn_dbs_vip hiera key to configure the central ovn DB. This key is not available on split control plane or multi cell setup and therefore installation fails. With this change a new entry gets created in the EndpointMap named OvnDbInternal. This can then be exported for an overcloud stack and can be used as an input for the cell stack. The information from the EndpointMap is used for ovn-metadata and ovn-controller as the ovn_db_host information in puppet-tripleo Change-Id: I0d9eb663405d1113ea84e3c12651a3f0dbdfc75d Closes-Bug: #1817524 --- .../ssl/no-tls-endpoints-public-ip.yaml | 1 + .../ssl/tls-endpoints-public-dns.yaml | 1 + environments/ssl/tls-endpoints-public-ip.yaml | 1 + .../ssl/tls-everywhere-endpoints-dns.yaml | 1 + network/endpoints/endpoint_data.yaml | 6 ++ network/endpoints/endpoint_map.yaml | 82 +++++++++++++++++++ puppet/services/ovn-controller.yaml | 1 + puppet/services/ovn-metadata.yaml | 1 + ...d-ovn-db-endpointmap-2f75dea0b3aa4513.yaml | 15 ++++ sample-env-generator/ssl.yaml | 4 + 10 files changed, 113 insertions(+) create mode 100644 releasenotes/notes/add-ovn-db-endpointmap-2f75dea0b3aa4513.yaml diff --git a/environments/ssl/no-tls-endpoints-public-ip.yaml b/environments/ssl/no-tls-endpoints-public-ip.yaml index 1bca0197e2..9d77805567 100644 --- a/environments/ssl/no-tls-endpoints-public-ip.yaml +++ b/environments/ssl/no-tls-endpoints-public-ip.yaml @@ -97,6 +97,7 @@ parameter_defaults: OpenshiftRouterAdmin: {protocol: http, port: '80', host: IP_ADDRESS} OpenshiftRouterInternal: {protocol: http, port: '80', host: IP_ADDRESS} OpenshiftRouterPublic: {protocol: http, port: '80', host: IP_ADDRESS} + OvnDbInternal: {protocol: tcp, port: '6642', host: IP_ADDRESS} PankoAdmin: {protocol: http, port: '8977', host: IP_ADDRESS} PankoInternal: {protocol: http, port: '8977', host: IP_ADDRESS} PankoPublic: {protocol: http, port: '8977', host: IP_ADDRESS} diff --git a/environments/ssl/tls-endpoints-public-dns.yaml b/environments/ssl/tls-endpoints-public-dns.yaml index 33f6f7fa36..6cd4e06cb7 100644 --- a/environments/ssl/tls-endpoints-public-dns.yaml +++ b/environments/ssl/tls-endpoints-public-dns.yaml @@ -93,6 +93,7 @@ parameter_defaults: OpenshiftRouterAdmin: {protocol: 'http', port: '80', host: 'IP_ADDRESS'} OpenshiftRouterInternal: {protocol: 'http', port: '80', host: 'IP_ADDRESS'} OpenshiftRouterPublic: {protocol: 'http', port: '80', host: 'IP_ADDRESS'} + OvnDbInternal: {protocol: tcp, port: '6642', host: 'IP_ADDRESS'} PankoAdmin: {protocol: 'http', port: '8977', host: 'IP_ADDRESS'} PankoInternal: {protocol: 'http', port: '8977', host: 'IP_ADDRESS'} PankoPublic: {protocol: 'https', port: '13977', host: 'CLOUDNAME'} diff --git a/environments/ssl/tls-endpoints-public-ip.yaml b/environments/ssl/tls-endpoints-public-ip.yaml index 5ef340a07c..5bc589b57b 100644 --- a/environments/ssl/tls-endpoints-public-ip.yaml +++ b/environments/ssl/tls-endpoints-public-ip.yaml @@ -93,6 +93,7 @@ parameter_defaults: OpenshiftRouterAdmin: {protocol: 'http', port: '80', host: 'IP_ADDRESS'} OpenshiftRouterInternal: {protocol: 'http', port: '80', host: 'IP_ADDRESS'} OpenshiftRouterPublic: {protocol: 'http', port: '80', host: 'IP_ADDRESS'} + OvnDbInternal: {protocol: tcp, port: '6642', host: 'IP_ADDRESS'} PankoAdmin: {protocol: 'http', port: '8977', host: 'IP_ADDRESS'} PankoInternal: {protocol: 'http', port: '8977', host: 'IP_ADDRESS'} PankoPublic: {protocol: 'https', port: '13977', host: 'IP_ADDRESS'} diff --git a/environments/ssl/tls-everywhere-endpoints-dns.yaml b/environments/ssl/tls-everywhere-endpoints-dns.yaml index 6d3c3d3fd0..6e0d9f01fb 100644 --- a/environments/ssl/tls-everywhere-endpoints-dns.yaml +++ b/environments/ssl/tls-everywhere-endpoints-dns.yaml @@ -93,6 +93,7 @@ parameter_defaults: OpenshiftRouterAdmin: {protocol: 'https', port: '443', host: 'CLOUDNAME'} OpenshiftRouterInternal: {protocol: 'https', port: '443', host: 'CLOUDNAME'} OpenshiftRouterPublic: {protocol: 'https', port: '443', host: 'CLOUDNAME'} + OvnDbInternal: {protocol: tcp, port: '6642', host: 'IP_ADDRESS'} PankoAdmin: {protocol: 'https', port: '8977', host: 'CLOUDNAME'} PankoInternal: {protocol: 'https', port: '8977', host: 'CLOUDNAME'} PankoPublic: {protocol: 'https', port: '13977', host: 'CLOUDNAME'} diff --git a/network/endpoints/endpoint_data.yaml b/network/endpoints/endpoint_data.yaml index f4f825320f..e66fbc7d3c 100644 --- a/network/endpoints/endpoint_data.yaml +++ b/network/endpoints/endpoint_data.yaml @@ -106,6 +106,12 @@ Mysql: protocol: mysql+pymysql port: 3306 +OvnDb: + Internal: + net_param: OvnDbs + protocol: tcp + port: 6642 + Heat: Internal: net_param: HeatApi diff --git a/network/endpoints/endpoint_map.yaml b/network/endpoints/endpoint_map.yaml index 8f1de889a3..10299abca0 100644 --- a/network/endpoints/endpoint_map.yaml +++ b/network/endpoints/endpoint_map.yaml @@ -100,6 +100,7 @@ parameters: OpenshiftRouterAdmin: {protocol: http, port: '80', host: IP_ADDRESS} OpenshiftRouterInternal: {protocol: http, port: '80', host: IP_ADDRESS} OpenshiftRouterPublic: {protocol: http, port: '80', host: IP_ADDRESS} + OvnDbInternal: {protocol: tcp, port: '6642', host: IP_ADDRESS} PankoAdmin: {protocol: http, port: '8977', host: IP_ADDRESS} PankoInternal: {protocol: http, port: '8977', host: IP_ADDRESS} PankoPublic: {protocol: http, port: '8977', host: IP_ADDRESS} @@ -7772,6 +7773,87 @@ outputs: template: NETWORK_uri port: get_param: [EndpointMap, OpenshiftRouterPublic, port] + OvnDbInternal: + host: + str_replace: + template: + get_param: [EndpointMap, OvnDbInternal, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, OvnDbsNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - str_replace: + params: + NETWORK: + get_param: [ServiceNetMap, OvnDbsNetwork] + template: NETWORK_uri + host_nobrackets: + str_replace: + template: + get_param: [EndpointMap, OvnDbInternal, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, OvnDbsNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - get_param: [ServiceNetMap, OvnDbsNetwork] + port: + get_param: [EndpointMap, OvnDbInternal, port] + protocol: + get_param: [EndpointMap, OvnDbInternal, protocol] + uri: + make_url: + scheme: + get_param: [EndpointMap, OvnDbInternal, protocol] + host: + str_replace: + template: + get_param: [EndpointMap, OvnDbInternal, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, OvnDbsNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - str_replace: + params: + NETWORK: + get_param: [ServiceNetMap, OvnDbsNetwork] + template: NETWORK_uri + port: + get_param: [EndpointMap, OvnDbInternal, port] + uri_no_suffix: + make_url: + scheme: + get_param: [EndpointMap, OvnDbInternal, protocol] + host: + str_replace: + template: + get_param: [EndpointMap, OvnDbInternal, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, OvnDbsNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - str_replace: + params: + NETWORK: + get_param: [ServiceNetMap, OvnDbsNetwork] + template: NETWORK_uri + port: + get_param: [EndpointMap, OvnDbInternal, port] PankoAdmin: host: str_replace: diff --git a/puppet/services/ovn-controller.yaml b/puppet/services/ovn-controller.yaml index cc521d595e..f0c2ab1885 100644 --- a/puppet/services/ovn-controller.yaml +++ b/puppet/services/ovn-controller.yaml @@ -114,6 +114,7 @@ outputs: $NETWORK: {get_param: [ServiceNetMap, NeutronTenantNetwork]} ovn::controller::ovn_bridge: {get_param: OVNIntegrationBridge} nova::compute::force_config_drive: {if: [force_config_drive, true, false]} + tripleo::profile::base::neutron::agents::ovn::ovn_db_host: {get_param: [EndpointMap, OvnDbInternal, host_nobrackets]} tripleo::ovn_controller::firewall_rules: '118 neutron vxlan networks': proto: 'udp' diff --git a/puppet/services/ovn-metadata.yaml b/puppet/services/ovn-metadata.yaml index 12c856c291..4d7db4f5e2 100644 --- a/puppet/services/ovn-metadata.yaml +++ b/puppet/services/ovn-metadata.yaml @@ -113,6 +113,7 @@ outputs: $NETWORK: {get_param: [ServiceNetMap, NovaMetadataNetwork]} neutron::agents::ovn_metadata::ovsdb_connection_timeout: {get_param: OVNDbConnectionTimeout} ovn::southbound::port: {get_param: OVNSouthboundServerPort} + tripleo::profile::base::neutron::ovn_metadata::ovn_db_host: {get_param: [EndpointMap, OvnDbInternal, host_nobrackets]} neutron::agents::ovn_metadata::debug: if: - service_debug_unset diff --git a/releasenotes/notes/add-ovn-db-endpointmap-2f75dea0b3aa4513.yaml b/releasenotes/notes/add-ovn-db-endpointmap-2f75dea0b3aa4513.yaml new file mode 100644 index 0000000000..e85a6cabbe --- /dev/null +++ b/releasenotes/notes/add-ovn-db-endpointmap-2f75dea0b3aa4513.yaml @@ -0,0 +1,15 @@ +--- +issues: + - | + Add OvnDbInternal to EndpointMap and use it for ovn_db_host + + OVN controller/metadata use ovn_dbs_vip hiera key to configure + the central ovn DB. This key is not available on split control + plane or multi cell setup and therefore installation fails. + + With this change a new entry gets created in the EndpointMap + named OvnDbInternal. This can then be exported for an overcloud + stack and can be used as an input for the cell stack. + + The information from the EndpointMap is used for ovn-metadata + and ovn-controller as the ovn_db_host information in puppet-tripleo diff --git a/sample-env-generator/ssl.yaml b/sample-env-generator/ssl.yaml index 8058793aaf..5a2239b74f 100644 --- a/sample-env-generator/ssl.yaml +++ b/sample-env-generator/ssl.yaml @@ -198,6 +198,7 @@ environments: OpenshiftRouterAdmin: {protocol: 'http', port: '80', host: 'IP_ADDRESS'} OpenshiftRouterInternal: {protocol: 'http', port: '80', host: 'IP_ADDRESS'} OpenshiftRouterPublic: {protocol: 'http', port: '80', host: 'IP_ADDRESS'} + OvnDbInternal: {protocol: tcp, port: '6642', host: 'IP_ADDRESS'} PankoAdmin: {protocol: 'http', port: '8977', host: 'IP_ADDRESS'} PankoInternal: {protocol: 'http', port: '8977', host: 'IP_ADDRESS'} PankoPublic: {protocol: 'https', port: '13977', host: 'IP_ADDRESS'} @@ -317,6 +318,7 @@ environments: OpenshiftRouterAdmin: {protocol: 'http', port: '80', host: 'IP_ADDRESS'} OpenshiftRouterInternal: {protocol: 'http', port: '80', host: 'IP_ADDRESS'} OpenshiftRouterPublic: {protocol: 'http', port: '80', host: 'IP_ADDRESS'} + OvnDbInternal: {protocol: tcp, port: '6642', host: 'IP_ADDRESS'} PankoAdmin: {protocol: 'http', port: '8977', host: 'IP_ADDRESS'} PankoInternal: {protocol: 'http', port: '8977', host: 'IP_ADDRESS'} PankoPublic: {protocol: 'https', port: '13977', host: 'CLOUDNAME'} @@ -436,6 +438,7 @@ environments: OpenshiftRouterAdmin: {protocol: 'https', port: '443', host: 'CLOUDNAME'} OpenshiftRouterInternal: {protocol: 'https', port: '443', host: 'CLOUDNAME'} OpenshiftRouterPublic: {protocol: 'https', port: '443', host: 'CLOUDNAME'} + OvnDbInternal: {protocol: tcp, port: '6642', host: 'IP_ADDRESS'} PankoAdmin: {protocol: 'https', port: '8977', host: 'CLOUDNAME'} PankoInternal: {protocol: 'https', port: '8977', host: 'CLOUDNAME'} PankoPublic: {protocol: 'https', port: '13977', host: 'CLOUDNAME'} @@ -565,6 +568,7 @@ environments: OpenshiftRouterAdmin: {protocol: http, port: '80', host: IP_ADDRESS} OpenshiftRouterInternal: {protocol: http, port: '80', host: IP_ADDRESS} OpenshiftRouterPublic: {protocol: http, port: '80', host: IP_ADDRESS} + OvnDbInternal: {protocol: tcp, port: '6642', host: IP_ADDRESS} PankoAdmin: {protocol: http, port: '8977', host: IP_ADDRESS} PankoInternal: {protocol: http, port: '8977', host: IP_ADDRESS} PankoPublic: {protocol: http, port: '8977', host: IP_ADDRESS}