pulumi/pkg/backend
Pat Gavlin d1ff268b10 [esc] Add commands for managing stack environments
These changes add three commands for managing a stack's environments:

- `pulumi config env init`, which creates a new environment for a stack
  based on its configuration values
- `pulumi config env add`, which adds environments to a stack's import
  list
- `pulumi config env rm`, which removes an environment from a stack's
  import list

As implied by their paths, these commands hang off of a new sub-command
of `pulumi config`, `pulumi config env`.

From the usage:

* `pulumi config env init`

Creates an environment for a specific stack based on the stack's
configuration values, then replaces the stack's configuration values with
a reference to that environment. The environment will be created in the
same organization as the stack.

* `pulumi config env add`

Adds environments to the end of a stack's import list. Imported
environments are merged in order per the ESC merge rules. The list of
stacks behaves as if it were the import list in an anonymous environment.

* `pulumi config env rm`

Removes an environment from a stack's import list.

Each of these commands previews the new stack environment and shows the
environment definition. These commands print a warning if the stack's
environment does not define any of the `environmentVariables`, `files`,
or `pulumiConfig` properties.

These changes also add an `ENVIRONMENT` block to the output of `pulumi
config` for stacks that reference environments. This block shows the
definition of the stack's environment. In order to improve the
appearence of these tables, these changes also add a helper function
that colorizes the header row.

Finally, these changes add a warning on `pulumi env add`, `pulumi env
rm`, and `pulumi up/refresh/etc.` for stacks that reference environments
that do define any of `environmentVariables`, `files`, or
`pulumiConfig`, and add a tag to update metadata that includes the
environments associated with an update.
2023-11-13 16:38:31 -08:00
..
display `pulumi new` with existing project now can be bypassed (#14081) 2023-10-20 15:43:29 +00:00
filestate Revert "Move filestate locking to apply time (#13948)" (#14486) 2023-11-03 01:25:20 +00:00
httpstate [esc] Add commands for managing stack environments 2023-11-13 16:38:31 -08:00
state [breaking] Changing the version of go.mod in sdk / pkg to be v3 2021-04-14 19:32:18 +01:00
apply.go Policy remediations feature (#14080) 2023-10-09 18:31:17 +00:00
apply_test.go Move sdk/go/common/display to /pkg/display (#13954) 2023-09-18 11:01:28 +00:00
backend.go [esc] Add commands for managing stack environments 2023-11-13 16:38:31 -08:00
backend_test.go Replace PropertyValue type casts with method calls (#14538) 2023-11-12 20:10:47 +00:00
cancellation_scope.go Move cancellation_scope to backend 2023-05-09 13:01:42 +01:00
doc.go Document Go packages (#6009) 2021-01-11 11:07:59 -07:00
errors.go Add a link to docs for the 409 Conflict error message (#3207) 2019-09-10 13:25:08 -07:00
mock.go [esc] Add commands for managing stack environments 2023-11-13 16:38:31 -08:00
policypack.go [breaking] Changing the version of go.mod in sdk / pkg to be v3 2021-04-14 19:32:18 +01:00
query.go Replace result.Result in Query with error (#13939) 2023-09-20 15:43:46 +00:00
snapshot.go SameSteps can fail (#14076) 2023-10-13 11:13:22 +00:00
snapshot_test.go SameSteps can fail (#14076) 2023-10-13 11:13:22 +00:00
stack.go Move sdk/go/common/display to /pkg/display (#13954) 2023-09-18 11:01:28 +00:00
updates.go [esc] Add commands for managing stack environments 2023-11-13 16:38:31 -08:00
watch.go Don't pass a second SecretsProvider to backend.Watch 2023-05-08 20:38:40 +01:00