Contribution Guide
Contributions are highly welcome!
Before You Start
Open an issue before writing any code or documentation. This helps align on the approach early, avoids duplicated effort, and gives a chance to share context or flag related work before a pull request is opened.
DCO Sign-off
All commits must include a Developer Certificate of Origin (DCO)
sign-off, certifying that you wrote the change or have the right to submit it.
Add it with the -s flag:
git commit -s -m "your commit message"Tests
make test # unit and envtest tests, and the checks of the examples
make test-e2e # e2e tests on a Kind cluster of their own; E2E_LABELS=<feature> runs one feature
make test-e2e-plan # list every e2e spec, without a clusterA user-facing feature comes with an example in
examples/, which
the docs show and an e2e spec applies, as users would. make test fails for an
example that the API refuses, or that no docs page shows or no e2e spec
applies. The e2e
README explains how
the specs are laid out and written.
Run your build
Kokumi publishes an image for every release, and latest for main. To run
your own change, build the image into the local Kind cluster and deploy it:
make kind-setup # the Kind cluster "kokumi"
make argocd # Argo CD; its default project admits every namespace
make docker-build kind-load-image IMG=kokumi:dev
make deploy IMG=kokumi:devThen register the bundled registry with Argo CD and turn on login, as
Installation describes.
make deploy writes the image into config/manager, config/server and
config/scanner; do not commit that change.
Docs
The docs are a Hugo site in docs/. make website-dev
serves it at http://localhost:1313. The site at
kokumi.dev shows the docs of main; the docs of
the latest release are at
kokumi.dev/release.
- Each fact lives on one page; other pages link to it.
- A scenario a user would apply is an example in
examples/, shown with{{< example >}}and{{< apply-example >}}; a snippet that explains a single field may stay inline. - The release version comes from
kokumiVersionindocs/hugo.toml; use{{< param kokumiVersion >}}instead of writing it out. - Install commands use
{{< install-url >}}. In the docs of the latest release, whichdocs/hugo.release.tomlconfigures, it points at the release instead ofmain, as{{< apply-example >}}and{{< example >}}do.
Community
Feel free to ask questions, share ideas, or discuss topics in the #kokumi channel on CNCF Slack.