Thank you for your interest in contributing! This document provides guidelines for contributing to the project.
- Use GitHub Issues to report bugs.
- Include the Terraform and provider versions, relevant configuration (redact secrets), and error output.
- Describe expected vs actual behavior.
- Open a GitHub Issue with the
enhancementlabel. - Describe the use case and proposed API (resource/attribute changes).
- Reference OCM API or Red Hat documentation when relevant.
- Fork the repository and create a branch from
main. - Develop your changes following the project's conventions (see AGENTS.md for AI agent guidance).
- Test locally:
make fmt # Format Go and Terraform (runs fmt_go + fmt_tf) make unit-test make build make docs # If you changed schema or templates (CI fails if docs/ is stale)
- Commit with clear, imperative messages (e.g., "Add private cluster support").
- Push your branch and open a PR against
main. - Ensure CI passes and address review feedback.
- Requirements: Go 1.24+, Terraform 1.0+, jq
- Build:
make build - Install locally:
make install - Run examples with local build:
make dev.cluster.apply,make dev.cluster.plan,make dev.cluster.destroy— these install the provider, clear locks, re-init, and run. Nodev_overridesin~/.terraformrcrequired. - Run tests:
make unit-test,make subsystem-test(requires OCM mock) - Format:
make fmt
- Format: Run
make fmtbefore every PR. This runs bothmake fmt_go(Go) andmake fmt_tf(Terraform). - Docs: Run
make docswhen you change provider schema, resources, data sources, or templates intemplates/. CI fails ifdocs/is out of date. - Go: Use
gofmt; runmake fmt_go. - Terraform: Use
terraform fmt; runmake fmt_tf. CI checksterraform,examples,tests, andmodules. - Follow conventions in existing code and AGENTS.md.
By participating, you agree to abide by our Code of Conduct.