pulumi/sdk/go
bors[bot] bba7a231fd
Merge #12303
12303: sdk/go: Fix panic from uninitialized parent resources r=abhinav a=abhinav

# Description

The Go SDK panics if RegisterResource is called with a parent resource
that is uninitialized
(hasn't had its RegisterResource or RegisterComponentResource call yet).

The panic is during alias collapsing:
the system fails to read the unintialized parent resource's URN
from a zero-valued URNOutput.

Guard against this panic by verifying that the value passed to `Parent`
has been initialized.
We do this by checking the name of the resource--names are not allowed
to be empty when a resource is registered.

Resolves #12138

## Checklist

- [x] I have added tests that prove my fix is effective or that my feature works
- [x] I have run `make changelog` and committed the `changelog/pending/<file>` documenting my change


Co-authored-by: Abhinav Gupta <abhinav@pulumi.com>
2023-03-02 15:35:37 +00:00
..
auto Bump go-git to v5.6.0 to remove cgo dependency fixing 2023-02-28 16:01:31 -08:00
common Merge #12197 2023-02-25 04:38:10 +00:00
pulumi fix: Log and ignore the invalid parent 2023-02-28 17:44:49 -08:00
pulumi-language-go Clean up pkg/errors in go language host 2023-01-14 20:56:53 +00: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.