Feature previews are subject to change, may contain bugs, and have not yet been ironed out based on real production usage.
On a high level, Pulumi has a very similar flow to Terraform. It uses a state backend, provides dry run functionality, reconciles the actual world with the desired state. In this article we'll dive into how each of the concepts in Spacelift translates into working with Pulumi.
However, if you're the type that prefers to start with doing, instead of reading too much, there are quickstarts for each of the runtimes supported by Pulumi:
The high level concepts of Spacelift don't change when used with Pulumi. Below, we'll cover a few lower level details, which may be of interest.
Previously described in Run Initializing, in Pulumi the initialization will run:
pulumi loginwith your configured login URL
pulumi stack select --create --selectwith your configured Pulumi stack name (the one you set in vendor-specific settings, not the Spacelift Stack name)
It will then commence to run all pre-initialization hooks.
pulumi preview --refresh --diff --show-replacement-steps in order to show planned changes.
pulumi up --refresh --diff --show-replacement-steps in order to apply changes.
Most policies don't change at all. The one that changes most is the plan policy. Instead of the terraform raw plan in the
terraform field, you'll get a
pulumi field with the raw Pulumi plan and the following schema:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
Pulumi secrets are detected and encoded as
[secret] instead of the actual value, that's why there's no other string sanitization going on with Pulumi plans.
Spacelift module CI/CD isn't currently available for Pulumi.