Moving this from https://github.com/debarshiray/toolbox/pull/100 which outlines why I created https://github.com/cgwalters/coretoolbox
Let's try to come to an agreed architecture and plan. I want to share efforts - the end goal here is that there's only one toolbox on FCOS/Silverblue systems. (If we can't resolve, we may end up e.g. shipping a different one in FCOS, add an option for Silverblue etc.)
I created coretoolbox because I don't think shell script makes sense for a project that's so critical. From there, we disagree on how to proceed. I think continuing to run podman as a subprocess is quite workable - we can parse JSON. I also am experimenting with varlink. However, upstream podman doesn't have a lot of varlink testing. On the other hand, apparently Cockpit uses it too - we want varlink to work.
So let's call this "option subprocess+varlink".
I think your position is to vendor libpod and use Go. That would make toolbox work more how crio works today. An advantage is it's known to work. As I note above, I think there are a huge amount of disadvantages, starting with having two libpod versions operating on the same storage is simply not at all tested upstream. podman continues to change formats in a way that requires migrations.
Moving this from https://github.com/debarshiray/toolbox/pull/100 which outlines why I created https://github.com/cgwalters/coretoolbox
Let's try to come to an agreed architecture and plan. I want to share efforts - the end goal here is that there's only one
toolboxon FCOS/Silverblue systems. (If we can't resolve, we may end up e.g. shipping a different one in FCOS, add an option for Silverblue etc.)I created coretoolbox because I don't think shell script makes sense for a project that's so critical. From there, we disagree on how to proceed. I think continuing to run
podmanas a subprocess is quite workable - we can parse JSON. I also am experimenting with varlink. However, upstream podman doesn't have a lot of varlink testing. On the other hand, apparently Cockpit uses it too - we want varlink to work.So let's call this "option subprocess+varlink".
I think your position is to vendor libpod and use Go. That would make toolbox work more how crio works today. An advantage is it's known to work. As I note above, I think there are a huge amount of disadvantages, starting with having two libpod versions operating on the same storage is simply not at all tested upstream. podman continues to change formats in a way that requires migrations.