From e801a37b75603020dcfb24de8f4137ddfa4c15a8 Mon Sep 17 00:00:00 2001 From: Sara <100384099+SaraDPH@users.noreply.github.com> Date: Fri, 15 Aug 2025 09:40:52 -0500 Subject: [PATCH 01/18] Add files via upload --- content/b/azure.md | 268 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 268 insertions(+) create mode 100644 content/b/azure.md diff --git a/content/b/azure.md b/content/b/azure.md new file mode 100644 index 000000000000..f0b24140d5e9 --- /dev/null +++ b/content/b/azure.md @@ -0,0 +1,268 @@ +--- +title: "Alternative | Pulumi" +meta_desc: Infrastructure as Code in any programming language. Enable your team to get code to any cloud productively, securely, and reliably. +layout: gads-template +block_external_search_index: true +aliases: + - /gads/gads-template + +heading: "Competitor Alternative" +subheading: | + Pulumi is a free, open source infrastructure as code tool, and works best with Pulumi Cloud to + make managing infrastructure secure, reliable, and hassle-free. + +overview: + title: Infrastructure as Code
in any Programming Language + description: | + Pulumi Cloud is the smartest and easiest way to automate, secure, and manage everything you run in the cloud using programming languages you know and love. + +key_features_above: + items: + - title: "Author in any language, deploy to any cloud" + sub_title: "Pulumi Infrastructure as Code Engine" + description: + Author [infrastructure as code (IaC)](/what-is/what-is-infrastructure-as-code/) using programming languages you know and love – including TypeScript/JavaScript, Python, Go, C#, Java, and YAML. Deploy to 170+ providers like AWS, Azure, Google Cloud, and Kubernetes. + image: "/images/product/pulumi-iac-code.png" + button: + text: "Try Pulumi Cloud for FREE" + link: "https://app.pulumi.com/signup" + features: + - title: Code faster + description: | + Write infrastructure code in TypeScript, JavaScript, Python, Go, .NET, Java, and YAML using your IDE and any language ecosystem tools. + icon: code + color: yellow + - title: Build on any cloud + description: | + Access the full breadth of services in AWS, Azure, GCP, and [170+ providers](/registry/) through + a complete and consistent SDK interface. + icon: global + color: yellow + - title: Preview and test changes + description: | + Test and validate infrastructure with standard [unit test frameworks](/docs/guides/testing/#unit-testing) and + [integration tests](/docs/guides/testing/integration/). Preview changes before deploying. + icon: eye + color: yellow + +key_features: + title: Key features + items: + - title: "Build infrastructure faster with reusable components" + sub_title: "Pulumi Packages" + description: | + Build and reuse higher-level abstractions for cloud architectures with multi-language Pulumi Packages. Distribute the packages through repositories or package managers so your team members can reuse them. + ide: + - title: index.ts + language: typescript + code: | + import * as eks from "@pulumi/eks"; + + // Create an EKS cluster with the default configuration. + const cluster = new eks.Cluster("eks-cluster"); + + // Export the cluster's kubeconfig. + export const kubeconfig = cluster.kubeconfig; + - title: __main__.py + language: python + code: | + import pulumi + import pulumi_eks as eks + + # Create an EKS cluster with the default configuration. + cluster = eks.Cluster("eks-cluster") + + # Export the cluster's kubeconfig. + pulumi.export("kubeconfig", cluster.kubeconfig) + - title: main.go + language: go + code: | + package main + + import ( + "github.com/pulumi/pulumi-eks/sdk/go/eks" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + ) + + func main() { + pulumi.Run(func(ctx *pulumi.Context) error { + // Create an EKS cluster with default settings. + cluster, err := eks.NewCluster(ctx, "eks-cluster", nil) + if err != nil { + return err + } + + // Export the cluster's kubeconfig. + ctx.Export("kubeconfig", cluster.Kubeconfig) + return nil + }) + } + - title: MyStack.cs + language: csharp + code: | + using System.Collections.Generic; + using Pulumi; + using Pulumi.Eks; + + await Deployment.RunAsync(() => + { + // Create an EKS cluster with default settings. + var cluster = new Cluster("eks-cluster"); + + // Export the cluster's kubeconfig. + return new Dictionary + { + ["kubeconfig"] = cluster.Kubeconfig + }; + }); + - title: Main.Java + language: java + code: | + import com.pulumi.Context; + import com.pulumi.Pulumi; + import com.pulumi.eks.Cluster; + + public class App { + public static void main(String[] args) { + Pulumi.run(App::stack); + } + + private static void stack(Context ctx) { + final var cluster = new Cluster("eks-cluster"); + ctx.export("kubeconfig", cluster.kubeconfig()); + } + } + - title: Pulumi.yaml + language: yaml + code: | + resources: + eks-cluster: + type: eks:Cluster + outputs: + kubeconfig: ${cluster.kubeconfig} + button: + text: "Try Pulumi Cloud for FREE" + link: "https://app.pulumi.com/signup" + features: + - title: Native cloud providers + description: | + Full API coverage for AWS, Azure, Google Cloud, and Kubernetes with same-day updates. + - title: Crosswalk for AWS + description: | + Adopt well-architected best practices for your infrastructure easily with the [Crosswalk library](/docs/iac/clouds/aws/guides/). + - title: Cloud Native support + description: | + Use a single workflow to manage both [Kubernetes](/kubernetes/) resources and infrastructure. + + - title: "Deliver infrastructure through software delivery pipelines" + sub_title: "CI/CD Integrations" + description: | + Version, review, test, and deploy infrastructure code through the same tools and processes used for your application code. + image: "/images/product/pulumi-cicd.png" + button: + text: "Try Pulumi Cloud for FREE" + link: "https://app.pulumi.com/signup" + features: + - title: Version and review + description: | + Manage infrastructure code in Git and approve changes through pull requests. + - title: Shift left + description: | + Get rapid feedback on your code with fast [unit tests](/docs/iac/concepts/testing/unit/), and run [integration tests](/docs/iac/concepts/testing/integration/) against ephemeral infrastructure. + - title: Continuous delivery + description: | + [Integrate your CI/CD provider](/docs/iac/packages-and-automation/continuous-delivery/) with Pulumi or use GitOps to [manage Kubernetes clusters](/docs/iac/packages-and-automation/continuous-delivery/pulumi-kubernetes-operator/). + +stats: + title: Open source. Enterprise ready. + description: | + Pulumi's Infrastructure as Code CLI and SDK is an [open-source project](https://github.com/pulumi/) that's supported + by an active community. We maintain a [public roadmap](https://github.com/orgs/pulumi/projects/44) and welcome feedback and contributions. + community: + number: "10,000s" + description: of community members + company: + number: "1,000s" + description: of companies + integration: + number: "170+" + description: Cloud and service integrations + +key_features_below: + items: + - title: "The fastest and easiest way to use Pulumi IaC at scale" + sub_title: "Pulumi Cloud" + description: | + A fully-managed service for Pulumi IaC plus so much more. Manage and store infrastructure state & secrets, collaborate within teams, view and search infrastructure, and manage security and compliance using Pulumi Cloud. + image: "/images/product/pulumi-cloud-iac-stylized-01.png" + button: + text: "Try Pulumi Cloud for FREE" + link: "https://app.pulumi.com/signup" + features: + - title: Pulumi IaC + description: | + Utilize open-source IaC in TypeScript, Python, Go, C#, Java and YAML. Build and distribute reusable components for 170+ cloud & SaaS providers. + - title: Pulumi ESC + description: | + Centralized secrets management & orchestration. Tame secrets sprawl and configuration complexity securely across all your cloud infrastructure and applications. + - title: Automate deployment workflows + description: | + Orchestrate secure deployment workflows through GitHub or an API. + - title: Search and analytics + description: | + View resources from any cloud in one place. Search for resources across clouds with simple queries and filters. + - title: Pulumi Automation API + description: | + Build custom deployment and CI/CD workflows that integrate with Pulumi Developer Portal, custom portals, or CLIs. + - title: Developer portals + description: | + Create internal developer portals to distribute infrastructure templates using Pulumi or the Backstage-plugin. + - title: Identity and access control + description: | + Manage teams with SCIM, SAML SSO, GitHub, GitLab, or Atlassian. Set permissions and access tokens. + - title: Policy enforcement + description: | + Build policy packs from 150 policies or write your own. Leverage compliance-ready policies for any cloud to increase compliance posture and remediation policies to correct violations. + - title: Audit logs + description: | + Track and store user actions and change history with option to export logs. + +case_studies: + title: Customers innovating with Pulumi Cloud + items: + - name: Atlassian + link: /case-studies/atlassian/ + logo: atlassian + description: | + Developers reduced their time spent on maintenance by 50%. + + - name: Elkjop + link: /case-studies/elkjop-nordic/ + logo: elkjop-nordic + description: | + Increased developers' agility and speed through platform engineering. + + - name: Starburst + link: /blog/how-starburst-data-creates-infrastructure-automation-magic-with-code/ + logo: starburst + description: | + Increased velocity and speed, with deployments that are up to 3x faster. + + - name: BMW + link: /case-studies/bmw/ + logo: bmw + description: | + Enabled developers to deploy across hybrid cloud environments. + + - name: Lemonade + link: /case-studies/lemonade/ + logo: lemonade + description: | + Standardized infrastructure architectures with reusable components. + + - name: Snowflake + link: /case-studies/snowflake/ + logo: snowflake + description: | + Built a multi-cloud, Kubernetes-based platform to standardize all deployments +--- \ No newline at end of file From d8b8f7705019ab988dcb00d01c18b36cd4ddbd86 Mon Sep 17 00:00:00 2001 From: Sara <100384099+SaraDPH@users.noreply.github.com> Date: Fri, 15 Aug 2025 10:24:34 -0500 Subject: [PATCH 02/18] Update azure --- hopefully - changing language to Azure and ARM - changing code snippets from AWS to Azure --- content/b/azure.md | 326 ++++++++++++++++++++++++++++++++------------- 1 file changed, 232 insertions(+), 94 deletions(-) diff --git a/content/b/azure.md b/content/b/azure.md index f0b24140d5e9..ef7cf17d1dca 100644 --- a/content/b/azure.md +++ b/content/b/azure.md @@ -1,12 +1,13 @@ --- -title: "Alternative | Pulumi" +title: "Azure Infrastructure" meta_desc: Infrastructure as Code in any programming language. Enable your team to get code to any cloud productively, securely, and reliably. layout: gads-template block_external_search_index: true aliases: - - /gads/gads-template + - /azure-resource-manager + - /azure-infrastructure -heading: "Competitor Alternative" +heading: "Manage Azure Infrastructure The Easy Way" subheading: | Pulumi is a free, open source infrastructure as code tool, and works best with Pulumi Cloud to make managing infrastructure secure, reliable, and hassle-free. @@ -21,8 +22,143 @@ key_features_above: - title: "Author in any language, deploy to any cloud" sub_title: "Pulumi Infrastructure as Code Engine" description: - Author [infrastructure as code (IaC)](/what-is/what-is-infrastructure-as-code/) using programming languages you know and love – including TypeScript/JavaScript, Python, Go, C#, Java, and YAML. Deploy to 170+ providers like AWS, Azure, Google Cloud, and Kubernetes. - image: "/images/product/pulumi-iac-code.png" + Author infrastructure as code (IaC) using programming languages you know and love – including C#, TypeScript, Python, Go, Java, and YAML. Pulumi SDK + helps create, deploy, and manage 100% of your Microsoft Azure infrastructure, including containers, serverless functions, and infrastructure using modern programming languages. + ide: + tabs: + - title: C# + language: csharp + code: | + using Pulumi; + using Pulumi.AzureNative.Resources; + using Pulumi.AzureNative.Storage; + using Pulumi.AzureNative.Storage.Inputs; + + class MyStack : Stack + { + public MyStack() + { + var resourceGroup = new ResourceGroup("resourceGroup"); + + var storageAccount = new StorageAccount("sa", new StorageAccountArgs + { + ResourceGroupName = resourceGroup.Name, + Sku = new SkuArgs { Name = "Standard_LRS" }, + Kind = "StorageV2" + }); + } + } + + - title: typescript + language: typescript + code: | + import * as resources from "@pulumi/azure-native/resources"; + import * as storage from "@pulumi/azure-native/storage"; + + const resourceGroup = new resources.ResourceGroup("resourceGroup"); + + const storageAccount = new storage.StorageAccount("sa", { + resourceGroupName: resourceGroup.name, + sku: { + name: "Standard_LRS", + }, + kind: "StorageV2", + }); + + - title: python + language: python + code: | + from pulumi_azure_native import storage + from pulumi_azure_native import resources + + resource_group = resources.ResourceGroup('resource_group') + + account = storage.StorageAccount('sa', + resource_group_name=resource_group.name, + sku=storage.SkuArgs(name='Standard_LRS'), + kind='StorageV2') + + - title: go + language: go + code: | + package main + + import ( + "github.com/pulumi/pulumi-azure-native/sdk/go/azure/resources" + "github.com/pulumi/pulumi-azure-native/sdk/go/azure/storage" + "github.com/pulumi/pulumi/sdk/v2/go/pulumi" + ) + + func main() { + pulumi.Run(func(ctx *pulumi.Context) error { + resourceGroup, err := resources.NewResourceGroup(ctx, "resourceGroup", nil) + if err != nil { + return err + } + + account, err := storage.NewStorageAccount(ctx, "sa", &storage.StorageAccountArgs{ + ResourceGroupName: resourceGroup.Name, + Sku: &storage.SkuArgs{ + Name: pulumi.String("Standard_LRS"), + }, + Kind: pulumi.String("StorageV2"), + }) + + return err + }) + } + + - title: yaml + language: yaml + code: | + name: azure-storage-account + runtime: yaml + description: A simple Pulumi program. + resources: + resourcegroup: + type: azure-native:resources:ResourceGroup + sa: + type: azure-native:storage:StorageAccount + properties: + resourceGroupName: ${resourcegroup.name} + kind: 'StorageV2' + sku: { name: 'Standard_LRS' } + + - title: Java + language: java + code: | + package com.pulumi.example.infra; + + import com.pulumi.Context; + import com.pulumi.Exports; + import com.pulumi.Pulumi; + import com.pulumi.azurenative.resources.ResourceGroup; + import com.pulumi.azurenative.storage.StorageAccount; + import com.pulumi.azurenative.storage.StorageAccountArgs; + import com.pulumi.azurenative.storage.enums.Kind; + import com.pulumi.azurenative.storage.enums.SkuName; + import com.pulumi.azurenative.storage.inputs.SkuArgs; + + public class Main { + + public static void main(String[] args) { + Pulumi.run(Main::stack); + } + + private static Exports stack(Context ctx) { + var resourceGroup = new ResourceGroup("linux-fn-rg"); + + var storageAccount = new StorageAccount("linux-fn-sa", StorageAccountArgs.builder() + .resourceGroupName(resourceGroup.name()) + .kind(Kind.StorageV2) + .sku(SkuArgs.builder() + .name(SkuName.Standard_LRS) + .build()) + .build()); + + return ctx.exports(); + } + } button: text: "Try Pulumi Cloud for FREE" link: "https://app.pulumi.com/signup" @@ -48,111 +184,113 @@ key_features_above: key_features: title: Key features items: - - title: "Build infrastructure faster with reusable components" - sub_title: "Pulumi Packages" + - title: "Azure Resource Manager → Pulumi" + sub_title: "ARM Templates" description: | - Build and reuse higher-level abstractions for cloud architectures with multi-language Pulumi Packages. Distribute the packages through repositories or package managers so your team members can reuse them. + Pulumi lets you manage Azure infrastructure using your favorite language, with built-in support for CI/CD, reusable components, and testability. For .NET teams especially, Pulumi’s support for C# provides a superior experience over static JSON. ide: - - title: index.ts - language: typescript + - title: C# + language: csharp code: | - import * as eks from "@pulumi/eks"; - - // Create an EKS cluster with the default configuration. - const cluster = new eks.Cluster("eks-cluster"); +using Pulumi; +using AzureNative = Pulumi.AzureNative; - // Export the cluster's kubeconfig. - export const kubeconfig = cluster.kubeconfig; - - title: __main__.py - language: python +class MyStack : Stack +{ + public MyStack() + { + var config = new Config(); + var resourceGroupNameParam = config.Require("resourceGroupNameParam"); + var storagecreatedbyarm = new AzureNative.Storage.StorageAccount("storagecreatedbyarm", new AzureNative.Storage.StorageAccountArgs + { + AccountName = "storagecreatedbyarm", + Kind = "StorageV2", + Location = "westeurope", + ResourceGroupName = resourceGroupNameParam, + Sku = new AzureNative.Storage.Inputs.SkuArgs + { + Name = "Standard_LRS", + }, + }); + } +} + - title: typescript + language: typescript code: | - import pulumi - import pulumi_eks as eks +import * as pulumi from "@pulumi/pulumi"; +import * as azure_native from "@pulumi/azure-native"; - # Create an EKS cluster with the default configuration. - cluster = eks.Cluster("eks-cluster") - - # Export the cluster's kubeconfig. - pulumi.export("kubeconfig", cluster.kubeconfig) - - title: main.go +const config = new pulumi.Config(); +const resourceGroupNameParam = config.require("resourceGroupNameParam"); +const storagecreatedbyarm = new azure_native.storage.StorageAccount("storagecreatedbyarm", { + accountName: "storagecreatedbyarm", + kind: "StorageV2", + location: "westeurope", + resourceGroupName: resourceGroupNameParam, + sku: { + name: "Standard_LRS", + }, +}); + - title: go language: go code: | package main - import ( - "github.com/pulumi/pulumi-eks/sdk/go/eks" - "github.com/pulumi/pulumi/sdk/v3/go/pulumi" - ) - - func main() { - pulumi.Run(func(ctx *pulumi.Context) error { - // Create an EKS cluster with default settings. - cluster, err := eks.NewCluster(ctx, "eks-cluster", nil) - if err != nil { - return err - } +import ( + "github.com/pulumi/pulumi-azure-native/sdk/go/azure/storage" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi/config" +) - // Export the cluster's kubeconfig. - ctx.Export("kubeconfig", cluster.Kubeconfig) - return nil - }) - } - - title: MyStack.cs - language: csharp - code: | - using System.Collections.Generic; - using Pulumi; - using Pulumi.Eks; +func main() { + pulumi.Run(func(ctx *pulumi.Context) error { + cfg := config.New(ctx, "") + resourceGroupNameParam := cfg.Require("resourceGroupNameParam") + _, err := storage.NewStorageAccount(ctx, "storagecreatedbyarm", &storage.StorageAccountArgs{ + AccountName: pulumi.String("storagecreatedbyarm"), + Kind: pulumi.String("StorageV2"), + Location: pulumi.String("westeurope"), + ResourceGroupName: pulumi.String(resourceGroupNameParam), + Sku: &storage.SkuArgs{ + Name: pulumi.String("Standard_LRS"), + }, + }) + if err != nil { + return err + } + return nil + }) +} - await Deployment.RunAsync(() => - { - // Create an EKS cluster with default settings. - var cluster = new Cluster("eks-cluster"); - - // Export the cluster's kubeconfig. - return new Dictionary - { - ["kubeconfig"] = cluster.Kubeconfig - }; - }); - - title: Main.Java - language: java + - title: python + language: python code: | - import com.pulumi.Context; - import com.pulumi.Pulumi; - import com.pulumi.eks.Cluster; +import pulumi +import pulumi_azure_native as azure_native - public class App { - public static void main(String[] args) { - Pulumi.run(App::stack); - } - - private static void stack(Context ctx) { - final var cluster = new Cluster("eks-cluster"); - ctx.export("kubeconfig", cluster.kubeconfig()); - } - } - - title: Pulumi.yaml - language: yaml - code: | - resources: - eks-cluster: - type: eks:Cluster - outputs: - kubeconfig: ${cluster.kubeconfig} +config = pulumi.Config() +resource_group_name_param = config.require("resourceGroupNameParam") +storagecreatedbyarm = azure_native.storage.StorageAccount("storagecreatedbyarm", + account_name="storagecreatedbyarm", + kind="StorageV2", + location="westeurope", + resource_group_name=resource_group_name_param, + sku=azure_native.storage.SkuArgs( + name="Standard_LRS", + )) button: text: "Try Pulumi Cloud for FREE" link: "https://app.pulumi.com/signup" features: - - title: Native cloud providers + - title: 100% API Coverage description: | - Full API coverage for AWS, Azure, Google Cloud, and Kubernetes with same-day updates. - - title: Crosswalk for AWS + Full API coverage for Azure with same-day updates. Every property of each resource is always represented in the SDKs. + - title: Policy as Code for Azure description: | - Adopt well-architected best practices for your infrastructure easily with the [Crosswalk library](/docs/iac/clouds/aws/guides/). - - title: Cloud Native support + Set guardrails for resources to ensure best practices and security compliance are consistently followed, using [CrossGuard](/docs/iac/crossguard/). + - title: Everything In One Place description: | - Use a single workflow to manage both [Kubernetes](/kubernetes/) resources and infrastructure. + Full coverage for Azure services, including Azure Static Web Apps, Azure Logic Apps, Azure DevOps, Azure Blockchain Service, Azure API Management and more. - title: "Deliver infrastructure through software delivery pipelines" sub_title: "CI/CD Integrations" @@ -174,7 +312,7 @@ key_features: [Integrate your CI/CD provider](/docs/iac/packages-and-automation/continuous-delivery/) with Pulumi or use GitOps to [manage Kubernetes clusters](/docs/iac/packages-and-automation/continuous-delivery/pulumi-kubernetes-operator/). stats: - title: Open source. Enterprise ready. + title: Open source. Enterprise-ready. description: | Pulumi's Infrastructure as Code CLI and SDK is an [open-source project](https://github.com/pulumi/) that's supported by an active community. We maintain a [public roadmap](https://github.com/orgs/pulumi/projects/44) and welcome feedback and contributions. @@ -182,7 +320,7 @@ stats: number: "10,000s" description: of community members company: - number: "1,000s" + number: "3,000s" description: of companies integration: number: "170+" @@ -201,7 +339,7 @@ key_features_below: features: - title: Pulumi IaC description: | - Utilize open-source IaC in TypeScript, Python, Go, C#, Java and YAML. Build and distribute reusable components for 170+ cloud & SaaS providers. + Utilize open-source IaC in C#, TypeScript, Python, Go, Java and YAML. Build and distribute reusable components for 170+ cloud & SaaS providers. - title: Pulumi ESC description: | Centralized secrets management & orchestration. Tame secrets sprawl and configuration complexity securely across all your cloud infrastructure and applications. @@ -225,7 +363,7 @@ key_features_below: Build policy packs from 150 policies or write your own. Leverage compliance-ready policies for any cloud to increase compliance posture and remediation policies to correct violations. - title: Audit logs description: | - Track and store user actions and change history with option to export logs. + Track and store user actions and change history with the option to export logs. case_studies: title: Customers innovating with Pulumi Cloud @@ -265,4 +403,4 @@ case_studies: logo: snowflake description: | Built a multi-cloud, Kubernetes-based platform to standardize all deployments ---- \ No newline at end of file +--- From cdd5479544412e85b94bb8b777da3a517395cbb9 Mon Sep 17 00:00:00 2001 From: Sara <100384099+SaraDPH@users.noreply.github.com> Date: Fri, 15 Aug 2025 10:34:13 -0500 Subject: [PATCH 03/18] Update azure.md --- content/b/azure.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/content/b/azure.md b/content/b/azure.md index ef7cf17d1dca..1167e357dbac 100644 --- a/content/b/azure.md +++ b/content/b/azure.md @@ -9,8 +9,7 @@ aliases: heading: "Manage Azure Infrastructure The Easy Way" subheading: | - Pulumi is a free, open source infrastructure as code tool, and works best with Pulumi Cloud to - make managing infrastructure secure, reliable, and hassle-free. + Pulumi is a free, open source infrastructure as code tool, and works best with Pulumi Cloud to make managing infrastructure secure, reliable, and hassle-free. overview: title: Infrastructure as Code
in any Programming Language From f5306a866522dba5e83188a2b2e962eb67518e5f Mon Sep 17 00:00:00 2001 From: Sara <100384099+SaraDPH@users.noreply.github.com> Date: Fri, 15 Aug 2025 10:36:47 -0500 Subject: [PATCH 04/18] Update azure.md --- content/b/azure.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/content/b/azure.md b/content/b/azure.md index 1167e357dbac..7664001e00f6 100644 --- a/content/b/azure.md +++ b/content/b/azure.md @@ -233,7 +233,7 @@ const storagecreatedbyarm = new azure_native.storage.StorageAccount("storagecrea - title: go language: go code: | - package main +package main import ( "github.com/pulumi/pulumi-azure-native/sdk/go/azure/storage" @@ -245,6 +245,7 @@ func main() { pulumi.Run(func(ctx *pulumi.Context) error { cfg := config.New(ctx, "") resourceGroupNameParam := cfg.Require("resourceGroupNameParam") + _, err := storage.NewStorageAccount(ctx, "storagecreatedbyarm", &storage.StorageAccountArgs{ AccountName: pulumi.String("storagecreatedbyarm"), Kind: pulumi.String("StorageV2"), @@ -261,6 +262,7 @@ func main() { }) } + - title: python language: python code: | From a1ee677e882bca8ccdd8ea86dcd2be97300b3b25 Mon Sep 17 00:00:00 2001 From: Adam Gordon Bell Date: Fri, 15 Aug 2025 11:40:28 -0400 Subject: [PATCH 05/18] Refactor code formatting and enhance description in Azure documentation --- content/b/azure.md | 160 ++++++++++++++++++++++----------------------- 1 file changed, 79 insertions(+), 81 deletions(-) diff --git a/content/b/azure.md b/content/b/azure.md index 7664001e00f6..3410c8a4f536 100644 --- a/content/b/azure.md +++ b/content/b/azure.md @@ -20,11 +20,10 @@ key_features_above: items: - title: "Author in any language, deploy to any cloud" sub_title: "Pulumi Infrastructure as Code Engine" - description: + description: | Author infrastructure as code (IaC) using programming languages you know and love – including C#, TypeScript, Python, Go, Java, and YAML. Pulumi SDK - helps create, deploy, and manage 100% of your Microsoft Azure infrastructure, including containers, serverless functions, and infrastructure using modern programming languages. - ide: - tabs: + helps create, deploy, and manage 100% of your Microsoft Azure infrastructure, including containers, serverless functions, and infrastructure using modern programming languages. + ide: - title: C# language: csharp code: | @@ -191,94 +190,93 @@ key_features: - title: C# language: csharp code: | -using Pulumi; -using AzureNative = Pulumi.AzureNative; - -class MyStack : Stack -{ - public MyStack() - { - var config = new Config(); - var resourceGroupNameParam = config.Require("resourceGroupNameParam"); - var storagecreatedbyarm = new AzureNative.Storage.StorageAccount("storagecreatedbyarm", new AzureNative.Storage.StorageAccountArgs - { - AccountName = "storagecreatedbyarm", - Kind = "StorageV2", - Location = "westeurope", - ResourceGroupName = resourceGroupNameParam, - Sku = new AzureNative.Storage.Inputs.SkuArgs - { - Name = "Standard_LRS", - }, - }); - } -} + using Pulumi; + using AzureNative = Pulumi.AzureNative; + + class MyStack : Stack + { + public MyStack() + { + var config = new Config(); + var resourceGroupNameParam = config.Require("resourceGroupNameParam"); + var storagecreatedbyarm = new AzureNative.Storage.StorageAccount("storagecreatedbyarm", new AzureNative.Storage.StorageAccountArgs + { + AccountName = "storagecreatedbyarm", + Kind = "StorageV2", + Location = "westeurope", + ResourceGroupName = resourceGroupNameParam, + Sku = new AzureNative.Storage.Inputs.SkuArgs + { + Name = "Standard_LRS", + }, + }); + } + } - title: typescript language: typescript code: | -import * as pulumi from "@pulumi/pulumi"; -import * as azure_native from "@pulumi/azure-native"; - -const config = new pulumi.Config(); -const resourceGroupNameParam = config.require("resourceGroupNameParam"); -const storagecreatedbyarm = new azure_native.storage.StorageAccount("storagecreatedbyarm", { - accountName: "storagecreatedbyarm", - kind: "StorageV2", - location: "westeurope", - resourceGroupName: resourceGroupNameParam, - sku: { - name: "Standard_LRS", - }, -}); + import * as pulumi from "@pulumi/pulumi"; + import * as azure_native from "@pulumi/azure-native"; + + const config = new pulumi.Config(); + const resourceGroupNameParam = config.require("resourceGroupNameParam"); + const storagecreatedbyarm = new azure_native.storage.StorageAccount("storagecreatedbyarm", { + accountName: "storagecreatedbyarm", + kind: "StorageV2", + location: "westeurope", + resourceGroupName: resourceGroupNameParam, + sku: { + name: "Standard_LRS", + }, + }); - title: go language: go code: | -package main - -import ( - "github.com/pulumi/pulumi-azure-native/sdk/go/azure/storage" - "github.com/pulumi/pulumi/sdk/v3/go/pulumi" - "github.com/pulumi/pulumi/sdk/v3/go/pulumi/config" -) - -func main() { - pulumi.Run(func(ctx *pulumi.Context) error { - cfg := config.New(ctx, "") - resourceGroupNameParam := cfg.Require("resourceGroupNameParam") - - _, err := storage.NewStorageAccount(ctx, "storagecreatedbyarm", &storage.StorageAccountArgs{ - AccountName: pulumi.String("storagecreatedbyarm"), - Kind: pulumi.String("StorageV2"), - Location: pulumi.String("westeurope"), - ResourceGroupName: pulumi.String(resourceGroupNameParam), - Sku: &storage.SkuArgs{ - Name: pulumi.String("Standard_LRS"), - }, - }) - if err != nil { - return err - } - return nil - }) -} + package main + + import ( + "github.com/pulumi/pulumi-azure-native/sdk/go/azure/storage" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi/config" + ) + + func main() { + pulumi.Run(func(ctx *pulumi.Context) error { + cfg := config.New(ctx, "") + resourceGroupNameParam := cfg.Require("resourceGroupNameParam") + _, err := storage.NewStorageAccount(ctx, "storagecreatedbyarm", &storage.StorageAccountArgs{ + AccountName: pulumi.String("storagecreatedbyarm"), + Kind: pulumi.String("StorageV2"), + Location: pulumi.String("westeurope"), + ResourceGroupName: pulumi.String(resourceGroupNameParam), + Sku: &storage.SkuArgs{ + Name: pulumi.String("Standard_LRS"), + }, + }) + if err != nil { + return err + } + return nil + }) + } - title: python language: python code: | -import pulumi -import pulumi_azure_native as azure_native - -config = pulumi.Config() -resource_group_name_param = config.require("resourceGroupNameParam") -storagecreatedbyarm = azure_native.storage.StorageAccount("storagecreatedbyarm", - account_name="storagecreatedbyarm", - kind="StorageV2", - location="westeurope", - resource_group_name=resource_group_name_param, - sku=azure_native.storage.SkuArgs( - name="Standard_LRS", - )) + import pulumi + import pulumi_azure_native as azure_native + + config = pulumi.Config() + resource_group_name_param = config.require("resourceGroupNameParam") + storagecreatedbyarm = azure_native.storage.StorageAccount("storagecreatedbyarm", + account_name="storagecreatedbyarm", + kind="StorageV2", + location="westeurope", + resource_group_name=resource_group_name_param, + sku=azure_native.storage.SkuArgs( + name="Standard_LRS", + )) button: text: "Try Pulumi Cloud for FREE" link: "https://app.pulumi.com/signup" From 81553859ce8160aac9cf758564aa03901b371739 Mon Sep 17 00:00:00 2001 From: Sara <100384099+SaraDPH@users.noreply.github.com> Date: Fri, 15 Aug 2025 11:48:12 -0500 Subject: [PATCH 06/18] Update azure.md --- content/b/azure.md | 158 +-------------------------------------------- 1 file changed, 1 insertion(+), 157 deletions(-) diff --git a/content/b/azure.md b/content/b/azure.md index 3410c8a4f536..e72098b0479e 100644 --- a/content/b/azure.md +++ b/content/b/azure.md @@ -21,163 +21,7 @@ key_features_above: - title: "Author in any language, deploy to any cloud" sub_title: "Pulumi Infrastructure as Code Engine" description: | - Author infrastructure as code (IaC) using programming languages you know and love – including C#, TypeScript, Python, Go, Java, and YAML. Pulumi SDK - helps create, deploy, and manage 100% of your Microsoft Azure infrastructure, including containers, serverless functions, and infrastructure using modern programming languages. - ide: - - title: C# - language: csharp - code: | - using Pulumi; - using Pulumi.AzureNative.Resources; - using Pulumi.AzureNative.Storage; - using Pulumi.AzureNative.Storage.Inputs; - - class MyStack : Stack - { - public MyStack() - { - var resourceGroup = new ResourceGroup("resourceGroup"); - - var storageAccount = new StorageAccount("sa", new StorageAccountArgs - { - ResourceGroupName = resourceGroup.Name, - Sku = new SkuArgs { Name = "Standard_LRS" }, - Kind = "StorageV2" - }); - } - } - - - title: typescript - language: typescript - code: | - import * as resources from "@pulumi/azure-native/resources"; - import * as storage from "@pulumi/azure-native/storage"; - - const resourceGroup = new resources.ResourceGroup("resourceGroup"); - - const storageAccount = new storage.StorageAccount("sa", { - resourceGroupName: resourceGroup.name, - sku: { - name: "Standard_LRS", - }, - kind: "StorageV2", - }); - - - title: python - language: python - code: | - from pulumi_azure_native import storage - from pulumi_azure_native import resources - - resource_group = resources.ResourceGroup('resource_group') - - account = storage.StorageAccount('sa', - resource_group_name=resource_group.name, - sku=storage.SkuArgs(name='Standard_LRS'), - kind='StorageV2') - - - title: go - language: go - code: | - package main - - import ( - "github.com/pulumi/pulumi-azure-native/sdk/go/azure/resources" - "github.com/pulumi/pulumi-azure-native/sdk/go/azure/storage" - "github.com/pulumi/pulumi/sdk/v2/go/pulumi" - ) - - func main() { - pulumi.Run(func(ctx *pulumi.Context) error { - resourceGroup, err := resources.NewResourceGroup(ctx, "resourceGroup", nil) - if err != nil { - return err - } - - account, err := storage.NewStorageAccount(ctx, "sa", &storage.StorageAccountArgs{ - ResourceGroupName: resourceGroup.Name, - Sku: &storage.SkuArgs{ - Name: pulumi.String("Standard_LRS"), - }, - Kind: pulumi.String("StorageV2"), - }) - - return err - }) - } - - - title: yaml - language: yaml - code: | - name: azure-storage-account - runtime: yaml - description: A simple Pulumi program. - resources: - resourcegroup: - type: azure-native:resources:ResourceGroup - sa: - type: azure-native:storage:StorageAccount - properties: - resourceGroupName: ${resourcegroup.name} - kind: 'StorageV2' - sku: { name: 'Standard_LRS' } - - - title: Java - language: java - code: | - package com.pulumi.example.infra; - - import com.pulumi.Context; - import com.pulumi.Exports; - import com.pulumi.Pulumi; - import com.pulumi.azurenative.resources.ResourceGroup; - import com.pulumi.azurenative.storage.StorageAccount; - import com.pulumi.azurenative.storage.StorageAccountArgs; - import com.pulumi.azurenative.storage.enums.Kind; - import com.pulumi.azurenative.storage.enums.SkuName; - import com.pulumi.azurenative.storage.inputs.SkuArgs; - - public class Main { - - public static void main(String[] args) { - Pulumi.run(Main::stack); - } - - private static Exports stack(Context ctx) { - var resourceGroup = new ResourceGroup("linux-fn-rg"); - - var storageAccount = new StorageAccount("linux-fn-sa", StorageAccountArgs.builder() - .resourceGroupName(resourceGroup.name()) - .kind(Kind.StorageV2) - .sku(SkuArgs.builder() - .name(SkuName.Standard_LRS) - .build()) - .build()); - - return ctx.exports(); - } - } - button: - text: "Try Pulumi Cloud for FREE" - link: "https://app.pulumi.com/signup" - features: - - title: Code faster - description: | - Write infrastructure code in TypeScript, JavaScript, Python, Go, .NET, Java, and YAML using your IDE and any language ecosystem tools. - icon: code - color: yellow - - title: Build on any cloud - description: | - Access the full breadth of services in AWS, Azure, GCP, and [170+ providers](/registry/) through - a complete and consistent SDK interface. - icon: global - color: yellow - - title: Preview and test changes - description: | - Test and validate infrastructure with standard [unit test frameworks](/docs/guides/testing/#unit-testing) and - [integration tests](/docs/guides/testing/integration/). Preview changes before deploying. - icon: eye - color: yellow + Author infrastructure as code (IaC) using programming languages you know and love – including C#, TypeScript, Python, Go, Java, and YAML. Pulumi SDK helps create, deploy, and manage 100% of your Microsoft Azure infrastructure, including containers, serverless functions, and infrastructure using modern programming languages. key_features: title: Key features From ec5475a5606f9a143624f298e0ec7b91a006b8aa Mon Sep 17 00:00:00 2001 From: Adam Gordon Bell Date: Fri, 15 Aug 2025 12:55:53 -0400 Subject: [PATCH 07/18] Fix Azure page --- layouts/b/gads-template.html | 260 +++++++++++++++++++++++++++++++++++ 1 file changed, 260 insertions(+) create mode 100644 layouts/b/gads-template.html diff --git a/layouts/b/gads-template.html b/layouts/b/gads-template.html new file mode 100644 index 000000000000..926d79b17381 --- /dev/null +++ b/layouts/b/gads-template.html @@ -0,0 +1,260 @@ +{{ define "hero" }} + {{ partial "gads-hero" (dict "title" .Params.heading) }} +{{ end }} + +{{ define "main" }} +
+
+
+

