Skip to content

Coming from Terraform, Terragrunt or Pulumi

llms.txt lists every page for a coding agent.

Optional: hand this page to your coding agentThe steps work by hand too.
Show the prompt
Read https://intentius.io/loomster/guides/coming-from-terraform-or-pulumi/ and show the person, in this checkout, the equivalents of a plan, a module, a variable file and a remote-state dependency, with file paths.
Run `npm run synth` and `npx chant graph --components` and report the output.
Never run `chant approve` or `just grant`, never deploy to or delete from a real AWS account unless the person asked for that in this session, never register an identity provider in Loom, and never push or edit the `chant/lifecycle` branch.

A map from Terraform, Terragrunt and Pulumi to loomster, and what you stop managing because CloudFormation keeps the state.

npm install
npx chant graph --components # the dependency order, as Terragrunt's run-all would see it
npm run synth # one CloudFormation template per component in dist/
To do thisTerraform or TerragruntPulumiloomster
A reusable unita modulea component resourcea composite in src/composites/
A deployable roota root module, a Terragrunt unita stacka component, one CloudFormation stack
Inputsvariables.tf, .tfvarsPulumi.<stack>.yaml configbuild parameters in chant.config.ts, set by LOOM_* variables
Read another root’s outputsterraform_remote_state, Terragrunt dependencyStackReferencestackOutput("<component>", "<output>")
Apply in dependency orderterragrunt run-all applyper stack, in the order you choosenpx chant run --components all
Planterraform planpulumi previewchant lifecycle diff --live (npm run watch)
Environmentsworkspaces or directoriesstacksLOOM_ENV and LOOM_INSTANCE
Bring an existing resource under managementimport blockspulumi importreference it through a seam (Provision, reference or omit)
Pull a console change into codeterraform plan -refresh-only, then editpulumi refreshnpm run reconcile opens a pull request (Watch and reconcile drift)
Destroyterraform destroypulumi destroychant run loom-teardown, gated
Providersthe AWS provider@pulumi/awschant’s AWS and Docker lexicons
  • No state file and no lock. CloudFormation keeps the state as a service, so there is no backend bucket, lock table or state surgery.
  • Rollback is automatic. Where Terraform leaves a partial apply, CloudFormation returns a failed stack to its last good state, and the frontend and backend components also put the previous task definition back.
  • The plan, chant lifecycle diff --live, compares the source with the live resources, so it shows drift as well as your change.
  • chant marks what it owns with chant:managed-by tags, and reconcile only ever touches those resources.
  • Build parameters are resolved once, at synth. A template never reads the environment at apply time.
Not hereIn Terraform or Pulumiloomster’s ruleDo this instead
A state backendS3 and DynamoDB, Terraform Cloud, Pulumi CloudCloudFormation holds statenothing to run
Importing a resource into loomster’s stacksimport blocks, pulumi importa resource someone else owns stays theirsreference it through a seam