-
Couldn't load subscription status.
- Fork 881
[RFC][WIP] rkt fly #1825
[RFC][WIP] rkt fly #1825
Conversation
This is a first version of "rkt fly" command which executes a single application image with no constraints or pod. It will be improved later to support uid shifts, improve the chroot logic, clean code. Patch based on the work of Jonathan Boulle <[email protected]> Signed-off-by: Djalal Harouni <[email protected]>
stat should be run after chroot(), so that it can work also when the rootfs is a symlink to another directory.
Signed-off-by: Djalal Harouni <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@steveej Unshare works on the thread level here, so the following mount can still happen in host mount namespace.
But here we can use LockOSThread to make the mounting happen in the unshared thread. However since we don't have controls over the creation of goroutines, it can cause new threads to be cloned from this unshared threads. though it doesn't seem to cause a problem here.
But anyway it is unrecommended to use unshare in go :( golang/go#1954
/cc @vcaputo @jonboulle We hit such problems for a million times
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
also #913
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, I fixed that!
This is necessary when using the unshare syscall as it operates on a os-thread level.
|
Closing in favour of #1833 |
TODO:
/var/lib/rkt/flights)