From 22ba1c92722af7c251e897674fe7f9affe141489 Mon Sep 17 00:00:00 2001 From: Mark Rossetti Date: Thu, 26 May 2022 14:51:48 -0700 Subject: [PATCH] decoupling using K8s ci binaries and different versions of containerd for ci windows templates Signed-off-by: Mark Rossetti --- ...ow-ci-version-windows-containerd-2022.yaml | 32 ++++++++------ .../ci/cluster-template-prow-ci-version.yaml | 32 ++++++++------ ...ow-external-cloud-provider-ci-version.yaml | 32 ++++++++------ ...template-prow-machine-pool-ci-version.yaml | 2 + templates/test/ci/cluster-template-prow.yaml | 20 +++++++++ .../kubeadm-bootstrap-windows-containerd.yaml | 26 ++++++++++++ .../ci/prow-ci-version/kustomization.yaml | 2 +- ...dm-bootstrap-windows-k8s-ci-binaries.yaml} | 12 ------ .../kustomization.yaml | 2 +- ...dm-bootstrap-windows-k8s-ci-binaries.yaml} | 2 + templates/test/ci/prow/kustomization.yaml | 7 ++++ .../dev/cluster-template-custom-builds.yaml | 37 ++++++++++------ .../test/dev/custom-builds/kustomization.yaml | 2 +- .../patches/kubeadm-bootstrap-windows.yaml | 42 ------------------- 14 files changed, 145 insertions(+), 105 deletions(-) create mode 100644 templates/test/ci/patches/kubeadm-bootstrap-windows-containerd.yaml rename templates/test/ci/prow-ci-version/patches/{kubeadm-bootstrap-windows.yaml => kubeadm-bootstrap-windows-k8s-ci-binaries.yaml} (73%) rename templates/test/ci/prow-machine-pool-ci-version/patches/{kubeadm-bootstrap-windows.yaml => kubeadm-bootstrap-windows-k8s-ci-binaries.yaml} (97%) delete mode 100644 templates/test/dev/custom-builds/patches/kubeadm-bootstrap-windows.yaml diff --git a/templates/test/ci/cluster-template-prow-ci-version-windows-containerd-2022.yaml b/templates/test/ci/cluster-template-prow-ci-version-windows-containerd-2022.yaml index 48fda05c14b..4163c0d684c 100644 --- a/templates/test/ci/cluster-template-prow-ci-version-windows-containerd-2022.yaml +++ b/templates/test/ci/cluster-template-prow-ci-version-windows-containerd-2022.yaml @@ -450,6 +450,25 @@ spec: - content: | $ErrorActionPreference = 'Stop' + $$CONTAINERD_URL="${WINDOWS_CONTAINERD_URL}" + if($$CONTAINERD_URL -ne ""){ + # Kubelet service depends on contianerd service so make a best effort attempt to stop it + Stop-Service kubelet -Force -ErrorAction SilentlyContinue + Stop-Service containerd -Force + echo "downloading containerd: $$CONTAINERD_URL" + curl.exe --retry 10 --retry-delay 5 -L "$$CONTAINERD_URL" --output "c:/k/containerd.tar.gz" + tar.exe -zxvf c:/k/containerd.tar.gz -C "c:/Program Files/containerd" --strip-components 1 + + Start-Service containerd + } + + containerd.exe --version + containerd-shim-runhcs-v1.exe --version + path: C:/replace-containerd.ps1 + permissions: "0744" + - content: | + $ErrorActionPreference = 'Stop' + Stop-Service kubelet -Force $$CI_VERSION="${CI_VERSION}" @@ -464,16 +483,6 @@ spec: } } - $$CONTAINERD_URL="${WINDOWS_CONTAINERD_URL}" - if($$CONTAINERD_URL -ne ""){ - Stop-Service containerd -Force - echo "downloading containerd: $$CONTAINERD_URL" - curl.exe --retry 10 --retry-delay 5 -L "$$CONTAINERD_URL" --output "c:/k/containerd.tar.gz" - tar.exe -zxvf c:/k/containerd.tar.gz -C "c:/Program Files/containerd" --strip-components 1 - - Start-Service containerd - } - # Tag it to the ci version. The image knows how to use the copy locally with the configmap # that is applied at at this stage (windows-kubeproxy-ci.yaml) ctr.exe -n k8s.io images pull docker.io/sigwindowstools/kube-proxy:v1.23.1-calico-hostprocess @@ -483,8 +492,6 @@ spec: kubectl.exe version --client=true --short=true kubelet.exe --version kube-proxy.exe --version - containerd.exe --version - containerd-shim-runhcs-v1.exe --version path: C:/replace-ci-binaries.ps1 permissions: "0744" joinConfiguration: @@ -503,6 +510,7 @@ spec: - powershell C:/defender-exclude-calico.ps1 preKubeadmCommands: - powershell C:/create-temp-folder.ps1 + - powershell C:/replace-containerd.ps1 - powershell C:/replace-ci-binaries.ps1 users: - groups: Administrators diff --git a/templates/test/ci/cluster-template-prow-ci-version.yaml b/templates/test/ci/cluster-template-prow-ci-version.yaml index 0b7c2e777a6..c0889705ee3 100644 --- a/templates/test/ci/cluster-template-prow-ci-version.yaml +++ b/templates/test/ci/cluster-template-prow-ci-version.yaml @@ -451,6 +451,25 @@ spec: - content: | $ErrorActionPreference = 'Stop' + $$CONTAINERD_URL="${WINDOWS_CONTAINERD_URL}" + if($$CONTAINERD_URL -ne ""){ + # Kubelet service depends on contianerd service so make a best effort attempt to stop it + Stop-Service kubelet -Force -ErrorAction SilentlyContinue + Stop-Service containerd -Force + echo "downloading containerd: $$CONTAINERD_URL" + curl.exe --retry 10 --retry-delay 5 -L "$$CONTAINERD_URL" --output "c:/k/containerd.tar.gz" + tar.exe -zxvf c:/k/containerd.tar.gz -C "c:/Program Files/containerd" --strip-components 1 + + Start-Service containerd + } + + containerd.exe --version + containerd-shim-runhcs-v1.exe --version + path: C:/replace-containerd.ps1 + permissions: "0744" + - content: | + $ErrorActionPreference = 'Stop' + Stop-Service kubelet -Force $$CI_VERSION="${CI_VERSION}" @@ -465,16 +484,6 @@ spec: } } - $$CONTAINERD_URL="${WINDOWS_CONTAINERD_URL}" - if($$CONTAINERD_URL -ne ""){ - Stop-Service containerd -Force - echo "downloading containerd: $$CONTAINERD_URL" - curl.exe --retry 10 --retry-delay 5 -L "$$CONTAINERD_URL" --output "c:/k/containerd.tar.gz" - tar.exe -zxvf c:/k/containerd.tar.gz -C "c:/Program Files/containerd" --strip-components 1 - - Start-Service containerd - } - # Tag it to the ci version. The image knows how to use the copy locally with the configmap # that is applied at at this stage (windows-kubeproxy-ci.yaml) ctr.exe -n k8s.io images pull docker.io/sigwindowstools/kube-proxy:v1.23.1-calico-hostprocess @@ -484,8 +493,6 @@ spec: kubectl.exe version --client=true --short=true kubelet.exe --version kube-proxy.exe --version - containerd.exe --version - containerd-shim-runhcs-v1.exe --version path: C:/replace-ci-binaries.ps1 permissions: "0744" joinConfiguration: @@ -504,6 +511,7 @@ spec: - powershell C:/defender-exclude-calico.ps1 preKubeadmCommands: - powershell C:/create-temp-folder.ps1 + - powershell C:/replace-containerd.ps1 - powershell C:/replace-ci-binaries.ps1 users: - groups: Administrators diff --git a/templates/test/ci/cluster-template-prow-external-cloud-provider-ci-version.yaml b/templates/test/ci/cluster-template-prow-external-cloud-provider-ci-version.yaml index 963e2c09d20..55727708796 100644 --- a/templates/test/ci/cluster-template-prow-external-cloud-provider-ci-version.yaml +++ b/templates/test/ci/cluster-template-prow-external-cloud-provider-ci-version.yaml @@ -452,6 +452,25 @@ spec: - content: | $ErrorActionPreference = 'Stop' + $$CONTAINERD_URL="${WINDOWS_CONTAINERD_URL}" + if($$CONTAINERD_URL -ne ""){ + # Kubelet service depends on contianerd service so make a best effort attempt to stop it + Stop-Service kubelet -Force -ErrorAction SilentlyContinue + Stop-Service containerd -Force + echo "downloading containerd: $$CONTAINERD_URL" + curl.exe --retry 10 --retry-delay 5 -L "$$CONTAINERD_URL" --output "c:/k/containerd.tar.gz" + tar.exe -zxvf c:/k/containerd.tar.gz -C "c:/Program Files/containerd" --strip-components 1 + + Start-Service containerd + } + + containerd.exe --version + containerd-shim-runhcs-v1.exe --version + path: C:/replace-containerd.ps1 + permissions: "0744" + - content: | + $ErrorActionPreference = 'Stop' + Stop-Service kubelet -Force $$CI_VERSION="${CI_VERSION}" @@ -466,16 +485,6 @@ spec: } } - $$CONTAINERD_URL="${WINDOWS_CONTAINERD_URL}" - if($$CONTAINERD_URL -ne ""){ - Stop-Service containerd -Force - echo "downloading containerd: $$CONTAINERD_URL" - curl.exe --retry 10 --retry-delay 5 -L "$$CONTAINERD_URL" --output "c:/k/containerd.tar.gz" - tar.exe -zxvf c:/k/containerd.tar.gz -C "c:/Program Files/containerd" --strip-components 1 - - Start-Service containerd - } - # Tag it to the ci version. The image knows how to use the copy locally with the configmap # that is applied at at this stage (windows-kubeproxy-ci.yaml) ctr.exe -n k8s.io images pull docker.io/sigwindowstools/kube-proxy:v1.23.1-calico-hostprocess @@ -485,8 +494,6 @@ spec: kubectl.exe version --client=true --short=true kubelet.exe --version kube-proxy.exe --version - containerd.exe --version - containerd-shim-runhcs-v1.exe --version path: C:/replace-ci-binaries.ps1 permissions: "0744" joinConfiguration: @@ -505,6 +512,7 @@ spec: - powershell C:/defender-exclude-calico.ps1 preKubeadmCommands: - powershell C:/create-temp-folder.ps1 + - powershell C:/replace-containerd.ps1 - powershell C:/replace-ci-binaries.ps1 users: - groups: Administrators diff --git a/templates/test/ci/cluster-template-prow-machine-pool-ci-version.yaml b/templates/test/ci/cluster-template-prow-machine-pool-ci-version.yaml index b4a9980c550..37fa6a7a830 100644 --- a/templates/test/ci/cluster-template-prow-machine-pool-ci-version.yaml +++ b/templates/test/ci/cluster-template-prow-machine-pool-ci-version.yaml @@ -448,6 +448,8 @@ spec: path: C:/defender-exclude-calico.ps1 permissions: "0744" - content: | + $ErrorActionPreference = 'Stop' + Stop-Service kubelet -Force $$CI_VERSION="${CI_VERSION}" diff --git a/templates/test/ci/cluster-template-prow.yaml b/templates/test/ci/cluster-template-prow.yaml index f11d1a9d48f..c27c44b1904 100644 --- a/templates/test/ci/cluster-template-prow.yaml +++ b/templates/test/ci/cluster-template-prow.yaml @@ -294,6 +294,25 @@ spec: New-Item -ItemType Directory -Force -Path C:\tmp\ path: C:/create-temp-folder.ps1 permissions: "0744" + - content: | + $ErrorActionPreference = 'Stop' + + $$CONTAINERD_URL="${WINDOWS_CONTAINERD_URL}" + if($$CONTAINERD_URL -ne ""){ + # Kubelet service depends on contianerd service so make a best effort attempt to stop it + Stop-Service kubelet -Force -ErrorAction SilentlyContinue + Stop-Service containerd -Force + echo "downloading containerd: $$CONTAINERD_URL" + curl.exe --retry 10 --retry-delay 5 -L "$$CONTAINERD_URL" --output "c:/k/containerd.tar.gz" + tar.exe -zxvf c:/k/containerd.tar.gz -C "c:/Program Files/containerd" --strip-components 1 + + Start-Service containerd + } + + containerd.exe --version + containerd-shim-runhcs-v1.exe --version + path: C:/replace-containerd.ps1 + permissions: "0744" joinConfiguration: nodeRegistration: criSocket: npipe:////./pipe/containerd-containerd @@ -310,6 +329,7 @@ spec: - powershell C:/defender-exclude-calico.ps1 preKubeadmCommands: - powershell C:/create-temp-folder.ps1 + - powershell C:/replace-containerd.ps1 users: - groups: Administrators name: capi diff --git a/templates/test/ci/patches/kubeadm-bootstrap-windows-containerd.yaml b/templates/test/ci/patches/kubeadm-bootstrap-windows-containerd.yaml new file mode 100644 index 00000000000..051c48ca09b --- /dev/null +++ b/templates/test/ci/patches/kubeadm-bootstrap-windows-containerd.yaml @@ -0,0 +1,26 @@ +- op: add + path: /spec/template/spec/files/- + value: + content: | + $ErrorActionPreference = 'Stop' + + $$CONTAINERD_URL="${WINDOWS_CONTAINERD_URL}" + if($$CONTAINERD_URL -ne ""){ + # Kubelet service depends on contianerd service so make a best effort attempt to stop it + Stop-Service kubelet -Force -ErrorAction SilentlyContinue + Stop-Service containerd -Force + echo "downloading containerd: $$CONTAINERD_URL" + curl.exe --retry 10 --retry-delay 5 -L "$$CONTAINERD_URL" --output "c:/k/containerd.tar.gz" + tar.exe -zxvf c:/k/containerd.tar.gz -C "c:/Program Files/containerd" --strip-components 1 + + Start-Service containerd + } + + containerd.exe --version + containerd-shim-runhcs-v1.exe --version + path: C:/replace-containerd.ps1 + permissions: "0744" +- op: add + path: /spec/template/spec/preKubeadmCommands/- + value: + powershell C:/replace-containerd.ps1 diff --git a/templates/test/ci/prow-ci-version/kustomization.yaml b/templates/test/ci/prow-ci-version/kustomization.yaml index 2d8efdb92d7..f760357cd42 100644 --- a/templates/test/ci/prow-ci-version/kustomization.yaml +++ b/templates/test/ci/prow-ci-version/kustomization.yaml @@ -27,7 +27,7 @@ patches: kind: KubeadmConfigTemplate name: .*-md-win namespace: default - path: patches/kubeadm-bootstrap-windows.yaml + path: patches/kubeadm-bootstrap-windows-k8s-ci-binaries.yaml - target: group: controlplane.cluster.x-k8s.io version: v1beta1 diff --git a/templates/test/ci/prow-ci-version/patches/kubeadm-bootstrap-windows.yaml b/templates/test/ci/prow-ci-version/patches/kubeadm-bootstrap-windows-k8s-ci-binaries.yaml similarity index 73% rename from templates/test/ci/prow-ci-version/patches/kubeadm-bootstrap-windows.yaml rename to templates/test/ci/prow-ci-version/patches/kubeadm-bootstrap-windows-k8s-ci-binaries.yaml index 021234bef00..c7faedfceb2 100644 --- a/templates/test/ci/prow-ci-version/patches/kubeadm-bootstrap-windows.yaml +++ b/templates/test/ci/prow-ci-version/patches/kubeadm-bootstrap-windows-k8s-ci-binaries.yaml @@ -18,16 +18,6 @@ } } - $$CONTAINERD_URL="${WINDOWS_CONTAINERD_URL}" - if($$CONTAINERD_URL -ne ""){ - Stop-Service containerd -Force - echo "downloading containerd: $$CONTAINERD_URL" - curl.exe --retry 10 --retry-delay 5 -L "$$CONTAINERD_URL" --output "c:/k/containerd.tar.gz" - tar.exe -zxvf c:/k/containerd.tar.gz -C "c:/Program Files/containerd" --strip-components 1 - - Start-Service containerd - } - # Tag it to the ci version. The image knows how to use the copy locally with the configmap # that is applied at at this stage (windows-kubeproxy-ci.yaml) ctr.exe -n k8s.io images pull docker.io/sigwindowstools/kube-proxy:v1.23.1-calico-hostprocess @@ -37,8 +27,6 @@ kubectl.exe version --client=true --short=true kubelet.exe --version kube-proxy.exe --version - containerd.exe --version - containerd-shim-runhcs-v1.exe --version path: C:/replace-ci-binaries.ps1 permissions: "0744" - op: add diff --git a/templates/test/ci/prow-machine-pool-ci-version/kustomization.yaml b/templates/test/ci/prow-machine-pool-ci-version/kustomization.yaml index 6ffb7339d7b..eed0de1065f 100644 --- a/templates/test/ci/prow-machine-pool-ci-version/kustomization.yaml +++ b/templates/test/ci/prow-machine-pool-ci-version/kustomization.yaml @@ -23,7 +23,7 @@ patches: kind: KubeadmConfig name: .*-mp-win namespace: default - path: patches/kubeadm-bootstrap-windows.yaml + path: patches/kubeadm-bootstrap-windows-k8s-ci-binaries.yaml configMapGenerator: - name: cni-${CLUSTER_NAME}-calico behavior: merge diff --git a/templates/test/ci/prow-machine-pool-ci-version/patches/kubeadm-bootstrap-windows.yaml b/templates/test/ci/prow-machine-pool-ci-version/patches/kubeadm-bootstrap-windows-k8s-ci-binaries.yaml similarity index 97% rename from templates/test/ci/prow-machine-pool-ci-version/patches/kubeadm-bootstrap-windows.yaml rename to templates/test/ci/prow-machine-pool-ci-version/patches/kubeadm-bootstrap-windows-k8s-ci-binaries.yaml index 1b51a32eb29..ca29361c8f9 100644 --- a/templates/test/ci/prow-machine-pool-ci-version/patches/kubeadm-bootstrap-windows.yaml +++ b/templates/test/ci/prow-machine-pool-ci-version/patches/kubeadm-bootstrap-windows-k8s-ci-binaries.yaml @@ -2,6 +2,8 @@ path: /spec/files/- value: content: | + $ErrorActionPreference = 'Stop' + Stop-Service kubelet -Force $$CI_VERSION="${CI_VERSION}" diff --git a/templates/test/ci/prow/kustomization.yaml b/templates/test/ci/prow/kustomization.yaml index c1af4732be8..4e3c5b626d1 100644 --- a/templates/test/ci/prow/kustomization.yaml +++ b/templates/test/ci/prow/kustomization.yaml @@ -32,6 +32,13 @@ patches: name: .*-md-win namespace: default path: ../patches/windows-tmp-folder.yaml +- target: + group: bootstrap.cluster.x-k8s.io + version: v1beta1 + kind: KubeadmConfigTemplate + name: .*-md-win + namespace: default + path: ../patches/kubeadm-bootstrap-windows-containerd.yaml configMapGenerator: - name: cni-${CLUSTER_NAME}-calico files: diff --git a/templates/test/dev/cluster-template-custom-builds.yaml b/templates/test/dev/cluster-template-custom-builds.yaml index 1e8b67c3371..c355f0a866d 100644 --- a/templates/test/dev/cluster-template-custom-builds.yaml +++ b/templates/test/dev/cluster-template-custom-builds.yaml @@ -394,25 +394,39 @@ spec: - content: | $ErrorActionPreference = 'Stop' - Stop-Service kubelet -Force - - $$binaries=@("kubeadm", "kubectl", "kubelet", "kube-proxy") - $$ci_url="https://${AZURE_STORAGE_ACCOUNT}.blob.core.windows.net/${JOB_NAME}/${KUBE_GIT_VERSION}/bin/windows/amd64" - foreach ( $$binary in $$binaries ) - { - echo "installing binary: $$binary ${KUBE_GIT_VERSION}" - curl.exe --retry 10 --retry-delay 5 "$$ci_url/$$binary.exe" --output "c:/k/$$binary.exe" - } - $$CONTAINERD_URL="${WINDOWS_CONTAINERD_URL}" if($$CONTAINERD_URL -ne ""){ + # Kubelet service depends on contianerd service so make a best effort attempt to stop it + Stop-Service kubelet -Force -ErrorAction SilentlyContinue Stop-Service containerd -Force echo "downloading containerd: $$CONTAINERD_URL" curl.exe --retry 10 --retry-delay 5 -L "$$CONTAINERD_URL" --output "c:/k/containerd.tar.gz" tar.exe -zxvf c:/k/containerd.tar.gz -C "c:/Program Files/containerd" --strip-components 1 + Start-Service containerd } + containerd.exe --version + containerd-shim-runhcs-v1.exe --version + path: C:/replace-containerd.ps1 + permissions: "0744" + - content: | + $ErrorActionPreference = 'Stop' + + Stop-Service kubelet -Force + + $$CI_VERSION="${CI_VERSION}" + if($$CI_VERSION -ne "") + { + $$binaries=@("kubeadm", "kubectl", "kubelet", "kube-proxy") + $$ci_url="https://storage.googleapis.com/k8s-release-dev/ci/$$CI_VERSION/bin/windows/amd64" + foreach ( $$binary in $$binaries ) + { + echo "downloading binary: $$ci_url/$$binary.exe" + curl.exe --retry 10 --retry-delay 5 "$$ci_url/$$binary.exe" --output "c:/k/$$binary.exe" + } + } + # Tag it to the ci version. The image knows how to use the copy locally with the configmap # that is applied at at this stage (windows-kubeproxy-ci.yaml) ctr.exe -n k8s.io images pull docker.io/sigwindowstools/kube-proxy:v1.23.1-calico-hostprocess @@ -422,8 +436,6 @@ spec: kubectl.exe version --client=true --short=true kubelet.exe --version kube-proxy.exe --version - containerd.exe --version - containerd-shim-runhcs-v1.exe --version path: C:/replace-ci-binaries.ps1 permissions: "0744" joinConfiguration: @@ -442,6 +454,7 @@ spec: - powershell C:/defender-exclude-calico.ps1 preKubeadmCommands: - powershell C:/create-temp-folder.ps1 + - powershell C:/replace-containerd.ps1 - powershell C:/replace-ci-binaries.ps1 users: - groups: Administrators diff --git a/templates/test/dev/custom-builds/kustomization.yaml b/templates/test/dev/custom-builds/kustomization.yaml index 934a4034c1c..fb43b0693b1 100644 --- a/templates/test/dev/custom-builds/kustomization.yaml +++ b/templates/test/dev/custom-builds/kustomization.yaml @@ -29,7 +29,7 @@ patches: kind: KubeadmConfigTemplate name: .*-md-win namespace: default - path: patches/kubeadm-bootstrap-windows.yaml + path: ../../ci/prow-ci-version/patches/kubeadm-bootstrap-windows-k8s-ci-binaries.yaml configMapGenerator: - name: cni-${CLUSTER_NAME}-calico behavior: merge diff --git a/templates/test/dev/custom-builds/patches/kubeadm-bootstrap-windows.yaml b/templates/test/dev/custom-builds/patches/kubeadm-bootstrap-windows.yaml deleted file mode 100644 index e406a081d86..00000000000 --- a/templates/test/dev/custom-builds/patches/kubeadm-bootstrap-windows.yaml +++ /dev/null @@ -1,42 +0,0 @@ -- op: add - path: /spec/template/spec/files/- - value: - content: | - $ErrorActionPreference = 'Stop' - - Stop-Service kubelet -Force - - $$binaries=@("kubeadm", "kubectl", "kubelet", "kube-proxy") - $$ci_url="https://${AZURE_STORAGE_ACCOUNT}.blob.core.windows.net/${JOB_NAME}/${KUBE_GIT_VERSION}/bin/windows/amd64" - foreach ( $$binary in $$binaries ) - { - echo "installing binary: $$binary ${KUBE_GIT_VERSION}" - curl.exe --retry 10 --retry-delay 5 "$$ci_url/$$binary.exe" --output "c:/k/$$binary.exe" - } - - $$CONTAINERD_URL="${WINDOWS_CONTAINERD_URL}" - if($$CONTAINERD_URL -ne ""){ - Stop-Service containerd -Force - echo "downloading containerd: $$CONTAINERD_URL" - curl.exe --retry 10 --retry-delay 5 -L "$$CONTAINERD_URL" --output "c:/k/containerd.tar.gz" - tar.exe -zxvf c:/k/containerd.tar.gz -C "c:/Program Files/containerd" --strip-components 1 - Start-Service containerd - } - - # Tag it to the ci version. The image knows how to use the copy locally with the configmap - # that is applied at at this stage (windows-kubeproxy-ci.yaml) - ctr.exe -n k8s.io images pull docker.io/sigwindowstools/kube-proxy:v1.23.1-calico-hostprocess - ctr.exe -n k8s.io images tag docker.io/sigwindowstools/kube-proxy:v1.23.1-calico-hostprocess "docker.io/sigwindowstools/kube-proxy:${CI_VERSION/+/_}-calico-hostprocess" - - kubeadm.exe version -o=short - kubectl.exe version --client=true --short=true - kubelet.exe --version - kube-proxy.exe --version - containerd.exe --version - containerd-shim-runhcs-v1.exe --version - path: C:/replace-ci-binaries.ps1 - permissions: "0744" -- op: add - path: /spec/template/spec/preKubeadmCommands/- - value: - powershell C:/replace-ci-binaries.ps1