Skip to content

feat(compute-providers): add Lambda MicroVM provider - #5255

Draft
edersonbrilhante wants to merge 21 commits into
experimental-multi-runner-config-v2-20260805from
feat-microvm-runner-provider
Draft

feat(compute-providers): add Lambda MicroVM provider#5255
edersonbrilhante wants to merge 21 commits into
experimental-multi-runner-config-v2-20260805from
feat-microvm-runner-provider

Conversation

@edersonbrilhante

@edersonbrilhante edersonbrilhante commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Description

Adds an AWS Lambda MicroVM runner provider on top of the experimental multi-runner provider stack.

  • implements MicroVM pool adjustment, scale-up, scale-down, inventory, execution, and termination through @aws-sdk/client-lambda-microvms;
  • creates ephemeral GitHub JIT runner configuration in SecureString SSM parameters for the MicroVM image run hook;
  • replaces unsupported runtime MicroVM TagResource, ListTags, and UntagResource calls with dedicated non-secret SSM ownership and lifecycle records;
  • keeps ownership metadata separate from JIT secrets, prevents concurrent state updates from clobbering one another, retries incomplete cleanup, and deletes metadata only after terminal or absent inventory;
  • carries the provider-isolation changes required by the centralized webhook provider contract;
  • requires explicit dynamic-label allowlists for image ARN, image version, and egress connector overrides;
  • documents the MicroVM image contract, required environment variables, IAM permissions, and shared execution-role trust boundary.

This branch is rebased on and targets experimental-multi-runner-config-v2-20260805. It includes the nine patch-equivalent provider-isolation commits from #5254 because the MicroVM webhook routing depends on that centralized contract.

Deployments must provide MICROVM_METADATA_SSM_PATH and grant the MicroVM control-plane Lambdas ssm:GetParametersByPath, ssm:PutParameter, and ssm:DeleteParameter on that dedicated prefix, together with the documented Lambda lifecycle permissions.

Test Plan

  • Focused MicroVM compute-provider tests: 94 passed.
  • Focused SSM utility tests: 22 passed.
  • Full Lambda workspace test suite passed.
  • Full Lambda workspace lint and formatting checks passed for all eight projects.
  • Both rewritten commit ranges are patch-equivalent to their original ranges.
  • git diff --check and Terraform formatting checks passed.
  • All rewritten commits are signed.
  • No live AWS Lambda MicroVM deployment was performed.

Related Issues

@github-actions

github-actions Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Dependency Review

The following issues were found:
  • ✅ 0 vulnerable package(s)
  • ✅ 0 package(s) with incompatible licenses
  • ✅ 0 package(s) with invalid SPDX license definitions
  • ⚠️ 1 package(s) with unknown licenses.
See the Details below.

License Issues

lambdas/libs/compute-providers/package.json

PackageVersionLicenseIssue Type
@aws-sdk/client-lambda-microvms^3.1074.0NullUnknown License

OpenSSF Scorecard

Scorecard details
PackageVersionScoreDetails
npm/@aws-sdk/client-lambda-microvms ^3.1074.0 UnknownUnknown
npm/@aws-sdk/client-lambda-microvms 3.1104.0 🟢 6.9
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Code-Review⚠️ 0Found 2/30 approved changesets -- score normalized to 0
Token-Permissions🟢 5detected GitHub workflow tokens with excessive permissions
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
License🟢 10license file detected
Branch-Protection🟢 5branch protection is not maximal on development and all release branches
Signed-Releases⚠️ 0Project has not signed or included provenance with any releases.
Security-Policy🟢 10security policy file detected
Packaging🟢 10packaging workflow detected
SAST🟢 10SAST tool is run on all commits
Binary-Artifacts🟢 9binaries present in source code
Pinned-Dependencies🟢 8dependency not pinned by hash detected -- score normalized to 8
Fuzzing🟢 10project is fuzzed
npm/@aws-sdk/core 3.977.6 🟢 6.9
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Code-Review⚠️ 0Found 2/30 approved changesets -- score normalized to 0
Token-Permissions🟢 5detected GitHub workflow tokens with excessive permissions
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
License🟢 10license file detected
Branch-Protection🟢 5branch protection is not maximal on development and all release branches
Signed-Releases⚠️ 0Project has not signed or included provenance with any releases.
Security-Policy🟢 10security policy file detected
Packaging🟢 10packaging workflow detected
SAST🟢 10SAST tool is run on all commits
Binary-Artifacts🟢 9binaries present in source code
Pinned-Dependencies🟢 8dependency not pinned by hash detected -- score normalized to 8
Fuzzing🟢 10project is fuzzed
npm/@aws-sdk/credential-provider-env 3.972.67 🟢 6.9
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Code-Review⚠️ 0Found 2/30 approved changesets -- score normalized to 0
Token-Permissions🟢 5detected GitHub workflow tokens with excessive permissions
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
License🟢 10license file detected
Branch-Protection🟢 5branch protection is not maximal on development and all release branches
Signed-Releases⚠️ 0Project has not signed or included provenance with any releases.
Security-Policy🟢 10security policy file detected
Packaging🟢 10packaging workflow detected
SAST🟢 10SAST tool is run on all commits
Binary-Artifacts🟢 9binaries present in source code
Pinned-Dependencies🟢 8dependency not pinned by hash detected -- score normalized to 8
Fuzzing🟢 10project is fuzzed
npm/@aws-sdk/credential-provider-http 3.972.69 🟢 6.9
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Code-Review⚠️ 0Found 2/30 approved changesets -- score normalized to 0
Token-Permissions🟢 5detected GitHub workflow tokens with excessive permissions
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
License🟢 10license file detected
Branch-Protection🟢 5branch protection is not maximal on development and all release branches
Signed-Releases⚠️ 0Project has not signed or included provenance with any releases.
Security-Policy🟢 10security policy file detected
Packaging🟢 10packaging workflow detected
SAST🟢 10SAST tool is run on all commits
Binary-Artifacts🟢 9binaries present in source code
Pinned-Dependencies🟢 8dependency not pinned by hash detected -- score normalized to 8
Fuzzing🟢 10project is fuzzed
npm/@aws-sdk/credential-provider-ini 3.973.12 🟢 6.9
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Code-Review⚠️ 0Found 2/30 approved changesets -- score normalized to 0
Token-Permissions🟢 5detected GitHub workflow tokens with excessive permissions
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
License🟢 10license file detected
Branch-Protection🟢 5branch protection is not maximal on development and all release branches
Signed-Releases⚠️ 0Project has not signed or included provenance with any releases.
Security-Policy🟢 10security policy file detected
Packaging🟢 10packaging workflow detected
SAST🟢 10SAST tool is run on all commits
Binary-Artifacts🟢 9binaries present in source code
Pinned-Dependencies🟢 8dependency not pinned by hash detected -- score normalized to 8
Fuzzing🟢 10project is fuzzed
npm/@aws-sdk/credential-provider-login 3.972.74 🟢 6.9
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Code-Review⚠️ 0Found 2/30 approved changesets -- score normalized to 0
Token-Permissions🟢 5detected GitHub workflow tokens with excessive permissions
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
License🟢 10license file detected
Branch-Protection🟢 5branch protection is not maximal on development and all release branches
Signed-Releases⚠️ 0Project has not signed or included provenance with any releases.
Security-Policy🟢 10security policy file detected
Packaging🟢 10packaging workflow detected
SAST🟢 10SAST tool is run on all commits
Binary-Artifacts🟢 9binaries present in source code
Pinned-Dependencies🟢 8dependency not pinned by hash detected -- score normalized to 8
Fuzzing🟢 10project is fuzzed
npm/@aws-sdk/credential-provider-node 3.972.78 🟢 6.9
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Code-Review⚠️ 0Found 2/30 approved changesets -- score normalized to 0
Token-Permissions🟢 5detected GitHub workflow tokens with excessive permissions
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
License🟢 10license file detected
Branch-Protection🟢 5branch protection is not maximal on development and all release branches
Signed-Releases⚠️ 0Project has not signed or included provenance with any releases.
Security-Policy🟢 10security policy file detected
Packaging🟢 10packaging workflow detected
SAST🟢 10SAST tool is run on all commits
Binary-Artifacts🟢 9binaries present in source code
Pinned-Dependencies🟢 8dependency not pinned by hash detected -- score normalized to 8
Fuzzing🟢 10project is fuzzed
npm/@aws-sdk/credential-provider-process 3.972.67 🟢 6.9
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Code-Review⚠️ 0Found 2/30 approved changesets -- score normalized to 0
Token-Permissions🟢 5detected GitHub workflow tokens with excessive permissions
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
License🟢 10license file detected
Branch-Protection🟢 5branch protection is not maximal on development and all release branches
Signed-Releases⚠️ 0Project has not signed or included provenance with any releases.
Security-Policy🟢 10security policy file detected
Packaging🟢 10packaging workflow detected
SAST🟢 10SAST tool is run on all commits
Binary-Artifacts🟢 9binaries present in source code
Pinned-Dependencies🟢 8dependency not pinned by hash detected -- score normalized to 8
Fuzzing🟢 10project is fuzzed
npm/@aws-sdk/credential-provider-sso 3.973.11 🟢 6.9
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Code-Review⚠️ 0Found 2/30 approved changesets -- score normalized to 0
Token-Permissions🟢 5detected GitHub workflow tokens with excessive permissions
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
License🟢 10license file detected
Branch-Protection🟢 5branch protection is not maximal on development and all release branches
Signed-Releases⚠️ 0Project has not signed or included provenance with any releases.
Security-Policy🟢 10security policy file detected
Packaging🟢 10packaging workflow detected
SAST🟢 10SAST tool is run on all commits
Binary-Artifacts🟢 9binaries present in source code
Pinned-Dependencies🟢 8dependency not pinned by hash detected -- score normalized to 8
Fuzzing🟢 10project is fuzzed
npm/@aws-sdk/credential-provider-web-identity 3.972.73 🟢 6.9
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Code-Review⚠️ 0Found 2/30 approved changesets -- score normalized to 0
Token-Permissions🟢 5detected GitHub workflow tokens with excessive permissions
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
License🟢 10license file detected
Branch-Protection🟢 5branch protection is not maximal on development and all release branches
Signed-Releases⚠️ 0Project has not signed or included provenance with any releases.
Security-Policy🟢 10security policy file detected
Packaging🟢 10packaging workflow detected
SAST🟢 10SAST tool is run on all commits
Binary-Artifacts🟢 9binaries present in source code
Pinned-Dependencies🟢 8dependency not pinned by hash detected -- score normalized to 8
Fuzzing🟢 10project is fuzzed
npm/@aws-sdk/nested-clients 3.997.41 🟢 6.9
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Code-Review⚠️ 0Found 2/30 approved changesets -- score normalized to 0
Token-Permissions🟢 5detected GitHub workflow tokens with excessive permissions
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
License🟢 10license file detected
Branch-Protection🟢 5branch protection is not maximal on development and all release branches
Signed-Releases⚠️ 0Project has not signed or included provenance with any releases.
Security-Policy🟢 10security policy file detected
Packaging🟢 10packaging workflow detected
SAST🟢 10SAST tool is run on all commits
Binary-Artifacts🟢 9binaries present in source code
Pinned-Dependencies🟢 8dependency not pinned by hash detected -- score normalized to 8
Fuzzing🟢 10project is fuzzed
npm/@aws-sdk/signature-v4-multi-region 3.996.43 🟢 6.9
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Code-Review⚠️ 0Found 2/30 approved changesets -- score normalized to 0
Token-Permissions🟢 5detected GitHub workflow tokens with excessive permissions
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
License🟢 10license file detected
Branch-Protection🟢 5branch protection is not maximal on development and all release branches
Signed-Releases⚠️ 0Project has not signed or included provenance with any releases.
Security-Policy🟢 10security policy file detected
Packaging🟢 10packaging workflow detected
SAST🟢 10SAST tool is run on all commits
Binary-Artifacts🟢 9binaries present in source code
Pinned-Dependencies🟢 8dependency not pinned by hash detected -- score normalized to 8
Fuzzing🟢 10project is fuzzed
npm/@aws-sdk/token-providers 3.1103.0 🟢 6.9
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Code-Review⚠️ 0Found 2/30 approved changesets -- score normalized to 0
Token-Permissions🟢 5detected GitHub workflow tokens with excessive permissions
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
License🟢 10license file detected
Branch-Protection🟢 5branch protection is not maximal on development and all release branches
Signed-Releases⚠️ 0Project has not signed or included provenance with any releases.
Security-Policy🟢 10security policy file detected
Packaging🟢 10packaging workflow detected
SAST🟢 10SAST tool is run on all commits
Binary-Artifacts🟢 9binaries present in source code
Pinned-Dependencies🟢 8dependency not pinned by hash detected -- score normalized to 8
Fuzzing🟢 10project is fuzzed
npm/@aws-sdk/types 3.974.2 🟢 6.9
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Code-Review⚠️ 0Found 2/30 approved changesets -- score normalized to 0
Token-Permissions🟢 5detected GitHub workflow tokens with excessive permissions
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
License🟢 10license file detected
Branch-Protection🟢 5branch protection is not maximal on development and all release branches
Signed-Releases⚠️ 0Project has not signed or included provenance with any releases.
Security-Policy🟢 10security policy file detected
Packaging🟢 10packaging workflow detected
SAST🟢 10SAST tool is run on all commits
Binary-Artifacts🟢 9binaries present in source code
Pinned-Dependencies🟢 8dependency not pinned by hash detected -- score normalized to 8
Fuzzing🟢 10project is fuzzed
npm/@aws-sdk/xml-builder 3.972.37 🟢 6.9
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Code-Review⚠️ 0Found 2/30 approved changesets -- score normalized to 0
Token-Permissions🟢 5detected GitHub workflow tokens with excessive permissions
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
License🟢 10license file detected
Branch-Protection🟢 5branch protection is not maximal on development and all release branches
Signed-Releases⚠️ 0Project has not signed or included provenance with any releases.
Security-Policy🟢 10security policy file detected
Packaging🟢 10packaging workflow detected
SAST🟢 10SAST tool is run on all commits
Binary-Artifacts🟢 9binaries present in source code
Pinned-Dependencies🟢 8dependency not pinned by hash detected -- score normalized to 8
Fuzzing🟢 10project is fuzzed
npm/@aws/lambda-invoke-store 0.3.0 UnknownUnknown
npm/@smithy/core 3.31.1 UnknownUnknown
npm/@smithy/credential-provider-imds 4.4.16 UnknownUnknown
npm/@smithy/fetch-http-handler 5.6.13 UnknownUnknown
npm/@smithy/node-http-handler 4.9.13 UnknownUnknown
npm/@smithy/signature-v4 5.6.12 UnknownUnknown
npm/@smithy/types 4.16.1 UnknownUnknown

