From 99b8119d985db03e16022b813901c1de7f1b5ca4 Mon Sep 17 00:00:00 2001 From: Flavio Percoco Date: Mon, 2 Jul 2018 17:38:26 +0200 Subject: [PATCH] HA support for OpenShift The OSA assisted HA deployment is not recommended for production environments, besides it being limited. Therefore, we're relying on our deployment of HAproxy + Keepalived to provide HA on top of OpenShift in addition to adding more OpenShift nodes. Depends-On: Ib573758b515264d1dda90cc9de61f4fa6659dc7d Change-Id: I7ab677e4803e9df5f6641204cb0b6ccc5b1eb79f --- ci/environments/scenario009-multinode.yaml | 2 + environments/no-tls-endpoints-public-ip.yaml | 3 + environments/ssl/no-tls-endpoints-public.yaml | 3 + .../ssl/tls-endpoints-public-dns.yaml | 3 + environments/ssl/tls-endpoints-public-ip.yaml | 3 + .../ssl/tls-everywhere-endpoints-dns.yaml | 3 + environments/tls-endpoints-public-dns.yaml | 3 + environments/tls-endpoints-public-ip.yaml | 3 + .../tls-everywhere-endpoints-dns.yaml | 3 + extraconfig/services/openshift-master.yaml | 16 +- extraconfig/services/openshift-worker.yaml | 11 +- network/endpoints/endpoint_data.yaml | 9 + network/endpoints/endpoint_map.yaml | 246 ++++++++++++++++++ network/service_net_map.j2.yaml | 1 + roles/OpenShiftMaster.yaml | 31 +++ roles/OpenShiftWorker.yaml | 23 ++ sample-env-generator/ssl.yaml | 12 + 17 files changed, 365 insertions(+), 10 deletions(-) create mode 100644 roles/OpenShiftMaster.yaml create mode 100644 roles/OpenShiftWorker.yaml diff --git a/ci/environments/scenario009-multinode.yaml b/ci/environments/scenario009-multinode.yaml index c97858d128..c832f55576 100644 --- a/ci/environments/scenario009-multinode.yaml +++ b/ci/environments/scenario009-multinode.yaml @@ -18,6 +18,8 @@ parameter_defaults: - OS::TripleO::Services::TripleoPackages - OS::TripleO::Services::TripleoFirewall - OS::TripleO::Services::Sshd + - OS::TripleO::Services::HAproxy + - OS::TripleO::Services::Keepalived - OS::TripleO::Services::OpenShift::Master - OS::TripleO::Services::OpenShift::Worker ComputeServices: diff --git a/environments/no-tls-endpoints-public-ip.yaml b/environments/no-tls-endpoints-public-ip.yaml index 508e9353c8..dea839f274 100644 --- a/environments/no-tls-endpoints-public-ip.yaml +++ b/environments/no-tls-endpoints-public-ip.yaml @@ -91,6 +91,9 @@ parameter_defaults: OctaviaPublic: {protocol: http, port: '9876', host: IP_ADDRESS} OpenDaylightAdmin: {protocol: http, port: '8081', host: IP_ADDRESS} OpenDaylightInternal: {protocol: http, port: '8081', host: IP_ADDRESS} + OpenshiftAdmin: {protocol: http, port: '8443', host: IP_ADDRESS} + OpenshiftInternal: {protocol: http, port: '8443', host: IP_ADDRESS} + OpenshiftPublic: {protocol: http, port: '8443', 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/no-tls-endpoints-public.yaml b/environments/ssl/no-tls-endpoints-public.yaml index 57c4738313..c2ce10590a 100644 --- a/environments/ssl/no-tls-endpoints-public.yaml +++ b/environments/ssl/no-tls-endpoints-public.yaml @@ -94,6 +94,9 @@ parameter_defaults: OctaviaPublic: {protocol: http, port: '9876', host: IP_ADDRESS} OpenDaylightAdmin: {protocol: http, port: '8081', host: IP_ADDRESS} OpenDaylightInternal: {protocol: http, port: '8081', host: IP_ADDRESS} + OpenshiftAdmin: {protocol: http, port: '8443', host: IP_ADDRESS} + OpenshiftInternal: {protocol: http, port: '8443', host: IP_ADDRESS} + OpenshiftPublic: {protocol: http, port: '8443', 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 dd08e61a2a..fba55e7f36 100644 --- a/environments/ssl/tls-endpoints-public-dns.yaml +++ b/environments/ssl/tls-endpoints-public-dns.yaml @@ -87,6 +87,9 @@ parameter_defaults: OctaviaPublic: {protocol: 'https', port: '13876', host: 'CLOUDNAME'} OpenDaylightAdmin: {protocol: 'http', port: '8081', host: 'IP_ADDRESS'} OpenDaylightInternal: {protocol: 'http', port: '8081', host: 'IP_ADDRESS'} + OpenshiftAdmin: {protocol: 'http', port: '8443', host: 'IP_ADDRESS'} + OpenshiftInternal: {protocol: 'http', port: '8443', host: 'IP_ADDRESS'} + OpenshiftPublic: {protocol: 'http', port: '8443', 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 5729fd029d..7a39eb1cc3 100644 --- a/environments/ssl/tls-endpoints-public-ip.yaml +++ b/environments/ssl/tls-endpoints-public-ip.yaml @@ -87,6 +87,9 @@ parameter_defaults: OctaviaPublic: {protocol: 'https', port: '13876', host: 'IP_ADDRESS'} OpenDaylightAdmin: {protocol: 'http', port: '8081', host: 'IP_ADDRESS'} OpenDaylightInternal: {protocol: 'http', port: '8081', host: 'IP_ADDRESS'} + OpenshiftAdmin: {protocol: 'http', port: '8443', host: 'IP_ADDRESS'} + OpenshiftInternal: {protocol: 'http', port: '8443', host: 'IP_ADDRESS'} + OpenshiftPublic: {protocol: 'http', port: '8443', 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 9837850eb7..be148229f3 100644 --- a/environments/ssl/tls-everywhere-endpoints-dns.yaml +++ b/environments/ssl/tls-everywhere-endpoints-dns.yaml @@ -87,6 +87,9 @@ parameter_defaults: OctaviaPublic: {protocol: 'https', port: '13876', host: 'CLOUDNAME'} OpenDaylightAdmin: {protocol: 'https', port: '8081', host: 'CLOUDNAME'} OpenDaylightInternal: {protocol: 'https', port: '8081', host: 'CLOUDNAME'} + OpenshiftAdmin: {protocol: 'https', port: '8443', host: 'CLOUDNAME'} + OpenshiftInternal: {protocol: 'https', port: '8443', host: 'CLOUDNAME'} + OpenshiftPublic: {protocol: 'https', port: '8443', host: 'CLOUDNAME'} PankoAdmin: {protocol: 'https', port: '8977', host: 'CLOUDNAME'} PankoInternal: {protocol: 'https', port: '8977', host: 'CLOUDNAME'} PankoPublic: {protocol: 'https', port: '13977', host: 'CLOUDNAME'} diff --git a/environments/tls-endpoints-public-dns.yaml b/environments/tls-endpoints-public-dns.yaml index 43dc1cbbb6..444c92c46f 100644 --- a/environments/tls-endpoints-public-dns.yaml +++ b/environments/tls-endpoints-public-dns.yaml @@ -81,6 +81,9 @@ parameter_defaults: OctaviaPublic: {protocol: 'https', port: '13876', host: 'CLOUDNAME'} OpenDaylightAdmin: {protocol: 'http', port: '8081', host: 'IP_ADDRESS'} OpenDaylightInternal: {protocol: 'http', port: '8081', host: 'IP_ADDRESS'} + OpenshiftAdmin: {protocol: 'http', port: '8443', host: 'IP_ADDRESS'} + OpenshiftInternal: {protocol: 'http', port: '8443', host: 'IP_ADDRESS'} + OpenshiftPublic: {protocol: 'http', port: '8443', 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/tls-endpoints-public-ip.yaml b/environments/tls-endpoints-public-ip.yaml index 5319ce2e36..a7dc298cea 100644 --- a/environments/tls-endpoints-public-ip.yaml +++ b/environments/tls-endpoints-public-ip.yaml @@ -81,6 +81,9 @@ parameter_defaults: OctaviaPublic: {protocol: 'https', port: '13876', host: 'IP_ADDRESS'} OpenDaylightAdmin: {protocol: 'http', port: '8081', host: 'IP_ADDRESS'} OpenDaylightInternal: {protocol: 'http', port: '8081', host: 'IP_ADDRESS'} + OpenshiftAdmin: {protocol: 'http', port: '8443', host: 'IP_ADDRESS'} + OpenshiftInternal: {protocol: 'http', port: '8443', host: 'IP_ADDRESS'} + OpenshiftPublic: {protocol: 'http', port: '8443', 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/tls-everywhere-endpoints-dns.yaml b/environments/tls-everywhere-endpoints-dns.yaml index 48b48f59c6..96a7fa69e3 100644 --- a/environments/tls-everywhere-endpoints-dns.yaml +++ b/environments/tls-everywhere-endpoints-dns.yaml @@ -77,6 +77,9 @@ parameter_defaults: OctaviaPublic: {protocol: 'https', port: '13876', host: 'CLOUDNAME'} OpenDaylightAdmin: {protocol: 'https', port: '8081', host: 'CLOUDNAME'} OpenDaylightInternal: {protocol: 'https', port: '8081', host: 'CLOUDNAME'} + OpenshiftAdmin: {protocol: 'https', port: '8443', host: 'CLOUDNAME'} + OpenshiftInternal: {protocol: 'https', port: '8443', host: 'CLOUDNAME'} + OpenshiftPublic: {protocol: 'https', port: '8443', host: 'CLOUDNAME'} PankoAdmin: {protocol: 'https', port: '8977', host: 'CLOUDNAME'} PankoInternal: {protocol: 'https', port: '8977', host: 'CLOUDNAME'} PankoPublic: {protocol: 'https', port: '13977', host: 'CLOUDNAME'} diff --git a/extraconfig/services/openshift-master.yaml b/extraconfig/services/openshift-master.yaml index 713db87e7a..95a96fa738 100644 --- a/extraconfig/services/openshift-master.yaml +++ b/extraconfig/services/openshift-master.yaml @@ -106,11 +106,15 @@ outputs: skip_version: true # Fatal and Errors only debug_level: 0 + openshift_master_cluster_method: native + openshift_master_cluster_hostname: {get_param: [EndpointMap, OpenshiftPublic, host]} + openshift_master_cluster_public_hostname: {get_param: [EndpointMap, OpenshiftPublic, host]} - {get_param: OpenShiftGlobalVariables} tripleo_role_name: {get_param: RoleName} tripleo_stack_action: {get_param: StackAction} openshift_master_node_vars: {get_param: OpenShiftMasterNodeVars} openshift_worker_node_vars: {get_param: OpenShiftWorkerNodeVars} + openshift_master_network: {get_param: [ServiceNetMap, OpenshiftMasterNetwork]} # NOTE(flaper87): Check if origin-node is running # in the openshift nodes so we can flag the node @@ -144,11 +148,13 @@ outputs: ansible_user: "{{ hostvars.raw_get(item)['ansible_user'] | default(hostvars.raw_get(item)['ansible_ssh_user']) | default('root') }}" ansible_host: "{{ hostvars.raw_get(item)['ansible_host'] | default(item) }}" ansible_become: true - etcd_ip: "{{hostvars.raw_get(item)['ctlplane_ip']}}" - openshift_ip: "{{hostvars.raw_get(item)['ctlplane_ip']}}" - openshift_public_ip: "{{hostvars.raw_get(item)['external_ip'] | default(hostvars.raw_get(item)['ctlplane_ip'])}}" - openshift_hostname: "{{hostvars.raw_get(item)['ctlplane_ip']}}" - openshift_public_hostname: "{{hostvars.raw_get(item)['external_ip'] | default(hostvars.raw_get(item)['ctlplane_ip'])}}" + etcd_ip: "{{hostvars.raw_get(item)[openshift_master_network + '_ip']}}" + openshift_ip: "{{hostvars.raw_get(item)[openshift_master_network + '_ip']}}" + openshift_master_bind_addr: "{{hostvars.raw_get(item)[openshift_master_network + '_ip']}}" + openshift_public_ip: "{{hostvars.raw_get(item)[openshift_master_network + '_ip']}}" + openshift_hostname: "{{hostvars.raw_get(item)[openshift_master_network + '_ip']}}" + openshift_public_hostname: "{{hostvars.raw_get(item)[openshift_master_network + '_ip']}}" + register: all_master_nodes with_items: "{{groups[tripleo_role_name] | default([]) }}" diff --git a/extraconfig/services/openshift-worker.yaml b/extraconfig/services/openshift-worker.yaml index 74d9d47056..f28111098c 100644 --- a/extraconfig/services/openshift-worker.yaml +++ b/extraconfig/services/openshift-worker.yaml @@ -70,6 +70,7 @@ outputs: - name: set global vars facts set_fact: tripleo_role_name: {get_param: RoleName} + openshift_master_network: {get_param: [ServiceNetMap, OpenshiftMasterNetwork]} openshift_worker_scaleup_playbook_path: {get_param: OpenShiftWorkerScaleupPlaybook} - name: Check if origin-node is running @@ -89,11 +90,11 @@ outputs: ansible_user: "{{ hostvars.raw_get(item)['ansible_user'] | default(hostvars.raw_get(item)['ansible_ssh_user']) | default('root') }}" ansible_host: "{{ hostvars.raw_get(item)['ansible_host'] | default(item) }}" ansible_become: true - etcd_ip: "{{hostvars.raw_get(item)['ctlplane_ip']}}" - openshift_ip: "{{hostvars.raw_get(item)['ctlplane_ip']}}" - openshift_public_ip: "{{hostvars.raw_get(item)['external_ip'] | default(hostvars.raw_get(item)['ctlplane_ip'])}}" - openshift_hostname: "{{hostvars.raw_get(item)['ctlplane_ip']}}" - openshift_public_hostname: "{{hostvars.raw_get(item)['external_ip'] | default(hostvars.raw_get(item)['ctlplane_ip'])}}" + etcd_ip: "{{hostvars.raw_get(item)[openshift_master_network + '_ip']}}" + openshift_ip: "{{hostvars.raw_get(item)[openshift_master_network + '_ip']}}" + openshift_public_ip: "{{hostvars.raw_get(item)[openshift_master_network + '_ip']}}" + openshift_hostname: "{{hostvars.raw_get(item)[openshift_master_network + '_ip']}}" + openshift_public_hostname: "{{hostvars.raw_get(item)[openshift_master_network + '_ip']}}" openshift_schedulable: true openshift_node_labels: region: 'infra' diff --git a/network/endpoints/endpoint_data.yaml b/network/endpoints/endpoint_data.yaml index 73d3e6f5af..cd2eddcd50 100644 --- a/network/endpoints/endpoint_data.yaml +++ b/network/endpoints/endpoint_data.yaml @@ -261,6 +261,15 @@ NovaVNCProxy: net_param: NovaApi port: 6080 +Openshift: + Internal: + net_param: OpenshiftMaster + Public: + net_param: Public + Admin: + net_param: OpenshiftMaster + port: 8443 + Swift: Internal: net_param: SwiftProxy diff --git a/network/endpoints/endpoint_map.yaml b/network/endpoints/endpoint_map.yaml index 1346b94c4b..98f08cd60f 100644 --- a/network/endpoints/endpoint_map.yaml +++ b/network/endpoints/endpoint_map.yaml @@ -94,6 +94,9 @@ parameters: OctaviaPublic: {protocol: http, port: '9876', host: IP_ADDRESS} OpenDaylightAdmin: {protocol: http, port: '8081', host: IP_ADDRESS} OpenDaylightInternal: {protocol: http, port: '8081', host: IP_ADDRESS} + OpenshiftAdmin: {protocol: http, port: '8443', host: IP_ADDRESS} + OpenshiftInternal: {protocol: http, port: '8443', host: IP_ADDRESS} + OpenshiftPublic: {protocol: http, port: '8443', 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} @@ -7277,6 +7280,249 @@ outputs: template: NETWORK_uri port: get_param: [EndpointMap, OpenDaylightInternal, port] + OpenshiftAdmin: + host: + str_replace: + template: + get_param: [EndpointMap, OpenshiftAdmin, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, OpenshiftMasterNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - str_replace: + params: + NETWORK: + get_param: [ServiceNetMap, OpenshiftMasterNetwork] + template: NETWORK_uri + host_nobrackets: + str_replace: + template: + get_param: [EndpointMap, OpenshiftAdmin, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, OpenshiftMasterNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - get_param: [ServiceNetMap, OpenshiftMasterNetwork] + port: + get_param: [EndpointMap, OpenshiftAdmin, port] + protocol: + get_param: [EndpointMap, OpenshiftAdmin, protocol] + uri: + make_url: + scheme: + get_param: [EndpointMap, OpenshiftAdmin, protocol] + host: + str_replace: + template: + get_param: [EndpointMap, OpenshiftAdmin, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, OpenshiftMasterNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - str_replace: + params: + NETWORK: + get_param: [ServiceNetMap, OpenshiftMasterNetwork] + template: NETWORK_uri + port: + get_param: [EndpointMap, OpenshiftAdmin, port] + uri_no_suffix: + make_url: + scheme: + get_param: [EndpointMap, OpenshiftAdmin, protocol] + host: + str_replace: + template: + get_param: [EndpointMap, OpenshiftAdmin, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, OpenshiftMasterNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - str_replace: + params: + NETWORK: + get_param: [ServiceNetMap, OpenshiftMasterNetwork] + template: NETWORK_uri + port: + get_param: [EndpointMap, OpenshiftAdmin, port] + OpenshiftInternal: + host: + str_replace: + template: + get_param: [EndpointMap, OpenshiftInternal, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, OpenshiftMasterNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - str_replace: + params: + NETWORK: + get_param: [ServiceNetMap, OpenshiftMasterNetwork] + template: NETWORK_uri + host_nobrackets: + str_replace: + template: + get_param: [EndpointMap, OpenshiftInternal, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, OpenshiftMasterNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - get_param: [ServiceNetMap, OpenshiftMasterNetwork] + port: + get_param: [EndpointMap, OpenshiftInternal, port] + protocol: + get_param: [EndpointMap, OpenshiftInternal, protocol] + uri: + make_url: + scheme: + get_param: [EndpointMap, OpenshiftInternal, protocol] + host: + str_replace: + template: + get_param: [EndpointMap, OpenshiftInternal, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, OpenshiftMasterNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - str_replace: + params: + NETWORK: + get_param: [ServiceNetMap, OpenshiftMasterNetwork] + template: NETWORK_uri + port: + get_param: [EndpointMap, OpenshiftInternal, port] + uri_no_suffix: + make_url: + scheme: + get_param: [EndpointMap, OpenshiftInternal, protocol] + host: + str_replace: + template: + get_param: [EndpointMap, OpenshiftInternal, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, OpenshiftMasterNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - str_replace: + params: + NETWORK: + get_param: [ServiceNetMap, OpenshiftMasterNetwork] + template: NETWORK_uri + port: + get_param: [EndpointMap, OpenshiftInternal, port] + OpenshiftPublic: + host: + str_replace: + template: + get_param: [EndpointMap, OpenshiftPublic, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, PublicNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - str_replace: + params: + NETWORK: + get_param: [ServiceNetMap, PublicNetwork] + template: NETWORK_uri + host_nobrackets: + str_replace: + template: + get_param: [EndpointMap, OpenshiftPublic, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, PublicNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - get_param: [ServiceNetMap, PublicNetwork] + port: + get_param: [EndpointMap, OpenshiftPublic, port] + protocol: + get_param: [EndpointMap, OpenshiftPublic, protocol] + uri: + make_url: + scheme: + get_param: [EndpointMap, OpenshiftPublic, protocol] + host: + str_replace: + template: + get_param: [EndpointMap, OpenshiftPublic, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, PublicNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - str_replace: + params: + NETWORK: + get_param: [ServiceNetMap, PublicNetwork] + template: NETWORK_uri + port: + get_param: [EndpointMap, OpenshiftPublic, port] + uri_no_suffix: + make_url: + scheme: + get_param: [EndpointMap, OpenshiftPublic, protocol] + host: + str_replace: + template: + get_param: [EndpointMap, OpenshiftPublic, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, PublicNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - str_replace: + params: + NETWORK: + get_param: [ServiceNetMap, PublicNetwork] + template: NETWORK_uri + port: + get_param: [EndpointMap, OpenshiftPublic, port] PankoAdmin: host: str_replace: diff --git a/network/service_net_map.j2.yaml b/network/service_net_map.j2.yaml index 264383bfd2..4c663dbb63 100644 --- a/network/service_net_map.j2.yaml +++ b/network/service_net_map.j2.yaml @@ -85,6 +85,7 @@ parameters: # for backwards compatibility, all other roles default to internal_api CephStorageHostnameResolveNetwork: storage EtcdNetwork: internal_api + OpenshiftMasterNetwork: internal_api {% for role in roles if role.name != 'CephStorage' %} {{role.name}}HostnameResolveNetwork: internal_api {% endfor %} diff --git a/roles/OpenShiftMaster.yaml b/roles/OpenShiftMaster.yaml new file mode 100644 index 0000000000..ee42e85a5e --- /dev/null +++ b/roles/OpenShiftMaster.yaml @@ -0,0 +1,31 @@ +############################################################################### +# Role: OpenShiftMaster # +############################################################################### +- name: OpenShiftMaster + description: | + OpenShiftMaster role + CountDefault: 1 + tags: + - primary + - controller + - openshift + networks: + - External + - InternalApi + - Storage + - StorageMgmt + - Tenant + # For systems with both IPv4 and IPv6, you may specify a gateway network for + # each, such as ['ControlPlane', 'External'] + default_route_networks: ['External'] + ServicesDefault: + - OS::TripleO::Services::Docker + - OS::TripleO::Services::Sshd + - OS::TripleO::Services::Ntp + - OS::TripleO::Services::TripleoFirewall + - OS::TripleO::Services::TripleoPackages + - OS::TripleO::Services::HAproxy + - OS::TripleO::Services::Keepalived + - OS::TripleO::Services::OpenShift::Master + - OS::TripleO::Services::OpenShift::Worker + - OS::TripleO::Services::OpenShift::GlusterFS diff --git a/roles/OpenShiftWorker.yaml b/roles/OpenShiftWorker.yaml new file mode 100644 index 0000000000..07ad17ed12 --- /dev/null +++ b/roles/OpenShiftWorker.yaml @@ -0,0 +1,23 @@ +############################################################################### +# Role: OpenShiftWorker # +############################################################################### +- name: OpenShiftWorker + description: | + OpenShiftWorker role + CountDefault: 1 + tags: + - openshift + networks: + - InternalApi + - Storage + - StorageMgmt + - Tenant + # For systems with both IPv4 and IPv6, you may specify a gateway network for + # each, such as ['ControlPlane', 'External'] + default_route_networks: ['ControlPlane'] + ServicesDefault: + - OS::TripleO::Services::Docker + - OS::TripleO::Services::Sshd + - OS::TripleO::Services::Ntp + - OS::TripleO::Services::OpenShift::Worker + - OS::TripleO::Services::OpenShift::GlusterFS diff --git a/sample-env-generator/ssl.yaml b/sample-env-generator/ssl.yaml index 346f7a7c80..29fa4fadce 100644 --- a/sample-env-generator/ssl.yaml +++ b/sample-env-generator/ssl.yaml @@ -182,6 +182,9 @@ environments: OctaviaPublic: {protocol: 'https', port: '13876', host: 'IP_ADDRESS'} OpenDaylightAdmin: {protocol: 'http', port: '8081', host: 'IP_ADDRESS'} OpenDaylightInternal: {protocol: 'http', port: '8081', host: 'IP_ADDRESS'} + OpenshiftAdmin: {protocol: 'http', port: '8443', host: 'IP_ADDRESS'} + OpenshiftInternal: {protocol: 'http', port: '8443', host: 'IP_ADDRESS'} + OpenshiftPublic: {protocol: 'http', port: '8443', 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'} @@ -295,6 +298,9 @@ environments: OctaviaPublic: {protocol: 'https', port: '13876', host: 'CLOUDNAME'} OpenDaylightAdmin: {protocol: 'http', port: '8081', host: 'IP_ADDRESS'} OpenDaylightInternal: {protocol: 'http', port: '8081', host: 'IP_ADDRESS'} + OpenshiftAdmin: {protocol: 'http', port: '8443', host: 'IP_ADDRESS'} + OpenshiftInternal: {protocol: 'http', port: '8443', host: 'IP_ADDRESS'} + OpenshiftPublic: {protocol: 'http', port: '8443', 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'} @@ -408,6 +414,9 @@ environments: OctaviaPublic: {protocol: 'https', port: '13876', host: 'CLOUDNAME'} OpenDaylightAdmin: {protocol: 'https', port: '8081', host: 'CLOUDNAME'} OpenDaylightInternal: {protocol: 'https', port: '8081', host: 'CLOUDNAME'} + OpenshiftAdmin: {protocol: 'https', port: '8443', host: 'CLOUDNAME'} + OpenshiftInternal: {protocol: 'https', port: '8443', host: 'CLOUDNAME'} + OpenshiftPublic: {protocol: 'https', port: '8443', host: 'CLOUDNAME'} PankoAdmin: {protocol: 'https', port: '8977', host: 'CLOUDNAME'} PankoInternal: {protocol: 'https', port: '8977', host: 'CLOUDNAME'} PankoPublic: {protocol: 'https', port: '13977', host: 'CLOUDNAME'} @@ -534,6 +543,9 @@ environments: OctaviaPublic: {protocol: http, port: '9876', host: IP_ADDRESS} OpenDaylightAdmin: {protocol: http, port: '8081', host: IP_ADDRESS} OpenDaylightInternal: {protocol: http, port: '8081', host: IP_ADDRESS} + OpenshiftAdmin: {protocol: http, port: '8443', host: IP_ADDRESS} + OpenshiftInternal: {protocol: http, port: '8443', host: IP_ADDRESS} + OpenshiftPublic: {protocol: http, port: '8443', 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}