-
Notifications
You must be signed in to change notification settings - Fork 257
ci: add cilium ebpf e2e overlay and podsubnet test #4073
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
24 commits
Select commit
Hold shift + click to select a range
cf80ca3
add initial ebpf overlay modifications
QxBytes f3ddf71
hardcode values for testing
QxBytes 44c8d2b
add depends to delete
QxBytes dd5b366
make ebpf use cilium v1.17
QxBytes 5945c63
hardcode cluster name for testing
QxBytes 1736935
export makefile variables
QxBytes dd40090
add container for cilium command
QxBytes 4b01755
add default os sku
QxBytes 1538097
move pod cidr to variable
QxBytes 9586542
add ccnp to deploys to block wireserver
QxBytes 1962f73
amend ccnp to not block imds yet
QxBytes 061f39c
Revert "hardcode cluster name for testing"
QxBytes 8f9c28e
Revert "hardcode values for testing"
QxBytes 19fc7ca
rename targets and files
QxBytes 204ce9a
apply crd before custom resource
QxBytes 3dcd990
test ebpf with test iptables monitor and merger images
QxBytes 1ee27d5
begin templating- previous commit passed
QxBytes fb8c8cc
remove hubble and nightly copied code
QxBytes 893e2ca
remove unused vars and rename target (noop)
QxBytes 8211742
test ebpf podsubnet
QxBytes bb9e6a6
reuse existing template
QxBytes e75a316
increase timeout to 20 minutes
QxBytes 279f2cf
swap podsubnet to ubuntu 24
QxBytes 0926778
register ubuntu 2404 preview feature
QxBytes File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
89 changes: 89 additions & 0 deletions
89
.pipelines/singletenancy/cilium-ebpf/cilium-e2e-job-template.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
parameters: | ||
name: "" | ||
displayName: "" | ||
clusterType: "" | ||
clusterName: "" | ||
vmSize: "" | ||
k8sVersion: "" | ||
dependsOn: "" | ||
os: "linux" | ||
|
||
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 }} | ||
osSKU: "Ubuntu2404" | ||
region: $(REGION_AKS_CLUSTER_TEST) | ||
|
||
- stage: ${{ parameters.name }} | ||
displayName: E2E - ${{ parameters.displayName }} | ||
dependsOn: | ||
- setup | ||
- publish | ||
- ${{ parameters.clusterName }} | ||
variables: | ||
TAG: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.Tag'] ] | ||
CURRENT_VERSION: $[ stagedependencies.containerize.check_tag.outputs['CurrentTagManifests.currentTagManifests'] ] | ||
commitID: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.commitID'] ] | ||
GOPATH: "$(Agent.TempDirectory)/go" # Go workspace path | ||
GOBIN: "$(GOPATH)/bin" # Go binaries path | ||
modulePath: "$(GOPATH)/src/github.com/Azure/azure-container-networking" | ||
condition: and(succeeded(), eq(variables.TAG, variables.CURRENT_VERSION)) | ||
pool: | ||
name: $(BUILD_POOL_NAME_DEFAULT) | ||
jobs: | ||
- job: ${{ parameters.name }} | ||
displayName: Cilium 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-e2e-step-template.yaml | ||
parameters: | ||
name: ${{ parameters.name }} | ||
clusterName: ${{ parameters.clusterName }}-$(commitID) | ||
scaleup: 50 | ||
|
||
- template: ../../cni/k8s-e2e/k8s-e2e-job-template.yaml | ||
parameters: | ||
sub: $(BUILD_VALIDATIONS_SERVICE_CONNECTION) | ||
clusterName: ${{ parameters.clusterName }}-$(commitID) | ||
os: ${{ parameters.os }} | ||
cni: cilium | ||
dependsOn: ${{ parameters.name }} | ||
datapath: true | ||
dns: true | ||
portforward: true | ||
service: true | ||
|
||
- job: failedE2ELogs | ||
displayName: "Failure Logs" | ||
dependsOn: | ||
- ${{ parameters.name }} | ||
- cni_${{ parameters.os }} | ||
condition: failed() | ||
steps: | ||
- template: ../../templates/log-template.yaml | ||
parameters: | ||
clusterName: ${{ parameters.clusterName }}-$(commitID) | ||
os: ${{ parameters.os }} | ||
cni: cilium |
45 changes: 45 additions & 0 deletions
45
.pipelines/singletenancy/cilium-ebpf/cilium-e2e-step-template.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
parameters: | ||
name: "" | ||
clusterName: "" | ||
scaleup: "" | ||
|
||
steps: | ||
- template: ../../templates/setup-environment.yaml | ||
|
||
- task: AzureCLI@2 | ||
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 pods -Aowide | ||
|
||
# see makefile | ||
export AZURE_IPTABLES_MONITOR_IMAGE_REGISTRY=acnpublic.azurecr.io | ||
export AZURE_IPTABLES_MONITOR_TAG=$(make azure-iptables-monitor-version) | ||
make -C ./hack/aks deploy-ebpf-podsubnet-cilium | ||
|
||
kubectl get pods -Aowide | ||
name: "installCilium" | ||
displayName: "Install EBPF Podsubnet Cilium" | ||
|
||
- template: ../../templates/cilium-cli.yaml | ||
|
||
- script: | | ||
echo "Start Azilium E2E Tests" | ||
kubectl get po -owide -A | ||
sudo -E env "PATH=$PATH" make test-load SCALE_UP=32 OS_TYPE=linux VALIDATE_STATEFILE=true INSTALL_CNS=true INSTALL_AZILIUM=true AZURE_IPAM_VERSION=$(make azure-ipam-version) CNS_VERSION=$(make cns-version) CLEANUP=true | ||
retryCountOnTaskFailure: 3 | ||
name: "aziliumTest" | ||
displayName: "Run Azilium E2E" | ||
|
||
- template: ../../templates/cilium-tests.yaml | ||
parameters: | ||
clusterName: ${{ parameters.clusterName }} | ||
scaleup: ${{ parameters.scaleup }} |
86 changes: 86 additions & 0 deletions
86
.pipelines/singletenancy/cilium-overlay-ebpf/cilium-overlay-e2e-job-template.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
parameters: | ||
name: "" | ||
displayName: "" | ||
clusterType: "" | ||
clusterName: "" | ||
vmSize: "" | ||
k8sVersion: "" | ||
dependsOn: "" | ||
os: "linux" | ||
|
||
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 }} | ||
osSKU: "AzureLinux" | ||
region: $(REGION_AKS_CLUSTER_TEST) | ||
|
||
- stage: ${{ parameters.name }} | ||
displayName: E2E - ${{ parameters.displayName }} | ||
dependsOn: | ||
- setup | ||
- publish | ||
- ${{ parameters.clusterName }} | ||
variables: | ||
commitID: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.commitID'] ] | ||
GOPATH: "$(Agent.TempDirectory)/go" # Go workspace path | ||
GOBIN: "$(GOPATH)/bin" # Go binaries path | ||
modulePath: "$(GOPATH)/src/github.com/Azure/azure-container-networking" | ||
pool: | ||
name: $(BUILD_POOL_NAME_DEFAULT) | ||
jobs: | ||
- job: ${{ parameters.name }} | ||
displayName: Cilium EBPF 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-overlay-e2e-step-template.yaml | ||
parameters: | ||
name: ${{ parameters.name }} | ||
clusterName: ${{ parameters.clusterName }}-$(commitID) | ||
scaleup: 50 | ||
|
||
- template: ../../cni/k8s-e2e/k8s-e2e-job-template.yaml | ||
parameters: | ||
sub: $(BUILD_VALIDATIONS_SERVICE_CONNECTION) | ||
clusterName: ${{ parameters.clusterName }}-$(commitID) | ||
os: ${{ parameters.os }} | ||
cni: cilium | ||
dependsOn: ${{ parameters.name }} | ||
datapath: true | ||
dns: true | ||
portforward: true | ||
service: true | ||
|
||
- job: failedE2ELogs | ||
displayName: "Failure Logs" | ||
dependsOn: | ||
- ${{ parameters.name }} | ||
- cni_${{ parameters.os }} | ||
condition: failed() | ||
steps: | ||
- template: ../../templates/log-template.yaml | ||
parameters: | ||
clusterName: ${{ parameters.clusterName }}-$(commitID) | ||
os: ${{ parameters.os }} | ||
cni: cilium |
48 changes: 48 additions & 0 deletions
48
.pipelines/singletenancy/cilium-overlay-ebpf/cilium-overlay-e2e-step-template.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
parameters: | ||
name: "" | ||
clusterName: "" | ||
scaleup: "" | ||
|
||
|
||
steps: | ||
- template: ../../templates/setup-environment.yaml | ||
|
||
- task: AzureCLI@2 | ||
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 pods -Aowide | ||
|
||
# see makefile | ||
export AZURE_IPTABLES_MONITOR_IMAGE_REGISTRY=acnpublic.azurecr.io | ||
export AZURE_IPTABLES_MONITOR_TAG=$(make azure-iptables-monitor-version) | ||
export AZURE_IP_MASQ_MERGER_IMAGE_REGISTRY=acnpublic.azurecr.io | ||
export AZURE_IP_MASQ_MERGER_TAG=$(make azure-ip-masq-merger-version) | ||
make -C ./hack/aks deploy-ebpf-overlay-cilium | ||
|
||
kubectl get pods -Aowide | ||
name: "installCilium" | ||
displayName: "Install Cilium EBPF on AKS Overlay" | ||
|
||
- template: ../../templates/cilium-cli.yaml | ||
|
||
- script: | | ||
CNS=$(make cns-version) IPAM=$(make azure-ipam-version) | ||
kubectl get pods -Aowide | ||
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=${IPAM} CNS_VERSION=${CNS} CLEANUP=true | ||
retryCountOnTaskFailure: 3 | ||
name: "aziliumTest" | ||
displayName: "Deploy CNS and Run Azilium E2E on AKS Overlay" | ||
|
||
- template: ../../templates/cilium-tests.yaml | ||
parameters: | ||
clusterName: ${{ parameters.clusterName }} | ||
scaleup: ${{ parameters.scaleup }} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
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 |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.