{{ .Params.overview.title | markdownify }}

+
+
+
+

+ {{ .Params.overview.description | markdownify }} +

+
+ +
+ +
+ {{ range $index, $feature := .Params.key_features_above.items }} +
+ {{ if eq $index 0 }} +
+

{{ $feature.title }}

+
+
+

{{ $feature.sub_title}}

+

{{ $feature.description | markdownify }}

+
+
+
+
+ + + Pulumi code being written in TypeScript showing autocomplete for creating a new S3 bucket + + + + Pulumi code being written in Python showing autocomplete for creating a new S3 bucket + + + + Pulumi code being written in GO showing autocomplete for creating a new S3 bucket + + + + Pulumi code being written in C# showing autocomplete for creating a new S3 bucket + + + + Pulumi code being written in Java showing autocomplete for creating a new S3 bucket + + + + Pulumi code being written in YAML showing autocomplete for creating a new S3 bucket + + +
+
+
+
+
+ {{ else }} +
+

{{ $feature.title }}

+
+
+ Pulumi infrastructure as code example +
+
+

{{ $feature.sub_title}}

+

{{ $feature.description | markdownify }}

+
+
+
+ {{ end}} + +
+ {{ range $item := $feature.features }} +
+
+
+ {{ partial "color-icon.html" (dict "icon" $item.icon "icon_color" $item.color) }} +
+
+
{{ $item.title }}
+
+
+

