mirror of https://github.com/pulumi/pulumi.git
1515db22f1
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 |
||
---|---|---|
.. | ||
analyzer.go | ||
analyzer_plugin.go | ||
check.go | ||
config_source.go | ||
context.go | ||
context_test.go | ||
converter.go | ||
converter_plugin.go | ||
converter_plugin_test.go | ||
converter_server.go | ||
converter_server_test.go | ||
debugging.go | ||
diagnostic.go | ||
diagnostic_test.go | ||
doc.go | ||
host.go | ||
host_server.go | ||
host_test.go | ||
langruntime.go | ||
langruntime_plugin.go | ||
langruntime_test.go | ||
mock.go | ||
plugin.go | ||
plugin_test.go | ||
provider.go | ||
provider_plugin.go | ||
provider_plugin_test.go | ||
provider_server.go | ||
provider_server_test.go | ||
provider_test.go | ||
provider_unimplemented.go | ||
rpc.go | ||
rpc_rapid_test.go | ||
rpc_test.go | ||
server.go |