terraform/internal/stacks/stackruntime/testdata/mainbundle
Martin Atkins e74896bd24 stackruntime: Handle apply-time-specified input variables
When the topmost stack configuration declares an ephemeral input variable,
its values must be provided separately for each of the plan and apply
phases.

Therefore here we extend the API to allow specifying input variable values
during the apply phase, and add rules to check whether all of the
apply-time-required input variables have been specified and whether any
non-ephemeral variables are either unspecified or re-specified with equal
values during the apply phase.

This also extends the FindStackConfigurationComponents response to include
more metadata about the input variables and output values so that a caller
can know which ones are ephemeral. The name of that RPC function had
already become a little too specific with the inclusion of embedded stack
information and is even moreso now; we might choose to rename it to
something more generic like "AnalyzeStackConfiguration" in future, but
that'd be a breaking change and therefore requires more coordination.
2024-06-17 08:34:46 -07:00
..
test stackruntime: Handle apply-time-specified input variables 2024-06-17 08:34:46 -07:00
README.md stackruntime: Beginnings of Validate function 2023-11-15 12:38:51 -08:00
terraform-sources.json stackruntime: Beginnings of Validate function 2023-11-15 12:38:51 -08:00

Synthetic source bundle for most tests

Since the tests in this package are concerned primilary with configuration evaluation and less concerned about configuration bundling or loading, most of our tests can just use subdirectories of the only package in this synthetic source bundle to avoid the inconvenience of maintaining an entire source bundle for each separate test.

To use this:

  • Make a subdirectory under test/ with a name that's related to your test case(s).

  • Use the loadMainBundleConfigForTest helper, passing the name of your test directory as the source directory.

    (The helper function will automatically construct the synthetic remote source address needed to locate that subdirectory within the source bundle.)