{{ $item.description | markdownify }}

+
+
+
+ {{ end }} +
+ +
+ {{ end }} +
+ +
+ {{ range $item := .Params.key_features.items }} +
+

{{ $item.title }}

+

{{ $item.sub_title }}

+

+ {{ $item.description | markdownify }} +

+ {{ if not (eq $item.image nil) }} +
+ Pulumi infrastructure as code example +
+ {{ end }} + {{ if not (eq $item.ide nil) }} +
+ + {{ range $lang := $item.ide }} + + {{ partial "code" (dict "lang" $lang.language "code" $lang.code "mode" "light") }} + + {{ end }} + +
+ {{ end }} +
+
+ {{ range $feature := $item.features }} +
+
{{ $feature.title }}
+

{{ $feature.description | markdownify }}

+
+ {{ end }} +
+
+ +
+ {{ end }} +
+ +
+
+
+

{{ .Params.stats.title }}

+

+ {{ .Params.stats.description | markdownify }} +

+ +
+
+
+

{{ .Params.stats.community.number }}

+
{{ .Params.stats.community.description }}
+
+ +
+

{{ .Params.stats.company.number }}

+
{{ .Params.stats.company.description }}
+
+ +
+

{{ .Params.stats.integration.number }}

+
{{ .Params.stats.integration.description }}
+
+
+
+
+
+ +
+ {{ range $item := .Params.key_features_below.items }} +
+

