From 4eef540876aecdb9fd954020b5569afccffea682 Mon Sep 17 00:00:00 2001 From: Jamie Hannaford Date: Tue, 7 Mar 2017 12:46:53 +0100 Subject: [PATCH] Allow minion floating IPs to be optional --- cluster/openstack-heat/config-default.sh | 3 +++ .../openstack-heat/kubernetes-heat/kubecluster.yaml | 6 ++++++ .../openstack-heat/kubernetes-heat/kubeminion.yaml | 11 +++++++++++ cluster/openstack-heat/util.sh | 1 + 4 files changed, 21 insertions(+) diff --git a/cluster/openstack-heat/config-default.sh b/cluster/openstack-heat/config-default.sh index 8f1bb6ff0f0..66702a3e9f3 100644 --- a/cluster/openstack-heat/config-default.sh +++ b/cluster/openstack-heat/config-default.sh @@ -73,3 +73,6 @@ SOCKS_PROXY=${SOCKS_PROXY:-} # IPs and Domains that bypass the proxy. NO_PROXY=${NO_PROXY:-} + +# Whether to assign floating IPs to minions +ASSIGN_FLOATING_IP=${ASSIGN_FLOATING_IP:-true} diff --git a/cluster/openstack-heat/kubernetes-heat/kubecluster.yaml b/cluster/openstack-heat/kubernetes-heat/kubecluster.yaml index 984a1799fad..c3d34e0641b 100644 --- a/cluster/openstack-heat/kubernetes-heat/kubecluster.yaml +++ b/cluster/openstack-heat/kubernetes-heat/kubecluster.yaml @@ -161,6 +161,11 @@ parameters: type: string description: Comma seperated list of domains/addresses that bypass proxying. default: localhost + + assign_floating_ip: + type: boolean + description: Indicates whether floating IPs will be generated for minions + default: true resources: @@ -435,6 +440,7 @@ resources: https_proxy: {get_param: https_proxy } socks_proxy: {get_param: socks_proxy } no_proxy: {get_param: no_proxy } + assign_floating_ip: {get_param: assign_floating_ip } min_size: {get_param: number_of_minions} desired_capacity: {get_param: number_of_minions} max_size: {get_param: max_number_of_minions} diff --git a/cluster/openstack-heat/kubernetes-heat/kubeminion.yaml b/cluster/openstack-heat/kubernetes-heat/kubeminion.yaml index 3dc6d82c0d9..591bbad7049 100644 --- a/cluster/openstack-heat/kubernetes-heat/kubeminion.yaml +++ b/cluster/openstack-heat/kubernetes-heat/kubeminion.yaml @@ -100,6 +100,11 @@ parameters: description: Comma seperated list of domains/addresses that bypass proxying. default: localhost + assign_floating_ip: + type: boolean + description: Indicates whether floating IPs will be generated for minions + default: true + # The following are all generated in the parent template. kube_master_ip: type: string @@ -127,6 +132,9 @@ parameters: secgroup_node: type: string +conditions: + assign_floating_ip: {equals : [{get_param: assign_floating_ip}, true]} + resources: minion_wait_handle: @@ -294,10 +302,13 @@ resources: properties: floating_network: {get_param: external_network} port_id: {get_resource: kube_minion_eth0} + condition: assign_floating_ip outputs: kube_minion_ip: value: {get_attr: [kube_minion_eth0, fixed_ips, 0, ip_address]} + kube_minion_external_ip: value: {get_attr: [kube_minion_floating, floating_ip_address]} + condition: assign_floating_ip diff --git a/cluster/openstack-heat/util.sh b/cluster/openstack-heat/util.sh index 832b007e05b..8d06e415fae 100644 --- a/cluster/openstack-heat/util.sh +++ b/cluster/openstack-heat/util.sh @@ -233,6 +233,7 @@ function run-heat-script() { --parameter https_proxy="${HTTPS_PROXY}" \ --parameter socks_proxy="${SOCKS_PROXY}" \ --parameter no_proxy="${NO_PROXY}" \ + --parameter assign_floating_ip="${ASSIGN_FLOATING_IP}" \ --template kubecluster.yaml \ ${STACK_NAME} )