pulumi/changelog/pending
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
..
20230917--engine--the-engine-now-sends-resource-names-and-types-in-provider-requests-as-well-as-the-combined-urn.yaml Send resource name and type as well as URN to providers (#17177) 2024-09-06 09:29:37 +00:00
20240731--cli-display--fix-deletes-not-being-show-in-refresh-when-using-json-output.yaml Fix deletes not being show in `refresh` when using json output (#16851) 2024-09-09 10:16:10 +00:00
20240901--sdkgen-go--allow-output-versioned-invokes-to-resolve-and-maintain-secrets.yaml [go] Allow output-versioned invokes to resolve and maintain secrets (#17132) 2024-09-09 12:57:43 +00:00
20240905--sdkgen-python--correctly-case-python-package-names-in-package-add-link-instructions.yaml Correctly case Python package names in `package add` link instructions (#17178) 2024-09-05 17:27:03 +00:00
20240906--cli--recover-from-zero-byte-credentials-json-files.yaml Recover from zero-byte `credentials.json` files (#17186) 2024-09-06 09:57:33 +00:00
20240906--cli-display--hide-unnecessary-rows-in-non-interactive-mode.yaml Hide unnecessary rows in non-interactive mode (#17188) 2024-09-09 07:44:27 +00:00
20240909--cli--using-pulumi_backend_url-no-longer-updates-credentials-json.yaml Add LoginManager to backend package (#17199) 2024-09-10 09:04:49 +00:00
20240909--cli-state--show-the-full-set-of-delete-commands-necessary-to-remove-resources-from-the-source-stack-if-writing-to-it-fails.yaml state move: show full set of delete commands when writing source stack fails (#17205) 2024-09-09 16:33:07 +00:00
20240909--cli-state--try-to-revert-changes-to-destination-stack-if-we-are-unable-to-save-the-source-stack-in-state-move.yaml state move: revert dest changes if source can't be saved (#17208) 2024-09-10 12:38:29 +00:00
20240910--engine--fix-parameterized-providers-not-downloading-correctly-when-found-from-state.yaml Fix gatherPluginsFromSnapshot incorrectly spec'ing parameterized providers (#17218) 2024-09-10 10:22:53 +00:00
20240910--engine--support-pulumi-config-in-dynamic-providers.yaml Support `pulumi.Config` in dynamic providers 2024-09-10 17:21:20 +01:00