{{ $item.title }}

+

{{ $item.sub_title }}

+

+ {{ $item.description | markdownify }} +

+ {{ if not (eq $item.image nil) }} +
+ Pulumi infrastructure as code example +
+ {{ end }} + {{ if not (eq $item.ide nil) }} +
+ + {{ range $lang := $item.ide }} + + {{ partial "code" (dict "lang" $lang.language "code" $lang.code "mode" "light") }} + + {{ end }} + +
+ {{ end }} +
+
+ {{ range $feature := $item.features }} +
+
{{ $feature.title }}
+

{{ $feature.description | markdownify }}

+
+ {{ end }} +
+
+ +
+ {{ end }} +
+ +
+
+

{{ .Params.case_studies.title }}

+
+ {{ range .Params.case_studies.items }} +
+
+
{{ partial "customer-logo.html" (dict "logo" .logo) }}
+
{{ .name }}
+

{{ .description | markdownify }}

+ +
+
+ {{ end }} +
+
+
+ + + + +{{ end }} From 01897ef65505016cc72acace98ba8eb28fe230e1 Mon Sep 17 00:00:00 2001 From: Sara <100384099+SaraDPH@users.noreply.github.com> Date: Fri, 15 Aug 2025 12:12:06 -0500 Subject: [PATCH 08/18] Update azure.md --- content/b/azure.md | 132 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) diff --git a/content/b/azure.md b/content/b/azure.md index e72098b0479e..e841f14b2f4c 100644 --- a/content/b/azure.md +++ b/content/b/azure.md @@ -15,6 +15,138 @@ overview: title: Infrastructure as Code
in any Programming Language description: | Pulumi Cloud is the smartest and easiest way to automate, secure, and manage everything you run in the cloud using programming languages you know and love. +ide: + tabs: + - title: index.ts + language: typescript + code: | + import * as resources from "@pulumi/azure-native/resources"; + import * as storage from "@pulumi/azure-native/storage"; + + const resourceGroup = new resources.ResourceGroup("resourceGroup"); + + const storageAccount = new storage.StorageAccount("sa", { + resourceGroupName: resourceGroup.name, + sku: { + name: "Standard_LRS", + }, + kind: "StorageV2", + }); + - title: __main__.py + language: python + code: | + from pulumi_azure_native import storage + from pulumi_azure_native import resources + + resource_group = resources.ResourceGroup('resource_group') + + account = storage.StorageAccount('sa', + resource_group_name=resource_group.name, + sku=storage.SkuArgs(name='Standard_LRS'), + kind='StorageV2') + - title: main.go + language: go + code: | + package main + + import ( + "github.com/pulumi/pulumi-azure-native/sdk/go/azure/resources" + "github.com/pulumi/pulumi-azure-native/sdk/go/azure/storage" + "github.com/pulumi/pulumi/sdk/v2/go/pulumi" + ) + + func main() { + pulumi.Run(func(ctx *pulumi.Context) error { + resourceGroup, err := resources.NewResourceGroup(ctx, "resourceGroup", nil) + if err != nil { + return err + } + + account, err := storage.NewStorageAccount(ctx, "sa", &storage.StorageAccountArgs{ + ResourceGroupName: resourceGroup.Name, + Sku: &storage.SkuArgs{ + Name: pulumi.String("Standard_LRS"), + }, + Kind: pulumi.String("StorageV2"), + }) + + return err + }) + } + - title: MyStack.cs + language: csharp + code: | + using Pulumi; + using Pulumi.AzureNative.Resources; + using Pulumi.AzureNative.Storage; + using Pulumi.AzureNative.Storage.Inputs; + + class MyStack : Stack + { + public MyStack() + { + var resourceGroup = new ResourceGroup("resourceGroup"); + + var storageAccount = new StorageAccount("sa", new StorageAccountArgs + { + ResourceGroupName = resourceGroup.Name, + Sku = new SkuArgs { Name = "Standard_LRS" }, + Kind = "StorageV2" + }); + } + } + + - title: Pulumi.yaml + language: yaml + code: | + name: azure-storage-account + runtime: yaml + description: A simple Pulumi program. + resources: + resourcegroup: + type: azure-native:resources:ResourceGroup + sa: + type: azure-native:storage:StorageAccount + properties: + resourceGroupName: ${resourcegroup.name} + kind: 'StorageV2' + sku: { name: 'Standard_LRS' } + + - title: Main.java + language: java + code: | + package com.pulumi.example.infra; + + import com.pulumi.Context; + import com.pulumi.Exports; + import com.pulumi.Pulumi; + import com.pulumi.azurenative.resources.ResourceGroup; + import com.pulumi.azurenative.storage.StorageAccount; + import com.pulumi.azurenative.storage.StorageAccountArgs; + import com.pulumi.azurenative.storage.enums.Kind; + import com.pulumi.azurenative.storage.enums.SkuName; + import com.pulumi.azurenative.storage.inputs.SkuArgs; + + public class Main { + + public static void main(String[] args) { + Pulumi.run(Main::stack); + } + + private static Exports stack(Context ctx) { + var resourceGroup = new ResourceGroup("linux-fn-rg"); + + var storageAccount = new StorageAccount("linux-fn-sa", StorageAccountArgs.builder() + .resourceGroupName(resourceGroup.name()) + .kind(Kind.StorageV2) + .sku(SkuArgs.builder() + .name(SkuName.Standard_LRS) + .build()) + .build()); + + return ctx.exports(); + } + } key_features_above: items: From 9864c794f6b282035b648831bd22c32a37c3971a Mon Sep 17 00:00:00 2001 From: Sara <100384099+SaraDPH@users.noreply.github.com> Date: Fri, 15 Aug 2025 12:40:18 -0500 Subject: [PATCH 09/18] Update azure.md --- content/b/azure.md | 58 +++++++++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/content/b/azure.md b/content/b/azure.md index e841f14b2f4c..cdfa855c1cc1 100644 --- a/content/b/azure.md +++ b/content/b/azure.md @@ -7,7 +7,7 @@ aliases: - /azure-resource-manager - /azure-infrastructure -heading: "Manage Azure Infrastructure The Easy Way" +heading: "Azure Infrastructure Made Easy" subheading: | Pulumi is a free, open source infrastructure as code tool, and works best with Pulumi Cloud to make managing infrastructure secure, reliable, and hassle-free. @@ -15,9 +15,31 @@ overview: title: Infrastructure as Code
in any Programming Language description: | Pulumi Cloud is the smartest and easiest way to automate, secure, and manage everything you run in the cloud using programming languages you know and love. -ide: - tabs: - - title: index.ts + ide: + - title: C# + language: csharp + code: | + using Pulumi; + using Pulumi.AzureNative.Resources; + using Pulumi.AzureNative.Storage; + using Pulumi.AzureNative.Storage.Inputs; + + class MyStack : Stack + { + public MyStack() + { + var resourceGroup = new ResourceGroup("resourceGroup"); + + var storageAccount = new StorageAccount("sa", new StorageAccountArgs + { + ResourceGroupName = resourceGroup.Name, + Sku = new SkuArgs { Name = "Standard_LRS" }, + Kind = "StorageV2" + }); + } + } + + - title: typescript language: typescript code: | import * as resources from "@pulumi/azure-native/resources"; @@ -32,7 +54,7 @@ ide: }, kind: "StorageV2", }); - - title: __main__.py + - title: python language: python code: | from pulumi_azure_native import storage @@ -73,30 +95,8 @@ ide: return err }) } - - title: MyStack.cs - language: csharp - code: | - using Pulumi; - using Pulumi.AzureNative.Resources; - using Pulumi.AzureNative.Storage; - using Pulumi.AzureNative.Storage.Inputs; - - class MyStack : Stack - { - public MyStack() - { - var resourceGroup = new ResourceGroup("resourceGroup"); - - var storageAccount = new StorageAccount("sa", new StorageAccountArgs - { - ResourceGroupName = resourceGroup.Name, - Sku = new SkuArgs { Name = "Standard_LRS" }, - Kind = "StorageV2" - }); - } - } - - title: Pulumi.yaml + - title: yaml language: yaml code: | name: azure-storage-account @@ -112,7 +112,7 @@ ide: kind: 'StorageV2' sku: { name: 'Standard_LRS' } - - title: Main.java + - title: java language: java code: | package com.pulumi.example.infra; From cbf6c80b511d2cfe92f646243c03b9587041ed68 Mon Sep 17 00:00:00 2001 From: Sarah Hughes Date: Thu, 21 Aug 2025 11:42:55 -0700 Subject: [PATCH 10/18] update gads template to only display tabs for code that exists, add azure page to existing gads template --- content/{b/azure.md => gads/azure/index.md} | 0 layouts/b/gads-template.html | 260 -------------------- layouts/gads/gads-template.html | 14 +- 3 files changed, 12 insertions(+), 262 deletions(-) rename content/{b/azure.md => gads/azure/index.md} (100%) delete mode 100644 layouts/b/gads-template.html diff --git a/content/b/azure.md b/content/gads/azure/index.md similarity index 100% rename from content/b/azure.md rename to content/gads/azure/index.md diff --git a/layouts/b/gads-template.html b/layouts/b/gads-template.html deleted file mode 100644 index 926d79b17381..000000000000 --- a/layouts/b/gads-template.html +++ /dev/null @@ -1,260 +0,0 @@ -{{ define "hero" }} - {{ partial "gads-hero" (dict "title" .Params.heading) }} -{{ end }} - -{{ define "main" }} -
-
-
-

