Jobs
This document intents to provide an overview over our jobs running via Prow, GitHub actions and Google Cloud Build. It also documents the cluster-api specific configuration in test-infra.
Builds and Tests running on the main branch
NOTE: To see which test jobs execute which tests or e2e tests, you can click on the links which lead to the respective test overviews in testgrid.
Presubmits
Prow Presubmits:
- mandatory for merge, always run:
- pull-cluster-api-build-main
./scripts/ci-build.sh
- pull-cluster-api-verify-main
./scripts/ci-verify.sh
- pull-cluster-api-build-main
- mandatory for merge, run if go code changes:
- pull-cluster-api-test-main
./scripts/ci-test.sh
- pull-cluster-api-e2e-main
./scripts/ci-e2e.sh
- GINKGO_FOCUS:
[PR-Blocking]
- GINKGO_FOCUS:
- pull-cluster-api-test-main
- optional for merge, run if go code changes:
- pull-cluster-api-apidiff-main
./scripts/ci-apidiff.sh
- pull-cluster-api-apidiff-main
- mandatory for merge, run if manually triggered:
- pull-cluster-api-test-mink8s-main
./scripts/ci-test.sh
- KUBEBUILDER_ENVTEST_KUBERNETES_VERSION:
1.24.2
- KUBEBUILDER_ENVTEST_KUBERNETES_VERSION:
- pull-cluster-api-e2e-mink8s-main
./scripts/ci-e2e.sh
- GINKGO_SKIP:
[Conformance] [K8s-Upgrade]|[IPv6]
- KUBERNETES_VERSION_MANAGEMENT:
stable-1.24
- GINKGO_SKIP:
- pull-cluster-api-e2e-full-dualstack-and-ipv6-main
./scripts/ci-e2e.sh
- DOCKER_IN_DOCKER_IPV6_ENABLED:
true
- GINKGO_SKIP:
[PR-Blocking] [Conformance] [K8s-Upgrade]
- DOCKER_IN_DOCKER_IPV6_ENABLED:
- pull-cluster-api-e2e-full-main
./scripts/ci-e2e.sh
- GINKGO_SKIP:
[PR-Blocking] [Conformance] [K8s-Upgrade]|[IPv6]
- GINKGO_SKIP:
- pull-cluster-api-e2e-workload-upgrade-1-28-latest-main
./scripts/ci-e2e.sh
FROM:stable-1.28
TO:ci/latest-1.29
- GINKGO_FOCUS:
[K8s-Upgrade]
- GINKGO_FOCUS:
- pull-cluster-api-test-mink8s-main
- optional for merge, run if manually triggered:
- pull-cluster-api-e2e-scale-main-experimental
./scripts/ci-e2e-scale.sh
- pull-cluster-api-e2e-scale-main-experimental
GitHub Presubmit Workflows:
- PR golangci-lint: golangci/golangci-lint-action
- Runs golangci-lint. Can be run locally via
make lint
.
- Runs golangci-lint. Can be run locally via
- PR verify: kubernetes-sigs/kubebuilder-release-tools verifier
- Verifies the PR titles have a valid format, i.e. contains one of the valid icons.
- Verifies the PR description is valid, i.e. is long enough.
- PR check Markdown links (run when markdown files changed)
- Checks markdown modified in PR for broken links.
- PR dependabot (run on dependabot PRs)
- Regenerates Go modules and code.
- PR approve GH Workflows
- Approves other GH workflows if the
ok-to-test
label is set.
- Approves other GH workflows if the
GitHub Weekly Workflows:
- Weekly check all Markdown links
- Checks markdown across the repo for broken links.
- Weekly image scan:
- Scan all images for vulnerabilities. Can be run locally via
make verify-container-images
- Scan all images for vulnerabilities. Can be run locally via
- Weekly release test:
- Test the the
release
make target is working without errors.
- Test the the
Other Github workflows
- release (runs when tags are pushed)
- Creates a GitHub release with release notes for the tag.
Postsubmits
Prow Postsubmits:
- post-cluster-api-push-images Google Cloud Build:
make release-staging
Periodics
Prow Periodics:
- periodic-cluster-api-test-main
./scripts/ci-test.sh
- periodic-cluster-api-test-mink8s-main
./scripts/ci-test.sh
- KUBEBUILDER_ENVTEST_KUBERNETES_VERSION:
1.24.2
- KUBEBUILDER_ENVTEST_KUBERNETES_VERSION:
- periodic-cluster-api-e2e-main
./scripts/ci-e2e.sh
- GINKGO_SKIP:
[Conformance] [K8s-Upgrade]|[IPv6]
- GINKGO_SKIP:
- periodic-cluster-api-e2e-mink8s-main
./scripts/ci-e2e.sh
- GINKGO_SKIP:
[Conformance] [K8s-Upgrade]|[IPv6]
- KUBERNETES_VERSION_MANAGEMENT:
stable-1.24
- GINKGO_SKIP:
- periodic-cluster-api-e2e-dualstack-and-ipv6-main
./scripts/ci-e2e.sh
- DOCKER_IN_DOCKER_IPV6_ENABLED:
true
- GINKGO_SKIP:
[Conformance] [K8s-Upgrade]
- DOCKER_IN_DOCKER_IPV6_ENABLED:
- periodic-cluster-api-e2e-workload-upgrade-1-23-1-24-main
./scripts/ci-e2e.sh
FROM:stable-1.23
TO:stable-1.24
- GINKGO_FOCUS:
[K8s-Upgrade]
- GINKGO_FOCUS:
- periodic-cluster-api-e2e-workload-upgrade-1-24-1-25-main
./scripts/ci-e2e.sh
FROM:stable-1.24
TO:stable-1.25
- GINKGO_FOCUS:
[K8s-Upgrade]
- GINKGO_FOCUS:
- periodic-cluster-api-e2e-workload-upgrade-1-25-1-26-main
./scripts/ci-e2e.sh
FROM:stable-1.25
TO:stable-1.26
- GINKGO_FOCUS:
[K8s-Upgrade]
- GINKGO_FOCUS:
- periodic-cluster-api-e2e-workload-upgrade-1-26-1-27-main
./scripts/ci-e2e.sh
FROM:stable-1.26
TO:stable-1.27
- GINKGO_FOCUS:
[K8s-Upgrade]
- GINKGO_FOCUS:
- periodic-cluster-api-e2e-workload-upgrade-1-27-1-28-main
./scripts/ci-e2e.sh
FROM:stable-1.27
TO:stable-1.28
- GINKGO_FOCUS:
[K8s-Upgrade]
- GINKGO_FOCUS:
- periodic-cluster-api-e2e-workload-upgrade-1-28-latest-main
./scripts/ci-e2e.sh
FROM:stable-1.28
TO:ci/latest-1.29
- GINKGO_FOCUS:
[K8s-Upgrade]
- GINKGO_FOCUS:
- cluster-api-push-images-nightly Google Cloud Build:
make release-staging-nightly
Test-infra configuration
- config/jobs/image-pushing/k8s-staging-cluster-api.yaml
- Configures nightly and postsubmit jobs to push images and manifests.
- config/jobs/kubernetes-sigs/cluster-api/
- Configures Cluster API presubmit and periodic jobs.
- config/testgrids/kubernetes/sig-cluster-lifecycle/config.yaml
- Configures Cluster API testgrid dashboards.
- config/prow/config.yaml
branch-protection
andtide
are configured to make the golangci-lint GitHub action mandatory for merge
- config/prow/plugins.yaml
triggers
: configures/ok-to-test
approve
: disable auto-approval of PR authors, ignore GitHub reviews (/approve is explicitly required)milestone_applier
: configures that merged PRs are automatically added to the correct milestone after mergerepo_milestone
: configurescluster-api-maintainers
as maintainersrequire_matching_label
: configuresneeds-triage
plugins
: enablesmilestone
,override
andrequire-matching-label
pluginsexternal_plugins
: enablescherrypicker
- label_sync/labels.yaml
- Configures labels for the
cluster-api
repository.
- Configures labels for the