feat(microvm): add lifecycle hook service - #5280
Open
edersonbrilhante wants to merge 38 commits into
Open
edersonbrilhante wants to merge 38 commits into
edersonbrilhante wants to merge 38 commits into
Conversation
Contributor
Dependency ReviewThe following issues were found:
License Issueslambdas/services/microvm-lifecycle-hooks/package.json
OpenSSF Scorecard
Scanned Files
|
edersonbrilhante
changed the base branch from
feat-dynamodb-storage-provider
to
main
September 2, 2026 17:26
edersonbrilhante
force-pushed
the
feat-microvm-lifecycle-hooks
branch
from
September 3, 2026 21:41
13c3be9 to
3b01396
Compare
edersonbrilhante
changed the base branch from
main
to
feat-microvm-runner-provider
September 3, 2026 21:41
edersonbrilhante
force-pushed
the
feat-microvm-runner-provider
branch
from
September 3, 2026 22:57
201a04e to
c02017f
Compare
edersonbrilhante
force-pushed
the
feat-microvm-lifecycle-hooks
branch
from
September 3, 2026 23:01
3b01396 to
ff1c303
Compare
edersonbrilhante
force-pushed
the
feat-microvm-lifecycle-hooks
branch
from
September 3, 2026 23:09
ff1c303 to
875750c
Compare
edersonbrilhante
force-pushed
the
feat-microvm-runner-provider
branch
from
September 3, 2026 23:15
c02017f to
8d9e62b
Compare
edersonbrilhante
force-pushed
the
feat-microvm-lifecycle-hooks
branch
from
September 3, 2026 23:15
875750c to
1ebe98e
Compare
edersonbrilhante
force-pushed
the
feat-microvm-runner-provider
branch
from
September 4, 2026 10:49
8d9e62b to
972ddf3
Compare
edersonbrilhante
force-pushed
the
feat-microvm-lifecycle-hooks
branch
from
September 4, 2026 10:50
b3fc224 to
b2ebcca
Compare
edersonbrilhante
force-pushed
the
feat-microvm-runner-provider
branch
from
September 4, 2026 11:20
972ddf3 to
23c8fc3
Compare
edersonbrilhante
force-pushed
the
feat-microvm-lifecycle-hooks
branch
from
September 4, 2026 11:20
b2ebcca to
79651c5
Compare
edersonbrilhante
force-pushed
the
feat-microvm-runner-provider
branch
from
September 4, 2026 11:36
23c8fc3 to
ab91edd
Compare
edersonbrilhante
force-pushed
the
feat-microvm-lifecycle-hooks
branch
from
September 4, 2026 11:37
79651c5 to
140f5af
Compare
edersonbrilhante
force-pushed
the
feat-microvm-runner-provider
branch
from
September 4, 2026 11:43
ab91edd to
c65071f
Compare
edersonbrilhante
force-pushed
the
feat-microvm-lifecycle-hooks
branch
from
September 4, 2026 11:43
140f5af to
485aa97
Compare
edersonbrilhante
force-pushed
the
feat-microvm-runner-provider
branch
from
September 4, 2026 11:49
c65071f to
77bbad2
Compare
edersonbrilhante
force-pushed
the
feat-microvm-lifecycle-hooks
branch
from
September 4, 2026 11:50
485aa97 to
8d00fd5
Compare
edersonbrilhante
force-pushed
the
feat-microvm-runner-provider
branch
from
September 4, 2026 11:53
77bbad2 to
d38a4e8
Compare
edersonbrilhante
force-pushed
the
feat-microvm-lifecycle-hooks
branch
from
September 4, 2026 11:53
8d00fd5 to
955406c
Compare
edersonbrilhante
force-pushed
the
feat-microvm-runner-provider
branch
from
September 4, 2026 12:04
d38a4e8 to
1a8e263
Compare
edersonbrilhante
force-pushed
the
feat-microvm-lifecycle-hooks
branch
from
September 4, 2026 12:04
955406c to
4317bfb
Compare
edersonbrilhante
force-pushed
the
feat-microvm-runner-provider
branch
from
September 4, 2026 12:10
1a8e263 to
86985a0
Compare
edersonbrilhante
force-pushed
the
feat-microvm-lifecycle-hooks
branch
from
September 4, 2026 12:11
4317bfb to
f5669db
Compare
edersonbrilhante
force-pushed
the
feat-microvm-runner-provider
branch
from
September 4, 2026 12:16
86985a0 to
470cb89
Compare
edersonbrilhante
force-pushed
the
feat-microvm-lifecycle-hooks
branch
from
September 4, 2026 12:16
f5669db to
9148986
Compare
edersonbrilhante
force-pushed
the
feat-microvm-runner-provider
branch
from
September 4, 2026 12:23
470cb89 to
c6f336b
Compare
edersonbrilhante
force-pushed
the
feat-microvm-lifecycle-hooks
branch
from
September 4, 2026 12:23
9148986 to
f0b9051
Compare
This was referenced Sep 21, 2026
guicaulada
reviewed
Sep 22, 2026
|
|
||
| const payload = parseObject<VersionedRunPayload>(request.runHookPayload, 'runHookPayload must contain valid JSON'); | ||
| if (payload.version === 1) { | ||
| if (!hasExactKeys(payload, ['version', 'runnerConfigSsmPath'])) { |
Contributor
There was a problem hiding this comment.
I think we should align this parser with the payload produced by #5255. I tried passing the actual createMicrovmRunHookPayload output into parseRunRequest, and it was rejected both with and without a pinned image version: the producer always includes runnerTokenSsmPath, and can also include imageArn and imageVersion.
There also seems to be a path distinction we should preserve: the producer uses runnerConfigSsmPath for bootstrap settings and runnerTokenSsmPath for the JIT token, whereas this maps the former to SSM_TOKEN_PATH. Maybe a test that feeds the producer output directly into this parser would help keep the two contracts aligned. Is there a translation step I'm missing?
## Description Documents the deployment dependencies for Lambda MicroVM runners after #5280. - Distinguishes the MicroVM image build role from the runner execution role. - Explains that the build role creates and publishes the image, while the execution role is passed by the control-plane TypeScript to `RunMicrovm` and runs the ephemeral job. - Documents the dependency order: apply the MicroVM foundation, build and release the lifecycle-hook server, build the image with Packer, and deploy the runner control plane. - Points to the repository examples for the foundation, image, lifecycle-hook, and combined EC2/MicroVM webhook deployment. - Documents that the lifecycle-hook server is built and released through the existing Lambda artifact workflow, then embedded in the MicroVM image. ## Test Plan - Ran `git diff --check`. - Reviewed the documented role ownership and commands against the foundation, MicroVM provider, image, lifecycle-hook, and multi-runner example implementations. - Confirmed the change is documentation-only; no infrastructure was deployed. ## Related Issues - Stacked on #5280. - Related foundation work: #5377. - Related MicroVM provider work: #5413 and #5255. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…to feat-microvm-lifecycle-hooks
…to feat-microvm-lifecycle-hooks
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds the MicroVM lifecycle-hook service and the CI, release, and integration-test changes needed to exercise the complete provider flow.
lambdas/services/microvm-lifecycle-hooksservice with strict lifecycle-payload validation, runner-configuration consumption, process management, graceful shutdown, and the documented Node 24/s6 runtime contract.multi-runner-webhookexample, which configures EC2 and MicroVM lanes behind one webhook deployment.Test Plan
git diff --check.init -lockfile=readonlyfor the unifiedmulti-runner-webhookexample.Related Issues