{{ .Params.overview.title | markdownify }}

-
-
-
-

- {{ .Params.overview.description | markdownify }} -

-
- -
- -
- {{ range $index, $feature := .Params.key_features_above.items }} -
- {{ if eq $index 0 }} -
-

{{ $feature.title }}

-
-
-

{{ $feature.sub_title}}

-

{{ $feature.description | markdownify }}

-
-
-
-
- - - Pulumi code being written in TypeScript showing autocomplete for creating a new S3 bucket - - - - Pulumi code being written in Python showing autocomplete for creating a new S3 bucket - - - - Pulumi code being written in GO showing autocomplete for creating a new S3 bucket - - - - Pulumi code being written in C# showing autocomplete for creating a new S3 bucket - - - - Pulumi code being written in Java showing autocomplete for creating a new S3 bucket - - - - Pulumi code being written in YAML showing autocomplete for creating a new S3 bucket - - -
-
-
-
-
- {{ else }} -
-

{{ $feature.title }}

-
-
- Pulumi infrastructure as code example -
-
-

{{ $feature.sub_title}}

-

{{ $feature.description | markdownify }}

-
-
-
- {{ end}} - -
- {{ range $item := $feature.features }} -
-
-
- {{ partial "color-icon.html" (dict "icon" $item.icon "icon_color" $item.color) }} -
-
-
{{ $item.title }}
-
-
-

{{ $item.description | markdownify }}

-
-
-
- {{ end }} -
- -
- {{ end }} -
- -
- {{ range $item := .Params.key_features.items }} -
-

{{ $item.title }}

-

{{ $item.sub_title }}

-

- {{ $item.description | markdownify }} -

- {{ if not (eq $item.image nil) }} -
- Pulumi infrastructure as code example -
- {{ end }} - {{ if not (eq $item.ide nil) }} -
- - {{ range $lang := $item.ide }} - - {{ partial "code" (dict "lang" $lang.language "code" $lang.code "mode" "light") }} - - {{ end }} - -
- {{ end }} -
-
- {{ range $feature := $item.features }} -
-
{{ $feature.title }}
-

{{ $feature.description | markdownify }}

-
- {{ end }} -
-
- -
- {{ end }} -
- -
-
-
-

{{ .Params.stats.title }}

-

- {{ .Params.stats.description | markdownify }} -

- -
-
-
-

{{ .Params.stats.community.number }}

-
{{ .Params.stats.community.description }}
-
- -
-

{{ .Params.stats.company.number }}

-
{{ .Params.stats.company.description }}
-
- -
-

{{ .Params.stats.integration.number }}

-
{{ .Params.stats.integration.description }}
-
-
-
-
-
- -
- {{ range $item := .Params.key_features_below.items }} -
-

{{ $item.title }}

-

{{ $item.sub_title }}

-

- {{ $item.description | markdownify }} -

- {{ if not (eq $item.image nil) }} -
- Pulumi infrastructure as code example -
- {{ end }} - {{ if not (eq $item.ide nil) }} -
- - {{ range $lang := $item.ide }} - - {{ partial "code" (dict "lang" $lang.language "code" $lang.code "mode" "light") }} - - {{ end }} - -
- {{ end }} -
-
- {{ range $feature := $item.features }} -
-
{{ $feature.title }}
-

{{ $feature.description | markdownify }}

-
- {{ end }} -
-
- -
- {{ end }} -
- -
-
-

{{ .Params.case_studies.title }}

-
- {{ range .Params.case_studies.items }} -
-
-
{{ partial "customer-logo.html" (dict "logo" .logo) }}
-
{{ .name }}
-

{{ .description | markdownify }}

- -
-
- {{ end }} -
-
-
- - - - -{{ end }} diff --git a/layouts/gads/gads-template.html b/layouts/gads/gads-template.html index 4d4898e36010..2970988e4128 100644 --- a/layouts/gads/gads-template.html +++ b/layouts/gads/gads-template.html @@ -121,7 +121,12 @@

{{ $item.sub_title }}

{{ end }} {{ if not (eq $item.ide nil) }}
- + {{ $langOptions := slice }} + {{ range $index, $lang := $item.ide }} + {{ $langOptions = $langOptions | append $lang.language }} + {{ end }} + {{ $langList := delimit $langOptions "," }} + {{ range $lang := $item.ide }} {{ partial "code" (dict "lang" $lang.language "code" $lang.code "mode" "light") }} @@ -191,7 +196,12 @@

{{ $item.sub_title }}

{{ end }} {{ if not (eq $item.ide nil) }}
- + {{ $langOptions := slice }} + {{ range $index, $lang := $item.ide }} + {{ $langOptions = $langOptions | append $lang.language }} + {{ end }} + {{ $langList := delimit $langOptions "," }} + {{ range $lang := $item.ide }} {{ partial "code" (dict "lang" $lang.language "code" $lang.code "mode" "light") }} From 35009b8c7b1665ef8ef6fadb98fb481f7b168268 Mon Sep 17 00:00:00 2001 From: Sarah Hughes Date: Thu, 21 Aug 2025 12:43:44 -0700 Subject: [PATCH 11/18] remove code in description --- content/gads/azure/index.md | 132 ------------------------------------ 1 file changed, 132 deletions(-) diff --git a/content/gads/azure/index.md b/content/gads/azure/index.md index cdfa855c1cc1..66aa6b3f4d8a 100644 --- a/content/gads/azure/index.md +++ b/content/gads/azure/index.md @@ -15,138 +15,6 @@ overview: title: Infrastructure as Code
in any Programming Language description: | Pulumi Cloud is the smartest and easiest way to automate, secure, and manage everything you run in the cloud using programming languages you know and love. - ide: - - title: C# - language: csharp - code: | - using Pulumi; - using Pulumi.AzureNative.Resources; - using Pulumi.AzureNative.Storage; - using Pulumi.AzureNative.Storage.Inputs; - - class MyStack : Stack - { - public MyStack() - { - var resourceGroup = new ResourceGroup("resourceGroup"); - - var storageAccount = new StorageAccount("sa", new StorageAccountArgs - { - ResourceGroupName = resourceGroup.Name, - Sku = new SkuArgs { Name = "Standard_LRS" }, - Kind = "StorageV2" - }); - } - } - - - title: typescript - language: typescript - code: | - import * as resources from "@pulumi/azure-native/resources"; - import * as storage from "@pulumi/azure-native/storage"; - - const resourceGroup = new resources.ResourceGroup("resourceGroup"); - - const storageAccount = new storage.StorageAccount("sa", { - resourceGroupName: resourceGroup.name, - sku: { - name: "Standard_LRS", - }, - kind: "StorageV2", - }); - - title: python - language: python - code: | - from pulumi_azure_native import storage - from pulumi_azure_native import resources - - resource_group = resources.ResourceGroup('resource_group') - - account = storage.StorageAccount('sa', - resource_group_name=resource_group.name, - sku=storage.SkuArgs(name='Standard_LRS'), - kind='StorageV2') - - title: main.go - language: go - code: | - package main - - import ( - "github.com/pulumi/pulumi-azure-native/sdk/go/azure/resources" - "github.com/pulumi/pulumi-azure-native/sdk/go/azure/storage" - "github.com/pulumi/pulumi/sdk/v2/go/pulumi" - ) - - func main() { - pulumi.Run(func(ctx *pulumi.Context) error { - resourceGroup, err := resources.NewResourceGroup(ctx, "resourceGroup", nil) - if err != nil { - return err - } - - account, err := storage.NewStorageAccount(ctx, "sa", &storage.StorageAccountArgs{ - ResourceGroupName: resourceGroup.Name, - Sku: &storage.SkuArgs{ - Name: pulumi.String("Standard_LRS"), - }, - Kind: pulumi.String("StorageV2"), - }) - - return err - }) - } - - - title: yaml - language: yaml - code: | - name: azure-storage-account - runtime: yaml - description: A simple Pulumi program. - resources: - resourcegroup: - type: azure-native:resources:ResourceGroup - sa: - type: azure-native:storage:StorageAccount - properties: - resourceGroupName: ${resourcegroup.name} - kind: 'StorageV2' - sku: { name: 'Standard_LRS' } - - - title: java - language: java - code: | - package com.pulumi.example.infra; - - import com.pulumi.Context; - import com.pulumi.Exports; - import com.pulumi.Pulumi; - import com.pulumi.azurenative.resources.ResourceGroup; - import com.pulumi.azurenative.storage.StorageAccount; - import com.pulumi.azurenative.storage.StorageAccountArgs; - import com.pulumi.azurenative.storage.enums.Kind; - import com.pulumi.azurenative.storage.enums.SkuName; - import com.pulumi.azurenative.storage.inputs.SkuArgs; - - public class Main { - - public static void main(String[] args) { - Pulumi.run(Main::stack); - } - - private static Exports stack(Context ctx) { - var resourceGroup = new ResourceGroup("linux-fn-rg"); - - var storageAccount = new StorageAccount("linux-fn-sa", StorageAccountArgs.builder() - .resourceGroupName(resourceGroup.name()) - .kind(Kind.StorageV2) - .sku(SkuArgs.builder() - .name(SkuName.Standard_LRS) - .build()) - .build()); - - return ctx.exports(); - } - } key_features_above: items: From 0eebd734a196202a1e7a83ce4fb3b6da59a36c92 Mon Sep 17 00:00:00 2001 From: Cam Date: Fri, 5 Sep 2025 21:49:37 +0000 Subject: [PATCH 12/18] Added IDE flex in `key_features_above` --- content/gads/azure/index.md | 31 +++++++++++++++ layouts/gads/gads-template.html | 67 ++++++++++++++++++++------------- 2 files changed, 72 insertions(+), 26 deletions(-) diff --git a/content/gads/azure/index.md b/content/gads/azure/index.md index 66aa6b3f4d8a..53f5d9f57ed3 100644 --- a/content/gads/azure/index.md +++ b/content/gads/azure/index.md @@ -22,6 +22,37 @@ key_features_above: sub_title: "Pulumi Infrastructure as Code Engine" description: | Author infrastructure as code (IaC) using programming languages you know and love – including C#, TypeScript, Python, Go, Java, and YAML. Pulumi SDK helps create, deploy, and manage 100% of your Microsoft Azure infrastructure, including containers, serverless functions, and infrastructure using modern programming languages. + ide: + - title: C# + language: csharp + code: | + using Pulumi; + using Pulumi.AzureNative.Storage; + using Pulumi.AzureNative.Storage.Inputs; + + class MyStack : Stack + { + public MyStack() + { + var config = new Config(); + var resourceGroupNameParam = config.Require("resourceGroupNameParam"); + var storagecreatedbyarm = new StorageAccount("storagecreatedbyarm", + new StorageAccountArgs + { + AccountName = "storagecreatedbyarm", + Kind = "StorageV2", + Location = "westeurope", + ResourceGroupName = resourceGroupNameParam, + Sku = new SkuArgs + { + Name = "Standard_LRS", + }, + }); + } + } + button: + text: "Try Pulumi Cloud for FREE" + link: "https://app.pulumi.com/signup" key_features: title: Key features diff --git a/layouts/gads/gads-template.html b/layouts/gads/gads-template.html index 2970988e4128..d90f4a9065a0 100644 --- a/layouts/gads/gads-template.html +++ b/layouts/gads/gads-template.html @@ -32,37 +32,52 @@

