diff --git a/cluster/common.sh b/cluster/common.sh index 669e520483..eaf39abcb2 100755 --- a/cluster/common.sh +++ b/cluster/common.sh @@ -610,6 +610,8 @@ ENV_TIMESTAMP: $(yaml-quote $(date -u +%Y-%m-%dT%T%z)) INSTANCE_PREFIX: $(yaml-quote ${INSTANCE_PREFIX}) NODE_INSTANCE_PREFIX: $(yaml-quote ${NODE_INSTANCE_PREFIX}) NODE_TAGS: $(yaml-quote ${NODE_TAGS:-}) +NODE_NETWORK: $(yaml-quote ${NODE_NETWORK:-}) +NODE_SUBNETWORK: $(yaml-quote ${NODE_SUBNETWORK:-}) CLUSTER_IP_RANGE: $(yaml-quote ${CLUSTER_IP_RANGE:-10.244.0.0/16}) SERVER_BINARY_TAR_URL: $(yaml-quote ${server_binary_tar_url}) SERVER_BINARY_TAR_HASH: $(yaml-quote ${SERVER_BINARY_TAR_HASH}) diff --git a/cluster/gce/container-linux/configure-helper.sh b/cluster/gce/container-linux/configure-helper.sh index f4779165f1..ce28b0ece5 100755 --- a/cluster/gce/container-linux/configure-helper.sh +++ b/cluster/gce/container-linux/configure-helper.sh @@ -229,24 +229,36 @@ EOF api-endpoint = ${GCE_API_ENDPOINT} EOF fi - if [[ -n "${PROJECT_ID:-}" && -n "${TOKEN_URL:-}" && -n "${TOKEN_BODY:-}" && -n "${NODE_NETWORK:-}" ]]; then + if [[ -n "${TOKEN_URL:-}" && -n "${TOKEN_BODY:-}" ]]; then use_cloud_config="true" cat <>/etc/gce.conf token-url = ${TOKEN_URL} token-body = ${TOKEN_BODY} -project-id = ${PROJECT_ID} -network-name = ${NODE_NETWORK} EOF - if [[ -n "${NETWORK_PROJECT_ID:-}" ]]; then - cat <>/etc/gce.conf + fi + if [[ -n "${PROJECT_ID:-}" ]]; then + use_cloud_config="true" + cat <>/etc/gce.conf +project-id = ${PROJECT_ID} +EOF + fi + if [[ -n "${NETWORK_PROJECT_ID:-}" ]]; then + use_cloud_config="true" + cat <>/etc/gce.conf network-project-id = ${NETWORK_PROJECT_ID} EOF - fi - if [[ -n "${NODE_SUBNETWORK:-}" ]]; then - cat <>/etc/gce.conf + fi + if [[ -n "${NODE_NETWORK:-}" ]]; then + use_cloud_config="true" + cat <>/etc/gce.conf +network-name = ${NODE_NETWORK} +EOF + fi + if [[ -n "${NODE_SUBNETWORK:-}" ]]; then + use_cloud_config="true" + cat <>/etc/gce.conf subnetwork-name = ${NODE_SUBNETWORK} EOF - fi fi if [[ -n "${NODE_INSTANCE_PREFIX:-}" ]]; then use_cloud_config="true" diff --git a/cluster/gce/gci/configure-helper.sh b/cluster/gce/gci/configure-helper.sh index 863a2d6bac..c945fa09b8 100644 --- a/cluster/gce/gci/configure-helper.sh +++ b/cluster/gce/gci/configure-helper.sh @@ -389,24 +389,36 @@ EOF api-endpoint = ${GCE_API_ENDPOINT} EOF fi - if [[ -n "${PROJECT_ID:-}" && -n "${TOKEN_URL:-}" && -n "${TOKEN_BODY:-}" && -n "${NODE_NETWORK:-}" ]]; then + if [[ -n "${TOKEN_URL:-}" && -n "${TOKEN_BODY:-}" ]]; then use_cloud_config="true" cat <>/etc/gce.conf token-url = ${TOKEN_URL} token-body = ${TOKEN_BODY} -project-id = ${PROJECT_ID} -network-name = ${NODE_NETWORK} EOF - if [[ -n "${NETWORK_PROJECT_ID:-}" ]]; then - cat <>/etc/gce.conf + fi + if [[ -n "${PROJECT_ID:-}" ]]; then + use_cloud_config="true" + cat <>/etc/gce.conf +project-id = ${PROJECT_ID} +EOF + fi + if [[ -n "${NETWORK_PROJECT_ID:-}" ]]; then + use_cloud_config="true" + cat <>/etc/gce.conf network-project-id = ${NETWORK_PROJECT_ID} EOF - fi - if [[ -n "${NODE_SUBNETWORK:-}" ]]; then - cat <>/etc/gce.conf + fi + if [[ -n "${NODE_NETWORK:-}" ]]; then + use_cloud_config="true" + cat <>/etc/gce.conf +network-name = ${NODE_NETWORK} +EOF + fi + if [[ -n "${NODE_SUBNETWORK:-}" ]]; then + use_cloud_config="true" + cat <>/etc/gce.conf subnetwork-name = ${NODE_SUBNETWORK} EOF - fi fi if [[ -n "${NODE_INSTANCE_PREFIX:-}" ]]; then use_cloud_config="true" diff --git a/cluster/gce/util.sh b/cluster/gce/util.sh index fbb1caf3c2..13c6c896ad 100755 --- a/cluster/gce/util.sh +++ b/cluster/gce/util.sh @@ -86,6 +86,7 @@ fi NODE_INSTANCE_PREFIX="${INSTANCE_PREFIX}-minion" NODE_TAGS="${NODE_TAG}" +NODE_NETWORK="${NETWORK}" ALLOCATE_NODE_CIDRS=true PREEXISTING_NETWORK=false @@ -806,12 +807,28 @@ function expand-default-subnetwork() { --quiet } + +# Vars set: +# NODE_SUBNETWORK function create-subnetworks() { + NODE_SUBNETWORK=$(gcloud beta compute networks subnets list \ + --network=${NETWORK} \ + --regions=${REGION} \ + --project=${PROJECT} \ + --limit=1 \ + --format='value(name)' 2>/dev/null) + + if [[ -z ${NODE_SUBNETWORK:-} ]]; then + echo "${color_red}Could not find subnetwork with region ${REGION}, network ${NETWORK}, and project ${PROJECT}" + exit 1 + fi + echo "Found subnet for region ${REGION} in network ${NETWORK}: ${NODE_SUBNETWORK}" + case ${ENABLE_IP_ALIASES} in true) echo "IP aliases are enabled. Creating subnetworks.";; false) echo "IP aliases are disabled." - if [[ "${ENABLE_BIG_CLUSTER_SUBNETS}" = "true" ]]; then + if [[ "${ENABLE_BIG_CLUSTER_SUBNETS}" = "true" ]]; then if [[ "${PREEXISTING_NETWORK}" != "true" ]]; then expand-default-subnetwork else @@ -823,6 +840,9 @@ function create-subnetworks() { exit 1;; esac + NODE_SUBNETWORK=${IP_ALIAS_SUBNETWORK} + echo "Using IP Aliases subnet ${NODE_SUBNETWORK}" + # Look for the alias subnet, it must exist and have a secondary # range configured. local subnet=$(gcloud beta compute networks subnets describe \