Pulumi Support (Preview)
February 23, 2026
Snap CD now supports Pulumi as an engine, available as a Preview Feature.
Until now, Snap CD has supported OpenTofu and Terraform as engines for your modules. With this release, we are adding Pulumi as a third option. This means you can now orchestrate Pulumi deployments with the same dependency tracking, automatic propagation, and approval workflows that Snap CD provides for OpenTofu and Terraform.
How to enable
Pulumi is available as a Preview Feature. An Organization Owner must first opt in via the Preview Features page on the snapcd.io portal before Pulumi can be selected as an engine.
How to use it
Once opted in, you can set Pulumi as the engine on a Module :
resource "snapcd_module" "mymodule" {
name = "mymodule"
namespace_id = snapcd_namespace.mynamespace.id
engine = "Pulumi"
# ...How
}
Note this can also be set as the
default_engineon Namespace level
Pulumi modules can be configured with Flags and Array Flags, which control the command-line arguments passed to Pulumi commands. For example, to configure a module to use a specifc secrets provider:
resource "snapcd_module_pulumi_flag" "secrets_provider" {
module_id = snapcd_module.mymodule.id
task = "Init"
flag = "SecretsProvider"
value = "awskms://alias/pulumi-secrets"
}
Array flags can appear multiple times. For example, to target specific resources and attach policy packs:
resource "snapcd_module_pulumi_array_flag" "targets" {
for_each = toset(["aws_vpc.main", "aws_subnet.main"])
module_id = snapcd_module.mymodule.id
task = "Plan"
flag = "Target"
value = each.value
}
See the full Flags & Array Flags documentation for all available flag values.
What to expect
As a Preview Feature, Pulumi support is functional but may see changes as we gather feedback. We encourage you to try it out and let us know how it works for your use case.
For more details, see the Engine documentation.