pulumi/sdk/go
bors[bot] a0271f71c1
Merge #11192
11192: Hierarchical config: optional typing extended short-hand syntax r=Zaid-Ajaj a=Zaid-Ajaj

### Description

This PR extends the specs of the hierarchical configuration rules in the following manner:
 - The `type` property/attribute is made _optional_ for project configuration which means stack values overriding this config block will not be validated against the type (integer stack value will override string project value)
 - Stacks can now use non-project config values that don't have to be defined at the project level (because they are not namespaced by the project, i.e. `aws:region`)
 - Non-project config values (i.e. `aws:region`) defined at the project level _cannot_ have a `type` nor `default` properties, only `value`
 - Project config block using short-hand syntax now accept arrays: `pulumi:disable-default-providers: ["*"]`
 - Project config block when defined using `value` can be anything (objects, arrays, primitives)
 - Project config blocks cannot have both `value` and `default` defined at the same time

Fixes #11127
Fixes #11128

See added tests for more details

## Checklist

<!--- Please provide details if the checkbox below is to be left unchecked. -->
- [x] I have added tests that prove my fix is effective or that my feature works
<!--- 
User-facing changes require a CHANGELOG entry.
-->
- [x] I have run `make changelog` and committed the `changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the Pulumi Service,
then the service should honor older versions of the CLI where this change would not exist.
You must then bump the API version in /pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi Service API version
  <!-- `@Pulumi` employees: If yes, you must submit corresponding changes in the service repo. -->


Co-authored-by: Zaid Ajaj <zaid.naom@gmail.com>
2022-10-31 01:13:26 +00:00
..
auto [auto/go] Support for remote operations 2022-10-28 12:56:11 -07:00
common typing made optional in hierarchical config and relaxed stack config validation 2022-10-30 23:42:39 +01:00
pulumi Merge #11189 2022-10-29 20:55:48 +00:00
pulumi-language-go chore: Update doc comments, coding style, fix lint 2022-10-13 13:50:49 -07:00
Makefile ci: Enable testing of language version sets 2022-09-21 09:48:38 -07: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.