Scanned Files

  • lambdas/libs/compute-providers/package.json
  • lambdas/yarn.lock

@edersonbrilhante
edersonbrilhante force-pushed the feat-microvm-runner-provider branch 3 times, most recently from 5209852 to 61e4aa2 Compare August 6, 2026 19:20
@edersonbrilhante
edersonbrilhante force-pushed the refactor-ec2-provider-isolation branch from 1fc78c4 to b948b89 Compare August 7, 2026 21:42
@edersonbrilhante
edersonbrilhante force-pushed the feat-microvm-runner-provider branch from 61e4aa2 to a638a13 Compare August 7, 2026 21:42
@edersonbrilhante
edersonbrilhante force-pushed the refactor-ec2-provider-isolation branch 4 times, most recently from 6d3c6ba to cefb18a Compare August 12, 2026 22:42
@edersonbrilhante
edersonbrilhante force-pushed the feat-microvm-runner-provider branch from a638a13 to 2384430 Compare August 12, 2026 22:47
@edersonbrilhante
edersonbrilhante force-pushed the refactor-ec2-provider-isolation branch from cefb18a to 6a5922a Compare August 12, 2026 22:57
@edersonbrilhante
edersonbrilhante force-pushed the feat-microvm-runner-provider branch from 2384430 to 7679346 Compare August 12, 2026 23:21
@edersonbrilhante
edersonbrilhante changed the base branch from refactor-ec2-provider-isolation to experimental-multi-runner-config-v2-20260805 August 12, 2026 23:23
@edersonbrilhante
edersonbrilhante force-pushed the feat-microvm-runner-provider branch from 7679346 to 11c97de Compare August 12, 2026 23:41
@edersonbrilhante
edersonbrilhante force-pushed the experimental-multi-runner-config-v2-20260805 branch from 2aa54f7 to 4dd211d Compare August 13, 2026 11:13
@edersonbrilhante
edersonbrilhante force-pushed the feat-microvm-runner-provider branch from 11c97de to fa2e601 Compare August 13, 2026 11:13
@edersonbrilhante
edersonbrilhante force-pushed the experimental-multi-runner-config-v2-20260805 branch from 4dd211d to ca56c4c Compare August 13, 2026 11:41
@edersonbrilhante
edersonbrilhante force-pushed the feat-microvm-runner-provider branch 2 times, most recently from 4f6c867 to 93bd091 Compare August 13, 2026 12:25
@edersonbrilhante
edersonbrilhante force-pushed the experimental-multi-runner-config-v2-20260805 branch from 28d8007 to 8512ab0 Compare August 14, 2026 13:09
@edersonbrilhante
edersonbrilhante force-pushed the feat-microvm-runner-provider branch from 93bd091 to dfdcdaf Compare August 14, 2026 13:22
@edersonbrilhante
edersonbrilhante force-pushed the experimental-multi-runner-config-v2-20260805 branch from 09f9f2e to 50ecc05 Compare August 15, 2026 02:00
@edersonbrilhante
edersonbrilhante force-pushed the feat-microvm-runner-provider branch 3 times, most recently from aced1a1 to fc93bea Compare August 17, 2026 21:48
@edersonbrilhante
edersonbrilhante force-pushed the experimental-multi-runner-config-v2-20260805 branch from 127c8f8 to eb845d9 Compare August 19, 2026 14:18
@edersonbrilhante
edersonbrilhante changed the base branch from experimental-multi-runner-config-v2-20260805 to main August 19, 2026 14:22
@edersonbrilhante
edersonbrilhante force-pushed the feat-microvm-runner-provider branch from fc93bea to 8d5c416 Compare August 19, 2026 14:53
@edersonbrilhante edersonbrilhante changed the title feat(runner-providers): add Lambda MicroVM provider feat(compute-providers): add Lambda MicroVM provider Aug 19, 2026
@edersonbrilhante
edersonbrilhante changed the base branch from main to refactor-ec2-provider-isolation August 19, 2026 14:57
@edersonbrilhante
edersonbrilhante changed the base branch from refactor-ec2-provider-isolation to main August 19, 2026 14:57
@edersonbrilhante
edersonbrilhante changed the base branch from main to refactor-ec2-provider-isolation August 19, 2026 15:16
@edersonbrilhante
edersonbrilhante force-pushed the feat-microvm-runner-provider branch from 8d5c416 to d2b8b0f Compare August 19, 2026 18:12
@edersonbrilhante
edersonbrilhante force-pushed the feat-microvm-runner-provider branch from d2b8b0f to f10a155 Compare August 19, 2026 19:34
@edersonbrilhante
edersonbrilhante changed the base branch from refactor-ec2-provider-isolation to experimental-multi-runner-config-v2-20260805 August 19, 2026 19:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant