ubx-plugin-pulumi plugin is the primary execution engine for ubx. It takes IR JSON, generates a complete Pulumi program in your chosen runtime language, and runs it via the Pulumi Automation API.
Install
~/.ubx/plugins/pulumi/ubx-plugin-pulumi.
Configure
Inworkspace.xcl:
What the plugin generates
Python runtime (runtime = "python")
requirements.txt always starts with:
TypeScript runtime (runtime = "typescript")
Go runtime (runtime = "go")
Stack name
The Pulumi project/stack name is derived from the stack directory name:Cross-stack references
@stack.output references become Pulumi StackReference objects in generated code:
Outputs
XCLoutput blocks become pulumi.export() calls:
output block label.
Plugin RPCs
| RPC | Description |
|---|---|
Compile | Generates code, returns artifact_uri (path to .ubx/) |
Plan | Runs pulumi preview, returns summary |
Apply | Runs pulumi up, streams ProgressEvent |
Destroy | Runs pulumi destroy, streams ProgressEvent |
Backend
The plugin receives the backend URL from the IR. Backend URL construction:| Backend type | URL format |
|---|---|
local | file://<stack-dir>/.ubx/state/ |
s3 | s3://bucket/key |
gcs | gs://bucket |
azblob | azblob://container |
pulumi | https://api.pulumi.com |
For-loop resources
Forfor-iterated resources, the plugin generates list comprehensions in Python:

