-
Notifications
You must be signed in to change notification settings - Fork 2.4k
This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
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
atomic container updates #12259
Comments
I am not sure what you mean here. We do have auto-updates. https://fedoramagazine.org/auto-updating-podman-containers-with-systemd/ |
Maybe I should mention, that I am talking about Embedded Linux systems. You might want to have a look here[1] but let me try to explain what I mean. Think about a headless system in the field which gets over-the-air software updates. There is no user available to manually fix things. The software update process needs to be flawless and atomic and must not leave the device in a non-working state. Classis package managers like for .deb, .rpm, .ipk are non-atomic. This means e.g. when you have a power failure while an update is in progress you can end up with a non-working/non-recoverable system. One solution is to have an A/B partition scheme, where you write the update to partition B while keeping partition A intact. Like this, you can fall back to a "good known" version in case an update goes wrong. Switching between the two partitions is typically done "atomically" during the boot process by the boot loader. With containers, we could have something like incremental updates and the "problem" of just downloading parts of those updates in case of power failure.
I am thinking about a scheme, where I have the A/B update for some small basic Embedded Linux system, but where applications are delivered in containers. This would allow for a more modern development paradigm (microservices) but I need to make sure that a failed container update does not leave the system in a non-recoverable state. Not sure, but maybe something like this: or this: or this: I also saw this: [1] https://elinux.org/images/3/31/Comparison_of_Linux_Software_Update_Technologies.pdf |
Sounds interesting, @vrothberg WDYT? |
Pulling in @giuseppe since he has been working in this domain as well. My gut feeling is that auto-updates and the recent fixes and enhancements to detect corrupt images are sufficient. But it would be a healthy exercise to go through all scenarios in detail. I am not sure about the exact limitations of detecting storage corruptions. Since Podman 3.4, auto-updates also support rollbacks which plays in nicely into the described use cases: https://www.redhat.com/sysadmin/podman-auto-updates-rollbacks |
@vrothberg Which version of
I will use a Probably, with your help, we can come up with some test cases. I'm willing to run some experiments as time permits. |
@RobertBerger, you seem to be on Podman 3.4 which is the latest version. We can't get any fresher :-) |
@vrothberg OK cool. I am currently baking something else, but as soon as I'll find some time I'll build some image with this and we can give it a try ;) |
Thank you, @RobertBerger! I'd love to put our heads together on this issue and collaborate. |
@vrothberg Thanks! Seems a pretty common issue, but, as far as I know, only has "not so open" solutions or rather complicated ones. |
Heads up: I am converting the issue into a discussion. |
This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
Do you provide atomic container updates with podman?
If not how do you suggest this can could be done?
The text was updated successfully, but these errors were encountered: