Skip to main contentPulumi is an infrastructure-as-code framework that harnesses popular programming languages such as Go, JS/TS, Python, and .NET Platform. With env zero, you can enjoy all of the benefits that are built on top of it such as Plan on Pull Request, Drift Detection, and moreโฆ
Unlike the HCL language that is used in terraform, Pulumi represents the concept of writing IaC by commonly used programming languages. There are many benefits of such concept, for example, strong-type support, homogeneous codebase, testing easiness, etc. You can read more about Pulumi in their docs.
Environment Deployment
In order to manage your Pulumi executions in env zero, you may have to follow the next steps:
- Create a Pulumi Template first.
- Create
env0.yml file in the target repository and inject a required packages installation command
(npm i for example, see gist).
- Connect your cloud account
- Add
PULUMI_ACCESS_TOKEN environment variable
- Create an environment, you can set the stack name if you already configured one, if not, env zero will create a random stack name.
State StorageCurrently, env zero does not store the stack state, which means that it is saved in Pulumiโs remote backend or using a Pulumi self-managed option. See Pulumi Docs on State Storage for more details.
Execution Steps
Beyond the common steps such as Clone, Loading variables, etc. Deploy/Destroy Pulumi environment contains the following steps:
- Pulumi Login -
pulumi login --non-interactive
- Stack Selection -
pulumi stack select --create <stack_name>
- Pulumi Preview -
pulumi preview --refresh --diff --show-replacement-steps
- Pulumi Up -
pulumi up -f --yes --refresh --diff --show-replacement-steps
- Pulumi Stack Output
- Pulumi Destroy -
pulumi destroy -f --yes --refresh --diff --show-replacement-steps
Additional Configuration
Check out Pulumiโs Environment Variable configurations to further customize your environment
For example, if you want to use your own S3 remote backend, simply create an Environment Variable in your env zero Environment with PULUMI_BACKEND_URL=s3://your-pulumi-state-bucket