diff --git a/cluster/gce/config-default.sh b/cluster/gce/config-default.sh index 38e04577e15..85f00f7724d 100755 --- a/cluster/gce/config-default.sh +++ b/cluster/gce/config-default.sh @@ -63,7 +63,7 @@ MIG_WAIT_UNTIL_STABLE_TIMEOUT=${MIG_WAIT_UNTIL_STABLE_TIMEOUT:-1800} MASTER_OS_DISTRIBUTION=${KUBE_MASTER_OS_DISTRIBUTION:-${KUBE_OS_DISTRIBUTION:-gci}} NODE_OS_DISTRIBUTION=${KUBE_NODE_OS_DISTRIBUTION:-${KUBE_OS_DISTRIBUTION:-gci}} -WINDOWS_NODE_OS_DISTRIBUTION=${WINDOWS_NODE_OS_DISTRIBUTION:-win1809} +WINDOWS_NODE_OS_DISTRIBUTION=${WINDOWS_NODE_OS_DISTRIBUTION:-win2019} if [[ "${MASTER_OS_DISTRIBUTION}" == "cos" ]]; then MASTER_OS_DISTRIBUTION="gci" diff --git a/cluster/gce/config-test.sh b/cluster/gce/config-test.sh index 900cdfb86bb..098dcc35cde 100755 --- a/cluster/gce/config-test.sh +++ b/cluster/gce/config-test.sh @@ -66,7 +66,7 @@ MIG_WAIT_UNTIL_STABLE_TIMEOUT=${MIG_WAIT_UNTIL_STABLE_TIMEOUT:-1800} MASTER_OS_DISTRIBUTION=${KUBE_MASTER_OS_DISTRIBUTION:-${KUBE_OS_DISTRIBUTION:-gci}} NODE_OS_DISTRIBUTION=${KUBE_NODE_OS_DISTRIBUTION:-${KUBE_OS_DISTRIBUTION:-gci}} -WINDOWS_NODE_OS_DISTRIBUTION=${WINDOWS_NODE_OS_DISTRIBUTION:-win1809} +WINDOWS_NODE_OS_DISTRIBUTION=${WINDOWS_NODE_OS_DISTRIBUTION:-win2019} if [[ "${MASTER_OS_DISTRIBUTION}" == "cos" ]]; then MASTER_OS_DISTRIBUTION="gci" diff --git a/cluster/gce/util.sh b/cluster/gce/util.sh index bc7ae41e986..1bde4f43bc2 100755 --- a/cluster/gce/util.sh +++ b/cluster/gce/util.sh @@ -83,14 +83,16 @@ function set-linux-node-image() { # Requires: # WINDOWS_NODE_OS_DISTRIBUTION # Sets: -# WINDOWS_NODE_IMAGE_FAMILY # WINDOWS_NODE_IMAGE_PROJECT +# WINDOWS_NODE_IMAGE function set-windows-node-image() { WINDOWS_NODE_IMAGE_PROJECT="windows-cloud" if [[ "${WINDOWS_NODE_OS_DISTRIBUTION}" == "win2019" ]]; then - WINDOWS_NODE_IMAGE_FAMILY="windows-2019-core-for-containers" + WINDOWS_NODE_IMAGE="windows-server-2019-dc-core-for-containers-v20200114" + elif [[ "${WINDOWS_NODE_OS_DISTRIBUTION}" == "win1909" ]]; then + WINDOWS_NODE_IMAGE="windows-server-1909-dc-core-for-containers-v20200114" elif [[ "${WINDOWS_NODE_OS_DISTRIBUTION}" == "win1809" ]]; then - WINDOWS_NODE_IMAGE_FAMILY="windows-1809-core-for-containers" + WINDOWS_NODE_IMAGE="windows-server-1809-dc-core-for-containers-v20200114" else echo "Unknown WINDOWS_NODE_OS_DISTRIBUTION ${WINDOWS_NODE_OS_DISTRIBUTION}" >&2 exit 1 @@ -2206,9 +2208,7 @@ function create-node-template() { if [[ "${os}" == 'linux' ]]; then node_image_flags="--image-project ${NODE_IMAGE_PROJECT} --image ${NODE_IMAGE}" elif [[ "${os}" == 'windows' ]]; then - # TODO(pjh): revert back to using WINDOWS_NODE_IMAGE_FAMILY instead of - # pinning to the v20190312 image once #76666 is resolved. - node_image_flags="--image-project ${WINDOWS_NODE_IMAGE_PROJECT} --image=windows-server-1809-dc-core-for-containers-v20190709" + node_image_flags="--image-project ${WINDOWS_NODE_IMAGE_PROJECT} --image ${WINDOWS_NODE_IMAGE}" else echo "Unknown OS ${os}" >&2 exit 1 diff --git a/cluster/gce/windows/README-GCE-Windows-kube-up.md b/cluster/gce/windows/README-GCE-Windows-kube-up.md index d6874dea738..db37d8e4581 100644 --- a/cluster/gce/windows/README-GCE-Windows-kube-up.md +++ b/cluster/gce/windows/README-GCE-Windows-kube-up.md @@ -57,7 +57,7 @@ make quick-release ### 2. Create a Kubernetes cluster You can create a regular Kubernetes cluster or an end-to-end test cluster.
-Only end-to-end test clusters support running the Kubernetes e2e tests (as both [e2e cluster creation](https://github.com/kubernetes/kubernetes/blob/b632eaddbaad9dc1430d214d506b72750bbb9f69/hack/e2e-internal/e2e-up.sh#L24) and [e2e test scripts](https://github.com/kubernetes/kubernetes/blob/b632eaddbaad9dc1430d214d506b72750bbb9f69/hack/ginkgo-e2e.sh#L42) are setup based on `cluster/gce/config-test.sh`), also enables some debugging features such as SSH access on the Windows nodes. +Only end-to-end test clusters support running the Kubernetes e2e tests (as both [e2e cluster creation](https://github.com/kubernetes/kubernetes/blob/b632eaddbaad9dc1430d214d506b72750bbb9f69/hack/e2e-internal/e2e-up.sh#L24) and [e2e test scripts](https://github.com/kubernetes/kubernetes/blob/b632eaddbaad9dc1430d214d506b72750bbb9f69/hack/ginkgo-e2e.sh#L42) are setup based on `cluster/gce/config-test.sh`), also enables some debugging features such as SSH access on the Windows nodes. Please make sure you set the environment variables properly following the instructions in the previous section. @@ -84,9 +84,12 @@ Now bring up a cluster using one of the following two methods: ``` # Invoke kube-up.sh with these environment variables: # PROJECT: text name of your GCP project. +# WINDOWS_NODE_OS_DISTRIBUTION: the Windows version you want your nodes to +# run, e.g. win2019 or win1909. # KUBE_UP_AUTOMATIC_CLEANUP (optional): cleans up existing cluster without # prompting. -PROJECT=${CLOUDSDK_CORE_PROJECT} KUBE_UP_AUTOMATIC_CLEANUP=true ./cluster/kube-up.sh +PROJECT=${CLOUDSDK_CORE_PROJECT} WINDOWS_NODE_OS_DISTRIBUTION=win2019 \ + KUBE_UP_AUTOMATIC_CLEANUP=true ./cluster/kube-up.sh ``` To teardown the cluster run: @@ -95,21 +98,23 @@ To teardown the cluster run: PROJECT=${CLOUDSDK_CORE_PROJECT} ./cluster/kube-down.sh ``` -#### 2b. Create a Kubernetes end-to-end (E2E) test cluster -If you have built your own release binaries following step 1, run the following -command: -``` -PROJECT=${CLOUDSDK_CORE_PROJECT} ./hack/e2e-internal/e2e-up.sh -``` +#### 2b. Create a Kubernetes end-to-end (E2E) test cluster +If you have built your own release binaries following step 1, run the following +command: +``` +PROJECT=${CLOUDSDK_CORE_PROJECT} WINDOWS_NODE_OS_DISTRIBUTION=win2019 \ + ./hack/e2e-internal/e2e-up.sh +``` -If any e2e cluster exists already, this command will prompt you whether tears down and creates a new one. To teardown existing e2e cluster only, run the command: -``` -PROJECT=${CLOUDSDK_CORE_PROJECT} ./hack/e2e-internal/e2e-down.sh -``` +If any e2e cluster exists already, this command will prompt you to tear down and +create a new one. To teardown existing e2e cluster only, run the command: +``` +PROJECT=${CLOUDSDK_CORE_PROJECT} ./hack/e2e-internal/e2e-down.sh +``` -No matter what type of cluster you chose to create, the result should be a -Kubernetes cluster with one Linux master node, `NUM_NODES` Linux worker nodes -and `NUM_WINDOWS_NODES` Windows worker nodes. +No matter what type of cluster you chose to create, the result should be a +Kubernetes cluster with one Linux master node, `NUM_NODES` Linux worker nodes +and `NUM_WINDOWS_NODES` Windows worker nodes. ## Validating the cluster