Pulumi Release Notes: Pulumi YAML updates, Stack READMEs, and much more!

Posted on

Our first release notes since the frenzy of releases for PulumiUP! The latest Pulumi updates also include our providers updates, compression of filestate backends, adding –stack to pulumi about, adding local policy packs to Automation API and much more! Learn about what’s new.

Cloud Providers and Packages

New resources in our providers

We shipped new versions of the AWS Native provider, Google Native provider and the Azure Native provider that added support for 412 new resources in the last month. 385 of those resources were Azure Native, 7 AWS Native and 20 were added to Google Native.

Pulumi CLI and core technologies

Pulumi YAML v0.5.2

We released v0.5.2 of Pulumi YAML which included bug fixes, new functions, diagnostics and validation. Some specific improvements we made were:

  • Add errors when hanging invalid fields off of resources. #203

  • Add errors when hanging invalid fields off of resource options. #211

  • Add a type checker. #228

  • Add Fn::FromBase64 #218

  • Add support for Fn::ReadFile, enabling Pulumi Service Stack README support. #217

  • Allow Fn::Join to take expressions as inputs, previously the second argument had to be a syntactical list. #241

As always, please feel free to submit feature requests and bug reports to the Pulumi YAML GitHub Repo. We love hearing feedback from users!

Add local Policy Packs to Automation API

The Pulumi Automation API is a programmatic interface for running Pulumi programs without the Pulumi CLI. Conceptually, this can be thought of as encapsulating the functionality of the CLI (pulumi up, pulumi preview, pulumi destroy, pulumi stack init, and so on.) but with more flexibility. We have now added support for Pulumi Policy Packs can now be run with Automation API by specifying --policy-pack.

Add –stack to pulumi about

The pulumi about command lets you prints out information that can be helpful for debugging while using the Pulumi CLI. This includes information about, the CLI and how it was built, which OS Pulumi was run from, the current project, the current stack and the current backend. We added the ability to specify which stack to provide details about without having to select it first using pulumi about –stack, for example pulumi about --stack eks/staging.

Learn more in the add –stack to pulumi about GitHub pull request.

Add logout message

Based on a great community suggestion, we have added a confirmation message to pulumi logout to add clarity to the state after the command exits.

Previous behavior:

me@MacBook-Pro ~/r/m/myfolder> pulumi logout
me@MacBook-Pro ~/r/m/myfolder>

Current behavior:

me@MacBook-Pro ~/r/m/myfolder> pulumi logout
Logged out of https://app.pulumi.com/meagan
me@MacBook-Pro ~/r/m/myfolder>

Learn more in the added confirmation string to pulumi logout GitHub issue.

Compression of remote state backends

Users of the self-managed state backends can now enable compression via PULUMI_SELF_MANAGED_STATE_GZIP=true. A huge shoutout to community contributor @awoimbee for the pull request.

Learn more in the add gzip flag to filestate backend GitHub pull request.

Add CompositeInvoke

We have added a CompositeInvoke function to the Go SDK that makes it easier to work with invoke bundles.

Previous behavior:

opts := []pulumi.InvokeOption{pulumi.Parent(parent), pulumi.Provider(provider)}
pkg.SomeInvoke(nil, append(opts, , pulumi.Version("1.2.3"))...)

Current behavior:

opts := pulumi.CompositeInvoke(pulumi.Parent(parent), pulumi.Provider(provider))
pkg.SomeInvoke(nil, opts, pulumi.Version("1.2.3"))

Learn more in Add CompositeInvoke Github pull request.

Support Java in pulumi convert

You can now use pulumi convert --language java to generate programs for Java from YAML.

Pulumi Service & Pulumi.com

Stack READMEs

Users can create Stack READMEs in the Pulumi Service that dynamically update based on Stack Outputs.

A Pulumi Service Stack README is dynamically populated with details from your stack outputs. It does this by interpolating output variables on the stack, such as ${outputs.instances[0].ARN} so that each stack can construct links to dashboards, shell commands, and other pieces of documentation.

Learn more in the Stack READMEs blog!

SAML/SCIM improvements

We spent some time in the last month improving the SAML/SCIM experience for our customers. The key improvements made were around deprovisioning and provisioning users and how we handle username updates with special characters. Organization Administrators can now remove a user from their identity provider which will deprovision the user in Pulumi, and then re-add them through the identity provider and they will be re-added to the Pulumi organization. Our customers requested this functionality for supporting organization re-orgs and team permission changes. This makes the process of managing Pulumi access with a SCIM provisioner more seamless.

Gif of identity provider deprovision and re-provisioning flow