diff --git a/cluster/gce/config-default.sh b/cluster/gce/config-default.sh index ccbcbd3708a..8fa1ddcca21 100755 --- a/cluster/gce/config-default.sh +++ b/cluster/gce/config-default.sh @@ -521,3 +521,6 @@ export GCE_PRIVATE_CLUSTER_PORTS_PER_VM="${KUBE_GCE_PRIVATE_CLUSTER_PORTS_PER_VM # Optional: Create apiserver konnectivity server and agent. export ENABLE_EGRESS_VIA_KONNECTIVITY_SERVICE="${KUBE_ENABLE_EGRESS_VIA_KONNECTIVITY_SERVICE:-false}" export KONNECTIVITY_SERVICE_PROXY_PROTOCOL_MODE="${KUBE_KONNECTIVITY_SERVICE_PROXY_PROTOCOL_MODE:-grpc}" + +# Optional: Enable Windows CSI-Proxy +export ENABLE_CSI_PROXY="${ENABLE_CSI_PROXY:-true}" diff --git a/cluster/gce/config-test.sh b/cluster/gce/config-test.sh index 1e564f30c69..d884354b6a6 100755 --- a/cluster/gce/config-test.sh +++ b/cluster/gce/config-test.sh @@ -568,3 +568,6 @@ export GCE_PRIVATE_CLUSTER_PORTS_PER_VM=${KUBE_GCE_PRIVATE_CLUSTER_PORTS_PER_VM: export ETCD_LISTEN_CLIENT_IP=0.0.0.0 export GCE_UPLOAD_KUBCONFIG_TO_MASTER_METADATA=true + +# Optoinal: Enable Windows CSI-Proxy +export ENABLE_CSI_PROXY="${ENABLE_CSI_PROXY:-true}" diff --git a/cluster/gce/util.sh b/cluster/gce/util.sh index 4c96f6e1883..27f56737487 100755 --- a/cluster/gce/util.sh +++ b/cluster/gce/util.sh @@ -1530,6 +1530,7 @@ NODE_BINARY_TAR_URL: $(yaml-quote "${NODE_BINARY_TAR_URL}") NODE_BINARY_TAR_HASH: $(yaml-quote "${NODE_BINARY_TAR_HASH}") CSI_PROXY_STORAGE_PATH: $(yaml-quote "${CSI_PROXY_STORAGE_PATH}") CSI_PROXY_VERSION: $(yaml-quote "${CSI_PROXY_VERSION}") +ENABLE_CSI_PROXY: $(yaml-quote "${ENABLE_CSI_PROXY}") K8S_DIR: $(yaml-quote "${WINDOWS_K8S_DIR}") NODE_DIR: $(yaml-quote "${WINDOWS_NODE_DIR}") LOGS_DIR: $(yaml-quote "${WINDOWS_LOGS_DIR}") diff --git a/cluster/gce/windows/k8s-node-setup.psm1 b/cluster/gce/windows/k8s-node-setup.psm1 index ca53e735bc8..50811fe67d1 100644 --- a/cluster/gce/windows/k8s-node-setup.psm1 +++ b/cluster/gce/windows/k8s-node-setup.psm1 @@ -263,6 +263,7 @@ function Set-EnvironmentVars { "WINDOWS_CNI_VERSION" = ${kube_env}['WINDOWS_CNI_VERSION'] "CSI_PROXY_STORAGE_PATH" = ${kube_env}['CSI_PROXY_STORAGE_PATH'] "CSI_PROXY_VERSION" = ${kube_env}['CSI_PROXY_VERSION'] + "ENABLE_CSI_PROXY" = ${kube_env}['ENABLE_CSI_PROXY'] "PKI_DIR" = ${kube_env}['PKI_DIR'] "CA_FILE_PATH" = ${kube_env}['CA_FILE_PATH'] "KUBELET_CONFIG" = ${kube_env}['KUBELET_CONFIG_FILE'] @@ -403,26 +404,29 @@ function DownloadAndInstall-KubernetesBinaries { # Required ${kube_env} keys: # CSI_PROXY_STORAGE_PATH and CSI_PROXY_VERSION function DownloadAndInstall-CSIProxyBinaries { - if (ShouldWrite-File ${env:NODE_DIR}\csi-proxy.exe) { - $tmp_dir = 'C:\k8s_tmp' - New-Item -Force -ItemType 'directory' $tmp_dir | Out-Null - $filename = 'csi-proxy.exe' - $urls = "${env:CSI_PROXY_STORAGE_PATH}/${env:CSI_PROXY_VERSION}/$filename" - MustDownload-File -OutFile $tmp_dir\$filename -URLs $urls - Move-Item -Force $tmp_dir\$filename ${env:NODE_DIR}\$filename - # Clean up the temporary directory - Remove-Item -Force -Recurse $tmp_dir + if ("${env:ENABLE_CSI_PROXY}" -eq "true") { + if (ShouldWrite-File ${env:NODE_DIR}\csi-proxy.exe) { + $tmp_dir = 'C:\k8s_tmp' + New-Item -Force -ItemType 'directory' $tmp_dir | Out-Null + $filename = 'csi-proxy.exe' + $urls = "${env:CSI_PROXY_STORAGE_PATH}/${env:CSI_PROXY_VERSION}/$filename" + MustDownload-File -OutFile $tmp_dir\$filename -URLs $urls + Move-Item -Force $tmp_dir\$filename ${env:NODE_DIR}\$filename + # Clean up the temporary directory + Remove-Item -Force -Recurse $tmp_dir + } } } function Start-CSIProxy { - Log-Output "Creating CSI Proxy Service" - $flags = "-windows-service -log_file=${env:LOGS_DIR}\csi-proxy.log -logtostderr=false" - & sc.exe create csiproxy binPath= "${env:NODE_DIR}\csi-proxy.exe $flags" - & sc.exe failure csiproxy reset= 0 actions= restart/10000 - Log-Output "Starting CSI Proxy Service" - & sc.exe start csiproxy - + if ("${env:ENABLE_CSI_PROXY}" -eq "true") { + Log-Output "Creating CSI Proxy Service" + $flags = "-windows-service -log_file=${env:LOGS_DIR}\csi-proxy.log -logtostderr=false" + & sc.exe create csiproxy binPath= "${env:NODE_DIR}\csi-proxy.exe $flags" + & sc.exe failure csiproxy reset= 0 actions= restart/10000 + Log-Output "Starting CSI Proxy Service" + & sc.exe start csiproxy + } } # TODO(pjh): this is copied from