pulumi/sdk/go/common/resource/plugin
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
..
analyzer.go Allow anything in resource names (#14107) 2023-11-20 08:59:00 +00:00
analyzer_plugin.go Replace pkg/errors.Wrap with fmt.Errorf (#17201) 2024-09-09 11:11:46 +00:00
check.go Enable importas linter (#15167) 2024-01-17 14:56:37 +00:00
config_source.go [breaking] Changing the version of go.mod in sdk / pkg to be v3 2021-04-14 19:32:18 +01:00
context.go implement the engine bits for debugging support (#17072) 2024-08-30 10:31:28 +00:00
context_test.go Fix data race in plugin.Context 2023-03-31 07:15:11 -07:00
converter.go Plumb Remote, Component, and LogicalName into the import plugin system (#15199) 2024-01-24 17:15:30 +00:00
converter_plugin.go Refactor: move plugin kind to apitype (#15946) 2024-04-25 17:30:30 +00:00
converter_plugin_test.go Plumb Remote, Component, and LogicalName into the import plugin system (#15199) 2024-01-24 17:15:30 +00:00
converter_server.go Plumb Remote, Component, and LogicalName into the import plugin system (#15199) 2024-01-24 17:15:30 +00:00
converter_server_test.go Plumb Remote, Component, and LogicalName into the import plugin system (#15199) 2024-01-24 17:15:30 +00:00
debugging.go implement the engine bits for debugging support (#17072) 2024-08-30 10:31:28 +00:00
diagnostic.go Prepare golangci-lint upgrade (#17065) 2024-08-28 07:57:38 +00:00
diagnostic_test.go Allow converter plugins to return diagnostics 2023-06-05 17:38:59 +01:00
doc.go Enable goheader rule and add missing license headers (#15473) 2024-09-09 12:05:45 +00:00
host.go Support `pulumi.Config` in dynamic providers 2024-09-10 17:21:20 +01:00
host_server.go Replace pkg/errors.Wrap with fmt.Errorf (#17201) 2024-09-09 11:11:46 +00:00
host_test.go Lock access to the plugin loading channels 2023-08-10 23:40:23 +01:00
langruntime.go debugging: more consistency for naming (#17152) 2024-09-04 10:36:45 +00:00
langruntime_plugin.go Replace pkg/errors.Wrap with fmt.Errorf (#17201) 2024-09-09 11:11:46 +00:00
langruntime_test.go Add not-found markers to missing executables for packagemanagers (#16488) 2024-06-28 23:21:55 +00:00
mock.go Support loading parameterized schemas in the schema loader (#17108) 2024-08-30 14:25:29 +00:00
plugin.go Python parameterized provider test (#16491) 2024-07-16 10:55:38 +00:00
plugin_test.go Revert "resource/plugin: Shut down plugins gracefully (#13795)" (#13844) 2023-08-31 16:29:55 +00:00
provider.go Send resource name and type as well as URN to providers (#17177) 2024-09-06 09:29:37 +00:00
provider_plugin.go Support `pulumi.Config` in dynamic providers 2024-09-10 17:21:20 +01:00
provider_plugin_test.go Enable goheader rule and add missing license headers (#15473) 2024-09-09 12:05:45 +00:00
provider_server.go Send resource name and type as well as URN to providers (#17177) 2024-09-06 09:29:37 +00:00
provider_server_test.go Enable goheader rule and add missing license headers (#15473) 2024-09-09 12:05:45 +00:00
provider_test.go Fix PropertyPaths generated by NewDetailedDiffFromObjectDiff (#14337) 2023-10-25 10:39:03 +00:00
provider_unimplemented.go Normalize plugin.Provider methods to (Context, Request) -> (Response, error) (#16302) 2024-06-07 19:47:49 +00:00
rpc.go Replace pkg/errors.Wrap with fmt.Errorf (#17201) 2024-09-09 11:11:46 +00:00
rpc_rapid_test.go Remove deprecated Protobufs imports (#15158) 2024-01-17 09:35:20 +00:00
rpc_test.go Fix upgrade with ResourceReference (#15377) 2024-02-06 08:22:46 +00:00
server.go Add mapping service to converter 2023-03-24 17:09:17 +00:00