Skip to content

Getting started

Introduction

Isoloom describes an environment once (machines, networks, the services they expose) and runs it anywhere, with the same behavior on every target.

Isoloom is a format and a command-line tool for environments made of several machines: an application with its database, a segmented network with a DMZ, a small Active Directory domain. You describe the environment once, in one YAML file, and Isoloom works out where it can run and produces the files each target needs.

The problem it solves

The same environment usually gets written several times: a docker-compose.yml for laptops, a Vagrantfile for local VMs, Terraform for a Proxmox server, more Terraform for each cloud. The copies drift. A port changes in one and not the others, a machine is added in one place only, and nobody notices until something behaves differently on a different target.

Isoloom keeps one description and treats every other file as generated output.

How it thinks

  • Behavior first. The spec says what the environment looks like from outside: its machines, its networks, which network can reach which, and the services that answer. That's the contract.
  • Implementations per machine. Each machine can say how a container produces it (docker:), how a VM produces it (vm:), or both. A VM installs its services natively; there is no Docker inside it.
  • Targets are derived. If every machine has a docker: implementation, the Docker targets are possible. If every machine has a vm: implementation, the VM targets are. A Windows domain controller has no container form, so an environment containing one never produces a broken Docker file.
  • Checks prove it. The environment ships black-box checks. The same checks run against every target, so "the same behavior everywhere" is tested, not assumed.

What it isn't

Isoloom doesn't replace Docker, Vagrant or Terraform: it writes their files. It doesn't describe everything those tools can do either, only what an environment needs to behave the same everywhere. Anything specific to one target stays in that target's implementation.

Status

Isoloom is at v0.4. It validates a spec, derives its targets, adds up its resources, and generates the files for Docker Compose and Vagrant, with routers enforcing reach rules and machines that can act as a network's gateway. Proxmox and the cloud come next; see the roadmap.