July 28 releases: K8s GitOps, autonaming in Google Native

Posted on

Another great iteration has just wrapped up, so it’s time for another edition of the Pulumi release notes! We’ve been busy smashing bugs across our products (over 100!), but we’ve also got several new updates across Pulumi providers, the CLI, and the Pulumi Service:

New and updated cloud providers

Pulumi Kubernetes Operator supports GitOps workflow

For some Kubernetes workflows, developers want to be able to store their configuration in a Git repository but ensure that their cluster automatically stays up-to-date with the latest configuration when it’s checked in. With the latest update to the Pulumi Kubernetes Operator, you can set up this type of GitOps workflow. To get started, specify the fully-qualified branch name that you want to track in the Stack CustomResource (e.g., refs/heads/main will track the main branch). The operator will track the specified branch and automatically deploy new commits that are pushed to the branch. For example, the Kubernetes YAML below will tell the Pulumi Kubernetes Operator to poll the production branch of the target GitHub repo, and deploy an update to the acmecorp/s3-op-project/production stack when there are changes.

apiVersion: pulumi.com/v1alpha1
kind: Stack
metadata:
  name: s3-bucket-stack
spec:
  stack: acmecorp/s3-op-project/production
  projectRepo: https://github.com/acmecorp/test-s3-op-project
  branch: refs/heads/production
  config:
    aws:region: us-east-2

Learn more in this GitHub issue

12 new resources in the Azure Native provider

We shipped 4 new versions of the Azure Native provider (1.16.0 through 1.19.0) that collectively added 12 new resources that you can manage with the Azure Native provider, including Fast Healthcare Interoperability Resources (FHIR) and Azure Relay resources.

See the full list

Google Native: autonaming; easier management of project and region settings

The preview of the Google Native provider continues to evolve. We shipped a new version of the Google Native provider (0.5.0) that includes:

  • Full auto-naming support, just like our other providers
  • An easier way to use arguments like machineType that expect a fully-qualified string like projects/${project}/zones/${zone}/machineTypes/f1-micro: you can now use just the last value (f1-micro) in your program and the provider will construct the fully-qualified string
  • Automatic selection of the project, region, and zone based on your configuration, so you no longer need to pass these values to the SDK’s constructor
  • An improved implementation of BucketObject

The screenshot below, from the webserver-ts example, shows the auto-naming, automatic project and region selection, and improved fully-qualified string settings:

A screenshot comparison of Google Native code before and after these changes

See the full list of updates

Pulumi CLI and core technologies

In this milestone, we shipped Pulumi versions 3.7.0, 3.7.1, and 3.8.0. The full list of changes in each version is available in the linked changelog; read on to learn about some of the biggest changes.

Automation API: Select your backend

Previously, the Automation API only used the backend that you selected the last time you ran the pulumi login command, which led to challenges for developers working across multiple backends for different projects. Now, you can set the PULUMI_BACKEND_URL variable in the environment where you run your Automation API program and it will use the backend specified by that URL.

Learn more in this GitHub issue

Better handling of subtypes in Python

Subtypes now correctly propagate through a call to Output[T]. For example, if Cow is a subtype of Animal, this commit makes it so Output[Cow] is treated as a subtype of Output[Animal]. Before this change, users of the Python SDK would occasionally need to use an .apply(lambda x: x) command when working with subtypes.

Learn more in this GitHub issue

Pulumi Service and Pulumi.com

Get started with Pulumi, directly from the Pulumi Service

We’re always looking for ways to make it easier for people who are new to Pulumi to get started successfully. This release, we’ve added a new dashboard card to your individual user dashboard on the Pulumi Service that helps you set up the Pulumi CLI and deploy your first stack of cloud infrastructure. Look for the “Get Started” card on your dashboard on the Pulumi Service.

Screenshot of Get Started card from the Pulumi Service