Skip to content

Add pipeline for A/B testing stateless CNI #754

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

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open

Conversation

alyssa1303
Copy link
Collaborator

@alyssa1303 alyssa1303 commented Jul 22, 2025

This pull request introduces a new HOST_NETWORK configuration option to the clusterloader2 testing framework, allowing users to toggle between host network and pod network modes. Additionally, it adds new metrics collection for sandbox runtime performance, updates test cases, and introduces a new performance evaluation scenario for CNI benchmarking.

New HOST_NETWORK Configuration:

  • Added a HOST_NETWORK parameter to control whether pods use the host's network namespace. This is configurable via CLI, YAML configurations, and Terraform inputs. (modules/python/clusterloader2/cri/README.md, modules/python/clusterloader2/cri/config/config.yaml, modules/python/clusterloader2/cri/config/deployment_template.yaml, modules/python/clusterloader2/cri/cri.py, scenarios/perf-eval/cni-ab-testing/terraform-inputs/aws.tfvars) [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

Metrics Enhancements:

  • Introduced a new metric, KubeletRunSandboxDuration, to measure pod sandbox runtime performance, including 99th, 90th, and 50th percentiles. (modules/python/clusterloader2/cri/config/kubelet-measurement.yaml, modules/python/clusterloader2/cri/cri.py) [1] [2]

Test Updates:

  • Extended unit tests to validate the new HOST_NETWORK parameter, including scenarios where it is explicitly set to False. (modules/python/tests/test_cri.py) [1] [2] [3] [4]

New Performance Evaluation Scenario:

  • Added a new CNI benchmarking pipeline and corresponding Terraform inputs for performance evaluation. The pipeline includes configurations for both Azure and AWS environments, with scenarios for different pod counts and network configurations. (pipelines/perf-eval/CNI Benchmark/cni-ab-testing.yml, scenarios/perf-eval/cni-ab-testing/terraform-inputs/aws.tfvars) [1] [2]

@alyssa1303 alyssa1303 force-pushed the alyssa/cni branch 5 times, most recently from b6a22bb to e2fa16a Compare July 22, 2025 20:54
@alyssa1303 alyssa1303 changed the title Add pipeline for A/B testing CNI Add pipeline for A/B testing stateless CNI Jul 22, 2025
@alyssa1303 alyssa1303 marked this pull request as ready for review July 22, 2025 21:42
@Copilot Copilot AI review requested due to automatic review settings July 22, 2025 21:42
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This pull request introduces a new feature to control whether pods use the host's network namespace in CNI A/B testing scenarios. The implementation adds a HOST_NETWORK parameter throughout the testing framework and includes infrastructure configurations for performance evaluation.

  • Adds HOST_NETWORK parameter configuration support across CLI, YAML, and Terraform inputs
  • Introduces new Prometheus metric KubeletRunSandboxDuration for sandbox operation monitoring
  • Updates infrastructure configurations including Kubernetes version upgrades and AMI type changes

Reviewed Changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
steps/engine/clusterloader2/cri/execute.yml Adds HOST_NETWORK parameter to clusterloader2 execution step
modules/python/clusterloader2/cri/cri.py Implements host_network parameter in configuration and CLI interface
modules/python/clusterloader2/cri/config/*.yaml Updates templates and config to support HOST_NETWORK variable
modules/python/tests/test_cri.py Adds comprehensive tests for host_network functionality
scenarios/perf-eval/cni-ab-testing/* New scenario configuration files for CNI A/B testing
pipelines/perf-eval/CNI Benchmark/cni-ab-testing.yml New pipeline for automated CNI performance testing
scenarios/perf-eval/cri-resource-consume/terraform-inputs/aws.tfvars Updates AMI type and Kubernetes version for existing scenario
Comments suppressed due to low confidence (1)

pipelines/perf-eval/CNI Benchmark/cni-ab-testing.yml:59

  • The stage name 'azure_swedencentral_stateless' suggests this stage is for stateless CNI testing, but the stage configuration appears identical to the 'azure_swedencentral_default' stage. The naming should clearly differentiate the purpose or the configurations should differ to justify separate stages.
  - stage: azure_swedencentral_stateless

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant