From 0bfe67ac33de4ab5022e2e091c3bad51f4302e55 Mon Sep 17 00:00:00 2001 From: Mikhail Shilkov Date: Mon, 30 Jun 2025 13:57:39 +0200 Subject: [PATCH 01/12] Add md files next to html files --- config/_default/config.yml | 12 ++++++++++++ layouts/_default/list.llmmd.md | 33 ++++++++++++++++++++++++++++++++ layouts/_default/single.llmmd.md | 3 +++ 3 files changed, 48 insertions(+) create mode 100644 layouts/_default/list.llmmd.md create mode 100644 layouts/_default/single.llmmd.md diff --git a/config/_default/config.yml b/config/_default/config.yml index ef51ac1d72f5..26e243c6849e 100644 --- a/config/_default/config.yml +++ b/config/_default/config.yml @@ -33,6 +33,14 @@ timeout: 300000 outputFormats: rss: baseName: rss + llmmd: + mediaType: "text/markdown" + isPlainText: true + notAlternative: false + permalinkable: false + path: "" + rel: "llmmd" + suffix: ".md" # We set the outputs explicitly to just "HTML" as otherwise they default to both # "HTML" and "RSS", and we only want to generate RSS for the blog section -- not @@ -45,6 +53,10 @@ outputs: - JSON section: - HTML + - llmmd + page: + - HTML + - llmmd taxonomies: tag: tags diff --git a/layouts/_default/list.llmmd.md b/layouts/_default/list.llmmd.md new file mode 100644 index 000000000000..696dd05fa7c7 --- /dev/null +++ b/layouts/_default/list.llmmd.md @@ -0,0 +1,33 @@ +# {{ .Title }} + +{{ with .Params.meta_desc }} +> {{ . }} +{{ end }} + +{{ range .Params.sections }} +## {{ .heading }} + +{{ with .description_md }} +{{ . | markdownify }} +{{ end }} + +{{- if .cards }} +{{ range .cards }} +### {{ .heading }} + +{{ with .description }} +{{ . }} +{{ end }} + +{{ with .link }} +[Read more]({{ . | relURL }}index.md) +{{ end }} + +{{ end }} +{{ end }} + +{{- end }} + +{{- if .Content }} +{{ .Content }} +{{- end }} diff --git a/layouts/_default/single.llmmd.md b/layouts/_default/single.llmmd.md new file mode 100644 index 000000000000..6e05a5966545 --- /dev/null +++ b/layouts/_default/single.llmmd.md @@ -0,0 +1,3 @@ +# {{ .Title }} + +{{- .RawContent -}} \ No newline at end of file From 9df3b0150a694154da7bdf9dbd339827b0f641dc Mon Sep 17 00:00:00 2001 From: Mikhail Shilkov Date: Mon, 30 Jun 2025 14:19:12 +0200 Subject: [PATCH 02/12] Add the root llms.txt file --- static/llms.txt | 57 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 static/llms.txt diff --git a/static/llms.txt b/static/llms.txt new file mode 100644 index 000000000000..6fc10fa4240d --- /dev/null +++ b/static/llms.txt @@ -0,0 +1,57 @@ +# Pulumi + +> Modern Infrastructure as Code platform that lets you use real programming languages to build and deploy cloud infrastructure across any cloud provider. + +Pulumi is the universal infrastructure as code platform that enables developers, platform teams, and enterprises to build, deploy, and manage cloud infrastructure using familiar programming languages. Unlike traditional Infrastructure as Code tools that use domain-specific languages, Pulumi supports TypeScript, Python, Go, .NET, Java, and YAML. + +## Key Products + +- [Infrastructure as Code (IaC)](https://www.pulumi.com/docs/iac/index.md): Build cloud infrastructure using real programming languages +- [Pulumi ESC (Environments, Secrets, and Configuration)](https://www.pulumi.com/docs/esc/index.md): Centralized secrets and configuration management +- [Pulumi Cloud](https://www.pulumi.com/docs/pulumi-cloud/index.md): Managed service for teams with collaboration, security, and deployment features +- [Pulumi Insights](https://www.pulumi.com/docs/insights/index.md): AI-powered cloud resource discovery and compliance +- [CrossGuard](https://www.pulumi.com/docs/iac/crossguard/index.md): Policy as code for infrastructure compliance and governance + +## Getting Started + +- [Install Pulumi](https://www.pulumi.com/docs/iac/download-install/index.md): Installation instructions for all platforms +- [Get Started with AWS](https://www.pulumi.com/docs/iac/get-started/aws/index.md): Build your first AWS infrastructure +- [Get Started with Azure](https://www.pulumi.com/docs/iac/get-started/azure/index.md): Build your first Azure infrastructure +- [Get Started with Google Cloud](https://www.pulumi.com/docs/iac/get-started/gcp/index.md): Build your first GCP infrastructure +- [Get Started with Kubernetes](https://www.pulumi.com/docs/iac/get-started/kubernetes/index.md): Deploy Kubernetes resources + +## Language Support + +- [TypeScript/JavaScript](https://www.pulumi.com/docs/iac/languages-sdks/javascript/index.md): Most popular language for Pulumi +- [Python](https://www.pulumi.com/docs/iac/languages-sdks/python/index.md): Full Python SDK with async support +- [Go](https://www.pulumi.com/docs/iac/languages-sdks/go/index.md): Native Go SDK for infrastructure +- [.NET](https://www.pulumi.com/docs/iac/languages-sdks/dotnet/index.md): C#, F#, and VB.NET support +- [Java](https://www.pulumi.com/docs/iac/languages-sdks/java/index.md): Full Java SDK support +- [YAML](https://www.pulumi.com/docs/iac/languages-sdks/yaml/index.md): Declarative YAML-based infrastructure + +## Core Resources + +- [Programming Model](https://www.pulumi.com/docs/iac/concepts/programming-model/index.md): Understanding resources, inputs, outputs, and state +- [Stacks and Projects](https://www.pulumi.com/docs/iac/concepts/organizing-stacks-projects/index.md): Organizing infrastructure code +- [Secrets Management](https://www.pulumi.com/docs/iac/concepts/secrets/index.md): Handling sensitive configuration data +- [Testing Infrastructure](https://www.pulumi.com/docs/iac/concepts/testing/index.md): Unit and integration testing approaches +- [Continuous Delivery](https://www.pulumi.com/docs/iac/using-pulumi/continuous-delivery/index.md): CI/CD integration patterns + +## Migration and Adoption + +- [Import Existing Infrastructure](https://www.pulumi.com/docs/iac/adopting-pulumi/import/index.md): Import cloud resources into Pulumi +- [Convert from Terraform](https://www.pulumi.com/docs/iac/adopting-pulumi/migrating-to-pulumi/from-terraform/index.md): Migration guide from Terraform +- [Convert from CloudFormation](https://www.pulumi.com/docs/iac/adopting-pulumi/migrating-to-pulumi/from-cloudformation/index.md): Migration from AWS CloudFormation +- [Conversion Tools](https://www.pulumi.com/docs/iac/adopting-pulumi/converters/index.md): Automated conversion utilities + +## CLI Reference + +- [Pulumi CLI Commands](https://www.pulumi.com/docs/iac/cli/commands/index.md): Complete command reference +- [Environment Variables](https://www.pulumi.com/docs/iac/cli/environment-variables/index.md): Configuration options +- [ESC CLI Commands](https://www.pulumi.com/docs/esc-cli/commands/index.md): Pulumi ESC command reference + +## API and SDKs + +- [Automation API](https://www.pulumi.com/docs/iac/automation-api/index.md): Programmatic infrastructure management +- [Provider SDK](https://www.pulumi.com/docs/iac/extending-pulumi/pulumi-provider-sdk/index.md): Building custom providers +- [Package Publishing](https://www.pulumi.com/docs/iac/extending-pulumi/publishing-packages/index.md): Sharing reusable components \ No newline at end of file From 0b8f06cde9078f183a4e7e92560ad3dc2e0be86e Mon Sep 17 00:00:00 2001 From: Mikhail Shilkov Date: Mon, 30 Jun 2025 16:20:11 +0200 Subject: [PATCH 03/12] Build llms.txt with a layout --- config/_default/config.yml | 8 +++++ content/llms.md | 8 +++++ layouts/_default/list.llmmd.md | 4 ++- layouts/_default/single.llms | 57 ++++++++++++++++++++++++++++++++++ static/llms.txt | 57 ---------------------------------- 5 files changed, 76 insertions(+), 58 deletions(-) create mode 100644 content/llms.md create mode 100644 layouts/_default/single.llms delete mode 100644 static/llms.txt diff --git a/config/_default/config.yml b/config/_default/config.yml index 26e243c6849e..df4702895c0f 100644 --- a/config/_default/config.yml +++ b/config/_default/config.yml @@ -41,6 +41,14 @@ outputFormats: path: "" rel: "llmmd" suffix: ".md" + llms: + mediaType: "text/plain" + isPlainText: true + notAlternative: false + permalinkable: false + path: "" + rel: "llms" + suffix: ".txt" # We set the outputs explicitly to just "HTML" as otherwise they default to both # "HTML" and "RSS", and we only want to generate RSS for the blog section -- not diff --git a/content/llms.md b/content/llms.md new file mode 100644 index 000000000000..b418f16f0c61 --- /dev/null +++ b/content/llms.md @@ -0,0 +1,8 @@ +--- +title: "llms.txt" +meta_desc: "LLM-friendly overview of Pulumi documentation structure and key resources for AI systems to understand infrastructure as code concepts and tools." +url: "/llms.txt" +layout: "llms" +outputs: + - "llms" +--- \ No newline at end of file diff --git a/layouts/_default/list.llmmd.md b/layouts/_default/list.llmmd.md index 696dd05fa7c7..884db71615c5 100644 --- a/layouts/_default/list.llmmd.md +++ b/layouts/_default/list.llmmd.md @@ -13,7 +13,9 @@ {{- if .cards }} {{ range .cards }} -### {{ .heading }} +{{- if or .heading .label }} +### {{ or .heading .label }} +{{- end }} {{ with .description }} {{ . }} diff --git a/layouts/_default/single.llms b/layouts/_default/single.llms new file mode 100644 index 000000000000..9409372a8039 --- /dev/null +++ b/layouts/_default/single.llms @@ -0,0 +1,57 @@ +# Pulumi + +> Modern Infrastructure as Code platform that lets you use real programming languages to build and deploy cloud infrastructure across any cloud provider. + +Pulumi is the universal infrastructure as code platform that enables developers, platform teams, and enterprises to build, deploy, and manage cloud infrastructure using familiar programming languages. Unlike traditional Infrastructure as Code tools that use domain-specific languages, Pulumi supports TypeScript, Python, Go, .NET, Java, and YAML. + +## Key Products + +- [Infrastructure as Code (IaC)]({{ .Site.BaseURL }}docs/iac/index.md): Build cloud infrastructure using real programming languages +- [Pulumi ESC (Environments, Secrets, and Configuration)]({{ .Site.BaseURL }}docs/esc/index.md): Centralized secrets and configuration management +- [Pulumi Cloud]({{ .Site.BaseURL }}docs/pulumi-cloud/index.md): Managed service for teams with collaboration, security, and deployment features +- [Pulumi Insights]({{ .Site.BaseURL }}docs/insights/index.md): AI-powered cloud resource discovery and compliance +- [CrossGuard]({{ .Site.BaseURL }}docs/iac/crossguard/index.md): Policy as code for infrastructure compliance and governance + +## Getting Started + +- [Install Pulumi]({{ .Site.BaseURL }}docs/iac/download-install/index.md): Installation instructions for all platforms +- [Get Started with AWS]({{ .Site.BaseURL }}docs/iac/get-started/aws/index.md): Build your first AWS infrastructure +- [Get Started with Azure]({{ .Site.BaseURL }}docs/iac/get-started/azure/index.md): Build your first Azure infrastructure +- [Get Started with Google Cloud]({{ .Site.BaseURL }}docs/iac/get-started/gcp/index.md): Build your first GCP infrastructure +- [Get Started with Kubernetes]({{ .Site.BaseURL }}docs/iac/get-started/kubernetes/index.md): Deploy Kubernetes resources + +## Language Support + +- [TypeScript/JavaScript]({{ .Site.BaseURL }}docs/iac/languages-sdks/javascript/index.md): Most popular language for Pulumi +- [Python]({{ .Site.BaseURL }}docs/iac/languages-sdks/python/index.md): Full Python SDK with async support +- [Go]({{ .Site.BaseURL }}docs/iac/languages-sdks/go/index.md): Native Go SDK for infrastructure +- [.NET]({{ .Site.BaseURL }}docs/iac/languages-sdks/dotnet/index.md): C#, F#, and VB.NET support +- [Java]({{ .Site.BaseURL }}docs/iac/languages-sdks/java/index.md): Full Java SDK support +- [YAML]({{ .Site.BaseURL }}docs/iac/languages-sdks/yaml/index.md): Declarative YAML-based infrastructure + +## Core Resources + +- [Programming Model]({{ .Site.BaseURL }}docs/reference/programming-model/index.md): Understanding resources, inputs, outputs, and state +- [Stacks and Projects]({{ .Site.BaseURL }}docs/iac/concepts/organizing-stacks-projects/index.md): Organizing infrastructure code +- [Secrets Management]({{ .Site.BaseURL }}docs/iac/concepts/secrets/index.md): Handling sensitive configuration data +- [Testing Infrastructure]({{ .Site.BaseURL }}docs/iac/concepts/testing/index.md): Unit and integration testing approaches +- [Continuous Delivery]({{ .Site.BaseURL }}docs/iac/using-pulumi/continuous-delivery/index.md): CI/CD integration patterns + +## Migration and Adoption + +- [Import Existing Infrastructure]({{ .Site.BaseURL }}docs/iac/adopting-pulumi/import/index.md): Import cloud resources into Pulumi +- [Convert from Terraform]({{ .Site.BaseURL }}docs/iac/adopting-pulumi/migrating-to-pulumi/from-terraform/index.md): Migration guide from Terraform +- [Convert from CloudFormation]({{ .Site.BaseURL }}docs/iac/adopting-pulumi/migrating-to-pulumi/from-cloudformation/index.md): Migration from AWS CloudFormation +- [Conversion Tools]({{ .Site.BaseURL }}docs/iac/adopting-pulumi/converters/index.md): Automated conversion utilities + +## CLI Reference + +- [Pulumi CLI Commands]({{ .Site.BaseURL }}docs/iac/cli/commands/index.md): Complete command reference +- [Environment Variables]({{ .Site.BaseURL }}docs/iac/cli/environment-variables/index.md): Configuration options +- [ESC CLI Commands]({{ .Site.BaseURL }}docs/esc/cli/commands/index.md): Pulumi ESC command reference + +## API and SDKs + +- [Automation API]({{ .Site.BaseURL }}docs/iac/automation-api/index.md): Programmatic infrastructure management +- [Provider SDK]({{ .Site.BaseURL }}docs/iac/extending-pulumi/pulumi-provider-sdk/index.md): Building custom providers +- [Package Publishing]({{ .Site.BaseURL }}docs/iac/extending-pulumi/publishing-packages/index.md): Sharing reusable components \ No newline at end of file diff --git a/static/llms.txt b/static/llms.txt deleted file mode 100644 index 6fc10fa4240d..000000000000 --- a/static/llms.txt +++ /dev/null @@ -1,57 +0,0 @@ -# Pulumi - -> Modern Infrastructure as Code platform that lets you use real programming languages to build and deploy cloud infrastructure across any cloud provider. - -Pulumi is the universal infrastructure as code platform that enables developers, platform teams, and enterprises to build, deploy, and manage cloud infrastructure using familiar programming languages. Unlike traditional Infrastructure as Code tools that use domain-specific languages, Pulumi supports TypeScript, Python, Go, .NET, Java, and YAML. - -## Key Products - -- [Infrastructure as Code (IaC)](https://www.pulumi.com/docs/iac/index.md): Build cloud infrastructure using real programming languages -- [Pulumi ESC (Environments, Secrets, and Configuration)](https://www.pulumi.com/docs/esc/index.md): Centralized secrets and configuration management -- [Pulumi Cloud](https://www.pulumi.com/docs/pulumi-cloud/index.md): Managed service for teams with collaboration, security, and deployment features -- [Pulumi Insights](https://www.pulumi.com/docs/insights/index.md): AI-powered cloud resource discovery and compliance -- [CrossGuard](https://www.pulumi.com/docs/iac/crossguard/index.md): Policy as code for infrastructure compliance and governance - -## Getting Started - -- [Install Pulumi](https://www.pulumi.com/docs/iac/download-install/index.md): Installation instructions for all platforms -- [Get Started with AWS](https://www.pulumi.com/docs/iac/get-started/aws/index.md): Build your first AWS infrastructure -- [Get Started with Azure](https://www.pulumi.com/docs/iac/get-started/azure/index.md): Build your first Azure infrastructure -- [Get Started with Google Cloud](https://www.pulumi.com/docs/iac/get-started/gcp/index.md): Build your first GCP infrastructure -- [Get Started with Kubernetes](https://www.pulumi.com/docs/iac/get-started/kubernetes/index.md): Deploy Kubernetes resources - -## Language Support - -- [TypeScript/JavaScript](https://www.pulumi.com/docs/iac/languages-sdks/javascript/index.md): Most popular language for Pulumi -- [Python](https://www.pulumi.com/docs/iac/languages-sdks/python/index.md): Full Python SDK with async support -- [Go](https://www.pulumi.com/docs/iac/languages-sdks/go/index.md): Native Go SDK for infrastructure -- [.NET](https://www.pulumi.com/docs/iac/languages-sdks/dotnet/index.md): C#, F#, and VB.NET support -- [Java](https://www.pulumi.com/docs/iac/languages-sdks/java/index.md): Full Java SDK support -- [YAML](https://www.pulumi.com/docs/iac/languages-sdks/yaml/index.md): Declarative YAML-based infrastructure - -## Core Resources - -- [Programming Model](https://www.pulumi.com/docs/iac/concepts/programming-model/index.md): Understanding resources, inputs, outputs, and state -- [Stacks and Projects](https://www.pulumi.com/docs/iac/concepts/organizing-stacks-projects/index.md): Organizing infrastructure code -- [Secrets Management](https://www.pulumi.com/docs/iac/concepts/secrets/index.md): Handling sensitive configuration data -- [Testing Infrastructure](https://www.pulumi.com/docs/iac/concepts/testing/index.md): Unit and integration testing approaches -- [Continuous Delivery](https://www.pulumi.com/docs/iac/using-pulumi/continuous-delivery/index.md): CI/CD integration patterns - -## Migration and Adoption - -- [Import Existing Infrastructure](https://www.pulumi.com/docs/iac/adopting-pulumi/import/index.md): Import cloud resources into Pulumi -- [Convert from Terraform](https://www.pulumi.com/docs/iac/adopting-pulumi/migrating-to-pulumi/from-terraform/index.md): Migration guide from Terraform -- [Convert from CloudFormation](https://www.pulumi.com/docs/iac/adopting-pulumi/migrating-to-pulumi/from-cloudformation/index.md): Migration from AWS CloudFormation -- [Conversion Tools](https://www.pulumi.com/docs/iac/adopting-pulumi/converters/index.md): Automated conversion utilities - -## CLI Reference - -- [Pulumi CLI Commands](https://www.pulumi.com/docs/iac/cli/commands/index.md): Complete command reference -- [Environment Variables](https://www.pulumi.com/docs/iac/cli/environment-variables/index.md): Configuration options -- [ESC CLI Commands](https://www.pulumi.com/docs/esc-cli/commands/index.md): Pulumi ESC command reference - -## API and SDKs - -- [Automation API](https://www.pulumi.com/docs/iac/automation-api/index.md): Programmatic infrastructure management -- [Provider SDK](https://www.pulumi.com/docs/iac/extending-pulumi/pulumi-provider-sdk/index.md): Building custom providers -- [Package Publishing](https://www.pulumi.com/docs/iac/extending-pulumi/publishing-packages/index.md): Sharing reusable components \ No newline at end of file From 6fa9d78678542cc3ccbe6297a44cdce7993a9bcb Mon Sep 17 00:00:00 2001 From: Mikhail Shilkov Date: Mon, 30 Jun 2025 16:49:09 +0200 Subject: [PATCH 04/12] Try a different approach to get the site build --- config/_default/config.yml | 4 ++-- content/llms.md | 4 ++-- layouts/_default/{single.llms => single.txt} | 0 3 files changed, 4 insertions(+), 4 deletions(-) rename layouts/_default/{single.llms => single.txt} (100%) diff --git a/config/_default/config.yml b/config/_default/config.yml index df4702895c0f..df389830b7e0 100644 --- a/config/_default/config.yml +++ b/config/_default/config.yml @@ -41,13 +41,13 @@ outputFormats: path: "" rel: "llmmd" suffix: ".md" - llms: + txt: mediaType: "text/plain" isPlainText: true notAlternative: false permalinkable: false path: "" - rel: "llms" + rel: "txt" suffix: ".txt" # We set the outputs explicitly to just "HTML" as otherwise they default to both diff --git a/content/llms.md b/content/llms.md index b418f16f0c61..27037d23ac51 100644 --- a/content/llms.md +++ b/content/llms.md @@ -2,7 +2,7 @@ title: "llms.txt" meta_desc: "LLM-friendly overview of Pulumi documentation structure and key resources for AI systems to understand infrastructure as code concepts and tools." url: "/llms.txt" -layout: "llms" outputs: - - "llms" + - "txt" +block_external_search_index: true --- \ No newline at end of file diff --git a/layouts/_default/single.llms b/layouts/_default/single.txt similarity index 100% rename from layouts/_default/single.llms rename to layouts/_default/single.txt From 1254ce4e593cefddaca39eae53a21ff19a3175e9 Mon Sep 17 00:00:00 2001 From: Mikhail Shilkov Date: Mon, 30 Jun 2025 17:02:25 +0200 Subject: [PATCH 05/12] Try to exclude llms.txt from site index --- content/llms.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/content/llms.md b/content/llms.md index 27037d23ac51..ba16b789833e 100644 --- a/content/llms.md +++ b/content/llms.md @@ -4,5 +4,6 @@ meta_desc: "LLM-friendly overview of Pulumi documentation structure and key reso url: "/llms.txt" outputs: - "txt" -block_external_search_index: true +_build: + list: never --- \ No newline at end of file From 7a9ff07d8feadd570ada61f73c1afef394022919 Mon Sep 17 00:00:00 2001 From: arafatm <19172+arafatm@users.noreply.github.com> Date: Mon, 30 Jun 2025 14:53:35 -0700 Subject: [PATCH 06/12] Fix relative links for llms --- layouts/_default/single.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/layouts/_default/single.html b/layouts/_default/single.html index 53bcd1c2e7f7..2b5ce3251ea8 100644 --- a/layouts/_default/single.html +++ b/layouts/_default/single.html @@ -9,7 +9,11 @@

{{ .Title }}

{{ end }}
- {{ .Content }} + {{ if eq .OutputFormats.Get "llms" }} + {{ .Content | replaceRE `\((?!https?://)` (printf `(https://www.pulumi.com%s` (.Site.BaseURL | relURL)) | safeHTML }} + {{ else }} + {{ .Content }} + {{ end }}
{{ partial "learnmore-contactus.html" . }} From 2f775c5c434ca0b1d7e1705cbb9ea5ce6430ddc8 Mon Sep 17 00:00:00 2001 From: Mikhail Shilkov Date: Tue, 1 Jul 2025 11:35:55 +0200 Subject: [PATCH 07/12] Add a template for pricing and fix all broken links reachable from llms.txt --- content/docs/esc/_index.md | 2 +- content/docs/iac/_index.md | 24 ++++++------- content/docs/pulumi-cloud/_index.md | 2 +- layouts/_default/single.html | 6 +--- layouts/_default/single.txt | 4 +++ layouts/page/pricing.llmmd.md | 55 +++++++++++++++++++++++++++++ 6 files changed, 74 insertions(+), 19 deletions(-) create mode 100644 layouts/page/pricing.llmmd.md diff --git a/content/docs/esc/_index.md b/content/docs/esc/_index.md index 21e88ea2423a..13df66c02842 100644 --- a/content/docs/esc/_index.md +++ b/content/docs/esc/_index.md @@ -110,7 +110,7 @@ sections: - icon: lightbulb-blue-21-21 heading: Detailed overview of environments description: Learn more about managing environments using Pulumi ESC. - link: /docs/pulumi-cloud/esc/environments/ + link: /docs/esc/environments/working-with-environments/ - icon: terminal-blue-21-21 heading: Integration with Docker description: Pulumi ESC integrates with Docker to manage configuration and secrets while running docker commands. diff --git a/content/docs/iac/_index.md b/content/docs/iac/_index.md index e8b78f301e2b..e3bc941243c6 100644 --- a/content/docs/iac/_index.md +++ b/content/docs/iac/_index.md @@ -28,38 +28,38 @@ sections: cards: - label: AWS & Pulumi icon: aws-40 - link: /docs/clouds/aws/ + link: /docs/iac/clouds/aws/ - label: Azure & Pulumi icon: azure-40 - link: /docs/clouds/azure/ + link: /docs/iac/clouds/azure/ - label: Google Cloud & Pulumi icon: google-cloud-40 - link: /docs/clouds/gcp/ + link: /docs/iac/clouds/gcp/ - label: Kubernetes & Pulumi icon: kubernetes-40 - link: /docs/clouds/kubernetes/ + link: /docs/iac/clouds/kubernetes/ - type: cards-logo-label-link heading: Languages description: Build infrastructure intuitively on any cloud using familiar languages. cards: - label: Node.js icon: icon-32-32 node-color-32-32 - link: /docs/languages-sdks/javascript/ + link: /docs/iac/languages-sdks/javascript/ - label: Python icon: icon-32-32 python-color-32-32 - link: /docs/languages-sdks/python/ + link: /docs/iac/languages-sdks/python/ - label: Go icon: icon-32-32 go-color-32-32 - link: /docs/languages-sdks/go/ + link: /docs/iac/languages-sdks/go/ - label: .NET icon: icon-32-32 dotnet-color-32-32 - link: /docs/languages-sdks/dotnet/ + link: /docs/iac/languages-sdks/dotnet/ - label: Java icon: icon-32-32 java-color-32-32 - link: /docs/languages-sdks/java/ + link: /docs/iac/languages-sdks/java/ - label: YAML icon: icon-32-32 yaml-color-32-32 - link: /docs/languages-sdks/yaml/ + link: /docs/iac/languages-sdks/yaml/ - type: full-width-cards heading: Featured docs cards: @@ -70,11 +70,11 @@ sections: - icon: terminal-blue-21-21 heading: Pulumi CLI description: Browse the complete documentation of available CLI commands. - link: /docs/cli/ + link: /docs/iac/cli/ - icon: swap-blue-21-21 heading: Adopting Pulumi description: Migrate any infrastructure to Pulumi with comprehensive guides. - link: /docs/using-pulumi/adopting-pulumi/ + link: /docs/iac/adopting-pulumi/ - type: blue-sparkle heading: Why Pulumi IaC? description: Pulumi IaC enables developers to deploy infrastructure in any cloud environment with one common approach. Leverage familiar languages to make the most of abstractions and reuse while enjoying access in your favorite IDEs, and testing tools! diff --git a/content/docs/pulumi-cloud/_index.md b/content/docs/pulumi-cloud/_index.md index 97a4479e6cbc..889441d86e4a 100644 --- a/content/docs/pulumi-cloud/_index.md +++ b/content/docs/pulumi-cloud/_index.md @@ -46,7 +46,7 @@ sections: secondary_button_link: /docs/pulumi-cloud/copilot/#frequently-asked-questions - heading: Pulumi CrossGuard description: Enforce guardrails for security and compliance using policies in standard languages - link: /docs/iac/packages-and-automation/crossguard/ + link: /docs/iac/crossguard/faq/ primary_button_label: Get Started primary_button_link: /docs/iac/packages-and-automation/crossguard/get-started/ secondary_button_label: Learn More diff --git a/layouts/_default/single.html b/layouts/_default/single.html index 2b5ce3251ea8..53bcd1c2e7f7 100644 --- a/layouts/_default/single.html +++ b/layouts/_default/single.html @@ -9,11 +9,7 @@

{{ .Title }}

{{ end }}
- {{ if eq .OutputFormats.Get "llms" }} - {{ .Content | replaceRE `\((?!https?://)` (printf `(https://www.pulumi.com%s` (.Site.BaseURL | relURL)) | safeHTML }} - {{ else }} - {{ .Content }} - {{ end }} + {{ .Content }}
{{ partial "learnmore-contactus.html" . }} diff --git a/layouts/_default/single.txt b/layouts/_default/single.txt index 9409372a8039..66cb21d021ff 100644 --- a/layouts/_default/single.txt +++ b/layouts/_default/single.txt @@ -12,6 +12,10 @@ Pulumi is the universal infrastructure as code platform that enables developers, - [Pulumi Insights]({{ .Site.BaseURL }}docs/insights/index.md): AI-powered cloud resource discovery and compliance - [CrossGuard]({{ .Site.BaseURL }}docs/iac/crossguard/index.md): Policy as code for infrastructure compliance and governance +## Pricing + +- [View Pricing]({{ .Site.BaseURL }}pricing/index.md): Plans and pricing for Pulumi products + ## Getting Started - [Install Pulumi]({{ .Site.BaseURL }}docs/iac/download-install/index.md): Installation instructions for all platforms diff --git a/layouts/page/pricing.llmmd.md b/layouts/page/pricing.llmmd.md new file mode 100644 index 000000000000..53ad47ea3dd4 --- /dev/null +++ b/layouts/page/pricing.llmmd.md @@ -0,0 +1,55 @@ +# {{ .Title }} + +{{ with .Params.meta_desc }} +{{ . }} +{{ end }} + +## Pricing Plans + +{{ range .Params.tiers.trialed.items }} +### {{ .title }} +{{ .subtitle }} + +**Pulumi IaC:** {{ .iac_price }}{{ if .iac_unit }} {{ .iac_unit }}{{ end }}{{ if .iac_note }} ({{ .iac_note }}){{ end }} +{{ if .esc_price }}**Pulumi ESC:** {{ .esc_price }}{{ if .esc_unit }} {{ .esc_unit }}{{ end }}{{ if .esc_note }} ({{ .esc_note }}){{ end }}{{ end }} +{{ if .insights_price }}**Pulumi Insights:** {{ .insights_price }}{{ if .insights_unit }} {{ .insights_unit }}{{ end }}{{ if .insights_note }} ({{ .insights_note }}){{ end }}{{ end }} + +{{ .items }} + +{{ end }} + +## Feature Comparison + +{{ range .Params.comparison_table.sections }} +### {{ .header }} + +{{ range .tables }} +#### {{ .header }} +{{ with .subheader }}{{ . }}{{ end }} + +| Feature | Free | Team | Enterprise | Business Critical | +|---------|------|------|------------|-------------------| +{{ range .rows }}| {{ .title }} | {{ range $index, $item := .items }}{{ if eq $item.content "_check" }}✓{{ else if eq $item.content "_blank" }}—{{ else }}{{ $item.content | markdownify | plainify }}{{ end }}{{ if ne $index 3 }} | {{ end }}{{ end }} | +{{ end }} + +{{ end }} +{{ end }} + +## Customer Success Stories + +{{ range .Params.customers }} +- {{ .stat | markdownify | plainify }} +{{ end }} + +## Frequently Asked Questions + +{{ range .Params.faq }} +### {{ .category }} + +{{ range .items }} +**{{ .question }}** + +{{ .answer }} + +{{ end }} +{{ end }} \ No newline at end of file From 7e8cdd21f813d9b0ed85b980885bcab02eb3bcc8 Mon Sep 17 00:00:00 2001 From: arafatm <19172+arafatm@users.noreply.github.com> Date: Tue, 1 Jul 2025 15:08:53 -0700 Subject: [PATCH 08/12] Fix external links to not append index.md --- layouts/_default/list.llmmd.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/layouts/_default/list.llmmd.md b/layouts/_default/list.llmmd.md index 884db71615c5..fc7380f6051c 100644 --- a/layouts/_default/list.llmmd.md +++ b/layouts/_default/list.llmmd.md @@ -22,8 +22,12 @@ {{ end }} {{ with .link }} +{{ if hasPrefix . "http" }} +[Read more]({{ . }}) +{{ else }} [Read more]({{ . | relURL }}index.md) {{ end }} +{{ end }} {{ end }} {{ end }} From 8db5bd71ad5181ab509cd5f87dc979d96ba6f277 Mon Sep 17 00:00:00 2001 From: arafatm <19172+arafatm@users.noreply.github.com> Date: Tue, 1 Jul 2025 15:14:22 -0700 Subject: [PATCH 09/12] Render flat sections with description --- layouts/_default/list.llmmd.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/layouts/_default/list.llmmd.md b/layouts/_default/list.llmmd.md index fc7380f6051c..714f5806cf86 100644 --- a/layouts/_default/list.llmmd.md +++ b/layouts/_default/list.llmmd.md @@ -7,7 +7,7 @@ {{ range .Params.sections }} ## {{ .heading }} -{{ with .description_md }} +{{ with or .description .description_md }} {{ . | markdownify }} {{ end }} From 9037249c45ff69cccf91067f9b47849b0eb1c8be Mon Sep 17 00:00:00 2001 From: arafatm <19172+arafatm@users.noreply.github.com> Date: Tue, 1 Jul 2025 15:29:02 -0700 Subject: [PATCH 10/12] Use relative link to pricing page --- content/docs/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/_index.md b/content/docs/_index.md index ee83cc7e800c..c8f5cab152a2 100644 --- a/content/docs/_index.md +++ b/content/docs/_index.md @@ -125,6 +125,6 @@ sections: - type: flat heading: Enterprise and Business Critical support description: | -

