CONTRIBUTING.md
October 30, 2024 ยท View on GitHub
Guidelines
Welcome!
There are a few things to consider before contributing to open-feature-operator.
Firstly, there's a code of conduct. TLDR: be respectful.
Any contributions are expected to include tests. These can be validated with make unit-test or the automated github workflow will run them on PR creation.
The go version in the go.mod is the currently supported version of go.
Thanks! Issues and pull requests following these guidelines are welcome.
Development
FeatureFlag custom resource definition versioning
Custom resource definitions support multiple versions. The kubebuilder framework exposes a system to seamlessly convert between versions (using a "hub and spoke" model) maintaining backwards compatibility. It does this by injecting conversion webhooks that call our defined convert functions. The hub version of the FeatureFlag custom resource definition (the version to which all other versions are converted) is v1beta1.
Follow this tutorial to implement a new version of the custom resource definition.
Local build
The operator can be build and deployed to your cluster by using a single command:
make build-deploy-operator TAG=myTag RELEASE_REGISTRY=docker.io/user1 RELEASE_NAME=myImgName
Which will result in building the operator image docker.io/user1/myImgName:myTag, uploading it to your image registry
and deploying to your cluster. Please be aware that it is using the cluster your current kube-context is pointing to.
Note
All bash variables are optional, the default values are set and will result in an image ghcr.io/openfeature/operator:latest
Autogenerated Documentation
Some part of the project docs may be autogenerated and require running a script.
Re-generating helm docs after modifying the chart
./.github/scripts/generate-helm-docs.sh
CRDs Docs
If you modified or added crds to the project, then you should recreate the crds.md file. To do so run:
make generate-crdocs