-
Notifications
You must be signed in to change notification settings - Fork 53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add ability to update the running image, parameters, and configuration of a given service #2057
Comments
idempotent runs might solve for this! |
Hey @h4ck3rk3y ! yep, I think enclave updating (formerly known as idempotent runs 😆 ) would solve for this - just re-throw an updated configuration at the enclave |
Yep! idempotent runs / updates do solve this. Everything but the affected instructions get skipped. |
Waiting for @barnabasbusa to confirm if this is enough for now; will close this if so |
Currently proposed workflow is arg tweaking and re-running against the same enclave
Changing the 10 to 11 and back to 10, seems to work on my machine |
Enclave edits should address this issue but I've tried running an updated config against an existing enclave and enclave edits aren't working. Something triggers entire enclave to be rerun even when changing arg to just add an additional service. Unsure if it's something in the package or a bug in enclave edit logic. I've done a deep dive for a few hours and found some potential issues but haven't root caused yet. LMK if you're seeing otherwise though @h4ck3rk3y @barnabasbusa |
## Description Adds `set_service` instruction which can be used to override the service config of a service added earlier in the plan. This can be really useful for two cases: 1. A user wants to set a specific image (or other config) for a service in a package but the package author has not made the image configurable. This can be done by appending `set_service` to the plan. ex. ``` postgres = import_module("github.com/kurtosis-tech/postgres-package/main.star") def run(plan, args): postgres.run(plan) plan.set_service(name="postgres", config=ServiceConfig(image="postgres:bullseye")) ``` 2. A user wants to swap out the image (or other config) of a service running in an enclave. This can be done by appending `set_service` to the plan and enclave editing. ex. https://www.loom.com/share/f88d0f5555dd49b0aeabc55c5ed41d43 This instruction has some functionality missing such as overriding ports, env vars, and cmd/entrypoint as these require special handling of future references and handling consecutive set service instructions properly but functionality can be added iteratively in future PRs. ## Is this change user facing? YES ## References: #2057
Background & motivation
ethpandaops/ethereum-package#465
ethpandaops/ethereum-package#458
There have been some requests from users of the Ethereum Package to change a service in the network when it comes to its underlying image or arguments so that they don't have to recreate the testnet
Desired behaviour
An
update_service
api that allows you to change image or other arguments of a given serviceHow important is this to you?
Nice to have; this feature would make using Kurtosis more enjoyable.
What area of the product does this pertain to?
CLI: the Command Line Interface
The text was updated successfully, but these errors were encountered: