GeezerVison is showing github.com — Enable Renovate automerge by carole-lavillonniere · Pull Request #109 · localstack/lambda-runtime-init
Conversation
Towards COSY-807
Related to #108
-
Automerge renovate PR for non major bumps
-
The goal is to have vulnerabilities auto-resolve weekly without human intervention.
-
⚠️ Can a repo admin add branch protection and make the CI checks required before merging?
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Automerge non-major gomod bumps (minor/patch), Go-toolchain bumps, and
non-major GitHub Actions updates so Go-dep/stdlib CVE fixes land without
manual review. Security updates get their own ungrouped, automerged path
via vulnerabilityAlerts so a CVE fix is never blocked behind the grouped
batch. Majors stay manual (automerge explicitly set to false).
Automerge still waits for green CI before merging.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for pushing this forward Carole 🙌
The automerge settings for non-major changes look reasonable 👍
I updated the following settings. Can you double-check before merging?
The default branch is localstack:

I enabled build and the RIE smoke test as mandatory checks. We also require PRs to be merged with a squash commit (following the LS standard):

❓ Two questions:
- a) How do we ensure that we catch any potentially breaking regression through the LocalStack tests before (accidentally) shipping lambda-images? We are currently missing managed versioning for K8 and sufficient quality gates in the lambda-images repo. See this diagram (internal Notion link) for a release overview (discussed in Lambda handover to squad-aws).
- b) How do we integrate upstream changes now that merging into
localstack is blocked? Can we adjust the instructions accordingly? A quick (and dirty) option would be to add bypass rules exceptions; any better ideas?
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
dfangl
commented
Jul 1, 2026
•
edited
Loading
Uh oh!
There was an error while loading. Please reload this page.
|
I approved, but I agree - we should have a cooldown defined, and the lifecycle of the lambda images is also a thing to take into account!
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
|
Re:cooldown @dfangl @joe4dev
I've pushed this commit 4df9e43
We now have a 3 days cooldown for routine dep bumps but security fixes ship immediately. How does this sound?
a) How do we ensure that we catch any potentially breaking regression through the LocalStack tests before (accidentally) shipping lambda-images?
I share the concern, however do you think it's blocking this PR?
How do we integrate upstream changes now that merging into localstack is blocked?
@joe4dev what about removing the rule that enforces squash only? I've added "automergeStrategy": "squash" to the renovate config to make sure we always squash those: 6a6a2e7
Security: Shall we consider enabling some standard security scan
Added a trivy scan e520701. I think it makes sense to use the same tool we use in https://github.com/localstack/secops wdyt? @joe4dev can you add this to the required checks for a PR merge?
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
a) How do we ensure that we catch any potentially breaking regression through the LocalStack tests before (accidentally) shipping lambda-images?
I share the concern, however do you think it's blocking this PR?
I don't think we should block this great progress, but let's take some precautions to mitigate the risk of breaking Lambda without prior warning for our enterprise customers using K8. Some ideas for at least better awareness (before we can harden the process): Add a warning to the lambda-images README and/or PR template to wait for 🟢 LocalStack tests before shipping a new RIE in Lambda images.
With https://github.com/localstack/lambda-images/pull/42, the barrier to merge a RIE dependency update is quite low in the lambda-images repo. Such a RenovateBot PR should at least come with a big warning if we don't enforce automated CI checks. We could also think about a ls-ci-green label that needs to be added by a human before merging as an explicit step.
what about removing the rule that enforces squash only?
I don't think that changes anything because the current process requires force-pushing and branch protection disables that (which I think is a good think in general).
Security: I added the new security check. Thanks for adding 👍 Adopting what we use by default sounds reasonable (I'm not up-to-date).
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
let's take some precautions to mitigate the risk of breaking Lambda without prior warning for our enterprise customers using K8.
Thanks @joe4dev, I understand better your concern now.
What about this:
- RIE automerges and autoreleases new versions
- New weekly workflow in
localstack-pro that picks up last RIE version and opens a PR
localstack-pro PR gets merged when tests are green + we push a new tag to the same RIE version: for example RIE v0.2.1 gets new tag validated-v0.2.1
- Update
lambda-images renovate config so it opens a PR for new RIE version prefixed with validated-*
How does this look @joe4dev @dfangl? I would take care of this as part of my ticket since my goal is to fully automate the RIE CVEs remediation.
what about removing the rule that enforces squash only?
I don't think that changes anything because the current process requires force-pushing and branch protection disables that (which I think is a good think in general).
We could add the aws team to the bypass list, or create a new smaller dedicated team e.g. lambda-upstream-sync?
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
|
Thank you @carole-lavillonniere for pushing the RIE CVE remediation 🙏
Using a pre-release might be a temporary option for now. I wanted to share some broader considerations/concerns; good to be aware of but not all in scope here:
What about this:
1. RIE automerges and autoreleases new versions
2. New weekly workflow in `localstack-pro` that picks up last RIE version and opens a PR
3. `localstack-pro` PR gets merged when tests are green + we push a new tag to the same RIE version: for example RIE `v0.2.1` gets new tag `validated-v0.2.1`
4. Update `lambda-images` renovate config so it opens a PR for new RIE version prefixed with `validated-*`
Do I understand correctly that Docker would use a separate release (v0.2.1) than K8 (validated-v0.2.1)?
The RIE version is part of the our Dockerhub tags (e.g., 3.14_v0.2.1) and relevant for customers using LocalStack behind a corporate proxy. I don't think we should expose such an internal validated-* tag to customers. It's a matter of trust and raises questions about whether the regular release is not validated. If we go this route, I would opt for a prerelease (pre-) similar to #104
We might want to (re-)consider the e2e release process:
- We ultimately need Define dependency management for RIE and LocalStack versions in K8 (IMHO: biggest time 💣 and low-hanging fruit ). ATM, shipping a broken release (automatically) requires immediate customer attention, and we have no way of fixing it ourselves due to unmanaged versioning.
- The proposed workflow above makes shipping proper dependency management harder by creating a chicken-egg problem. It assumes the localstack-pro PR runs before the lambda-images PR, but the localstack-pro PR ultimately depends on lambda-images by explicitly referencing an image (unless we treat Docker and K8 staged).
- Ideally (out-of-scope), we want to ensure the K8 tests run successfully before shipping a new lambda-image-RIE combination
- In the Lambda handover (internal Notion link), Alex suggested guarding the RIE release early by running localstack-pro tests in a private fork of the RIE. That's a way to ensure we release only a working version, but it requires (much) more effort to implement. I'm not sure whether that's worth it.
We could add the aws team to the bypass list, or create a new smaller dedicated team e.g. lambda-upstream-sync?
Yeah, we can try that (both work as long as we're careful with force-pushing and don't give RenovateBot force-push permissions)
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
|
Would it perhaps be easier not to use dependabot/renovatebot for this, but trigger an init update automatically after the PRO PR is merged, without a new release? I agree that the double release is not optimal.
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Thank you @carole-lavillonniere for pushing the RIE CVE remediation 🙏
Using a pre-release might be a temporary option for now. I wanted to share some broader considerations/concerns; good to be aware of but not all in scope here:
What about this:
1. RIE automerges and autoreleases new versions
2. New weekly workflow in `localstack-pro` that picks up last RIE version and opens a PR
3. `localstack-pro` PR gets merged when tests are green + we push a new tag to the same RIE version: for example RIE `v0.2.1` gets new tag `validated-v0.2.1`
4. Update `lambda-images` renovate config so it opens a PR for new RIE version prefixed with `validated-*`
Do I understand correctly that Docker would use a separate release (v0.2.1) than K8 (validated-v0.2.1)? The RIE version is part of the our Dockerhub tags (e.g., 3.14_v0.2.1) and relevant for customers using LocalStack behind a corporate proxy. I don't think we should expose such an internal validated-* tag to customers. It's a matter of trust and raises questions about whether the regular release is not validated. If we go this route, I would opt for a prerelease (pre-) similar to #104
We might want to (re-)consider the e2e release process:
* We ultimately need [Define dependency management for RIE and LocalStack versions in K8](https://linear.app/localstack/issue/DEVX-327/define-clear-dependency-management-for-rie-and-localstack-versions) (IMHO: biggest time 💣 and low-hanging fruit ). ATM, shipping a broken release (automatically) requires immediate customer attention, and we have no way of fixing it ourselves due to unmanaged versioning.
* The proposed workflow above makes shipping proper dependency management harder by creating a chicken-egg problem. It assumes the localstack-pro PR runs before the lambda-images PR, but the localstack-pro PR ultimately depends on lambda-images by explicitly referencing an image (unless we treat Docker and K8 staged).
* Ideally (out-of-scope), we want to ensure the K8 tests run successfully before shipping a new lambda-image-RIE combination
* In the Lambda handover (internal Notion [link](https://app.notion.com/p/localstack/Discuss-how-ownership-of-Lambda-will-be-passed-to-Phoenix-Squad-35ffc2a234318088b239f7ff9424c63b?source=copy_link#35ffc2a234318085803edc3d43e24463)), Alex suggested guarding the RIE release early by running localstack-pro tests in a private fork of the RIE. That's a way to ensure we release only a working version, but it requires (much) more effort to implement. I'm not sure whether that's worth it.
We could add the aws team to the bypass list, or create a new smaller dedicated team e.g. lambda-upstream-sync?
Yeah, we can try that (both work as long as we're careful with force-pushing and don't give RenovateBot force-push permissions)
I did not mean for it to be a "separate release", but one single image that gets a new tag once validated, but @joe4dev your idea with making use of prereleases seems more sensible.
What about this:
lambda-runtime-init: renovate automerges non-major dep bumps. A weekly workflow patch-bumps and publishes one release, eg v0.2.1, marked prerelease: true. The binary is built once, here.
localstack-pro: a weekly workflow opens a PR bumping LAMBDA_RUNTIME_DEFAULT_VERSION prerelease, with a team as assignee/reviewers. On merge (when CI is green): flip that RIE release to prerelease: false via the API (No second tag, no rebuild)
lambda-images: Renovate picks up the now-stable RIE version and opens a PR.
I know we have a call tomorrow so I am not expecting an answer now, just wanted to write this down as a base for discussion.
@joe4dev I did not catch where you see a chicken-egg problem (that did not already exist), but looking forward to hearing your thoughts tomorrow.
Note that this does not solve testing a new RIE with k8s, but as @joe4dev mentioned, this is out-of-scope and a bigger project.
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What about this:
- lambda-runtime-init: renovate automerges non-major dep bumps. A weekly workflow patch-bumps and publishes one release, eg v0.2.1, marked prerelease: true. The binary is built once, here.
- localstack-pro: a weekly workflow opens a PR bumping LAMBDA_RUNTIME_DEFAULT_VERSION prerelease, with a team as assignee/reviewers. On merge (when CI is green): flip that RIE release to prerelease: false via the API (No second tag, no rebuild)
- lambda-images: Renovate picks up the now-stable RIE version and opens a PR.
That sounds good 👍 Thanks for the refinement adopting pre-releases.
@joe4dev I did not catch where you see a chicken-egg problem (that did not already exist), but looking forward to hearing your thoughts tomorrow.
The chicken-egg problem is that lambda-images are now released at the end of the workflow (potentially with a time delay), but would need to be available for testing K8 before merging version pins of lambda-images in localstack-pro.
As discussed in today's sync, let's move ahead with this CVE automation and tackle the RIE version management (DEVX-327) and K8 testing in a follow-up. We should prioritize RIE version management if we want a way to get rid of the chicken-and-egg problem in the future. In the meantime, we should stay alert and jump on potential incidents ASAP.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's follow up with proper version pinning for k8s, as discussed, but for now I agree this is a better approach, LGTM!
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Thank you @carole-lavillonniere for pushing the RIE CVE remediation 🙏
Using a pre-release might be a temporary option for now. I wanted to share some broader considerations/concerns; good to be aware of but not all in scope here:
What about this:
1. RIE automerges and autoreleases new versions
2. New weekly workflow in `localstack-pro` that picks up last RIE version and opens a PR
3. `localstack-pro` PR gets merged when tests are green + we push a new tag to the same RIE version: for example RIE `v0.2.1` gets new tag `validated-v0.2.1`
4. Update `lambda-images` renovate config so it opens a PR for new RIE version prefixed with `validated-*`
Do I understand correctly that Docker would use a separate release (v0.2.1) than K8 (validated-v0.2.1)? The RIE version is part of the our Dockerhub tags (e.g., 3.14_v0.2.1) and relevant for customers using LocalStack behind a corporate proxy. I don't think we should expose such an internal validated-* tag to customers. It's a matter of trust and raises questions about whether the regular release is not validated. If we go this route, I would opt for a prerelease (pre-) similar to #104
We might want to (re-)consider the e2e release process:
* We ultimately need [Define dependency management for RIE and LocalStack versions in K8](https://linear.app/localstack/issue/DEVX-327/define-clear-dependency-management-for-rie-and-localstack-versions) (IMHO: biggest time 💣 and low-hanging fruit ). ATM, shipping a broken release (automatically) requires immediate customer attention, and we have no way of fixing it ourselves due to unmanaged versioning.
* The proposed workflow above makes shipping proper dependency management harder by creating a chicken-egg problem. It assumes the localstack-pro PR runs before the lambda-images PR, but the localstack-pro PR ultimately depends on lambda-images by explicitly referencing an image (unless we treat Docker and K8 staged).
* Ideally (out-of-scope), we want to ensure the K8 tests run successfully before shipping a new lambda-image-RIE combination
* In the Lambda handover (internal Notion [link](https://app.notion.com/p/localstack/Discuss-how-ownership-of-Lambda-will-be-passed-to-Phoenix-Squad-35ffc2a234318088b239f7ff9424c63b?source=copy_link#35ffc2a234318085803edc3d43e24463)), Alex suggested guarding the RIE release early by running localstack-pro tests in a private fork of the RIE. That's a way to ensure we release only a working version, but it requires (much) more effort to implement. I'm not sure whether that's worth it.
We could add the aws team to the bypass list, or create a new smaller dedicated team e.g. lambda-upstream-sync?
Yeah, we can try that (both work as long as we're careful with force-pushing and don't give RenovateBot force-push permissions)
@joe4dev are you able to add the aws team to the bypass list?
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Assignees
No one assigned
Milestone
No milestone
Development
Successfully merging this pull request may close these issues.
Uh oh!
There was an error while loading. Please reload this page.
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.
|