From f09c7789c3a18b238708c440ebcb0670fcc30128 Mon Sep 17 00:00:00 2001 From: ryandenney Date: Tue, 28 Nov 2023 01:43:46 -0500 Subject: [PATCH 01/27] adding cilium dualstack overlay pipeline steps --- .pipelines/pipeline.yaml | 20 ++ ...ium-dualstackoverlay-e2e-job-template.yaml | 84 ++++++ ...um-dualstackoverlay-e2e-step-template.yaml | 277 ++++++++++++++++++ .../cilium/cilium-config-dualstack.yaml | 89 ++++++ test/validate/linux_validate.go | 5 + 5 files changed, 475 insertions(+) create mode 100644 .pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-job-template.yaml create mode 100644 .pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml create mode 100644 test/integration/manifests/cilium/cilium-config-dualstack.yaml diff --git a/.pipelines/pipeline.yaml b/.pipelines/pipeline.yaml index 460ebd0384..61e79add56 100644 --- a/.pipelines/pipeline.yaml +++ b/.pipelines/pipeline.yaml @@ -419,6 +419,18 @@ stages: vmSize: Standard_B2ms k8sVersion: "" dependsOn: "test" + + # Cilium Dualstack Overlay E2E tests + - template: singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-job-template.yaml + parameters: + name: "cilium_dualstackoverlay_e2e" + displayName: Cilium on AKS DualStack Overlay + os: linux + clusterType: cilium-dualstack-up + clusterName: "cildsovere2e" + vmSize: Standard_B2ms + k8sVersion: "" + dependsOn: "test" # Cilium Overlay with hubble E2E tests - template: singletenancy/cilium-overlay-withhubble/cilium-overlay-e2e-job-template.yaml @@ -517,6 +529,7 @@ stages: - aks_swift_vnetscale_e2e - aks_windows_22_e2e - dualstackoverlay_e2e + - cilium_dualstackoverlay_e2e variables: commitID: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.commitID'] ] jobs: @@ -562,6 +575,12 @@ stages: dualstackoverlay_e2e: name: dualstackoverlay_e2e clusterName: "dsovere2e" + cilium_dualstackoverlay_e2e: + name: cilium_dualstackoverlay_e2e + clusterName: "cildsovere2e" + cilium_dualstackoverlay_cni_e2e: + name: cilium_dualstackoverlay_cni_e2e + clustername: "cildsovcnie2e" steps: - template: templates/delete-cluster.yaml parameters: @@ -600,6 +619,7 @@ stages: - aks_ubuntu_22_linux_e2e - aks_windows_22_e2e - dualstackoverlay_e2e + - cilium_dualstackoverlay_e2e jobs: - job: delete_remote_artifacts displayName: Delete remote artifacts diff --git a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-job-template.yaml b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-job-template.yaml new file mode 100644 index 0000000000..b38ec3ec6f --- /dev/null +++ b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-job-template.yaml @@ -0,0 +1,84 @@ +parameters: + name: "" + displayName: "" + testDropgz: "" + clusterType: "" + clusterName: "" + vmSize: "" + k8sVersion: "" + dependsOn: "" + +stages: + - stage: ${{ parameters.clusterName }} + displayName: Create Cluster - ${{ parameters.displayName }} + dependsOn: + - ${{ parameters.dependsOn }} + - setup + pool: + name: $(BUILD_POOL_NAME_DEFAULT) + variables: + commitID: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.commitID'] ] + jobs: + - template: ../../templates/create-cluster.yaml + parameters: + name: ${{ parameters.name }} + displayName: ${{ parameters.displayName }} + clusterType: ${{ parameters.clusterType }} + clusterName: ${{ parameters.clusterName }}-$(commitID) + vmSize: ${{ parameters.vmSize }} + k8sVersion: ${{ parameters.k8sVersion }} + dependsOn: ${{ parameters.dependsOn }} + region: $(REGION_DUALSTACKOVERLAY_CLUSTER_TEST) # Dualstack has a specific region requirement + + - stage: ${{ parameters.name }} + displayName: E2E - ${{ parameters.displayName }} + dependsOn: + - setup + - publish + - ${{ parameters.clusterName }} + variables: + GOPATH: "$(Agent.TempDirectory)/go" # Go workspace path + GOBIN: "$(GOPATH)/bin" # Go binaries path + modulePath: "$(GOPATH)/src/github.com/Azure/azure-container-networking" + commitID: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.commitID'] ] + pool: + name: $(BUILD_POOL_NAME_DEFAULT) + jobs: + - job: ${{ parameters.name }} + displayName: Cilium Dualstack Overlay Test Suite - (${{ parameters.name }}) + timeoutInMinutes: 120 + pool: + name: $(BUILD_POOL_NAME_DEFAULT) + demands: + - agent.os -equals Linux + - Role -equals $(CUSTOM_E2E_ROLE) + steps: + - template: cilium-dualstackoverlay-e2e-step-template.yaml + parameters: + name: ${{ parameters.name }} + testDropgz: ${{ parameters.testDropgz }} + clusterName: ${{ parameters.clusterName }}-$(commitID) + + - template: ../../cni/k8s-e2e/k8s-e2e-job-template.yaml + parameters: + sub: $(BUILD_VALIDATIONS_SERVICE_CONNECTION) + clusterName: ${{ parameters.clusterName }}-$(commitID) + os: ${{ parameters.os }} + dependsOn: ${{ parameters.name }} + dualstack: true + dns: true + portforward: true + hostport: true + service: true + + - job: failedE2ELogs + displayName: "Failure Logs" + dependsOn: + - ${{ parameters.name }} + condition: failed() + steps: + - template: ../../templates/log-template.yaml + parameters: + clusterName: ${{ parameters.clusterName }}-$(commitID) + os: ${{ parameters.os }} + cni: cilium diff --git a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml new file mode 100644 index 0000000000..517f627e12 --- /dev/null +++ b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml @@ -0,0 +1,277 @@ +parameters: + name: "" + testDropgz: "" + clusterName: "" + testHubble: false + +steps: + - bash: | + echo $UID + sudo rm -rf $(System.DefaultWorkingDirectory)/* + displayName: "Set up OS environment" + + - checkout: self + + - bash: | + go version + go env + mkdir -p '$(GOBIN)' + mkdir -p '$(GOPATH)/pkg' + mkdir -p '$(modulePath)' + echo '##vso[task.prependpath]$(GOBIN)' + echo '##vso[task.prependpath]$(GOROOT)/bin' + name: "GoEnv" + displayName: "Set up the Go environment" + + - task: KubectlInstaller@0 + inputs: + kubectlVersion: latest + + - task: AzureCLI@1 + inputs: + azureSubscription: $(BUILD_VALIDATIONS_SERVICE_CONNECTION) + scriptLocation: "inlineScript" + scriptType: "bash" + addSpnToEnvironment: true + inlineScript: | + set -e + make -C ./hack/aks set-kubeconf AZCLI=az CLUSTER=${{ parameters.clusterName }} + ls -lah + pwd + kubectl cluster-info + kubectl get po -owide -A + if [ "$CILIUM_VERSION_TAG" = "cilium-nightly-pipeline" ]; then FILE_PATH=-nightly && echo "Running nightly"; fi + echo "deploy Cilium ConfigMap" + kubectl apply -f test/integration/manifests/cilium/cilium${FILE_PATH}-config.yaml + echo "install Cilium ${CILIUM_VERSION_TAG}" + # Passes Cilium image to daemonset and deployment + envsubst '${CILIUM_VERSION_TAG},${CILIUM_IMAGE_REGISTRY}' < test/integration/manifests/cilium/daemonset.yaml | kubectl apply -f - + envsubst '${CILIUM_VERSION_TAG},${CILIUM_IMAGE_REGISTRY}' < test/integration/manifests/cilium/deployment.yaml | kubectl apply -f - + # Use different file directories for nightly and current cilium version + kubectl apply -f test/integration/manifests/cilium/cilium${FILE_PATH}-agent + kubectl apply -f test/integration/manifests/cilium/cilium${FILE_PATH}-operator + kubectl get po -owide -A + name: "installCilium" + displayName: "Install Cilium on AKS Overlay" + + - script: | + echo "install cilium CLI" + if [[ ${CILIUM_VERSION_TAG} =~ ^1.1[1-3].[0-9]{1,2} ]]; then + echo "Cilium Agent Version ${BASH_REMATCH[0]}" + CILIUM_CLI_VERSION=$(curl -s https://raw.githubusercontent.com/cilium/cilium-cli/main/stable-v0.14.txt) + else + echo "Cilium Agent Version ${CILIUM_VERSION_TAG}" + CILIUM_CLI_VERSION=$(curl -s https://raw.githubusercontent.com/cilium/cilium-cli/master/stable.txt) + fi + CLI_ARCH=amd64 + if [ "$(uname -m)" = "aarch64" ]; then CLI_ARCH=arm64; fi + curl -L --fail --remote-name-all https://github.com/cilium/cilium-cli/releases/download/${CILIUM_CLI_VERSION}/cilium-linux-${CLI_ARCH}.tar.gz{,.sha256sum} + sha256sum --check cilium-linux-${CLI_ARCH}.tar.gz.sha256sum + sudo tar xzvfC cilium-linux-${CLI_ARCH}.tar.gz /usr/local/bin + rm cilium-linux-${CLI_ARCH}.tar.gz{,.sha256sum} + cilium status + cilium version + name: "installCiliumCLI" + displayName: "Install Cilium CLI" + + - script: | + echo "install kubetest2 and gsutils" + go get github.com/onsi/ginkgo/ginkgo + go get github.com/onsi/gomega/... + go install github.com/onsi/ginkgo/ginkgo@latest + go install sigs.k8s.io/kubetest2@latest + go install sigs.k8s.io/kubetest2/kubetest2-noop@latest + go install sigs.k8s.io/kubetest2/kubetest2-tester-ginkgo@latest + wget https://storage.googleapis.com/pub/gsutil.tar.gz + tar xfz gsutil.tar.gz + sudo mv gsutil /usr/local/bin + name: "installKubetest" + displayName: "Set up Conformance Tests" + + - ${{ if eq( parameters['testDropgz'], true) }}: + - script: | + echo "##vso[task.setvariable variable=dropgzVersion]$(make cni-dropgz-test-version)" + name: dropgzTestVersion + displayName: "Dropgz Test Version" + - ${{ else }}: + - script: | + echo "##vso[task.setvariable variable=dropgzVersion]$(make cni-dropgz-version)" + name: dropgzVersion + displayName: "Dropgz Version" + + - script: | + echo "Start Azilium E2E Tests on Overlay Cluster" + # Nightly does not build images per commit. Will use existing image. + if [ "$CILIUM_VERSION_TAG" = "cilium-nightly-pipeline" ] + then + CNS=$(CNS_VERSION) DROPGZ=$(DROP_GZ_VERSION) && echo "Running nightly" + else + CNS=$(make cns-version) DROPGZ=$(dropgzVersion) + fi + sudo -E env "PATH=$PATH" make test-integration CNS_VERSION=${CNS} CNI_DROPGZ_VERSION=${DROPGZ} INSTALL_CNS=true INSTALL_OVERLAY=true TEST_DROPGZ=${{ parameters.testDropgz }} + retryCountOnTaskFailure: 3 + name: "aziliumTest" + displayName: "Run Azilium E2E on AKS Overlay" + + - script: | + echo "Status of the nodes and pods after the test" + kubectl get nodes -o wide + kubectl get pods -A -o wide + echo "Logs will be available as a build artifact" + ARTIFACT_DIR=$(Build.ArtifactStagingDirectory)/test-output/ + echo $ARTIFACT_DIR + sudo rm -rf $ARTIFACT_DIR + sudo mkdir $ARTIFACT_DIR + sudo cp test/integration/logs/* $ARTIFACT_DIR + name: "GetLogs" + displayName: "Get logs" + condition: always() + + - task: PublishBuildArtifacts@1 + inputs: + artifactName: test-output + pathtoPublish: "$(Build.ArtifactStagingDirectory)/test-output" + condition: always() + + - script: | + kubectl get pods -A + echo "Waiting < 2 minutes for cilium to be ready" + # Ensure Cilium is ready Xm\Xs + cilium status --wait --wait-duration 2m + retryCountOnTaskFailure: 3 + name: "CiliumStatus" + displayName: "Cilium Status" + + - script: | + echo "Run Service Conformance E2E" + export PATH=${PATH}:/usr/local/bin/gsutil + KUBECONFIG=~/.kube/config kubetest2 noop \ + --test ginkgo -- \ + --focus-regex "Services.*\[Conformance\].*" \ + --skip-regex "should serve endpoints on same port and different protocols" # Cilium does not support this feature. For more info on test: https://github.com/kubernetes/kubernetes/blame/e602e9e03cd744c23dde9fee09396812dd7bdd93/test/conformance/testdata/conformance.yaml#L1780-L1788 + name: "servicesConformance" + displayName: "Run Services Conformance Tests" + + - script: | + echo "Run Cilium Connectivity Tests" + cilium status + if [ "$CILIUM_VERSION_TAG" = "cilium-nightly-pipeline" ] + then + # Until the issue https://github.com/cilium/cilium/issues/29213 is resolved, skip metrics check for nightly run + cilium connectivity test --connect-timeout 4s --request-timeout 30s --test '!pod-to-pod-encryption,!node-to-node-encryption,!allow-all-with-metrics-check' + else + cilium connectivity test --connect-timeout 4s --request-timeout 30s --test '!pod-to-pod-encryption,!node-to-node-encryption' + fi + retryCountOnTaskFailure: 3 + name: "ciliumConnectivityTests" + displayName: "Run Cilium Connectivity Tests" + + - ${{ if eq( parameters['testHubble'], true) }}: + - script: | + echo "enable Hubble metrics server" + kubectl apply -f test/integration/manifests/cilium/hubble/hubble-peer-svc.yaml + kubectl apply -f test/integration/manifests/cilium/cilium-config-hubble.yaml + kubectl rollout restart ds cilium -n kube-system + echo "wait <3 minutes for pods to be ready after restart" + kubectl rollout status ds cilium -n kube-system --timeout=3m + kubectl get pods -Aowide + echo "verify Hubble metrics endpoint is usable" + go test ./test/integration/networkobservability -count=1 -v -tags=networkobservability + retryCountOnTaskFailure: 3 + name: "HubbleConnectivityTests" + displayName: "Run Hubble Connectivity Tests" + + - script: | + if [ "$CILIUM_VERSION_TAG" = "cilium-nightly-pipeline" ]; then + kubectl get pod -owide -n cilium-test + echo "wait for pod and cilium identity deletion in cilium-test namespace" + ns="cilium-test" + while true; do + pods=$(kubectl get pods -n $ns --no-headers=true 2>/dev/null) + if [[ -z "$pods" ]]; then + echo "No pods found" + break + fi + sleep 2s + done + sleep 20s + echo "Verify cilium identities are deleted from cilium-test" + checkIdentity="$(kubectl get ciliumidentity -o json | grep cilium-test | jq -e 'length == 0')" + if [[ -n $checkIdentity ]]; then + echo "##[error]Cilium Identities still present in cilium-test namespace" + else + printf -- "Identities deleted from cilium-test namespace\n" + fi + else + echo "skip cilium identities check for PR pipeline" + fi + name: "CiliumIdentities" + displayName: "Verify Cilium Identities Deletion" + + - script: | + set -e + cd test/integration/load + echo "DualStack Overlay Linux control plane Node properties test" + CNI_TYPE=cilium_dualstack go test -timeout 30m -tags load -run ^TestDualStackProperties$ + echo "DualStack Overlay Linux control plane Load test" + go test -timeout 30m -tags load -run ^TestLoad$ + echo "DualStack Overlay Linux control plane CNS validation test" + CNI_TYPE=cilium_dualstack go test -timeout 30m -tags load -run ^TestValidateState$ + cd ../datapath + echo "Dualstack Overlay Linux datapath IPv6 test" + go test -count=1 datapath_linux_test.go -timeout 3m -tags connection -run ^TestDatapathLinux$ -tags=connection,integration -isDualStack=true + echo "Dualstack Overlay Linux datapath IPv4 test" + go test -count=1 datapath_linux_test.go -timeout 3m -tags connection -run ^TestDatapathLinux$ -tags=connection,integration + echo "cleaning up load-test namespace" + kubectl delete ns load-test + retryCountOnTaskFailure: 3 + name: "DualStack_Overlay_Linux_Tests" + displayName: "DualStack Overlay Linux Tests" + + - script: | + echo "validate pod IP assignment and check systemd-networkd restart" + kubectl get pod -owide -A + # Deleting echo-external-node deployment until cilium version matches TODO. https://github.com/cilium/cilium-cli/issues/67 is addressing the change. + # Saves 17 minutes + kubectl delete deploy -n cilium-test echo-external-node + if [ "$CILIUM_VERSION_TAG" = "cilium-nightly-pipeline" ]; then + echo "Check cilium identities in cilium-test namepsace during nightly run" + echo "expect the identities to be deleted when the namespace is deleted" + kubectl get ciliumidentity | grep cilium-test + fi + CNI_TYPE=cilium_dualstack go test -timeout 30m -tags load -run ^TestValidateState$ + echo "delete cilium connectivity test resources and re-validate state" + kubectl delete ns cilium-test + kubectl get pod -owide -A + CNI_TYPE=cilium_dualstack go test -timeout 30m -tags load -run ^TestValidateState$ + name: "validatePods" + displayName: "Validate Pods" + + - script: | + echo "validate pod IP assignment before CNS restart" + kubectl get pod -owide -A + CNI_TYPE=cilium_dualstack go test -timeout 30m -tags load -run ^TestValidateState$ + echo "restart CNS" + kubectl rollout restart ds azure-cns -n kube-system + kubectl rollout status ds azure-cns -n kube-system + kubectl get pod -owide -A + echo "validate pods after CNS restart" + CNI_TYPE=cilium_dualstack go test -timeout 30m -tags load -run ^TestValidateState$ + name: "restartCNS" + displayName: "Restart CNS and validate pods" + + - script: | + echo "Run wireserver and metadata connectivity Tests" + bash test/network/wireserver_metadata_test.sh + retryCountOnTaskFailure: 3 + name: "WireserverMetadataConnectivityTests" + displayName: "Run Wireserver and Metadata Connectivity Tests" + + - script: | + ARTIFACT_DIR=$(Build.ArtifactStagingDirectory)/test-output/ + echo $ARTIFACT_DIR + sudo rm -rf $ARTIFACT_DIR + sudo rm -rf test/integration/logs + name: "Cleanupartifactdir" + displayName: "Cleanup artifact dir" + condition: always() diff --git a/test/integration/manifests/cilium/cilium-config-dualstack.yaml b/test/integration/manifests/cilium/cilium-config-dualstack.yaml new file mode 100644 index 0000000000..7ca869e666 --- /dev/null +++ b/test/integration/manifests/cilium/cilium-config-dualstack.yaml @@ -0,0 +1,89 @@ +apiVersion: v1 +data: + agent-not-ready-taint-key: node.cilium.io/agent-not-ready + arping-refresh-period: 30s + auto-direct-node-routes: "false" + bpf-lb-external-clusterip: "false" + bpf-lb-map-max: "65536" + bpf-lb-mode: snat + bpf-map-dynamic-size-ratio: "0.0025" + bpf-policy-map-max: "16384" + bpf-root: /sys/fs/bpf + cgroup-root: /run/cilium/cgroupv2 + cilium-endpoint-gc-interval: 5m0s + cluster-id: "0" + cluster-name: default + debug: "false" + disable-cnp-status-updates: "true" + disable-endpoint-crd: "false" + enable-auto-protect-node-port-range: "true" + enable-bgp-control-plane: "false" + enable-bpf-clock-probe: "true" + enable-endpoint-health-checking: "false" + enable-endpoint-routes: "true" + enable-health-check-nodeport: "true" + enable-health-checking: "true" + enable-host-legacy-routing: "true" + enable-hubble: "false" + enable-ipv4: "true" + enable-ipv4-masquerade: "false" + enable-ipv6: "true" + enable-ipv6-masquerade: "false" + enable-k8s-terminating-endpoint: "true" + enable-l2-neigh-discovery: "true" + enable-l7-proxy: "false" + enable-local-node-route: "false" + enable-local-redirect-policy: "false" + enable-metrics: "true" + enable-policy: default + enable-remote-node-identity: "true" + enable-session-affinity: "true" + enable-svc-source-range-check: "true" + enable-vtep: "false" + enable-well-known-identities: "false" + enable-xt-socket-fallback: "true" + identity-allocation-mode: crd + install-iptables-rules: "true" + install-no-conntrack-iptables-rules: "false" + ipam: delegated-plugin + kube-proxy-replacement: strict + kube-proxy-replacement-healthz-bind-address: "0.0.0.0:10256" + local-router-ipv4: 169.254.23.0 + local-router-ipv6: "fe80::" + metrics: +cilium_bpf_map_pressure + monitor-aggregation: medium + monitor-aggregation-flags: all + monitor-aggregation-interval: 5s + node-port-bind-protection: "true" + nodes-gc-interval: 5m0s + operator-api-serve-addr: 127.0.0.1:9234 + operator-prometheus-serve-addr: :9963 + preallocate-bpf-maps: "false" + procfs: /host/proc + prometheus-serve-addr: :9962 + remove-cilium-node-taints: "true" + set-cilium-is-up-condition: "true" + sidecar-istio-proxy-image: cilium/istio_proxy + synchronize-k8s-nodes: "true" + tofqdns-dns-reject-response-code: refused + tofqdns-enable-dns-compression: "true" + tofqdns-endpoint-max-ip-per-hostname: "50" + tofqdns-idle-connection-grace-period: 0s + tofqdns-max-deferred-connection-deletes: "10000" + tofqdns-min-ttl: "3600" + tofqdns-proxy-response-max-delay: 100ms + tunnel: disabled + unmanaged-pod-watcher-interval: "15" + vtep-cidr: "" + vtep-endpoint: "" + vtep-mac: "" + vtep-mask: "" +kind: ConfigMap +metadata: + annotations: + meta.helm.sh/release-name: cilium + meta.helm.sh/release-namespace: kube-system + labels: + app.kubernetes.io/managed-by: Helm + name: cilium-config + namespace: kube-system diff --git a/test/validate/linux_validate.go b/test/validate/linux_validate.go index 2e2dcc807d..d7c80b8624 100644 --- a/test/validate/linux_validate.go +++ b/test/validate/linux_validate.go @@ -46,6 +46,11 @@ var linuxChecksMap = map[string][]check{ {"cns cache", cnsCacheStateFileIps, cnsLabelSelector, privilegedNamespace, cnsCachedAssignedIPStateCmd}, {"azure dualstackoverlay", azureVnetStateIps, privilegedLabelSelector, privilegedNamespace, azureVnetStateFileCmd}, }, + "cilium_dualstack": { + {"azure dualstackoverlay", azureVnetStateIps, privilegedLabelSelector, privilegedNamespace, azureVnetStateFileCmd}, + {"cilium", ciliumStateFileIps, ciliumLabelSelector, privilegedNamespace, ciliumStateFileCmd}, + {"cns cache", cnsCacheStateFileIps, cnsLabelSelector, privilegedNamespace, cnsLocalCacheCmd}, + }, } type CnsManagedState struct { From 5d5fad6ef1a38a0656f057dbde9c0baddf5baaa5 Mon Sep 17 00:00:00 2001 From: ryandenney Date: Tue, 28 Nov 2023 02:32:44 -0500 Subject: [PATCH 02/27] changing step order --- .pipelines/pipeline.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pipelines/pipeline.yaml b/.pipelines/pipeline.yaml index 61e79add56..b78ad15cb1 100644 --- a/.pipelines/pipeline.yaml +++ b/.pipelines/pipeline.yaml @@ -419,7 +419,7 @@ stages: vmSize: Standard_B2ms k8sVersion: "" dependsOn: "test" - + # Cilium Dualstack Overlay E2E tests - template: singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-job-template.yaml parameters: From 53eca392d2b89d002411b3f56a1385cfb76a081a Mon Sep 17 00:00:00 2001 From: ryandenney Date: Tue, 28 Nov 2023 16:28:46 -0500 Subject: [PATCH 03/27] remove dropgz step --- .../cilium-dualstackoverlay-e2e-job-template.yaml | 1 + .../cilium-dualstackoverlay-e2e-step-template.yaml | 11 ----------- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-job-template.yaml b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-job-template.yaml index b38ec3ec6f..902e685ea0 100644 --- a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-job-template.yaml +++ b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-job-template.yaml @@ -75,6 +75,7 @@ stages: displayName: "Failure Logs" dependsOn: - ${{ parameters.name }} + - cni_${{ parameters.os }} condition: failed() steps: - template: ../../templates/log-template.yaml diff --git a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml index 517f627e12..0cf764376b 100644 --- a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml +++ b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml @@ -88,17 +88,6 @@ steps: name: "installKubetest" displayName: "Set up Conformance Tests" - - ${{ if eq( parameters['testDropgz'], true) }}: - - script: | - echo "##vso[task.setvariable variable=dropgzVersion]$(make cni-dropgz-test-version)" - name: dropgzTestVersion - displayName: "Dropgz Test Version" - - ${{ else }}: - - script: | - echo "##vso[task.setvariable variable=dropgzVersion]$(make cni-dropgz-version)" - name: dropgzVersion - displayName: "Dropgz Version" - - script: | echo "Start Azilium E2E Tests on Overlay Cluster" # Nightly does not build images per commit. Will use existing image. From 957ae5d9b485a0fab9934d81f4bcf2dc3efd7b95 Mon Sep 17 00:00:00 2001 From: ryandenney Date: Thu, 14 Dec 2023 14:57:13 -0500 Subject: [PATCH 04/27] add CNS instead of azurevnet --- test/validate/linux_validate.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/validate/linux_validate.go b/test/validate/linux_validate.go index d7c80b8624..f58aeeba0d 100644 --- a/test/validate/linux_validate.go +++ b/test/validate/linux_validate.go @@ -47,7 +47,7 @@ var linuxChecksMap = map[string][]check{ {"azure dualstackoverlay", azureVnetStateIps, privilegedLabelSelector, privilegedNamespace, azureVnetStateFileCmd}, }, "cilium_dualstack": { - {"azure dualstackoverlay", azureVnetStateIps, privilegedLabelSelector, privilegedNamespace, azureVnetStateFileCmd}, + {"cns", cnsManagedStateFileIps, cnsLabelSelector, privilegedNamespace, cnsManagedStateFileCmd}, // cns configmap "ManageEndpointState": true, | Endpoints managed in CNS State File {"cilium", ciliumStateFileIps, ciliumLabelSelector, privilegedNamespace, ciliumStateFileCmd}, {"cns cache", cnsCacheStateFileIps, cnsLabelSelector, privilegedNamespace, cnsLocalCacheCmd}, }, From c07b1fe2e78fc75cff5f1e118c0dcb70707d6a87 Mon Sep 17 00:00:00 2001 From: ryandenney Date: Thu, 14 Dec 2023 18:31:42 -0500 Subject: [PATCH 05/27] add v6 CNS state file test --- test/validate/linux_validate.go | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/test/validate/linux_validate.go b/test/validate/linux_validate.go index f58aeeba0d..4238be1ba2 100644 --- a/test/validate/linux_validate.go +++ b/test/validate/linux_validate.go @@ -47,7 +47,7 @@ var linuxChecksMap = map[string][]check{ {"azure dualstackoverlay", azureVnetStateIps, privilegedLabelSelector, privilegedNamespace, azureVnetStateFileCmd}, }, "cilium_dualstack": { - {"cns", cnsManagedStateFileIps, cnsLabelSelector, privilegedNamespace, cnsManagedStateFileCmd}, // cns configmap "ManageEndpointState": true, | Endpoints managed in CNS State File + {"cns", cnsManagedStateFileDualStackIps, cnsLabelSelector, privilegedNamespace, cnsManagedStateFileCmd}, // cns configmap "ManageEndpointState": true, | Endpoints managed in CNS State File {"cilium", ciliumStateFileIps, ciliumLabelSelector, privilegedNamespace, ciliumStateFileCmd}, {"cns cache", cnsCacheStateFileIps, cnsLabelSelector, privilegedNamespace, cnsLocalCacheCmd}, }, @@ -75,7 +75,7 @@ type NetworkingAddressing struct { } type Address struct { - Addr string `json:"ipv4"` + Addr string `json:"ip"` } // parse azure-vnet.json @@ -146,6 +146,25 @@ func cnsManagedStateFileIps(result []byte) (map[string]string, error) { return cnsPodIps, nil } +func cnsManagedStateFileDualStackIps(result []byte) (map[string]string, error) { + var cnsResult CnsManagedState + err := json.Unmarshal(result, &cnsResult) + if err != nil { + return nil, errors.Wrapf(err, "failed to unmarshal cns endpoint list") + } + + cnsPodIps := make(map[string]string) + for _, v := range cnsResult.Endpoints { + for ifName, ip := range v.IfnameToIPMap { + if ifName == "eth0" { + cnsPodIps[ip.IPv4[0].IP.String()] = v.PodName + cnsPodIps[ip.IPv6[0].IP.String()] = v.PodName + } + } + } + return cnsPodIps, nil +} + func ciliumStateFileIps(result []byte) (map[string]string, error) { var ciliumResult []CiliumEndpointStatus err := json.Unmarshal(result, &ciliumResult) From cc75195fc411ae0d9efbfb17d6143374f8da546a Mon Sep 17 00:00:00 2001 From: ryandenney Date: Thu, 28 Dec 2023 02:29:26 -0500 Subject: [PATCH 06/27] remove nightly pipeline --- .../cilium-dualstackoverlay-e2e-step-template.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml index 0cf764376b..184b22f611 100644 --- a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml +++ b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml @@ -40,7 +40,6 @@ steps: pwd kubectl cluster-info kubectl get po -owide -A - if [ "$CILIUM_VERSION_TAG" = "cilium-nightly-pipeline" ]; then FILE_PATH=-nightly && echo "Running nightly"; fi echo "deploy Cilium ConfigMap" kubectl apply -f test/integration/manifests/cilium/cilium${FILE_PATH}-config.yaml echo "install Cilium ${CILIUM_VERSION_TAG}" From c6ecee8b448a64b60228691939faf7d47175f527 Mon Sep 17 00:00:00 2001 From: ryandenney Date: Fri, 5 Jan 2024 18:35:00 -0500 Subject: [PATCH 07/27] removing nightly and adding v6 to cilium linux validate --- ...um-dualstackoverlay-e2e-step-template.yaml | 48 +------------------ test/validate/linux_validate.go | 29 +++++++++-- 2 files changed, 26 insertions(+), 51 deletions(-) diff --git a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml index 184b22f611..c314666375 100644 --- a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml +++ b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml @@ -89,13 +89,7 @@ steps: - script: | echo "Start Azilium E2E Tests on Overlay Cluster" - # Nightly does not build images per commit. Will use existing image. - if [ "$CILIUM_VERSION_TAG" = "cilium-nightly-pipeline" ] - then - CNS=$(CNS_VERSION) DROPGZ=$(DROP_GZ_VERSION) && echo "Running nightly" - else - CNS=$(make cns-version) DROPGZ=$(dropgzVersion) - fi + CNS=$(make cns-version) DROPGZ=$(dropgzVersion) sudo -E env "PATH=$PATH" make test-integration CNS_VERSION=${CNS} CNI_DROPGZ_VERSION=${DROPGZ} INSTALL_CNS=true INSTALL_OVERLAY=true TEST_DROPGZ=${{ parameters.testDropgz }} retryCountOnTaskFailure: 3 name: "aziliumTest" @@ -143,13 +137,7 @@ steps: - script: | echo "Run Cilium Connectivity Tests" cilium status - if [ "$CILIUM_VERSION_TAG" = "cilium-nightly-pipeline" ] - then - # Until the issue https://github.com/cilium/cilium/issues/29213 is resolved, skip metrics check for nightly run - cilium connectivity test --connect-timeout 4s --request-timeout 30s --test '!pod-to-pod-encryption,!node-to-node-encryption,!allow-all-with-metrics-check' - else - cilium connectivity test --connect-timeout 4s --request-timeout 30s --test '!pod-to-pod-encryption,!node-to-node-encryption' - fi + cilium connectivity test --connect-timeout 4s --request-timeout 30s --test '!pod-to-pod-encryption,!node-to-node-encryption' retryCountOnTaskFailure: 3 name: "ciliumConnectivityTests" displayName: "Run Cilium Connectivity Tests" @@ -169,33 +157,6 @@ steps: name: "HubbleConnectivityTests" displayName: "Run Hubble Connectivity Tests" - - script: | - if [ "$CILIUM_VERSION_TAG" = "cilium-nightly-pipeline" ]; then - kubectl get pod -owide -n cilium-test - echo "wait for pod and cilium identity deletion in cilium-test namespace" - ns="cilium-test" - while true; do - pods=$(kubectl get pods -n $ns --no-headers=true 2>/dev/null) - if [[ -z "$pods" ]]; then - echo "No pods found" - break - fi - sleep 2s - done - sleep 20s - echo "Verify cilium identities are deleted from cilium-test" - checkIdentity="$(kubectl get ciliumidentity -o json | grep cilium-test | jq -e 'length == 0')" - if [[ -n $checkIdentity ]]; then - echo "##[error]Cilium Identities still present in cilium-test namespace" - else - printf -- "Identities deleted from cilium-test namespace\n" - fi - else - echo "skip cilium identities check for PR pipeline" - fi - name: "CiliumIdentities" - displayName: "Verify Cilium Identities Deletion" - - script: | set -e cd test/integration/load @@ -222,11 +183,6 @@ steps: # Deleting echo-external-node deployment until cilium version matches TODO. https://github.com/cilium/cilium-cli/issues/67 is addressing the change. # Saves 17 minutes kubectl delete deploy -n cilium-test echo-external-node - if [ "$CILIUM_VERSION_TAG" = "cilium-nightly-pipeline" ]; then - echo "Check cilium identities in cilium-test namepsace during nightly run" - echo "expect the identities to be deleted when the namespace is deleted" - kubectl get ciliumidentity | grep cilium-test - fi CNI_TYPE=cilium_dualstack go test -timeout 30m -tags load -run ^TestValidateState$ echo "delete cilium connectivity test resources and re-validate state" kubectl delete ns cilium-test diff --git a/test/validate/linux_validate.go b/test/validate/linux_validate.go index 4238be1ba2..129231885f 100644 --- a/test/validate/linux_validate.go +++ b/test/validate/linux_validate.go @@ -75,7 +75,8 @@ type NetworkingAddressing struct { } type Address struct { - Addr string `json:"ip"` + IPv4 string `json:"ipv4"` + IPv6 string `json:"ipv6"` } // parse azure-vnet.json @@ -138,8 +139,7 @@ func cnsManagedStateFileIps(result []byte) (map[string]string, error) { for _, v := range cnsResult.Endpoints { for ifName, ip := range v.IfnameToIPMap { if ifName == "eth0" { - ip := ip.IPv4[0].IP.String() - cnsPodIps[ip] = v.PodName + cnsPodIps[ip.IPv4[0].IP.String()] = v.PodName } } } @@ -175,8 +175,27 @@ func ciliumStateFileIps(result []byte) (map[string]string, error) { ciliumPodIps := make(map[string]string) for _, v := range ciliumResult { for _, addr := range v.Status.Networking.Addresses { - if addr.Addr != "" { - ciliumPodIps[addr.Addr] = v.Status.Networking.InterfaceName + if addr.IPv4 != "" { + ciliumPodIps[addr.IPv4] = v.Status.Networking.InterfaceName + } + } + } + return ciliumPodIps, nil +} + +func ciliumStateFileDualStackIps(result []byte) (map[string]string, error) { + var ciliumResult []CiliumEndpointStatus + err := json.Unmarshal(result, &ciliumResult) + if err != nil { + return nil, errors.Wrapf(err, "failed to unmarshal cilium endpoint list") + } + + ciliumPodIps := make(map[string]string) + for _, v := range ciliumResult { + for _, addr := range v.Status.Networking.Addresses { + if addr.IPv4 != "" && addr.IPv6 != "" { + ciliumPodIps[addr.IPv4] = v.Status.Networking.InterfaceName + ciliumPodIps[addr.IPv6] = v.Status.Networking.InterfaceName } } } From 1cc3dc88477fadc0abae737271ae1b5c32368e4f Mon Sep 17 00:00:00 2001 From: ryandenney Date: Sun, 7 Jan 2024 09:59:17 -0500 Subject: [PATCH 08/27] fix func name --- test/validate/linux_validate.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/validate/linux_validate.go b/test/validate/linux_validate.go index 129231885f..4b52546e44 100644 --- a/test/validate/linux_validate.go +++ b/test/validate/linux_validate.go @@ -48,7 +48,7 @@ var linuxChecksMap = map[string][]check{ }, "cilium_dualstack": { {"cns", cnsManagedStateFileDualStackIps, cnsLabelSelector, privilegedNamespace, cnsManagedStateFileCmd}, // cns configmap "ManageEndpointState": true, | Endpoints managed in CNS State File - {"cilium", ciliumStateFileIps, ciliumLabelSelector, privilegedNamespace, ciliumStateFileCmd}, + {"cilium", ciliumStateFileDualStackIps, ciliumLabelSelector, privilegedNamespace, ciliumStateFileCmd}, {"cns cache", cnsCacheStateFileIps, cnsLabelSelector, privilegedNamespace, cnsLocalCacheCmd}, }, } From e2f4a2a2b1251152aa892e449e3833b952631842 Mon Sep 17 00:00:00 2001 From: ryandenney Date: Wed, 17 Jan 2024 17:16:05 -0500 Subject: [PATCH 09/27] removing unneeded steps --- ...um-dualstackoverlay-e2e-step-template.yaml | 30 ------------------- 1 file changed, 30 deletions(-) diff --git a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml index c314666375..fb698b69aa 100644 --- a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml +++ b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml @@ -5,12 +5,6 @@ parameters: testHubble: false steps: - - bash: | - echo $UID - sudo rm -rf $(System.DefaultWorkingDirectory)/* - displayName: "Set up OS environment" - - - checkout: self - bash: | go version @@ -73,20 +67,6 @@ steps: name: "installCiliumCLI" displayName: "Install Cilium CLI" - - script: | - echo "install kubetest2 and gsutils" - go get github.com/onsi/ginkgo/ginkgo - go get github.com/onsi/gomega/... - go install github.com/onsi/ginkgo/ginkgo@latest - go install sigs.k8s.io/kubetest2@latest - go install sigs.k8s.io/kubetest2/kubetest2-noop@latest - go install sigs.k8s.io/kubetest2/kubetest2-tester-ginkgo@latest - wget https://storage.googleapis.com/pub/gsutil.tar.gz - tar xfz gsutil.tar.gz - sudo mv gsutil /usr/local/bin - name: "installKubetest" - displayName: "Set up Conformance Tests" - - script: | echo "Start Azilium E2E Tests on Overlay Cluster" CNS=$(make cns-version) DROPGZ=$(dropgzVersion) @@ -124,16 +104,6 @@ steps: name: "CiliumStatus" displayName: "Cilium Status" - - script: | - echo "Run Service Conformance E2E" - export PATH=${PATH}:/usr/local/bin/gsutil - KUBECONFIG=~/.kube/config kubetest2 noop \ - --test ginkgo -- \ - --focus-regex "Services.*\[Conformance\].*" \ - --skip-regex "should serve endpoints on same port and different protocols" # Cilium does not support this feature. For more info on test: https://github.com/kubernetes/kubernetes/blame/e602e9e03cd744c23dde9fee09396812dd7bdd93/test/conformance/testdata/conformance.yaml#L1780-L1788 - name: "servicesConformance" - displayName: "Run Services Conformance Tests" - - script: | echo "Run Cilium Connectivity Tests" cilium status From 2edc416fb7323eea8825ed9cf8fc27cc3e465776 Mon Sep 17 00:00:00 2001 From: ryandenney Date: Thu, 18 Jan 2024 09:11:14 -0500 Subject: [PATCH 10/27] addressing comments --- .pipelines/pipeline.yaml | 3 --- ...ium-dualstackoverlay-e2e-job-template.yaml | 2 +- ...um-dualstackoverlay-e2e-step-template.yaml | 19 +------------------ 3 files changed, 2 insertions(+), 22 deletions(-) diff --git a/.pipelines/pipeline.yaml b/.pipelines/pipeline.yaml index b78ad15cb1..ec470c96f0 100644 --- a/.pipelines/pipeline.yaml +++ b/.pipelines/pipeline.yaml @@ -578,9 +578,6 @@ stages: cilium_dualstackoverlay_e2e: name: cilium_dualstackoverlay_e2e clusterName: "cildsovere2e" - cilium_dualstackoverlay_cni_e2e: - name: cilium_dualstackoverlay_cni_e2e - clustername: "cildsovcnie2e" steps: - template: templates/delete-cluster.yaml parameters: diff --git a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-job-template.yaml b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-job-template.yaml index 902e685ea0..6e32efe7ac 100644 --- a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-job-template.yaml +++ b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-job-template.yaml @@ -1,7 +1,6 @@ parameters: name: "" displayName: "" - testDropgz: "" clusterType: "" clusterName: "" vmSize: "" @@ -64,6 +63,7 @@ stages: sub: $(BUILD_VALIDATIONS_SERVICE_CONNECTION) clusterName: ${{ parameters.clusterName }}-$(commitID) os: ${{ parameters.os }} + cni: cilium dependsOn: ${{ parameters.name }} dualstack: true dns: true diff --git a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml index fb698b69aa..f2c5f4b3c2 100644 --- a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml +++ b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml @@ -1,6 +1,5 @@ parameters: name: "" - testDropgz: "" clusterName: "" testHubble: false @@ -69,8 +68,7 @@ steps: - script: | echo "Start Azilium E2E Tests on Overlay Cluster" - CNS=$(make cns-version) DROPGZ=$(dropgzVersion) - sudo -E env "PATH=$PATH" make test-integration CNS_VERSION=${CNS} CNI_DROPGZ_VERSION=${DROPGZ} INSTALL_CNS=true INSTALL_OVERLAY=true TEST_DROPGZ=${{ parameters.testDropgz }} + sudo -E env "PATH=$PATH" make test-integration AZURE_IPAM_VERSION=${IPAM} CNS_VERSION=${CNS} INSTALL_CNS=true INSTALL_DUALSTACK_OVERLAY=true retryCountOnTaskFailure: 3 name: "aziliumTest" displayName: "Run Azilium E2E on AKS Overlay" @@ -112,21 +110,6 @@ steps: name: "ciliumConnectivityTests" displayName: "Run Cilium Connectivity Tests" - - ${{ if eq( parameters['testHubble'], true) }}: - - script: | - echo "enable Hubble metrics server" - kubectl apply -f test/integration/manifests/cilium/hubble/hubble-peer-svc.yaml - kubectl apply -f test/integration/manifests/cilium/cilium-config-hubble.yaml - kubectl rollout restart ds cilium -n kube-system - echo "wait <3 minutes for pods to be ready after restart" - kubectl rollout status ds cilium -n kube-system --timeout=3m - kubectl get pods -Aowide - echo "verify Hubble metrics endpoint is usable" - go test ./test/integration/networkobservability -count=1 -v -tags=networkobservability - retryCountOnTaskFailure: 3 - name: "HubbleConnectivityTests" - displayName: "Run Hubble Connectivity Tests" - - script: | set -e cd test/integration/load From 324cdd547c61604616cb67feeed2b2b8a3f2f177 Mon Sep 17 00:00:00 2001 From: ryandenney Date: Thu, 18 Jan 2024 12:44:29 -0500 Subject: [PATCH 11/27] remove 120 timeout --- .../cilium-dualstackoverlay-e2e-job-template.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-job-template.yaml b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-job-template.yaml index 6e32efe7ac..08f45ce631 100644 --- a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-job-template.yaml +++ b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-job-template.yaml @@ -45,7 +45,6 @@ stages: jobs: - job: ${{ parameters.name }} displayName: Cilium Dualstack Overlay Test Suite - (${{ parameters.name }}) - timeoutInMinutes: 120 pool: name: $(BUILD_POOL_NAME_DEFAULT) demands: From 5bb243ce7d03c0deafffdaa4f6cc8886e3e3e43f Mon Sep 17 00:00:00 2001 From: ryandenney Date: Wed, 24 Jan 2024 04:44:47 -0500 Subject: [PATCH 12/27] cluster type to dualstack-byocni-nokubeproxy-up --- .pipelines/pipeline.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pipelines/pipeline.yaml b/.pipelines/pipeline.yaml index ec470c96f0..d58d867fa2 100644 --- a/.pipelines/pipeline.yaml +++ b/.pipelines/pipeline.yaml @@ -426,7 +426,7 @@ stages: name: "cilium_dualstackoverlay_e2e" displayName: Cilium on AKS DualStack Overlay os: linux - clusterType: cilium-dualstack-up + clusterType: dualstack-byocni-nokubeproxy-up clusterName: "cildsovere2e" vmSize: Standard_B2ms k8sVersion: "" From 777dbb57051eb592fddfd948e2bfc61d78862c58 Mon Sep 17 00:00:00 2001 From: ryandenney Date: Thu, 25 Jan 2024 02:06:36 -0500 Subject: [PATCH 13/27] setting to INSTALL_OVERLAY --- .../cilium-dualstackoverlay-e2e-step-template.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml index f2c5f4b3c2..ce4ab04874 100644 --- a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml +++ b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml @@ -68,7 +68,7 @@ steps: - script: | echo "Start Azilium E2E Tests on Overlay Cluster" - sudo -E env "PATH=$PATH" make test-integration AZURE_IPAM_VERSION=${IPAM} CNS_VERSION=${CNS} INSTALL_CNS=true INSTALL_DUALSTACK_OVERLAY=true + sudo -E env "PATH=$PATH" make test-integration AZURE_IPAM_VERSION=${IPAM} CNS_VERSION=${CNS} INSTALL_CNS=true INSTALL_OVERLAY=true retryCountOnTaskFailure: 3 name: "aziliumTest" displayName: "Run Azilium E2E on AKS Overlay" From 2475e4f6e4d66e9f1b82e4eec0345208aaf7081c Mon Sep 17 00:00:00 2001 From: ryandenney Date: Thu, 25 Jan 2024 04:32:47 -0500 Subject: [PATCH 14/27] using make to get azure-ipam nad cns --- .../cilium-dualstackoverlay-e2e-step-template.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml index ce4ab04874..0fd022ca6b 100644 --- a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml +++ b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml @@ -68,7 +68,7 @@ steps: - script: | echo "Start Azilium E2E Tests on Overlay Cluster" - sudo -E env "PATH=$PATH" make test-integration AZURE_IPAM_VERSION=${IPAM} CNS_VERSION=${CNS} INSTALL_CNS=true INSTALL_OVERLAY=true + sudo -E env "PATH=$PATH" make test-integration AZURE_IPAM_VERSION=$(make azure-ipam-version) CNS_VERSION=$(make cns-version) INSTALL_CNS=true INSTALL_OVERLAY=true retryCountOnTaskFailure: 3 name: "aziliumTest" displayName: "Run Azilium E2E on AKS Overlay" From 6e63f5db981bee4f9af3db8b12b73ea7a8851dac Mon Sep 17 00:00:00 2001 From: ryandenney Date: Thu, 25 Jan 2024 16:18:51 -0500 Subject: [PATCH 15/27] fixing yaml in cil dual steps --- .../cilium-dualstackoverlay-e2e-step-template.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml index 0fd022ca6b..d3418a949b 100644 --- a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml +++ b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml @@ -34,7 +34,7 @@ steps: kubectl cluster-info kubectl get po -owide -A echo "deploy Cilium ConfigMap" - kubectl apply -f test/integration/manifests/cilium/cilium${FILE_PATH}-config.yaml + kubectl apply -f test/integration/manifests/cilium/cilium-config-dualstack.yaml echo "install Cilium ${CILIUM_VERSION_TAG}" # Passes Cilium image to daemonset and deployment envsubst '${CILIUM_VERSION_TAG},${CILIUM_IMAGE_REGISTRY}' < test/integration/manifests/cilium/daemonset.yaml | kubectl apply -f - From aca4407cf608dd58e417cfd0508db142acd1f223 Mon Sep 17 00:00:00 2001 From: ryandenney Date: Mon, 29 Jan 2024 18:06:43 -0500 Subject: [PATCH 16/27] update step --- .../cilium-dualstackoverlay-e2e-step-template.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml index d3418a949b..a0ac397ac7 100644 --- a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml +++ b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml @@ -68,7 +68,7 @@ steps: - script: | echo "Start Azilium E2E Tests on Overlay Cluster" - sudo -E env "PATH=$PATH" make test-integration AZURE_IPAM_VERSION=$(make azure-ipam-version) CNS_VERSION=$(make cns-version) INSTALL_CNS=true INSTALL_OVERLAY=true + sudo -E env "PATH=$PATH" make test-load SCALE_UP=32 OS_TYPE=linux VALIDATE_STATEFILE=true INSTALL_CNS=true INSTALL_OVERLAY=true AZURE_IPAM_VERSION=$(make azure-ipam-version) CNS_VERSION=$(make cns-version) CLEANUP=true retryCountOnTaskFailure: 3 name: "aziliumTest" displayName: "Run Azilium E2E on AKS Overlay" From a8980028e29f1154214f87d9dfa9acebcfd6be55 Mon Sep 17 00:00:00 2001 From: ryandenney Date: Mon, 29 Jan 2024 19:04:03 -0500 Subject: [PATCH 17/27] skipping bad step for cilium dualstack --- .pipelines/cni/k8s-e2e/k8s-e2e-job-template.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pipelines/cni/k8s-e2e/k8s-e2e-job-template.yaml b/.pipelines/cni/k8s-e2e/k8s-e2e-job-template.yaml index 2ebc576077..4d5d196f6d 100644 --- a/.pipelines/cni/k8s-e2e/k8s-e2e-job-template.yaml +++ b/.pipelines/cni/k8s-e2e/k8s-e2e-job-template.yaml @@ -126,7 +126,7 @@ jobs: name: DualStack clusterName: ${{ parameters.clusterName }} ginkgoFocus: '\[Feature:IPv6DualStack\]' - ginkgoSkip: 'SCTP|session affinity' + ginkgoSkip: 'SCTP|session affinity|should function for service endpoints using hostNetwork' # Cilium dualstack has a known issue with this test https://github.com/cilium/cilium/issues/25135 os: ${{ parameters.os }} processes: 8 attempts: 3 From 081eccf947168875391e9cf0e10db128a17eb49d Mon Sep 17 00:00:00 2001 From: ryandenney Date: Mon, 29 Jan 2024 19:09:29 -0500 Subject: [PATCH 18/27] update variable name --- test/validate/linux_validate.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/validate/linux_validate.go b/test/validate/linux_validate.go index 4b52546e44..d7959f3aff 100644 --- a/test/validate/linux_validate.go +++ b/test/validate/linux_validate.go @@ -49,7 +49,7 @@ var linuxChecksMap = map[string][]check{ "cilium_dualstack": { {"cns", cnsManagedStateFileDualStackIps, cnsLabelSelector, privilegedNamespace, cnsManagedStateFileCmd}, // cns configmap "ManageEndpointState": true, | Endpoints managed in CNS State File {"cilium", ciliumStateFileDualStackIps, ciliumLabelSelector, privilegedNamespace, ciliumStateFileCmd}, - {"cns cache", cnsCacheStateFileIps, cnsLabelSelector, privilegedNamespace, cnsLocalCacheCmd}, + {"cns cache", cnsCacheStateFileIps, cnsLabelSelector, privilegedNamespace, cnsCachedAssignedIPStateCmd}, }, } From e1f11c6e4efcf8dae464c698d1cb16ed80e72e36 Mon Sep 17 00:00:00 2001 From: ryandenney Date: Wed, 31 Jan 2024 08:53:07 -0500 Subject: [PATCH 19/27] CNI type --- .pipelines/singletenancy/aks-swift/e2e-step-template.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pipelines/singletenancy/aks-swift/e2e-step-template.yaml b/.pipelines/singletenancy/aks-swift/e2e-step-template.yaml index ddb4c21925..68480f2e64 100644 --- a/.pipelines/singletenancy/aks-swift/e2e-step-template.yaml +++ b/.pipelines/singletenancy/aks-swift/e2e-step-template.yaml @@ -52,7 +52,7 @@ steps: pwd kubectl cluster-info kubectl get po -owide -A - sudo -E env "PATH=$PATH" make test-load SCALE_UP=32 OS_TYPE=linux CNI_TYPE=cniv2 VALIDATE_STATEFILE=true INSTALL_CNS=true INSTALL_AZURE_VNET=true CNS_VERSION=$(make cns-version) CNI_VERSION=$(make cni-version) CLEANUP=true + sudo -E env "PATH=$PATH" make test-load SCALE_UP=32 OS_TYPE=linux CNI_TYPE=cilium_dualstack VALIDATE_STATEFILE=true INSTALL_CNS=true INSTALL_AZURE_VNET=true CNS_VERSION=$(make cns-version) CNI_VERSION=$(make cni-version) CLEANUP=true retryCountOnTaskFailure: 3 name: "aksswifte2e" displayName: "Run AKS Swift E2E" From 40c967f6ce37d71dd4b991fbc5bfe88ac9b78a2e Mon Sep 17 00:00:00 2001 From: ryandenney Date: Wed, 31 Jan 2024 18:47:18 -0500 Subject: [PATCH 20/27] remove file path --- .../cilium-dualstackoverlay-e2e-step-template.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml index a0ac397ac7..1d9440a825 100644 --- a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml +++ b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml @@ -40,8 +40,8 @@ steps: envsubst '${CILIUM_VERSION_TAG},${CILIUM_IMAGE_REGISTRY}' < test/integration/manifests/cilium/daemonset.yaml | kubectl apply -f - envsubst '${CILIUM_VERSION_TAG},${CILIUM_IMAGE_REGISTRY}' < test/integration/manifests/cilium/deployment.yaml | kubectl apply -f - # Use different file directories for nightly and current cilium version - kubectl apply -f test/integration/manifests/cilium/cilium${FILE_PATH}-agent - kubectl apply -f test/integration/manifests/cilium/cilium${FILE_PATH}-operator + kubectl apply -f test/integration/manifests/cilium/cilium-agent + kubectl apply -f test/integration/manifests/cilium/cilium-operator kubectl get po -owide -A name: "installCilium" displayName: "Install Cilium on AKS Overlay" From d6c5756f712809dba75692fbecfa1fd8a70adf66 Mon Sep 17 00:00:00 2001 From: ryandenney Date: Wed, 31 Jan 2024 20:02:03 -0500 Subject: [PATCH 21/27] fixing CNI versions --- .pipelines/singletenancy/aks-swift/e2e-step-template.yaml | 2 +- .../cilium-dualstackoverlay-e2e-step-template.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.pipelines/singletenancy/aks-swift/e2e-step-template.yaml b/.pipelines/singletenancy/aks-swift/e2e-step-template.yaml index 68480f2e64..ddb4c21925 100644 --- a/.pipelines/singletenancy/aks-swift/e2e-step-template.yaml +++ b/.pipelines/singletenancy/aks-swift/e2e-step-template.yaml @@ -52,7 +52,7 @@ steps: pwd kubectl cluster-info kubectl get po -owide -A - sudo -E env "PATH=$PATH" make test-load SCALE_UP=32 OS_TYPE=linux CNI_TYPE=cilium_dualstack VALIDATE_STATEFILE=true INSTALL_CNS=true INSTALL_AZURE_VNET=true CNS_VERSION=$(make cns-version) CNI_VERSION=$(make cni-version) CLEANUP=true + sudo -E env "PATH=$PATH" make test-load SCALE_UP=32 OS_TYPE=linux CNI_TYPE=cniv2 VALIDATE_STATEFILE=true INSTALL_CNS=true INSTALL_AZURE_VNET=true CNS_VERSION=$(make cns-version) CNI_VERSION=$(make cni-version) CLEANUP=true retryCountOnTaskFailure: 3 name: "aksswifte2e" displayName: "Run AKS Swift E2E" diff --git a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml index 1d9440a825..892c4d2554 100644 --- a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml +++ b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml @@ -68,7 +68,7 @@ steps: - script: | echo "Start Azilium E2E Tests on Overlay Cluster" - sudo -E env "PATH=$PATH" make test-load SCALE_UP=32 OS_TYPE=linux VALIDATE_STATEFILE=true INSTALL_CNS=true INSTALL_OVERLAY=true AZURE_IPAM_VERSION=$(make azure-ipam-version) CNS_VERSION=$(make cns-version) CLEANUP=true + sudo -E env "PATH=$PATH" make test-load SCALE_UP=32 OS_TYPE=linux CNI_TYPE=cilium_dualstack VALIDATE_STATEFILE=true INSTALL_CNS=true INSTALL_OVERLAY=true AZURE_IPAM_VERSION=$(make azure-ipam-version) CNS_VERSION=$(make cns-version) CLEANUP=true retryCountOnTaskFailure: 3 name: "aziliumTest" displayName: "Run Azilium E2E on AKS Overlay" From 47d1c7abe60778fe317d00b4eba6b3eea77cdd4d Mon Sep 17 00:00:00 2001 From: ryandenney Date: Thu, 1 Feb 2024 08:52:40 -0500 Subject: [PATCH 22/27] removing log outputs --- ...um-dualstackoverlay-e2e-step-template.yaml | 29 ------------------- 1 file changed, 29 deletions(-) diff --git a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml index 892c4d2554..5a8cc233b4 100644 --- a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml +++ b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml @@ -73,26 +73,6 @@ steps: name: "aziliumTest" displayName: "Run Azilium E2E on AKS Overlay" - - script: | - echo "Status of the nodes and pods after the test" - kubectl get nodes -o wide - kubectl get pods -A -o wide - echo "Logs will be available as a build artifact" - ARTIFACT_DIR=$(Build.ArtifactStagingDirectory)/test-output/ - echo $ARTIFACT_DIR - sudo rm -rf $ARTIFACT_DIR - sudo mkdir $ARTIFACT_DIR - sudo cp test/integration/logs/* $ARTIFACT_DIR - name: "GetLogs" - displayName: "Get logs" - condition: always() - - - task: PublishBuildArtifacts@1 - inputs: - artifactName: test-output - pathtoPublish: "$(Build.ArtifactStagingDirectory)/test-output" - condition: always() - - script: | kubectl get pods -A echo "Waiting < 2 minutes for cilium to be ready" @@ -163,12 +143,3 @@ steps: retryCountOnTaskFailure: 3 name: "WireserverMetadataConnectivityTests" displayName: "Run Wireserver and Metadata Connectivity Tests" - - - script: | - ARTIFACT_DIR=$(Build.ArtifactStagingDirectory)/test-output/ - echo $ARTIFACT_DIR - sudo rm -rf $ARTIFACT_DIR - sudo rm -rf test/integration/logs - name: "Cleanupartifactdir" - displayName: "Cleanup artifact dir" - condition: always() From 88d2e2329ebe568afcdb29b77616f98da1c26a33 Mon Sep 17 00:00:00 2001 From: ryandenney Date: Thu, 1 Feb 2024 16:04:55 -0500 Subject: [PATCH 23/27] change step --- ...um-dualstackoverlay-e2e-step-template.yaml | 30 +++++++------------ 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml index 5a8cc233b4..d853fe6802 100644 --- a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml +++ b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml @@ -90,25 +90,17 @@ steps: name: "ciliumConnectivityTests" displayName: "Run Cilium Connectivity Tests" - - script: | - set -e - cd test/integration/load - echo "DualStack Overlay Linux control plane Node properties test" - CNI_TYPE=cilium_dualstack go test -timeout 30m -tags load -run ^TestDualStackProperties$ - echo "DualStack Overlay Linux control plane Load test" - go test -timeout 30m -tags load -run ^TestLoad$ - echo "DualStack Overlay Linux control plane CNS validation test" - CNI_TYPE=cilium_dualstack go test -timeout 30m -tags load -run ^TestValidateState$ - cd ../datapath - echo "Dualstack Overlay Linux datapath IPv6 test" - go test -count=1 datapath_linux_test.go -timeout 3m -tags connection -run ^TestDatapathLinux$ -tags=connection,integration -isDualStack=true - echo "Dualstack Overlay Linux datapath IPv4 test" - go test -count=1 datapath_linux_test.go -timeout 3m -tags connection -run ^TestDatapathLinux$ -tags=connection,integration - echo "cleaning up load-test namespace" - kubectl delete ns load-test - retryCountOnTaskFailure: 3 - name: "DualStack_Overlay_Linux_Tests" - displayName: "DualStack Overlay Linux Tests" + - script: | + set -e + kubectl get po -owide -A + cd test/integration/datapath + echo "Dualstack Overlay Linux datapath IPv6 test" + go test -count=1 datapath_linux_test.go -timeout 3m -tags connection -run ^TestDatapathLinux$ -tags=connection,integration -isDualStack=true + echo "Dualstack Overlay Linux datapath IPv4 test" + go test -count=1 datapath_linux_test.go -timeout 3m -tags connection -run ^TestDatapathLinux$ -tags=connection,integration + retryCountOnTaskFailure: 3 + name: "DualStack_Overlay_Linux_Tests" + displayName: "DualStack Overlay Linux Tests" - script: | echo "validate pod IP assignment and check systemd-networkd restart" From c7e2083d43db75dbaf10c0baba02b68fbd180fb3 Mon Sep 17 00:00:00 2001 From: ryandenney Date: Thu, 1 Feb 2024 20:47:58 -0500 Subject: [PATCH 24/27] adding cd in directory before running validate --- .../cilium-dualstackoverlay-e2e-step-template.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml index d853fe6802..54c752d43a 100644 --- a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml +++ b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml @@ -108,6 +108,7 @@ steps: # Deleting echo-external-node deployment until cilium version matches TODO. https://github.com/cilium/cilium-cli/issues/67 is addressing the change. # Saves 17 minutes kubectl delete deploy -n cilium-test echo-external-node + cd test/integration/load CNI_TYPE=cilium_dualstack go test -timeout 30m -tags load -run ^TestValidateState$ echo "delete cilium connectivity test resources and re-validate state" kubectl delete ns cilium-test @@ -119,6 +120,8 @@ steps: - script: | echo "validate pod IP assignment before CNS restart" kubectl get pod -owide -A + echo "validate pod state before CNS restarts" + cd test/integration/load CNI_TYPE=cilium_dualstack go test -timeout 30m -tags load -run ^TestValidateState$ echo "restart CNS" kubectl rollout restart ds azure-cns -n kube-system From 6182e8702889acba8bca8df471f1f4fb8ebc6bc2 Mon Sep 17 00:00:00 2001 From: ryandenney Date: Fri, 2 Feb 2024 00:50:03 -0500 Subject: [PATCH 25/27] hostport to false --- .../cilium-dualstackoverlay-e2e-job-template.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-job-template.yaml b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-job-template.yaml index 08f45ce631..19efb2e9de 100644 --- a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-job-template.yaml +++ b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-job-template.yaml @@ -67,7 +67,7 @@ stages: dualstack: true dns: true portforward: true - hostport: true + hostport: false service: true - job: failedE2ELogs From fa878c3ff6a642bbbd7da79ce7296972fa942b5a Mon Sep 17 00:00:00 2001 From: ryandenney Date: Mon, 5 Feb 2024 14:26:58 -0500 Subject: [PATCH 26/27] further update --- .../cni/k8s-e2e/k8s-e2e-job-template.yaml | 13 ++++++++++++- ...lium-dualstackoverlay-e2e-job-template.yaml | 2 -- ...ium-dualstackoverlay-e2e-step-template.yaml | 18 +----------------- test/validate/linux_validate.go | 2 +- 4 files changed, 14 insertions(+), 21 deletions(-) diff --git a/.pipelines/cni/k8s-e2e/k8s-e2e-job-template.yaml b/.pipelines/cni/k8s-e2e/k8s-e2e-job-template.yaml index 4d5d196f6d..a5734331bf 100644 --- a/.pipelines/cni/k8s-e2e/k8s-e2e-job-template.yaml +++ b/.pipelines/cni/k8s-e2e/k8s-e2e-job-template.yaml @@ -119,7 +119,18 @@ jobs: os: ${{ parameters.os }} processes: 8 attempts: 3 - - ${{ if eq(parameters.dualstack, true) }}: + - ${{ if and( eq(parameters.dualstack, true), eq(contains(parameters.cni, 'cilium'), false) ) }}: + - template: ../k8s-e2e/k8s-e2e-step-template.yaml + parameters: + testName: DualStack Test + name: DualStack + clusterName: ${{ parameters.clusterName }} + ginkgoFocus: '\[Feature:IPv6DualStack\]' + ginkgoSkip: 'SCTP|session affinity' + os: ${{ parameters.os }} + processes: 8 + attempts: 3 + - ${{ if and( eq(parameters.dualstack, true), contains(parameters.cni, 'cilium') ) }}: - template: ../k8s-e2e/k8s-e2e-step-template.yaml parameters: testName: DualStack Test diff --git a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-job-template.yaml b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-job-template.yaml index 19efb2e9de..bf8cb35b2a 100644 --- a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-job-template.yaml +++ b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-job-template.yaml @@ -54,7 +54,6 @@ stages: - template: cilium-dualstackoverlay-e2e-step-template.yaml parameters: name: ${{ parameters.name }} - testDropgz: ${{ parameters.testDropgz }} clusterName: ${{ parameters.clusterName }}-$(commitID) - template: ../../cni/k8s-e2e/k8s-e2e-job-template.yaml @@ -67,7 +66,6 @@ stages: dualstack: true dns: true portforward: true - hostport: false service: true - job: failedE2ELogs diff --git a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml index 54c752d43a..e91282f6d4 100644 --- a/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml +++ b/.pipelines/singletenancy/cilium-dualstack-overlay/cilium-dualstackoverlay-e2e-step-template.yaml @@ -1,7 +1,6 @@ parameters: name: "" clusterName: "" - testHubble: false steps: @@ -44,7 +43,7 @@ steps: kubectl apply -f test/integration/manifests/cilium/cilium-operator kubectl get po -owide -A name: "installCilium" - displayName: "Install Cilium on AKS Overlay" + displayName: "Install Cilium on AKS Dualstack Overlay" - script: | echo "install cilium CLI" @@ -117,21 +116,6 @@ steps: name: "validatePods" displayName: "Validate Pods" - - script: | - echo "validate pod IP assignment before CNS restart" - kubectl get pod -owide -A - echo "validate pod state before CNS restarts" - cd test/integration/load - CNI_TYPE=cilium_dualstack go test -timeout 30m -tags load -run ^TestValidateState$ - echo "restart CNS" - kubectl rollout restart ds azure-cns -n kube-system - kubectl rollout status ds azure-cns -n kube-system - kubectl get pod -owide -A - echo "validate pods after CNS restart" - CNI_TYPE=cilium_dualstack go test -timeout 30m -tags load -run ^TestValidateState$ - name: "restartCNS" - displayName: "Restart CNS and validate pods" - - script: | echo "Run wireserver and metadata connectivity Tests" bash test/network/wireserver_metadata_test.sh diff --git a/test/validate/linux_validate.go b/test/validate/linux_validate.go index d7959f3aff..4c12cb7833 100644 --- a/test/validate/linux_validate.go +++ b/test/validate/linux_validate.go @@ -47,7 +47,7 @@ var linuxChecksMap = map[string][]check{ {"azure dualstackoverlay", azureVnetStateIps, privilegedLabelSelector, privilegedNamespace, azureVnetStateFileCmd}, }, "cilium_dualstack": { - {"cns", cnsManagedStateFileDualStackIps, cnsLabelSelector, privilegedNamespace, cnsManagedStateFileCmd}, // cns configmap "ManageEndpointState": true, | Endpoints managed in CNS State File + {"cns dualstack", cnsManagedStateFileDualStackIps, cnsLabelSelector, privilegedNamespace, cnsManagedStateFileCmd}, // cns configmap "ManageEndpointState": true, | Endpoints managed in CNS State File {"cilium", ciliumStateFileDualStackIps, ciliumLabelSelector, privilegedNamespace, ciliumStateFileCmd}, {"cns cache", cnsCacheStateFileIps, cnsLabelSelector, privilegedNamespace, cnsCachedAssignedIPStateCmd}, }, From 02359421419a5be1cd16fc6783b91347df458841 Mon Sep 17 00:00:00 2001 From: ryandenney Date: Mon, 5 Feb 2024 14:55:01 -0500 Subject: [PATCH 27/27] add cilium to dualstack test name --- .pipelines/cni/k8s-e2e/k8s-e2e-job-template.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pipelines/cni/k8s-e2e/k8s-e2e-job-template.yaml b/.pipelines/cni/k8s-e2e/k8s-e2e-job-template.yaml index a5734331bf..014adfde0a 100644 --- a/.pipelines/cni/k8s-e2e/k8s-e2e-job-template.yaml +++ b/.pipelines/cni/k8s-e2e/k8s-e2e-job-template.yaml @@ -133,7 +133,7 @@ jobs: - ${{ if and( eq(parameters.dualstack, true), contains(parameters.cni, 'cilium') ) }}: - template: ../k8s-e2e/k8s-e2e-step-template.yaml parameters: - testName: DualStack Test + testName: DualStack Test|Cilium name: DualStack clusterName: ${{ parameters.clusterName }} ginkgoFocus: '\[Feature:IPv6DualStack\]'