Nordix Jenkins CI
Some integration tests are running in the Nordix infrastructure. Nordix provides a Jenkins instance and cloud resources on CityCloud for the Airship project. We use those resources to run integration tests for Metal3.
In Github the Jenkins bot uses nordixinfra username. It will post comments on Pull Requests in the metal3-dev-env, baremetal-operator and cluster-api-provider-baremetal repositories.
All members of the metal3-io organization that set their membership to be publicly visible will get admin rights on the CI jobs. This means :
- They can start the jobs on their PR directly
- They can start the jobs for PR of authors that are not in the organization
- They can add authors to whitelist so that the authors can start jobs on any further PR on their own, by commenting add to whitelist on the PR
We currently only have one job that run some integration tests. The job can be triggered on PR from metal3-dev-env, baremetal-operator and cluster-api-provider-baremetal repositories by commenting /test-integration. The job result will be posted as a comment.
It is also possible to prevent any job run by adding /skip-test in the PR description.
If the author is not in the whitelist but should be trusted then by adding a comment add to whitelist on the PR, the author will then be able to run the jobs on its own.
"Can one of the admins verify this patch?"
For all the PRs from authors that are not whitelisted, the bot will add a comment "Can one of the admins verify this patch?". This means that the author is not in the whitelist and that someone from the metal3-io organization should review the PR and run the tests (with /test-integration) or add the author to whitelist if trusted.
The jenkins configuration is stored in two places. The Nordix gerrit instance contains the jenkins job configuration and the Github airship-dev-tools repository contains the jobs pipeline.
The job configuration is stored on Nordix gerrit cicd repo. You can log in with a google account and submit patchset if necessary. Please announce if some reviews are needed on #cluster-api-baremetal in Kubernetes slack or send an email to estjorvas [at] est.tech mailing list.
We use pre-baked images to run the tests. The images are based on Ubuntu or CentOS and contain all the pre-requisites for metal3-dev-env. This is achieved by running the 01_install_requirements.sh script when building the image. It reduces the time needed by the tests to complete.
The image building scripts can be found here for Ubuntu.
In case of issues or question on the Jenkins CI, please contact the maintainers by email to estjorvas [at] est.tech or by posting your message on the #cluster-api-baremetal channel on Kubernetes Slack.