pulumi/sdk/go
Abhinav Gupta 0bf1b8c860
sdk/go: Don't drop Dependencies in ResourceOptions snapshot for MLCs
We recently added a new API, NewResourceOptions to build a preview
of a set of resource options.

    func NewResourceOptions(...ResourceOption) (*ResourceOptions, error)

This currently drops the dependencies of an MLC from the snapshot.
The reason for this is that it used a special type "urnSet"
to represent dependencies for MLCs received over the wire.
This decision was made at the time because the original Resource objects
were not available for these dependencies.

Turns out that that limitation isn't a blocker:
we can use newDependencyResource to create dummy Resource objects
that hold nothing but a URN.

This allows NewResourceOptions to work on options even inside an MLC.
Note that this currently only works for some of the options:
those that are propagated from `construct` into the Go SDK options.
Others will be added as part of #12154.

Testing:
The accompanying test failed for Dependencies without this change.
2023-04-18 12:18:00 -07:00
..
auto Added missing flag to honor the CLI. Fixed #12254 2023-03-28 21:12:38 +02:00
common Merge #12157 2023-04-14 00:42:27 +00:00
pulumi sdk/go: Don't drop Dependencies in ResourceOptions snapshot for MLCs 2023-04-18 12:18:00 -07:00
pulumi-language-go all: Fix revive issues 2023-03-21 08:55:11 -07:00
Makefile ci: Enable testing of language version sets 2022-09-21 09:48:38 -07:00
README.md `pulumi update` => `pulumi up` (#2702) 2019-05-06 14:00:18 -07:00

README.md

Pulumi Golang SDK

This directory contains support for writing Pulumi programs in the Go language. There are two aspects to this:

  • pulumi/ contains the client language bindings Pulumi program's code directly against;
  • pulumi-language-go/ contains the language host plugin that the Pulumi engine uses to orchestrate updates.

To author a Pulumi program in Go, simply say so in your Pulumi.yaml

name: <my-project>
runtime: go

and ensure you have pulumi-language-go on your path (it is distributed in the Pulumi download automatically).

By default, the language plugin will use your project's name, <my-project>, as the executable that it loads. This too must be on your path for the language provider to load it when you run pulumi preview or pulumi up.