Terraform and Nomatron are adjacent, but they do not solve the same layer of the problem.
Terraform provisions and manages infrastructure state. Nomatron manages the governed delivery path for workloads running on Nomad.
TL;DR
Use Terraform if you need:
- infrastructure provisioning;
- repeatable cloud resource management;
- declarative platform dependencies; and
- stateful infrastructure change control.
Use Nomatron if you need:
- deployment workflows for Nomad workloads;
- approvals and audit around releases;
- environment-specific rollout control; and
- promotion and visibility for application delivery.
Side-By-Side
| Capability | Terraform | Nomatron |
|---|---|---|
| Provision infrastructure | Yes | No |
| Manage cloud resources declaratively | Yes | No |
| Govern Nomad workload deployments | No | Yes |
| Promotion across environments | No | Yes |
| Release approvals | No | Yes |
| Deployment audit trail | Limited | Yes |
The Real Gap
Terraform is excellent for defining:
- Nomad clusters;
- networks;
- databases;
- secrets backends; and
- surrounding infrastructure.
It is not designed to be the interactive, environment-aware control plane for day-to-day application deployments.
Teams can force some of that into Terraform, but the result is often awkward for frequent release operations because the workflow is optimized for infrastructure state, not ongoing delivery control.
A Real-World Example
You might use Terraform to create:
- the Nomad cluster;
- the PostgreSQL database;
- the load balancer; and
- even some baseline Nomatron resources.
But when it is time to:
- review a release;
- approve a production rollout;
- promote a known-good deployment to another environment; or
- inspect who changed what,
that is no longer really an infrastructure provisioning problem.
That is where Nomatron fits.
Why Nomatron
The strongest model is usually:
- Terraform provisions the platform; and
- Nomatron governs workload delivery on that platform.
That gives each tool the job it is best at.