pulumi/sdk
Will Jones 1515db22f1 Support `pulumi.Config` in dynamic providers
As well as responding to `Configure` gRPC calls, a resource provider
binary can also accept configuration from the engine via the
`PULUMI_CONFIG` environment variable. Presently, the engine will only
send configuration namespaced to the provider in question, and will
strip namespaces when doing so. So, given an example host configuration
of:

```
config:
  aws:region: eu-west-1
  foo:bar: baz
```

an `aws` provider will be provided with
`PULUMI_CONFIG='{"region":"eu-west-1"}'`, whereas a `gcp` provider will
receive `PULUMI_CONFIG='{}'`, matching neither `aws:region` nor
`foo:bar`.

This is problematic for dynamic providers, since they are authored in
and typically considered part of the user's program, and not as a
separate entity. Consequently it is not unreasonable for a dynamic
provider author to expect to have access to the entirety of the Pulumi
configuration through e.g. `pulumi.Config`, just like any other code in
their program -- #17050 and #4512 are two examples.

This commit makes us live up to this expectation. Dynamic providers now
receive all configuration values, with the namespaces preserved so that
existing `pulumi.Config` code can work in a dynamic provider like it
works everywhere else.

Fixes #17050
2024-09-10 17:21:20 +01:00
..
go Support `pulumi.Config` in dynamic providers 2024-09-10 17:21:20 +01:00
nodejs Bump NodeJS SDK dependencies (#17214) 2024-09-10 09:23:20 +00:00
proto/go Send resource name and type as well as URN to providers (#17177) 2024-09-06 09:29:37 +00:00
python Enable goheader rule and add missing license headers (#15473) 2024-09-09 12:05:45 +00:00
.version Freeze v3.131.0 (#17151) 2024-09-05 00:12:10 +00:00
README.md Cleanup sdk/README.md 2023-01-03 17:12:12 -05:00
go.mod Update go.mod to 1.21 (#17140) 2024-09-03 12:37:49 +00:00
go.sum Update go.mod to 1.21 (#17140) 2024-09-03 12:37:49 +00:00
version.go Enable goheader rule and add missing license headers (#15473) 2024-09-09 12:05:45 +00:00

README.md

Pulumi Language SDKs

This directory contains Pulumi SDKs for the following languages:

See the respective READMEs for information about installing and using these libraries.

The language providers work by implementing gRPC interfaces defined in the top level directory proto.