From 3eacc5faa9b74ea8f1d01fda8fce9a8b783640fa Mon Sep 17 00:00:00 2001 From: Christian Nunciato Date: Mon, 17 Jun 2019 16:19:23 -0700 Subject: [PATCH 01/49] Add section to the body tag To allow us to target different sections of the site with CSS. Signed-off-by: Christian Nunciato --- layouts/_default/baseof.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html index 80ab4a8d0087..f7e1e11c4e80 100644 --- a/layouts/_default/baseof.html +++ b/layouts/_default/baseof.html @@ -1,7 +1,7 @@ {{ partial "head.html" . }} - + {{ partial "header.html" . }} {{ block "hero" . }} From bd7a56f19556348b20f9046e20dbf7f94e76644f Mon Sep 17 00:00:00 2001 From: Christian Nunciato Date: Mon, 17 Jun 2019 16:21:47 -0700 Subject: [PATCH 02/49] Move padding and max-width from base template to pages Signed-off-by: Christian Nunciato --- layouts/_default/baseof.html | 2 +- layouts/blog/list.html | 54 +++++++++++----------- layouts/blog/single.html | 49 ++++++++++---------- layouts/careers/list.html | 14 +++--- layouts/docs/aws-list.html | 2 +- layouts/docs/home.html | 87 +++++++++++++++++++++--------------- layouts/docs/list.html | 22 ++++----- layouts/docs/single.html | 22 ++++----- layouts/legal/single.html | 32 ++++++------- layouts/taxonomy/author.html | 81 ++++++++++++++++----------------- layouts/taxonomy/tag.html | 56 ++++++++++++----------- 11 files changed, 223 insertions(+), 198 deletions(-) diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html index f7e1e11c4e80..12b0fe5cd3cf 100644 --- a/layouts/_default/baseof.html +++ b/layouts/_default/baseof.html @@ -7,7 +7,7 @@ {{ block "hero" . }} {{ end }} -
+
{{ block "main" . }} {{ end }}
diff --git a/layouts/blog/list.html b/layouts/blog/list.html index 1f72dc444cf2..cc4326f61eaf 100644 --- a/layouts/blog/list.html +++ b/layouts/blog/list.html @@ -1,35 +1,37 @@ {{ define "main" }} -
+
+
-
- {{ partial "blog/sidebar.html" . }} -
+
+ {{ partial "blog/sidebar.html" . }} +
-
- {{ $paginator := .Paginate (where .Pages "Type" "blog").ByDate.Reverse }} - {{ range $paginator.Pages }} -
-

{{ .Title }}

-
- - {{ partial "blog/authors.html" (dict "context" . "authors" .Params.authors ) }} - - -
-
- {{ partial "blog/poster" . }} - {{ partial "blog/summary" . }} -
-
- {{ end }} +
+ {{ $paginator := .Paginate (where .Pages "Type" "blog").ByDate.Reverse }} + {{ range $paginator.Pages }} +
+

{{ .Title }}

+
+ + {{ partial "blog/authors.html" (dict "context" . "authors" .Params.authors ) }} + + +
+
+ {{ partial "blog/poster" . }} + {{ partial "blog/summary" . }} +
+
+ {{ end }} - {{ partial "blog/paginator.html" . }} -
+ {{ partial "blog/paginator.html" . }} +
-
+
+
{{ end }} diff --git a/layouts/blog/single.html b/layouts/blog/single.html index 0d60d4473873..2ff9aabd4564 100644 --- a/layouts/blog/single.html +++ b/layouts/blog/single.html @@ -1,31 +1,32 @@ {{ define "main" }} -
+
+
+
+ {{ partial "blog/sidebar.html" . }} +
-
- {{ partial "blog/sidebar.html" . }} -
- -
-
-

{{ .Title }}

-
- - {{ partial "blog/authors.html" (dict "context" . "authors" .Params.authors) }} - - - -
-
- {{ partial "blog/poster" . }} - {{ .Content }} -
-
-
+
+
+

{{ .Title }}

+
+ + {{ partial "blog/authors.html" (dict "context" . "authors" .Params.authors) }} + + + +
+
+ {{ partial "blog/poster" . }} + {{ .Content }} +
+
+
-
+
+
{{ end }} diff --git a/layouts/careers/list.html b/layouts/careers/list.html index 2101b564feaa..7499da6a4797 100644 --- a/layouts/careers/list.html +++ b/layouts/careers/list.html @@ -7,11 +7,11 @@

Want to help program the cloud?

{{ end }} {{ define "main" }} -
+

- Pulumi is reinventing how people build modern cloud applications and services, - through a unique platform that combines deep systems and infrastructure innovation - with elegant programming models and developer tools. + Pulumi is reinventing how people build modern cloud applications and services, + through a unique platform that combines deep systems and infrastructure innovation + with elegant programming models and developer tools.

Our team is a diverse and talented group of individuals, with backgrounds in @@ -19,8 +19,8 @@

Want to help program the cloud?

systems, from companies from all corners of the software industry. Our culture is one of technical excellence, passion for teamwork, and customer obsession.

+

Apply Now

+
+
-

Apply Now

-
- {{ end }} diff --git a/layouts/docs/aws-list.html b/layouts/docs/aws-list.html index 5e117adba711..2590ec588de9 100644 --- a/layouts/docs/aws-list.html +++ b/layouts/docs/aws-list.html @@ -1,5 +1,5 @@ {{ define "main" }} -
+
{{ partial "docs/toc.html" . }} diff --git a/layouts/docs/home.html b/layouts/docs/home.html index 980ae61ddba8..7e98ee5a4660 100644 --- a/layouts/docs/home.html +++ b/layouts/docs/home.html @@ -1,5 +1,4 @@ {{ define "main" }} -
Pulumi logo

@@ -32,27 +31,6 @@

Why Pulumi?

and it works the same way no matter which cloud you're targeting.

-
-

Alternatives

-

- Other approaches use YAML, JSON, or bespoke DSLs that you need to - master -- and convince your team to use. These "languages" fall short of - general purpose languages, lacking abstractions and reuse, and reinvent - familiar concepts like package managers. Worse, these solutions are usually - unique to every given cloud that you need to target. -

-
-
-

Community

-

- Pulumi's SDK is fully open source and extensible, enabling you to - participate in a rich ecosystem of libraries that ease common tasks, - ranging from containers to serverless to infrastructure, and everything - in between. Languages and clouds are supported using an extensible - plugin model, enabling public, private, and even hybrid cloud support. -

-
-
@@ -91,19 +69,58 @@

Infrastructure

START NOW
-
- - -

Kubernetes

-
-

- Deploy and orchestrate cloud native Kubernetes services in real code, no YAML needed. -

- - START NOW - + +
+
+ + +

Containers

+
+

+ Deploy a Docker container to production in 5 minutes using your favorite orchestrator. +

+ + START NOW + +
+
+ + +

Serverless

+
+

+ Stand up a serverless API or event handler in 5 minutes using a real lambda in code. +

+ + START NOW + +
+
+ + +

Infrastructure

+
+

+ Manage cloud infrastructure or hosted services using infrastructure as code. +

+ + START NOW + +
+
+ + +

Kubernetes

+
+

+ Deploy and orchestrate cloud native Kubernetes services in real code, no YAML needed. +

+ + START NOW + +
-
- {{ .Content }} + {{ .Content }} +
{{ end }} diff --git a/layouts/docs/list.html b/layouts/docs/list.html index ae8f304cdc68..4c3a4a87a0e7 100644 --- a/layouts/docs/list.html +++ b/layouts/docs/list.html @@ -1,17 +1,19 @@ {{ define "main" }} -
+
+
-
- {{ partial "docs/toc.html" . }} -
+
+ {{ partial "docs/toc.html" . }} +
-
-

{{ .Title }}

- {{ .Content }} -
+
+

{{ .Title }}

+ {{ .Content }} +
-
- {{ partial "docs/edit.html" . }} +
+ {{ partial "docs/edit.html" . }} +
{{ end }} diff --git a/layouts/docs/single.html b/layouts/docs/single.html index ae8f304cdc68..4c3a4a87a0e7 100644 --- a/layouts/docs/single.html +++ b/layouts/docs/single.html @@ -1,17 +1,19 @@ {{ define "main" }} -
+
+
-
- {{ partial "docs/toc.html" . }} -
+
+ {{ partial "docs/toc.html" . }} +
-
-

{{ .Title }}

- {{ .Content }} -
+
+

{{ .Title }}

+ {{ .Content }} +
-
- {{ partial "docs/edit.html" . }} +
+ {{ partial "docs/edit.html" . }} +
{{ end }} diff --git a/layouts/legal/single.html b/layouts/legal/single.html index 8130624791c0..720d1402ff77 100644 --- a/layouts/legal/single.html +++ b/layouts/legal/single.html @@ -1,20 +1,22 @@ {{ define "main" }} -
-
- -
-
-

{{ .Title }}

- {{ .Content }} -
-
+
+
+
+ +
+
+

{{ .Title }}

+ {{ .Content }} +
+
+
{{ end }} diff --git a/layouts/taxonomy/author.html b/layouts/taxonomy/author.html index 03dad7294916..85e017a95561 100644 --- a/layouts/taxonomy/author.html +++ b/layouts/taxonomy/author.html @@ -1,56 +1,53 @@ {{ define "main" }} -
+
+
-
- {{ partial "blog/sidebar.html" . }} -
+
+ {{ partial "blog/sidebar.html" . }} +
-
- {{ $authorData := index $.Site.Data.team.team .Data.Term }} - {{ $paginator := .Paginate .Data.Pages.Reverse }} +
+ {{ $authorData := index $.Site.Data.team.team .Data.Term }} + {{ $paginator := .Paginate .Data.Pages.Reverse }} -
-
- - {{ $authorData.name }} - -
-

{{ $authorData.name }}

+
+
+ + {{ $authorData.name }} +
- {{ if eq $authorData.status "guest" }} - Guest - {{ end }} - {{ $authorData.title }} +

{{ $authorData.name }}

+
{{ $authorData.title }}
+ + {{ if $authorData.social }} + {{ partial "widgets/social-icons.html" (dict "social" $authorData.social) }} + {{ end }} +
- - {{ if $authorData.social }} - {{ partial "widgets/social-icons.html" (dict "social" $authorData.social) }} - {{ end }} -
-
-
+ - {{ range $paginator.Pages }} -
-

{{ .Title }}

-
- -
-
- {{ partial "blog/poster" . }} - {{ partial "blog/summary" . }} -
-
- {{ end }} + {{ range $paginator.Pages }} +
+

{{ .Title }}

+
+ +
+
+ {{ partial "blog/poster" . }} + {{ partial "blog/summary" . }} +
+
+ {{ end }} - {{ partial "blog/paginator.html" . }} -
+ {{ partial "blog/paginator.html" . }} +
-
+
+
{{ end }} diff --git a/layouts/taxonomy/tag.html b/layouts/taxonomy/tag.html index 02d1e771e581..e7c8ccb42a96 100644 --- a/layouts/taxonomy/tag.html +++ b/layouts/taxonomy/tag.html @@ -1,38 +1,40 @@ {{ define "main" }} -
+
+
-
- {{ partial "blog/sidebar.html" . }} -
+
+ {{ partial "blog/sidebar.html" . }} +
-
- {{ $authorData := index $.Site.Data.team.team .Data.Term }} - {{ $paginator := .Paginate .Data.Pages.Reverse }} +
+ {{ $authorData := index $.Site.Data.team.team .Data.Term }} + {{ $paginator := .Paginate .Data.Pages.Reverse }} -
-

Posts Tagged {{ .Data.Term }}

-
+
+

Posts Tagged {{ .Data.Term }}

+
- {{ range $paginator.Pages }} -
-

{{ .Title }}

-
- -
-
- {{ partial "blog/poster" . }} - {{ partial "blog/summary" . }} -
-
- {{ end }} + {{ range $paginator.Pages }} +
+

{{ .Title }}

+
+ +
+
+ {{ partial "blog/poster" . }} + {{ partial "blog/summary" . }} +
+
+ {{ end }} - {{ partial "blog/paginator.html" . }} -
+ {{ partial "blog/paginator.html" . }} +
-
+
+
{{ end }} From fd5f736b6c1cce8e1795bebfc3280b3a3aa4c9bf Mon Sep 17 00:00:00 2001 From: Christian Nunciato Date: Mon, 17 Jun 2019 16:46:03 -0700 Subject: [PATCH 03/49] Only make anchor links in the docs and blog sections Signed-off-by: Christian Nunciato --- layouts/partials/head.html | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/layouts/partials/head.html b/layouts/partials/head.html index b860549aecf9..33e902821ddd 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -78,12 +78,16 @@ - - + + + {{ if in "docs blog authors tags" .Section }} + + + {{ end }} {{/* Tests to enforce required frontmatter for certain content types. */}} {{ if eq .Type "blog" }} From 1008d16aed3431cba00b61b1dcaf04b89b0606dc Mon Sep 17 00:00:00 2001 From: Christian Nunciato Date: Mon, 17 Jun 2019 16:48:14 -0700 Subject: [PATCH 04/49] Remove unnecessary style Signed-off-by: Christian Nunciato --- assets/sass/styles.scss | 4 ---- 1 file changed, 4 deletions(-) diff --git a/assets/sass/styles.scss b/assets/sass/styles.scss index 8a2f47a7bfab..7782b5429f46 100644 --- a/assets/sass/styles.scss +++ b/assets/sass/styles.scss @@ -15,10 +15,6 @@ h1, h2, h3, h4, h5, h6 { @apply font-display text-gray-700 mb-2; - - &:not(:first-child) { - @apply mt-8; - } } h1 { From b261593b787d5b2e98b3b52ddd8ac063af893942 Mon Sep 17 00:00:00 2001 From: Christian Nunciato Date: Mon, 17 Jun 2019 17:08:53 -0700 Subject: [PATCH 05/49] Add Cloudformation and Terraform migration pages Signed-off-by: Christian Nunciato --- assets/sass/_buttons.scss | 2 +- assets/sass/_hubspot.scss | 48 ++++ assets/sass/styles.scss | 1 + content/migrate/cloudformation.md | 29 +- content/migrate/terraform.md | 29 +- layouts/migrate/cloudformation.html | 406 +++++++++++++++++----------- layouts/migrate/terraform.html | 395 ++++++++++++++++----------- 7 files changed, 541 insertions(+), 369 deletions(-) create mode 100644 assets/sass/_hubspot.scss diff --git a/assets/sass/_buttons.scss b/assets/sass/_buttons.scss index 92623c0db086..4a5a613f0256 100644 --- a/assets/sass/_buttons.scss +++ b/assets/sass/_buttons.scss @@ -11,5 +11,5 @@ } .btn-cta { - @apply bg-orange; + @apply btn bg-orange-500; } diff --git a/assets/sass/_hubspot.scss b/assets/sass/_hubspot.scss new file mode 100644 index 000000000000..e1a9609c33b6 --- /dev/null +++ b/assets/sass/_hubspot.scss @@ -0,0 +1,48 @@ +// Hubspot form overrides. It feels bad to have to do this; we should probably consider +// removing all of the styling happening at the HubSpot level, and just expect these forms +// to be styled localy in all cases, rather than force us to do this to ourselves. +.hs-form-white { + fieldset { + .hs-form-required { + @apply ml-1 text-red-500; + } + + .hs-richtext p { + @apply text-white opacity-50 text-xs font-normal my-0; + } + + label { + span { + @apply text-white font-normal; + } + + &.hs-error-msg { + @apply mt-1; + } + } + + input[type="text"], input[type="email"], textarea { + @apply border-none p-2; + } + } + + .hs-submit > .actions { + @apply mt-0; + + > input[type="submit"] { + @apply btn btn-cta py-4 px-8 shadow-none cursor-pointer shadow-none border-none tracking-wide font-normal; + + // These don't seem to have direct TailWind equivalents. + background-image: none; + text-shadow: none; + } + } + + .hs-error-msgs.inputs-list { + padding-left: 0; + + label { + @apply text-red-500; + } + } +} diff --git a/assets/sass/styles.scss b/assets/sass/styles.scss index 7782b5429f46..155a9467eff4 100644 --- a/assets/sass/styles.scss +++ b/assets/sass/styles.scss @@ -12,6 +12,7 @@ @import "langchoose"; @import "no-select"; @import "pagination"; +@import "hubspot"; h1, h2, h3, h4, h5, h6 { @apply font-display text-gray-700 mb-2; diff --git a/content/migrate/cloudformation.md b/content/migrate/cloudformation.md index 166e7d2ce5c0..0bbe0e413a93 100644 --- a/content/migrate/cloudformation.md +++ b/content/migrate/cloudformation.md @@ -1,30 +1,5 @@ --- title: "Migrate to Pulumi from CloudFormation" -date: 2018-07-23T09:37:50-07:00 -layout: "cloudformation" -page_class: "migrate" - -url: "/cloudformation" - -meta_title: "Migrate to Pulumi from CloudFormation" -meta_desc: "How to migrate to Pulumi from CloudFormation for huge productivity gains, and a unified programming model for Devs and DevOps." -meta_image: "/images/pulumi.png" - -topic: "Cloud Infrastructure Automation" -hero_title: "Migrating to Pulumi from CloudFormation" -hero_description: "AWS CloudFormation provides a configuration DSL for you to describe and provision infrastructure resources on AWS.

Pulumi enables you to describe the same infrastructure resources as real code, providing huge productivity gains, while decreasing the brittleness of YAML-based configuration files." -hero_classes: "bg-purple white-text" -hero_right_content: '

Need help converting your CloudFormation templates into Pulumi code? Drop us a line.

-
- - - -
' +layout: cloudformation +url: /cloudformation --- diff --git a/content/migrate/terraform.md b/content/migrate/terraform.md index 0d96cec4de54..b6f4801b4f13 100644 --- a/content/migrate/terraform.md +++ b/content/migrate/terraform.md @@ -1,30 +1,5 @@ --- title: "Migrate to Pulumi from Terraform" -date: 2018-07-23T09:37:50-07:00 -layout: "terraform" -page_class: "migrate" - -url: "/terraform" - -meta_title: "Migrate to Pulumi from Terraform" -meta_desc: "How to migrate to Pulumi from Terraform for huge productivity gains, and a unified programming model for Devs and DevOps." -meta_image: "/images/pulumi.png" - -topic: "Cloud Infrastructure Automation" -hero_title: "Migrating to Pulumi from Terraform" -hero_description: "HashiCorp Terraform provides a custom DSL called Hashicorp Configuration Language (HCL) to describe and provision infrastructure resources on Terraform providers.

Pulumi enables you to describe the same infrastructure resources as real code, providing huge productivity gains, and has deep support for cloud native technologies such as Kubernetes and serverless programming." -hero_classes: "bg-purple white-text" -hero_right_content: '

Need help converting your Terraform templates into Pulumi code? Drop us a line.

-
- - - -
' +layout: terraform +url: /terraform --- diff --git a/layouts/migrate/cloudformation.html b/layouts/migrate/cloudformation.html index 6c8a657270f6..a53135ff3ca5 100644 --- a/layouts/migrate/cloudformation.html +++ b/layouts/migrate/cloudformation.html @@ -1,80 +1,111 @@ -{{ define "main" }} - {{ partial "hero.html" . }} - -
-
-
-
- +{{ define "hero" }} +
+
+
+

Migrating to Pulumi from CloudFormation

+

+ AWS CloudFormation provides a configuration DSL for you to describe and + provision infrastructure resources on AWS. +

+

+ Pulumi enables you to describe the same infrastructure resources as real + code, providing huge productivity gains, while decreasing the brittleness + of YAML-based configuration files. +

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

Benefits of Pulumi

-
-
-
-
-
- -

Real Code

-

Pulumi is infrastructure as real code. This means you get all the benefits of your favorite language and tool for provisioning cloud infrastructure: code completion, error checking, versioning, IDE support, and general productivity gains - without the need to manage YAML and DSL syntax.

-
-
-
-
- -

Reusable Components

-

As Pulumi is code, you can build up a library of packages to further enhance efficiency. Build repeatable practices through versioned packages such as: standard policies, network best practices, architecture blueprints - and deploy them to your team.

-
-
-
-
- -

Immutable Infrastructure

-

Pulumi provides the computation of necessary cloud resources with a 'Cloud Resource DAG' ensuring successful deployment of cloud infrastructure - efficiently building, updating, and destroying cloud resources as required.

-
-
-
-
-
+{{ define "main" }} + + +
+

Benefits of Pulumi

+ +
+
+ +

Real Code

+

+ Pulumi is infrastructure as real code. This means you get all the benefits + of your favorite language and tool for provisioning cloud infrastructure: + code completion, error checking, versioning, IDE support, and general + productivity gains — without the need to manage YAML and DSL syntax. +

+
+
+ +

Reusable Components

+

+ As Pulumi is code, you can build up a library of packages to further + enhance efficiency. Build repeatable practices through versioned packages + such as: standard policies, network best practices, architecture + blueprints — and deploy them to your team. +

+
+
+ +

Immutable Infrastructure

+

+ Pulumi provides the computation of necessary cloud resources with a 'Cloud + Resource DAG' ensuring successful deployment of cloud infrastructure — + efficiently building, updating, and destroying cloud resources as + required. +

-
-
-
-
-
-
-
-
-

Creating a Simple Web Server on AWS

-

In this example, we use JavaScript to create a simple web server on AWS using EC2.

-

This code creates the necessary security group, deploys a very simple web server for example purposes, and then creates the instance, before exporting the IP and Hostname.

-

Find many other examples here.

-

Pulumi can be used on any resource on AWS, Azure, GCP, Kubernetes, and OpenStack, covering serverless, containers, and infrastructure.

-
-
-
-
-
const aws = require("@pulumi/aws");
+    
+
+
+
+

Creating a Simple Web Server on AWS

+

+ In this example, we use JavaScript to create a simple web server on AWS + using EC2. +

+

+ This code creates the necessary security group, deploys a very simple web + server for example purposes, and then creates the instance, before + exporting the IP and Hostname. +

+

+ Find many + other examples here. +

+

+ Pulumi can be used on any resource on AWS, Azure, GCP, Kubernetes, and + OpenStack, covering serverless, containers, and infrastructure. +

+
+
+
+ +
const aws = require("@pulumi/aws");
 
 let size = "t2.micro";
 let ami  = "ami-7172b611"
@@ -105,112 +136,169 @@ 

Creating a Simple Web Server on AWS

exports.publicIp = server.publicIp; exports.publicHostName = server.publicDns; -
-
-
-
-
+
+
- {{ partial "how-pulumi-works.html" . }} - -
- -
-
-
-
-

Featured Customer

-
-
-
- Learning Machine -
-
-

Learning Machine

-

Learning Machine, a blockchain SaaS company faced two challenges with their cloud infrastructure:

-
    -
  1. Skills gaps between Dev and DevOps creating silos, and fragility.
  2. -
  3. The need to more rapidly provision their expanding roster of new customers.
  4. -
-
-
- -
-

By moving to Pulumi, Learning Machine were able to solve both challenges with significant increases in capability:

-
-
-
- -
25,000 Lines of CloudFormation reduced to 500 Lines of JavaScript
-
-
-
-
- -
New customer provisioning time reduced from 3 weeks to 1 hour
-
-
-
-
-
-
-

Pulumi has given our team the tools and framework to achieve a unified development and DevOps model, boosting productivity and taking our business to any cloud environment that our customers need. We retired 25,000 lines of complex code that few team members understood and replaced it with 100s of lines in a real programming language.

-
- - -
+
+
+

How Pulumi Works

+ How Pulumi works +
+
+ +
+
+
Featured Customer
+

Learning Machine

+

+ Learning + Machine, a blockchain SaaS company faced two challenges with their + cloud infrastructure: +

+
    +
  • Skills gaps between Dev and DevOps creating silos, and fragility.
  • +
  • The need to more rapidly provision their expanding roster of new customers.
  • +
+

+ By moving to Pulumi, Learning Machine were able to solve both challenges + with significant increases in capability: +

+
+
+ +
+ 25,000 Lines of CloudFormation reduced to 500 Lines of JavaScript +
+
+
+ +
+ New customer provisioning time reduced from 3 weeks to 1 hour +
+
+
+
+

+ Pulumi has given our team the tools and framework to achieve a unified + development and DevOps model, boosting productivity and taking our + business to any cloud environment that our customers need. We retired + 25,000 lines of complex code that few team members understood and + replaced it with 100s of lines in a real programming language. +

+

+ — Kim Hamilton, CTO + Learning Machine +

+
+
+
+ +
+
+
+
+

Get Started with Pulumi

+

+ Pulumi works with your favorite language, and can be used with any cloud. +

+
+
+
+
+ 1 + Install Pulumi +
+
+ +
+
+
+
+ 2 + Try Our Tutorials +
+
+ +
+
+
+
+ 3 + Read the Docs +
+
- {{ partial "get-started.html" . }} - -
-
-
-
-
-
-
-
-

Let Pulumi assist with your cloud infrastructure

-

Need help converting your CloudFormation templates into Pulumi code? Drop us a line.

-
-
-
-
-
- - - -
-
-
-
+
+
+
+
+

Let Pulumi assist with your cloud infrastructure.

+

+ Need help converting your CloudFormation templates into Pulumi code? Drop us a line. +

+
+
+
+ +
-
- {{ partial "more-on-pulumi.html" . }} - +
+
+

More from Pulumi

+
+
+ + Migrating to Pulumi + +

Migrate to Pulumi

+

+ In this video, Pulumi CTO, Luke Hoban, discusses how to begin to + migrate to Pulumi from existing tools such as CloudFormation and + Terraform. +

+ Learn more +
+
+ + Video thumbnail diagram + +

Serverless, Containers, and Infrastructure

+

+ In this blog post, we show how productive Pulumi can be at combining + different aspects of cloud architecture for truly cloud native + programming. +

+ Learn more +
+
+
+
{{ end }} diff --git a/layouts/migrate/terraform.html b/layouts/migrate/terraform.html index 4cdfd000b41e..a8bbd9271f8f 100644 --- a/layouts/migrate/terraform.html +++ b/layouts/migrate/terraform.html @@ -1,86 +1,117 @@ -{{ define "main" }} - {{ partial "hero.html" . }} - -
-
-
-
- +{{ define "hero" }} +
+
+
+

Migrating to Pulumi from Terraform

+

+ HashiCorp Terraform provides a custom DSL called Hashicorp + Configuration Language (HCL) to describe and provision infrastructure + resources on Terraform providers. +

+

+ Pulumi enables you to describe the same infrastructure resources as + real code, providing huge productivity gains, and has deep support for + cloud native technologies such as Kubernetes and serverless + programming. +

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

Benefits of Pulumi

-
-
-
-
-
- -

Real Code

-

Pulumi is infrastructure as real code. This means you get all the benefits of your favorite language and tool for provisioning infrastructure: code completion, error checking, versioning, IDE support, etc. - without the need to manage limited DSL syntax.

-
-
-
-
- -

Familiar Constructs

-

Real languages means you get familiar constructs like for loops, functions, and classes - cutting boilerplate and enforcing best practices. Pulumi lets you leverage existing package management tools and techniques.

-
-
-
-
- -

Ephemeral Infrastructure

-

Pulumi has deep support for cloud native technologies, like Kubernetes, and supports advanced deployment scenarios that cannot be expressed with Terraform. Pulumi is a proud member of the Cloud Native Computing Foundation (CNCF).

-
-
-
-
- -

TF Provider Integration

-

Pulumi is able to adapt any Terraform Provider for use with Pulumi, enabling management of any infrastructure supported by the Terraform Providers ecosystem using Pulumi programs. Find out more here.

-
-
-
-
-
+{{ define "main" }} + + +
+

Benefits of Pulumi

+ +
+
+ +

Real Code

+

+ Pulumi is infrastructure as real code. This means you get all the benefits + of your favorite language and tool for provisioning cloud infrastructure: + code completion, error checking, versioning, IDE support, and general + productivity gains — without the need to manage YAML and DSL syntax. +

+
+
+ +

Familiar Constructs

+

+ Real languages means you get familiar constructs like for loops, + functions, and classes - cutting boilerplate and enforcing best + practices. Pulumi lets you leverage existing package management tools + and techniques. +

+
+
+ +

Ephemeral Infrastructure

+

+ Pulumi has deep support for cloud native technologies, like + Kubernetes, and supports advanced deployment scenarios that cannot be + expressed with Terraform. Pulumi is a proud member of the Cloud Native + Computing Foundation (CNCF). +

+
+
+ +

TF Provider Integration

+

+ Pulumi is able to adapt any Terraform Provider for use with Pulumi, + enabling management of any infrastructure supported by the Terraform + Providers ecosystem using Pulumi programs. + Find out more here. +

-
-
-
-
-
-
-
-
-

Take advantage of real coding features with Pulumi

-

Pulumi provides a more expressive and efficient way to define cloud resources: -

    -
  • Use variable loops, not copy/paste
  • -
  • Use any Node libaries (or Python/Go)
  • -
  • On-the-fly error checking
  • -
  • Freeform code instead of complex interpolations
  • -
-

-

Find many other examples here.

-
import * as aws from "@pulumi/aws";
+    
+
+
+
+

Take advantage of real coding features with Pulumi

+

+ Pulumi provides a more expressive and efficient way to define cloud resources: +

+
    +
  • Use variable loops, not copy/paste
  • +
  • Use any Node libaries (or Python/Go)
  • +
  • On-the-fly error checking
  • +
  • Freeform code instead of complex interpolations
  • +
+

+ Find many other examples here. +

+
+
+
+ +
import * as aws from "@pulumi/aws";
 import { readFileSync, readdirSync } from "fs";
 import { join as pathjoin } from "path";
 
@@ -96,13 +127,9 @@ 

Take advantage of real coding features with Pulumi

