Version Control (Optional)
Hyve’s core model is: a cluster is one YAML file in a local directory, and hyve reconcile makes reality match whatever that file says — created, updated, or deleted. That directory doesn’t need to be anything more than a folder on disk (see Contexts). Putting it under git is entirely your own choice, not a requirement — but it’s a natural fit, applying the same version control, review, and continuous-reconciliation discipline to infrastructure that’s already applied to application code (the pattern commonly called “GitOps”). This page covers that optional layer.
Declarative
Describe the desired state; hyve figures out how to get there — git or not
Continuous Reconciliation
Add a file to create, delete it to destroy, edit a field to update
Auditable
Full change history is whatever your version control already gives you
Your Own Git
Hyve never clones, pulls, pushes, or commits — that stays entirely yours
The core loop
apiVersion: hyve.io/v1alpha1kind: ClusterDefinitionmetadata: name: productionspec: region: PHX1 driver: source: github.com/your-org/hyve-civo-module version: v1.0.0 params: node_size: g4s.kube.large node_count: "3"hyve reconcileCommit that file and reconcile creates the cluster. Edit node_count and reconcile scales it. Delete the file and reconcile tears it down. One command, three outcomes, depending purely on what’s in the directory hyve context currently points at — see Contexts.
Hyve does not sync git for you
# Before reconciling, get the latest state yourselfgit pull
hyve reconcile
# After reconciling, hyve may have written state back to# cluster-state/*.state.yaml — commit and push that yourself toogit add -A && git commit -m "hyve: reconcile" && git pushA real change, end to end
Branch
git checkout -b scale-productionEdit the cluster definition
Change node_count in clusters/production.yaml — no CLI command needed, it’s just a file.
Preview, then commit
hyve reconcile --dry-rungit commit -am "Scale production to 5 nodes for holiday traffic"git push origin scale-productionReview
Open a pull request — the diff is the change, reviewable like any code change.
Merge and reconcile
git checkout main && git pullhyve reconcileDisaster recovery
Clone your state repository
git clone https://github.com/your-org/your-hyve-config.gitcd your-hyve-configPoint hyve at it
hyve context create prod --path .hyve context use prodReconcile
hyve reconcile# Recreates every cluster defined in the directoryBest practices
Descriptive commit messages
git commit -m "Scale production for holiday traffic", not git commit -m "update" — this is your audit trail, since hyve keeps none of its own.
Review production changes via pull request
A cluster YAML diff is a normal code diff — branch, push, open a PR, merge, then reconcile.
Separate environments, separate directories
One hyve context per environment (hyve context create prod --path ..., hyve context create staging --path ...) keeps production and staging changes from ever touching the same reconcile run — see Contexts.
Automate reconciliation in CI
git pull && hyve reconcile --dry-run on every PR, git pull && hyve reconcile on merge to main — no extra orchestration needed.