content(what-is): expand the Infrastructure as Software explainer#19153
Conversation
Rewrites content/what-is/what-is-infrastructure-as-software.md from a marketing-leaning overview into a substantive reference that honestly distinguishes IaS from DSL-based IaC. New structure: - Bold quotable definition + question-driven TOC. - Three problems that drive IaS adoption: sophisticated cloud- native architectures, ephemeral/dynamic infrastructure, self- service platform engineering. - DSL-based IaC vs IaS comparison table across 9 dimensions including types, abstractions, sharing, testing, programmable lifecycle, onboarding. - Seven engineering capabilities IaS adds: types, abstractions, package management, testing, IDE tooling, policy as code in the same language, composability with non-infra code. - Six concrete use cases where IaS shines. - Dedicated section on the automation API and its use cases (IDPs, multi-tenant SaaS, custom CI/CD, chatbots, ephemeral environments). - Honest trade-offs section covering when IaS is more rope than signal, language onboarding cost, side-effect anti-patterns, ecosystem maturity gaps. - Pulumi-IaS section: first-class languages, typed SDKs, components, CrossGuard, ESC, automation API, CI/CD-native. - Ten FAQ entries covering Terraform vs Pulumi, CloudFormation CDK comparison, ops engineer adoption, YAML, testing, platform engineering, migration, multi-cloud, performance. - Cross-links to IaC, DevOps, platform engineering, IaC for DevOps, IaC for Kubernetes, infrastructure testing. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Your site preview for commit 37218df is ready! 🎉 http://www-testing-pulumi-docs-origin-pr-19153-37218df5.s3-website.us-west-2.amazonaws.com |
Pre-merge Review — Last updated 2026-05-19T18:00:00ZTip Summary: This PR rewrites and expands the Review confidence:
Investigation log
🔍 Verification trail48 claims extracted · 28 verified · 7 unverifiable · 2 contradicted
🚨 Outstanding in this PRNo outstanding items — all previously flagged findings have been resolved.
|
|
@claude - fix all the outstanding items and then #update-review |
CrossGuard supports TypeScript/JavaScript, Python, and OPA Rego — not Java. CDKTF supports C# in addition to TypeScript, Python, Go, and Java. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
🤖 Review updated on @alexleventer's request. |
CamSoper
left a comment
There was a problem hiding this comment.
@claude - Please make the following changes:
- remove all references to "CrossGuard" (deprecated term)
- "Types are generated from each provider's schema". - Do this
- "...plus 100+ other providers..." -> "...plus hundreds of other providers..."
- L129 & L167: add the suggested links.
Then #update-review.
… schema/providers wording, add docs links - Remove all "CrossGuard" references (deprecated term); use "Pulumi policies" with /docs/insights/policy/ link - "from each provider's API" → "from each provider's schema" (more precise) - "100+ other providers" → "hundreds of other providers" (stays current) - L129: add ESC docs link (/docs/esc/) alongside product marketing link - L167: link `pulumi convert` to /docs/iac/guides/migration/converters/ Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
🤖 Review updated on @CamSoper's request. |
|
…-soper Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
🤖 Review updated on @CamSoper's request. |
|
🤖 Review updated on @CamSoper's request. |
* ci(docs-review): broaden Vale/URL-fetch path filter to what-is, tutorials, learn The Vale step and URL pre-fetch step were gated to `content/(docs|blog)/`, which silently skipped every PR under `content/what-is/`, `content/tutorials/`, and `content/learn/`. That captured nearly every content PR landed since the 2026-05-15 pipeline overhaul — the explainer rewrites alone (#19141–#19153, #19185) all touched only `content/what-is/`, so Vale never ran on them and no Style findings appeared in their pinned reviews. Broaden the regex to `^content/(docs|blog|what-is|tutorials|learn)/.*\.md$` in all five filter sites: - .github/workflows/claude-code-review.yml (Vale + URL pre-fetch) - .github/workflows/claude-triage.yml (Vale in triage) - .github/workflows/claude-update.yml (Vale on @claude #update-review) - extract-urls-and-fetch.py (Python regex must match the workflow filter) `content/learn/` doesn't exist yet but is included for forward compatibility — `triage-classify.py:32` already classifies it as `domain:docs` alongside docs/tutorials/what-is, so this keeps the path-filter scope consistent with the domain classifier. Editorial-balance (blog-only), cross-sibling discovery (docs-only), and the social-review workflow stay narrow by design — those checks target specific content shapes, not all prose. `.vale.ini` per-path overrides are unchanged: the `Google.FirstPerson` exemption is blog-only because blog posts are written in author voice; what-is/tutorials/learn use institutional voice and should still flag first-person. Also update echo messages and one comment in validate-pinned.py that referenced the old "docs/blog" scope. Co-Authored-By: Claude <noreply@anthropic.com> https://claude.ai/code/session_01KAPbBaLgeuNWmLwU4ARASQ * Drop `learn` path from Vale scope filter in claude-update.yml Agent-Logs-Url: https://github.com/pulumi/docs/sessions/43591091-fb4f-44cd-8d9a-9eea988b42be Co-authored-by: CamSoper <137648+CamSoper@users.noreply.github.com> * Apply suggestion from @CamSoper --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: CamSoper <137648+CamSoper@users.noreply.github.com>
Summary
Rewrites
content/what-is/what-is-infrastructure-as-software.mdfrom a marketing-leaning overview into a substantive reference that honestly distinguishes IaS from DSL-based IaC.What changed
Test plan
🤖 Generated with Claude Code