Back to Pulumi

V0.11.0

changelog/v0.11.0.md

3.244.04.6 KB
Original Source

0.11.0 (2018-03-20)

Added

  • Add a pulumi new command to scaffold a project (pulumi/pulumi#1008). Usage is pulumi new [templateName]. If template name is not specified, the CLI will prompt with a list of templates. Currently, the templates javascript, python and typescript are available. Templates are defined in the GitHub repo pulumi/templates and contributions are welcome!

  • Python is now a supported language in Pulumi (pulumi/pulumi#800). For more information, see Python documentation.

Changed

  • (Breaking) Change the way that configuration is stored (pulumi/pulumi#986). To simplify the configuration model, there is no longer a separate notion of project and workspace settings, but only stack settings. The switches --all and --save are no longer supported; any common settings across stacks must be set on each stack directly. Settings for a stack are stored in a file that is a sibling to Pulumi.yaml, named Pulumi.<stack-name>.yaml. On first run pulumi, will migrate projects from the previous configuration format to the new one. The recommended practice is that developer stacks that are not shared between team members should be added to .gitignore, while stack setting files for shared stacks should be checked in to source control. For more information, see the section Defining and setting stack settings.

  • (Breaking) Eliminate the superfluous :config part of configuration keys (pulumi/pulumi#995). pulumi no longer requires configuration keys to have the string :config in them. Using the :config string in keys for the object @pulumi/pulumi.Config is deprecated and preview and update show warnings when it is used. Additionally, it is preferred to set keys in the form aws:region rather than aws:config:region. For compatibility, the old behavior is also supported, but will be removed in a future release. For more information, see the article Configuration.

  • (Breaking) Modules are treated as normal values when serialized (pulumi/pulumi#1030). If you need to use a module at runtime, consider either using require or await import at runtime, or pre-compute what you need and capture the resulting data or objects.

<!-- NOTE: the programming-model article below is still all todos. -->
  • (Breaking) Serialize resource registration after inputs resolve (pulumi/pulumi#964). Previously, resources were most often created/updated in the order they were seen during the Pulumi program execution. In preparation for supporting parallel resource operations, these operations now run in an order that respects the dependencies between resources (via Output), but may not match the order of program execution. This is mostly transparent to Pulumi program authors, but does mean that any missing dependencies will cause your program to fail in unexpected ways. For more information on how such failures manifest and what to do about them, see the article Programming Model.

  • Hide secrets from CLI output (pulumi/pulumi#1002). To prevent secret values from being accidentally disclosed in command output or logs, pulumi replaces secret values with the string [secret]. Inspired by the behavior of Travis CI.

  • Change default of where stacks are created (pulumi/pulumi#971). If currently logged in to the Pulumi CLI, stack init creates a managed stack; otherwise, it creates a local stack. To force a local or remote stack, use the flags --local or --remote.

Fixed

  • Improve error messages output by the CLI (pulumi/pulumi#1011). RPC endpoint errors have been improved. Errors such as "catastrophic error" and "fatal error" are no longer duplicated in the output.

  • Produce better error messages when the main module is not found (pulumi/pulumi#976). If you're running TypeScript but have not run tsc or your main JavaScript file does not exist, the CLI will print a helpful info: message that points to the possible source of the error.