Pulumi provides a range of support options such as dedicated 24x7 support, premium training, onboarding, and professional services. Please see our pricing page for the support options available. To open a support ticket or view service status, please visit our enterprise support portal.

+

Pulumi provides a range of support options such as dedicated 24x7 support, premium training, onboarding, and professional services. Please see our pricing page for the support options available. To open a support ticket or view service status, please visit our enterprise support portal.

--- \ No newline at end of file From 31ede858573205d52718c188b172715ca3985a9f Mon Sep 17 00:00:00 2001 From: arafatm <19172+arafatm@users.noreply.github.com> Date: Tue, 1 Jul 2025 15:31:51 -0700 Subject: [PATCH 11/12] append index.md when trying to render markdown. This is especially needed to link to the pricing page --- layouts/_default/list.llmmd.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/layouts/_default/list.llmmd.md b/layouts/_default/list.llmmd.md index 714f5806cf86..85d32ab6040e 100644 --- a/layouts/_default/list.llmmd.md +++ b/layouts/_default/list.llmmd.md @@ -8,7 +8,9 @@ ## {{ .heading }} {{ with or .description .description_md }} -{{ . | markdownify }} +{{ $find := `href="(/[^"h][^"t][^"t][^"p][^"s][^:#]*/)"` }} +{{ $replace := `href="${1}index.md"` }} +{{ . | replaceRE $find $replace | markdownify }} {{ end }} {{- if .cards }} From bb08f2acf0f3ba68eceabbbc9be41fdeeec208ff Mon Sep 17 00:00:00 2001 From: arafatm <19172+arafatm@users.noreply.github.com> Date: Tue, 1 Jul 2025 16:27:01 -0700 Subject: [PATCH 12/12] fix links to cloud/iac/.. --- content/docs/_index.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/content/docs/_index.md b/content/docs/_index.md index c8f5cab152a2..85637766e79a 100644 --- a/content/docs/_index.md +++ b/content/docs/_index.md @@ -62,16 +62,16 @@ sections: cards: - label: AWS & Pulumi icon: aws-40 - link: /docs/clouds/aws/ + link: /docs/iac/clouds/aws/ - label: Azure & Pulumi icon: azure-40 - link: /docs/clouds/azure/ + link: /docs/iac/clouds/azure/ - label: Google Cloud & Pulumi icon: google-cloud-40 - link: /docs/clouds/gcp/ + link: /docs/iac/clouds/gcp/ - label: Kubernetes & Pulumi icon: kubernetes-40 - link: /docs/clouds/kubernetes/ + link: /docs/iac/clouds/kubernetes/ - type: blue-sparkle heading: Why Pulumi? description: |