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

Add GitHub workflows for OS testing #3388

Merged
merged 1 commit into from
Aug 24, 2023

Conversation

twz123
Copy link
Member

@twz123 twz123 commented Aug 16, 2023

Description

Introduce a callable GitHub workflow that leverages the Terraform modules for OS testing to bring up a k0s cluster on AWS against which Kubernetes conformance tests will be executed.

The workflow features parallel test execution to speed up test duration, if desired. Note that test results collected in parallel are most likely not accepted by the Kubernetes conformance test repo. If the tests should be submitted there, it's advised to set the e2e-concurrency-level to 1.

Moreover, provide a matrix workflow that bundles up the first one into a matrix build, so that multiple OS and network provider configurations may be tested using a single workflow, and a nightly trigger which chooses a single OS/network provider combination to be run on a nightly basis.

See:

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update

How Has This Been Tested?

  • Manual test
  • Auto test added

Checklist:

  • My code follows the style guidelines of this project
  • My commit messages are signed-off
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream modules
  • I have checked my code and corrected any misspellings

@twz123 twz123 added the enhancement New feature or request label Aug 16, 2023
@twz123 twz123 requested a review from a team as a code owner August 16, 2023 14:18
@twz123 twz123 linked an issue Aug 16, 2023 that may be closed by this pull request
Introduce a callable GitHub workflow that leverages the Terraform
modules for OS testing to bring up a k0s cluster on AWS against which
Kubernetes conformance tests will be executed.

The workflow features parallel test execution to speed up test duration,
if desired. Note that test results collected in parallel are most likely
not accepted by the Kubernetes conformance test repo. If the tests
should be submitted there, it's advised to set the `e2e-concurrency-
level` to 1.

Moreover, provide a matrix workflow that bundles up the first one into
a matrix build, so that multiple OS and network provider configurations
may be tested using a single workflow, and a nightly trigger which
chooses a single OS/network provider combination to be run on a nightly
basis.

Signed-off-by: Tom Wieczorek <[email protected]>
# combinations and select an entry based on the current day. This approach
# ensures that, if run once each day, there is a significant variation in
# parameter values each day while also guaranteeing that every combination
# will be chosen at some point.
Copy link
Member

Choose a reason for hiding this comment

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

Did I understand this correctly: We have 22 OSes and 2 network providers on the matrix, this means 44 items. So each combo, say Alpine 3.17 with Calico, will be tested every 44 days?

Copy link
Member Author

Choose a reason for hiding this comment

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

Yes, that's the idea. Every day another OS and network provider until all permutations have been tested. Then start over from the beginning.

Copy link
Member Author

Choose a reason for hiding this comment

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

Starting from today, this would be list of combinations for each day:
rocky_9/kuberouter
ubuntu_2204/calico
centos_9/kuberouter
debian_12/calico
oracle_9_1/kuberouter
rhel_9/calico
ubuntu_2304/kuberouter
alpine_3_17/calico
centos_7/kuberouter
debian_10/calico
fcos_38/kuberouter
fedora_38/calico
flatcar/kuberouter
oracle_7_9/calico
rhel_7/kuberouter
rocky_8/calico
ubuntu_2004/kuberouter
centos_8/calico
debian_11/kuberouter
oracle_8_7/calico
rhel_8/kuberouter
rocky_9/calico
ubuntu_2204/kuberouter
centos_9/calico
debian_12/kuberouter
oracle_9_1/calico
rhel_9/kuberouter
ubuntu_2304/calico
alpine_3_17/kuberouter
centos_7/calico
debian_10/kuberouter
fcos_38/calico
fedora_38/kuberouter
flatcar/calico
oracle_7_9/kuberouter
rhel_7/calico
rocky_8/kuberouter
ubuntu_2004/calico
centos_8/kuberouter
debian_11/calico
oracle_8_7/kuberouter
rhel_8/calico

Copy link
Member Author

Choose a reason for hiding this comment

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

Specific combinations or bulk tests for many configurations may be triggered manually via the matrix job, if needed.

@twz123 twz123 merged commit ab6ae00 into k0sproject:main Aug 24, 2023
71 checks passed
@twz123 twz123 deleted the k0s-ostests-workflows branch August 24, 2023 12:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add Test Matrix for Different Linux Distributions and Kernels
2 participants