Skip to main content
EXAMPLE

starlark-hooks

Check component ownership before Terraform plans a module using Atmos Automation Language, a Python-like language built on Starlark and embedded in Atmos. The hook reads resolved stack variables…

Automation
cloudposse / atmos

Try it out

Copy the example into a new directory and make it your own:

atmos init examples/starlark-hooks
cd starlark-hooks

Follow the README for prerequisites and next steps.

See it in action

RECORDED DEMO
starlark-hooks
 
Recorded from this example
Real commands. Real output.
README.md1.4 KB
View on GitHub

A lifecycle hook with Atmos Automation

Check component ownership before Terraform plans a module using Atmos Automation Language, a Python-like language built on Starlark and embedded in Atmos. The hook reads resolved stack variables directly through ctx.component; it needs no shell parsing or extra atmos describe call.

Install Terraform and run from this directory:

atmos terraform plan api -s dev

Atmos prints Owner check passed: api belongs to platform (dev)., then Terraform reports no changes. The module has no providers or resources, so the command requires no credentials, network access, or provider installation.

The unowned stack inherits the same component but clears its owner. To see the guard stop the plan before Terraform runs:

atmos terraform plan api -s unowned

The hook fails with Set an owner before planning api.

The stack names the component api while its implementation directory is service. The hook receives the component's stack identity automatically.

See hooks and Starlark lifecycle context.