Contributing¶
HybridOps is MIT-0 licensed where stated. Public contributions are welcome across the public documentation, runtime, workload, and Terraform module repositories.
Repositories¶
| Repository | Scope |
|---|---|
| hybridops-core | Platform runtime, modules, drivers, blueprints, CLI |
| hybridops-workloads | Kubernetes workload catalog (GitOps) |
| hybridops-terraform-gitmods | Proxmox VM and LXC Terraform modules |
| terraform-proxmox-sdn | Proxmox SDN Terraform module |
The hybridops.* Ansible collections are distributed through Ansible Galaxy. Use the Galaxy Collections reference for install paths, versions, and role scope.
What to contribute¶
Good contributions include:
- Bug fixes with a clear reproduction path
- New modules, roles, or blueprints following the existing contract structure
- Test coverage improvements (smoke tests, Molecule scenarios, integration probes)
- Documentation improvements (corrections, examples, missing context)
- HOWTO guides for real operational tasks you have performed
Before opening a large PR, file an issue or discussion first to align on scope and approach.
Workflow¶
- Fork the repository and create a feature branch.
- Make changes. Keep commits focused; prefer small, reviewable PRs.
- For modules and roles: run smoke tests locally before pushing.
- For Terraform modules: run
terraform fmtandterraform validate. - Open a pull request with a clear description, what you changed, and why.
- Link any relevant issues, ADRs, or HOWTOs.
Standards¶
Modules and roles
- Roles must be idempotent and free of hardcoded secrets, IPs, or hostnames.
- Modules must declare inputs, guards, and evidence expectations in
spec.yml. - Avoid logging sensitive values in task output or evidence artefacts.
Ansible collections
- Each role provides
roles/<role_name>/tests/smoke.ymlandtests/inventory.example.ini. - Molecule scenarios are recommended for multi-node or container-orchestration behaviour.
- Public collection consumption is through Ansible Galaxy; maintainer source work happens through the project release workflow.
Terraform modules
- All variables must have descriptions. Sensitive variables must use
sensitive = true. - Modules should be idempotent and include a working example under
examples/.
Documentation
- New modules and roles should have a corresponding HOWTO or runbook entry.
- ADRs document significant decisions: use the template when making architectural choices.
- Documentation is CC BY 4.0; keep it accurate and testable.
Security¶
Do not commit secrets, tokens, client IDs, or passwords. If you discover a security issue, report it privately through the security contact for the relevant public repository or the HybridOps contact channel.
License¶
By contributing, you agree that your contributions will be licensed under the same license as the repository you are contributing to (MIT-0 for code, CC BY 4.0 for documentation). See Licensing for details.