Currently, we let the reexec process to choose the appropriate rootfs for the guest based on the annotations and the monitor guest pair. Since this takes place in the reexec process we had problems in the past with the handling of the rootfs mount which was performed from the shim (See #562). This issue is still present in environments where the /run is not mounted with the MS_SHARED propagation flag. In these scenarios the unmount we perform in reexec does not propagate to the peer mount namespaces (namespace of create process).
Furthermore, due to the refactor we want to perform and use libcontainers for setting up the monitor execution environment, we will not be able to have access in the host rootfs and therefore update the block-based rootfs after the creation of the execution environment.
Taking into considaration all the above, we need to move the rootfs selection and the preSetup step in the create process and let reexec only read the selection from the annotations as it currently does when the shim selects the rootfs.
Currently, we let the reexec process to choose the appropriate rootfs for the guest based on the annotations and the monitor guest pair. Since this takes place in the reexec process we had problems in the past with the handling of the rootfs mount which was performed from the shim (See #562). This issue is still present in environments where the
/runis not mounted with theMS_SHAREDpropagation flag. In these scenarios the unmount we perform in reexec does not propagate to the peer mount namespaces (namespace of create process).Furthermore, due to the refactor we want to perform and use libcontainers for setting up the monitor execution environment, we will not be able to have access in the host rootfs and therefore update the block-based rootfs after the creation of the execution environment.
Taking into considaration all the above, we need to move the rootfs selection and the
preSetupstep in the create process and let reexec only read the selection from the annotations as it currently does when the shim selects the rootfs.