Skip to content
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

ci: Add workflow for testing multi-pool IPAM #26175

Merged
merged 1 commit into from Jun 22, 2023

Conversation

gandro
Copy link
Member

@gandro gandro commented Jun 13, 2023

This adds a new GitHub Actions workflow (with pull_request trigger) which tests the new multi-pool IPAM feature added in #22762. The feature does have unit test coverage as well, but since it does have implications on routing and masquerading (see Notes: section in workflow), we also want to test the feature end-to-end to ensure it interacts correctly with those systems.

The workflow sets up a regular kind cluster and installs Cilium with Multi-Pool IPAM enabled in it. It then runs a version of the connectivity test that allocates the test pod IPs from non-default pools. This tests that routing and masquerading works for non-default pools. The workflow then validates that the pod IPs have been allocated from the correct pool, to ensure we don't report false positives in case the connectivity test annotation did not take effect.

At the moment, this workflow runs on every PR. It is an open question if it should run on a comment trigger instead. During testing, it only had a run-time of about 15 minutes, 5 minutes of which were spent waiting on the images to be ready.

@gandro gandro added area/CI Continuous Integration testing issue or flake area/CI-improvement Topic or proposal to improve the Continuous Integration workflow release-note/ci This PR makes changes to the CI. sig/ipam IP address management, including cloud IPAM release-blocker/1.14 This issue will prevent the release of the next version of Cilium. area/ipam Impacts IP address management functionality. labels Jun 13, 2023
@gandro gandro force-pushed the pr/gandro/multi-pool-ci-workflow branch 14 times, most recently from b9066f3 to 56da680 Compare June 15, 2023 15:36
@gandro gandro mentioned this pull request Jun 19, 2023
29 tasks
@gandro gandro force-pushed the pr/gandro/multi-pool-ci-workflow branch 6 times, most recently from b3aa8b6 to e291eba Compare June 20, 2023 08:51
@gandro gandro marked this pull request as ready for review June 20, 2023 09:16
@gandro gandro requested review from a team as code owners June 20, 2023 09:16
Copy link
Member

@tklauser tklauser left a comment

Choose a reason for hiding this comment

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

Very nice! LGTM apart from a small comment on kind versioning.

.github/workflows/conformance-multi-pool.yaml Outdated Show resolved Hide resolved
.github/workflows/conformance-multi-pool.yaml Show resolved Hide resolved
This adds a new GitHub Actions workflow (with `pull_request` trigger)
which tests the new multi-pool IPAM feature added in #22762. The feature
does have unit test coverage as well, but since it does have
implications on routing and masquerading (see `Notes:` section in
workflow), we also want to test the feature end-to-end to ensure it
interacts correctly with those systems.

The workflow sets up a regular kind cluster and installs Cilium with
Multi-Pool IPAM enabled in it. It then runs a version of the
connectivity test that allocates the test pod IPs from non-default
pools. This tests that routing and masquerading works for non-default
pools. The workflow then validates that the pod IPs have been allocated
from the correct pool, to ensure we don't report false positives in case
the connectivity test annotation did not take effect.

At the moment, this workflow runs on every PR. It is an open question if
it should run on a comment trigger instead. During testing, it only had
a run-time of about 15 minutes, 5 minutes of which were spent waiting on
the images to be ready.

Signed-off-by: Sebastian Wicki <sebastian@isovalent.com>
@gandro gandro force-pushed the pr/gandro/multi-pool-ci-workflow branch from e291eba to 704fea9 Compare June 21, 2023 12:40
@gandro
Copy link
Member Author

gandro commented Jun 21, 2023

Pushed the suggested kind annotation and rebased on main

diff --git a/.github/workflows/conformance-multi-pool.yaml b/.github/workflows/conformance-multi-pool.yaml
index 1ca629d72f64..5f836788a510 100644
--- a/.github/workflows/conformance-multi-pool.yaml
+++ b/.github/workflows/conformance-multi-pool.yaml
@@ -24,7 +24,8 @@ env:
   # renovate: datasource=github-releases depName=cilium/cilium-cli
   cilium_cli_version: v0.14.7
   cilium_cli_ci_version:
-  kind_version: v0.17.0
+  # renovate: datasource=github-releases depName=kubernetes-sigs/kind
+  kind_version: v0.19.0
   kind_config: .github/kind-config.yaml
   timeout: 5m

@gandro
Copy link
Member Author

gandro commented Jun 22, 2023

Reviews are in, the CI workflow added here is green (see PR description) and no other tests are affected by this. Marking ready-to-merge

@gandro gandro added the ready-to-merge This PR has passed all tests and received consensus from code owners to merge. label Jun 22, 2023
@borkmann borkmann merged commit 92305de into main Jun 22, 2023
54 checks passed
@borkmann borkmann deleted the pr/gandro/multi-pool-ci-workflow branch June 22, 2023 15:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/CI Continuous Integration testing issue or flake area/CI-improvement Topic or proposal to improve the Continuous Integration workflow area/ipam Impacts IP address management functionality. ready-to-merge This PR has passed all tests and received consensus from code owners to merge. release-blocker/1.14 This issue will prevent the release of the next version of Cilium. release-note/ci This PR makes changes to the CI. sig/ipam IP address management, including cloud IPAM
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants