**Language / Язык:** [English](pulumi.md) | [Русский](../ru/examples/pulumi.md)

# Pulumi

[`examples/pulumi/`](../../examples/pulumi/) is a Python Pulumi program that uses
the official [`pulumi-vsphere`](https://www.pulumi.com/registry/packages/vsphere/)
provider (SOAP/VIM) against the simulator — the same provider path as Terraform
`hashicorp/vsphere`.

```bash
cd examples/pulumi
pip install -r requirements.txt
pulumi plugin install resource vsphere 4.17.0
pulumi stack init dev   # once
pulumi config set server localhost   # or your gateway host
pulumi config set --secret password 'VMware1!'
pulumi up
```

Configuration (`pulumi config set`): `server` (default `localhost`), `user`
(default `administrator@vsphere.local`), `password` (secret), `datacenter`,
`datastore`, `cluster`, `network`, `vm_name` (default `pulumi-lab-01`).

Same reseed caution as Terraform: simulator PostgreSQL state and Pulumi state
are independent. Pin the catalog major for reproducible CI if your workflow
depends on Web UI/evidence output (see [API versions](../api-versions.md)) —
runtime routes themselves are always available regardless of the major.

For the lab suite (inventory + folder + VM + tags, nonempty output checks, HTML
report), see [`pulumi-tests/`](../../pulumi-tests/README.md) or run
`make pulumi-tests` from the repo root.
