Improving the GitOps Pipeline with the Pulumi Operator

David Flanagan David Flanagan
Improving the GitOps Pipeline with the Pulumi Operator

This time last year, I presented Applying the Law of Demeter to GitOps at GitOps Days 2020. The Law of Demeter is a design principle, proposed in 1988, which encourages loose coupling between systems. During this session, I wanted the audience to understand and be able to identify when their applications and continuous delivery pipelines have too much knowledge of the platform in which they’re going to run. As an industry, we’re seeing a great deal of momentum towards Platform Engineering and with this comes a Broca divide, a strict division of responsibilities: to build a platform and to consume a platform.

Read more →

Organizational Patterns - An Automation Team

Matty Stratton Matty Stratton
Organizational Patterns - An Automation Team

Using Pulumi is more than just writing code and components. In addition to common software development practices, there are also a number of success patterns related to how your company or team builds and deploys Pulumi programs to successfully build, deploy, and manage your infrastructure and applications. In this continuation of a series, I will explore one of these patterns - a specialized automation team.

Read more →

Organizational Patterns - A Single Infra Repo

Matty Stratton Matty Stratton
Organizational Patterns - A Single Infra Repo

Using Pulumi is more than just writing code and components. In addition to common software development practices, there are also a number of success patterns related to how your company or team builds and deploys Pulumi programs to successfully build, deploy, and manage your infrastructure and applications. In this first post of a series, I will explore one of these patterns - the centralized platform infrastructure repository.

Read more →

Cloud Systems Part One: Static Sites and AWS S3

Kat Cosgrove Kat Cosgrove
Cloud Systems Part One: Static Sites and AWS S3

Cloud engineering is taking over software development. In a lot of ways, this is great; it allows us to build and deploy more complicated applications with less difficulty, and maintaining those applications becomes less troublesome too. We can release smaller updates more quickly than ever, ensuring that we can stay on top of feature requests and security issues. That said, the rise of cloud engineering has also introduced a lot of complexity in the form of dozens of services even within just one cloud provider. Figuring out where to start can be tough, so let’s take a practical tour! In this series, I’ll walk you through building a personal website and deploying it using modern cloud engineering practices.

Read more →

Understanding State

Laura Santamaria Laura Santamaria
Understanding State

Let’s talk about state, shall we? State is the collective properties of the system from one point in time. Think of it effectively as a snapshot of a system. State in computer science is actually a lot like state in physics, so let’s start with something that’s a bit easier to understand. We’re going to examine a physical system: A ball dropping from my hand to the ground one meter (1m) below.

Read more →

Dec. 8 releases: K8s examples, exclude protected resources from destroy, easier invites to the Pulumi Service

Alex Mullans Alex Mullans
Dec. 8 releases: K8s examples, exclude protected resources from destroy, easier invites to the Pulumi Service

With the holiday season approaching, we’ve been focused on tidying up our products, delivering asks we’ve heard from you in GitHub and at conferences, and looking ahead to 2022! Read on to learn about what’s new this release:

Read more →

Nov. 17 releases: `dependOn` Helm charts, new Elastic Cloud provider, functions support outputs, set the CLI's default organization

Alex Mullans Alex Mullans
Nov. 17 releases: `dependOn` Helm charts, new Elastic Cloud provider, functions support outputs, set the CLI's default organization

It’s been another exciting few weeks here at Pulumi! We’ve caught our breath from Cloud Engineering Summit (don’t forget to check out the talks if you haven’t yet!) and we’re back to adding new value and highly-requested fixes across the Pulumi Cloud Engineering Platform. Read on to learn about new providers, new enhancements to the core Pulumi experience, and more!

Read more →

Functions Now Accept Outputs

Anton Tayanovskyy Anton Tayanovskyy
Functions Now Accept Outputs

Pulumi 3.17.1 makes it easier to compose function calls and resources. In practice you often need to call a function with a resource output. Previous versions of Pulumi required an apply to do this, which was unfortunate:

  • new Pulumi users would get stuck and ask for help as the solution was not obvious

  • experienced users found the code unpleasant, upvoting the relevant GitHub Issue

With Pulumi 3.17.1 you can now call functions directly with resource outputs without an extra apply. Every function now has an additional Output form that accepts Input-typed arguments and returns an Output-wrapped result.

For a quick example, here is how you can call aws.ecr.getCredentials with a registryId of type Output<string>:

const registryId: Output<string> = ...
getCredentialsOutput({registryId: registryId}): Output<GetCredentialsResult>
registry_id: Output[str] = ...
get_credentials_output(registry_id=registryId): Output[GetCredentialsResult]
var registryId StringOutput
var result GetCredentialsResultOutput
result = GetCredentialsOutput(ctx, GetCredentialsOutputArgs{
    RegistryId: result
})
Output<string> registryId;
GetCredentials.Invoke(new GetCredentialsInvokeArgs
{
   RegistryId = registryId
});

Read more →

Kubecon NA 2021 Roundup

Kat Cosgrove Kat Cosgrove
Kubecon NA 2021 Roundup

KubeCon North America 2021 is over, but the recordings are now online! Every talk you wanted to attend and couldn’t is available on YouTube, so here’s some highlights—cloud native trends, updates from projects and SIGs, and a few of my favorite talks!

Read more →

Pulumi Recommended Patterns: The basics

Aurélien Requiem Aurélien Requiem
Pulumi Recommended Patterns: The basics

As a customer engineer, one of the most rewarding aspects of my work is to listen to customers and our diverse community to learn and share how they succeed in their day-to-day projects. In this 3-article mini-series, we’re going to explore some of the recommended patterns used in the Pulumi community and the benefits of using those patterns. We’ll kick off with all the basic patterns to get you started. Next, as you progress into cloud engineering, we’ll go deeper into evolved patterns.

Read more →