atomic container updates #12324
Replies: 10 comments 1 reply
-
I am not sure what you mean here. We do have auto-updates. https://fedoramagazine.org/auto-updating-podman-containers-with-systemd/ |
Beta Was this translation helpful? Give feedback.
-
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 |
Beta Was this translation helpful? Give feedback.
-
Sounds interesting, @vrothberg WDYT? |
Beta Was this translation helpful? Give feedback.
-
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 |
Beta Was this translation helpful? Give feedback.
-
@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. |
Beta Was this translation helpful? Give feedback.
-
@RobertBerger, you seem to be on Podman 3.4 which is the latest version. We can't get any fresher :-) |
Beta Was this translation helpful? Give feedback.
-
@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 ;) |
Beta Was this translation helpful? Give feedback.
-
Thank you, @RobertBerger! I'd love to put our heads together on this issue and collaborate. |
Beta Was this translation helpful? Give feedback.
-
@vrothberg Thanks! Seems a pretty common issue, but, as far as I know, only has "not so open" solutions or rather complicated ones. |
Beta Was this translation helpful? Give feedback.
-
Heads up: I am converting the issue into a discussion. |
Beta Was this translation helpful? Give feedback.
-
Do you provide atomic container updates with podman?
If not how do you suggest this can could be done?
Beta Was this translation helpful? Give feedback.
All reactions