diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index aea4db326e..b70462a9e1 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -93,6 +93,13 @@ updates:
- dependency-name: "mcr.microsoft.com/vscode/devcontainers/typescript-node"
update-types: ["version-update:semver-major"]
+ - package-ecosystem: "docker-compose"
+ directory: "/"
+ schedule:
+ interval: "weekly"
+ allow:
+ - dependency-name: "ghcr.io/ministackorg/ministack"
+
- package-ecosystem: "pip"
directory: "/.github/workflows/mkdocs"
schedule:
diff --git a/.github/workflows/ministack.yml b/.github/workflows/ministack.yml
new file mode 100644
index 0000000000..ec7db7a1de
--- /dev/null
+++ b/.github/workflows/ministack.yml
@@ -0,0 +1,105 @@
+name: "MiniStack Terraform lifecycle"
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - ".github/workflows/ministack.yml"
+ - "tests/ministack/**"
+ - "*.tf"
+ - "policies/**"
+ - "examples/**"
+ - "modules/**"
+ pull_request:
+ paths:
+ - ".github/workflows/ministack.yml"
+ - "tests/ministack/**"
+ - "*.tf"
+ - "policies/**"
+ - "examples/**"
+ - "modules/**"
+ workflow_dispatch:
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+permissions:
+ contents: read
+
+env:
+ AWS_ACCESS_KEY_ID: "000000000000"
+ AWS_DEFAULT_REGION: eu-west-1
+ AWS_EC2_METADATA_DISABLED: "true"
+ AWS_ENDPOINT_URL: http://127.0.0.1:4566
+ AWS_REGION: eu-west-1
+ AWS_SECRET_ACCESS_KEY: test-only
+ TF_IN_AUTOMATION: "true"
+ TF_INPUT: "false"
+
+jobs:
+ terraform_lifecycle:
+ name: Apply/destroy ${{ matrix.example }} against MiniStack (Terraform ${{ matrix.terraform }})
+ runs-on: ubuntu-latest
+ timeout-minutes: 30
+ strategy:
+ fail-fast: false
+ max-parallel: 4
+ matrix:
+ example:
+ - base
+ - prebuilt
+ - default
+ - ephemeral
+ - multi-runner
+ - termination-watcher
+ terraform:
+ - "1.4.0"
+ - latest
+ services:
+ ministack:
+ image: ghcr.io/ministackorg/ministack:1.5.7@sha256:37361b9ef886463d5632d5a4b2d114da4b7a5c5793f52f07dbc72579f2fd9207
+ ports:
+ - 4566:4566
+ env:
+ MINISTACK_ACCOUNT_ID: "000000000000"
+ MINISTACK_REGION: eu-west-1
+ steps:
+ - name: Harden the runner (Audit all outbound calls)
+ uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
+ with:
+ egress-policy: audit
+
+ - name: Checkout
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
+ with:
+ persist-credentials: false
+
+ - name: Setup Terraform
+ uses: hashicorp/setup-terraform@dfe3c3f87815947d99a8997f908cb6525fc44e9e # v4.0.1
+ with:
+ terraform_version: ${{ matrix.terraform }}
+ terraform_wrapper: false
+
+ - name: Mark repository as safe
+ shell: sh
+ run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
+
+ - id: init
+ name: Terraform init
+ env:
+ EXAMPLE: ${{ matrix.example }}
+ run: tests/ministack/run-example.sh init "$EXAMPLE"
+
+ - id: apply
+ name: Terraform apply
+ env:
+ EXAMPLE: ${{ matrix.example }}
+ run: tests/ministack/run-example.sh apply "$EXAMPLE"
+
+ - name: Terraform destroy
+ if: always() && steps.init.outcome == 'success'
+ env:
+ EXAMPLE: ${{ matrix.example }}
+ run: tests/ministack/run-example.sh destroy "$EXAMPLE"
diff --git a/docs/adr/0001-use-ministack-for-terraform-integration-tests.md b/docs/adr/0001-use-ministack-for-terraform-integration-tests.md
new file mode 100644
index 0000000000..50ddd9b59b
--- /dev/null
+++ b/docs/adr/0001-use-ministack-for-terraform-integration-tests.md
@@ -0,0 +1,87 @@
+# ADR 0001: Use MiniStack for Terraform integration tests
+
+- Status: Accepted
+- Date: 2026-09-04
+
+## Context
+
+The repository contains Terraform examples that create and connect several AWS
+services. Static validation and unit tests do not exercise the provider calls,
+resource lifecycle, or interactions between services. We therefore need a
+local AWS emulator for integration tests in CI and during development.
+
+The test provider must be free to run in CI, compatible with the AWS Terraform
+provider, and sufficiently compatible with the AWS APIs used by the examples.
+This decision was developed while implementing [PR #5293](https://github.com/github-aws-runners/terraform-aws-github-runner/pull/5293)
+and discussing [MiniStack issue #1611](https://github.com/ministackorg/ministack/issues/1611#issuecomment-5537737162).
+
+We considered three mature local AWS emulators:
+
+| Provider | Relevant advantages | Trade-offs for this repository |
+| --- | --- | --- |
+| [LocalStack](https://localstack.cloud/) | Established ecosystem, broad AWS service coverage, and Terraform/SDK integrations. A free tier is available, with additional paid tiers and authenticated AWS features. | The current licensing and authentication model adds account/token and tier considerations to open-source CI. The exact capability needed by the examples must also be verified for the selected edition. |
+| [Floci](https://github.com/floci-io/floci) | MIT-licensed, free, and designed for local development and CI. Its documentation advertises a broad AWS service matrix and a single AWS-compatible endpoint. | Its service coverage and compatibility are evolving. The repository would need to validate the APIs and Terraform behavior it consumes before adopting it. |
+| [MiniStack](https://github.com/ministackorg/ministack) | MIT-licensed and free, supports Terraform and multi-account/multi-region emulation, and provides the AWS services required by the current examples when using v1.5.7+. | It is still an emulator, so unsupported or subtly different AWS behavior can remain. The version must be pinned and upgraded deliberately. |
+
+The number of services advertised by each provider is not a stable selection
+criterion: service catalogs and compatibility change frequently. The decision
+is based on the behavior required by this repository, the ability to run the
+same tests without paid credentials, and the current operational fit.
+
+## Decision
+
+Use MiniStack v1.5.7 or later as the default local AWS emulator for Terraform
+integration tests.
+
+The integration-test harness must:
+
+1. Pin the MiniStack image to a known version or digest and upgrade it as an
+ explicit test-provider change.
+2. Configure the AWS Terraform provider to use MiniStack endpoints and
+ test-only credentials so tests cannot accidentally reach AWS.
+3. Seed service-specific fixtures, such as AMIs and SSM parameters, in the
+ test harness or MiniStack initialization rather than changing production
+ examples solely to accommodate the emulator.
+4. Run each isolated example against clean emulator state to prevent resource
+ names and state from leaking between tests.
+5. Treat successful MiniStack tests as local integration evidence, not as a
+ substitute for tests against real AWS behavior.
+
+## Provider replacement boundary
+
+The examples and reusable Terraform modules must not depend on MiniStack-only
+resources or APIs. Provider-specific behavior belongs in the integration-test
+harness, including endpoint configuration, credentials, initialization
+fixtures, reset behavior, and cleanup.
+
+If MiniStack no longer satisfies the required AWS behavior, the harness may be
+adapted to LocalStack, Floci, or another compatible emulator. A replacement
+must pass the same example and API contract tests before it becomes the
+default. This keeps the provider choice replaceable without changing the
+production module interface.
+
+## Consequences
+
+### Positive
+
+- CI and local integration tests can run without an AWS account or paid
+ emulator subscription.
+- The selected version supports the AWS API behavior needed by the examples.
+- Test-only fixture setup keeps production examples representative of real AWS
+ usage.
+- The provider replacement boundary limits future migration work to the test
+ harness and its fixtures.
+
+### Negative
+
+- MiniStack behavior can differ from AWS and must not be treated as complete
+ AWS certification.
+- Pinning the emulator requires deliberate maintenance when the AWS provider,
+ examples, or MiniStack API behavior changes.
+
+## References
+
+- [MiniStack v1.5.7 release notes](https://github.com/ministackorg/ministack/releases/tag/v1.5.7)
+- [MiniStack service and Terraform documentation](https://github.com/ministackorg/ministack)
+- [Floci service matrix](https://floci.io/floci/services/)
+- [LocalStack pricing comparison](https://www.localstack.cloud/pricing-comparison)
diff --git a/examples/base/.terraform.lock.hcl b/examples/base/.terraform.lock.hcl
index c160b58a9e..27c3324cf1 100644
--- a/examples/base/.terraform.lock.hcl
+++ b/examples/base/.terraform.lock.hcl
@@ -2,24 +2,26 @@
# Manual edits may be lost in future updates.
provider "registry.terraform.io/hashicorp/aws" {
- version = "6.0.0"
- constraints = ">= 5.0.0, >= 6.0.0"
+ version = "6.63.0"
+ constraints = ">= 5.0.0, >= 6.21.0"
hashes = [
- "h1:dbRRZ1NzH1QV/+83xT/X3MLYaZobMXt8DNwbqnJojpo=",
- "zh:16b1bb786719b7ebcddba3ab751b976ebf4006f7144afeebcb83f0c5f41f8eb9",
- "zh:1fbc08b817b9eaf45a2b72ccba59f4ea19e7fcf017be29f5a9552b623eccc5bc",
- "zh:304f58f3333dbe846cfbdfc2227e6ed77041ceea33b6183972f3f8ab51bd065f",
- "zh:4cd447b5c24f14553bd6e1a0e4fea3c7d7b218cbb2316a3d93f1c5cb562c181b",
- "zh:589472b56be8277558616075fc5480fcd812ba6dc70e8979375fc6d8750f83ef",
- "zh:5d78484ba43c26f1ef6067c4150550b06fd39c5d4bfb790f92c4a6f7d9d0201b",
- "zh:5f470ce664bffb22ace736643d2abe7ad45858022b652143bcd02d71d38d4e42",
- "zh:7a9cbb947aaab8c885096bce5da22838ca482196cf7d04ffb8bdf7fd28003e47",
- "zh:854df3e4c50675e727705a0eaa4f8d42ccd7df6a5efa2456f0205a9901ace019",
- "zh:87162c0f47b1260f5969679dccb246cb528f27f01229d02fd30a8e2f9869ba2c",
- "zh:9a145404d506b52078cd7060e6cbb83f8fc7953f3f63a5e7137d41f69d6317a3",
+ "h1:9cre7jh1lSs/9igpgAcENMUAUlYW3HCtkav3up4oit0=",
+ "h1:dRlYHkc+r6fgzF57WC7Zjcmb6sF/6TTGDEgwGK+LAZY=",
+ "zh:005d56736afd17d963998c405cee6f434dbc23a415109f9435ff1542879ae611",
+ "zh:026ef126321a86ad7080b5d858e2527f96f5289678cbcd8856296e229c43339d",
+ "zh:06e0b58b2d1eddb5137fc86bee7ad2d07953c0bc3f57cccfc5ae0d2456068a3a",
+ "zh:07221735d61ababed84734e5ffcfc5bd59d01f29f029166ba5f2175895dceed1",
+ "zh:1a72db00583112bdb8c19b213a78a3f5de754fffc08f07e061f4e326289fab7d",
+ "zh:32968e74a53b03e97a084dc7050c22ef661fb5b3ea8a44f5a63e47bc45ad0e7c",
+ "zh:4b357dfe4b820e3e4acd2881cff8288b2186491e63416751f0d12692ba478ceb",
+ "zh:81e30884d7de686265e7d87bb92527e802878c65a378470ede2a1e9f4e40ccc9",
+ "zh:82e137297f6a5a08b9ce2138f7aabea245ad99495d9d9eff502f752d6ca90dbd",
+ "zh:8eb83b67099f0ea9df238a979dff933ff50ce06a2e3ff05a48556a10f10dd204",
"zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425",
- "zh:a4eab2649f5afe06cc406ce2aaf9fd44dcf311123f48d344c255e93454c08921",
- "zh:bea09141c6186a3e133413ae3a2e3d1aaf4f43466a6a468827287527edf21710",
- "zh:d7ea2a35ff55ddfe639ab3b04331556b772a8698eca01f5d74151615d9f336db",
+ "zh:d0ba30886cbe41850fee689f51ef9088578f323cfd21817bb409951d43c465eb",
+ "zh:dd48e7089784454bc03d713e9057f5ca0ea1613bd402125054a51894957b7925",
+ "zh:f250fa81e54cf60fcb0e9c0fc4ac043f1ecc2ac24967f628b3609364fcab3d04",
+ "zh:f38fc09fc25a8d2cf89a4d4cd6a5ef7cb1aad72798dbdcad58b8876b6a551a54",
+ "zh:f7c7380fdf126e1901f2084588dbfd724c76cb131ccfa795a541219111103c06",
]
}
diff --git a/examples/base/README.md b/examples/base/README.md
index 95b6fcee52..4c457865a4 100644
--- a/examples/base/README.md
+++ b/examples/base/README.md
@@ -10,7 +10,7 @@
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | 6.0.0 |
+| [aws](#provider\_aws) | 6.63.0 |
## Modules
diff --git a/examples/default/.terraform.lock.hcl b/examples/default/.terraform.lock.hcl
index 136f5367b1..c96d2b19bf 100644
--- a/examples/default/.terraform.lock.hcl
+++ b/examples/default/.terraform.lock.hcl
@@ -2,84 +2,92 @@
# Manual edits may be lost in future updates.
provider "registry.terraform.io/hashicorp/aws" {
- version = "6.35.1"
- constraints = ">= 5.0.0, >= 6.21.0"
+ version = "6.63.0"
+ constraints = ">= 5.0.0, >= 6.21.0, >= 6.33.0"
hashes = [
- "h1:xD+5zPhF0ry3sutriARfFVIg5m38VwYt66RveI3aUyI=",
- "zh:0a16d1b0ba9379e5c5295e6b3caa42f0b8ba6b9f0a7cc9dbe58c232cf995db2d",
- "zh:4b2e69907a1a2c557e45ef590f9fd6187ab5bf90378346ba9f723535e49ce908",
- "zh:56bdafda0d629e15dc3dd9275b54f1fb953e2e09a3bc1a34e027da9d03ea4893",
- "zh:5b84e933989150249036f84faad221dce0daa9d3043ff24401547e18f00b121e",
- "zh:70bac98c27a14cb2cedabd741a1f7f1bab074c127efdcf02b54dbcf0d03db3cc",
- "zh:7184f48bd077eaf68e184fd44f97e2d971cb77c59a68aedb95a0f8dc01b134fe",
- "zh:7367589ae8b584bfcd83c973f5003e15010a453349c017a0d2cca8772d4fcfd9",
- "zh:7ec9699dee49dd31bbc2d0e50fa1fff451eee5c1d9fd59bca7412acb49ce6594",
- "zh:92dd139b96977a64af0e976cd06e84921033678ab97550f1b687c0ea54a8e82c",
+ "h1:9cre7jh1lSs/9igpgAcENMUAUlYW3HCtkav3up4oit0=",
+ "h1:dRlYHkc+r6fgzF57WC7Zjcmb6sF/6TTGDEgwGK+LAZY=",
+ "zh:005d56736afd17d963998c405cee6f434dbc23a415109f9435ff1542879ae611",
+ "zh:026ef126321a86ad7080b5d858e2527f96f5289678cbcd8856296e229c43339d",
+ "zh:06e0b58b2d1eddb5137fc86bee7ad2d07953c0bc3f57cccfc5ae0d2456068a3a",
+ "zh:07221735d61ababed84734e5ffcfc5bd59d01f29f029166ba5f2175895dceed1",
+ "zh:1a72db00583112bdb8c19b213a78a3f5de754fffc08f07e061f4e326289fab7d",
+ "zh:32968e74a53b03e97a084dc7050c22ef661fb5b3ea8a44f5a63e47bc45ad0e7c",
+ "zh:4b357dfe4b820e3e4acd2881cff8288b2186491e63416751f0d12692ba478ceb",
+ "zh:81e30884d7de686265e7d87bb92527e802878c65a378470ede2a1e9f4e40ccc9",
+ "zh:82e137297f6a5a08b9ce2138f7aabea245ad99495d9d9eff502f752d6ca90dbd",
+ "zh:8eb83b67099f0ea9df238a979dff933ff50ce06a2e3ff05a48556a10f10dd204",
"zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425",
- "zh:9f2df575a5b010db60068668c48806595a3d617a2c0305035283fe8b72f07b19",
- "zh:a4602b7602c75c8f726bdc7e706dc5c26736e47cc8381be01386aa8d8d998403",
- "zh:bc25fefeeee10425df7aebfc21dc6532d19acdf03fa97b9e6d8c113adffd0a1d",
- "zh:f445592040b5fc368a12e6edeffc951b2eb41e86413c4074638a13376e25a9cc",
- "zh:ff43962a48bd8f85e17188736bbd3c145b6a1320bd8303221f6b4f9ec861e1e6",
+ "zh:d0ba30886cbe41850fee689f51ef9088578f323cfd21817bb409951d43c465eb",
+ "zh:dd48e7089784454bc03d713e9057f5ca0ea1613bd402125054a51894957b7925",
+ "zh:f250fa81e54cf60fcb0e9c0fc4ac043f1ecc2ac24967f628b3609364fcab3d04",
+ "zh:f38fc09fc25a8d2cf89a4d4cd6a5ef7cb1aad72798dbdcad58b8876b6a551a54",
+ "zh:f7c7380fdf126e1901f2084588dbfd724c76cb131ccfa795a541219111103c06",
]
}
provider "registry.terraform.io/hashicorp/local" {
- version = "2.7.0"
+ version = "2.9.0"
constraints = "~> 2.0"
hashes = [
- "h1:sSwlfp2etjCaE9hIF7bJBDjRIhDCVFglEOVyiCI7vgs=",
- "zh:261fec71bca13e0a7812dc0d8ae9af2b4326b24d9b2e9beab3d2400fab5c5f9a",
- "zh:308da3b5376a9ede815042deec5af1050ec96a5a5410a2206ae847d82070a23e",
- "zh:3d056924c420464dc8aba10e1915956b2e5c4d55b11ffff79aa8be563fbfe298",
- "zh:643256547b155459c45e0a3e8aab0570db59923c68daf2086be63c444c8c445b",
+ "h1:9rBZCMNpxKwMlRbWH2QpwD3kqUCAejdOZQ/aiiDObXQ=",
+ "h1:m24fjcInWvTVZ1XSo2MaNuKPe+X/gfG8SIi09rA7a7M=",
+ "zh:0baa4566cf77f1ff52f4293d1c8536202dd23edc197c3196413a28343c3ac3a0",
+ "zh:16b5559c3c07088ddad11a9bb9e9c0799999363c2958e9a5be2bcbbf2cd9ca64",
+ "zh:197c79015a10d1cce904a8ea722cbc750c42aeae2da53f44a6a0751d9fd1aa90",
+ "zh:29d0b03e5343a80677ebfeb2e2c31cbe4b1f65e736e53417454a4277fec2544c",
+ "zh:4896bfa6cf1d2fd562b47ef2e87f47862ae92a04f8ad5d764380f0c6653473b8",
+ "zh:531f8529cbca49f681883e57761a05a8398afaef6d1ab0d205d26bf12f4428e8",
+ "zh:6aaf5011d83161c86d2bfb80c0923ec934e578288758da2f37acb7aec129004b",
+ "zh:7430275253d3d3c40aa6179e0ec0d63212874dbbc06c5a51b9d07ec590f9756c",
"zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3",
- "zh:7aa4d0b853f84205e8cf79f30c9b2c562afbfa63592f7231b6637e5d7a6b5b27",
- "zh:7dc251bbc487d58a6ab7f5b07ec9edc630edb45d89b761dba28e0e2ba6b1c11f",
- "zh:7ee0ca546cd065030039168d780a15cbbf1765a4c70cd56d394734ab112c93da",
- "zh:b1d5d80abb1906e6c6b3685a52a0192b4ca6525fe090881c64ec6f67794b1300",
- "zh:d81ea9856d61db3148a4fc6c375bf387a721d78fc1fea7a8823a027272a47a78",
- "zh:df0a1f0afc947b8bfc88617c1ad07a689ce3bd1a29fd97318392e6bdd32b230b",
- "zh:dfbcad800240e0c68c43e0866f2a751cff09777375ec701918881acf67a268da",
+ "zh:be17dc611e95e26cdf6cad79dfccf1064f0e32032a2efeb939a9bbe7fb1cbfe9",
+ "zh:f0e3b0aa644202e1d79d2000dca91f6019425da71e9800fa23f27e51c034f195",
+ "zh:f62bae4519e4ead49182ddc8afe8cf61e2a4c3ba3973b0fbba967736a2696aa3",
+ "zh:fcafa360a5b0b96244f26f4e3a6d642b716a376557142c2442ff2fb12d11da18",
]
}
provider "registry.terraform.io/hashicorp/null" {
- version = "3.2.4"
+ version = "3.3.1"
constraints = "~> 3.0, ~> 3.2"
hashes = [
- "h1:L5V05xwp/Gto1leRryuesxjMfgZwjb7oool4WS1UEFQ=",
- "zh:59f6b52ab4ff35739647f9509ee6d93d7c032985d9f8c6237d1f8a59471bbbe2",
+ "h1:TuxJq10DVnRP7c5HBZPyyvQGcckNVfijyU1eXEu5e4M=",
+ "h1:m5FqidbIgh+E9OigiZh8/xbkvpUQFSj3hZo/jqNLCLQ=",
+ "zh:08c59776542ea16e5a8545752787b17ff412922182b4cfabe16139197be8ac44",
+ "zh:123109cc7e5ed6d515787fbc212f2a3fd5e75647bb24ab7c801ccd4d4ed42451",
+ "zh:14b3fa4372754b54844b41d5dbd4671a292d8d6828b90169061feb4d7b15dd05",
+ "zh:56a4daaa3212f57b764bf3d1f333141c6610c5f21abb240e0111221f7c7fa4d4",
"zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3",
- "zh:795c897119ff082133150121d39ff26cb5f89a730a2c8c26f3a9c1abf81a9c43",
- "zh:7b9c7b16f118fbc2b05a983817b8ce2f86df125857966ad356353baf4bff5c0a",
- "zh:85e33ab43e0e1726e5f97a874b8e24820b6565ff8076523cc2922ba671492991",
- "zh:9d32ac3619cfc93eb3c4f423492a8e0f79db05fec58e449dee9b2d5873d5f69f",
- "zh:9e15c3c9dd8e0d1e3731841d44c34571b6c97f5b95e8296a45318b94e5287a6e",
- "zh:b4c2ab35d1b7696c30b64bf2c0f3a62329107bd1a9121ce70683dec58af19615",
- "zh:c43723e8cc65bcdf5e0c92581dcbbdcbdcf18b8d2037406a5f2033b1e22de442",
- "zh:ceb5495d9c31bfb299d246ab333f08c7fb0d67a4f82681fbf47f2a21c3e11ab5",
- "zh:e171026b3659305c558d9804062762d168f50ba02b88b231d20ec99578a6233f",
- "zh:ed0fe2acdb61330b01841fa790be00ec6beaac91d41f311fb8254f74eb6a711f",
+ "zh:7e888a026dbacd2474a42264227ae35f639780f0f0c613529d10a95cd61988b3",
+ "zh:85a53646267e87d600df7124e4767ffde9bba3b6356d45d961618bdd68131cc7",
+ "zh:8ffa0e9c7c39b2ab0905b472465d6e35ef0b776b3f6273bb34c150340b61bff1",
+ "zh:9846510a1841530d4403f4818e233f91e3b3bade7441047599fbf800742f65be",
+ "zh:afa98d44860875f037c6def0a7e6ff208e042712ba771f620482b143cd336891",
+ "zh:bdca130d9ef27488ae0b13bc8fd8019e8bbdd4f2ceff29da066bd333165d68c5",
+ "zh:cb3b94cbca88210dd0d1f11e2b8a89333f48c3857faf8f70f589072ce7c28610",
+ "zh:f0c0ba87925fe32f84b80f7513b1efb1b0866f51f899ba825e95ad59ff09b018",
]
}
provider "registry.terraform.io/hashicorp/random" {
- version = "3.8.1"
+ version = "3.9.0"
constraints = "~> 3.0"
hashes = [
- "h1:u8AKlWVDTH5r9YLSeswoVEjiY72Rt4/ch7U+61ZDkiQ=",
- "zh:08dd03b918c7b55713026037c5400c48af5b9f468f483463321bd18e17b907b4",
- "zh:0eee654a5542dc1d41920bbf2419032d6f0d5625b03bd81339e5b33394a3e0ae",
- "zh:229665ddf060aa0ed315597908483eee5b818a17d09b6417a0f52fd9405c4f57",
- "zh:2469d2e48f28076254a2a3fc327f184914566d9e40c5780b8d96ebf7205f8bc0",
- "zh:37d7eb334d9561f335e748280f5535a384a88675af9a9eac439d4cfd663bcb66",
- "zh:741101426a2f2c52dee37122f0f4a2f2d6af6d852cb1db634480a86398fa3511",
+ "h1:OO+IuvQJSPmWdN8AyyIEvPJbLvDQpgX/zbktoa9KsJE=",
+ "h1:UlBuNVuCGJ39tTv2c5gz2NRZnQbXfbIWbTzWcth5o74=",
+ "zh:161ad0bd9a75768c82f53fb6e7172a9d8be2d4889b012645a34795031aaf1bf1",
+ "zh:19dc9a5b17729725ccfc4f45b0500af0ee5bc6b6b160c7adb8f2bf617d2c80ea",
+ "zh:269eda8fe42daa7974d5a34d166c3ba9defe80cde86c01e4dadcfdf2e1f05e5f",
+ "zh:373f7c65566f8f2cc7f45d698654feb9d988996957e1266a69ca00c52d6d16d0",
+ "zh:5599d16804c41c83009ec621b6d6b6f74e102f5827678a4750f8809055546b61",
+ "zh:583be0440469a22bff70dcfa56593b01566860b29607437264adb51060cf46fc",
+ "zh:5f211d8ec3f2e1f414870d9584bfe26e6995560ef81c748f8447a48164767398",
"zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3",
- "zh:a902473f08ef8df62cfe6116bd6c157070a93f66622384300de235a533e9d4a9",
- "zh:b85c511a23e57a2147355932b3b6dce2a11e856b941165793a0c3d7578d94d05",
- "zh:c5172226d18eaac95b1daac80172287b69d4ce32750c82ad77fa0768be4ea4b8",
- "zh:dab4434dba34aad569b0bc243c2d3f3ff86dd7740def373f2a49816bd2ff819b",
- "zh:f49fd62aa8c5525a5c17abd51e27ca5e213881d58882fd42fec4a545b53c9699",
+ "zh:7b547fd16216761ef86efc3ed516ac5ac0c5c42b7c7eb24a08cef2d93f69ed5e",
+ "zh:7e7c0679daf2a382151d05068c8c3f0dae6b7b7dccf818827b73dd08638df2ef",
+ "zh:8089dec888a8038b9b4fb23b3df7e1057293dbc5b60b42cc47ff690d69d4b61b",
+ "zh:c51f15a031edfd6f23ce8ced3446ca7f8d8d647e2499890d7d5d10d5016d7257",
+ "zh:c94784f005708890dc6895afd53636ec00ec1e430b15d41e5aebfb1d4b39bd04",
]
}
diff --git a/examples/default/README.md b/examples/default/README.md
index c75e37831f..2f2a0d2b54 100644
--- a/examples/default/README.md
+++ b/examples/default/README.md
@@ -42,7 +42,7 @@ terraform output -raw webhook_secret
| Name | Version |
|------|---------|
-| [random](#provider\_random) | 3.8.1 |
+| [random](#provider\_random) | 3.9.0 |
## Modules
diff --git a/examples/ephemeral/.terraform.lock.hcl b/examples/ephemeral/.terraform.lock.hcl
index 136f5367b1..c96d2b19bf 100644
--- a/examples/ephemeral/.terraform.lock.hcl
+++ b/examples/ephemeral/.terraform.lock.hcl
@@ -2,84 +2,92 @@
# Manual edits may be lost in future updates.
provider "registry.terraform.io/hashicorp/aws" {
- version = "6.35.1"
- constraints = ">= 5.0.0, >= 6.21.0"
+ version = "6.63.0"
+ constraints = ">= 5.0.0, >= 6.21.0, >= 6.33.0"
hashes = [
- "h1:xD+5zPhF0ry3sutriARfFVIg5m38VwYt66RveI3aUyI=",
- "zh:0a16d1b0ba9379e5c5295e6b3caa42f0b8ba6b9f0a7cc9dbe58c232cf995db2d",
- "zh:4b2e69907a1a2c557e45ef590f9fd6187ab5bf90378346ba9f723535e49ce908",
- "zh:56bdafda0d629e15dc3dd9275b54f1fb953e2e09a3bc1a34e027da9d03ea4893",
- "zh:5b84e933989150249036f84faad221dce0daa9d3043ff24401547e18f00b121e",
- "zh:70bac98c27a14cb2cedabd741a1f7f1bab074c127efdcf02b54dbcf0d03db3cc",
- "zh:7184f48bd077eaf68e184fd44f97e2d971cb77c59a68aedb95a0f8dc01b134fe",
- "zh:7367589ae8b584bfcd83c973f5003e15010a453349c017a0d2cca8772d4fcfd9",
- "zh:7ec9699dee49dd31bbc2d0e50fa1fff451eee5c1d9fd59bca7412acb49ce6594",
- "zh:92dd139b96977a64af0e976cd06e84921033678ab97550f1b687c0ea54a8e82c",
+ "h1:9cre7jh1lSs/9igpgAcENMUAUlYW3HCtkav3up4oit0=",
+ "h1:dRlYHkc+r6fgzF57WC7Zjcmb6sF/6TTGDEgwGK+LAZY=",
+ "zh:005d56736afd17d963998c405cee6f434dbc23a415109f9435ff1542879ae611",
+ "zh:026ef126321a86ad7080b5d858e2527f96f5289678cbcd8856296e229c43339d",
+ "zh:06e0b58b2d1eddb5137fc86bee7ad2d07953c0bc3f57cccfc5ae0d2456068a3a",
+ "zh:07221735d61ababed84734e5ffcfc5bd59d01f29f029166ba5f2175895dceed1",
+ "zh:1a72db00583112bdb8c19b213a78a3f5de754fffc08f07e061f4e326289fab7d",
+ "zh:32968e74a53b03e97a084dc7050c22ef661fb5b3ea8a44f5a63e47bc45ad0e7c",
+ "zh:4b357dfe4b820e3e4acd2881cff8288b2186491e63416751f0d12692ba478ceb",
+ "zh:81e30884d7de686265e7d87bb92527e802878c65a378470ede2a1e9f4e40ccc9",
+ "zh:82e137297f6a5a08b9ce2138f7aabea245ad99495d9d9eff502f752d6ca90dbd",
+ "zh:8eb83b67099f0ea9df238a979dff933ff50ce06a2e3ff05a48556a10f10dd204",
"zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425",
- "zh:9f2df575a5b010db60068668c48806595a3d617a2c0305035283fe8b72f07b19",
- "zh:a4602b7602c75c8f726bdc7e706dc5c26736e47cc8381be01386aa8d8d998403",
- "zh:bc25fefeeee10425df7aebfc21dc6532d19acdf03fa97b9e6d8c113adffd0a1d",
- "zh:f445592040b5fc368a12e6edeffc951b2eb41e86413c4074638a13376e25a9cc",
- "zh:ff43962a48bd8f85e17188736bbd3c145b6a1320bd8303221f6b4f9ec861e1e6",
+ "zh:d0ba30886cbe41850fee689f51ef9088578f323cfd21817bb409951d43c465eb",
+ "zh:dd48e7089784454bc03d713e9057f5ca0ea1613bd402125054a51894957b7925",
+ "zh:f250fa81e54cf60fcb0e9c0fc4ac043f1ecc2ac24967f628b3609364fcab3d04",
+ "zh:f38fc09fc25a8d2cf89a4d4cd6a5ef7cb1aad72798dbdcad58b8876b6a551a54",
+ "zh:f7c7380fdf126e1901f2084588dbfd724c76cb131ccfa795a541219111103c06",
]
}
provider "registry.terraform.io/hashicorp/local" {
- version = "2.7.0"
+ version = "2.9.0"
constraints = "~> 2.0"
hashes = [
- "h1:sSwlfp2etjCaE9hIF7bJBDjRIhDCVFglEOVyiCI7vgs=",
- "zh:261fec71bca13e0a7812dc0d8ae9af2b4326b24d9b2e9beab3d2400fab5c5f9a",
- "zh:308da3b5376a9ede815042deec5af1050ec96a5a5410a2206ae847d82070a23e",
- "zh:3d056924c420464dc8aba10e1915956b2e5c4d55b11ffff79aa8be563fbfe298",
- "zh:643256547b155459c45e0a3e8aab0570db59923c68daf2086be63c444c8c445b",
+ "h1:9rBZCMNpxKwMlRbWH2QpwD3kqUCAejdOZQ/aiiDObXQ=",
+ "h1:m24fjcInWvTVZ1XSo2MaNuKPe+X/gfG8SIi09rA7a7M=",
+ "zh:0baa4566cf77f1ff52f4293d1c8536202dd23edc197c3196413a28343c3ac3a0",
+ "zh:16b5559c3c07088ddad11a9bb9e9c0799999363c2958e9a5be2bcbbf2cd9ca64",
+ "zh:197c79015a10d1cce904a8ea722cbc750c42aeae2da53f44a6a0751d9fd1aa90",
+ "zh:29d0b03e5343a80677ebfeb2e2c31cbe4b1f65e736e53417454a4277fec2544c",
+ "zh:4896bfa6cf1d2fd562b47ef2e87f47862ae92a04f8ad5d764380f0c6653473b8",
+ "zh:531f8529cbca49f681883e57761a05a8398afaef6d1ab0d205d26bf12f4428e8",
+ "zh:6aaf5011d83161c86d2bfb80c0923ec934e578288758da2f37acb7aec129004b",
+ "zh:7430275253d3d3c40aa6179e0ec0d63212874dbbc06c5a51b9d07ec590f9756c",
"zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3",
- "zh:7aa4d0b853f84205e8cf79f30c9b2c562afbfa63592f7231b6637e5d7a6b5b27",
- "zh:7dc251bbc487d58a6ab7f5b07ec9edc630edb45d89b761dba28e0e2ba6b1c11f",
- "zh:7ee0ca546cd065030039168d780a15cbbf1765a4c70cd56d394734ab112c93da",
- "zh:b1d5d80abb1906e6c6b3685a52a0192b4ca6525fe090881c64ec6f67794b1300",
- "zh:d81ea9856d61db3148a4fc6c375bf387a721d78fc1fea7a8823a027272a47a78",
- "zh:df0a1f0afc947b8bfc88617c1ad07a689ce3bd1a29fd97318392e6bdd32b230b",
- "zh:dfbcad800240e0c68c43e0866f2a751cff09777375ec701918881acf67a268da",
+ "zh:be17dc611e95e26cdf6cad79dfccf1064f0e32032a2efeb939a9bbe7fb1cbfe9",
+ "zh:f0e3b0aa644202e1d79d2000dca91f6019425da71e9800fa23f27e51c034f195",
+ "zh:f62bae4519e4ead49182ddc8afe8cf61e2a4c3ba3973b0fbba967736a2696aa3",
+ "zh:fcafa360a5b0b96244f26f4e3a6d642b716a376557142c2442ff2fb12d11da18",
]
}
provider "registry.terraform.io/hashicorp/null" {
- version = "3.2.4"
+ version = "3.3.1"
constraints = "~> 3.0, ~> 3.2"
hashes = [
- "h1:L5V05xwp/Gto1leRryuesxjMfgZwjb7oool4WS1UEFQ=",
- "zh:59f6b52ab4ff35739647f9509ee6d93d7c032985d9f8c6237d1f8a59471bbbe2",
+ "h1:TuxJq10DVnRP7c5HBZPyyvQGcckNVfijyU1eXEu5e4M=",
+ "h1:m5FqidbIgh+E9OigiZh8/xbkvpUQFSj3hZo/jqNLCLQ=",
+ "zh:08c59776542ea16e5a8545752787b17ff412922182b4cfabe16139197be8ac44",
+ "zh:123109cc7e5ed6d515787fbc212f2a3fd5e75647bb24ab7c801ccd4d4ed42451",
+ "zh:14b3fa4372754b54844b41d5dbd4671a292d8d6828b90169061feb4d7b15dd05",
+ "zh:56a4daaa3212f57b764bf3d1f333141c6610c5f21abb240e0111221f7c7fa4d4",
"zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3",
- "zh:795c897119ff082133150121d39ff26cb5f89a730a2c8c26f3a9c1abf81a9c43",
- "zh:7b9c7b16f118fbc2b05a983817b8ce2f86df125857966ad356353baf4bff5c0a",
- "zh:85e33ab43e0e1726e5f97a874b8e24820b6565ff8076523cc2922ba671492991",
- "zh:9d32ac3619cfc93eb3c4f423492a8e0f79db05fec58e449dee9b2d5873d5f69f",
- "zh:9e15c3c9dd8e0d1e3731841d44c34571b6c97f5b95e8296a45318b94e5287a6e",
- "zh:b4c2ab35d1b7696c30b64bf2c0f3a62329107bd1a9121ce70683dec58af19615",
- "zh:c43723e8cc65bcdf5e0c92581dcbbdcbdcf18b8d2037406a5f2033b1e22de442",
- "zh:ceb5495d9c31bfb299d246ab333f08c7fb0d67a4f82681fbf47f2a21c3e11ab5",
- "zh:e171026b3659305c558d9804062762d168f50ba02b88b231d20ec99578a6233f",
- "zh:ed0fe2acdb61330b01841fa790be00ec6beaac91d41f311fb8254f74eb6a711f",
+ "zh:7e888a026dbacd2474a42264227ae35f639780f0f0c613529d10a95cd61988b3",
+ "zh:85a53646267e87d600df7124e4767ffde9bba3b6356d45d961618bdd68131cc7",
+ "zh:8ffa0e9c7c39b2ab0905b472465d6e35ef0b776b3f6273bb34c150340b61bff1",
+ "zh:9846510a1841530d4403f4818e233f91e3b3bade7441047599fbf800742f65be",
+ "zh:afa98d44860875f037c6def0a7e6ff208e042712ba771f620482b143cd336891",
+ "zh:bdca130d9ef27488ae0b13bc8fd8019e8bbdd4f2ceff29da066bd333165d68c5",
+ "zh:cb3b94cbca88210dd0d1f11e2b8a89333f48c3857faf8f70f589072ce7c28610",
+ "zh:f0c0ba87925fe32f84b80f7513b1efb1b0866f51f899ba825e95ad59ff09b018",
]
}
provider "registry.terraform.io/hashicorp/random" {
- version = "3.8.1"
+ version = "3.9.0"
constraints = "~> 3.0"
hashes = [
- "h1:u8AKlWVDTH5r9YLSeswoVEjiY72Rt4/ch7U+61ZDkiQ=",
- "zh:08dd03b918c7b55713026037c5400c48af5b9f468f483463321bd18e17b907b4",
- "zh:0eee654a5542dc1d41920bbf2419032d6f0d5625b03bd81339e5b33394a3e0ae",
- "zh:229665ddf060aa0ed315597908483eee5b818a17d09b6417a0f52fd9405c4f57",
- "zh:2469d2e48f28076254a2a3fc327f184914566d9e40c5780b8d96ebf7205f8bc0",
- "zh:37d7eb334d9561f335e748280f5535a384a88675af9a9eac439d4cfd663bcb66",
- "zh:741101426a2f2c52dee37122f0f4a2f2d6af6d852cb1db634480a86398fa3511",
+ "h1:OO+IuvQJSPmWdN8AyyIEvPJbLvDQpgX/zbktoa9KsJE=",
+ "h1:UlBuNVuCGJ39tTv2c5gz2NRZnQbXfbIWbTzWcth5o74=",
+ "zh:161ad0bd9a75768c82f53fb6e7172a9d8be2d4889b012645a34795031aaf1bf1",
+ "zh:19dc9a5b17729725ccfc4f45b0500af0ee5bc6b6b160c7adb8f2bf617d2c80ea",
+ "zh:269eda8fe42daa7974d5a34d166c3ba9defe80cde86c01e4dadcfdf2e1f05e5f",
+ "zh:373f7c65566f8f2cc7f45d698654feb9d988996957e1266a69ca00c52d6d16d0",
+ "zh:5599d16804c41c83009ec621b6d6b6f74e102f5827678a4750f8809055546b61",
+ "zh:583be0440469a22bff70dcfa56593b01566860b29607437264adb51060cf46fc",
+ "zh:5f211d8ec3f2e1f414870d9584bfe26e6995560ef81c748f8447a48164767398",
"zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3",
- "zh:a902473f08ef8df62cfe6116bd6c157070a93f66622384300de235a533e9d4a9",
- "zh:b85c511a23e57a2147355932b3b6dce2a11e856b941165793a0c3d7578d94d05",
- "zh:c5172226d18eaac95b1daac80172287b69d4ce32750c82ad77fa0768be4ea4b8",
- "zh:dab4434dba34aad569b0bc243c2d3f3ff86dd7740def373f2a49816bd2ff819b",
- "zh:f49fd62aa8c5525a5c17abd51e27ca5e213881d58882fd42fec4a545b53c9699",
+ "zh:7b547fd16216761ef86efc3ed516ac5ac0c5c42b7c7eb24a08cef2d93f69ed5e",
+ "zh:7e7c0679daf2a382151d05068c8c3f0dae6b7b7dccf818827b73dd08638df2ef",
+ "zh:8089dec888a8038b9b4fb23b3df7e1057293dbc5b60b42cc47ff690d69d4b61b",
+ "zh:c51f15a031edfd6f23ce8ced3446ca7f8d8d647e2499890d7d5d10d5016d7257",
+ "zh:c94784f005708890dc6895afd53636ec00ec1e430b15d41e5aebfb1d4b39bd04",
]
}
diff --git a/examples/ephemeral/README.md b/examples/ephemeral/README.md
index e6bf4961b4..890ea32f84 100644
--- a/examples/ephemeral/README.md
+++ b/examples/ephemeral/README.md
@@ -41,7 +41,7 @@ terraform output webhook_secret
| Name | Version |
|------|---------|
-| [random](#provider\_random) | 3.8.1 |
+| [random](#provider\_random) | 3.9.0 |
## Modules
diff --git a/examples/multi-runner/.terraform.lock.hcl b/examples/multi-runner/.terraform.lock.hcl
index 136f5367b1..c96d2b19bf 100644
--- a/examples/multi-runner/.terraform.lock.hcl
+++ b/examples/multi-runner/.terraform.lock.hcl
@@ -2,84 +2,92 @@
# Manual edits may be lost in future updates.
provider "registry.terraform.io/hashicorp/aws" {
- version = "6.35.1"
- constraints = ">= 5.0.0, >= 6.21.0"
+ version = "6.63.0"
+ constraints = ">= 5.0.0, >= 6.21.0, >= 6.33.0"
hashes = [
- "h1:xD+5zPhF0ry3sutriARfFVIg5m38VwYt66RveI3aUyI=",
- "zh:0a16d1b0ba9379e5c5295e6b3caa42f0b8ba6b9f0a7cc9dbe58c232cf995db2d",
- "zh:4b2e69907a1a2c557e45ef590f9fd6187ab5bf90378346ba9f723535e49ce908",
- "zh:56bdafda0d629e15dc3dd9275b54f1fb953e2e09a3bc1a34e027da9d03ea4893",
- "zh:5b84e933989150249036f84faad221dce0daa9d3043ff24401547e18f00b121e",
- "zh:70bac98c27a14cb2cedabd741a1f7f1bab074c127efdcf02b54dbcf0d03db3cc",
- "zh:7184f48bd077eaf68e184fd44f97e2d971cb77c59a68aedb95a0f8dc01b134fe",
- "zh:7367589ae8b584bfcd83c973f5003e15010a453349c017a0d2cca8772d4fcfd9",
- "zh:7ec9699dee49dd31bbc2d0e50fa1fff451eee5c1d9fd59bca7412acb49ce6594",
- "zh:92dd139b96977a64af0e976cd06e84921033678ab97550f1b687c0ea54a8e82c",
+ "h1:9cre7jh1lSs/9igpgAcENMUAUlYW3HCtkav3up4oit0=",
+ "h1:dRlYHkc+r6fgzF57WC7Zjcmb6sF/6TTGDEgwGK+LAZY=",
+ "zh:005d56736afd17d963998c405cee6f434dbc23a415109f9435ff1542879ae611",
+ "zh:026ef126321a86ad7080b5d858e2527f96f5289678cbcd8856296e229c43339d",
+ "zh:06e0b58b2d1eddb5137fc86bee7ad2d07953c0bc3f57cccfc5ae0d2456068a3a",
+ "zh:07221735d61ababed84734e5ffcfc5bd59d01f29f029166ba5f2175895dceed1",
+ "zh:1a72db00583112bdb8c19b213a78a3f5de754fffc08f07e061f4e326289fab7d",
+ "zh:32968e74a53b03e97a084dc7050c22ef661fb5b3ea8a44f5a63e47bc45ad0e7c",
+ "zh:4b357dfe4b820e3e4acd2881cff8288b2186491e63416751f0d12692ba478ceb",
+ "zh:81e30884d7de686265e7d87bb92527e802878c65a378470ede2a1e9f4e40ccc9",
+ "zh:82e137297f6a5a08b9ce2138f7aabea245ad99495d9d9eff502f752d6ca90dbd",
+ "zh:8eb83b67099f0ea9df238a979dff933ff50ce06a2e3ff05a48556a10f10dd204",
"zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425",
- "zh:9f2df575a5b010db60068668c48806595a3d617a2c0305035283fe8b72f07b19",
- "zh:a4602b7602c75c8f726bdc7e706dc5c26736e47cc8381be01386aa8d8d998403",
- "zh:bc25fefeeee10425df7aebfc21dc6532d19acdf03fa97b9e6d8c113adffd0a1d",
- "zh:f445592040b5fc368a12e6edeffc951b2eb41e86413c4074638a13376e25a9cc",
- "zh:ff43962a48bd8f85e17188736bbd3c145b6a1320bd8303221f6b4f9ec861e1e6",
+ "zh:d0ba30886cbe41850fee689f51ef9088578f323cfd21817bb409951d43c465eb",
+ "zh:dd48e7089784454bc03d713e9057f5ca0ea1613bd402125054a51894957b7925",
+ "zh:f250fa81e54cf60fcb0e9c0fc4ac043f1ecc2ac24967f628b3609364fcab3d04",
+ "zh:f38fc09fc25a8d2cf89a4d4cd6a5ef7cb1aad72798dbdcad58b8876b6a551a54",
+ "zh:f7c7380fdf126e1901f2084588dbfd724c76cb131ccfa795a541219111103c06",
]
}
provider "registry.terraform.io/hashicorp/local" {
- version = "2.7.0"
+ version = "2.9.0"
constraints = "~> 2.0"
hashes = [
- "h1:sSwlfp2etjCaE9hIF7bJBDjRIhDCVFglEOVyiCI7vgs=",
- "zh:261fec71bca13e0a7812dc0d8ae9af2b4326b24d9b2e9beab3d2400fab5c5f9a",
- "zh:308da3b5376a9ede815042deec5af1050ec96a5a5410a2206ae847d82070a23e",
- "zh:3d056924c420464dc8aba10e1915956b2e5c4d55b11ffff79aa8be563fbfe298",
- "zh:643256547b155459c45e0a3e8aab0570db59923c68daf2086be63c444c8c445b",
+ "h1:9rBZCMNpxKwMlRbWH2QpwD3kqUCAejdOZQ/aiiDObXQ=",
+ "h1:m24fjcInWvTVZ1XSo2MaNuKPe+X/gfG8SIi09rA7a7M=",
+ "zh:0baa4566cf77f1ff52f4293d1c8536202dd23edc197c3196413a28343c3ac3a0",
+ "zh:16b5559c3c07088ddad11a9bb9e9c0799999363c2958e9a5be2bcbbf2cd9ca64",
+ "zh:197c79015a10d1cce904a8ea722cbc750c42aeae2da53f44a6a0751d9fd1aa90",
+ "zh:29d0b03e5343a80677ebfeb2e2c31cbe4b1f65e736e53417454a4277fec2544c",
+ "zh:4896bfa6cf1d2fd562b47ef2e87f47862ae92a04f8ad5d764380f0c6653473b8",
+ "zh:531f8529cbca49f681883e57761a05a8398afaef6d1ab0d205d26bf12f4428e8",
+ "zh:6aaf5011d83161c86d2bfb80c0923ec934e578288758da2f37acb7aec129004b",
+ "zh:7430275253d3d3c40aa6179e0ec0d63212874dbbc06c5a51b9d07ec590f9756c",
"zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3",
- "zh:7aa4d0b853f84205e8cf79f30c9b2c562afbfa63592f7231b6637e5d7a6b5b27",
- "zh:7dc251bbc487d58a6ab7f5b07ec9edc630edb45d89b761dba28e0e2ba6b1c11f",
- "zh:7ee0ca546cd065030039168d780a15cbbf1765a4c70cd56d394734ab112c93da",
- "zh:b1d5d80abb1906e6c6b3685a52a0192b4ca6525fe090881c64ec6f67794b1300",
- "zh:d81ea9856d61db3148a4fc6c375bf387a721d78fc1fea7a8823a027272a47a78",
- "zh:df0a1f0afc947b8bfc88617c1ad07a689ce3bd1a29fd97318392e6bdd32b230b",
- "zh:dfbcad800240e0c68c43e0866f2a751cff09777375ec701918881acf67a268da",
+ "zh:be17dc611e95e26cdf6cad79dfccf1064f0e32032a2efeb939a9bbe7fb1cbfe9",
+ "zh:f0e3b0aa644202e1d79d2000dca91f6019425da71e9800fa23f27e51c034f195",
+ "zh:f62bae4519e4ead49182ddc8afe8cf61e2a4c3ba3973b0fbba967736a2696aa3",
+ "zh:fcafa360a5b0b96244f26f4e3a6d642b716a376557142c2442ff2fb12d11da18",
]
}
provider "registry.terraform.io/hashicorp/null" {
- version = "3.2.4"
+ version = "3.3.1"
constraints = "~> 3.0, ~> 3.2"
hashes = [
- "h1:L5V05xwp/Gto1leRryuesxjMfgZwjb7oool4WS1UEFQ=",
- "zh:59f6b52ab4ff35739647f9509ee6d93d7c032985d9f8c6237d1f8a59471bbbe2",
+ "h1:TuxJq10DVnRP7c5HBZPyyvQGcckNVfijyU1eXEu5e4M=",
+ "h1:m5FqidbIgh+E9OigiZh8/xbkvpUQFSj3hZo/jqNLCLQ=",
+ "zh:08c59776542ea16e5a8545752787b17ff412922182b4cfabe16139197be8ac44",
+ "zh:123109cc7e5ed6d515787fbc212f2a3fd5e75647bb24ab7c801ccd4d4ed42451",
+ "zh:14b3fa4372754b54844b41d5dbd4671a292d8d6828b90169061feb4d7b15dd05",
+ "zh:56a4daaa3212f57b764bf3d1f333141c6610c5f21abb240e0111221f7c7fa4d4",
"zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3",
- "zh:795c897119ff082133150121d39ff26cb5f89a730a2c8c26f3a9c1abf81a9c43",
- "zh:7b9c7b16f118fbc2b05a983817b8ce2f86df125857966ad356353baf4bff5c0a",
- "zh:85e33ab43e0e1726e5f97a874b8e24820b6565ff8076523cc2922ba671492991",
- "zh:9d32ac3619cfc93eb3c4f423492a8e0f79db05fec58e449dee9b2d5873d5f69f",
- "zh:9e15c3c9dd8e0d1e3731841d44c34571b6c97f5b95e8296a45318b94e5287a6e",
- "zh:b4c2ab35d1b7696c30b64bf2c0f3a62329107bd1a9121ce70683dec58af19615",
- "zh:c43723e8cc65bcdf5e0c92581dcbbdcbdcf18b8d2037406a5f2033b1e22de442",
- "zh:ceb5495d9c31bfb299d246ab333f08c7fb0d67a4f82681fbf47f2a21c3e11ab5",
- "zh:e171026b3659305c558d9804062762d168f50ba02b88b231d20ec99578a6233f",
- "zh:ed0fe2acdb61330b01841fa790be00ec6beaac91d41f311fb8254f74eb6a711f",
+ "zh:7e888a026dbacd2474a42264227ae35f639780f0f0c613529d10a95cd61988b3",
+ "zh:85a53646267e87d600df7124e4767ffde9bba3b6356d45d961618bdd68131cc7",
+ "zh:8ffa0e9c7c39b2ab0905b472465d6e35ef0b776b3f6273bb34c150340b61bff1",
+ "zh:9846510a1841530d4403f4818e233f91e3b3bade7441047599fbf800742f65be",
+ "zh:afa98d44860875f037c6def0a7e6ff208e042712ba771f620482b143cd336891",
+ "zh:bdca130d9ef27488ae0b13bc8fd8019e8bbdd4f2ceff29da066bd333165d68c5",
+ "zh:cb3b94cbca88210dd0d1f11e2b8a89333f48c3857faf8f70f589072ce7c28610",
+ "zh:f0c0ba87925fe32f84b80f7513b1efb1b0866f51f899ba825e95ad59ff09b018",
]
}
provider "registry.terraform.io/hashicorp/random" {
- version = "3.8.1"
+ version = "3.9.0"
constraints = "~> 3.0"
hashes = [
- "h1:u8AKlWVDTH5r9YLSeswoVEjiY72Rt4/ch7U+61ZDkiQ=",
- "zh:08dd03b918c7b55713026037c5400c48af5b9f468f483463321bd18e17b907b4",
- "zh:0eee654a5542dc1d41920bbf2419032d6f0d5625b03bd81339e5b33394a3e0ae",
- "zh:229665ddf060aa0ed315597908483eee5b818a17d09b6417a0f52fd9405c4f57",
- "zh:2469d2e48f28076254a2a3fc327f184914566d9e40c5780b8d96ebf7205f8bc0",
- "zh:37d7eb334d9561f335e748280f5535a384a88675af9a9eac439d4cfd663bcb66",
- "zh:741101426a2f2c52dee37122f0f4a2f2d6af6d852cb1db634480a86398fa3511",
+ "h1:OO+IuvQJSPmWdN8AyyIEvPJbLvDQpgX/zbktoa9KsJE=",
+ "h1:UlBuNVuCGJ39tTv2c5gz2NRZnQbXfbIWbTzWcth5o74=",
+ "zh:161ad0bd9a75768c82f53fb6e7172a9d8be2d4889b012645a34795031aaf1bf1",
+ "zh:19dc9a5b17729725ccfc4f45b0500af0ee5bc6b6b160c7adb8f2bf617d2c80ea",
+ "zh:269eda8fe42daa7974d5a34d166c3ba9defe80cde86c01e4dadcfdf2e1f05e5f",
+ "zh:373f7c65566f8f2cc7f45d698654feb9d988996957e1266a69ca00c52d6d16d0",
+ "zh:5599d16804c41c83009ec621b6d6b6f74e102f5827678a4750f8809055546b61",
+ "zh:583be0440469a22bff70dcfa56593b01566860b29607437264adb51060cf46fc",
+ "zh:5f211d8ec3f2e1f414870d9584bfe26e6995560ef81c748f8447a48164767398",
"zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3",
- "zh:a902473f08ef8df62cfe6116bd6c157070a93f66622384300de235a533e9d4a9",
- "zh:b85c511a23e57a2147355932b3b6dce2a11e856b941165793a0c3d7578d94d05",
- "zh:c5172226d18eaac95b1daac80172287b69d4ce32750c82ad77fa0768be4ea4b8",
- "zh:dab4434dba34aad569b0bc243c2d3f3ff86dd7740def373f2a49816bd2ff819b",
- "zh:f49fd62aa8c5525a5c17abd51e27ca5e213881d58882fd42fec4a545b53c9699",
+ "zh:7b547fd16216761ef86efc3ed516ac5ac0c5c42b7c7eb24a08cef2d93f69ed5e",
+ "zh:7e7c0679daf2a382151d05068c8c3f0dae6b7b7dccf818827b73dd08638df2ef",
+ "zh:8089dec888a8038b9b4fb23b3df7e1057293dbc5b60b42cc47ff690d69d4b61b",
+ "zh:c51f15a031edfd6f23ce8ced3446ca7f8d8d647e2499890d7d5d10d5016d7257",
+ "zh:c94784f005708890dc6895afd53636ec00ec1e430b15d41e5aebfb1d4b39bd04",
]
}
diff --git a/examples/multi-runner/README.md b/examples/multi-runner/README.md
index a899015568..5bb10f7248 100644
--- a/examples/multi-runner/README.md
+++ b/examples/multi-runner/README.md
@@ -65,8 +65,8 @@ terraform output -raw webhook_secret
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | 6.35.1 |
-| [random](#provider\_random) | 3.8.1 |
+| [aws](#provider\_aws) | 6.63.0 |
+| [random](#provider\_random) | 3.9.0 |
## Modules
diff --git a/examples/prebuilt/.terraform.lock.hcl b/examples/prebuilt/.terraform.lock.hcl
index 136f5367b1..c96d2b19bf 100644
--- a/examples/prebuilt/.terraform.lock.hcl
+++ b/examples/prebuilt/.terraform.lock.hcl
@@ -2,84 +2,92 @@
# Manual edits may be lost in future updates.
provider "registry.terraform.io/hashicorp/aws" {
- version = "6.35.1"
- constraints = ">= 5.0.0, >= 6.21.0"
+ version = "6.63.0"
+ constraints = ">= 5.0.0, >= 6.21.0, >= 6.33.0"
hashes = [
- "h1:xD+5zPhF0ry3sutriARfFVIg5m38VwYt66RveI3aUyI=",
- "zh:0a16d1b0ba9379e5c5295e6b3caa42f0b8ba6b9f0a7cc9dbe58c232cf995db2d",
- "zh:4b2e69907a1a2c557e45ef590f9fd6187ab5bf90378346ba9f723535e49ce908",
- "zh:56bdafda0d629e15dc3dd9275b54f1fb953e2e09a3bc1a34e027da9d03ea4893",
- "zh:5b84e933989150249036f84faad221dce0daa9d3043ff24401547e18f00b121e",
- "zh:70bac98c27a14cb2cedabd741a1f7f1bab074c127efdcf02b54dbcf0d03db3cc",
- "zh:7184f48bd077eaf68e184fd44f97e2d971cb77c59a68aedb95a0f8dc01b134fe",
- "zh:7367589ae8b584bfcd83c973f5003e15010a453349c017a0d2cca8772d4fcfd9",
- "zh:7ec9699dee49dd31bbc2d0e50fa1fff451eee5c1d9fd59bca7412acb49ce6594",
- "zh:92dd139b96977a64af0e976cd06e84921033678ab97550f1b687c0ea54a8e82c",
+ "h1:9cre7jh1lSs/9igpgAcENMUAUlYW3HCtkav3up4oit0=",
+ "h1:dRlYHkc+r6fgzF57WC7Zjcmb6sF/6TTGDEgwGK+LAZY=",
+ "zh:005d56736afd17d963998c405cee6f434dbc23a415109f9435ff1542879ae611",
+ "zh:026ef126321a86ad7080b5d858e2527f96f5289678cbcd8856296e229c43339d",
+ "zh:06e0b58b2d1eddb5137fc86bee7ad2d07953c0bc3f57cccfc5ae0d2456068a3a",
+ "zh:07221735d61ababed84734e5ffcfc5bd59d01f29f029166ba5f2175895dceed1",
+ "zh:1a72db00583112bdb8c19b213a78a3f5de754fffc08f07e061f4e326289fab7d",
+ "zh:32968e74a53b03e97a084dc7050c22ef661fb5b3ea8a44f5a63e47bc45ad0e7c",
+ "zh:4b357dfe4b820e3e4acd2881cff8288b2186491e63416751f0d12692ba478ceb",
+ "zh:81e30884d7de686265e7d87bb92527e802878c65a378470ede2a1e9f4e40ccc9",
+ "zh:82e137297f6a5a08b9ce2138f7aabea245ad99495d9d9eff502f752d6ca90dbd",
+ "zh:8eb83b67099f0ea9df238a979dff933ff50ce06a2e3ff05a48556a10f10dd204",
"zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425",
- "zh:9f2df575a5b010db60068668c48806595a3d617a2c0305035283fe8b72f07b19",
- "zh:a4602b7602c75c8f726bdc7e706dc5c26736e47cc8381be01386aa8d8d998403",
- "zh:bc25fefeeee10425df7aebfc21dc6532d19acdf03fa97b9e6d8c113adffd0a1d",
- "zh:f445592040b5fc368a12e6edeffc951b2eb41e86413c4074638a13376e25a9cc",
- "zh:ff43962a48bd8f85e17188736bbd3c145b6a1320bd8303221f6b4f9ec861e1e6",
+ "zh:d0ba30886cbe41850fee689f51ef9088578f323cfd21817bb409951d43c465eb",
+ "zh:dd48e7089784454bc03d713e9057f5ca0ea1613bd402125054a51894957b7925",
+ "zh:f250fa81e54cf60fcb0e9c0fc4ac043f1ecc2ac24967f628b3609364fcab3d04",
+ "zh:f38fc09fc25a8d2cf89a4d4cd6a5ef7cb1aad72798dbdcad58b8876b6a551a54",
+ "zh:f7c7380fdf126e1901f2084588dbfd724c76cb131ccfa795a541219111103c06",
]
}
provider "registry.terraform.io/hashicorp/local" {
- version = "2.7.0"
+ version = "2.9.0"
constraints = "~> 2.0"
hashes = [
- "h1:sSwlfp2etjCaE9hIF7bJBDjRIhDCVFglEOVyiCI7vgs=",
- "zh:261fec71bca13e0a7812dc0d8ae9af2b4326b24d9b2e9beab3d2400fab5c5f9a",
- "zh:308da3b5376a9ede815042deec5af1050ec96a5a5410a2206ae847d82070a23e",
- "zh:3d056924c420464dc8aba10e1915956b2e5c4d55b11ffff79aa8be563fbfe298",
- "zh:643256547b155459c45e0a3e8aab0570db59923c68daf2086be63c444c8c445b",
+ "h1:9rBZCMNpxKwMlRbWH2QpwD3kqUCAejdOZQ/aiiDObXQ=",
+ "h1:m24fjcInWvTVZ1XSo2MaNuKPe+X/gfG8SIi09rA7a7M=",
+ "zh:0baa4566cf77f1ff52f4293d1c8536202dd23edc197c3196413a28343c3ac3a0",
+ "zh:16b5559c3c07088ddad11a9bb9e9c0799999363c2958e9a5be2bcbbf2cd9ca64",
+ "zh:197c79015a10d1cce904a8ea722cbc750c42aeae2da53f44a6a0751d9fd1aa90",
+ "zh:29d0b03e5343a80677ebfeb2e2c31cbe4b1f65e736e53417454a4277fec2544c",
+ "zh:4896bfa6cf1d2fd562b47ef2e87f47862ae92a04f8ad5d764380f0c6653473b8",
+ "zh:531f8529cbca49f681883e57761a05a8398afaef6d1ab0d205d26bf12f4428e8",
+ "zh:6aaf5011d83161c86d2bfb80c0923ec934e578288758da2f37acb7aec129004b",
+ "zh:7430275253d3d3c40aa6179e0ec0d63212874dbbc06c5a51b9d07ec590f9756c",
"zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3",
- "zh:7aa4d0b853f84205e8cf79f30c9b2c562afbfa63592f7231b6637e5d7a6b5b27",
- "zh:7dc251bbc487d58a6ab7f5b07ec9edc630edb45d89b761dba28e0e2ba6b1c11f",
- "zh:7ee0ca546cd065030039168d780a15cbbf1765a4c70cd56d394734ab112c93da",
- "zh:b1d5d80abb1906e6c6b3685a52a0192b4ca6525fe090881c64ec6f67794b1300",
- "zh:d81ea9856d61db3148a4fc6c375bf387a721d78fc1fea7a8823a027272a47a78",
- "zh:df0a1f0afc947b8bfc88617c1ad07a689ce3bd1a29fd97318392e6bdd32b230b",
- "zh:dfbcad800240e0c68c43e0866f2a751cff09777375ec701918881acf67a268da",
+ "zh:be17dc611e95e26cdf6cad79dfccf1064f0e32032a2efeb939a9bbe7fb1cbfe9",
+ "zh:f0e3b0aa644202e1d79d2000dca91f6019425da71e9800fa23f27e51c034f195",
+ "zh:f62bae4519e4ead49182ddc8afe8cf61e2a4c3ba3973b0fbba967736a2696aa3",
+ "zh:fcafa360a5b0b96244f26f4e3a6d642b716a376557142c2442ff2fb12d11da18",
]
}
provider "registry.terraform.io/hashicorp/null" {
- version = "3.2.4"
+ version = "3.3.1"
constraints = "~> 3.0, ~> 3.2"
hashes = [
- "h1:L5V05xwp/Gto1leRryuesxjMfgZwjb7oool4WS1UEFQ=",
- "zh:59f6b52ab4ff35739647f9509ee6d93d7c032985d9f8c6237d1f8a59471bbbe2",
+ "h1:TuxJq10DVnRP7c5HBZPyyvQGcckNVfijyU1eXEu5e4M=",
+ "h1:m5FqidbIgh+E9OigiZh8/xbkvpUQFSj3hZo/jqNLCLQ=",
+ "zh:08c59776542ea16e5a8545752787b17ff412922182b4cfabe16139197be8ac44",
+ "zh:123109cc7e5ed6d515787fbc212f2a3fd5e75647bb24ab7c801ccd4d4ed42451",
+ "zh:14b3fa4372754b54844b41d5dbd4671a292d8d6828b90169061feb4d7b15dd05",
+ "zh:56a4daaa3212f57b764bf3d1f333141c6610c5f21abb240e0111221f7c7fa4d4",
"zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3",
- "zh:795c897119ff082133150121d39ff26cb5f89a730a2c8c26f3a9c1abf81a9c43",
- "zh:7b9c7b16f118fbc2b05a983817b8ce2f86df125857966ad356353baf4bff5c0a",
- "zh:85e33ab43e0e1726e5f97a874b8e24820b6565ff8076523cc2922ba671492991",
- "zh:9d32ac3619cfc93eb3c4f423492a8e0f79db05fec58e449dee9b2d5873d5f69f",
- "zh:9e15c3c9dd8e0d1e3731841d44c34571b6c97f5b95e8296a45318b94e5287a6e",
- "zh:b4c2ab35d1b7696c30b64bf2c0f3a62329107bd1a9121ce70683dec58af19615",
- "zh:c43723e8cc65bcdf5e0c92581dcbbdcbdcf18b8d2037406a5f2033b1e22de442",
- "zh:ceb5495d9c31bfb299d246ab333f08c7fb0d67a4f82681fbf47f2a21c3e11ab5",
- "zh:e171026b3659305c558d9804062762d168f50ba02b88b231d20ec99578a6233f",
- "zh:ed0fe2acdb61330b01841fa790be00ec6beaac91d41f311fb8254f74eb6a711f",
+ "zh:7e888a026dbacd2474a42264227ae35f639780f0f0c613529d10a95cd61988b3",
+ "zh:85a53646267e87d600df7124e4767ffde9bba3b6356d45d961618bdd68131cc7",
+ "zh:8ffa0e9c7c39b2ab0905b472465d6e35ef0b776b3f6273bb34c150340b61bff1",
+ "zh:9846510a1841530d4403f4818e233f91e3b3bade7441047599fbf800742f65be",
+ "zh:afa98d44860875f037c6def0a7e6ff208e042712ba771f620482b143cd336891",
+ "zh:bdca130d9ef27488ae0b13bc8fd8019e8bbdd4f2ceff29da066bd333165d68c5",
+ "zh:cb3b94cbca88210dd0d1f11e2b8a89333f48c3857faf8f70f589072ce7c28610",
+ "zh:f0c0ba87925fe32f84b80f7513b1efb1b0866f51f899ba825e95ad59ff09b018",
]
}
provider "registry.terraform.io/hashicorp/random" {
- version = "3.8.1"
+ version = "3.9.0"
constraints = "~> 3.0"
hashes = [
- "h1:u8AKlWVDTH5r9YLSeswoVEjiY72Rt4/ch7U+61ZDkiQ=",
- "zh:08dd03b918c7b55713026037c5400c48af5b9f468f483463321bd18e17b907b4",
- "zh:0eee654a5542dc1d41920bbf2419032d6f0d5625b03bd81339e5b33394a3e0ae",
- "zh:229665ddf060aa0ed315597908483eee5b818a17d09b6417a0f52fd9405c4f57",
- "zh:2469d2e48f28076254a2a3fc327f184914566d9e40c5780b8d96ebf7205f8bc0",
- "zh:37d7eb334d9561f335e748280f5535a384a88675af9a9eac439d4cfd663bcb66",
- "zh:741101426a2f2c52dee37122f0f4a2f2d6af6d852cb1db634480a86398fa3511",
+ "h1:OO+IuvQJSPmWdN8AyyIEvPJbLvDQpgX/zbktoa9KsJE=",
+ "h1:UlBuNVuCGJ39tTv2c5gz2NRZnQbXfbIWbTzWcth5o74=",
+ "zh:161ad0bd9a75768c82f53fb6e7172a9d8be2d4889b012645a34795031aaf1bf1",
+ "zh:19dc9a5b17729725ccfc4f45b0500af0ee5bc6b6b160c7adb8f2bf617d2c80ea",
+ "zh:269eda8fe42daa7974d5a34d166c3ba9defe80cde86c01e4dadcfdf2e1f05e5f",
+ "zh:373f7c65566f8f2cc7f45d698654feb9d988996957e1266a69ca00c52d6d16d0",
+ "zh:5599d16804c41c83009ec621b6d6b6f74e102f5827678a4750f8809055546b61",
+ "zh:583be0440469a22bff70dcfa56593b01566860b29607437264adb51060cf46fc",
+ "zh:5f211d8ec3f2e1f414870d9584bfe26e6995560ef81c748f8447a48164767398",
"zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3",
- "zh:a902473f08ef8df62cfe6116bd6c157070a93f66622384300de235a533e9d4a9",
- "zh:b85c511a23e57a2147355932b3b6dce2a11e856b941165793a0c3d7578d94d05",
- "zh:c5172226d18eaac95b1daac80172287b69d4ce32750c82ad77fa0768be4ea4b8",
- "zh:dab4434dba34aad569b0bc243c2d3f3ff86dd7740def373f2a49816bd2ff819b",
- "zh:f49fd62aa8c5525a5c17abd51e27ca5e213881d58882fd42fec4a545b53c9699",
+ "zh:7b547fd16216761ef86efc3ed516ac5ac0c5c42b7c7eb24a08cef2d93f69ed5e",
+ "zh:7e7c0679daf2a382151d05068c8c3f0dae6b7b7dccf818827b73dd08638df2ef",
+ "zh:8089dec888a8038b9b4fb23b3df7e1057293dbc5b60b42cc47ff690d69d4b61b",
+ "zh:c51f15a031edfd6f23ce8ced3446ca7f8d8d647e2499890d7d5d10d5016d7257",
+ "zh:c94784f005708890dc6895afd53636ec00ec1e430b15d41e5aebfb1d4b39bd04",
]
}
diff --git a/examples/prebuilt/README.md b/examples/prebuilt/README.md
index f90a47261e..66157bb52f 100644
--- a/examples/prebuilt/README.md
+++ b/examples/prebuilt/README.md
@@ -86,8 +86,8 @@ terraform output webhook_secret
| Name | Version |
|------|---------|
-| [aws](#provider\_aws) | 6.35.1 |
-| [random](#provider\_random) | 3.8.1 |
+| [aws](#provider\_aws) | 6.63.0 |
+| [random](#provider\_random) | 3.9.0 |
## Modules
diff --git a/examples/termination-watcher/.terraform.lock.hcl b/examples/termination-watcher/.terraform.lock.hcl
index 4f33187500..ea9391b58a 100644
--- a/examples/termination-watcher/.terraform.lock.hcl
+++ b/examples/termination-watcher/.terraform.lock.hcl
@@ -2,24 +2,26 @@
# Manual edits may be lost in future updates.
provider "registry.terraform.io/hashicorp/aws" {
- version = "6.22.1"
+ version = "6.63.0"
constraints = ">= 6.21.0"
hashes = [
- "h1:PTgxp+nMDBd6EFHAIH6ceFfvwa2blqkCwXglZn6Dqa8=",
- "zh:3995ca97e6c2c1ed9e231c453287585d3dc1ca2a304683ac0b269b3448fda7c0",
- "zh:4f69f70d2edeb0dde9c693b7cd7e8e21c781b2fac7062bed5300092dbadb71e1",
- "zh:5c76042fdf3df56a1f581bc477e5d6fc3e099d4d6544fe725b3747e9990726bd",
- "zh:6ff8221340955f4b3ba9230918bb026c4414a5aebe9d0967845c43e8e8908aec",
- "zh:73cdd8638cb52bbe25887cd5b7946cc3fcb891867de11bcb0fde9b35c4f70a41",
- "zh:7af5aec2fd01fa5e5f600f1db1bcf200aaadc05a2c8ffcbb4b6b61cd2bd3e33b",
- "zh:7e055cfa7f40b667f5f7af564db9544f46aa189cdbe5530ad812e027647132f5",
+ "h1:9cre7jh1lSs/9igpgAcENMUAUlYW3HCtkav3up4oit0=",
+ "h1:dRlYHkc+r6fgzF57WC7Zjcmb6sF/6TTGDEgwGK+LAZY=",
+ "zh:005d56736afd17d963998c405cee6f434dbc23a415109f9435ff1542879ae611",
+ "zh:026ef126321a86ad7080b5d858e2527f96f5289678cbcd8856296e229c43339d",
+ "zh:06e0b58b2d1eddb5137fc86bee7ad2d07953c0bc3f57cccfc5ae0d2456068a3a",
+ "zh:07221735d61ababed84734e5ffcfc5bd59d01f29f029166ba5f2175895dceed1",
+ "zh:1a72db00583112bdb8c19b213a78a3f5de754fffc08f07e061f4e326289fab7d",
+ "zh:32968e74a53b03e97a084dc7050c22ef661fb5b3ea8a44f5a63e47bc45ad0e7c",
+ "zh:4b357dfe4b820e3e4acd2881cff8288b2186491e63416751f0d12692ba478ceb",
+ "zh:81e30884d7de686265e7d87bb92527e802878c65a378470ede2a1e9f4e40ccc9",
+ "zh:82e137297f6a5a08b9ce2138f7aabea245ad99495d9d9eff502f752d6ca90dbd",
+ "zh:8eb83b67099f0ea9df238a979dff933ff50ce06a2e3ff05a48556a10f10dd204",
"zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425",
- "zh:aba898190c668ade4471da65c96db414679367174ac5b73e8ce7551056c77e3e",
- "zh:aedaa8d7d71e6d58cdc09a7e3bcb8031b3ea496a7ac142376eb679d1756057f3",
- "zh:cb9739952d467b3f6d72d57722943956e80ab235b58a0e34758538381dcc386c",
- "zh:e12a2681028a70cb08eaf4c3364ddab386416502f966067bf99e79ba6be0d7b6",
- "zh:e32a922a7d6fd5df69b3cc92932fc2689dc195b0f8b493dcd686abdd892b06cd",
- "zh:f2dea7dead6f34b51e8b6aae177a8b333834a41d25529baa634a087d99ea32f6",
- "zh:f6eee6df0366e8452d912cfd498792579aede88de3b67c15d36b8949e37479b1",
+ "zh:d0ba30886cbe41850fee689f51ef9088578f323cfd21817bb409951d43c465eb",
+ "zh:dd48e7089784454bc03d713e9057f5ca0ea1613bd402125054a51894957b7925",
+ "zh:f250fa81e54cf60fcb0e9c0fc4ac043f1ecc2ac24967f628b3609364fcab3d04",
+ "zh:f38fc09fc25a8d2cf89a4d4cd6a5ef7cb1aad72798dbdcad58b8876b6a551a54",
+ "zh:f7c7380fdf126e1901f2084588dbfd724c76cb131ccfa795a541219111103c06",
]
}
diff --git a/mkdocs.yaml b/mkdocs.yaml
index d892cb3a58..849b9a53dc 100644
--- a/mkdocs.yaml
+++ b/mkdocs.yaml
@@ -58,6 +58,8 @@ nav:
- Configuration: configuration.md
- Getting started: getting-started.md
- Security: security.md
+ - Architecture decisions:
+ - MiniStack for integration tests: adr/0001-use-ministack-for-terraform-integration-tests.md
- Modules:
- Runners (main): modules/runners.md
- Submodules (public):
diff --git a/tests/ministack/README.md b/tests/ministack/README.md
new file mode 100644
index 0000000000..b6442194ff
--- /dev/null
+++ b/tests/ministack/README.md
@@ -0,0 +1,35 @@
+# MiniStack example tests
+
+The MiniStack workflow runs the `base`, `prebuilt`, `default`, `ephemeral`,
+`multi-runner`, and `termination-watcher` examples directly with Terraform
+1.4.0 and the latest Terraform release.
+The examples with input variables get their inputs from their own tfvars files
+in this directory. The `termination-watcher` example has no input variables
+and uses the configuration checked into the example itself. No override files,
+setup module, or checked-in Terraform fixture configuration is used. The
+helper creates and removes a temporary AMI override for `default` and
+`ephemeral`, and temporary SSM parameters for `multi-runner`.
+
+Start MiniStack, set the AWS endpoint and test credentials, then run:
+
+```sh
+tests/ministack/run-example.sh apply base
+# or
+tests/ministack/run-example.sh apply prebuilt
+# or
+tests/ministack/run-example.sh apply default
+# or
+tests/ministack/run-example.sh apply ephemeral
+# or
+tests/ministack/run-example.sh apply multi-runner
+# or
+tests/ministack/run-example.sh apply termination-watcher
+```
+
+The script also supports `init`, `plan`, and `destroy`. It creates inert Lambda
+ZIP fixtures in the paths expected by the modules when they are absent, and
+removes only the files it created. For `prebuilt`, it seeds AMI metadata through
+MiniStack's AWS-compatible EC2 API, then removes only the resources it created
+during cleanup. MiniStack v1.5.7 provides the EC2 image behavior needed by the
+`default`, `ephemeral`, and `multi-runner` examples, so they are included in
+the same lifecycle matrix.
diff --git a/tests/ministack/base.tfvars b/tests/ministack/base.tfvars
new file mode 100644
index 0000000000..8205d159f7
--- /dev/null
+++ b/tests/ministack/base.tfvars
@@ -0,0 +1,2 @@
+prefix = "ministack-base"
+aws_region = "eu-west-1"
diff --git a/tests/ministack/default.tfvars b/tests/ministack/default.tfvars
new file mode 100644
index 0000000000..9b0956e475
--- /dev/null
+++ b/tests/ministack/default.tfvars
@@ -0,0 +1,7 @@
+environment = "ministack-default"
+aws_region = "eu-west-1"
+
+github_app = {
+ id = "0"
+ key_base64 = "ministack-invalid-key"
+}
diff --git a/tests/ministack/ephemeral.tfvars b/tests/ministack/ephemeral.tfvars
new file mode 100644
index 0000000000..639098c3c0
--- /dev/null
+++ b/tests/ministack/ephemeral.tfvars
@@ -0,0 +1,7 @@
+environment = "ministack-ephemeral"
+aws_region = "eu-west-1"
+
+github_app = {
+ id = "0"
+ key_base64 = "ministack-invalid-key"
+}
diff --git a/tests/ministack/multi-runner.tfvars b/tests/ministack/multi-runner.tfvars
new file mode 100644
index 0000000000..7321053e10
--- /dev/null
+++ b/tests/ministack/multi-runner.tfvars
@@ -0,0 +1,7 @@
+environment = "ms-multi"
+aws_region = "eu-west-1"
+
+github_app = {
+ id = "0"
+ key_base64 = "ministack-invalid-key"
+}
diff --git a/tests/ministack/prebuilt.tfvars b/tests/ministack/prebuilt.tfvars
new file mode 100644
index 0000000000..94f9153ac1
--- /dev/null
+++ b/tests/ministack/prebuilt.tfvars
@@ -0,0 +1,9 @@
+environment = "ministack-prebuilt"
+aws_region = "eu-west-1"
+runner_os = "linux"
+ami_name_filter = "amzn2-ami-hvm-2.0.20231116.0-x86_64-gp2"
+
+github_app = {
+ id = "0"
+ key_base64 = "ministack-invalid-key"
+}
diff --git a/tests/ministack/run-example.sh b/tests/ministack/run-example.sh
new file mode 100755
index 0000000000..e1a1b6a813
--- /dev/null
+++ b/tests/ministack/run-example.sh
@@ -0,0 +1,285 @@
+#!/bin/sh
+
+set -eu
+
+export AWS_ACCESS_KEY_ID="${AWS_ACCESS_KEY_ID:-000000000000}"
+export AWS_SECRET_ACCESS_KEY="${AWS_SECRET_ACCESS_KEY:-test-only}"
+export AWS_DEFAULT_REGION="${AWS_DEFAULT_REGION:-eu-west-1}"
+export AWS_REGION="${AWS_REGION:-eu-west-1}"
+export AWS_ENDPOINT_URL="${AWS_ENDPOINT_URL:-http://127.0.0.1:4566}"
+export AWS_EC2_METADATA_DISABLED="${AWS_EC2_METADATA_DISABLED:-true}"
+
+action="${1:-}"
+example="${2:-}"
+tfvars_file="${3:-${MINISTACK_TFVARS_FILE:-}}"
+
+case "$example" in
+ base | prebuilt | default | ephemeral | multi-runner)
+ use_tfvars=true
+ ;;
+ termination-watcher)
+ use_tfvars=false
+ ;;
+ *)
+ echo "Supported examples for the runner are: base, prebuilt, default, ephemeral, multi-runner, termination-watcher" >&2
+ exit 64
+ ;;
+esac
+
+case "$action" in
+ init | plan | apply | destroy) ;;
+ *)
+ echo "Usage: $0 {init|plan|apply|destroy} {base|prebuilt|default|ephemeral|multi-runner|termination-watcher} [TFVARS_FILE]" >&2
+ exit 64
+ ;;
+esac
+
+script_dir=$(CDPATH='' cd -- "$(dirname -- "$0")" && pwd)
+source_root=$(CDPATH='' cd -- "$script_dir/../.." && pwd)
+example_root="$source_root/examples/$example"
+
+if [ "$use_tfvars" = true ]; then
+ if [ -z "$tfvars_file" ]; then
+ tfvars_file="$script_dir/$example.tfvars"
+ fi
+
+ case "$tfvars_file" in
+ /*) ;;
+ *) tfvars_file="$PWD/$tfvars_file" ;;
+ esac
+
+ if [ ! -f "$tfvars_file" ]; then
+ echo "Terraform variables file not found: $tfvars_file" >&2
+ echo "Pass it as the third argument or set MINISTACK_TFVARS_FILE." >&2
+ exit 66
+ fi
+fi
+
+lambda_fixture_dir=""
+lambda_created_paths=""
+ami_created_ids=""
+ssm_created_names=""
+override_created_paths=""
+lambda_zip_paths="
+$source_root/lambdas/functions/ami-housekeeper/ami-housekeeper.zip
+$source_root/lambdas/functions/control-plane/runners.zip
+$source_root/lambdas/functions/gh-agent-syncer/runner-binaries-syncer.zip
+$source_root/lambdas/functions/webhook/webhook.zip
+$source_root/lambdas/functions/termination-watcher/termination-watcher.zip
+"
+
+cleanup() {
+ for override_file in $override_created_paths; do
+ rm -f "$override_file"
+ done
+
+ for name in $ssm_created_names; do
+ ministack_aws ssm delete-parameter --name "$name" >/dev/null 2>&1 || true
+ done
+
+ for image_id in $ami_created_ids; do
+ ministack_aws ec2 deregister-image --image-id "$image_id" >/dev/null 2>&1 || true
+ done
+
+ for lambda_zip in $lambda_created_paths; do
+ rm -f "$lambda_zip"
+ done
+
+ if [ -n "$lambda_fixture_dir" ]; then
+ rm -rf "$lambda_fixture_dir"
+ fi
+}
+trap cleanup EXIT INT TERM
+
+ministack_aws() {
+ aws --endpoint-url "$AWS_ENDPOINT_URL" --region "$AWS_DEFAULT_REGION" "$@"
+}
+
+wait_for_ministack() {
+ attempts=60
+
+ while ! curl -fsS --max-time 2 "$AWS_ENDPOINT_URL/_ministack/health" >/dev/null 2>&1; do
+ attempts=$((attempts - 1))
+ if [ "$attempts" -le 0 ]; then
+ echo "MiniStack did not become ready at $AWS_ENDPOINT_URL." >&2
+ exit 70
+ fi
+ sleep 1
+ done
+}
+
+create_ami_fixture() {
+ ami_name="$1"
+ architecture="$2"
+ ami_id=$(ministack_aws ec2 describe-images \
+ --owners self \
+ --filters "Name=name,Values=$ami_name" "Name=state,Values=available" \
+ --query 'Images[0].ImageId' \
+ --output text)
+
+ if [ "$ami_id" = "None" ]; then
+ ami_id=$(ministack_aws ec2 register-image \
+ --name "$ami_name" \
+ --description "MiniStack test-only AMI" \
+ --architecture "$architecture" \
+ --root-device-name /dev/xvda \
+ --virtualization-type hvm \
+ --image-location alpine:3.20 \
+ --query 'ImageId' \
+ --output text)
+ ami_created_ids="$ami_created_ids
+$ami_id"
+ fi
+
+}
+
+create_ssm_fixture() {
+ name="$1"
+ value="$2"
+
+ if ministack_aws ssm get-parameter --name "$name" >/dev/null 2>&1; then
+ return
+ fi
+
+ ministack_aws ssm put-parameter \
+ --name "$name" \
+ --type String \
+ --value "$value" \
+ --overwrite >/dev/null
+ ssm_created_names="$ssm_created_names
+$name"
+}
+
+create_ami_override() {
+ override_file="$example_root/zz_ministack_ami_override.tf"
+ printf '%s\n' \
+ 'module "runners" {' \
+ ' ami = {' \
+ ' filter = {' \
+ ' name = ["amzn2-ami-hvm-2.0.20231116.0-x86_64-gp2"]' \
+ ' state = ["available"]' \
+ ' }' \
+ ' owners = ["amazon"]' \
+ ' }' \
+ ' enable_runner_binaries_syncer = false' \
+ '}' \
+ '' \
+ 'output "runners" {' \
+ ' value = { lambda_syncer_name = null }' \
+ '}' > "$override_file"
+ override_created_paths="$override_created_paths
+$override_file"
+}
+
+create_multi_runner_override() {
+ override_file="$example_root/zz_ministack_override.tf"
+ printf '%s\n' \
+ 'module "runners" {' \
+ ' multi_runner_config = {' \
+ ' for name, config in local.multi_runner_config :' \
+ ' name => merge(config, {' \
+ ' runner_config = merge(config.runner_config, {' \
+ ' enable_runner_binaries_syncer = false' \
+ ' ami = {' \
+ ' filter = {' \
+ ' name = [length(regexall("windows", name)) > 0 ? "Windows_Server-2022-English-Full-Base" : length(regexall("ubuntu", name)) > 0 ? "ubuntu/images/hvm-ssd/ubuntu-22.04-amd64-server" : "amzn2-ami-hvm-2.0.20231116.0-x86_64-gp2"]' \
+ ' state = ["available"]' \
+ ' }' \
+ ' owners = [length(regexall("ubuntu", name)) > 0 ? "099720109477" : "amazon"]' \
+ ' }' \
+ ' })' \
+ ' })' \
+ ' }' \
+ '}' > "$override_file"
+ override_created_paths="$override_created_paths
+$override_file"
+}
+
+create_ministack_fixtures() {
+ if ! command -v aws >/dev/null 2>&1; then
+ echo "AWS CLI is required to seed MiniStack API fixtures." >&2
+ exit 69
+ fi
+
+ if ! command -v zip >/dev/null 2>&1; then
+ echo "zip is required to create Lambda fixture packages." >&2
+ exit 69
+ fi
+
+ if ! command -v curl >/dev/null 2>&1; then
+ echo "curl is required to check MiniStack readiness." >&2
+ exit 69
+ fi
+
+ wait_for_ministack
+
+ lambda_fixture_dir=$(mktemp -d "${TMPDIR:-/tmp}/terraform-aws-github-runner-ministack-lambda.XXXXXX")
+ printf '%s\n' 'exports.handler = async () => ({ statusCode: 200, body: "ministack" });' > "$lambda_fixture_dir/index.js"
+ (CDPATH='' cd -- "$lambda_fixture_dir" && zip -q ministack-lambda.zip index.js)
+
+ for lambda_zip in $lambda_zip_paths; do
+ if [ -e "$lambda_zip" ]; then
+ continue
+ fi
+ mkdir -p "$(dirname "$lambda_zip")"
+ cp "$lambda_fixture_dir/ministack-lambda.zip" "$lambda_zip"
+ lambda_created_paths="$lambda_created_paths
+$lambda_zip"
+ done
+
+ case "$example" in
+ default | ephemeral)
+ create_ami_override
+ ;;
+ prebuilt)
+ create_ami_fixture \
+ "amzn2-ami-hvm-2.0.20231116.0-x86_64-gp2" \
+ x86_64 >/dev/null
+ ;;
+ multi-runner)
+ create_multi_runner_override
+ create_ssm_fixture \
+ "/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-x86_64" \
+ "ami-0abcdef1234567890"
+ create_ssm_fixture \
+ "/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-arm64" \
+ "ami-0abcdef1234567890"
+ ;;
+ esac
+}
+
+case "$action" in
+ plan | apply | destroy)
+ create_ministack_fixtures
+ ;;
+esac
+
+terraform_init() {
+ terraform -chdir="$example_root" init -backend=false -input=false -lockfile=readonly
+}
+
+terraform_example() {
+ if [ "$use_tfvars" = true ]; then
+ terraform -chdir="$example_root" "$@" -var-file="$tfvars_file"
+ else
+ terraform -chdir="$example_root" "$@"
+ fi
+}
+
+case "$action" in
+ init)
+ terraform_init
+ ;;
+ plan)
+ terraform_init
+ terraform_example plan -input=false
+ ;;
+ apply)
+ terraform_init
+ terraform_example apply -auto-approve -input=false
+ ;;
+ destroy)
+ terraform_init
+ terraform_example destroy -auto-approve -input=false
+ ;;
+esac