Contributing¶
We welcome contributions from the community. This page explains how to get started and where to find help.
Getting started¶
Before contributing, please read the project's Contributing Guidelines in the repository. In particular:
- Contributor License Agreement (CLA) — You must sign the Kubernetes CLA before we can accept your pull requests.
- Kubernetes Contributor Guide — Main contributor documentation; you can jump to the contributing page.
- Contributor Cheat Sheet — Common resources for existing developers.
The Kubernetes community abides by the CNCF Code of Conduct.
Development workflow¶
From the repository root:
- Build:
make build - Format:
make fmt - Lint / vet:
make lint - Tests:
make test(writescover.outfor coverage) - Test coverage:
make testwritescover.out. Runmake test-coverto refresh tests and emitout/coverage.htmlandout/coverage.txt(go tool cover). Withcover.outpresent,make cover-funcprints a per-function summary andmake cover-htmlopens the interactive HTML report in a browser (local). Remove generated artifacts withmake cover-clean. - Generate manifests:
make manifests generate
E2E tests¶
- Set up Kind cluster:
make setup-test-e2e(creates a Kind cluster with a local container registry viahack/create-kind-cluster.sh) - Deploy operator:
make deploy-test-e2e(builds, pushes to local registry, deploys to Kind) - Run e2e tests:
make test-e2e - Tear down:
make cleanup-test-e2e
OLM bundle¶
The operator supports installation via OLM (Operator Lifecycle Manager). The bundle is auto-generated from existing kustomize manifests — only the CSV skeleton in config/manifests/bases/ is maintained manually.
- Generate bundle:
make bundle - Build bundle image:
make bundle-build - Push bundle image:
make bundle-push
To run OLM bundle e2e tests (tests all four install modes: OwnNamespace, SingleNamespace, MultiNamespace, AllNamespaces):
- Deploy:
make deploy-test-e2e-bundle(creates Kind cluster with registry, builds/pushes images, installs OLM) - Run tests:
make test-e2e-bundle
After making changes, open a pull request on GitHub. Ensure CI passes and address any review feedback.
Mentorship¶
- Mentoring Initiatives — Kubernetes offers mentorship programs and is always looking for volunteers.
Bug reports¶
Bug reports should be filed as GitHub Issues on this repo.
Communications¶
For meeting schedules and additional community information, see the SIG Apps README.