{{ $feature.sub_title}}

-
- - - Pulumi code being written in TypeScript showing autocomplete for creating a new S3 bucket - + {{ if $feature.ide }} + {{ $langOptions := slice }} + {{ range $index, $lang := $feature.ide }} + {{ $langOptions = $langOptions | append $lang.language }} + {{ end }} + {{ $langList := delimit $langOptions "," }} + + {{ range $lang := $feature.ide }} + + {{ partial "code" (dict "lang" $lang.language "code" $lang.code "mode" "light") }} + + {{ end }} + + {{ else }} +
+ + + Pulumi code being written in TypeScript showing autocomplete for creating a new S3 bucket + - - Pulumi code being written in Python showing autocomplete for creating a new S3 bucket - + + Pulumi code being written in Python showing autocomplete for creating a new S3 bucket + - - Pulumi code being written in GO showing autocomplete for creating a new S3 bucket - + + Pulumi code being written in GO showing autocomplete for creating a new S3 bucket + - - Pulumi code being written in C# showing autocomplete for creating a new S3 bucket - + + Pulumi code being written in C# showing autocomplete for creating a new S3 bucket + - - Pulumi code being written in Java showing autocomplete for creating a new S3 bucket - + + Pulumi code being written in Java showing autocomplete for creating a new S3 bucket + - - Pulumi code being written in YAML showing autocomplete for creating a new S3 bucket - - -
+ + Pulumi code being written in YAML showing autocomplete for creating a new S3 bucket + +
+
+ {{ end }}
From 2b61f0ff88410ea3da73e4ee21987f7f4e28f969 Mon Sep 17 00:00:00 2001 From: Cam Date: Fri, 5 Sep 2025 22:16:44 +0000 Subject: [PATCH 13/18] Update storage account name in Azure Infrastructure example --- content/gads/azure/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/gads/azure/index.md b/content/gads/azure/index.md index 53f5d9f57ed3..9a6596cd2519 100644 --- a/content/gads/azure/index.md +++ b/content/gads/azure/index.md @@ -36,10 +36,10 @@ key_features_above: { var config = new Config(); var resourceGroupNameParam = config.Require("resourceGroupNameParam"); - var storagecreatedbyarm = new StorageAccount("storagecreatedbyarm", + var storagecreatedbyarm = new StorageAccount("mystorage", new StorageAccountArgs { - AccountName = "storagecreatedbyarm", + AccountName = "mystorage", Kind = "StorageV2", Location = "westeurope", ResourceGroupName = resourceGroupNameParam, From acfb43e5768d09663f3e2316b2d3aae7e32c2c2e Mon Sep 17 00:00:00 2001 From: Sara <100384099+SaraDPH@users.noreply.github.com> Date: Mon, 8 Sep 2025 16:19:55 -0500 Subject: [PATCH 14/18] Apply suggestions from code review --- content/gads/azure/index.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/content/gads/azure/index.md b/content/gads/azure/index.md index 9a6596cd2519..90c9c67a44e2 100644 --- a/content/gads/azure/index.md +++ b/content/gads/azure/index.md @@ -18,10 +18,18 @@ overview: key_features_above: items: - - title: "Author in any language, deploy to any cloud" - sub_title: "Pulumi Infrastructure as Code Engine" + - title: "Azure Infrastructure you can Write, Reuse, and Test" + sub_title: "Turn Azure Best Practices into Reusable Code" description: | - Author infrastructure as code (IaC) using programming languages you know and love – including C#, TypeScript, Python, Go, Java, and YAML. Pulumi SDK helps create, deploy, and manage 100% of your Microsoft Azure infrastructure, including containers, serverless functions, and infrastructure using modern programming languages. + Write IaC in the languages you know, such as C#, TypeScript, Python, Go, Java, or YAML. Pulumi manages 100% of your Azure resources, from containers to serverless. + +Go further with **components**: modular, reusable building blocks that cut down copy-paste and simplify your architecture. + +- Create repeatable patterns +- Group resources into one deployable unit +- Write once, deploy anywhere + +Build your first component in minutes. ide: - title: C# language: csharp From 57c2f564beffacdb9efb2abb1a88b600678f49af Mon Sep 17 00:00:00 2001 From: Sara <100384099+SaraDPH@users.noreply.github.com> Date: Mon, 8 Sep 2025 16:33:50 -0500 Subject: [PATCH 15/18] Update content/gads/azure/index.md --- content/gads/azure/index.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/content/gads/azure/index.md b/content/gads/azure/index.md index 90c9c67a44e2..b8bcf38a3e31 100644 --- a/content/gads/azure/index.md +++ b/content/gads/azure/index.md @@ -23,13 +23,7 @@ key_features_above: description: | Write IaC in the languages you know, such as C#, TypeScript, Python, Go, Java, or YAML. Pulumi manages 100% of your Azure resources, from containers to serverless. -Go further with **components**: modular, reusable building blocks that cut down copy-paste and simplify your architecture. - -- Create repeatable patterns -- Group resources into one deployable unit -- Write once, deploy anywhere - -Build your first component in minutes. +Go further with **components**: modular, reusable building blocks that cut down copy-paste and simplify your architecture. Write once, deploy anywhere → Build your first component in minutes. ide: - title: C# language: csharp From e8e3c4469ad435b5f0f87f25c466d9e8822d4ae5 Mon Sep 17 00:00:00 2001 From: Sara <100384099+SaraDPH@users.noreply.github.com> Date: Mon, 8 Sep 2025 16:38:05 -0500 Subject: [PATCH 16/18] Update content/gads/azure/index.md --- content/gads/azure/index.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/content/gads/azure/index.md b/content/gads/azure/index.md index b8bcf38a3e31..3b4f713c70b1 100644 --- a/content/gads/azure/index.md +++ b/content/gads/azure/index.md @@ -21,9 +21,7 @@ key_features_above: - title: "Azure Infrastructure you can Write, Reuse, and Test" sub_title: "Turn Azure Best Practices into Reusable Code" description: | - Write IaC in the languages you know, such as C#, TypeScript, Python, Go, Java, or YAML. Pulumi manages 100% of your Azure resources, from containers to serverless. - -Go further with **components**: modular, reusable building blocks that cut down copy-paste and simplify your architecture. Write once, deploy anywhere → Build your first component in minutes. + Write IaC in the languages you know, such as C#, TypeScript, Python, Go, Java, or YAML. Pulumi manages 100% of your Azure resources, from containers to serverless. Go further with **components**: modular, reusable building blocks that cut down copy-paste and simplify your architecture. Write once, deploy anywhere → Build your first component in minutes. ide: - title: C# language: csharp From a7ba410a1b97a43ae77f8d4b75297a8033060fc1 Mon Sep 17 00:00:00 2001 From: Sara <100384099+SaraDPH@users.noreply.github.com> Date: Mon, 8 Sep 2025 17:24:22 -0500 Subject: [PATCH 17/18] Apply suggestions from code review --- content/gads/azure/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/gads/azure/index.md b/content/gads/azure/index.md index 3b4f713c70b1..ebc3fca2d199 100644 --- a/content/gads/azure/index.md +++ b/content/gads/azure/index.md @@ -58,9 +58,9 @@ key_features: title: Key features items: - title: "Azure Resource Manager → Pulumi" - sub_title: "ARM Templates" + sub_title: "Move from static JSON to reusable code" description: | - Pulumi lets you manage Azure infrastructure using your favorite language, with built-in support for CI/CD, reusable components, and testability. For .NET teams especially, Pulumi’s support for C# provides a superior experience over static JSON. + Many Azure teams hit a wall with ARM templates. Pulumi provides a flexible, code-first alternative using your favorite language. Get full IDE support, CI/CD integration, reusable components, modern workflows, and testability. For .NET teams, Pulumi’s C# support delivers a far better experience than static JSON. ide: - title: C# language: csharp From ecc9a5ea2cc9bc50378abe53597c497e2695c3cc Mon Sep 17 00:00:00 2001 From: Sara <100384099+SaraDPH@users.noreply.github.com> Date: Mon, 15 Sep 2025 12:40:06 -0500 Subject: [PATCH 18/18] Update content/gads/azure/index.md --- content/gads/azure/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/gads/azure/index.md b/content/gads/azure/index.md index ebc3fca2d199..0c2ed36c4e07 100644 --- a/content/gads/azure/index.md +++ b/content/gads/azure/index.md @@ -7,7 +7,7 @@ aliases: - /azure-resource-manager - /azure-infrastructure -heading: "Azure Infrastructure Made Easy" +heading: "Tame Azure with Code" subheading: | Pulumi is a free, open source infrastructure as code tool, and works best with Pulumi Cloud to make managing infrastructure secure, reliable, and hassle-free.