pulumi/sdk/go
Ian Wahbe 33f9c7a1ea
Allow disabling default providers (#8829)
* Allow disabling default providers

This is done with an opt-in setting in `pulumi config`. For example, to
disable default providers for `aws`, use:

```sh
pulumi config set --path pulumi:disable-default-providers[0] aws
```

To add `kubernetes` to the disabled list, use
```sh
pulumi config set --path pulumi:disable-default-providers[1] kubernetes
```

To disable all default providers, `*` can be used.

---

Under the hood, whenever we handle a default provider request (with
`defaultProviders.handleRequest`), we make sure it isn't on the deny
list. If it is, we replace the requested reference with a special
`DenyDefaultProvider` reference. We check for this reference whenever we
are about to get a provider to do actual work. By intercepting denied
providers when references are created, we ensure that we never use a
denied provider.

* Update CHANGELOG_PENDING.md

* Fix lints

The lint errors appear to be unrelated to the original PR. Fixing them
unblocks the CI.

* Add engine tests

* Fix nits

* Clarify function
2022-01-26 18:08:36 +01:00
..
auto Fix new lint errors (#8831) 2022-01-25 20:23:00 +01:00
common Allow disabling default providers (#8829) 2022-01-26 18:08:36 +01:00
pulumi [sdk/go] Add PluginDownloadURL resource option (#8555) 2022-01-05 12:04:39 -08:00
pulumi-language-go Use `pulumi-plugin.json` rather than `pulumiplugin.json` (#8593) 2021-12-15 10:41:44 -08:00
Makefile Revert "Lower test parallelism on Windows (#8755)" (#8812) 2022-01-21 17:55:38 -05: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.