+
-
-
-
-
-
resource "aws_s3_bucket" "mybucket" {
+
resource "aws_s3_bucket" "mybucket" {
     bucket_prefix = "mybucket"
 }
 
@@ -135,41 +162,37 @@ 

Take advantage of real coding features with Pulumi

-
-
-
+
-
+
+
+
+
+

Productive cloud native programming

+

+ Pulumi is designed with cloud native computing in mind - from + containers to serverless, providing a productive model for quickly + building and deploying apps: +

+
    +
  • Rich, built in support for event handlers
  • +
  • Easy-to-use in-line Lambdas for simple functions
  • +
  • Use JavaScript for both infrastructure and Lambda callbacks
  • +
  • Avoid the need for significant boiler plate code
  • +
+

+ Find many other examples here. +

+
+
+
-
-
-
-
-
-
-
-
-

Productive cloud native programming

-

Pulumi is designed with cloud native computing in mind - from containers to serverless, providing a productive model for quickly building and deploying apps: -

    -
  • Rich, built in support for event handlers
  • -
  • Easy-to-use in-line Lambdas for simple functions
  • -
  • Use JavaScript for both infrastructure and Lambda callbacks
  • -
  • Avoid the need for significant boiler plate code
  • -
-

-

Find many other examples here.

-
import * as aws from "@pulumi/aws";
+
import * as aws from "@pulumi/aws";
 
 // Create an S3 Bucket
 const bucket = new aws.s3.Bucket("mybucket");
@@ -182,13 +205,9 @@ 

Productive cloud native programming

// Export the bucket name for easy scripting export const bucketName = bucket.id; -
+
-
-
-
-
-
resource "aws_s3_bucket" "mybucket" {
+
resource "aws_s3_bucket" "mybucket" {
     bucket_prefix = "mybucket"
 }
 
@@ -198,8 +217,7 @@ 

Productive cloud native programming

source { filename = "index.js" - content = < { + content = < { console.log(JSON.stringify(ev)) } EOF @@ -250,55 +268,122 @@

Productive cloud native programming

output "bucket_name" { value = "${aws_s3_bucket.mybucket.id}" } -
-
-
-
-
+ +
- {{ partial "how-pulumi-works.html" . }} - - {{ partial "get-started.html" . }} - -
-
-
-
-
-
-
-
-

Let Pulumi assist with your cloud infrastructure

-

Need help converting your Terraform templates into Pulumi code? Drop us a line.

-
-
-
-
-
- - - -
-
-
-
+
+
+

How Pulumi Works

+ How Pulumi works +
+
+ +
+
+
+
+

Get Started with Pulumi

+

+ Pulumi works with your favorite language, and can be used with any cloud. +

+
+
+
+
+ 1 + Install Pulumi +
+ +
+
+
+
+ 2 + Try Our Tutorials +
+
+ +
+
+
+
+ 3 + Read the Docs +
+
+ +
+
+
+
+
+
+
+
+

Let Pulumi assist with your cloud infrastructure.

+

+ Need help converting your Terraform templates into Pulumi code? Drop us a line. +

+
+
+
+ + +
+
+
+

More from Pulumi

+
+
+ + Migrating to Pulumi + +

Migrate to Pulumi

+

+ In this video, Pulumi CTO, Luke Hoban, discusses how to begin to + migrate to Pulumi from existing tools such as CloudFormation and + Terraform. +

+ Learn more +
+
+ + Video thumbnail diagram + +

Serverless, Containers, and Infrastructure

+

+ In this blog post, we show how productive Pulumi can be at combining + different aspects of cloud architecture for truly cloud native + programming. +

+ Learn more +
+
+
+
{{ end }} From 3ec508cb0b38e4634423f98b931c8fbefd752862 Mon Sep 17 00:00:00 2001 From: Christian Nunciato Date: Tue, 18 Jun 2019 11:50:38 -0700 Subject: [PATCH 06/49] Pull common sections into partials Signed-off-by: Christian Nunciato --- assets/sass/_hubspot.scss | 4 + layouts/migrate/cloudformation.html | 156 +++---------------------- layouts/migrate/terraform.html | 87 +------------- layouts/partials/get-started.html | 82 +++++++------ layouts/partials/how-pulumi-works.html | 27 +---- layouts/partials/learning-machine.html | 46 ++++++++ layouts/partials/more-from-pulumi.html | 31 +++++ layouts/partials/more-on-pulumi.html | 28 ----- 8 files changed, 148 insertions(+), 313 deletions(-) create mode 100644 layouts/partials/learning-machine.html create mode 100644 layouts/partials/more-from-pulumi.html delete mode 100644 layouts/partials/more-on-pulumi.html diff --git a/assets/sass/_hubspot.scss b/assets/sass/_hubspot.scss index e1a9609c33b6..e1903a298ad1 100644 --- a/assets/sass/_hubspot.scss +++ b/assets/sass/_hubspot.scss @@ -9,6 +9,10 @@ .hs-richtext p { @apply text-white opacity-50 text-xs font-normal my-0; + + a { + @apply text-white underline; + } } label { diff --git a/layouts/migrate/cloudformation.html b/layouts/migrate/cloudformation.html index a53135ff3ca5..152a42e099dc 100644 --- a/layouts/migrate/cloudformation.html +++ b/layouts/migrate/cloudformation.html @@ -1,5 +1,5 @@ {{ define "hero" }} -
+

Migrating to Pulumi from CloudFormation

@@ -29,7 +29,7 @@

Migrating to Pulumi from CloudFormation

{{ end }} {{ define "main" }} -
-
-
-

How Pulumi Works

- How Pulumi works -
-
+ {{ partial "how-pulumi-works.html" . }} -
-
-
-
-

Get Started with Pulumi

-

- Pulumi works with your favorite language, and can be used with any cloud. -

-
-
-
-
- 1 - Install Pulumi -
-
- -
-
-
-
- 2 - Try Our Tutorials -
-
- -
-
-
-
- 3 - Read the Docs -
-
- -
-
-
-
+ {{ partial "get-started.html" . }}
@@ -355,35 +304,5 @@

Let Pulumi assist with your cloud infrastructure.

-
-
-

More from Pulumi

-
-
- - Migrating to Pulumi - -

Migrate to Pulumi

-

- In this video, Pulumi CTO, Luke Hoban, discusses how to begin to - migrate to Pulumi from existing tools such as CloudFormation and - Terraform. -

- Learn more -
-
- - Video thumbnail diagram - -

Serverless, Containers, and Infrastructure

-

- In this blog post, we show how productive Pulumi can be at combining - different aspects of cloud architecture for truly cloud native - programming. -

- Learn more -
-
-
-
+ {{ partial "more-from-pulumi.html" . }} {{ end }} diff --git a/layouts/partials/get-started.html b/layouts/partials/get-started.html index e86b54eb5d17..37fc46a36a25 100644 --- a/layouts/partials/get-started.html +++ b/layouts/partials/get-started.html @@ -1,41 +1,47 @@ -
-
-
-
-
-
-
-

Get started with Pulumi

-

Pulumi works with your favorite language, and can be used with any cloud.

-
-
-
-
-
-

Install Pulumi

-

Setup

-

Configure

-
-
-
-
-

Try our tutorials

-

Quickstarts

-

Tour

-
-
-
-
-

Read the docs

-

Reference

-

Examples

-
-
-
-
-
-
+
+
+
+
+

Get Started with Pulumi

+

+ Pulumi works with your favorite language, and can be used with any cloud. +

+
+
+
+
+ 1 + Install Pulumi +
+
+ +
+
+
+
+ 2 + Try Our Tutorials +
+
+ +
+
+
+
+ 3 + Read the Docs +
+
-
\ No newline at end of file +
+
diff --git a/layouts/partials/how-pulumi-works.html b/layouts/partials/how-pulumi-works.html index 45c7f7ea0a84..c8a99301d892 100644 --- a/layouts/partials/how-pulumi-works.html +++ b/layouts/partials/how-pulumi-works.html @@ -1,23 +1,6 @@ -
-
-
-
-
-
-

How Pulumi Works

-
-
-
-
-
- -
-
-
-
-

-
-
-
-
+
+
+

How Pulumi Works

+ How Pulumi works +
diff --git a/layouts/partials/learning-machine.html b/layouts/partials/learning-machine.html new file mode 100644 index 000000000000..6e31719d2308 --- /dev/null +++ b/layouts/partials/learning-machine.html @@ -0,0 +1,46 @@ +
+
+
Featured Customer
+

Learning Machine

+

+ Learning + Machine, a blockchain SaaS company faced two challenges with their + cloud infrastructure: +

+
    +
  • Skills gaps between Dev and DevOps creating silos, and fragility.
  • +
  • The need to more rapidly provision their expanding roster of new customers.
  • +
+

+ By moving to Pulumi, Learning Machine were able to solve both challenges + with significant increases in capability: +

+
+
+ +
+ 25,000 Lines of CloudFormation reduced to 500 Lines of JavaScript +
+
+
+ +
+ New customer provisioning time reduced from 3 weeks to 1 hour +
+
+
+
+

+ Pulumi has given our team the tools and framework to achieve a unified + development and DevOps model, boosting productivity and taking our + business to any cloud environment that our customers need. We retired + 25,000 lines of complex code that few team members understood and + replaced it with 100s of lines in a real programming language. +

+

+ — Kim Hamilton, CTO + Learning Machine +

+
+
+
diff --git a/layouts/partials/more-from-pulumi.html b/layouts/partials/more-from-pulumi.html new file mode 100644 index 000000000000..8caa09dc6040 --- /dev/null +++ b/layouts/partials/more-from-pulumi.html @@ -0,0 +1,31 @@ +
+
+

More from Pulumi

+
+
+ + Migrating to Pulumi + +

Migrate to Pulumi

+

+ In this video, Pulumi CTO, Luke Hoban, discusses how to begin to + migrate to Pulumi from existing tools such as CloudFormation and + Terraform. +

+ Learn more +
+
+ + Video thumbnail diagram + +

Serverless, Containers, and Infrastructure

+

+ In this blog post, we show how productive Pulumi can be at combining + different aspects of cloud architecture for truly cloud native + programming. +

+ Learn more +
+
+
+
diff --git a/layouts/partials/more-on-pulumi.html b/layouts/partials/more-on-pulumi.html deleted file mode 100644 index bd299bdf62d7..000000000000 --- a/layouts/partials/more-on-pulumi.html +++ /dev/null @@ -1,28 +0,0 @@ -
-
-
-
-
-
-

More from Pulumi

-
-
-

Migrate to Pulumi

-

In this video, Pulumi CTO, Luke Hoban, discusses how to begin to migrate to Pulumi from existing tools such as CloudFormation and Terraform.

- Learn more -
-
-
-
- -
-

Serverless, Containers, and Infrastructure

-

In this blog post, we show productive Pulumi can be at combining different aspects of cloud architecture for truly cloud native programming.

- Learn more -
-
-
-
-
From 09a93fc3eb460afa9b84dfd1e4151978a22e9911 Mon Sep 17 00:00:00 2001 From: Christian Nunciato Date: Tue, 18 Jun 2019 12:53:06 -0700 Subject: [PATCH 07/49] Extract HubSpot form, add AWS partner page Signed-off-by: Christian Nunciato --- content/partner/aws.md | 50 +--- layouts/migrate/cloudformation.html | 53 +--- layouts/migrate/terraform.html | 66 +---- layouts/partials/benefits-v1.html | 36 +++ layouts/partials/benefits-v2.html | 46 +++ layouts/partials/hubspot-contact.html | 7 + layouts/partner/aws.html | 410 +++++++++++--------------- 7 files changed, 264 insertions(+), 404 deletions(-) create mode 100644 layouts/partials/benefits-v1.html create mode 100644 layouts/partials/benefits-v2.html create mode 100644 layouts/partials/hubspot-contact.html diff --git a/content/partner/aws.md b/content/partner/aws.md index 931540acab17..9719b6d76bda 100644 --- a/content/partner/aws.md +++ b/content/partner/aws.md @@ -1,51 +1,5 @@ --- title: "Cloud Native Infrastructure as Code for AWS with Pulumi" -date: 2018-07-23T09:37:50-07:00 -layout: "aws" -page_class: "partner" - -url: "/aws" - -meta_title: "Cloud Native Infrastructure as Code for AWS with Pulumi" -meta_desc: "Programming the AWS cloud with Pulumi for huge productivity gains, and a unified programming model for Devs and DevOps." -meta_image: "/images/pulumi.png" - -topic: "Cloud Native Infrastructure as Code" -hero_title: "Program the cloud with Pulumi and AWS" -hero_description: "Pulumi provides a cloud native programming model for AWS to create containers, serverless functions, and infrastructure, enabling the delivery of Cloud Native Infrastructure as Code, using real programming languages.

Find out how to program the cloud with Pulumi and AWS." -hero_classes: "bg-purple white-text" -hero_right_content: '
-
-
-
-
-
-
-
-
-
-
const aws = require("@pulumi/aws");
-
-
let size = "t2.micro"; -
let ami = "ami-7172b611" - -
let group = new aws.ec2.SecurityGroup("web-secgrp", { -
  ingress: [ -
    { protocol: "tcp", fromPort: 22, -
      toPort: 22, cidrBlocks: ["0.0.0.0/0"] }, -
    { protocol: "tcp", fromPort: 80, -
      toPort: 80, cidrBlocks: ["0.0.0.0/0"] }, -
  ], -
}); - -
let server = new aws.ec2.Instance("web-server-www", { -
  tags: { "Name": "web-server-www" }, -
  instanceType: size, -
  securityGroups: [ group.name ], -
  ami: ami, -
  userData: userData -
});

-
-
-
' +layout: aws +url: /aws --- diff --git a/layouts/migrate/cloudformation.html b/layouts/migrate/cloudformation.html index 152a42e099dc..9d2299cf60d1 100644 --- a/layouts/migrate/cloudformation.html +++ b/layouts/migrate/cloudformation.html @@ -15,13 +15,7 @@

Migrating to Pulumi from CloudFormation

- - + {{ partial "hubspot-contact.html" (dict "hubspotFormID" "1b19f76c-0405-4a38-8a45-7f6a499db8ea") }}
@@ -42,42 +36,7 @@

Migrating to Pulumi from CloudFormation

-
-

Benefits of Pulumi

- -
-
- -

Real Code

-

- Pulumi is infrastructure as real code. This means you get all the benefits - of your favorite language and tool for provisioning cloud infrastructure: - code completion, error checking, versioning, IDE support, and general - productivity gains — without the need to manage YAML and DSL syntax. -

-
-
- -

Reusable Components

-

- As Pulumi is code, you can build up a library of packages to further - enhance efficiency. Build repeatable practices through versioned packages - such as: standard policies, network best practices, architecture - blueprints — and deploy them to your team. -

-
-
- -

Immutable Infrastructure

-

- Pulumi provides the computation of necessary cloud resources with a 'Cloud - Resource DAG' ensuring successful deployment of cloud infrastructure — - efficiently building, updating, and destroying cloud resources as - required. -

-
-
-
+ {{ partial "benefits-v1.html" . }}
@@ -161,13 +120,7 @@

Let Pulumi assist with your cloud infrastructure.

- - + {{ partial "hubspot-contact.html" (dict "hubspotFormID" "1b19f76c-0405-4a38-8a45-7f6a499db8ea") }}
diff --git a/layouts/migrate/terraform.html b/layouts/migrate/terraform.html index 1cc3ff778f16..5da14a7d0710 100644 --- a/layouts/migrate/terraform.html +++ b/layouts/migrate/terraform.html @@ -16,15 +16,7 @@

Migrating to Pulumi from Terraform

-
- - -
+ {{ partial "hubspot-contact.html" (dict "hubspotFormID" "123cfbdb-9ce4-4d33-a9b7-c30302463d7a") }}
@@ -37,58 +29,14 @@

Migrating to Pulumi from Terraform

  • Benefits
  • Code
  • How it Works
  • +
  • Case Study
  • Get Started
  • Contact Us
  • -
    -

    Benefits of Pulumi

    - -
    -
    - -

    Real Code

    -

    - Pulumi is infrastructure as real code. This means you get all the benefits - of your favorite language and tool for provisioning cloud infrastructure: - code completion, error checking, versioning, IDE support, and general - productivity gains — without the need to manage YAML and DSL syntax. -

    -
    -
    - -

    Familiar Constructs

    -

    - Real languages means you get familiar constructs like for loops, - functions, and classes - cutting boilerplate and enforcing best - practices. Pulumi lets you leverage existing package management tools - and techniques. -

    -
    -
    - -

    Ephemeral Infrastructure

    -

    - Pulumi has deep support for cloud native technologies, like - Kubernetes, and supports advanced deployment scenarios that cannot be - expressed with Terraform. Pulumi is a proud member of the Cloud Native - Computing Foundation (CNCF). -

    -
    -
    - -

    TF Provider Integration

    -

    - Pulumi is able to adapt any Terraform Provider for use with Pulumi, - enabling management of any infrastructure supported by the Terraform - Providers ecosystem using Pulumi programs. - Find out more here. -

    -
    -
    -
    + {{ partial "benefits-v2.html" . }}
    @@ -291,13 +239,7 @@

    Let Pulumi assist with your cloud infrastructure.

    - - + {{ partial "hubspot-contact.html" (dict "hubspotFormID" "123cfbdb-9ce4-4d33-a9b7-c30302463d7a") }}
    diff --git a/layouts/partials/benefits-v1.html b/layouts/partials/benefits-v1.html new file mode 100644 index 000000000000..a65247375507 --- /dev/null +++ b/layouts/partials/benefits-v1.html @@ -0,0 +1,36 @@ +
    +

    Benefits of Pulumi

    + +
    +
    + +

    Real Code

    +

    + Pulumi is infrastructure as real code. This means you get all the benefits + of your favorite language and tool for provisioning cloud infrastructure: + code completion, error checking, versioning, IDE support, and general + productivity gains — without the need to manage YAML and DSL syntax. +

    +
    +
    + +

    Reusable Components

    +

    + As Pulumi is code, you can build up a library of packages to further + enhance efficiency. Build repeatable practices through versioned packages + such as: standard policies, network best practices, architecture + blueprints — and deploy them to your team. +

    +
    +
    + +

    Immutable Infrastructure

    +

    + Pulumi provides the computation of necessary cloud resources with a 'Cloud + Resource DAG' ensuring successful deployment of cloud infrastructure — + efficiently building, updating, and destroying cloud resources as + required. +

    +
    +
    +
    diff --git a/layouts/partials/benefits-v2.html b/layouts/partials/benefits-v2.html new file mode 100644 index 000000000000..3e9d530782a4 --- /dev/null +++ b/layouts/partials/benefits-v2.html @@ -0,0 +1,46 @@ +
    +

    Benefits of Pulumi

    + +
    +
    + +

    Real Code

    +

    + Pulumi is infrastructure as real code. This means you get all the benefits + of your favorite language and tool for provisioning cloud infrastructure: + code completion, error checking, versioning, IDE support, and general + productivity gains — without the need to manage YAML and DSL syntax. +

    +
    +
    + +

    Familiar Constructs

    +

    + Real languages means you get familiar constructs like for loops, + functions, and classes - cutting boilerplate and enforcing best + practices. Pulumi lets you leverage existing package management tools + and techniques. +

    +
    +
    + +

    Ephemeral Infrastructure

    +

    + Pulumi has deep support for cloud native technologies, like + Kubernetes, and supports advanced deployment scenarios that cannot be + expressed with Terraform. Pulumi is a proud member of the Cloud Native + Computing Foundation (CNCF). +

    +
    +
    + +

    TF Provider Integration

    +

    + Pulumi is able to adapt any Terraform Provider for use with Pulumi, + enabling management of any infrastructure supported by the Terraform + Providers ecosystem using Pulumi programs. + Find out more here. +

    +
    +
    +
    diff --git a/layouts/partials/hubspot-contact.html b/layouts/partials/hubspot-contact.html new file mode 100644 index 000000000000..d13ebc16c989 --- /dev/null +++ b/layouts/partials/hubspot-contact.html @@ -0,0 +1,7 @@ + + diff --git a/layouts/partner/aws.html b/layouts/partner/aws.html index b78e24d58699..0f6ca0eb297d 100644 --- a/layouts/partner/aws.html +++ b/layouts/partner/aws.html @@ -1,76 +1,91 @@ -{{ define "main" }} - {{ partial "hero.html" . }} - -
    -
    -
    -
    - +{{ define "hero" }} +
    +
    +
    +

    Modern Infrastructure as Code for AWS

    +
    + AWS Technology Partner +

    + Pulumi's infrastructure-as-code SDK helps create, deploy, and manage AWS containers, serverless functions, and infrastructure using real programming languages. +

    +

    + Now Available: + + Pulumi Crosswalk for AWS: Accelerate Delivery of Well-Architected Infrastructure as Code + +

    -
    -
    +
    +
    +
    const aws = require("@pulumi/aws");
     
    -    
    -
    -
    -
    -
    -
    -
    -
    - -

    Real Code

    -

    Pulumi is infrastructure as real code. This means you get all the benefits of your favorite language and tool for provisioning cloud infrastructure: code completion, error checking, versioning, IDE support, and general productivity gains - without the need to manage YAML and DSL syntax.

    -
    -
    -
    -
    - -

    Reusable Components

    -

    As Pulumi is code, you can build up a library of packages to further enhance efficiency. Build repeatable practices through versioned packages such as: standard policies, network best practices, architecture blueprints - and deploy them to your team.

    -
    -
    -
    -
    - -

    Ephemeral Infrastructure

    -

    Pulumi provides the computation of necessary cloud resources with a 'Cloud Resource DAG' ensuring successful deployment of cloud infrastructure - efficiently building, updating, and destroying cloud resources as required.

    -
    -
    -
    -
    +let size = "t2.micro"; +let ami = "ami-7172b611" + +let group = new aws.ec2.SecurityGroup("web-secgrp", { + ingress: [ + { protocol: "tcp", fromPort: 22, + toPort: 22, cidrBlocks: ["0.0.0.0/0"] }, + { protocol: "tcp", fromPort: 80, + toPort: 80, cidrBlocks: ["0.0.0.0/0"] }, + ], +}); + +let server = new aws.ec2.Instance("web-server-www", { + tags: { "Name": "web-server-www" }, + instanceType: size, + securityGroups: [ group.name ], + ami: ami, + userData: userData +}); +
    -
    + +{{ end }} -
    -
    -
    -
    -
    -
    -
    -
    - Serverless -

    Creating a Serverless REST API

    -

    With Pulumi, you can combine infrastructure definitions and application code in one program. The @pulumi/cloud-aws library is a set of Pulumi components that provide a higher-level abstraction over AWS. So, instead of provisioning an API Gateway instance, Lambda functions, and setting up IAM roles, you can use this library and define application code at the same time as the infrastructure it depends on.

    -

    This example shows how to create a simple REST API that counts the number of times a route has been hit. To implement this API, we need a DynamoDB table, an API endpoint, and a Lambda function.

    -


    Get Started

    -

    Pulumi can be used on any resource covering serverless, containers, and infrastructure using JavaScript, TypeScript, Python, and Go.

    -
    -
    -
    -
    -
    const cloud = require("@pulumi/cloud-aws");
    +{{ define "main" }}
    +    
    +
    +    {{ partial "benefits-v1.html" . }}
    +
    +    
    +
    + + +
    +
    +

    Creating a Serverless REST API

    +

    + With Pulumi, you can combine infrastructure definitions and application code in one program. The @pulumi/cloud-aws library is a set of Pulumi components that provide a higher-level abstraction over AWS. So, instead of provisioning an API Gateway instance, Lambda functions, and setting up IAM roles, you can use this library and define application code at the same time as the infrastructure it depends on. +

    +

    + This example shows how to create a simple REST API that counts the number of times a route has been hit. To implement this API, we need a DynamoDB table, an API endpoint, and a Lambda function. +

    +

    + Get Started +

    +

    + Pulumi can be used on any resource covering serverless, containers, and infrastructure using JavaScript, TypeScript, Python, and Go. +

    +
    +
    +
    + +
    const cloud = require("@pulumi/cloud-aws");
     
     // Create a mapping from 'route' to a count
     let counterTable = new cloud.Table("counterTable", "route");
    @@ -95,37 +110,32 @@ 

    Creating a Serverless REST API

    }); exports.endpoint = endpoint.publish().url; -
    -
    -
    -
    +
    -
    -
    -
    + +
    +
    +

    Build and deploy containers to AWS

    +

    + Pulumi supports programming against container orchestrators – Amazon’s ECS, EKS, and AWS Fargate. Pulumi is entirely unopinionated about how containers are built, published, and deployed to your orchestrator. +

    +

    + This code runs Nginx with 2 load balanced replicas listening on port 80. By default, this will run in Fargate when targeting AWS, which means you can skip the complications of configuring an orchestrator. After running pulumi up, the auto-assigned URL will be printed. +

    +

    + Get Started +

    +

    + Pulumi can be used on any resource covering serverless, containers, and infrastructure using JavaScript, TypeScript, Python, and Go. +

    +
    +
    +
    -
    -
    -
    -
    -
    -
    -
    -
    - Containers -

    Build and deploy containers to AWS

    -

    Pulumi supports programming against container orchestrators – Amazon’s ECS, EKS, and AWS Fargate. Pulumi is entirely unopinionated about how containers are built, published, and deployed to your orchestrator.

    -

    This code runs Nginx with 2 load balanced replicas listening on port 80. By default, this will run in Fargate when targeting AWS, which means you can skip the complications of configuring an orchestrator. After running pulumi up, the auto-assigned URL will be printed.

    -


    Get Started

    -

    Pulumi can be used on any resource covering serverless, containers, and infrastructure using JavaScript, TypeScript, Python, and Go.

    -
    -
    -
    -
    -
    // Deploy a pre-built container image
    +
    // Deploy a pre-built container image
     // to AWS Fargate
     
     import * as cloud from "@pulumi/cloud";
    @@ -150,37 +160,32 @@ 

    Build and deploy containers to AWS

    }); export let url = nginx.defaultEndpoint; -
    -
    -
    -
    -
    - +
    -
    - - -
    -
    -
    -
    -
    -
    -
    -
    - Kubernetes -

    Build and deploy Kubernetes apps to AWS EKS

    -

    Pulumi supports programming against Kubernetes – Minikube, custom on-premises, or cloud-hosted custom clusters or in managed clusters such as Amazon EKS.

    -

    This code runs a simple Kubernetes deployment using the Guestbook sample application composed of Redis and a web frontent onto Kubernetes. Pulumi supports sophisticated use cases such as advanced deployment scenarios, sidecar patterns, etc.

    -


    Get Started

    -

    Pulumi can be used on any resource covering serverless, containers, and infrastructure using JavaScript, TypeScript, Python, and Go.

    -
    -
    -
    -
    -
    // Deploy a simple app to Kubernetes
    +
    +            
    +            
    +
    +

    Build and deploy Kubernetes apps to AWS EKS

    +

    + Pulumi supports programming against Kubernetes – Minikube, custom on-premises, or cloud-hosted custom clusters or in managed clusters such as Amazon EKS. +

    +

    + This code runs a simple Kubernetes deployment using the Guestbook sample application composed of Redis and a web frontent onto Kubernetes. Pulumi supports sophisticated use cases such as advanced deployment scenarios, sidecar patterns, etc. +

    +

    + Get Started +

    +

    + Pulumi can be used on any resource covering serverless, containers, and infrastructure using JavaScript, TypeScript, Python, and Go. +

    +
    +
    +
    + +
    // Deploy a simple app to Kubernetes
     import * as k8sjs from "./k8sjs";
     
     let redisMaster = new k8sjs.ServiceDeployment("redis-master", {
    @@ -201,37 +206,32 @@ 

    Build and deploy Kubernetes apps to AWS EKS

    }); export let frontendIp = frontend.ipAddress; -
    -
    -
    -
    -
    - -
    +
    -
    - - -
    -
    -
    -
    -
    -
    -
    -
    - Infrastructure -

    Creating a Simple Web Server

    -

    Pulumi gives you a way to express infrastructure configuration using your favorite programming language.

    -

    This code uses TypeScript on Node.js to define the necessary security group, and defines a very simple web server, and then creates the instance, before exporting the IP and Hostname.

    -


    Get Started

    -

    Pulumi can be used on any resource covering serverless, containers, and infrastructure using JavaScript, TypeScript, Python, and Go.

    -
    -
    -
    -
    -
    const aws = require("@pulumi/aws");
    +            
    + + +
    +
    +

    Creating a Simple Web Server

    +

    + Pulumi gives you a way to express infrastructure configuration using your favorite programming language. +

    +

    + This code uses TypeScript on Node.js to define the necessary security group, and defines a very simple web server, and then creates the instance, before exporting the IP and Hostname. +

    +

    + Get Started +

    +

    + Pulumi can be used on any resource covering serverless, containers, and infrastructure using JavaScript, TypeScript, Python, and Go. +

    +
    +
    +
    + +
    const aws = require("@pulumi/aws");
     
     let size = "t2.micro";
     let ami  = "ami-7172b611"
    @@ -262,112 +262,34 @@ 

    Creating a Simple Web Server

    exports.publicIp = server.publicIp; exports.publicHostName = server.publicDns; -
    -
    -
    -
    -
    - -
    -
    -
    -
    - - {{ partial "how-pulumi-works.html" . }} - -
    - -
    -
    -
    -
    -

    Featured Customer

    -
    -
    -
    - Learning Machine -
    -
    -

    Learning Machine

    -

    Learning Machine, a blockchain SaaS company faced two challenges with their cloud infrastructure:

    -
      -
    1. Skills gaps between Dev and DevOps creating silos, and fragility.
    2. -
    3. The need to more rapidly provision their expanding roster of new customers.
    4. -
    -
    -
    - -
    -

    By moving to Pulumi, Learning Machine were able to solve both challenges with significant increases in capability:

    -
    -
    -
    - -
    25,000 Lines of CloudFormation reduced to 500 Lines of JavaScript
    -
    -
    -
    -
    - -
    New customer provisioning time reduced from 3 weeks to 1 hour
    -
    -
    -
    -
    -
    -
    -

    Pulumi has given our team the tools and framework to achieve a unified development and DevOps model, boosting productivity and taking our business to any cloud environment that our customers need. We retired 25,000 lines of complex code that few team members understood and replaced it with 100s of lines in a real programming language.

    -
    - - -
    +
    + {{ partial "how-pulumi-works.html" . }} + + {{ partial "learning-machine.html" . }} + {{ partial "get-started.html" . }} -
    -
    -
    -
    -
    -
    -
    -
    -

    Let Pulumi assist with your cloud infrastructure

    -

    Need help with Cloud Native Infrastructure as Code on AWS? Drop us a line.

    -
    -
    -
    -
    -
    - - - -
    -
    -
    -
    +
    +
    +
    +
    +

    Let Pulumi assist with your cloud infrastructure.

    +

    + Need help with cloud-native infrastructure as code on AWS? Drop us a line. +

    +
    +
    +
    + {{ partial "hubspot-contact.html" (dict "hubspotFormID" "8a0e0f30-b43e-468e-98cc-6b5d481e8660") }}
    -
    - - {{ partial "more-on-pulumi.html" . }} - {{ end }} From c145acbb42da79e1fb90384fbda129d8ab1f6229 Mon Sep 17 00:00:00 2001 From: Christian Nunciato Date: Tue, 18 Jun 2019 14:25:37 -0700 Subject: [PATCH 08/49] Add GCP and Azure partner pages Signed-off-by: Christian Nunciato --- layouts/partner/azure.html | 409 +++++++++++++++-------------------- layouts/partner/gcp.html | 430 ++++++++++++++++--------------------- 2 files changed, 350 insertions(+), 489 deletions(-) diff --git a/layouts/partner/azure.html b/layouts/partner/azure.html index 1b5ae15613d8..76e51be32157 100644 --- a/layouts/partner/azure.html +++ b/layouts/partner/azure.html @@ -1,76 +1,87 @@ -{{ define "main" }} - {{ partial "hero.html" . }} - -
    -
    -
    - +{{ define "hero" }} +
    +
    +
    +

    Modern Infrastructure as Code for Azure

    +

    + Pulumi's infrastructure-as-code SDK helps create, deploy, and manage + Azure containers, serverless functions, and infrastructure using real + programming languages. +

    +

    + Find out how to program the cloud with Pulumi and Azure. +

    -
    -
    +
    +
    +
    import * as helm from "@pulumi/kubernetes/helm";
    +import * as k8s from "@pulumi/kubernetes";
    +import { k8sCluster, k8sProvider } from "./cluster";
     
    -    
    -
    -
    -
    -
    -
    -
    -
    - -

    Real Code

    -

    Pulumi is infrastructure as real code. This means you get all the benefits of your favorite language and tool for provisioning cloud infrastructure: code completion, error checking, versioning, IDE support, and general productivity gains - without the need to manage YAML and DSL syntax.

    -
    -
    -
    -
    - -

    Reusable Components

    -

    As Pulumi is code, you can build up a library of packages to further enhance efficiency. Build repeatable practices through versioned packages such as: standard policies, network best practices, architecture blueprints - and deploy them to your team.

    -
    -
    -
    -
    - -

    Ephemeral Infrastructure

    -

    Pulumi provides the computation of necessary cloud resources with a 'Cloud Resource DAG' ensuring successful deployment of cloud infrastructure - efficiently building, updating, and destroying cloud resources as required.

    -
    -
    -
    -
    +const apache = new helm.v2.Chart("apache", { + repo: "bitnami", + chart: "apache", + version: "1.0.0", +}, { providers: { kubernetes: k8sProvider } }); + +export let cluster = k8sCluster.name; +export let kubeConfig = k8sCluster.kubeConfigRaw; +export let serviceIP = + (apache.resources["v1/Service::default/apache-apache"] + as k8s.core.v1.Service). + spec.apply(s => s.clusterIP); +
    -
    + +{{ end }} -
    -
    -
    -
    -
    -
    -
    -
    - Serverless -

    Creating a simple Azure Function

    -

    With Pulumi, you can combine infrastructure definitions and application code in one program. The @pulumi/cloud-azure library is a set of Pulumi components that provide a higher-level abstraction over Azure. You can use this library and define application code at the same time as the infrastructure it depends on.

    -

    This example shows how to create a simple Azure Function that returns a message when invoked.

    -


    Get Started

    -

    Pulumi can be used on any resource covering serverless, containers, and infrastructure using JavaScript, TypeScript, Python, and Go.

    -
    -
    -
    -
    -
    import * as azure from "@pulumi/azure";
    +{{ define "main" }}
    +    
    +
    +    {{ partial "benefits-v1.html" . }}
    +
    +    
    +
    + + +
    +
    +

    Creating a simple Azure Function

    +

    + With Pulumi, you can combine infrastructure definitions and + application code in one program. The @pulumi/cloud-azure library + is a set of Pulumi components that provide a higher-level + abstraction over Azure. You can use this library and define + application code at the same time as the infrastructure it depends + on. +

    +

    + This example shows how to create a simple Azure Function that + returns a message when invoked. +

    +

    + Get Started +

    +

    + Pulumi can be used on any resource covering serverless, containers, and infrastructure using JavaScript, TypeScript, Python, and Go. +

    +
    +
    +
    +
    import * as azure from "@pulumi/azure";
     import * as azureFunction from "./azureFunction";
     
     // Create an Azure function that prints a message and the request headers.
    @@ -94,37 +105,35 @@ 

    Creating a simple Azure Function

    let fn = new azureFunction.HttpFunction("fn", handler); export let endpoint = fn.endpoint; -
    -
    -
    -
    +
    -
    -
    -
    + +
    +
    +

    Build and deploy containers to Azure

    +

    + Pulumi supports programming against Azure's ACI container + orchestrator. Pulumi is entirely unopinionated about how + containers are built, published, and deployed to your + orchestrator. +

    +

    + This code runs a prebuilt container with a sidecar into ACI. +

    +

    + Get Started +

    +

    + Pulumi can be used on any resource covering serverless, containers, and infrastructure using JavaScript, TypeScript, Python, and Go. +

    +
    +
    +
    -
    -
    -
    -
    -
    -
    -
    -
    - Containers -

    Build and deploy containers to Azure

    -

    Pulumi supports programming against Azure's ACI container orchestrator. Pulumi is entirely unopinionated about how containers are built, published, and deployed to your orchestrator.

    -

    This code runs a prebuilt container with a sidecar into ACI. -


    Get Started

    -

    Pulumi can be used on any resource covering serverless, containers, and infrastructure using JavaScript, TypeScript, Python, and Go.

    -
    -
    -
    -
    -
    import * as azure from "@pulumi/azure";
    +
    import * as azure from "@pulumi/azure";
     
     const resourceGroup = new azure.core.ResourceGroup("resourcegroup", {
         location: "West US",
    @@ -154,37 +163,35 @@ 

    Build and deploy containers to Azure

    "environment": "testing", }, }); -
    -
    -
    -
    -
    - +
    -
    + +
    +
    +

    Build and deploy Kubernetes apps to Azure AKS

    +

    + Pulumi supports programming against Kubernetes – Minikube, custom + on-premises, or cloud-hosted custom clusters or in managed + clusters such as Azure AKS. +

    +

    + This code creates an AKS cluster, then deploys a Helm Chart into + it, all in one Pulumi program. +

    +

    + Get Started +

    +

    + Pulumi can be used on any resource covering serverless, containers, and infrastructure using JavaScript, TypeScript, Python, and Go. +

    +
    +
    +
    -
    -
    -
    -
    -
    -
    -
    -
    - Kubernetes -

    Build and deploy Kubernetes apps to Azure AKS

    -

    Pulumi supports programming against Kubernetes – Minikube, custom on-premises, or cloud-hosted custom clusters or in managed clusters such as Azure AKS.

    -

    This code creates an AKS cluster, then deploys a Helm Chart into it, all in one Pulumi program.

    -


    Get Started

    -

    Pulumi can be used on any resource covering serverless, containers, and infrastructure using JavaScript, TypeScript, Python, and Go.

    -
    -
    -
    -
    -
    import * as helm from "@pulumi/kubernetes/helm";
    +
    import * as helm from "@pulumi/kubernetes/helm";
     import * as k8s from "@pulumi/kubernetes";
     import { k8sCluster, k8sProvider } from "./cluster";
     
    @@ -199,37 +206,35 @@ 

    Build and deploy Kubernetes apps to Azure AKS

    export let serviceIP = (apache.resources["v1/Service::default/apache-apache"] as k8s.core.v1.Service). spec.apply(s => s.clusterIP); -
    -
    -
    -
    -
    - -
    +
    -
    +
    + +
    +
    +

    Creating a Simple Web Server

    +

    + Pulumi gives you a way to express infrastructure configuration + using your favorite programming language. +

    +

    + This code uses TypeScript on Node.js to define a webserver on an + Azure VM, and defines a very simple web server, and then creates + the instance, before exporting the IP and Hostname. +

    +

    + Get Started +

    +

    + Pulumi can be used on any resource covering serverless, containers, and infrastructure using JavaScript, TypeScript, Python, and Go. +

    +
    +
    +
    -
    -
    -
    -
    -
    -
    -
    -
    - Infrastructure -

    Creating a Simple Web Server

    -

    Pulumi gives you a way to express infrastructure configuration using your favorite programming language.

    -

    This code uses TypeScript on Node.js to define a webserver on an Azure VM, and defines a very simple web server, and then creates the instance, before exporting the IP and Hostname.

    -


    Get Started

    -

    Pulumi can be used on any resource covering serverless, containers, and infrastructure using JavaScript, TypeScript, Python, and Go.

    -
    -
    -
    -
    -
    const azure = require("@pulumi/azure");
    +
    const azure = require("@pulumi/azure");
     
     let vm = new azure.compute.VirtualMachine("server-vm", {
         resourceGroupName: resourceGroup.name,
    @@ -265,112 +270,34 @@ 

    Creating a Simple Web Server

    resourceGroupName: publicIP.resourceGroupName, }).then(ip => ip.ipAddress) ); -
    -
    -
    -
    -
    - -
    -
    -
    -
    - - {{ partial "how-pulumi-works.html" . }} - -
    - -
    -
    -
    -
    -

    Featured Customer

    -
    -
    -
    - Learning Machine -
    -
    -

    Learning Machine

    -

    Learning Machine, a blockchain SaaS company faced two challenges with their cloud infrastructure:

    -
      -
    1. Skills gaps between Dev and DevOps creating silos, and fragility.
    2. -
    3. The need to more rapidly provision their expanding roster of new customers.
    4. -
    -
    -
    - -
    -

    By moving to Pulumi, Learning Machine were able to solve both challenges with significant increases in capability:

    -
    -
    -
    - -
    25,000 Lines of CloudFormation reduced to 500 Lines of JavaScript
    -
    -
    -
    -
    - -
    New customer provisioning time reduced from 3 weeks to 1 hour
    -
    -
    -
    -
    -
    -
    -

    Pulumi has given our team the tools and framework to achieve a unified development and DevOps model, boosting productivity and taking our business to any cloud environment that our customers need. We retired 25,000 lines of complex code that few team members understood and replaced it with 100s of lines in a real programming language.

    -
    - - -
    +
    + {{ partial "how-pulumi-works.html" . }} + + {{ partial "learning-machine.html" . }} + {{ partial "get-started.html" . }} -
    -
    -
    -
    -
    -
    -
    -
    -

    Let Pulumi assist with your cloud infrastructure

    -

    Need help delivering Cloud Native Infrastructure as Code on Azure? Drop us a line.

    -
    -
    -
    -
    -
    - - - -
    -
    -
    -
    +
    +
    +
    +
    +

    Let Pulumi assist with your cloud infrastructure.

    +

    + Need help with cloud-native infrastructure as code on Azure? Drop us a line. +

    +
    +
    +
    + {{ partial "hubspot-contact.html" (dict "hubspotFormID" "826f708b-53a9-4abc-9cb9-950f47362b72") }}
    -
    - - {{ partial "more-on-pulumi.html" . }} - {{ end }} diff --git a/layouts/partner/gcp.html b/layouts/partner/gcp.html index 2fc33958f35d..163496fa2a5c 100644 --- a/layouts/partner/gcp.html +++ b/layouts/partner/gcp.html @@ -1,77 +1,89 @@ -{{ define "main" }} - {{ partial "hero.html" . }} - -
    -
    -
    - +{{ define "hero" }} +
    +
    +
    +

    Modern Infrastructure as Code for Google Cloud

    +

    + Pulumi's infrastructure as code SDK helps create, deploy, and manage + GCP containers, serverless functions, and infrastructure using real + programming languages. +

    +

    + Find out how to program the cloud with Pulumi and Google Cloud. +

    -
    -
    +
    +
    +
    import * as k8s from "@pulumi/kubernetes";
    +import * as pulumi from "@pulumi/pulumi";
    +import { k8sProvider, k8sConfig } from "./cluster";
     
    -    
    -
    -
    -
    -
    -
    -
    -
    - -

    Real Code

    -

    Pulumi is infrastructure as real code. This means you get all the benefits of your favorite language and tool for provisioning cloud infrastructure: code completion, error checking, versioning, IDE support, and general productivity gains - without the need to manage YAML and DSL syntax.

    -
    -
    -
    -
    - -

    Reusable Components

    -

    As Pulumi is code, you can build up a library of packages to further enhance efficiency. Build repeatable practices through versioned packages such as: standard policies, network best practices, architecture blueprints - and deploy them to your team.

    -
    -
    -
    -
    - -

    Ephemeral Infrastructure

    -

    Pulumi provides the computation of necessary cloud resources with a 'Cloud Resource DAG' ensuring successful deployment of cloud infrastructure - efficiently building, updating, and destroying cloud resources as required.

    -
    -
    -
    -
    +const name = `${pulumi.getProject()}-${pulumi.getStack()}`; +const canaryLabels = { app: `canary-${name}` }; +const canary = new k8s.apps.v1beta1.Deployment("canary", { + spec: { + selector: { matchLabels: canaryLabels }, + replicas: 1, + template: { + metadata: { labels: canaryLabels }, + spec: { containers: [{ name, image: "nginx" }] }, + }, + }, +}, { provider: k8sProvider }); + +export let kubeConfig = k8sConfig; +
    -
    - + +{{ end }} -
    -
    -
    -
    -
    -
    -
    -
    - Kubernetes -

    Build and deploy a GKE cluster

    -

    Pulumi supports programming against Kubernetes – Minikube, custom on-premises, or cloud-hosted custom clusters or in managed clusters such as Google GKE.

    -

    This code defines a GKE cluster with configurable settings which could be used in a module which could then be used to deploy an app to the cluster.

    -


    Get Started

    -

    Pulumi can be used on any resource covering serverless, containers, and infrastructure using JavaScript, TypeScript, Python, and Go.

    -
    -
    -
    -
    -
    // Define a GKE cluster with configurable settings
    +{{ define "main" }}
    +    
    +
    +    {{ partial "benefits-v1.html" . }}
    +
    +    
    +
    + + +
    +
    +

    Build and deploy a GKE cluster

    +

    + Pulumi supports programming against Kubernetes – Minikube, custom + on-premises, or cloud-hosted custom clusters or in managed + clusters such as Google GKE. +

    +

    + This code defines a GKE cluster with configurable settings which + could be used in a module which could then be used to deploy an + app to the cluster. +

    +

    + Get Started +

    +

    + Pulumi can be used on any resource covering serverless, + containers, and infrastructure using JavaScript, TypeScript, + Python, and Go. +

    +
    +
    +
    +
    // Define a GKE cluster with configurable settings
     import * as gcp from "@pulumi/gcp";
     import { nodeCount, nodeMachineType, password, username } from "./config";
     
    @@ -90,37 +102,38 @@ 

    Build and deploy a GKE cluster

    ], }, }); -
    -
    -
    -
    -
    - +
    -
    + +
    +
    +

    Build and deploy Kubernetes apps to GKE

    +

    + Pulumi supports programming against Azure's ACI container + orchestrator. Pulumi is entirely unopinionated about how + containers are built, published, and deployed to your + orchestrator. +

    +

    + This code makes use of our previously defined GKE cluster and + deploys an nginx canary onto the cluster with 1 replica. +

    +

    + Get Started +

    +

    + Pulumi can be used on any resource covering serverless, + containers, and infrastructure using JavaScript, TypeScript, + Python, and Go. +

    +
    +
    +
    -
    -
    -
    -
    -
    -
    -
    -
    - Kubernetes -

    Build and deploy Kubernetes apps to GKE

    -

    Pulumi supports deploying apps and services to Kubernetes clusters such as GKE.

    -

    This code makes use of our previously defined GKE cluster and deploys an nginx canary onto the cluster with 1 replica.

    -


    Get Started

    -

    Pulumi can be used on any resource covering serverless, containers, and infrastructure using JavaScript, TypeScript, Python, and Go.

    -
    -
    -
    -
    -
    // Deploy an nginx canary to GKE
    +
    // Deploy an nginx canary to GKE
     import * as k8s from "@pulumi/kubernetes";
     import * as pulumi from "@pulumi/pulumi";
     import { k8sProvider, k8sConfig } from "./cluster";
    @@ -141,38 +154,37 @@ 

    Build and deploy Kubernetes apps to GKE

    // Export the Kubeconfig so that clients can easily access our cluster. export let kubeConfig = k8sConfig; - -
    -
    -
    -
    -
    - -
    +
    -
    +
    + +
    +
    +

    Creating a Simple Web Server

    +

    + Pulumi gives you a way to express infrastructure configuration + using your favorite programming language. +

    +

    + This code uses TypeScript on Node.js to define the necessary + environment, defines a very simple web server, and then creates + the instance, before exporting the IP and Hostname. +

    +

    + Get Started +

    +

    + Pulumi can be used on any resource covering serverless, + containers, and infrastructure using JavaScript, TypeScript, + Python, and Go. +

    +
    +
    +
    -
    -
    -
    -
    -
    -
    -
    -
    - Infrastructure -

    Creating a Simple Web Server

    -

    Pulumi gives you a way to express infrastructure configuration using your favorite programming language.

    -

    This code uses TypeScript on Node.js to define the necessary environment, defines a very simple web server, and then creates the instance, before exporting the IP and Hostname.

    -


    Get Started

    -

    Pulumi can be used on any resource covering serverless, containers, and infrastructure using JavaScript, TypeScript, Python, and Go.

    -
    -
    -
    -
    -
    const gcp = require("@pulumi/gcp");
    +
    const gcp = require("@pulumi/gcp");
     
     const computeNetwork = new gcp.compute.Network("network", {
         autoCreateSubnetworks: true,
    @@ -210,149 +222,71 @@ 

    Creating a Simple Web Server

    exports.instanceName = computeInstance.name; exports.instanceIP = computeInstance.networkInterfaces.apply(ni => ni[0].accessConfigs[0].natIp); -
    -
    -
    -
    -
    - -
    +
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    - Serverless -

    Creating a Google Cloud Function

    -

    With Pulumi, you can combine infrastructure definitions and application code in one program. The @pulumi/cloud-gcp library is a set of Pulumi components that provide a higher-level abstraction over Azure. You can use this library and define application code at the same time as the infrastructure it depends on.

    -

    This example shows how to create a simple Google Cloud Function that returns a message when invoked.

    -


    Get Started

    -

    Pulumi can be used on any resource covering serverless, containers, and infrastructure using JavaScript, TypeScript, Python, and Go.

    -
    -
    -
    -
    -
    // Create a simple Function
    -            import * as gcpFunction from "./gcpFunction";
    -
    -            let greetingFunction = new gcpFunction.HttpFunction("greeting", (req, res) => {
    -                res.send(`Greetings from ${req.body.name || 'Google Cloud Functions'}!`);
    -            });
    -
    -            export let url = greetingFunction.httpsTriggerUrl;
    -            
    -
    -
    -
    -
    - -
    -
    -
    -
    - - {{ partial "how-pulumi-works.html" . }} +
    -
    + +
    +
    +

    Creating a Google Cloud Function

    +

    + With Pulumi, you can combine infrastructure definitions and + application code in one program. The @pulumi/cloud-gcp library is + a set of Pulumi components that provide a higher-level abstraction + over Azure. You can use this library and define application code + at the same time as the infrastructure it depends on. +

    +

    + This example shows how to create a simple Google Cloud Function that returns a message when invoked. +

    +

    + Get Started +

    +

    + Pulumi can be used on any resource covering serverless, containers, and infrastructure using JavaScript, TypeScript, Python, and Go. +

    +
    +
    +
    -
    -
    -
    -
    -

    Featured Customer

    -
    -
    -
    - Learning Machine -
    -
    -

    Learning Machine

    -

    Learning Machine, a blockchain SaaS company faced two challenges with their cloud infrastructure:

    -
      -
    1. Skills gaps between Dev and DevOps creating silos, and fragility.
    2. -
    3. The need to more rapidly provision their expanding roster of new customers.
    4. -
    -
    -
    +
    // Create a simple Function
    +import * as gcpFunction from "./gcpFunction";
     
    -                        
    -

    By moving to Pulumi, Learning Machine were able to solve both challenges with significant increases in capability:

    -
    -
    -
    - -
    25,000 Lines of CloudFormation reduced to 500 Lines of JavaScript
    -
    -
    -
    -
    - -
    New customer provisioning time reduced from 3 weeks to 1 hour
    -
    -
    -
    -
    -
    -
    -

    Pulumi has given our team the tools and framework to achieve a unified development and DevOps model, boosting productivity and taking our business to any cloud environment that our customers need. We retired 25,000 lines of complex code that few team members understood and replaced it with 100s of lines in a real programming language.

    -
    - +let greetingFunction = new gcpFunction.HttpFunction("greeting", (req, res) => { + res.send(`Greetings from ${req.body.name || 'Google Cloud Functions'}!`); +}); -
    +export let url = greetingFunction.httpsTriggerUrl; +
    + {{ partial "how-pulumi-works.html" . }} + + {{ partial "learning-machine.html" . }} + {{ partial "get-started.html" . }} -
    -
    -
    -
    -
    -
    -
    -
    -

    Let Pulumi assist with your cloud infrastructure

    -

    Need help delivering Cloud Native Infrastructure as Code on GCP? Drop us a line.

    -
    -
    -
    -
    -
    - - - -
    -
    -
    -
    +
    +
    +
    +
    +

    Let Pulumi assist with your cloud infrastructure.

    +

    + Need help with cloud-native infrastructure as code on GCP? Drop us a line. +

    +
    +
    +
    + {{ partial "hubspot-contact.html" (dict "hubspotFormID" "3eee19cc-77d0-440a-85d9-8979e775b4e5") }}
    -
    - - {{ partial "more-on-pulumi.html" . }} - {{ end }} From b020ee586ee4591ac42309eddcce7b33e7f41b72 Mon Sep 17 00:00:00 2001 From: Christian Nunciato Date: Wed, 19 Jun 2019 09:33:55 -0700 Subject: [PATCH 09/49] We actually do need this Signed-off-by: Christian Nunciato --- assets/sass/styles.scss | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/assets/sass/styles.scss b/assets/sass/styles.scss index 155a9467eff4..5cdb1607d48e 100644 --- a/assets/sass/styles.scss +++ b/assets/sass/styles.scss @@ -16,6 +16,10 @@ h1, h2, h3, h4, h5, h6 { @apply font-display text-gray-700 mb-2; + + &:not(:first-child) { + @apply mt-8; + } } h1 { From 6f6036b388aa2e66eb1000313144f94c968b73d7 Mon Sep 17 00:00:00 2001 From: Christian Nunciato Date: Wed, 19 Jun 2019 10:21:43 -0700 Subject: [PATCH 10/49] About us page, with configurable HubSpot form styling Signed-off-by: Christian Nunciato --- assets/sass/_hubspot.scss | 69 +++--- content/about.md | 14 +- content/contact.md | 11 +- data/newsroom.toml | 65 ++++++ layouts/migrate/cloudformation.html | 4 +- layouts/migrate/terraform.html | 2 +- layouts/page/about.html | 258 ++++++--------------- layouts/partials/contact-us.html | 98 ++++---- layouts/partials/hubspot-contact.html | 1 + layouts/partials/newsroom.html | 199 +++------------- layouts/partials/widgets/social-icons.html | 4 +- layouts/partner/aws.html | 2 +- layouts/partner/azure.html | 2 +- layouts/partner/gcp.html | 2 +- 14 files changed, 269 insertions(+), 462 deletions(-) create mode 100644 data/newsroom.toml diff --git a/assets/sass/_hubspot.scss b/assets/sass/_hubspot.scss index e1903a298ad1..691b2e0b95da 100644 --- a/assets/sass/_hubspot.scss +++ b/assets/sass/_hubspot.scss @@ -1,52 +1,61 @@ -// Hubspot form overrides. It feels bad to have to do this; we should probably consider -// removing all of the styling happening at the HubSpot level, and just expect these forms -// to be styled localy in all cases, rather than force us to do this to ourselves. -.hs-form-white { +.hs-form { + @apply text-sm; + fieldset { + @apply block; + margin: 1rem 0 !important; + + &:not(.form-columns-1) > .field:first-child { + @apply pr-2; + } + + label { + @apply block mb-2 font-bold; + } + + .hs-input { + @apply block; + width: 100% !important; + } + .hs-form-required { @apply ml-1 text-red-500; } .hs-richtext p { - @apply text-white opacity-50 text-xs font-normal my-0; + @apply opacity-50 text-xs font-normal my-0; a { - @apply text-white underline; - } - } - - label { - span { - @apply text-white font-normal; - } - - &.hs-error-msg { - @apply mt-1; + @apply underline; } } - input[type="text"], input[type="email"], textarea { - @apply border-none p-2; + input, textarea { + @apply border border-gray-300 rounded p-2 bg-white; } } - .hs-submit > .actions { - @apply mt-0; + input[type="submit"] { + @apply btn btn-cta py-4 px-8 shadow-none cursor-pointer shadow-none border-none tracking-wide font-normal; + } - > input[type="submit"] { - @apply btn btn-cta py-4 px-8 shadow-none cursor-pointer shadow-none border-none tracking-wide font-normal; + .hs-error-msgs { + @apply list-none mt-2 p-0 text-red-500 text-xs; - // These don't seem to have direct TailWind equivalents. - background-image: none; - text-shadow: none; + label { + @apply mb-0; } } - .hs-error-msgs.inputs-list { - padding-left: 0; + .hs_error_rollup { + @apply hidden; + } - label { - @apply text-red-500; - } + &-fg-light { + @apply text-gray-600; + } + + &-fg-dark { + @apply text-gray-700; } } diff --git a/content/about.md b/content/about.md index 22c005f0682c..6209fb2381ef 100644 --- a/content/about.md +++ b/content/about.md @@ -1,14 +1,4 @@ --- -title: "About" -date: 2018-06-06T12:06:22-07:00 -layout: "about" -menu: - main: - weight: 5 - footer4: - weight: 3 - -hero_title: "Program the Cloud." -hero_classes: "bg-purple white-text" +title: About +layout: about --- - diff --git a/content/contact.md b/content/contact.md index a089d9d94d7f..a75e6063dd3b 100644 --- a/content/contact.md +++ b/content/contact.md @@ -1,11 +1,4 @@ --- title: "Contact Us" -date: 2018-06-06T12:06:22-07:00 -layout: "contact" -menu: - footer4: - weight: 1 - -hero_title: "Talk with Pulumi" -hero_classes: "bg-purple white-text" ---- \ No newline at end of file +layout: contact +--- diff --git a/data/newsroom.toml b/data/newsroom.toml new file mode 100644 index 000000000000..726e82168f93 --- /dev/null +++ b/data/newsroom.toml @@ -0,0 +1,65 @@ +[[releases]] +date = "11th June 2019" +title = "Pulumi Announces $15M in Series A Funding to Accelerate Development and Adoption of its Cloud Native Development Platform" +summary = "Commercial offering of common language cloud programming platform enables deployment of any application to any cloud by any team." +url = "https://info.pulumi.com/press-release/pulumi-announces-15m-in-series-a-funding-to-accelerate-development-and-adoption-of-its-cloud-native-development-platform" + +[[releases]] +date = "22nd October 2018" +title = "Pulumi Announces $15M in Series A Funding to Accelerate Development and Adoption of its Cloud Native Development Platform" +summary = "Commercial offering of common language cloud programming platform enables deployment of any application to any cloud by any team." +url = "https://info.pulumi.com/press-release/pulumi-announces-15m-in-series-a-funding-to-accelerate-development-and-adoption-of-its-cloud-native-development-platform" + +[[releases]] +date = "12th September 2018" +title = "Pulumi’s Cloud Native SDK Lets Teams Easily Define and Deliver Cloud Native Infrastructure as Code for Kubernetes in Any Cloud Using Real Languages" +summary = "Company joins CNCF to accelerate cloud native programming models for Kubernetes." +url = "https://info.pulumi.com/press-release/pulumi-cloud-native-sdk-delivers-cloud-native-infrastructure-as-code-for-kubernetes/" + +[[releases]] +date = "18th June 2018" +title = "Pulumi Launches Cloud Development Platform to Help Teams Get Code to the Cloud Faster" +summary = "Company funded by Madrona Venture Group and Tola Capital to help companies accelerate cloud application development and infrastructure delivery. " +url = "https://info.pulumi.com/press-release/pulumi-launches-cloud-development-platform-to-help-teams-get-code-to-the-cloud-faster/" + +[[coverage]] +date = "22nd October 2018" +title = "Pulumi raises $15M for its infrastructure as code platform" +img = "/logos/press/techcrunch.png" +url = "https://techcrunch.com/2018/10/22/pulumi-raises-15m-for-its-infrastructure-as-code-platform/" + +[[coverage]] +date = "22nd October 2018" +title = "Pulumi Launches Team Edition of Infrastructure as Code Platform" +img = "/logos/press/eweek.jpg" +url = "http://www.eweek.com/cloud/pulumi-launches-team-edition-of-infrastructure-as-code-platform/" + +[[coverage]] +date = "22nd October 2018" +title = "Pulumi Bridges The Gap Between Cloud-Native Development And Infrastructure As Code" +img = "https://www.pulumi.com/assets/logos/press/forbes.png" +url = "https://www.forbes.com/sites/janakirammsv/2018/10/16/pulumi-bridges-the-gap-between-cloud-native-development-and-infrastructure-as-code/" + +[[coverage]] +date = "12th September 2018" +title = "Pulumi releases software-development kit to unlock the multicloud potential of Kubernetes" +img = "https://www.pulumi.com/assets/logos/press/geekwire.png" +url = "https://www.geekwire.com/2018/pulumi-releases-software-development-kit-unlock-multicloud-potential-kubernetes/" + +[[coverage]] +date = "19th June 2018" +title = "Pulumi: Using Languages to Program Across Clouds." +img = "https://www.pulumi.com/assets/logos/press/newstack.png" +url = "https://thenewstack.io/pulumi-using-languages-to-program-across-clouds/" + +[[coverage]] +date = "18th June 2018" +title = "Meet Pulumi, a Seattle-grown cloud startup that wants to be the development platform for the multicloud era." +img = "https://www.pulumi.com/assets/logos/press/geekwire.png" +url = "https://www.geekwire.com/2018/meet-pulumi-seattle-grown-cloud-startup-wants-development-platform-multicloud-era/" + +[[coverage]] +date = "18th June 2018" +title = "Pulumi wants to let you manage your infrastructure with code." +img = "https://www.pulumi.com/assets/logos/press/techcrunch.png" +url = "https://techcrunch.com/2018/06/18/pulumi-wants-to-let-you-manage-your-infrastructure-with-code/" diff --git a/layouts/migrate/cloudformation.html b/layouts/migrate/cloudformation.html index 9d2299cf60d1..7ee607033c31 100644 --- a/layouts/migrate/cloudformation.html +++ b/layouts/migrate/cloudformation.html @@ -14,7 +14,7 @@

    Migrating to Pulumi from CloudFormation

    -
    +
    {{ partial "hubspot-contact.html" (dict "hubspotFormID" "1b19f76c-0405-4a38-8a45-7f6a499db8ea") }}
    @@ -119,7 +119,7 @@

    Let Pulumi assist with your cloud infrastructure.

    -
    +
    {{ partial "hubspot-contact.html" (dict "hubspotFormID" "1b19f76c-0405-4a38-8a45-7f6a499db8ea") }}
    diff --git a/layouts/migrate/terraform.html b/layouts/migrate/terraform.html index 5da14a7d0710..b83332d5007c 100644 --- a/layouts/migrate/terraform.html +++ b/layouts/migrate/terraform.html @@ -238,7 +238,7 @@

    Let Pulumi assist with your cloud infrastructure.

    -
    +
    {{ partial "hubspot-contact.html" (dict "hubspotFormID" "123cfbdb-9ce4-4d33-a9b7-c30302463d7a") }}
    diff --git a/layouts/page/about.html b/layouts/page/about.html index b3e3c7015f88..f501239a2e69 100644 --- a/layouts/page/about.html +++ b/layouts/page/about.html @@ -1,211 +1,85 @@ -{{ define "main" }} - {{ partial "hero.html" . }} - -
    -
    -
    -
    - -
    -
    +{{ define "hero" }} +
    +
    +

    Program the cloud.

    -
    - -
    -
    -
    -
    -
    -

    - Pulumi is a venture backed startup in Seattle making it easier than ever to build cloud - software. Our team is a diverse and talented group from all corners of our industry, and - our products sit uniquely at the intersection of developer tools and cloud operations. -

    - -
    Get your code to the cloud. Faster. Together.
    + +{{ end }} -
    We are hiring!
    -
    -
    -
    +{{ define "main" }} +
    + -
    -
    -
    -
    -
    -
    -

    Pulumi Team

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - {{/* The "Team" data folder contains data from guest posters too. So filter on status. */}} - {{ range $.Site.Data.team.team }} - {{ if eq .status "active" }} -
    -
    - {{ .name }} -

    {{ .name }}

    -

    {{ .title }}

    - {{ partial "widgets/social-icons.html" (dict "social" .social)}} - {{ if .bio }} - {{ partial "modal-team.html" (dict "id" .id "name" .name "title" .title "bio" .bio "social" .social )}} - {{ end }} -
    -
    - {{ end }} - {{ end }} -
    -

     

    -
    -
    -
    -
    - +
    +

    + Pulumi is a venture backed startup in Seattle making it easier than ever to + build cloud software. Our team is a diverse and talented group from all + corners of our industry, and our products sit uniquely at the intersection of + developer tools and cloud operations. +

    +

    + Get your code to the cloud. Faster. Together. +

    +

    + We are hiring! +

    -
    -
    -
    -
    -
    -
    -

    Board of Directors

    +
    +
    +
      + {{ range $.Site.Data.team.team }} +
    • + {{ .name }} +

      {{ .name }}

      +
      {{ .title }}
      +
      + {{ partial "widgets/social-icons.html" (dict "social" .social)}}
      -
    -
    -
    -
    -
    -
    -
    -
    -
    - {{ range sort $.Site.Data.team.board "weight" }} -
    -
    - {{ .name }} -

    {{ .name }}

    -

    {{ .title }}
    {{ .investor }}

    - {{ partial "widgets/social-icons.html" (dict "social" .social)}} - {{ if .bio }} - {{ partial "modal-team.html" (dict "id" .id "name" .name "title" .title "bio" .bio "social" .social )}} - {{ end }} -
    -
    - {{ end }} -
    -
    -
    -
    + + {{ end }} +
    -
    -
    -
    -
    -
    -
    -

    Pulumi Investors

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    - -
    -
    +
    +
    +

    Board of Directors

    +
      + {{ range sort $.Site.Data.team.board "weight" }} +
    • + {{ .name }} +

      {{ .name }}

      +
      {{ .title }}
      +
      + {{ partial "widgets/social-icons.html" (dict "social" .social)}}
      -
    -
    -
    + + {{ end }} +
    {{ partial "newsroom.html" . }} -
    -
    -
    -
    -
    - -

    Why Pulumi?

    -

    Find out how Pulumi provides a programming model for the cloud, designed to unlock the full power of serverless, container, and data service architectures with Cloud Native Infrastructure as Code.

    -

    Learn more

    -
    -
    -
    -
    -
    - - {{ partial "contact-us.html" . }} - -
    - -
    -
    -
    -
    -
    -

    Find Pulumi at

    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    - {{ partial "social.html" (dict "classes" "expanded" ) }} -
    -
    -
    -
    -
    +
    + +

    Why Pulumi?

    +

    + Find out how Pulumi provides a programming model for the cloud, designed to + unlock the full power of serverless, container, and data service architectures + with Cloud Native Infrastructure as Code. +

    + Learn More
    - {{ partial "learnmore-contactus.html" . }} - + {{ partial "contact-us.html" . }} {{ end }} diff --git a/layouts/partials/contact-us.html b/layouts/partials/contact-us.html index ffe43c426803..ab572b3825b1 100644 --- a/layouts/partials/contact-us.html +++ b/layouts/partials/contact-us.html @@ -1,49 +1,57 @@ -
    -
    -
    -
    -
    -
    -

    Ask Us About

    -

    -

    -

    -

    The Value of Pulumi

    -

    -

      -
    • Use your favorite programming language to define cloud native infrastructure.
    • -
    • Target any cloud native infrastructure provider including Kubernetes anywhere.
    • -
    • Development and DevOps teams can define, deploy, and manage infrastructure
    • -
    -

    -

    Our address: Pulumi Corporation, 1525 4th Avenue, Suite 800, Seattle, WA 98101

    -
    -
    +
    +
    +
    +
    +

    Ask Us About

    +
    -
    -
    -
    -

    Contact Pulumi

    - - - -
    -
    + +
    +

    The Value of Pulumi

    +
      +
    • Use your favorite programming language to define cloud native infrastructure.
    • +
    • Target any cloud native infrastructure provider including Kubernetes anywhere.
    • +
    • Development and DevOps teams can define, deploy, and manage infrastructure
    • +
    +
    + +
    +

    Our Address

    +

    + Pulumi Corporation
    + 1525 4th Avenue, Suite 800
    + Seattle, WA 98101 +

    +
    +
    +
    +
    + {{ partial "hubspot-contact.html" (dict "hubspotFormID" "8381e562-5fdf-4736-bb10-86096705e4ee") }}
    -
    \ No newline at end of file +
    diff --git a/layouts/partials/hubspot-contact.html b/layouts/partials/hubspot-contact.html index d13ebc16c989..02161d96c9a7 100644 --- a/layouts/partials/hubspot-contact.html +++ b/layouts/partials/hubspot-contact.html @@ -3,5 +3,6 @@ hbspt.forms.create({ portalId: "4429525", formId: {{ .hubspotFormID }}, + css: "", }); diff --git a/layouts/partials/newsroom.html b/layouts/partials/newsroom.html index 1a7d13f59a7c..a5282ff630d7 100644 --- a/layouts/partials/newsroom.html +++ b/layouts/partials/newsroom.html @@ -1,170 +1,37 @@ -
    -
    -
    -
    -
    -

    Press releases

    -
    -
    -
    -
    -

    22nd October 2018

    -

    Pulumi Announces $15M in Series A Funding to Accelerate Development and Adoption of its Cloud Native Development Platform -
    Commercial offering of common language cloud programming platform enables deployment of any application to any cloud by any team. Read more...


    -
    -
    -
    -
    -
    -
    -

    12th September 2018

    -

    Pulumi’s Cloud Native SDK Lets Teams Easily Define and Deliver Cloud Native Infrastructure as Code for Kubernetes in Any Cloud Using Real Languages -
    Company joins CNCF to accelerate cloud native programming models for Kubernetes. Read more...


    -
    -
    -
    -
    -
    -
    -

    18th June 2018

    -

    Pulumi Launches Cloud Development Platform to Help Teams Get Code to the Cloud Faster -
    Company funded by Madrona Venture Group and Tola Capital to help companies accelerate cloud application development and infrastructure delivery. Read more...

    -
    -
    -
    -
    -
    -
    -

    Recent news

    -
    - - -
    -
    -
    -
    -

    22nd October 2018

    -
    -
    -
    geekwire
    -
    -

    - Pulumi raises $15M for its infrastructure as code platform
    Read more...

    -
    -
    -
    -
    -
    - - - -
    -
    -
    -
    -

    22nd October 2018

    -
    -
    -
    geekwire
    -
    -

    Pulumi Launches Team Edition of Infrastructure as Code Platform
    Read more...

    -
    -
    -
    -
    -
    - - - - - -
    -
    -
    -
    -

    22nd October 2018

    -
    -
    -
    geekwire
    -
    -

    Pulumi Bridges The Gap Between Cloud-Native Development And Infrastructure As Code
    Read more...

    -
    -
    -
    -
    -
    - - -
    -
    -
    -
    -

    12th September 2018

    -
    -
    -
    geekwire
    -
    -

    Pulumi releases software-development kit to unlock the multicloud potential of Kubernetes
    Read more...

    -
    -
    -
    -
    -
    - - -
    -
    -
    -
    -

    19th June 2018

    -
    -
    -
    newstack
    -
    -

    Pulumi: Using Languages to Program Across Clouds.
    Read more...

    -
    -
    -
    -
    -
    - - -
    -
    -
    -
    -

    18th June 2018

    -
    -
    -
    geekwire
    -
    -

    Meet Pulumi, a Seattle-grown cloud startup that wants to be the development platform for the multicloud era.
    Read more...

    -
    -
    -
    -
    -
    - - -
    -
    -
    -
    -

    18th June 2018

    -
    -
    -
    techcrunch
    -
    -

    Pulumi wants to let you manage your infrastructure with code.
    Read more...

    -
    -
    -
    -
    -
    - +
    +
    +
    +

    Press Releases

    +
      + {{ range $.Site.Data.newsroom.releases }} +
    • +
      {{ .date }}
      +
      {{ .title }}
      +

      + {{ .summary }} +

      + Read more » +
    • + {{ end }} +
    +
    -
    -
    +
    +

    Recent News

    +
      + {{ range $.Site.Data.newsroom.coverage }} +
    • +
      {{ .date }}
      +
      + Source +
      +
      {{ .title }}
      + Read more » +
      +
      +
    • + {{ end }} +
    diff --git a/layouts/partials/widgets/social-icons.html b/layouts/partials/widgets/social-icons.html index 5d6bb2507908..07a9409a2ee8 100644 --- a/layouts/partials/widgets/social-icons.html +++ b/layouts/partials/widgets/social-icons.html @@ -7,10 +7,10 @@ {{ $platforms := slice "github" "linkedin" "twitter" }} {{ $platformUrlPrefixes := slice "https://github.com" "https://www.linkedin.com/in" "https://twitter.com" }} -
      +
        {{ range $idx, $platform := $platforms }} {{ if (index $socialIdentities $platform) }} -
      • +
      • diff --git a/layouts/partner/aws.html b/layouts/partner/aws.html index 0f6ca0eb297d..8b1a20176563 100644 --- a/layouts/partner/aws.html +++ b/layouts/partner/aws.html @@ -285,7 +285,7 @@

        Let Pulumi assist with your cloud infrastructure.

    -
    +
    {{ partial "hubspot-contact.html" (dict "hubspotFormID" "8a0e0f30-b43e-468e-98cc-6b5d481e8660") }}
    diff --git a/layouts/partner/azure.html b/layouts/partner/azure.html index 76e51be32157..2ddbd2a7143f 100644 --- a/layouts/partner/azure.html +++ b/layouts/partner/azure.html @@ -293,7 +293,7 @@

    Let Pulumi assist with your cloud infrastructure.

    -
    +
    {{ partial "hubspot-contact.html" (dict "hubspotFormID" "826f708b-53a9-4abc-9cb9-950f47362b72") }}
    diff --git a/layouts/partner/gcp.html b/layouts/partner/gcp.html index 163496fa2a5c..5dc0a09fc7d7 100644 --- a/layouts/partner/gcp.html +++ b/layouts/partner/gcp.html @@ -282,7 +282,7 @@

    Let Pulumi assist with your cloud infrastructure.

    -
    +
    {{ partial "hubspot-contact.html" (dict "hubspotFormID" "3eee19cc-77d0-440a-85d9-8979e775b4e5") }}
    From 6ba7c76cb2acd13c377abb0b4c08204ffa185f71 Mon Sep 17 00:00:00 2001 From: Christian Nunciato Date: Wed, 19 Jun 2019 11:16:11 -0700 Subject: [PATCH 11/49] Contact Us page Signed-off-by: Christian Nunciato --- content/contact.md | 2 +- layouts/page/contact.html | 32 ++------------------------------ layouts/partials/social.html | 20 +++++++++++++------- 3 files changed, 16 insertions(+), 38 deletions(-) diff --git a/content/contact.md b/content/contact.md index a75e6063dd3b..77cb7fb575be 100644 --- a/content/contact.md +++ b/content/contact.md @@ -1,4 +1,4 @@ --- -title: "Contact Us" +title: Contact Us layout: contact --- diff --git a/layouts/page/contact.html b/layouts/page/contact.html index 4699e3386de1..94fecf3f5011 100644 --- a/layouts/page/contact.html +++ b/layouts/page/contact.html @@ -1,32 +1,4 @@ {{ define "main" }} {{ partial "contact-us.html" . }} - -
    - -
    -
    -
    -
    -
    -

    Find Pulumi at

    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    - {{ partial "social.html" (dict "classes" "expanded" ) }} -
    -
    -
    -
    -
    - -
    - -{{ end }} \ No newline at end of file + {{ partial "social.html" . }} +{{ end }} diff --git a/layouts/partials/social.html b/layouts/partials/social.html index 73acd5de2dc9..45d36be99430 100644 --- a/layouts/partials/social.html +++ b/layouts/partials/social.html @@ -1,7 +1,13 @@ - + +
    +
    +

    Find Pulumi at

    +
      +
    • +
    • +
    • +
    • +
    • +
    +
    +
    From 5e95b38b3eb6fb347352c7b8245176342cfef62a Mon Sep 17 00:00:00 2001 From: Christian Nunciato Date: Wed, 19 Jun 2019 12:06:13 -0700 Subject: [PATCH 12/49] Learn-more partial Signed-off-by: Christian Nunciato --- layouts/page/about.html | 4 ++ layouts/partials/learnmore-contactus.html | 52 ++++++++++------------- layouts/partials/social.html | 2 +- 3 files changed, 28 insertions(+), 30 deletions(-) diff --git a/layouts/page/about.html b/layouts/page/about.html index f501239a2e69..26c6e61197f4 100644 --- a/layouts/page/about.html +++ b/layouts/page/about.html @@ -82,4 +82,8 @@

    Why Pulumi?

    {{ partial "contact-us.html" . }} + + {{ partial "social.html" . }} + + {{ partial "learnmore-contactus.html" . }} {{ end }} diff --git a/layouts/partials/learnmore-contactus.html b/layouts/partials/learnmore-contactus.html index 5a302a09ccad..d6a4a3c4b643 100644 --- a/layouts/partials/learnmore-contactus.html +++ b/layouts/partials/learnmore-contactus.html @@ -1,33 +1,27 @@ -
    -
    +
    {{/* Note: The "2006" is just how dates are formatted; it will be replaced with the current year. */}}

    © {{ now.Format "2006" }} Pulumi. All rights reserved.

    diff --git a/layouts/partials/header.html b/layouts/partials/header.html index 08972283ad98..6e11bd282fa0 100644 --- a/layouts/partials/header.html +++ b/layouts/partials/header.html @@ -11,12 +11,12 @@
    - -
    @@ -21,7 +21,7 @@

    Contact us

    Have questions about Pulumi? We're happy to help.

    - CONTACT US + Contact Us
    diff --git a/layouts/partials/test.html b/layouts/partials/test.html new file mode 100644 index 000000000000..ad2de46a42d1 --- /dev/null +++ b/layouts/partials/test.html @@ -0,0 +1,3 @@ +
    +    does this work?
    +
    diff --git a/layouts/product/github-actions.html b/layouts/product/github-actions.html index 3994f79f1757..5bee5e013eb0 100644 --- a/layouts/product/github-actions.html +++ b/layouts/product/github-actions.html @@ -9,10 +9,10 @@

    GitHub Actions with Pulumi

    applications and infrastructure.

    @@ -51,7 +51,7 @@

    Continuous Delivery

    @@ -104,7 +104,7 @@

    GitOps with Pulumi

    diff --git a/layouts/webinar/webinar.html b/layouts/webinar/webinar.html index 4fb3aaa00b09..f7eb2e2c0a62 100644 --- a/layouts/webinar/webinar.html +++ b/layouts/webinar/webinar.html @@ -33,7 +33,7 @@

    {{ .heading }}

    {{ .description | markdownify }}
    - + {{ .cta.label }}

    Join us to learn:

    From 4596435ccf07bd5b1f3c0e91c8e202d34f65a1c8 Mon Sep 17 00:00:00 2001 From: Christian Nunciato Date: Sun, 23 Jun 2019 14:36:14 -0700 Subject: [PATCH 36/49] Post-rebase adjustments Signed-off-by: Christian Nunciato --- assets/sass/styles.scss | 4 + content/blog/_index.md | 3 + content/docs/quickstart/_index.md | 3 - layouts/docs/home.html | 164 +++++++++----------- layouts/index.html | 2 +- layouts/partials/blog/sidebar.html | 31 ++-- layouts/partials/footer.html | 2 +- layouts/partials/get-started.html | 2 +- layouts/partials/head.html | 2 +- layouts/shortcodes/get-started-stepper.html | 2 +- 10 files changed, 107 insertions(+), 108 deletions(-) diff --git a/assets/sass/styles.scss b/assets/sass/styles.scss index 3ad489c9de91..9ab0b89e8f89 100644 --- a/assets/sass/styles.scss +++ b/assets/sass/styles.scss @@ -103,4 +103,8 @@ main { @apply text-blue-700; } +.transition-all { + @include transition(all); +} + @tailwind utilities; diff --git a/content/blog/_index.md b/content/blog/_index.md index 3774cc0b01c3..b76c05968fb0 100644 --- a/content/blog/_index.md +++ b/content/blog/_index.md @@ -3,4 +3,7 @@ title: Blog authors: [] tags: [] summary: "" +menu: + header: + weight: 5 --- diff --git a/content/docs/quickstart/_index.md b/content/docs/quickstart/_index.md index 71a2195d4b50..948131fccd1f 100644 --- a/content/docs/quickstart/_index.md +++ b/content/docs/quickstart/_index.md @@ -13,15 +13,12 @@ Get started provisioning infrastructure with Pulumi. }}"> AWS - }}"> Azure - }}"> Google Cloud - }}"> Kubernetes diff --git a/layouts/docs/home.html b/layouts/docs/home.html index 0c91a0f96be8..9ca9316ca4cf 100644 --- a/layouts/docs/home.html +++ b/layouts/docs/home.html @@ -1,118 +1,102 @@ {{ define "main" }} -
    - Pulumi logo -

    - Modern Infrastructure as Code -

    -

    - Create, deploy, and manage infrastructure on any cloud using your favorite language. -

    -

    - GET STARTED - REFERENCE -

    -
    - -
    - - - - -
    - -
    -
    -

    Why Pulumi?

    -

    - By using general purpose languages for infrastructure as code, - you get all the benefits of real languages -- IDEs, abstractions and - reuse thanks to functions, classes, and packages, debugging, testability, - and more. The result is far less copy and paste and greater productivity, - and it works the same way no matter which cloud you're targeting. +

    +
    + Pulumi logo +

    + Cloud Native Infrastructure as Code +

    +

    + Provision infrastructure on any cloud using your favorite language.

    -
    - -
    -
    - - -

    Containers

    -
    -

    - Deploy a Docker container to production in 5 minutes using your favorite orchestrator. +

    + GET STARTED + REFERENCE

    - - START NOW -
    -
    - - -

    Serverless

    -
    -

    - Stand up a serverless API or event handler in 5 minutes using a real lambda in code. -

    - - START NOW - + +
    + + + +
    -
    - - -

    Infrastructure

    -
    -

    - Manage cloud infrastructure or hosted services using infrastructure as code. -

    - - START NOW - + +
    +
    +

    Why Pulumi?

    +

    + By using general purpose languages for infrastructure as code, + you get all the benefits of real languages -- IDEs, abstractions and + reuse thanks to functions, classes, and packages, debugging, testability, + and more. The result is far less copy and paste and greater productivity, + and it works the same way no matter which cloud you're targeting. +

    +
    +
    +

    Alternatives

    +

    + Other approaches use YAML, JSON, or bespoke DSLs that you need to + master -- and convince your team to use. These "languages" fall short of + general purpose languages, lacking abstractions and reuse, and reinvent + familiar concepts like package managers. Worse, these solutions are usually + unique to every given cloud that you need to target. +

    +
    +
    +

    Community

    +

    + Pulumi's SDK is fully open source and extensible, enabling you to + participate in a rich ecosystem of libraries that ease common tasks, + ranging from containers to serverless to infrastructure, and everything + in between. Languages and clouds are supported using an extensible + plugin model, enabling public, private, and even hybrid cloud support. +

    +
    -
    -
    - - -

    Containers

    +
    +
    + + +

    Containers

    -

    +

    Deploy a Docker container to production in 5 minutes using your favorite orchestrator.

    - + Start Now
    -
    diff --git a/layouts/partials/blog/sidebar.html b/layouts/partials/blog/sidebar.html index ee12034b4045..f7a4a3432aef 100644 --- a/layouts/partials/blog/sidebar.html +++ b/layouts/partials/blog/sidebar.html @@ -1,21 +1,30 @@ -
    diff --git a/layouts/partials/head.html b/layouts/partials/head.html index 33e902821ddd..82db9b003b7b 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -84,7 +84,7 @@ {{ end }} diff --git a/layouts/shortcodes/get-started-stepper.html b/layouts/shortcodes/get-started-stepper.html index 451c53445394..f0364d27400d 100644 --- a/layouts/shortcodes/get-started-stepper.html +++ b/layouts/shortcodes/get-started-stepper.html @@ -32,7 +32,7 @@
    {{ if ne $step $first }} {{ $prev := index $pages (sub $step 1) }} - < PREVIOUS STEP + < PREVIOUS STEP {{ end }} {{ if ne $step $last }} {{ $next := index $pages (add $step 1) }} From a8adc7d1c11210fb446d1e210721144584587ea7 Mon Sep 17 00:00:00 2001 From: Christian Nunciato Date: Sun, 23 Jun 2019 18:08:50 -0700 Subject: [PATCH 37/49] Update data/newsroom.toml Co-Authored-By: Justin Van Patten --- data/newsroom.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/newsroom.toml b/data/newsroom.toml index 726e82168f93..6bf3003f6071 100644 --- a/data/newsroom.toml +++ b/data/newsroom.toml @@ -37,7 +37,7 @@ url = "http://www.eweek.com/cloud/pulumi-launches-team-edition-of-infrastructure [[coverage]] date = "22nd October 2018" title = "Pulumi Bridges The Gap Between Cloud-Native Development And Infrastructure As Code" -img = "https://www.pulumi.com/assets/logos/press/forbes.png" +img = "/logos/press/forbes.png" url = "https://www.forbes.com/sites/janakirammsv/2018/10/16/pulumi-bridges-the-gap-between-cloud-native-development-and-infrastructure-as-code/" [[coverage]] From bf3133ee7b77eb5e87a620073f18d49f15704648 Mon Sep 17 00:00:00 2001 From: Christian Nunciato Date: Sun, 23 Jun 2019 18:08:58 -0700 Subject: [PATCH 38/49] Update data/newsroom.toml Co-Authored-By: Justin Van Patten --- data/newsroom.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/newsroom.toml b/data/newsroom.toml index 6bf3003f6071..f330aee124e1 100644 --- a/data/newsroom.toml +++ b/data/newsroom.toml @@ -49,7 +49,7 @@ url = "https://www.geekwire.com/2018/pulumi-releases-software-development-kit-un [[coverage]] date = "19th June 2018" title = "Pulumi: Using Languages to Program Across Clouds." -img = "https://www.pulumi.com/assets/logos/press/newstack.png" +img = "/logos/press/newstack.png" url = "https://thenewstack.io/pulumi-using-languages-to-program-across-clouds/" [[coverage]] From 99a11bb257a6ebbcf6303fe229a257096198512b Mon Sep 17 00:00:00 2001 From: Christian Nunciato Date: Sun, 23 Jun 2019 18:09:41 -0700 Subject: [PATCH 39/49] Update data/newsroom.toml Co-Authored-By: Justin Van Patten --- data/newsroom.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/newsroom.toml b/data/newsroom.toml index f330aee124e1..a6c8f94dc8d7 100644 --- a/data/newsroom.toml +++ b/data/newsroom.toml @@ -55,7 +55,7 @@ url = "https://thenewstack.io/pulumi-using-languages-to-program-across-clouds/" [[coverage]] date = "18th June 2018" title = "Meet Pulumi, a Seattle-grown cloud startup that wants to be the development platform for the multicloud era." -img = "https://www.pulumi.com/assets/logos/press/geekwire.png" +img = "/logos/press/geekwire.png" url = "https://www.geekwire.com/2018/meet-pulumi-seattle-grown-cloud-startup-wants-development-platform-multicloud-era/" [[coverage]] From da187b680d08d1351175d2cd62fa4be8fdaab1f0 Mon Sep 17 00:00:00 2001 From: Christian Nunciato Date: Sun, 23 Jun 2019 18:15:49 -0700 Subject: [PATCH 40/49] Update data/newsroom.toml Co-Authored-By: Justin Van Patten --- data/newsroom.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/newsroom.toml b/data/newsroom.toml index a6c8f94dc8d7..e34f4adae027 100644 --- a/data/newsroom.toml +++ b/data/newsroom.toml @@ -61,5 +61,5 @@ url = "https://www.geekwire.com/2018/meet-pulumi-seattle-grown-cloud-startup-wan [[coverage]] date = "18th June 2018" title = "Pulumi wants to let you manage your infrastructure with code." -img = "https://www.pulumi.com/assets/logos/press/techcrunch.png" +img = "/logos/press/techcrunch.png" url = "https://techcrunch.com/2018/06/18/pulumi-wants-to-let-you-manage-your-infrastructure-with-code/" From 77075ba59b2c4e3c4a823d9573e5d01ca6247bf7 Mon Sep 17 00:00:00 2001 From: Christian Nunciato Date: Sun, 23 Jun 2019 18:21:36 -0700 Subject: [PATCH 41/49] Update data/newsroom.toml Co-Authored-By: Justin Van Patten --- data/newsroom.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/newsroom.toml b/data/newsroom.toml index e34f4adae027..e59c40cac638 100644 --- a/data/newsroom.toml +++ b/data/newsroom.toml @@ -43,7 +43,7 @@ url = "https://www.forbes.com/sites/janakirammsv/2018/10/16/pulumi-bridges-the-g [[coverage]] date = "12th September 2018" title = "Pulumi releases software-development kit to unlock the multicloud potential of Kubernetes" -img = "https://www.pulumi.com/assets/logos/press/geekwire.png" +img = "/logos/press/geekwire.png" url = "https://www.geekwire.com/2018/pulumi-releases-software-development-kit-unlock-multicloud-potential-kubernetes/" [[coverage]] From 521ccf54b6f7791c3f5a3f94a13fa92d11d95bf1 Mon Sep 17 00:00:00 2001 From: Christian Nunciato Date: Sun, 23 Jun 2019 18:36:20 -0700 Subject: [PATCH 42/49] Update layouts/partials/hubspot-form.html Co-Authored-By: Justin Van Patten --- layouts/partials/hubspot-form.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/layouts/partials/hubspot-form.html b/layouts/partials/hubspot-form.html index 470fc621d701..e8a6219d7fa6 100644 --- a/layouts/partials/hubspot-form.html +++ b/layouts/partials/hubspot-form.html @@ -1,4 +1,4 @@ - +