Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
249 changes: 249 additions & 0 deletions content/gads/azure/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,249 @@
---
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:
- /azure-resource-manager
- /azure-infrastructure

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.

overview:
title: Infrastructure as Code<br/>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) 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
items:
- title: "Azure Resource Manager → Pulumi"
sub_title: "ARM Templates"
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.
ide:
- 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",
},
});
}
}
- 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",
},
});
- 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
})
}


- 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",
))
button:
text: "Try Pulumi Cloud for FREE"
link: "https://app.pulumi.com/signup"
features:
- title: 100% API Coverage
description: |
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: |
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: |
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"
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: "3,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 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.
- 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 the 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
---
14 changes: 12 additions & 2 deletions layouts/gads/gads-template.html
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,12 @@ <h4>{{ $item.sub_title }}</h4>
{{ end }}
{{ if not (eq $item.ide nil) }}
<div class="max-w-4xl container text-left card bg-white p-6 mx-auto">
<pulumi-chooser type="language" options="typescript,python,go,csharp,java,yaml">
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why was this removed from the template? just trying to understand since i use this

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@asafashirov it's still there, it just generates the language tabs on the component dynamically from the content to be more extensible for pages that need more/less/different languages shown (this line is moved to line 129)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

got it- thanks!

{{ $langOptions := slice }}
{{ range $index, $lang := $item.ide }}
{{ $langOptions = $langOptions | append $lang.language }}
{{ end }}
{{ $langList := delimit $langOptions "," }}
<pulumi-chooser type="language" options="{{ $langList }}">
{{ range $lang := $item.ide }}
<pulumi-choosable type="language" class="highlight" value="{{ $lang.language }}">
{{ partial "code" (dict "lang" $lang.language "code" $lang.code "mode" "light") }}
Expand Down Expand Up @@ -191,7 +196,12 @@ <h4>{{ $item.sub_title }}</h4>
{{ end }}
{{ if not (eq $item.ide nil) }}
<div class="max-w-4xl container text-left card bg-white p-6 mx-auto">
<pulumi-chooser type="language" options="typescript,python,go,csharp,java,yaml">
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same with this; why remove?

{{ $langOptions := slice }}
{{ range $index, $lang := $item.ide }}
{{ $langOptions = $langOptions | append $lang.language }}
{{ end }}
{{ $langList := delimit $langOptions "," }}
<pulumi-chooser type="language" options="{{ $langList }}">
{{ range $lang := $item.ide }}
<pulumi-choosable type="language" class="highlight" value="{{ $lang.language }}">
{{ partial "code" (dict "lang" $lang.language "code" $lang.code "mode" "light") }}
Expand Down
Loading