diff --git a/content/blog/2018-year-at-a-glance/index.md b/content/blog/2018-year-at-a-glance/index.md index a2f761d63cf9..78c35a253a5f 100644 --- a/content/blog/2018-year-at-a-glance/index.md +++ b/content/blog/2018-year-at-a-glance/index.md @@ -1,16 +1,15 @@ --- title: "2018 Year at a Glance" authors: ["joe-duffy"] -tags: ["Pulumi"] +tags: ["Pulumi-News"] date: "2018-12-31" - -summary: "It’s been an incredible year and as we close out 2018, I was reflecting on our progress here at Pulumi." --- As we close out 2018, and enter into a New Year, I was reflecting on our progress here at Pulumi this past year and wanted to share some thoughts. It’s been an incredible year and we are hugely thankful to our passionate community, customers, and partners. + Here are some of the exciting things that happened: diff --git a/content/blog/advanced-typescript-type-ftw/index.md b/content/blog/advanced-typescript-type-ftw/index.md index f367271c7fc7..f500b2d253eb 100644 --- a/content/blog/advanced-typescript-type-ftw/index.md +++ b/content/blog/advanced-typescript-type-ftw/index.md @@ -1,17 +1,16 @@ --- title: "Advanced TypeScript type FTW!" authors: ["cyrus-najmabadi"] -tags: ["Infrastructure-as-Code"] +tags: ["TypeScript"] date: "2018-09-19" -summary: "Exploring advanced types in TypeScript to simplify the Pulumi codebase, and making those types consumable. The typesystem magic behind -how this works for infrastructure as code can be fascinating!" meta_image: "RELATIVE_TO_PAGE/completion-list.png" --- We at Pulumi love TypeScript for cloud apps and infrastructure, because of its rich type system and great ahead-of-time typechecking – making for a more productive inner loop and helping to find errors sooner. The typesystem magic behind how this works for infrastructure as code can be fascinating! + A core part of the Pulumi [programming model]({{< ref "/docs/reference" >}}) is that we allow people to express complex [dependency data]({{< ref "/docs/reference/programming-model#outputs" >}}) that may _eventually_ be available. diff --git a/content/blog/announcing-per-user-pricing-and-unlimited-stacks-for-teams/index.md b/content/blog/announcing-per-user-pricing-and-unlimited-stacks-for-teams/index.md index f70aaf819576..e8079f07b267 100644 --- a/content/blog/announcing-per-user-pricing-and-unlimited-stacks-for-teams/index.md +++ b/content/blog/announcing-per-user-pricing-and-unlimited-stacks-for-teams/index.md @@ -1,14 +1,8 @@ --- title: "Announcing Per User Pricing and Unlimited Stacks for Teams" authors: ["joe-duffy"] -tags: ["Pulumi"] +tags: ["Customer"] date: "2019-04-19" - -summary: "Today we are announcing important changes -to better align our product and pricing with how we've heard you want to -use Pulumi in production. We're optimistic that these changes will help -companies of all sizes choose Pulumi, enabling their teams to deliver -cloud applications and infrastructure faster and more reliably." --- Since launching last year, thousands of users and hundreds of @@ -19,6 +13,7 @@ to better align our product and pricing with how we've heard you want to use Pulumi in production. We're optimistic that these changes will help companies of all sizes choose Pulumi, enabling their teams to deliver cloud applications and infrastructure faster and more reliably. + The net result is three paid editions: diff --git a/content/blog/announcing-pulumi-0.15-kubernetes-cicd-openstack-and-more/index.md b/content/blog/announcing-pulumi-0.15-kubernetes-cicd-openstack-and-more/index.md index 720495aea26a..abff05079373 100644 --- a/content/blog/announcing-pulumi-0.15-kubernetes-cicd-openstack-and-more/index.md +++ b/content/blog/announcing-pulumi-0.15-kubernetes-cicd-openstack-and-more/index.md @@ -2,7 +2,7 @@ title: "Announcing Pulumi 0.15: Kubernetes, CI/CD, OpenStack, and more" authors: ["luke-hoban"] tags: ["Pulumi", "New-Features", "CI/CD"] -date: "2018-08-05" +date: "2018-08-15" summary: "Pulumi can now deploy and manage Kubernetes resources using the same familiar programming model supported for AWS, Azure, and Google Cloud diff --git a/content/blog/announcing-support-for-email-based-identities/index.md b/content/blog/announcing-support-for-email-based-identities/index.md index 46639f9cd116..ab320d85689a 100644 --- a/content/blog/announcing-support-for-email-based-identities/index.md +++ b/content/blog/announcing-support-for-email-based-identities/index.md @@ -1,7 +1,7 @@ --- title: "Announcing Support for Email-based Identities" authors: ["praneet-loke"] -tags: ["New-Features"] +tags: ["Pulumi-News","Features"] date: "2019-03-21" summary: "Today, we are pleased to announce that we are launching support for email-based identities. You no longer need to use a social identity to sign-up for an account on Pulumi. Just fill out the signup form, and you are ready to go." diff --git a/content/blog/aws-cloudwatch-made-easy-with-pulumi-infrastructure-as-code/index.md b/content/blog/aws-cloudwatch-made-easy-with-pulumi-infrastructure-as-code/index.md index ed289b4bbe62..19243c0072ec 100644 --- a/content/blog/aws-cloudwatch-made-easy-with-pulumi-infrastructure-as-code/index.md +++ b/content/blog/aws-cloudwatch-made-easy-with-pulumi-infrastructure-as-code/index.md @@ -1,10 +1,9 @@ --- title: "AWS CloudWatch made easy with Pulumi Infrastructure-as-Code" authors: ["cyrus-najmabadi"] -tags: ["AWS", "Infrastructure-as-Code"] +tags: ["AWS","Logging"] date: "2019-06-14" -summary: "AWS CloudWatch made easy with Pulumi Infrastructure-as-Code." meta_image: "RELATIVE_TO_PAGE/dashboard.png" --- @@ -25,6 +24,7 @@ to get live visualization of what is happening in the cloud. Because this is vital to the health of the application, we think this should be something built in from the start, and not something added after the fact as an out of band artifact. + Let's see what that means in practice! I'm going to use a recent hackathon project I created where I built a [Slack bot](https://api.slack.com/bot-users) to notify me about all the diff --git a/content/blog/build-a-video-thumbnailer-with-pulumi-using-lambdas-containers-and-infrastructure-on-aws/index.md b/content/blog/build-a-video-thumbnailer-with-pulumi-using-lambdas-containers-and-infrastructure-on-aws/index.md index f007d1391c1e..9819faef2e05 100644 --- a/content/blog/build-a-video-thumbnailer-with-pulumi-using-lambdas-containers-and-infrastructure-on-aws/index.md +++ b/content/blog/build-a-video-thumbnailer-with-pulumi-using-lambdas-containers-and-infrastructure-on-aws/index.md @@ -1,10 +1,9 @@ --- title: "Build a Video Thumbnailer with Pulumi using Lambdas, Containers, and Infrastructure on AWS" authors: ["donna-malayeri"] -tags: ["AWS", "AWS/Lambda/Fargate"] +tags: ["JavaScript","Serverless","AWS","Containers","Infrastructure"] date: "2018-06-21" -summary: "Code a 'Colada' app using Containers, Lambdas, and Data Infrastructure using Pulumi in just 38 lines of code with Pulumi. Then deploy to AWS." meta_image: "RELATIVE_TO_PAGE/video-thumbnail-diagram.png" --- @@ -21,6 +20,7 @@ uploaded to S3. This function launches a task in Fargate that uses [FFmpeg](https://www.ffmpeg.org/) to extract a video thumbnail. A second Lambda function is triggered when a new thumbnail has been created.  + This post was inspired by a blog post from Serverless, Inc that shows how to combine [AWS Fargate and Lambda for a long-running diff --git a/content/blog/building-a-future-of-cloud-engineering/index.md b/content/blog/building-a-future-of-cloud-engineering/index.md index 2622bc1e65ed..8255819fb40c 100644 --- a/content/blog/building-a-future-of-cloud-engineering/index.md +++ b/content/blog/building-a-future-of-cloud-engineering/index.md @@ -1,10 +1,8 @@ --- title: "Building a future of cloud engineering" authors: ["joe-duffy"] -tags: ["Pulumi"] +tags: ["Pulumi-News"] date: "2018-10-22" - -summary: "We founded Pulumi because of a deeply held belief that the cloud has changed all aspects of software development. Today we are announcing that we’ve raised $15M in additional funding from our partners, Madrona Venture Group and Tola Capital, furthering our ability to reimagine cloud engineering." --- @@ -13,6 +11,7 @@ promises to change all aspects of software development and that there remains an incredible opportunity to reimagine the entire experience, from idea to creation to delivery to management, with one person in mind: you, the engineer. + Too often, we still think of the cloud as an afterthought, as though it were still 1998 with virtual machines and XML configuration. At Pulumi, diff --git a/content/blog/building-and-publishing-docker-images-to-a-private-amazon-ecr-repository/index.md b/content/blog/building-and-publishing-docker-images-to-a-private-amazon-ecr-repository/index.md index 3125d3f2201c..7b1622739f50 100644 --- a/content/blog/building-and-publishing-docker-images-to-a-private-amazon-ecr-repository/index.md +++ b/content/blog/building-and-publishing-docker-images-to-a-private-amazon-ecr-repository/index.md @@ -1,10 +1,8 @@ --- title: "Building and Publishing Docker Images to a Private Amazon ECR Repository" authors: ["cyrus-najmabadi"] -tags: ["Kubernetes", "Infrastructure-as-Code"] +tags: ["Kubernetes"] date: "2019-06-18" - -summary: "See how easy it is to build and publish Docker images to a private ECR repository on AWS, and consume them from ECS, Fargate, and EKS services." meta_image: "RELATIVE_TO_PAGE/pulumi-crosswalk-for-aws.webp" --- @@ -23,6 +21,7 @@ containers for your applications. In this article, we'll see how [Pulumi Crosswalk for AWS]({{< ref "/crosswalk/aws" >}}) lets you use infrastructure as code to easily build, publish, and pull from private ECR repositories. + ## A Simple ECS Fargate Service diff --git a/content/blog/building-new-pulumi-projects-and-stacks-from-templates/index.md b/content/blog/building-new-pulumi-projects-and-stacks-from-templates/index.md index c1627ada2740..3dd1a4c20311 100644 --- a/content/blog/building-new-pulumi-projects-and-stacks-from-templates/index.md +++ b/content/blog/building-new-pulumi-projects-and-stacks-from-templates/index.md @@ -1,10 +1,9 @@ --- title: "Building new Pulumi projects and stacks from templates" authors: ["marc-holmes"] -tags: ["New-Features"] +tags: ["Features"] date: "2018-10-01" -summary: "We've made it a whole lot easier to get started with Pulumi with a New Project wizard to initialize new projects and stacks for JavaScript, TypeScript, Python and Go, on AWS, Azure, GCP, Kubernetes, and OpenStack." meta_image: "RELATIVE_TO_PAGE/new-project-ui-1.gif" --- @@ -15,7 +14,7 @@ cloud even faster than before. In this post, we'll look at how to use `pulumi new` and our [selection of templates](https://github.com/pulumi/templates) to build your Pulumi -app. There is template support for: +app. There is template support for: - AWS, Microsoft Azure, Google Cloud, Kubernetes, and OpenStack in each of... diff --git a/content/blog/building-your-first-serverless-app-using-only-javascript/index.md b/content/blog/building-your-first-serverless-app-using-only-javascript/index.md index a7cf588d6d7f..5138c852e364 100644 --- a/content/blog/building-your-first-serverless-app-using-only-javascript/index.md +++ b/content/blog/building-your-first-serverless-app-using-only-javascript/index.md @@ -1,7 +1,7 @@ --- title: "Build your first serverless app using only JavaScript" authors: ["marc-holmes"] -tags: ["AWS", "AWS/Lambda/Fargate"] +tags: ["Serverless"] date: "2018-07-05" summary: "In this tutorial, we'll use Pulumi to build a complete serverless application using JavaScript." diff --git a/content/blog/cd-made-easy-with-pulumi-and-azure-pipelines/index.md b/content/blog/cd-made-easy-with-pulumi-and-azure-pipelines/index.md index 1fadf8d66e04..57fb9e47dbd1 100644 --- a/content/blog/cd-made-easy-with-pulumi-and-azure-pipelines/index.md +++ b/content/blog/cd-made-easy-with-pulumi-and-azure-pipelines/index.md @@ -4,8 +4,6 @@ authors: ["praneet-loke"] tags: ["Azure", "CI/CD", "New-Features"] date: "2019-05-06" -summary: "Announcing a new open-source extension to Azure Pipelines! -Use the Pulumi task in your Azure Pipelines build/release definitions without the need for custom scripts." meta_image: "RELATIVE_TO_PAGE/add-pulumi.png" --- diff --git a/content/blog/cloud-native-infrastructure-with-kubernetes-and-pulumi/index.md b/content/blog/cloud-native-infrastructure-with-kubernetes-and-pulumi/index.md index 2aa63406982a..fc781ed27777 100644 --- a/content/blog/cloud-native-infrastructure-with-kubernetes-and-pulumi/index.md +++ b/content/blog/cloud-native-infrastructure-with-kubernetes-and-pulumi/index.md @@ -4,7 +4,6 @@ authors: ["joe-duffy"] tags: ["Kubernetes"] date: "2018-09-12" -summary: "Announcing Pulumi for Kubernetes, a way to create, deploy, and manage Kubernetes applications using your favorite programming languages, bringing the same lovable experience that works across AWS, Azure, Google Cloud, OpenStack, and other clouds, now to Kubernetes and cloud native architectures." meta_image: "RELATIVE_TO_PAGE/diff.gif" --- @@ -19,6 +18,7 @@ scenarios, and are excited to share what we've been up to. You can [dive right in here]({{< ref "/docs/quickstart/kubernetes" >}}) and look at some [powerful things Pulumi enables here]({{< relref "program-kubernetes-with-11-cloud-native-pulumi-pearls" >}}). + ## Why Pulumi? diff --git a/content/blog/code-deploy-and-manage-a-serverless-rest-api-on-aws-with-pulumi/index.md b/content/blog/code-deploy-and-manage-a-serverless-rest-api-on-aws-with-pulumi/index.md index 4c6899ecfbbd..be759c17b39a 100644 --- a/content/blog/code-deploy-and-manage-a-serverless-rest-api-on-aws-with-pulumi/index.md +++ b/content/blog/code-deploy-and-manage-a-serverless-rest-api-on-aws-with-pulumi/index.md @@ -1,14 +1,13 @@ --- title: "Code, Deploy, and Manage a Serverless REST API on AWS with Pulumi" authors: ["donna-malayeri"] -tags: ["AWS/Lambda/Fargate"] +tags: ["JavaScript","Serverless","AWS"] date: "2018-06-22" -summary: "In this blog post, we'll use Pulumi to create a simple serverless REST API that counts the number of times a route has been hit, using JavaScript to define both the infrastructure and application code." +summary: "In this post, we'll use Pulumi to create a simple serverless REST API that counts the number of times a route has been hit, using JavaScript to define both the infrastructure and application code." meta_image: "RELATIVE_TO_PAGE/counter-arch.png" --- - Pulumi makes it easy to build serverless applications and connect to other cloud resources. In this blog post, we'll create a simple REST API that counts the number of times a route diff --git a/content/blog/connecting-multiple-identities-to-pulumi/index.md b/content/blog/connecting-multiple-identities-to-pulumi/index.md index a997818daad5..82b0712adc8c 100644 --- a/content/blog/connecting-multiple-identities-to-pulumi/index.md +++ b/content/blog/connecting-multiple-identities-to-pulumi/index.md @@ -1,10 +1,9 @@ --- title: "Connecting multiple identities to Pulumi" authors: ["praneet-loke"] -tags: ["New-Features"] +tags: ["CI/CD"] date: "2018-12-14" -summary: "Pulumi now supports connecting multiple identities. For example, a single Pulumi ID can be connected to GitHub and GitLab." meta_image: "RELATIVE_TO_PAGE/multi-id.gif" --- @@ -16,6 +15,7 @@ account in the Pulumi Cloud Console. Previously, you could only sign-up for a new Pulumi account using a GitHub or GitLab identity. Starting today, you can connect your Pulumi account with additional identities, beyond what you first signed-up with. + For example, if you signed-in to Pulumi with your GitHub account, you could only add GitHub organizations to the Pulumi Service, or diff --git a/content/blog/continuous-delivery-to-any-cloud-using-github-actions-and-pulumi/index.md b/content/blog/continuous-delivery-to-any-cloud-using-github-actions-and-pulumi/index.md index 274f2b4dfa26..032f6aed0dea 100644 --- a/content/blog/continuous-delivery-to-any-cloud-using-github-actions-and-pulumi/index.md +++ b/content/blog/continuous-delivery-to-any-cloud-using-github-actions-and-pulumi/index.md @@ -1,14 +1,12 @@ --- title: "Continuous Delivery to Any Cloud using GitHub Actions and Pulumi" authors: ["joe-duffy"] -tags: ["Pulumi", "New-Features", "CI/CD"] +tags: ["Pulumi-News", "New-Features", "CI/CD"] date: "2018-10-17" -summary: "Pulumi has partnered with GitHub on the new GitHub Actions feature. In this post we'll see how Pulumi plus GitHub Actions delivers the easiest way to achieve continuous delivery of cloud applications and infrastructure, no matter your cloud – AWS, Azure, Google Cloud, Kubernetes, or on-premises." meta_image: "RELATIVE_TO_PAGE/gh-actions-prs.png" --- - Today we announced our partnership with GitHub on the [new GitHub Actions feature](https://github.com/features/actions). We are super excited about this bold and innovative technology, especially as it @@ -18,6 +16,7 @@ friction-free way to achieve continuous delivery of cloud applications and infrastructure, no matter your cloud -- AWS, Azure, Google Cloud, Kubernetes, or even on-premises. In this post, we'll dig deeper to see why, and how to get up and running. It's refreshingly easy! + ## GitHub Actions + Pulumi == ❤️ diff --git a/content/blog/continuous-delivery-with-gitlab-and-pulumi-on-amazon-eks/index.md b/content/blog/continuous-delivery-with-gitlab-and-pulumi-on-amazon-eks/index.md index 124723a90d0b..ce028c74ddd4 100644 --- a/content/blog/continuous-delivery-with-gitlab-and-pulumi-on-amazon-eks/index.md +++ b/content/blog/continuous-delivery-with-gitlab-and-pulumi-on-amazon-eks/index.md @@ -1,12 +1,9 @@ --- title: "Continuous Delivery with GitLab and Pulumi on Amazon EKS" authors: ["nishi-davidson"] -tags: ["AWS", "Kubernetes", "CI/CD"] +tags: ["AWS","Kubernetes","CI/CD"] date: "2019-05-22" -summary: "we will work through an example that shows how to use -Pulumi to enable GitLab-based continuous delivery with your Kubernetes -workloads on Amazon EKS" meta_image: "RELATIVE_TO_PAGE/post-image.png" --- @@ -15,6 +12,7 @@ continuous delivery with your Kubernetes workloads on Amazon EKS. This integrati as seamlessly for any Kubernetes cluster, including Azure AKS or Google GKE, using the relevant Pulumi libraries for [Azure](https://github.com/pulumi/pulumi-azure) and [GCP](https://github.com/pulumi/pulumi-gcp). + ## Prerequisites diff --git a/content/blog/create-aks-clusters-with-monitoring-and-logging-with-pulumi-azure-open-source-sdks/index.md b/content/blog/create-aks-clusters-with-monitoring-and-logging-with-pulumi-azure-open-source-sdks/index.md index 2c2df461dce2..a467155d2f18 100644 --- a/content/blog/create-aks-clusters-with-monitoring-and-logging-with-pulumi-azure-open-source-sdks/index.md +++ b/content/blog/create-aks-clusters-with-monitoring-and-logging-with-pulumi-azure-open-source-sdks/index.md @@ -1,10 +1,9 @@ --- title: "Create AKS Clusters with monitoring and logging using Pulumi-Azure open source SDKs" authors: ["nishi-davidson"] -tags: ["Kubernetes", "Azure"] +tags: ["Kubernetes","Azure"] date: "2019-05-08" -summary: "In this post, we walk you through creating an AKS cluster, and a Log Analytics workspace for the cluster using Pulumi." meta_image: "RELATIVE_TO_PAGE/hero.png" --- @@ -13,6 +12,7 @@ Service (AKS) clusters with AD service principals tied to the cluster. Monitoring and logging can also be enabled by default in simple steps with Pulumi for core AKS components. This article will show you how to write this as a simple example using Pulumi SDKs. + ## Prerequisites diff --git a/content/blog/create-secure-jupyter-notebooks-on-kubernetes-using-pulumi/index.md b/content/blog/create-secure-jupyter-notebooks-on-kubernetes-using-pulumi/index.md index 5be71a70b577..f409f3f115db 100644 --- a/content/blog/create-secure-jupyter-notebooks-on-kubernetes-using-pulumi/index.md +++ b/content/blog/create-secure-jupyter-notebooks-on-kubernetes-using-pulumi/index.md @@ -1,11 +1,9 @@ --- title: "Create Secure Jupyter Notebooks on Kubernetes using Pulumi" authors: ["nishi-davidson"] -tags: ["Kubernetes", "GCP"] +tags: ["Kubernetes","Applications","GKE","Jupyter"] date: "2019-05-30" -summary: "In this post, we will work through an example that shows how to use Pulumi to create -Jupyter Notebooks on Kubernetes." meta_image: "RELATIVE_TO_PAGE/post-image-jupyter.png" --- @@ -19,6 +17,7 @@ jump out that may resonate with you as well: - The security patterns in Helm and Tiller are no longer concerns, rather you get to focus on the RBAC of the actual service which is Jupyter-notebook in this example. - You accomplish more with less YAML and iteratively work towards your use cases. + ## Prerequisites diff --git a/content/blog/creating-and-reusing-cloud-components-using-package-managers/index.md b/content/blog/creating-and-reusing-cloud-components-using-package-managers/index.md index fb312b8f3f2f..f067df617fbf 100644 --- a/content/blog/creating-and-reusing-cloud-components-using-package-managers/index.md +++ b/content/blog/creating-and-reusing-cloud-components-using-package-managers/index.md @@ -1,11 +1,9 @@ --- title: "Creating and Reusing Cloud Components using Package Managers" authors: ["chris-smith"] -tags: ["CI/CD"] +tags: ["Infrastructure", "CI/CD"] date: "2018-08-09" -summary: "This post walks through how to create reusable components, so you can -package Pulumi infrastructure as code as reusable packages with NPM, PyPi etc." meta_image: "RELATIVE_TO_PAGE/pulumi-resource-visualization.png" --- @@ -18,6 +16,7 @@ shame, however if I needed to copy and paste that code every time I wanted to to stand up a new website. Instead, we can package up, share, and reuse our code just like any other Node.js library. It just so happens that this one can be used to create cloud infrastructure. + ## Creating a Package diff --git a/content/blog/data-science-on-demand-spinning-up-a-wallaroo-cluster-is-easy-with-pulumi/index.md b/content/blog/data-science-on-demand-spinning-up-a-wallaroo-cluster-is-easy-with-pulumi/index.md index 8ed573947736..315365e9532c 100644 --- a/content/blog/data-science-on-demand-spinning-up-a-wallaroo-cluster-is-easy-with-pulumi/index.md +++ b/content/blog/data-science-on-demand-spinning-up-a-wallaroo-cluster-is-easy-with-pulumi/index.md @@ -1,10 +1,9 @@ --- title: "Data science on demand: spinning up a Wallaroo cluster is easy with Pulumi" authors: ["marc-holmes", "simon-zelazny"] -tags: ["Infrastructure-as-Code"] +tags: ["Infrastructure","Customer"] date: "2018-11-02" -summary: "This guest post is from Simon Zelazny of Wallaroo Labs. Find out how Wallaroo powered their analytics cluster provisioning with Pulumi, for data science on demand." meta_image: "RELATIVE_TO_PAGE/tty-fast.gif" --- @@ -37,6 +36,7 @@ dataframes, and distribute them among workers in an ad-hoc Wallaroo cluster, running on one physical machine. Parallelizing the work in this manner buys us a lot of time, and the batch job can continue processing increasing amounts of data. + Sure, we can handle a million rows in reasonable time, but what if the data set grows by orders of magnitude? By running our classifier on a diff --git a/content/blog/delivering-cloud-native-infrastructure-as-code-a-pulumi-white-paper/index.md b/content/blog/delivering-cloud-native-infrastructure-as-code-a-pulumi-white-paper/index.md index 11c1901e4e30..1a961660da22 100644 --- a/content/blog/delivering-cloud-native-infrastructure-as-code-a-pulumi-white-paper/index.md +++ b/content/blog/delivering-cloud-native-infrastructure-as-code-a-pulumi-white-paper/index.md @@ -1,7 +1,7 @@ --- title: "Delivering Cloud Native Infrastructure as Code, a Pulumi white paper" authors: ["marc-holmes"] -tags: ["Infrastructure-as-Code"] +tags: ["Cloud-Native"] date: "2018-12-05" summary: "In our latest white paper, Delivering Cloud Native Infrastructure as Code, we we make the case for a consistent programming model for the cloud." diff --git a/content/blog/deploying-production-ready-containers-with-pulumi/index.md b/content/blog/deploying-production-ready-containers-with-pulumi/index.md index dab153e8bc0e..f69cbd7f2514 100644 --- a/content/blog/deploying-production-ready-containers-with-pulumi/index.md +++ b/content/blog/deploying-production-ready-containers-with-pulumi/index.md @@ -1,10 +1,9 @@ --- title: "Deploying production-ready containers with Pulumi" authors: ["donna-malayeri"] -tags: ["AWS/Lambda/Fargate"] +tags: ["JavaScript","AWS","Containers"] date: "2018-06-20" -summary: "In this blog post we will use Pulumi to deploy a simple Docker container running NGINX onto AWS Fargate handling details such as creating a container registry instance in ECR, creating task definitions in ECS, and configuring a load balancer." meta_image: "RELATIVE_TO_PAGE/hello-world-page.png" --- diff --git a/content/blog/easily-create-and-manage-aws-eks-kubernetes-clusters-with-pulumi/index.md b/content/blog/easily-create-and-manage-aws-eks-kubernetes-clusters-with-pulumi/index.md index 1804679053d5..3e1d074c9e8b 100644 --- a/content/blog/easily-create-and-manage-aws-eks-kubernetes-clusters-with-pulumi/index.md +++ b/content/blog/easily-create-and-manage-aws-eks-kubernetes-clusters-with-pulumi/index.md @@ -1,10 +1,9 @@ --- title: "Easily Create and Manage AWS EKS Kubernetes Clusters with Pulumi" authors: ["luke-hoban"] -tags: ["Kubernetes", "AWS", "Infrastructure-as-Code"] +tags: ["AWS","Kubernetes"] date: "2019-01-24" -summary: "Provisioning, managing, and monitoring a Kubernetes cluster is no easy task. AWS EKS and Pulumi to the rescue!" meta_image: "RELATIVE_TO_PAGE/easy-eks.png" --- @@ -30,6 +29,7 @@ From here, there are two ways to proceed: - Provision a new cluster with a single CLI command - Use infrastructure as code to manage clusters ... including Kubernetes resources themselves! + ## Installing Amazon EKS with Pulumi diff --git a/content/blog/easy-serverless-apps-and-infrastructure-real-events-real-code/index.md b/content/blog/easy-serverless-apps-and-infrastructure-real-events-real-code/index.md index 4dee207b6bc1..9aa294181c49 100644 --- a/content/blog/easy-serverless-apps-and-infrastructure-real-events-real-code/index.md +++ b/content/blog/easy-serverless-apps-and-infrastructure-real-events-real-code/index.md @@ -1,10 +1,9 @@ --- title: "Easy Serverless Apps and Infrastructure — Real Events, Real Code" authors: ["joe-duffy"] -tags: ["AWS", "Infrastructure-as-Code"] +tags: ["JavaScript","Serverless","AWS"] date: "2019-03-11" -summary: "Program the cloud by creating a serverless app and its infrastructure, using real event handlers, and real code. The way serverless should be!" meta_image: "RELATIVE_TO_PAGE/hero.png" --- @@ -21,6 +20,7 @@ In this article, we'll see how. There's a broad range of options depending on what you want to do, and how your team likes to operate. We'll be using AWS and TypeScript, but other clouds and languages are available. + ## A Simple Serverless App diff --git a/content/blog/from-terraform-to-infrastructure-as-software/index.md b/content/blog/from-terraform-to-infrastructure-as-software/index.md index 3ae9e36f6ada..a0d6b595435f 100644 --- a/content/blog/from-terraform-to-infrastructure-as-software/index.md +++ b/content/blog/from-terraform-to-infrastructure-as-software/index.md @@ -1,11 +1,9 @@ --- title: "From Terraform to Infrastructure as Software" authors: ["pat-gavlin"] -tags: ["Terraform-Migration"] +tags: ["JavaScript","Infrastructure","TypeScript"] date: "2018-11-02" -summary: "Learn how general purpose languages enable simpler, more flexible infrastructure as code. -In this article we will convert existing Terraform configuration to Pulumi TypeScript." meta_image: "RELATIVE_TO_PAGE/tf-to-pulumi.png" --- @@ -29,6 +27,7 @@ The infrastructure we'll be working with describes a load-balanced web server hosted by an AWS EC2 instance per availability zone with an option to allow SSH access. Of course, these same benefits would also accrue were we to target Azure, Google Cloud, or Kubernetes instead. + ## Starting from Terraform Configuration diff --git a/content/blog/get-started-with-docker-on-aws-fargate-using-pulumi/index.md b/content/blog/get-started-with-docker-on-aws-fargate-using-pulumi/index.md index 99678fde6d8f..5fecb76682cb 100644 --- a/content/blog/get-started-with-docker-on-aws-fargate-using-pulumi/index.md +++ b/content/blog/get-started-with-docker-on-aws-fargate-using-pulumi/index.md @@ -1,10 +1,9 @@ --- title: "Get Started with Docker on AWS Fargate using Pulumi" authors: ["joe-duffy"] -tags: ["AWS", "Infrastructure-as-Code", "AWS/Lambda/Fargate"] +tags: ["JavaScript","AWS","Containers","Infrastructure","TypeScript"] date: "2019-04-30" -summary: "Build and publish a Docker image to a private registry and spin up an AWS Fargate service, with just 28 lines of Node.js and a single `pulumi up` command." meta_image: "RELATIVE_TO_PAGE/docker-fargate-history.png" --- @@ -20,6 +19,7 @@ balanced service running that container, all in 28 lines of TypeScript code and a single `pulumi up` command. The result leverages the best of what AWS has to offer, with the entire platform at your fingertips, with a single approach. In this article, we'll see how. + ## Defining Everything in Code diff --git a/content/blog/getting-to-chatops-with-pulumi-webhooks/index.md b/content/blog/getting-to-chatops-with-pulumi-webhooks/index.md index 5f3f40ecee67..5fd4a44f3144 100644 --- a/content/blog/getting-to-chatops-with-pulumi-webhooks/index.md +++ b/content/blog/getting-to-chatops-with-pulumi-webhooks/index.md @@ -1,10 +1,9 @@ --- title: "Getting to ChatOps with Pulumi Webhooks" authors: ["chris-smith"] -tags: ["New-Features", "CI/CD"] +tags: ["CI/CD", "New-Features"] date: "2019-01-23" -summary: "Announcing the availability of Webhooks on Pulumi. Get notified as stacks and teams are updated and connect Pulumi to your own notifications systems." meta_image: "RELATIVE_TO_PAGE/pulumi-webhooks.png" --- @@ -19,6 +18,7 @@ cloud native infrastructure. Pulumi Webhooks are available for the Team and Enterprise editions of Pulumi. If you're keen to try them out, start a trial of [Team Edition here](https://app.pulumi.com/site/organizations/add). + ChatOps --- the idea of conversation-driven collaboration --- is an increasingly common pattern, and as such we've gotten a lot of requests diff --git a/content/blog/happy-birthday-to-pulumi-open-source/index.md b/content/blog/happy-birthday-to-pulumi-open-source/index.md index b77b78d247f4..ca51c8226c58 100644 --- a/content/blog/happy-birthday-to-pulumi-open-source/index.md +++ b/content/blog/happy-birthday-to-pulumi-open-source/index.md @@ -1,10 +1,9 @@ --- title: "Happy Birthday to Pulumi open source!" authors: ["joe-duffy"] -tags: ["Pulumi"] +tags: ["Pulumi-News"] date: "2019-06-18" -summary: "One year ago today we open sourced Pulumi, a new approach to multi-cloud infrastructure as code. And what a year it has been! Let's review it at a glance." meta_image: "RELATIVE_TO_PAGE/pulumi-birthday.png" --- @@ -13,6 +12,7 @@ One year ago today -- on June 18, 2018 -- [we open sourced Pulumi]({{< relref "introducing-pulumi-a-cloud-development-platform" >}}), a new approach to multi-cloud infrastructure as code using your favorite languages. And what a year it has been! + Here are some highlights we've added in partnership with the community since launching: diff --git a/content/blog/how-do-kubernetes-deployments-work-an-adversarial-perspective/index.md b/content/blog/how-do-kubernetes-deployments-work-an-adversarial-perspective/index.md index a8f1460a4444..fdea4ec5dcda 100644 --- a/content/blog/how-do-kubernetes-deployments-work-an-adversarial-perspective/index.md +++ b/content/blog/how-do-kubernetes-deployments-work-an-adversarial-perspective/index.md @@ -1,10 +1,9 @@ --- title: "How do Kubernetes Deployments work? An adversarial perspective" authors: ["alex-clemmer"] -tags: ["Kubernetes", "Infrastructure-as-Code"] +tags: ["Kubernetes"] date: "2018-10-03" -summary: "What is happening when a Deployment rolls out a change to your app? Deployment is probably the most complex resource type in Kubernetes core. In this post we continue our exploration of the Kubernetes API, cracking Deployment open using kubespy to observe Kubernetes resources in real-time." meta_image: "RELATIVE_TO_PAGE/deployment-rollout.gif" --- @@ -27,6 +26,7 @@ in a cluster. In this post we continue our exploration of the Kubernetes API, cracking `Deployment` open using `kubespy`, a small tool we developed to observe Kubernetes resources in real-time. + Using `kubespy trace`, for example, we can observe at a high level what happens when `Deployment` rolls out a new version of an application: diff --git a/content/blog/how-to-deploy-jenkins-to-kubernetes-with-pulumi/index.md b/content/blog/how-to-deploy-jenkins-to-kubernetes-with-pulumi/index.md index e0ec0ea17c9d..3921b1a335cc 100644 --- a/content/blog/how-to-deploy-jenkins-to-kubernetes-with-pulumi/index.md +++ b/content/blog/how-to-deploy-jenkins-to-kubernetes-with-pulumi/index.md @@ -1,10 +1,9 @@ --- title: "How to deploy Jenkins to Kubernetes with Pulumi" authors: ["sean-gillespie"] -tags: ["Infrastructure-as-Code", "CI/CD"] +tags: ["Kubernetes"] date: "2018-06-27" -summary: "Making a reusable component with Pulumi to run a Jenkins cluster on Kubernetes." --- In this blog post, we'll see how to run @@ -12,6 +11,7 @@ In this blog post, we'll see how to run We abstract away the complexity of the configuration into a reusable component to enable it to be reused by team mates. Our example is based on adapting a Helm template. + ## Reusing the Jenkins component diff --git a/content/blog/how-we-use-pulumi-to-build-pulumi/index.md b/content/blog/how-we-use-pulumi-to-build-pulumi/index.md index 9e82a1eeaa35..e189ac0b4fdc 100644 --- a/content/blog/how-we-use-pulumi-to-build-pulumi/index.md +++ b/content/blog/how-we-use-pulumi-to-build-pulumi/index.md @@ -1,11 +1,9 @@ --- title: "How we use Pulumi to build Pulumi" authors: ["luke-hoban"] -tags: ["Infrastructure-as-Code"] +tags: ["Serverless","AWS","Containers","Infrastructure"] date: "2018-06-26" -summary: "Here at Pulumi we are (perhaps unsurprisingly!) huge fans of using -Pulumi to manage our cloud infrastructure and services. In this post, we describe how we use Pulumi to build and run Pulumi." meta_image: "RELATIVE_TO_PAGE/image-4.png" --- @@ -42,6 +40,7 @@ In this post, we'll do a deeper dive into each of these use cases, highlighting unique aspects of how we use Pulumi itself, and some of our engineering processes around how we integrate Pulumi into the rest of our toolchain. + ## Infrastructure diff --git a/content/blog/if-you-liked-ksonnet-youll-love-pulumi/index.md b/content/blog/if-you-liked-ksonnet-youll-love-pulumi/index.md index 042f1d80d2a7..2e2064cdf5ac 100644 --- a/content/blog/if-you-liked-ksonnet-youll-love-pulumi/index.md +++ b/content/blog/if-you-liked-ksonnet-youll-love-pulumi/index.md @@ -1,14 +1,12 @@ --- title: "If you liked ksonnet, you'll love Pulumi!" authors: ["mike-metral"] -tags: ["Kubernetes", "Infrastructure-as-Code"] +tags: ["Kubernetes","Cloud-Native"] date: "2019-02-13" -summary: "We’re sad to see ksonnet winding down, but are thankful for the collaborative exchange of ideas between projects, and are excited to see continued investment in VMWare/Heptio’s other projects. The good news is that, if you liked ksonnet, we’re confident that you’ll love Pulumi. In this post, we'll tell you why." meta_image: "RELATIVE_TO_PAGE/kube-update.gif" --- - The Kubernetes landscape is constantly evolving as end users and developers search for the right tools, approaches, and abstractions to help them manage Cloud Native infrastructure in production. Last Friday, @@ -27,6 +25,7 @@ ideas between projects, and are excited to see continued investment in VMWare/Heptio's other projects. The good news is that, if you liked ksonnet, we're confident that you'll love Pulumi. In this post, we'll tell you why. + ![Kubernetes + Pulumi](./hero.png) diff --git a/content/blog/improving-kubernetes-management-with-pulumis-await-logic/index.md b/content/blog/improving-kubernetes-management-with-pulumis-await-logic/index.md index 89b858132553..0f045a9a66f2 100644 --- a/content/blog/improving-kubernetes-management-with-pulumis-await-logic/index.md +++ b/content/blog/improving-kubernetes-management-with-pulumis-await-logic/index.md @@ -1,10 +1,9 @@ --- title: "Improving Kubernetes Management with Pulumi's Await Logic" authors: ["levi-blackstone"] -tags: ["Kubernetes", "Infrastructure-as-Code"] -date: "2019-03-06" +tags: ["Kubernetes"] +date: "2019-03-05" -summary: "In this blog post, we discuss await logic, which allows users to have better visibility into the state of Kubernetes resources as they are being deployed or created. We added the ability to customize await logic for user-selected Kubernetes resources." meta_image: "RELATIVE_TO_PAGE/status-rich.gif" --- @@ -23,6 +22,7 @@ for the full expressive power of a general purpose language. In this blog post, we discuss "await logic", which allows users to have better visibility into the state of Kubernetes resources as they are being deployed or created. + We've [**previously talked about**]({{< relref "kubespy-and-the-lifecycle-of-a-kubernetes-pod-in-four-images" >}}) diff --git a/content/blog/introducing-pulumi-a-cloud-development-platform/index.md b/content/blog/introducing-pulumi-a-cloud-development-platform/index.md index da20a4afea4b..f947edf55b10 100644 --- a/content/blog/introducing-pulumi-a-cloud-development-platform/index.md +++ b/content/blog/introducing-pulumi-a-cloud-development-platform/index.md @@ -1,7 +1,7 @@ --- title: "Introducing Pulumi, a Cloud Development Platform" authors: ["joe-duffy"] -tags: ["Pulumi"] +tags: ["Pulumi-News"] date: "2018-06-18" summary: "Ahoy! Today we are thrilled to be announcing the launch of Pulumi, the Cloud Development Platform." diff --git a/content/blog/introducing-pulumi-crosswalk-for-aws-the-easiest-way-to-aws/index.md b/content/blog/introducing-pulumi-crosswalk-for-aws-the-easiest-way-to-aws/index.md index 6e77024c1b71..ed6f719a0432 100644 --- a/content/blog/introducing-pulumi-crosswalk-for-aws-the-easiest-way-to-aws/index.md +++ b/content/blog/introducing-pulumi-crosswalk-for-aws-the-easiest-way-to-aws/index.md @@ -1,14 +1,12 @@ --- -title: "Pulumi Crosswalk for AWS is the easiest way to AWS. Infrastructure as code with built-in productivity and best practices." +title: "Introducing Pulumi Crosswalk for AWS: The Easiest Way to AWS" authors: ["luke-hoban"] -tags: ["New-Features", "Pulumi", "Kubernetes", "AWS", "AWS/Lambda/Fargate"] +tags: ["Serverless","AWS","Containers","Pulumi-News","Kubernetes","EKS","Lambda","APIGateway","Docker"] date: "2019-06-10" -summary: "Pulumi Crosswalk for AWS is the easiest way to AWS. Infrastructure as code with built-in productivity and best practices." meta_image: "RELATIVE_TO_PAGE/crosswalk-for-aws.png" --- - Amazon Web Services provides an incredible platform for developers to build cloud-native applications, and is used by millions of customers of all sizes. The building block services that AWS offers enable teams to @@ -26,6 +24,7 @@ new open source library of infrastructure-as-code components that make it easier to get from zero to production on AWS, easier to adopt AWS best practices by default, and easier to evolve your AWS infrastructure as your application needs mature. + ![Pulumi Crosswalk for AWS](./crosswalk-for-aws.png) diff --git a/content/blog/kubespy-and-the-lifecycle-of-a-kubernetes-pod-in-four-images/index.md b/content/blog/kubespy-and-the-lifecycle-of-a-kubernetes-pod-in-four-images/index.md index a87b6ac67cbc..92676ddbbceb 100644 --- a/content/blog/kubespy-and-the-lifecycle-of-a-kubernetes-pod-in-four-images/index.md +++ b/content/blog/kubespy-and-the-lifecycle-of-a-kubernetes-pod-in-four-images/index.md @@ -1,10 +1,9 @@ --- title: "Kubespy, and the lifecycle of a Pod, in 4 images" authors: ["alex-clemmer"] -tags: ["Kubernetes", "Infrastructure-as-Code"] -date: "2018-08-18" +tags: ["Kubernetes"] +date: "2018-09-18" -summary: "Introducing a small tool, kubespy, that is purpose-built to help you answer questions about the lifecycle of a Pod in Kubernetes by displaying the changes made to a Kubernetes object in real time." meta_image: "RELATIVE_TO_PAGE/1-created.png" --- @@ -34,6 +33,7 @@ purpose-built to help you answer questions like this, by displaying the changes made to a Kubernetes object in real time. For example, in the following gif, we're running `kubespy status v1 Pod nginx` to watch the changes to a `Pod`'s status as it is booted up. + We will spend the rest of this short post using `kubespy` to take a closer look at what happens to a `Pod` when it's deployed to the diff --git a/content/blog/kubespy-trace-a-real-time-view-into-the-heart-of-a-kubernetes-service/index.md b/content/blog/kubespy-trace-a-real-time-view-into-the-heart-of-a-kubernetes-service/index.md index 2f27ee9a42e5..83ed552afd4e 100644 --- a/content/blog/kubespy-trace-a-real-time-view-into-the-heart-of-a-kubernetes-service/index.md +++ b/content/blog/kubespy-trace-a-real-time-view-into-the-heart-of-a-kubernetes-service/index.md @@ -1,10 +1,9 @@ --- title: "kubespy trace: a real-time view into the heart of a Kubernetes Service" authors: ["alex-clemmer"] -tags: ["Kubernetes", "Infrastructure-as-Code"] -date: "2018-08-26" +tags: ["Kubernetes"] +date: "2018-09-26" -summary: "In this post we'll look at the new kubespy trace command, to answer questions on whether pods and services in a kubernetes cluster are alive, running, and configured to receive traffic. kubespy provides introspection capabilities for Kubernetes." meta_image: "RELATIVE_TO_PAGE/trace-success-create-svc.gif" --- @@ -43,6 +42,7 @@ To help answer questions like this, we've been developing a small diagnostic tool, `kubespy`. In this post we'll look at the new `kubespy trace` command, which is broadly aimed at automating questions 1, 2, 3, and providing "hints" about 4 and 5. + Below is a gif demonstrating the CLI experience. You can watch in real-time as the `Service` comes online, finds pods to target, and diff --git a/content/blog/lambdas-as-lambdas-the-magic-of-simple-serverless-functions/index.md b/content/blog/lambdas-as-lambdas-the-magic-of-simple-serverless-functions/index.md index c5a148f10419..e900dfeff5eb 100644 --- a/content/blog/lambdas-as-lambdas-the-magic-of-simple-serverless-functions/index.md +++ b/content/blog/lambdas-as-lambdas-the-magic-of-simple-serverless-functions/index.md @@ -1,10 +1,9 @@ --- title: "Lambdas as Lambdas: The magic of simple serverless Functions" authors: ["cyrus-najmabadi"] -tags: ["AWS/Lambda/Fargate", "Infrastructure-as-Code"] +tags: ["Serverless","TypeScript"] date: "2018-10-10" -summary: "In this post, we look at how we enable Pulumi to build and deploy serverless functions in AWS, Azure, or GCP using lambda functions in JavaScript and TypeScript." meta_image: "RELATIVE_TO_PAGE/closure.png" --- @@ -28,6 +27,7 @@ environment variables should be present, etc.) -- and writing and maintaining the code that will execute *in* the function itself when triggered. Most developers just want to focus on the latter, write some code, and have it work. + For [AWS Lambda](https://aws.amazon.com/lambda/), for example, the code itself needs to written and packaged up with all its dependencies into a diff --git a/content/blog/level-up-your-azure-platform-as-a-service-applications-with-pulumi/index.md b/content/blog/level-up-your-azure-platform-as-a-service-applications-with-pulumi/index.md index bb535d9299ba..a085e883d3d3 100644 --- a/content/blog/level-up-your-azure-platform-as-a-service-applications-with-pulumi/index.md +++ b/content/blog/level-up-your-azure-platform-as-a-service-applications-with-pulumi/index.md @@ -1,10 +1,9 @@ --- title: "Level up your Azure Platform as a Service applications with Pulumi" authors: ["mikhail-shilkov"] -tags: ["Infrastructure-as-Code", "Azure"] +tags: ["Infrastructure","Azure"] date: "2019-05-06" -summary: "Leverage Pulumi for continuous delivery of code and infrastructure to Azure PaaS. An ASP.NET Core application running on App Service and DevOps pipelines." meta_image: "RELATIVE_TO_PAGE/app-insights.png" --- @@ -49,6 +48,7 @@ Nonetheless, PaaS services pose different challenges to application developers. In particular, the usage of multiple cloud services demands an investment in infrastructure automation. That's where Pulumi comes to the rescue. + ## A Sample Application diff --git a/content/blog/managing-f5-big-ip-systems-with-pulumi/index.md b/content/blog/managing-f5-big-ip-systems-with-pulumi/index.md index efdaa56e07f0..3102a38cbb3d 100644 --- a/content/blog/managing-f5-big-ip-systems-with-pulumi/index.md +++ b/content/blog/managing-f5-big-ip-systems-with-pulumi/index.md @@ -1,13 +1,10 @@ --- title: "Managing F5 BIG-IP Systems with Pulumi" authors: ["cameron-stokes"] -tags: ["New-Features", "Pulumi"] +tags: ["Infrastructure","Cloud-Native"] date: "2019-02-07" - -summary: "The Pulumi ecosystem is continuously growing and today we're excited to announce the F5 BIG-IP Pulumi provider." --- - The [Pulumi](/) ecosystem is continuously growing and today we're excited to announce the F5 BIG-IP provider for Pulumi. @@ -22,6 +19,7 @@ heard from our customers for both on-premises and Cloud workloads. Let's look at some examples to demonstrate what's capable with this provider and the power and flexibility that Pulumi brings to working with your F5 BIG-IP systems. + ## Simple Load Balancing diff --git a/content/blog/managing-github-webhooks-with-pulumi/index.md b/content/blog/managing-github-webhooks-with-pulumi/index.md index bbda63674afd..2469148b36f6 100644 --- a/content/blog/managing-github-webhooks-with-pulumi/index.md +++ b/content/blog/managing-github-webhooks-with-pulumi/index.md @@ -1,14 +1,10 @@ --- title: "Managing GitHub Webhooks with Pulumi" authors: ["matt-ellis"] -tags: ["Infrastructure-as-Code"] -date: "2018-07-08" - -summary: "At Pulumi, we use GitHub for a lot of our development workflow, which can be -streamlined using Pulumi! This post takes a detailed look at automating GitHub using webhooks and serverless functions with Pulumi." +tags: ["Serverless"] +date: "2018-07-13" --- - At Pulumi, we do all of our development on GitHub, with a workflow built around topic branches. When a developer wants to make a change, they push a branch to GitHub, open a pull request and (in theory) once it's @@ -26,6 +22,7 @@ programming languages to build abstractions, which means we can build a simple framework that hides much of the ceremony behind defining a hook and lets us focus on the core logic of our hook, without worrying about how it is deployed and managed. + ## A simple hook diff --git a/content/blog/managing-secrets-with-pulumi/index.md b/content/blog/managing-secrets-with-pulumi/index.md index afe2f37d061e..aee5dcde6817 100644 --- a/content/blog/managing-secrets-with-pulumi/index.md +++ b/content/blog/managing-secrets-with-pulumi/index.md @@ -1,10 +1,9 @@ --- title: "Managing Secrets with Pulumi" authors: ["matt-ellis"] -tags: ["Infrastructure-as-Code", "New-Features"] +tags: ["Features","Security"] date: "2019-05-17" -summary: "We recently added two new features that provide you with complete control over how secrets are managed within Pulumi deployments." --- We've had a 1st class concept of encrypted secrets configuration ever @@ -30,6 +29,7 @@ secrets are managed within Pulumi deployments. We have worked with customers with advanced security and compliance needs while developing this feature, enabling them to use our online hosted SaaS with even greater confidence. + ## Secrets and State diff --git a/content/blog/managing-your-mysql-databases-with-pulumi/index.md b/content/blog/managing-your-mysql-databases-with-pulumi/index.md index 50981609bdad..c3bb9f907092 100644 --- a/content/blog/managing-your-mysql-databases-with-pulumi/index.md +++ b/content/blog/managing-your-mysql-databases-with-pulumi/index.md @@ -1,11 +1,9 @@ --- title: "Managing your MySQL databases with Pulumi" authors: ["linio-engineering"] -tags: ["Infrastructure-as-Code", "New-Features"] +tags: ["Applications","MySQL"] date: "2019-05-28" -summary: "Pulumi has a new MySQL resource provider, and in this post we'll walk through -a quick tutorial on how to use it to manage existing or create new MySQL dDatabases." meta_image: "RELATIVE_TO_PAGE/hero.png" --- @@ -20,6 +18,7 @@ instances themselves to manage permissions, create databases, and other common t In this post, we’ll walk through a quick tutorial of how to use this new [Pulumi MySQL provider]({{< ref "/docs/reference/pkg/nodejs/pulumi/mysql" >}}) to manage existing and new MySQL databases. + ##Setup diff --git a/content/blog/mapbox-iot-as-code-with-pulumi-crosswalk-for-aws/index.md b/content/blog/mapbox-iot-as-code-with-pulumi-crosswalk-for-aws/index.md index b60f6b775f94..4816b061ec52 100644 --- a/content/blog/mapbox-iot-as-code-with-pulumi-crosswalk-for-aws/index.md +++ b/content/blog/mapbox-iot-as-code-with-pulumi-crosswalk-for-aws/index.md @@ -1,14 +1,12 @@ --- title: "Mapbox IOT-as-code with Pulumi Crosswalk for AWS" authors: ["chris-toomey"] -tags: ["Infrastructure-as-Code", "AWS"] +tags: ["JavaScript","Serverless","AWS","Infrastructure","Customer"] date: "2019-06-12" -summary: "Mapbox IOT-as-Code Solution with Pulumi Crosswalk for AWS" meta_image: "RELATIVE_TO_PAGE/aws-architecture-iot.png" --- - **Guest Author: Chris Toomey, Solution Architect Lead @ Mapbox** With 8 billion+ connected IoT devices and 2 billion GPS-equipped @@ -35,6 +33,7 @@ recorded on June 13th 2019 and the Mapbox [whitepaper](https://www.mapbox.com/use-cases/asset-tracking/solutions-white-paper/). Also refer to this blog of the [Race across America](https://blog.mapbox.com/team-haase-partners-with-mapbox-for-2019-race-across-america-bid-7803a3bdbe49) showcased live during the webinar tomorrow. + **Prerequisites:** [Install Pulumi]({{< ref "/install" >}}); [Install Node.js version 8 or later](https://nodejs.org/en/download/) and diff --git a/content/blog/meet-the-pulumi-team-at-aws-reinvent/index.md b/content/blog/meet-the-pulumi-team-at-aws-reinvent/index.md index 79cb674d202e..85a9a1c6c3ec 100644 --- a/content/blog/meet-the-pulumi-team-at-aws-reinvent/index.md +++ b/content/blog/meet-the-pulumi-team-at-aws-reinvent/index.md @@ -1,13 +1,10 @@ --- title: "Meet the Pulumi team at AWS re:Invent" authors: ["marc-holmes"] -tags: ["Pulumi"] +tags: ["Pulumi-News"] date: "2018-11-15" - -summary: "Pulumi will be at AWS re:Invent this year, at Booth 316, Startup Central, Aria Quad. Come talk to us about serverless, containers, kubernetes, and any other cloud native infrastructure as code." --- - Heading to AWS re:Invent? Concerned about how you'll manage to get [that much YAML]({{< ref "/cloudformation" >}}) into your carry on bag? Or maybe you just like purple. @@ -26,3 +23,4 @@ programming languages. We can even help you If you want to grab a specific time to talk through your needs, [then use this link](https://info.pulumi.com/meetings/team-pulumi/aws-reinvent-catchup), otherwise we'll just see you at the booth! + \ No newline at end of file diff --git a/content/blog/program-kubernetes-with-11-cloud-native-pulumi-pearls/index.md b/content/blog/program-kubernetes-with-11-cloud-native-pulumi-pearls/index.md index 02ab19ed2e27..97c76c55bde8 100644 --- a/content/blog/program-kubernetes-with-11-cloud-native-pulumi-pearls/index.md +++ b/content/blog/program-kubernetes-with-11-cloud-native-pulumi-pearls/index.md @@ -1,11 +1,9 @@ --- title: "Program Kubernetes with 11 Pulumi Pearls" authors: ["joe-duffy"] -tags: ["Infrastructure-as-Code", "Kubernetes", "Pulumi"] +tags: ["Kubernetes"] date: "2018-09-12" -summary: "In this post, we’ll take a look at 11 “pearls” – bite-sized code snippets – that demonstrate using Pulumi to build and deploy Kubernetes -applications using cloud native infrastructure as code." meta_image: "RELATIVE_TO_PAGE/health-checks.gif" --- @@ -23,6 +21,7 @@ organized into three categories, each demonstrating a unique scenario: delivery of your Kubernetes deployments -- including canaries, staged rollouts, leveraging cloud native projects like Envoy and Prometheus -- authored in real code. + Here is a complete index of the pearls below, in case you want to jump around a little: diff --git a/content/blog/program-the-cloud-with-12-pulumi-pearls/index.md b/content/blog/program-the-cloud-with-12-pulumi-pearls/index.md index 2682de247de6..3628e12c4067 100644 --- a/content/blog/program-the-cloud-with-12-pulumi-pearls/index.md +++ b/content/blog/program-the-cloud-with-12-pulumi-pearls/index.md @@ -1,10 +1,9 @@ --- title: "Program the Cloud with 12 Pulumi Pearls" authors: ["joe-duffy"] -tags: ["Pulumi", "Infrastructure-as-Code"] -date: "2019-06-01" +tags: ["Serverless","AWS","Containers","Infrastructure","TypeScript"] +date: "2018-07-25" -summary: "Program the cloud using Pulumi with multi-cloud and cloud-specific containers, serverless, and infrastructure. See why using real languages is great for infrastructure-as-code in addition to building modern cloud applications." --- In this post, we'll look at 12 "pearls" -- bite-sized code snippets -- diff --git a/content/blog/programming-the-cloud-with-python/index.md b/content/blog/programming-the-cloud-with-python/index.md index dd5e67578eef..4fcac8fed73f 100644 --- a/content/blog/programming-the-cloud-with-python/index.md +++ b/content/blog/programming-the-cloud-with-python/index.md @@ -1,7 +1,7 @@ --- title: "Programming the Cloud with Python" authors: ["sean-gillespie"] -tags: ["Infrastructure-as-Code"] +tags: ["Serverless","AWS","Python"] date: "2019-04-04" summary: "Python is awesome for automating manual tasks. So let's use it for cloud infrastructure as code!" diff --git a/content/blog/protecting-your-apis-with-lambda-authorizers-and-pulumi/index.md b/content/blog/protecting-your-apis-with-lambda-authorizers-and-pulumi/index.md index 75d096d81656..d20ff188f125 100644 --- a/content/blog/protecting-your-apis-with-lambda-authorizers-and-pulumi/index.md +++ b/content/blog/protecting-your-apis-with-lambda-authorizers-and-pulumi/index.md @@ -1,11 +1,9 @@ --- title: "Protecting Your APIs with Lambda Authorizers and Pulumi" authors: ["erin-krengel"] -tags: ["Infrastructure-as-Code", "AWS/Lambda/Fargate", "New-Features"] -date: "2019-04-04" +tags: ["Serverless","AWS","Lambda","Auth","APIGateway"] +date: "2019-04-24" -summary: "Pulumi’s new AWSX package allows you to quickly define a Lambda and an AWS Lambda authorizer to protect it. -In this post, we will use Auth0 to authorize users making requests to AWS Lambda." meta_image: "RELATIVE_TO_PAGE/lambda-authorizer.jpg" --- @@ -26,6 +24,7 @@ and Pulumi. We will simplify implementing the OAuth protocol by using users. Auth0 provides a universal authentication and authorization platform for applications. It has become an extremely popular platform for user management because Auth0 makes OAuth easy. + ## Concepts diff --git a/content/blog/provisioning-and-managing-cloud-infrastructure-with-pulumi/index.md b/content/blog/provisioning-and-managing-cloud-infrastructure-with-pulumi/index.md index 6b6204656ca0..74e2e1e98f7e 100644 --- a/content/blog/provisioning-and-managing-cloud-infrastructure-with-pulumi/index.md +++ b/content/blog/provisioning-and-managing-cloud-infrastructure-with-pulumi/index.md @@ -1,11 +1,9 @@ --- title: "Provisioning and managing cloud infrastructure with Pulumi" authors: ["donna-malayeri"] -tags: ["Infrastructure-as-Code"] +tags: ["JavaScript","AWS","Infrastructure"] date: "2018-07-20" -summary: "Pulumi provides a powerful too to create, update, and manage resources on any cloud provider. -This post will detail how to provision and manage any cloud infrastructure resource with Pulumi and AWS, Azure, and GCP." --- If you've been following the blog, you know that Pulumi is great for @@ -13,6 +11,7 @@ building [serverless applications]({{< relref "code-deploy-and-manage-a-serverle [container-based applications]({{< relref "deploying-production-ready-containers-with-pulumi" >}}), and a [combination of the two]({{< relref "build-a-video-thumbnailer-with-pulumi-using-lambdas-containers-and-infrastructure-on-aws" >}}). But, did you know that you can manage any cloud resource in AWS, Azure, or Google Cloud Platform? + You can use the [@pulumi/aws]({{< ref "/docs/reference/pkg/nodejs/pulumi/aws" >}}), diff --git a/content/blog/pulumi-a-better-way-to-kubernetes/index.md b/content/blog/pulumi-a-better-way-to-kubernetes/index.md index fdfca89e44fd..d9b11d29b75a 100644 --- a/content/blog/pulumi-a-better-way-to-kubernetes/index.md +++ b/content/blog/pulumi-a-better-way-to-kubernetes/index.md @@ -1,10 +1,9 @@ --- title: "Pulumi: A Better Way to Kubernetes" authors: ["levi-blackstone"] -tags: ["Kubernetes", "Infrastructure-as-Code"] +tags: ["Kubernetes"] date: "2019-05-21" -summary: "See how Pulumi can help you tame common Kubernetes challenges and make it more accessible, using familiar languages and your favorite tools. It’s simply a better way to work with Kubernetes!" meta_image: "RELATIVE_TO_PAGE/helm-deploy-using-pulumi.gif" --- @@ -21,6 +20,7 @@ In this post, we will see how [Pulumi](/) can help you tame these issues and make Kubernetes more accessible, using familiar languages and your favorite tools. It's simply [Kubernetes made easy]({{< relref "/kubernetes" >}})! + ## Clusters as code diff --git a/content/blog/pulumi-and-docker-development-to-production/index.md b/content/blog/pulumi-and-docker-development-to-production/index.md index 90c7e2a17829..19d2d19edb93 100644 --- a/content/blog/pulumi-and-docker-development-to-production/index.md +++ b/content/blog/pulumi-and-docker-development-to-production/index.md @@ -1,10 +1,9 @@ --- title: "Pulumi and Docker: Development to Production" authors: ["sean-gillespie"] -tags: ["Infrastructure-as-Code"] +tags: ["Containers","Kubernetes","Docker"] date: "2019-05-15" -summary: "Pulumi makes it easy to deploy your Docker containers to production. Learn how to re-use your infrastructure code for both development and production." --- Here at Pulumi, we're big fans of Docker: at this point there is little @@ -19,6 +18,7 @@ We recently wrote a blog post about In this blog post we're going to focus on another interesting aspect of Pulumi: being able to re-use your infrastructure code for both development and production! + ## It's All Code: Composing Docker Containers diff --git a/content/blog/pulumi-and-epsagon-define-deploy-and-monitor-serverless-applications/index.md b/content/blog/pulumi-and-epsagon-define-deploy-and-monitor-serverless-applications/index.md index 3a5fa5b4cf45..877947eeecab 100644 --- a/content/blog/pulumi-and-epsagon-define-deploy-and-monitor-serverless-applications/index.md +++ b/content/blog/pulumi-and-epsagon-define-deploy-and-monitor-serverless-applications/index.md @@ -1,11 +1,9 @@ --- title: "Pulumi + Epsagon: Define, Deploy and Monitor Serverless Applications" authors: ["luke-hoban"] -tags: ["Infrastructure-as-Code"] -date: "2018-11-28" +tags: ["Serverless"] +date: "2018-11-29" -summary: "Once you have deployed an application to the cloud, the next step is to -monitor and track its health. In this post, we see how we can integrate Pulumi and Epsagon to define, deploy, and monitor serverless applications." meta_image: "RELATIVE_TO_PAGE/espagon-console-2.png" --- @@ -20,6 +18,7 @@ By making it so easy to introduce serverless functions into cloud infrastructure, Pulumi programs often incorporate many Lambdas, all wired together as part of a larger set of infrastructure and application code. + [Epsagon is a serverless monitoring solution](https://epsagon.com/) that lets users observe entire serverless applications composed of many diff --git a/content/blog/pulumi-heart-google-cloud-platform/index.md b/content/blog/pulumi-heart-google-cloud-platform/index.md index 1c89932973a9..2ace08b605c0 100644 --- a/content/blog/pulumi-heart-google-cloud-platform/index.md +++ b/content/blog/pulumi-heart-google-cloud-platform/index.md @@ -1,11 +1,9 @@ --- title: "Pulumi ❤️ Google Cloud Platform" authors: ["luke-hoban"] -tags: ["GCP", "CI/CD", "Kubernetes"] +tags: ["Serverless","Kubernetes","Features","CI/CD","GCP"] date: "2019-04-09" -summary: "Pulumi helps you to take maximum advantage of Google Cloud Platform's full breadth of -infrastructure and applications capabilities, in your language of choice. In this article, see how." meta_image: "RELATIVE_TO_PAGE/pulumi_console.png" --- @@ -22,6 +20,7 @@ a combined platform that makes it easy to collaborate, share, and reuse. In this post, we'll highlight some of the top features of Pulumi that make it a joy to work with Pulumi + Google Cloud. + ## Infrastructure as Code for the Full Google Cloud Platform diff --git a/content/blog/pulumi-now-supports-atlassian-identity/index.md b/content/blog/pulumi-now-supports-atlassian-identity/index.md index 9ccb5dc492e4..ce154a0e17d6 100644 --- a/content/blog/pulumi-now-supports-atlassian-identity/index.md +++ b/content/blog/pulumi-now-supports-atlassian-identity/index.md @@ -1,10 +1,9 @@ --- title: "Pulumi now supports Atlassian Identity" authors: ["praneet-loke"] -tags: ["New-Features"] +tags: ["Features","CI/CD"] date: "2019-01-30" -summary: "Pulumi now supports Atlassian Identity for authentication and team collaboration. Find out more in this post." meta_image: "RELATIVE_TO_PAGE/atlassian-1.png" --- @@ -24,6 +23,7 @@ seamlessly import their GitHub Organizations and GitLab Groups - and now Atlassian Bitbucket Teams - into a single Pulumi account. Of course, you don't *need* to connect identities. You can always create separate account for each of your identities, if that's what you want to do. + ## Creating a new Pulumi account using your Atlassian identity diff --git a/content/blog/reusable-cicd-components-with-circleci-orbs-for-pulumi/index.md b/content/blog/reusable-cicd-components-with-circleci-orbs-for-pulumi/index.md index d96efdae326e..4d8f34954afa 100644 --- a/content/blog/reusable-cicd-components-with-circleci-orbs-for-pulumi/index.md +++ b/content/blog/reusable-cicd-components-with-circleci-orbs-for-pulumi/index.md @@ -1,11 +1,9 @@ --- title: "Reusable CI/CD components with CircleCI Orbs for Pulumi" authors: ["chris-smith"] -tags: ["CI/CD", "New-Features"] +tags: ["CI/CD"] date: "2018-11-07" -summary: "CircleCI's Orbs provide a way to create reusable components for your CI/CD workflows. And with -CircleCI Orbs for Pulumi, that extends to your cloud resources too." meta_image: "RELATIVE_TO_PAGE/circleci-ui.png" --- @@ -22,6 +20,7 @@ Pulumi is proud to be a [CircleCI technology partner](https://circleci.com/partn head start on seeing how orbs could make it easier to take Pulumi into production within CircleCI. The [Pulumi Orbs for CircleCI](https://circleci.com/orbs/registry/orb/pulumi/pulumi) are available *today* for you to start using. + ## Pulumi Orbs diff --git a/content/blog/running-a-serverles-nodejs-http-server-on-aws-and-azure/index.md b/content/blog/running-a-serverles-nodejs-http-server-on-aws-and-azure/index.md index 578214983e89..d83b9c038cd4 100644 --- a/content/blog/running-a-serverles-nodejs-http-server-on-aws-and-azure/index.md +++ b/content/blog/running-a-serverles-nodejs-http-server-on-aws-and-azure/index.md @@ -1,10 +1,9 @@ --- title: "Running a Serverless Node.js HTTP Server on AWS and Azure" authors: ["cyrus-najmabadi"] -tags: ["AWS/Lambda/Fargate", "Infrastructure-as-Code"] +tags: ["Serverless"] date: "2018-10-02" -summary: "The newly introduced `cloud.HttpServer` in Pulumi makes it easy to serve a standard Node.js HTTP server as a serverless API on any cloud platform. In this post, we walk through some of the background on why we introduced this new API and how it fits into the Node.js HTTP ecosystem." --- The newly @@ -16,6 +15,7 @@ operational simplicity of serverless APIs, and the multi-cloud authoring and deployment of Pulumi.  In this post, we walk through some of the background on why we introduced this new API and how it fits into the Node.js HTTP ecosystem. + Almost 10 years ago, [Node.js](https://nodejs.org) was introduced, helping to usher in an era of server-side JavaScript development. From diff --git a/content/blog/running-containers-in-aws-the-lowdown-ecs-fargate-and-eks/index.md b/content/blog/running-containers-in-aws-the-lowdown-ecs-fargate-and-eks/index.md index 32a2ea95f5b0..eb981cb21a06 100644 --- a/content/blog/running-containers-in-aws-the-lowdown-ecs-fargate-and-eks/index.md +++ b/content/blog/running-containers-in-aws-the-lowdown-ecs-fargate-and-eks/index.md @@ -1,10 +1,9 @@ --- title: "Running Containers in AWS, the Lowdown: ECS, Fargate, and EKS" authors: ["joe-duffy"] -tags: ["AWS", "Kubernetes"] +tags: ["AWS","Containers","Kubernetes","EKS"] date: "2019-06-20" -summary: "We often help customers deploy containers to AWS. Choosing between ECS, Fargate, and EKS isn't always easy -- let's explore the options." meta_image: "RELATIVE_TO_PAGE/pulumi-crosswalk-for-aws.webp" --- @@ -16,6 +15,7 @@ instances, and Elastic Kubernetes Service (EKS), delivering the full power of Kubernetes. It's not always easy to choose between these, so in this article we provide some basic guidance on the tradeoffs you'll encounter when choosing. + ## The Options diff --git a/content/blog/serverless-as-simple-callbacks-with-pulumi-and-azure-functions/index.md b/content/blog/serverless-as-simple-callbacks-with-pulumi-and-azure-functions/index.md index d0ef616950ad..ff2e414eefff 100644 --- a/content/blog/serverless-as-simple-callbacks-with-pulumi-and-azure-functions/index.md +++ b/content/blog/serverless-as-simple-callbacks-with-pulumi-and-azure-functions/index.md @@ -1,10 +1,9 @@ --- title: "Serverless as Simple Callbacks with Pulumi and Azure Functions" authors: ["mikhail-shilkov"] -tags: [Azure/ACS, "Azure"] +tags: ["Serverless","Azure"] date: "2019-05-07" -summary: "The simplest way to take a Node.js function and deploy it to Azure cloud as an HTTP endpoint using Pulumi." --- _Today's guest post is from [Mikhail Shilkov](https://mikhail.io/), a @@ -14,6 +13,7 @@ Serverless compute services, like Azure Functions, offer an amazing power to application developers to leverage: highly available, automatically scaled, low-ceremony, pay-per-value functions created in several lines of code. + So, what's **the simplest** way to take a Node.js function and deploy it to Azure cloud as an HTTP endpoint? How about this little tutorial: diff --git a/content/blog/serverless-on-aws-with-pulumi-simple-event-based-functions/index.md b/content/blog/serverless-on-aws-with-pulumi-simple-event-based-functions/index.md index 1cc9c275c28f..dcadf9dd2a2f 100644 --- a/content/blog/serverless-on-aws-with-pulumi-simple-event-based-functions/index.md +++ b/content/blog/serverless-on-aws-with-pulumi-simple-event-based-functions/index.md @@ -1,10 +1,9 @@ --- title: "Serverless on AWS with Pulumi: simple, event-based functions" authors: ["cyrus-najmabadi"] -tags: ["AWS/Lambda/Fargate"] +tags: ["JavaScript","Serverless","AWS"] date: "2019-01-14" -summary: "How to make serverless programming on AWS simple with Pulumi using the regular programming languages." --- One of Pulumi's goals is to provide the simplest way possible to do @@ -20,7 +19,7 @@ we focused on how Pulumi could allow you to simply create an AWS Lambda out of your own JavaScript function. While this was much easier than having to manually create a [Lambda Deployment Package](https://docs.aws.amazon.com/lambda/latest/dg/nodejs-create-deployment-pkg.html) yourself, it could still be overly complex to integrate these Lambdas -into complete serverless application. To get a sense of that complexity, +into complete serverless application. To get a sense of that complexity, let's look at how one would normally have to work with AWS's resource system to create a simple Serverless application: diff --git a/content/blog/serving-a-static-website-on-aws-with-pulumi/index.md b/content/blog/serving-a-static-website-on-aws-with-pulumi/index.md index 4dcd5b56c81a..ec28ed1b76f7 100644 --- a/content/blog/serving-a-static-website-on-aws-with-pulumi/index.md +++ b/content/blog/serving-a-static-website-on-aws-with-pulumi/index.md @@ -1,11 +1,9 @@ --- title: "Serving a Static Website on AWS with Pulumi" authors: ["chris-smith"] -tags: ["AWS"] +tags: ["AWS","Infrastructure","TypeScript"] date: "2018-07-17" -summary: "This post covers using Pulumi to create the infrastructure for serving a static website on -AWS including the fun parts such as HTTPS certificates, content distribution networks, and attaching it to a custom domain." --- Hello! This post covers using [Pulumi](/) to create the @@ -26,6 +24,7 @@ This isn't a hypothetical benefit of using the Pulumi programming model. We use a setup similar to the one described in this post for powering our own static websites, like [www.pulumi.com](http://www.pulumi.com/) and [get.pulumi.com](http://get.pulumi.com). + ## Overview diff --git a/content/blog/simple-reproducible-kubernetes-deployments/index.md b/content/blog/simple-reproducible-kubernetes-deployments/index.md index 66bcdecdcbf1..a5c1a18558ef 100644 --- a/content/blog/simple-reproducible-kubernetes-deployments/index.md +++ b/content/blog/simple-reproducible-kubernetes-deployments/index.md @@ -1,10 +1,9 @@ --- title: "Simple, Reproducible Kubernetes Deployments" authors: ["alex-clemmer"] -tags: ["Kubernetes", "Infrastructure-as-Code"] +tags: ["Infrastructure","Kubernetes","TypeScript"] date: "2018-08-24" -summary: "In this post, we’ll see how Pulumi, an open source cloud native development platform, lets you express Kubernetes programs in real programming languages, like TypeScript, instead of endless YAML templates, in addition to delivering simple and reproducible, yet powerful Kubernetes, deployment workflows." meta_image: "RELATIVE_TO_PAGE/diff.gif" --- @@ -21,6 +20,7 @@ development platform, can not only let you express Kubernetes programs in real programming languages, like TypeScript, instead of endless YAML templates, but also how Pulumi delivers simple and reproducible, yet powerful, Kubernetes deployment workflows. + ## Less YAML, More Robustness diff --git a/content/blog/simple-serverless-programming-with-google-cloud-functions-and-pulumi/index.md b/content/blog/simple-serverless-programming-with-google-cloud-functions-and-pulumi/index.md index 1643f0174b90..48549a90325c 100644 --- a/content/blog/simple-serverless-programming-with-google-cloud-functions-and-pulumi/index.md +++ b/content/blog/simple-serverless-programming-with-google-cloud-functions-and-pulumi/index.md @@ -1,12 +1,9 @@ --- title: "Simple Serverless programming with Google Cloud Functions and Pulumi" authors: ["cyrus-najmabadi"] -tags: ["GCP/Knative/Cloud Functions", "GCP"] +tags: ["Serverless","GCP"] date: "2019-04-10" -summary: "Serverless has never been simpler than it is with Pulumi + Google Cloud Functions. In just -a few lines of code, you can serve a simple HTTP API, respond to a pubsub topic or uploads of new -objects to a storage bucket, and more. Learn how to fit these together to make a real-world cloud application." --- Pulumi lets you create, deploy, and manage Google Cloud applications and @@ -16,6 +13,7 @@ solutions. This means great productivity and getting to use tools you already know and love. Since serverless is all about focusing more on your application code, and less on infrastructure and configuration toil, we absolutely love Google Functions. + ## The Simplest Way to Serverlesss diff --git a/content/blog/simplified-outputs-in-pulumi-0.17.0/index.md b/content/blog/simplified-outputs-in-pulumi-0.17.0/index.md index a7d89ecf9054..d7ee0fd13f32 100644 --- a/content/blog/simplified-outputs-in-pulumi-0.17.0/index.md +++ b/content/blog/simplified-outputs-in-pulumi-0.17.0/index.md @@ -2,7 +2,7 @@ title: "Simplified Outputs in Pulumi 0.17" authors: ["cyrus-najmabadi"] tags: ["New-Features"] -date: "2019-03-17" +date: "2019-03-19" summary: "Based on much feedback from cloud developers, Pulumi Outputs have been simplified for JavaScript and TypeScript making the user experience simpler while maintaining the rich dependency tracking and type checking that Pulumi has always provided for cloud infrastructure." meta_image: "RELATIVE_TO_PAGE/comp-list.png" diff --git a/content/blog/simplify-kubernetes-rbac-in-amazon-eks-with-open-source-pulumi-packages/index.md b/content/blog/simplify-kubernetes-rbac-in-amazon-eks-with-open-source-pulumi-packages/index.md index 0fcfd1f83db1..a40331146a94 100644 --- a/content/blog/simplify-kubernetes-rbac-in-amazon-eks-with-open-source-pulumi-packages/index.md +++ b/content/blog/simplify-kubernetes-rbac-in-amazon-eks-with-open-source-pulumi-packages/index.md @@ -1,10 +1,9 @@ --- title: "Simplify Kubernetes RBAC in Amazon EKS with open source Pulumi packages" authors: ["nishi-davidson"] -tags: ["Kubernetes", "AWS", "Infrastructure-as-Code"] +tags: ["AWS","Kubernetes","TypeScript","EKS"] date: "2019-04-24" -summary: "RBAC on Kubernetes is hard! In this post, we explore how Pulumi simplifies RBAC on Amazon EKS." --- One of the most common areas Kubernetes operators struggle with in @@ -14,6 +13,7 @@ implemented halfway, or the configuration becomes impossible to maintain. In this post, we will contrast the traditional way of working with RBAC on EKS with using Pulumi --- Pulumi makes RBAC on Kubernetes so easy that you'll never create an insecure cluster again! + - **NO MORE YAMLs!** Configuring YAMLs, operators or custom resources is now a thing in the past! You use TypeScript or JavaScript to diff --git a/content/blog/testing-your-infrastructure-as-code-with-pulumi/index.md b/content/blog/testing-your-infrastructure-as-code-with-pulumi/index.md index d63e95e6b051..622b5c1fd5a2 100644 --- a/content/blog/testing-your-infrastructure-as-code-with-pulumi/index.md +++ b/content/blog/testing-your-infrastructure-as-code-with-pulumi/index.md @@ -1,10 +1,9 @@ --- title: "Testing Your Infrastructure as Code with Pulumi" authors: ["joe-duffy"] -tags: ["Infrastructure-as-Code", "CI/CD"] +tags: ["JavaScript","TypeScript","CI/CD","Cloud-Native","Python"] date: "2019-04-17" -summary: "Using JavaScript and Python for infrastructure as code delivers great productivity. Did you know that it also lets you test your infrastructure too?" meta_image: "RELATIVE_TO_PAGE/InfraTesting.png" --- @@ -20,6 +19,7 @@ languages unlocks another important software engineering practice: In this article, we will see the many ways in which Pulumi lets us test our infrastructure as code. + ![Testing Infrastructure](./InfraTesting.png) diff --git a/content/blog/unified-logs-with-pulumi-logs/index.md b/content/blog/unified-logs-with-pulumi-logs/index.md index 04fac0f51fa7..f45ed8f5876a 100644 --- a/content/blog/unified-logs-with-pulumi-logs/index.md +++ b/content/blog/unified-logs-with-pulumi-logs/index.md @@ -1,10 +1,9 @@ --- title: "Unified Logs with pulumi logs" authors: ["luke-hoban"] -tags: ["AWS", "New-Features"] +tags: ["AWS","Features","Logging"] date: "2019-04-02" -summary: "The Pulumi CLI provides a way to do logging, without requiring any additional solutions and seamlessly integrates into your Pulumi development workflow. Let’s take a quick look at `pulumi logs` and some of the ways it can be used as part of the inner loop of your Pulumi development." meta_image: "RELATIVE_TO_PAGE/terminal-logs.png" --- @@ -30,6 +29,7 @@ together logs across all of the different forms of compute you are using Let's take a quick look at `pulumi logs` and some of the ways it can be used as part of the inner loop of your Pulumi development. + > *Note: Currently `pulumi logs` supports only logs for applications > running in AWS. In the near future it will be expanded to Kuberentes, diff --git a/content/blog/upcoming-aws-pulumi-webinar-on-feb-5/index.md b/content/blog/upcoming-aws-pulumi-webinar-on-feb-5/index.md index 1f42136c8f75..9bf59753f657 100644 --- a/content/blog/upcoming-aws-pulumi-webinar-on-feb-5/index.md +++ b/content/blog/upcoming-aws-pulumi-webinar-on-feb-5/index.md @@ -1,10 +1,9 @@ --- title: "Upcoming AWS + Pulumi Webinar on Feb 5" authors: ["erin-xue"] -tags: ["AWS", "CI/CD", "Pulumi"] +tags: ["AWS","CI/CD","Cloud-Native"] date: "2019-01-09" -summary: "Join our February 5th webinar to learn how to implement cloud native infrastructure across your organization." meta_image: RELATIVE_TO_PAGE/code-comparison.png --- @@ -14,6 +13,7 @@ February 5th, 10AM PST** (register We'll be chatting about how to implement cloud native infrastructure across your organization using [AWS and Pulumi]({{< ref "/crosswalk/aws" >}}): general purpose programming languages to deliver everything from VMs to Kubernetes to Serverless. + ## Register Now diff --git a/content/blog/using-helm-and-pulumi-to-define-cloud-native-infrastructure-as-code/index.md b/content/blog/using-helm-and-pulumi-to-define-cloud-native-infrastructure-as-code/index.md index 9bdfa563e665..dbfd6aad6edd 100644 --- a/content/blog/using-helm-and-pulumi-to-define-cloud-native-infrastructure-as-code/index.md +++ b/content/blog/using-helm-and-pulumi-to-define-cloud-native-infrastructure-as-code/index.md @@ -1,10 +1,9 @@ --- title: "Using Helm and Pulumi to define cloud native infrastructure as code" authors: ["alex-clemmer"] -tags: ["Kubernetes", "Azure"] +tags: ["Kubernetes","Azure"] date: "2018-10-31" -summary: "In this post we look at how to connect a Kubernetes cluster to a Database with Pulumi, using Microsoft AKS, CosmosDB and Helm." meta_image: "RELATIVE_TO_PAGE/helm-pulumi-deploy.gif" --- @@ -25,6 +24,7 @@ Kubernetes Secret with the connection details, and then simply let my application use these newly available resources. Pulumi gives users the primitives they need in order to achieve tasks like this most effectively. + ## How to connect a Kubernetes app with CosmosDB diff --git a/content/blog/using-monkey-patching-for-simple-serverless-programming/index.md b/content/blog/using-monkey-patching-for-simple-serverless-programming/index.md deleted file mode 100644 index 6b0d045df8e7..000000000000 --- a/content/blog/using-monkey-patching-for-simple-serverless-programming/index.md +++ /dev/null @@ -1,164 +0,0 @@ ---- -title: "Serverless on AWS with Pulumi: simple, event-based functions" -authors: ["cyrus-najmabadi"] -tags: ["AWS/Lambda/Fargate", "Infrastructure-as-Code"] -date: "2019-01-14" - -summary: "How to make serverless programming on AWS simple with Pulumi using the regular programming languages." ---- - -One of [Pulumi's](/) goals from the very beginning was -to be able to deliver a way to create cloud infrastructure with the real -programming languages that you are already using today. We believe that -the existing constructs already present in these langauges, like flow -control, inheritance, composition, and so on, provide the right -abstractions to effectively build up infrastructure in a simple and -familiar way. - -Our early TypeScript SDKs enabled this by projecting things like the AWS -api surface area into classes corresponding to resources you could -create. Using the earliest version of the "@pulumi/aws" api, you could -then create those resources using normal program flow logic like so: - -```javascript -// simplified for brevity - -import * as aws from "@pulumi/aws"; -import * as slack from "@slack/client"; - -// Create a simple bucket. -const bucket = new aws.s3.Bucket("testbucket", { - serverSideEncryptionConfiguration: ..., - forceDestroy: true, -}); - -// Create a lambda that will post a message to slack when the bucket changes. -// Note that we can pass a simple JavaScript/TypeScript lambda here thanks to the magic of Lambdas as Lambdas: -// https://blog.pulumi.com/lambdas-as-lambdas-the-magic-of-simple-serverless-functions -const lambda = new aws.lambda.CallbackFunction("postToSlack", { - callback: async (e) => { - const client = new slack.WebClient(...); - for (const rec of e.Records) { - await client.chat.postMessage({ ... }); - } - }, - ... -}); - -// Give the bucket permission to invoke the lambda. -const permission = new aws.lambda.Permission("invokelambda", { - function: lambda, action: "lambda:InvokeFunction", principal: "s3.amazonaws.com", - sourceArn: bucket.id.apply(bucketName => `arn:aws:s3:::${bucketName}`), -})); - -// now hookup a notification that will trigger the lambda when any object is created in the bucket. -const notification = new aws.s3.BucketNotification("onAnyObjectCreated", { - bucket: bucket.id, - lambdaFunctions: [{ - events: ["s3:ObjectCreated:*], - lambdaFunctionArn: lambda.arn, - }], -}) -``` - -Phew... that's a lot of code `:-/` But it accurately conveys all the real -AWS resources that need to be created in order to get this all working. -While this was feasible for people to do (and is what you often have to -do when manually creating infrastructure yourself), we thought this was -too much for someone to have to do all the time. It just didn't feel -very idiomatic or appropriate for how people would expect things to work -in their programming language of choice. So, to help address this -problem, we turned to [Monkey Patching](https://en.wikipedia.org/wiki/Monkey_patch) to dynamically add -intuitive functionality to these Resource classes to make them easier to -use. Before discussing how that was done, let's first see what the -result of that patching now allows you to write instead: - -```javascript -import * as aws from "@pulumi/aws"; -import * as slack from "@slack/client"; - -// Create a simple bucket. -const bucket = new aws.s3.Bucket("testbucket", { - serverSideEncryptionConfiguration: ..., - forceDestroy: true, -}); - -// Create a lambda that will post a message to slack when the bucket changes. -bucket.onObjectCreated("postToSlack", async (e) => { - const client = new slack.WebClient(...); - for (const rec of e.Records) { - await client.chat.postMessage({ ... }); - } -}); -``` - -That's it! `:-)` No need to manually create Lamdbas or Permissions or -BucketNotification. No need to explicitly configure settings for common -types of operations (like explicitly specifying `events`, or having to -pass along `arns`). `bucket.onObjectCreated` now feels like a natural, -idiomatic, way to hook up a code to run in response to something -happening (in this case, an object being created). This looks and feels -like natural JavaScript/TypeScript, but now takes care of all that extra -work on your behalf. And, importantly, you are not locked out from -having control over what happens. For example, if you needed to -configure the AWS Lambda that is created for you in some way, that -capability is still available to you. - -So, how does this work? Well, it turns out that both JavaScript and -TypeScript have great built-in support for [Monkey Patching](https://en.wikipedia.org/wiki/Monkey_patch). At the JavaScript -level, adding more functionality to a type is trivial, just by -augmenting the `prototype` chain. We do that simply just with code like -so: - -```javascript -Bucket.prototype.onObjectCreated = function (this: Bucket, name, handler, args, opts) { - args = args || {}; - args.event = args.event || "*"; - - const argsCopy = { - filterPrefix: args.filterPrefix, - filterSuffix: args.filterSuffix, - events: ["s3:ObjectCreated:" + args.event], - }; - - return this.onEvent(name, handler, argsCopy, opts); -} -``` - -Here you can see how we've added the `onObjectCreated` method to -`Bucket`'s `prototype` so that it will be available on all instances of -`aws.s3.Bucket`. We also allow optional arguments to be passed in to -help configure the event (like what filters/events to listen for) if you -want to override our defaults. However, this only adds the code to be -available at runtime. We also need to update the type-definition for -`Bucket` for TypeScript so that all TypeScript consumers will know this -function is now available. This fortunately also simple, and all we have -to do is the following: - -```javascript -declare module "./bucket" { - interface Bucket { - /** * Creates a new subscription to events fired from this Bucket to the handler provided, * along with options to control the behavior of the subscription. The handler will be * called whenever a matching [s3.Object] is created. */ - onObjectCreated( - name: string, handler: BucketEventHandler, - args?: ObjectCreatedSubscriptionArgs, - opts?: pulumi.ComponentResourceOptions): BucketEventSubscription; - // ... -``` - -You can see the [full patching here](https://github.com/pulumi/pulumi-aws/blob/71f11fdea5c7224dd93b774c450d6fc7f0d44b88/sdk/nodejs/s3/s3Mixins.ts#L210-L253). - -This is a way to tell TypeScript that you intend to add a function to a -type later on yourself. This information will be merged into the type -information TypeScript has already built for the `Bucket` type. -Downstream consumers will then see the type with all its normal members -along with these additional members we've added after the fact. You can -read more about this in the [Declaration Merging](https://www.typescriptlang.org/docs/handbook/declaration-merging.html) -documentation for TypeScript. - -And there you have it. A simple way to take a complex set of steps and -more cleanly expose it in a programming language in a way that will feel -more natural and intuitive. Hopefully this gives a good taste of what's possible with Pulumi -and why we feel like this is -the best way for people to create and update their cloud infrastructure -using real programming languages! diff --git a/content/blog/using-pulumi-with-aws-sqs-and-lambdas/index.md b/content/blog/using-pulumi-with-aws-sqs-and-lambdas/index.md index 1f61257a4c51..85dc5504d14c 100644 --- a/content/blog/using-pulumi-with-aws-sqs-and-lambdas/index.md +++ b/content/blog/using-pulumi-with-aws-sqs-and-lambdas/index.md @@ -1,10 +1,9 @@ --- title: "Using Pulumi with AWS SQS and Lambdas" authors: ["cyrus-najmabadi"] -tags: ["Infrastructure-as-Code", "AWS"] +tags: ["JavaScript","Serverless","AWS"] date: "2018-07-10" -summary: "With Amazon's recent announcement to support Simple Queue Service (SQS) as an event source for Lambda, this post details how to use that from Pulumi!" --- [Two weeks ago](https://aws.amazon.com/blogs/aws/aws-lambda-adds-amazon-simple-queue-service-to-supported-event-sources/) @@ -22,6 +21,7 @@ SQS queue, or creating [Simple Notification Service](https://aws.amazon.com/sns/ notifications from your messages, you can instead just directly trigger whatever Lambda you want. + ## Example: Using AWS SQS and Lambda to post messages to Slack diff --git a/content/blog/using-terraform-remote-state-with-pulumi/index.md b/content/blog/using-terraform-remote-state-with-pulumi/index.md index 46d026f6ea75..d5e9c39a500f 100644 --- a/content/blog/using-terraform-remote-state-with-pulumi/index.md +++ b/content/blog/using-terraform-remote-state-with-pulumi/index.md @@ -1,13 +1,11 @@ --- title: "Using Terraform Remote State with Pulumi" authors: ["paul-stack"] -tags: ["Terraform-Migration", "Infrastructure-as-Code"] +tags: ["Infrastructure","Features"] date: "2019-06-07" -summary: "Pulumi can co-exist with other infra tools, including consuming Terraform remote and local state outputs!" --- - While some people coming to Pulumi are entirely new to Infrastructure as Code, increasingly teams are moving from other tools - whether cloud-specific in the form of @@ -42,6 +40,7 @@ remote state backends supported by Terraform. This is exposed via the [`terraform.state.RemoteStateReference`](http://replace.me) type in the [`@pulumi/terraform`](https://www.npmjs.com/package/@pulumi/terraform) NPM package. + ## Example - Terraform Enterprise Backend diff --git a/content/blog/welcoming-gitlab-users-to-pulumi/index.md b/content/blog/welcoming-gitlab-users-to-pulumi/index.md index f84aac40f0ad..4fbd2492a05f 100644 --- a/content/blog/welcoming-gitlab-users-to-pulumi/index.md +++ b/content/blog/welcoming-gitlab-users-to-pulumi/index.md @@ -1,10 +1,9 @@ --- title: "Welcoming GitLab users to Pulumi" authors: ["praneet-loke"] -tags: ["New-Features"] +tags: ["CI/CD"] date: "2018-12-03" -summary: "We are very pleased to announce support for signing-in with GitLab accounts." meta_image: "RELATIVE_TO_PAGE/gl-2.gif" --- @@ -12,6 +11,7 @@ We are very pleased to announce that [Pulumi](/) now supports signing-in with your GitLab account. Don't have an account on GitLab yet? Head on over to and sign-up for an account. + ## Why GitLab? diff --git a/layouts/partials/head.html b/layouts/partials/head.html index 82db9b003b7b..65c4c5962ee9 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -44,6 +44,9 @@ {{ else if isset .Params "summary" }} + {{ else if ne .Summary "" }} + + {{ else }} {{ $defaultDescription := "Pulumi provides a cloud development model for serverless functions, container apps, and data infrastructure for any cloud." }} @@ -103,8 +106,5 @@ {{ if not (isset .Page.Params "tags") }} {{ errorf "Blog posts require tags: %s" .File.Path }} {{ end }} - {{ if not (or (isset .Params "summary")) }} - {{ errorf "Blog posts require a summary: %s" .File.Path }} - {{ end }} {{ end }}