The Test Infra repository provides an isolated GitHub Actions--based automation framework for testing Kubernetes pull requests for IPVS-related changes.
It enables maintainers to:
- Checkout a specific PR from upstream repo
- Test changes made in Kubernetes repo mirror
- Execute validation and test workflows
This keeps CI logic separate from the Kubernetes upstream repository hosted at k8sIPvS/kubernetes
.
├── .github/
│ └── workflows/
│ └── basic_k8s.yml # Core GitHub Actions workflow
├── lab # Local workstation IPVS lab automation
└── README.md #
The primary automation logic resides in:
.github/workflows/basic_k8s.yml
- Trigger on:
- Manual dispatch (
workflow_dispatch) for better controll over batches of changes to be testes
- Manual dispatch (
- Accept input parameter:
pr_number(optional) - fetches PR at given number from upstream Kubernetes repo at github.combranch(optional) - branch in k8sIPvS/kubernetes with your changes
- Execute pipeline steps:
- Checkout repository
- Fetch PR branch (if provided)
- Checkout your branch by given name, default master
- Run build/test steps
- Output logs
Below is a high-level execution flow of the CI process.
flowchart TD
A[Trigger: Manual Dispatch] --> B[Checkout This Repository]
B --> C[Clone Mirror of Upstream Kubernetes Repo]
C --> D{PR Number Provided?}
D -- Yes --> E[Fetch and Checkout PR Branch]
D -- No --> F[Checkout Default Branch - main]
C --> L{Branch Name Provided?}
L -- Yes --> E[Fetch and Checkout Your Branch]
L -- No -->F[Checkout Default Branch - master]
E --> G[Build Kubernetes]
F --> G
G --> H[Run Test Suite]
H --> I[Collect Logs and Results]
I --> J[Execute cleanup.sh]
J --> K[Workflow Completed]
To manually test a Kubernetes PR:
- Navigate to the Actions tab in GitHub.
- Select the workflow.
- Click Run workflow.
- Enter a PR number (optional).
- Enter branch from k8sIPvS/kubernetes with your changes pushed
- Start execution.
Testing Kubernetes PR #12345:
- Dispatch workflow
- Input
12345 - Leave branch as 'master'
- Workflow:
- Clones upstream
- Checks out PR
- Runs validation
- Reports status
- Multi-platform validation
- Artifact uploads
- Parallel test jobs
- Slack/Email notifications
- Caching dependencies for faster builds