Skip to content

Cover the module and registry paths in the Terraform-user docs - #20732

Draft
fnune wants to merge 6 commits into
masterfrom
fnune/docs/tf-users-refresh
Draft

Cover the module and registry paths in the Terraform-user docs#20732
fnune wants to merge 6 commits into
masterfrom
fnune/docs/tf-users-refresh

Conversation

@fnune

@fnune fnune commented Aug 6, 2026

Copy link
Copy Markdown
Member

Stacked on #20709 — review that one first; the diff here is against its branch.

#20709 renames pulumi package add terraform-module to pulumi package add hcl module across the six pages that carried the old syntax. This PR picks up the Terraform-facing pages it doesn't touch, which still describe an incomplete picture of what shipped in the August 2026 release.

  • get-started/terraform/convert-hcl.md presented converting and the HCL runtime as the only two options. It now names three alternatives to converting: run .tf files natively, consume a module as a package via Any HCL Module, or publish to the Pulumi Cloud registry and get conversion for free.
  • get-started/terraform/_index.md listed five of the section's eight topics, omitting the HCL runtime and the Pulumi Cloud state backend / remote execution pages that live in the same section.
  • what-is/what-is-a-terraform-module.md described module reuse without naming the mechanism or mentioning that Pulumi Cloud's registry is a place Terraform modules can live.
  • comparisons/cdktf.md had four links to the pre-move /docs/iac/using-pulumi/extending-pulumi/use-terraform-module/ path.

Plan names ("Enterprise or Business Critical") and the tf.pulumi.com/<namespace>/<name>/<system> source form are taken from content/docs/idp/concepts/terraform-modules.md; the pulumi package add hcl module syntax from #20709.

Test plan

  1. Automated checks
    • node scripts/lint/lint-markdown.js: 1845 files parsed, 0 errors
  2. Manual checks
    • Grepped the repo (excluding content/blog/) for remaining package add terraform-module, source: terraform-module, and pulumi-terraform-module references: none outside example directory names

cnunciato and others added 6 commits August 4, 2026 16:29
Update the `pulumi package add terraform-module` command to
`pulumi package add hcl module` across the Terraform docs, add a
runtime module-loading section using the hcl provider, and link the
hcl package from the Terraform-to-Pulumi walkthrough.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Address review feedback on the hcl module docs:

- Drop the trailing package name from `pulumi package add hcl module`
  commands; the name is derived from the module source, not passed.
- Update use-terraform-module.md and terraform-modules.md examples to the
  derived package names (vpc, rds), real Pulumi.yaml package blocks
  (source: hcl), and generated Go import paths.
- Use @-delimited version syntax for Pulumi Cloud converted packages.
- Refer to the package as "Any HCL Module" in prose, matching the Registry.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The hcl provider translates Terraform snake_case variable names to
camelCase, unlike the terraform-module provider. Update the VPC and RDS
example programs to the correct per-language property names (camelCase
for TypeScript/Java/YAML, PascalCase for Go/C#, snake_case unchanged for
Python), and fix the C# example to construct the module with
Module/ModuleArgs and import Pulumi.Aws.Ec2.Inputs.

Verified with go build, tsc, and dotnet build against the generated SDKs.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The VPC and VPC+RDS examples used the terraform-aws-modules/vpc/aws
module, which fails to deploy through the hcl provider (a graph-cycle
bug), and pulled in incidental complexity (std/cidrsubnet, provider
config, multi-module wiring). Replace them with the simple, self-
contained terraform-aws-modules/s3-bucket/aws module, which deploys
cleanly and better illustrates the mechanics of consuming a module.

Also:
- Reword the "How It Works" step that inaccurately described translating
  Pulumi declarations to Terraform.
- Replace the obsolete "Configuring Terraform Providers" section (its
  Provider({ aws }) pattern doesn't exist on the hcl provider) with a
  note on ambient provider configuration.
- Fix the relative-paths troubleshooting example to use the runtime
  loader, since the typed SDK mis-infers the Lambda module's source_path.
- Remove the Limitations and output-type sections (unverified against
  the hcl provider) and the redundant Conclusion.

All examples compile-verified (go build, tsc, dotnet build).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Fix a missing article and reword two awkward sentences in the
Terraform-module guides.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Follows #20709, which renames `pulumi package add terraform-module` to
`pulumi package add hcl module`. These are the Terraform-facing pages that
PR does not touch but that still describe an incomplete picture of what
shipped in the August 2026 release.

- `convert-hcl.md` presented converting and the HCL runtime as the only two
  options. It now names three alternatives to converting: run `.tf` files
  natively, consume a module as a package via Any HCL Module, or publish to
  the Pulumi Cloud registry and get conversion for free (Enterprise or
  Business Critical to publish; reading works on any plan).
- The `Pulumi for Terraform Users` landing page listed five of the section's
  eight topics, omitting the HCL runtime and the Pulumi Cloud state backend.
- `what-is-a-terraform-module.md` described module reuse without naming the
  mechanism or the Cloud registry as a place modules can live.
- Four links in `cdktf.md` pointed at the pre-move
  `/docs/iac/using-pulumi/extending-pulumi/use-terraform-module/` path.

## Test plan

1. Automated checks
   - `node scripts/lint/lint-markdown.js`: 1845 files parsed, 0 errors
2. Manual checks
   - Plan names and the `tf.pulumi.com` source form verified against
     `content/docs/idp/concepts/terraform-modules.md`
   - `pulumi package add hcl module` syntax verified against #20709
   - Grepped the repo (excluding `content/blog/`) for remaining
     `package add terraform-module`, `source: terraform-module`, and
     `pulumi-terraform-module` references: none outside example directory
     names
Base automatically changed from cnunciato/rename-terraform-module to master August 6, 2026 15:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants