Contributing¶
HybridOps is MIT-0 licensed. Contributions are welcome across all public repositories.
Repositories¶
| Repository | Scope |
|---|---|
| hybridops-core | Platform runtime, modules, drivers, blueprints, CLI |
| hybridops-workloads | Kubernetes workload catalog (GitOps) |
| ansible-collection-app | Application and platform roles |
| ansible-collection-common | Shared utility roles and plugins |
| ansible-collection-helper | EVE-NG content and NetBox integration helpers |
| ansible-collection-network | Linux WAN simulation roles |
| hybridops-terraform-gitmods | Proxmox VM and LXC Terraform modules |
| terraform-proxmox-sdn | Proxmox SDN Terraform module |
| hybridops-docs | This documentation site |
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.
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 via GitHub's security advisory mechanism rather than opening a public issue.
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.