Thank you for your interest in contributing! This document covers everything you need to know to get started.
- Code of Conduct
- Prerequisites
- Local Development
- DCO Sign-off
- Opening a Pull Request
- Reporting Bugs
- Reporting Security Vulnerabilities
Please be respectful and constructive in all interactions. We follow the Contributor Covenant.
- Go 1.24+
- Docker 17.03+ (for building the operator image)
- kubectl v1.11.3+
- Access to a Kubernetes cluster for integration testing
- controller-gen (installed by
make)
# Clone the repository
git clone https://github.com/CoHDI/composable-resource-operator.git
cd composable-resource-operator
# Install tooling and generate manifests
make generate manifests
# Run code formatting
make fmt
# Run static analysis
make vet
# Run the full test suite (uses envtest; no cluster required)
make test
# Build the operator binary
make buildThe test suite lives under internal/controller/ and internal/webhook/. New features
and bug fixes should include tests.
All commits must be signed off in accordance with the Developer Certificate of Origin.
Add the -s flag to your commit command:
git commit -s -m "feat: add CXL memory support"This appends a Signed-off-by: Your Name <your@email.com> trailer to the commit message,
certifying that you have the right to submit the contribution under the project's Apache 2.0
license. Pull requests with unsigned commits will not be merged.
- Fork the repository and create a feature branch from
main. - Make your changes, ensuring
make fmt vet testpasses locally. - Sign off every commit (see above).
- Open a pull request against
mainwith a clear description of the change and the motivation behind it. - At least one maintainer review and approval is required before merging.
- The CI workflow will run
make fmt vet testautomatically; please address any failures.
Open a GitHub Issue and include:
- A clear, descriptive title
- Steps to reproduce the problem
- Expected vs. actual behaviour
- Operator version / Git SHA
- Kubernetes version and cluster type
- Relevant log output (
kubectl logs -n <namespace> <operator-pod>)
Please do not file a public issue for security vulnerabilities. Instead, use GitHub Security Advisories or follow the process described in SECURITY.md.