From 81ca843ee7eada1d5d51412c5d1bb001317a2d7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Andr=C3=A9?= <m.andre@redhat.com> Date: Wed, 19 Sep 2018 15:22:20 +0200 Subject: [PATCH] Deploy openshift all in one in scenario009 Previously we were only deploying a master node. This commit adds the worker and infra service to the deployed node and configures it as an all-in-one node. In order to do so, we need to disable HAproxy when deploying in all-in-one as the HAproxy instance Openshift deploys on the infra node conflicts with the one we normally set up. They both bind ports 80 and 443. Also removes the useless ComputeServices parameter that only makes sense in a multinode environment. Change-Id: I6c7d1b3f2fa5c7b1d9cf695c9e021a4192e5d23a Depends-On: Ibc98e699d34dc6ab9ff6dce0d41f275b6403d983 Depends-On: I0aa878db62e28340d019cd92769f477189886571 --- ci/environments/scenario009-multinode.yaml | 25 +++++--------- extraconfig/services/openshift-master.yaml | 39 +++++++++++++++++----- roles/OpenShiftAllInOne.yaml | 5 +-- 3 files changed, 42 insertions(+), 27 deletions(-) diff --git a/ci/environments/scenario009-multinode.yaml b/ci/environments/scenario009-multinode.yaml index 5231ff54e6..7e7d4d7146 100644 --- a/ci/environments/scenario009-multinode.yaml +++ b/ci/environments/scenario009-multinode.yaml @@ -4,6 +4,7 @@ resource_registry: OS::TripleO::Compute::Net::SoftwareConfig: ../common/net-config-multinode.yaml OS::TripleO::Services::OpenShift::Master: ../../extraconfig/services/openshift-master.yaml OS::TripleO::Services::OpenShift::Worker: ../../extraconfig/services/openshift-worker.yaml + OS::TripleO::Services::OpenShift::Infra: ../../extraconfig/services/openshift-infra.yaml parameter_defaults: @@ -19,27 +20,17 @@ parameter_defaults: - OS::TripleO::Services::TripleoPackages - OS::TripleO::Services::TripleoFirewall - OS::TripleO::Services::Sshd - - OS::TripleO::Services::HAproxy - - OS::TripleO::Services::Keepalived + # NOTE(mandre) In all-in-one HAproxy conflicts with the one openshift deploys + # - OS::TripleO::Services::HAproxy + # - OS::TripleO::Services::Keepalived - OS::TripleO::Services::OpenShift::Master - ComputeServices: - - OS::TripleO::Services::DisableUnbound - - OS::TripleO::Services::CACerts - - OS::TripleO::Services::Docker - - OS::TripleO::Services::Kernel - - OS::TripleO::Services::Ntp - - OS::TripleO::Services::Snmp - - OS::TripleO::Services::Timezone - - OS::TripleO::Services::TripleoPackages - - OS::TripleO::Services::TripleoFirewall - - OS::TripleO::Services::Sshd - OS::TripleO::Services::OpenShift::Worker + - OS::TripleO::Services::OpenShift::Infra + Debug: true + OpenShiftNodeGroupName: 'node-config-all-in-one' + OpenShiftGlobalVariables: # NOTE(flaper87): Needed for the gate openshift_disable_check: package_availability,package_version,disk_availability,docker_storage,memory_availability,docker_image_availability - - # NOTE(mandre) keep this until overcloud-full has dbus-python - # https://review.openstack.org/#/c/574674/ - l_install_base_packages: true diff --git a/extraconfig/services/openshift-master.yaml b/extraconfig/services/openshift-master.yaml index b3c3cc3043..340b730817 100644 --- a/extraconfig/services/openshift-master.yaml +++ b/extraconfig/services/openshift-master.yaml @@ -63,11 +63,16 @@ parameters: default: {} description: Global Ansible variables for OpenShift-Ansible installer. type: json - # TODO(mandre) Add as a inventory group var OpenShiftMasterNodeVars: default: {} description: OpenShift node vars specific for the master nodes type: json + OpenShiftNodeGroupName: + default: node-config-all-in-one + description: The group the nodes belong to. + type: string + tags: + - role_specific DockerInsecureRegistryAddress: description: Optional. The IP Address and Port of an insecure docker namespace that will be configured in /etc/sysconfig/docker. @@ -98,6 +103,18 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - OpenShiftNodeGroupName: OpenShiftNodeGroupName + - values: {get_param: [RoleParameters]} + - values: + OpenShiftNodeGroupName: {get_param: OpenShiftNodeGroupName} + outputs: role_data: description: Role data for the Openshift Service @@ -139,6 +156,11 @@ outputs: when: step == '3' tags: openshift block: + - name: set role facts for generating inventory + set_fact: + tripleo_role_name: {get_param: RoleName} + tripleo_node_group_name: {get_attr: [RoleParametersValue, value, OpenShiftNodeGroupName]} + - name: set openshift global vars fact set_fact: openshift_global_vars: @@ -164,9 +186,6 @@ 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]} # Local Registry openshift_examples_modify_imagestreams: true oreg_url: @@ -186,10 +205,9 @@ outputs: - {get_param: OpenShiftGlobalVariables} tripleo_stack_action: {get_param: StackAction} openshift_master_node_vars: {get_param: OpenShiftMasterNodeVars} - - - name: set role facts for generating inventory - set_fact: - tripleo_role_name: {get_param: RoleName} + openshift_master_cluster_vars: + openshift_master_cluster_hostname: {get_param: [EndpointMap, OpenshiftPublic, host]} + openshift_master_cluster_public_hostname: {get_param: [EndpointMap, OpenshiftPublic, host]} # NOTE(flaper87): Check if origin-node is running in the openshift # nodes so we can flag the node as new later on. @@ -272,6 +290,11 @@ outputs: new_nodes: {} {% if groups['openshift_glusterfs'] | default([]) %}glusterfs: {}{% endif %} + - name: combine cluster setting + set_fact: + openshift_global_vars: "{{ openshift_global_vars | combine(openshift_master_cluster_vars) }}" + when: 'tripleo_node_group_name != "node-config-all-in-one"' + - name: generate openshift global vars copy: dest: "{{playbook_dir}}/openshift/global_vars.yml" diff --git a/roles/OpenShiftAllInOne.yaml b/roles/OpenShiftAllInOne.yaml index c509b29851..3756138a54 100644 --- a/roles/OpenShiftAllInOne.yaml +++ b/roles/OpenShiftAllInOne.yaml @@ -26,8 +26,9 @@ - OS::TripleO::Services::Ntp - OS::TripleO::Services::TripleoFirewall - OS::TripleO::Services::TripleoPackages - - OS::TripleO::Services::HAproxy - - OS::TripleO::Services::Keepalived + # NOTE(mandre) In all-in-one HAproxy conflicts with the one openshift deploys + # - OS::TripleO::Services::HAproxy + # - OS::TripleO::Services::Keepalived - OS::TripleO::Services::OpenShift::Master - OS::TripleO::Services::OpenShift::Worker - OS::TripleO::Services::OpenShift::Infra