From a4341faf036b43c0462aa4a5a820df172118198c Mon Sep 17 00:00:00 2001 From: jpayne3506 Date: Wed, 28 Jun 2023 13:53:58 -0700 Subject: [PATCH 1/5] Initial Commit --- .../linux-datapath-template.yaml | 47 +++++++++++++++++++ .../windows-datapath-template.yaml | 45 ++++++++++++++++++ .../windows-cni-load-test-template.yaml | 11 ++++- 3 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 .pipelines/cni/datapath-test-templates/linux-datapath-template.yaml create mode 100644 .pipelines/cni/datapath-test-templates/windows-datapath-template.yaml diff --git a/.pipelines/cni/datapath-test-templates/linux-datapath-template.yaml b/.pipelines/cni/datapath-test-templates/linux-datapath-template.yaml new file mode 100644 index 0000000000..5399933ae6 --- /dev/null +++ b/.pipelines/cni/datapath-test-templates/linux-datapath-template.yaml @@ -0,0 +1,47 @@ +parameters: + clusterName: "" + +steps: + - script: | + # Forked to ensure that testing is consistent and does not break d/t k8s's CI + git clone https://github.com/jpayne3506/kubernetes.git + cd kubernetes + name: "Checkout_k8s" + displayName: "Checkout Kubernetes" + retryCountOnTaskFailure: 3 + - script: | + set -ex + cd kubernetes + ./build/run.sh make WHAT=test/e2e/e2e.test + find -name "e2e.test" + echo "##vso[task.setvariable variable=E2E;]$(pwd)/_output/dockerized/bin/linux/amd64/" + # Windows e2e tests require the use of unique images + curl https://raw.githubusercontent.com/kubernetes-sigs/windows-testing/master/images/image-repo-list-private-registry -o repo_list + echo "##vso[task.setvariable variable=KUBE_TEST_REPO_LIST;]$(pwd)/repo_list" + # We need Ginkgo CLI for e2e testing. k8s has make command for that + make ginkgo + echo "##vso[task.setvariable variable=GINKGODIR;]$(pwd)/_output/bin" + name: "setup" + displayName: "Setup Environment" + - task: AzureCLI@1 + inputs: + azureSubscription: $(TEST_SUB_SERVICE_CONNECTION) + scriptLocation: "inlineScript" + scriptType: "bash" + addSpnToEnvironment: true + inlineScript: | + set -ex + echo $(pwd) + find -name "e2e.test" + make -C ./hack/aks set-kubeconf AZCLI=az CLUSTER=${{ parameters.clusterName }}-$(make revision) + kubectl get pods -A + $(GINKGODIR)/ginkgo --procs=4 \ + $(E2E)/e2e.test -- \ + --provider=skeleton \ + --ginkgo.focus="\[sig-network\].Networking.Granular|\[sig-network\](.*)kubernetes.api" \ + --ginkgo.skip="Feature:SCTPConnectivity" \ + --ginkgo.v \ + --node-os-distro="linux" \ + --kubeconfig=$HOME/.kube/config + name: "Datapath_Test" + displayName: "Linux Datapath Test" diff --git a/.pipelines/cni/datapath-test-templates/windows-datapath-template.yaml b/.pipelines/cni/datapath-test-templates/windows-datapath-template.yaml new file mode 100644 index 0000000000..93144e5efb --- /dev/null +++ b/.pipelines/cni/datapath-test-templates/windows-datapath-template.yaml @@ -0,0 +1,45 @@ +parameters: + clusterName: "" + +steps: + - script: | + # Forked to ensure that testing is consistent and does not break d/t k8s's CI + git clone https://github.com/jpayne3506/kubernetes.git + name: "Checkout_k8s" + displayName: "Checkout Kubernetes" + - script: | + set -ex + cd kubernetes + ./build/run.sh make WHAT=test/e2e/e2e.test + find -name "e2e.test" + echo "##vso[task.setvariable variable=E2E;]$(pwd)/_output/dockerized/bin/linux/amd64/" + # Windows e2e tests require the use of unique images + curl https://raw.githubusercontent.com/kubernetes-sigs/windows-testing/master/images/image-repo-list-private-registry -o repo_list + echo "##vso[task.setvariable variable=KUBE_TEST_REPO_LIST;]$(pwd)/repo_list" + # We need Ginkgo CLI for e2e testing. k8s has make command for that + make ginkgo + echo "##vso[task.setvariable variable=GINKGODIR;]$(pwd)/_output/bin" + name: "setup" + displayName: "Setup Environment" + - task: AzureCLI@1 + inputs: + azureSubscription: $(TEST_SUB_SERVICE_CONNECTION) + scriptLocation: "inlineScript" + scriptType: "bash" + addSpnToEnvironment: true + inlineScript: | + set -ex + echo $(pwd) + find -name "e2e.test" + make -C ./hack/aks set-kubeconf AZCLI=az CLUSTER=${{ parameters.clusterName }}-$(make revision) + kubectl get pods -A + $(GINKGODIR)/ginkgo --procs=4 \ + $(E2E)/e2e.test -- \ + --provider=skeleton \ + --ginkgo.focus="\[sig-network\].Networking.Granular|\[sig-network\](.*)kubernetes.api" \ + --ginkgo.skip="Feature:SCTPConnectivity|LinuxOnly" \ + --ginkgo.v \ + --node-os-distro="windows" \ + --kubeconfig=$HOME/.kube/config + name: "Datapath_Test" + displayName: "Windows Datapath Test" diff --git a/.pipelines/cni/singletenancy/windows-cni-load-test-template.yaml b/.pipelines/cni/singletenancy/windows-cni-load-test-template.yaml index d406375866..f172d8d258 100644 --- a/.pipelines/cni/singletenancy/windows-cni-load-test-template.yaml +++ b/.pipelines/cni/singletenancy/windows-cni-load-test-template.yaml @@ -80,8 +80,17 @@ stages: kubectl get pods -A name: "WaitForCNI" displayName: "Wait For CNI" - - stage: pod_deployment_windows + - stage: datapath_tests dependsOn: update_cni + displayName: "Datapath Test - Windows" + jobs: + - job: windows_datapath + steps: + - template: ../datapath-test-templates/windows-datapath-template.yaml + parameters: + clusterName: ${{ parameters.clusterName }} + - stage: pod_deployment_windows + dependsOn: datapath_tests displayName: "Pod Deployment" jobs: - job: deploy_pods From f5e1fd72a6154098cf39d4c8905e7405f2b795d8 Mon Sep 17 00:00:00 2001 From: jpayne3506 Date: Thu, 29 Jun 2023 19:18:33 -0700 Subject: [PATCH 2/5] Expensive Datapath --- .../linux-datapath-template.yaml | 11 +++-------- .../windows-datapath-template.yaml | 8 ++++---- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/.pipelines/cni/datapath-test-templates/linux-datapath-template.yaml b/.pipelines/cni/datapath-test-templates/linux-datapath-template.yaml index 5399933ae6..3083324dfa 100644 --- a/.pipelines/cni/datapath-test-templates/linux-datapath-template.yaml +++ b/.pipelines/cni/datapath-test-templates/linux-datapath-template.yaml @@ -5,19 +5,13 @@ steps: - script: | # Forked to ensure that testing is consistent and does not break d/t k8s's CI git clone https://github.com/jpayne3506/kubernetes.git - cd kubernetes name: "Checkout_k8s" displayName: "Checkout Kubernetes" - retryCountOnTaskFailure: 3 - script: | set -ex cd kubernetes ./build/run.sh make WHAT=test/e2e/e2e.test - find -name "e2e.test" echo "##vso[task.setvariable variable=E2E;]$(pwd)/_output/dockerized/bin/linux/amd64/" - # Windows e2e tests require the use of unique images - curl https://raw.githubusercontent.com/kubernetes-sigs/windows-testing/master/images/image-repo-list-private-registry -o repo_list - echo "##vso[task.setvariable variable=KUBE_TEST_REPO_LIST;]$(pwd)/repo_list" # We need Ginkgo CLI for e2e testing. k8s has make command for that make ginkgo echo "##vso[task.setvariable variable=GINKGODIR;]$(pwd)/_output/bin" @@ -30,9 +24,10 @@ steps: scriptType: "bash" addSpnToEnvironment: true inlineScript: | + # SCTP Connectivity - Not supported + # Networking Granular - Datapath testing + # kubernetes api - Tests k8s api calls set -ex - echo $(pwd) - find -name "e2e.test" make -C ./hack/aks set-kubeconf AZCLI=az CLUSTER=${{ parameters.clusterName }}-$(make revision) kubectl get pods -A $(GINKGODIR)/ginkgo --procs=4 \ diff --git a/.pipelines/cni/datapath-test-templates/windows-datapath-template.yaml b/.pipelines/cni/datapath-test-templates/windows-datapath-template.yaml index 93144e5efb..c6f2966aa2 100644 --- a/.pipelines/cni/datapath-test-templates/windows-datapath-template.yaml +++ b/.pipelines/cni/datapath-test-templates/windows-datapath-template.yaml @@ -11,7 +11,6 @@ steps: set -ex cd kubernetes ./build/run.sh make WHAT=test/e2e/e2e.test - find -name "e2e.test" echo "##vso[task.setvariable variable=E2E;]$(pwd)/_output/dockerized/bin/linux/amd64/" # Windows e2e tests require the use of unique images curl https://raw.githubusercontent.com/kubernetes-sigs/windows-testing/master/images/image-repo-list-private-registry -o repo_list @@ -28,16 +27,17 @@ steps: scriptType: "bash" addSpnToEnvironment: true inlineScript: | + # hostNetwork | SCTP Connectivity - Not supported + # Networking Granular - Datapath testing + # kubernetes api - Tests k8s api calls set -ex - echo $(pwd) - find -name "e2e.test" make -C ./hack/aks set-kubeconf AZCLI=az CLUSTER=${{ parameters.clusterName }}-$(make revision) kubectl get pods -A $(GINKGODIR)/ginkgo --procs=4 \ $(E2E)/e2e.test -- \ --provider=skeleton \ --ginkgo.focus="\[sig-network\].Networking.Granular|\[sig-network\](.*)kubernetes.api" \ - --ginkgo.skip="Feature:SCTPConnectivity|LinuxOnly" \ + --ginkgo.skip="Feature:SCTPConnectivity|LinuxOnly|\[sig-network\](.*)hostNetwork" \ --ginkgo.v \ --node-os-distro="windows" \ --kubeconfig=$HOME/.kube/config From e35067444160f419bab27624c2634b15c449acbd Mon Sep 17 00:00:00 2001 From: jpayne3506 Date: Fri, 30 Jun 2023 13:11:51 -0700 Subject: [PATCH 3/5] Tarball Datapath --- .../linux-datapath-template.yaml | 42 ----------------- .../windows-datapath-template.yaml | 45 ++++++++++--------- test/internal/k8sutils/utils.go | 2 +- 3 files changed, 26 insertions(+), 63 deletions(-) delete mode 100644 .pipelines/cni/datapath-test-templates/linux-datapath-template.yaml diff --git a/.pipelines/cni/datapath-test-templates/linux-datapath-template.yaml b/.pipelines/cni/datapath-test-templates/linux-datapath-template.yaml deleted file mode 100644 index 3083324dfa..0000000000 --- a/.pipelines/cni/datapath-test-templates/linux-datapath-template.yaml +++ /dev/null @@ -1,42 +0,0 @@ -parameters: - clusterName: "" - -steps: - - script: | - # Forked to ensure that testing is consistent and does not break d/t k8s's CI - git clone https://github.com/jpayne3506/kubernetes.git - name: "Checkout_k8s" - displayName: "Checkout Kubernetes" - - script: | - set -ex - cd kubernetes - ./build/run.sh make WHAT=test/e2e/e2e.test - echo "##vso[task.setvariable variable=E2E;]$(pwd)/_output/dockerized/bin/linux/amd64/" - # We need Ginkgo CLI for e2e testing. k8s has make command for that - make ginkgo - echo "##vso[task.setvariable variable=GINKGODIR;]$(pwd)/_output/bin" - name: "setup" - displayName: "Setup Environment" - - task: AzureCLI@1 - inputs: - azureSubscription: $(TEST_SUB_SERVICE_CONNECTION) - scriptLocation: "inlineScript" - scriptType: "bash" - addSpnToEnvironment: true - inlineScript: | - # SCTP Connectivity - Not supported - # Networking Granular - Datapath testing - # kubernetes api - Tests k8s api calls - set -ex - make -C ./hack/aks set-kubeconf AZCLI=az CLUSTER=${{ parameters.clusterName }}-$(make revision) - kubectl get pods -A - $(GINKGODIR)/ginkgo --procs=4 \ - $(E2E)/e2e.test -- \ - --provider=skeleton \ - --ginkgo.focus="\[sig-network\].Networking.Granular|\[sig-network\](.*)kubernetes.api" \ - --ginkgo.skip="Feature:SCTPConnectivity" \ - --ginkgo.v \ - --node-os-distro="linux" \ - --kubeconfig=$HOME/.kube/config - name: "Datapath_Test" - displayName: "Linux Datapath Test" diff --git a/.pipelines/cni/datapath-test-templates/windows-datapath-template.yaml b/.pipelines/cni/datapath-test-templates/windows-datapath-template.yaml index c6f2966aa2..0bd1a30019 100644 --- a/.pipelines/cni/datapath-test-templates/windows-datapath-template.yaml +++ b/.pipelines/cni/datapath-test-templates/windows-datapath-template.yaml @@ -2,22 +2,23 @@ parameters: clusterName: "" steps: - - script: | - # Forked to ensure that testing is consistent and does not break d/t k8s's CI - git clone https://github.com/jpayne3506/kubernetes.git - name: "Checkout_k8s" - displayName: "Checkout Kubernetes" - - script: | - set -ex - cd kubernetes - ./build/run.sh make WHAT=test/e2e/e2e.test - echo "##vso[task.setvariable variable=E2E;]$(pwd)/_output/dockerized/bin/linux/amd64/" - # Windows e2e tests require the use of unique images - curl https://raw.githubusercontent.com/kubernetes-sigs/windows-testing/master/images/image-repo-list-private-registry -o repo_list - echo "##vso[task.setvariable variable=KUBE_TEST_REPO_LIST;]$(pwd)/repo_list" - # We need Ginkgo CLI for e2e testing. k8s has make command for that - make ginkgo - echo "##vso[task.setvariable variable=GINKGODIR;]$(pwd)/_output/bin" + - task: AzureCLI@1 + inputs: + azureSubscription: $(TEST_SUB_SERVICE_CONNECTION) + scriptLocation: "inlineScript" + scriptType: "bash" + addSpnToEnvironment: true + inlineScript: | + set -ex + // pulls k8s version from current cluster context + eval k8sVersion="v"$( az aks show -g ${{ parameters.clusterName }}-$(make revision) -n ${{ parameters.clusterName }}-$(make revision) --query "currentKubernetesVersion") + curl -L https://dl.k8s.io/$k8sVersion/kubernetes-test-linux-amd64.tar.gz -o ./kubernetes-test-linux-amd64.tar.gz + + # https://github.com/kubernetes/sig-release/blob/master/release-engineering/artifacts.md#content-of-kubernetes-test-system-archtargz-on-example-of-kubernetes-test-linux-amd64targz-directories-removed-from-list + # explictly unzip and strip directories from ginkgo and e2e.test + # can be cp into usr/local/bin + chmod +x /usr/local/bin/* to complete an install. + # This is a template and as such will be treated a a standalone command, so no need to install on VM + tar -xvzf kubernetes-test-linux-amd64.tar.gz --strip-components=3 kubernetes/test/bin/ginkgo kubernetes/test/bin/e2e.test name: "setup" displayName: "Setup Environment" - task: AzureCLI@1 @@ -27,14 +28,18 @@ steps: scriptType: "bash" addSpnToEnvironment: true inlineScript: | + # ginkgo.skip # hostNetwork | SCTP Connectivity - Not supported - # Networking Granular - Datapath testing - # kubernetes api - Tests k8s api calls + + # ginkgo.focus + # Networking Granular - Datapath testing with netcat and curl + # kubernetes api - Tests k8s api calls + set -ex make -C ./hack/aks set-kubeconf AZCLI=az CLUSTER=${{ parameters.clusterName }}-$(make revision) kubectl get pods -A - $(GINKGODIR)/ginkgo --procs=4 \ - $(E2E)/e2e.test -- \ + ./ginkgo --procs=4 \ + ./e2e.test -- \ --provider=skeleton \ --ginkgo.focus="\[sig-network\].Networking.Granular|\[sig-network\](.*)kubernetes.api" \ --ginkgo.skip="Feature:SCTPConnectivity|LinuxOnly|\[sig-network\](.*)hostNetwork" \ diff --git a/test/internal/k8sutils/utils.go b/test/internal/k8sutils/utils.go index 7697e43c31..538ec4fe61 100644 --- a/test/internal/k8sutils/utils.go +++ b/test/internal/k8sutils/utils.go @@ -247,7 +247,7 @@ func WaitForPodDeployment(ctx context.Context, clientset *kubernetes.Clientset, if deployment.Status.AvailableReplicas != int32(replicas) { // Provide real-time deployment availability to console - log.Printf("deployment %s has %d replicas in available status, expected %d", deploymentName, deployment.Status.AvailableReplicas, replicas) + log.Printf("deployment %s has %d replicas in avaliable status, expected %d", deploymentName, deployment.Status.AvailableReplicas, replicas) return errors.New("deployment does not have the expected number of available replicas") } From 9bba5629b5d1e7b84160a8e1b2bec5fa02cf5550 Mon Sep 17 00:00:00 2001 From: jpayne3506 Date: Wed, 5 Jul 2023 14:28:40 -0700 Subject: [PATCH 4/5] Templatize --- .../windows-datapath-template.yaml | 50 ------------------- .../windows-cni-load-test-template.yaml | 26 ++++++++-- test/internal/k8sutils/utils.go | 2 +- 3 files changed, 23 insertions(+), 55 deletions(-) delete mode 100644 .pipelines/cni/datapath-test-templates/windows-datapath-template.yaml diff --git a/.pipelines/cni/datapath-test-templates/windows-datapath-template.yaml b/.pipelines/cni/datapath-test-templates/windows-datapath-template.yaml deleted file mode 100644 index 0bd1a30019..0000000000 --- a/.pipelines/cni/datapath-test-templates/windows-datapath-template.yaml +++ /dev/null @@ -1,50 +0,0 @@ -parameters: - clusterName: "" - -steps: - - task: AzureCLI@1 - inputs: - azureSubscription: $(TEST_SUB_SERVICE_CONNECTION) - scriptLocation: "inlineScript" - scriptType: "bash" - addSpnToEnvironment: true - inlineScript: | - set -ex - // pulls k8s version from current cluster context - eval k8sVersion="v"$( az aks show -g ${{ parameters.clusterName }}-$(make revision) -n ${{ parameters.clusterName }}-$(make revision) --query "currentKubernetesVersion") - curl -L https://dl.k8s.io/$k8sVersion/kubernetes-test-linux-amd64.tar.gz -o ./kubernetes-test-linux-amd64.tar.gz - - # https://github.com/kubernetes/sig-release/blob/master/release-engineering/artifacts.md#content-of-kubernetes-test-system-archtargz-on-example-of-kubernetes-test-linux-amd64targz-directories-removed-from-list - # explictly unzip and strip directories from ginkgo and e2e.test - # can be cp into usr/local/bin + chmod +x /usr/local/bin/* to complete an install. - # This is a template and as such will be treated a a standalone command, so no need to install on VM - tar -xvzf kubernetes-test-linux-amd64.tar.gz --strip-components=3 kubernetes/test/bin/ginkgo kubernetes/test/bin/e2e.test - name: "setup" - displayName: "Setup Environment" - - task: AzureCLI@1 - inputs: - azureSubscription: $(TEST_SUB_SERVICE_CONNECTION) - scriptLocation: "inlineScript" - scriptType: "bash" - addSpnToEnvironment: true - inlineScript: | - # ginkgo.skip - # hostNetwork | SCTP Connectivity - Not supported - - # ginkgo.focus - # Networking Granular - Datapath testing with netcat and curl - # kubernetes api - Tests k8s api calls - - set -ex - make -C ./hack/aks set-kubeconf AZCLI=az CLUSTER=${{ parameters.clusterName }}-$(make revision) - kubectl get pods -A - ./ginkgo --procs=4 \ - ./e2e.test -- \ - --provider=skeleton \ - --ginkgo.focus="\[sig-network\].Networking.Granular|\[sig-network\](.*)kubernetes.api" \ - --ginkgo.skip="Feature:SCTPConnectivity|LinuxOnly|\[sig-network\](.*)hostNetwork" \ - --ginkgo.v \ - --node-os-distro="windows" \ - --kubeconfig=$HOME/.kube/config - name: "Datapath_Test" - displayName: "Windows Datapath Test" diff --git a/.pipelines/cni/singletenancy/windows-cni-load-test-template.yaml b/.pipelines/cni/singletenancy/windows-cni-load-test-template.yaml index f172d8d258..906b92d877 100644 --- a/.pipelines/cni/singletenancy/windows-cni-load-test-template.yaml +++ b/.pipelines/cni/singletenancy/windows-cni-load-test-template.yaml @@ -45,7 +45,7 @@ stages: os: $(os) os_version: $(os_version) - stage: update_cni - dependsOn: + dependsOn: - createAKSclusterWindows - build_images displayName: "Update CNI on Cluster" @@ -84,11 +84,29 @@ stages: dependsOn: update_cni displayName: "Datapath Test - Windows" jobs: + - template: ../k8s-e2e/k8s-e2e-job-template.yaml + parameters: + clusterName: ${{ parameters.clusterName }} + os: ${{ parameters.os }} + datapath: true - job: windows_datapath steps: - - template: ../datapath-test-templates/windows-datapath-template.yaml - parameters: - clusterName: ${{ parameters.clusterName }} + - task: AzureCLI@1 + inputs: + azureSubscription: $(TEST_SUB_SERVICE_CONNECTION) + scriptLocation: "inlineScript" + scriptType: "bash" + addSpnToEnvironment: true + inlineScript: | + set -ex + make -C ./hack/aks set-kubeconf AZCLI=az CLUSTER=${{ parameters.clusterName }}-$(make revision) + + # Needs to be changed after #2032 is merged + # test/integration/datapath/datapath_windows_test.go + # does not test IPv6 at this time, waiting for #2032 + go test -count=1 test/integration/datapath/datapath_win_test.go -timeout 3m -tags connection -run ^TestDatapathWin$ -tags=connection + displayName: "Windows go test - IPv6 Datapath" + retryCountOnTaskFailure: 5 # Ping is flaky - stage: pod_deployment_windows dependsOn: datapath_tests displayName: "Pod Deployment" diff --git a/test/internal/k8sutils/utils.go b/test/internal/k8sutils/utils.go index 538ec4fe61..7697e43c31 100644 --- a/test/internal/k8sutils/utils.go +++ b/test/internal/k8sutils/utils.go @@ -247,7 +247,7 @@ func WaitForPodDeployment(ctx context.Context, clientset *kubernetes.Clientset, if deployment.Status.AvailableReplicas != int32(replicas) { // Provide real-time deployment availability to console - log.Printf("deployment %s has %d replicas in avaliable status, expected %d", deploymentName, deployment.Status.AvailableReplicas, replicas) + log.Printf("deployment %s has %d replicas in available status, expected %d", deploymentName, deployment.Status.AvailableReplicas, replicas) return errors.New("deployment does not have the expected number of available replicas") } From d6c939bf70ca7da8b70459c65444945860c6097c Mon Sep 17 00:00:00 2001 From: jpayne3506 Date: Thu, 27 Jul 2023 18:17:49 -0700 Subject: [PATCH 5/5] Add networking conformance tests --- .../windows-cni-load-test-template.yaml | 38 ++++++++++--------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/.pipelines/cni/singletenancy/windows-cni-load-test-template.yaml b/.pipelines/cni/singletenancy/windows-cni-load-test-template.yaml index 906b92d877..c0dfd00e5a 100644 --- a/.pipelines/cni/singletenancy/windows-cni-load-test-template.yaml +++ b/.pipelines/cni/singletenancy/windows-cni-load-test-template.yaml @@ -11,6 +11,8 @@ parameters: stages: - stage: createAKSclusterWindows + pool: + name: $(BUILD_POOL_NAME_DEFAULT) dependsOn: ${{ parameters.dependsOn }} displayName: "Windows AKS Cluster ${{ parameters.cni }}" jobs: @@ -24,6 +26,8 @@ stages: vmSize: ${{ parameters.vmSize }} windowsVMSize: ${{ parameters.windowsVMSize }} - stage: build_images + pool: + name: $(BUILD_POOL_NAME_DEFAULT) dependsOn: ${{ parameters.dependsOn }} displayName: "Build CNI Images" jobs: @@ -45,6 +49,8 @@ stages: os: $(os) os_version: $(os_version) - stage: update_cni + pool: + name: $(BUILD_POOL_NAME_DEFAULT) dependsOn: - createAKSclusterWindows - build_images @@ -81,33 +87,25 @@ stages: name: "WaitForCNI" displayName: "Wait For CNI" - stage: datapath_tests + pool: + name: $(BUILD_POOL_NAME_DEFAULT) dependsOn: update_cni displayName: "Datapath Test - Windows" jobs: - template: ../k8s-e2e/k8s-e2e-job-template.yaml parameters: + sub: $(TEST_SUB_SERVICE_CONNECTION) clusterName: ${{ parameters.clusterName }} os: ${{ parameters.os }} datapath: true - - job: windows_datapath - steps: - - task: AzureCLI@1 - inputs: - azureSubscription: $(TEST_SUB_SERVICE_CONNECTION) - scriptLocation: "inlineScript" - scriptType: "bash" - addSpnToEnvironment: true - inlineScript: | - set -ex - make -C ./hack/aks set-kubeconf AZCLI=az CLUSTER=${{ parameters.clusterName }}-$(make revision) - - # Needs to be changed after #2032 is merged - # test/integration/datapath/datapath_windows_test.go - # does not test IPv6 at this time, waiting for #2032 - go test -count=1 test/integration/datapath/datapath_win_test.go -timeout 3m -tags connection -run ^TestDatapathWin$ -tags=connection - displayName: "Windows go test - IPv6 Datapath" - retryCountOnTaskFailure: 5 # Ping is flaky + dns: true + portforward: true + hybridWin: true + service: true + hostport: true - stage: pod_deployment_windows + pool: + name: $(BUILD_POOL_NAME_DEFAULT) dependsOn: datapath_tests displayName: "Pod Deployment" jobs: @@ -121,6 +119,8 @@ stages: cni: ${{ parameters.cni }} iterations: ${WINDOWS_ITERATIONS} - stage: validate_state_windows + pool: + name: $(BUILD_POOL_NAME_DEFAULT) dependsOn: pod_deployment_windows displayName: "Validate State" jobs: @@ -132,6 +132,8 @@ stages: os: ${{ parameters.os }} cni: ${{ parameters.cni }} - stage: delete_resources + pool: + name: $(BUILD_POOL_NAME_DEFAULT) displayName: "Delete Resources" dependsOn: - validate_state_windows