forked from containers/libkrun
-
Notifications
You must be signed in to change notification settings - Fork 2
feat(fs): expose overlayfs API for macOS #8
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
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add public API for using OverlayFS functionality in libkrun on macOS by exposing the implementation through a new FsImplConfig enum. This allows clients to configure either passthrough or overlayfs filesystem modes. Key changes: - Add FsImplConfig enum to select between Passthrough and Overlayfs modes - Add FsImplShare enum to handle different sharing configurations - Refactor Fs implementation to delegate operations to selected backend - Update Config struct to include layers configuration - Clean up and reorganize filesystem server code - Add comprehensive test coverage for overlayfs operations The implementation maintains the existing passthrough functionality while adding the ability to configure overlayfs mode with multiple read-only layers and a writable top layer.
Add special case handling in the lookup method to return a predefined entry when looking up "init.krun" file. This allows exposing the init binary with specific permissions (755) and size based on the included binary data.
- Set init.krun inode ID dynamically using next_inode counter - Reorder init.krun inode check before handle data lookup in read() - Add documentation about default values for config options - Clarify proc_sfd_rawfd usage in sandboxing scenarios - Update comments to specifically reference init.krun
9355d78
to
c82e331
Compare
appcypher
added a commit
that referenced
this pull request
Jun 8, 2025
* feat(fs): expose overlayfs API for macOS Add public API for using OverlayFS functionality in libkrun on macOS by exposing the implementation through a new FsImplConfig enum. This allows clients to configure either passthrough or overlayfs filesystem modes. Key changes: - Add FsImplConfig enum to select between Passthrough and Overlayfs modes - Add FsImplShare enum to handle different sharing configurations - Refactor Fs implementation to delegate operations to selected backend - Update Config struct to include layers configuration - Clean up and reorganize filesystem server code - Add comprehensive test coverage for overlayfs operations The implementation maintains the existing passthrough functionality while adding the ability to configure overlayfs mode with multiple read-only layers and a writable top layer. * feat(overlayfs): add special handling for init.krun lookup Add special case handling in the lookup method to return a predefined entry when looking up "init.krun" file. This allows exposing the init binary with specific permissions (755) and size based on the included binary data. * fix(overlayfs): improve init.krun inode handling and documentation - Set init.krun inode ID dynamically using next_inode counter - Reorder init.krun inode check before handle data lookup in read() - Add documentation about default values for config options - Clarify proc_sfd_rawfd usage in sandboxing scenarios - Update comments to specifically reference init.krun * refactor(fs): remove debug println statements from overlayfs
appcypher
added a commit
that referenced
this pull request
Jun 26, 2025
* feat(fs): expose overlayfs API for macOS Add public API for using OverlayFS functionality in libkrun on macOS by exposing the implementation through a new FsImplConfig enum. This allows clients to configure either passthrough or overlayfs filesystem modes. Key changes: - Add FsImplConfig enum to select between Passthrough and Overlayfs modes - Add FsImplShare enum to handle different sharing configurations - Refactor Fs implementation to delegate operations to selected backend - Update Config struct to include layers configuration - Clean up and reorganize filesystem server code - Add comprehensive test coverage for overlayfs operations The implementation maintains the existing passthrough functionality while adding the ability to configure overlayfs mode with multiple read-only layers and a writable top layer. * feat(overlayfs): add special handling for init.krun lookup Add special case handling in the lookup method to return a predefined entry when looking up "init.krun" file. This allows exposing the init binary with specific permissions (755) and size based on the included binary data. * fix(overlayfs): improve init.krun inode handling and documentation - Set init.krun inode ID dynamically using next_inode counter - Reorder init.krun inode check before handle data lookup in read() - Add documentation about default values for config options - Clarify proc_sfd_rawfd usage in sandboxing scenarios - Update comments to specifically reference init.krun * refactor(fs): remove debug println statements from overlayfs
appcypher
added a commit
that referenced
this pull request
Jun 26, 2025
* feat(fs): expose overlayfs API for macOS Add public API for using OverlayFS functionality in libkrun on macOS by exposing the implementation through a new FsImplConfig enum. This allows clients to configure either passthrough or overlayfs filesystem modes. Key changes: - Add FsImplConfig enum to select between Passthrough and Overlayfs modes - Add FsImplShare enum to handle different sharing configurations - Refactor Fs implementation to delegate operations to selected backend - Update Config struct to include layers configuration - Clean up and reorganize filesystem server code - Add comprehensive test coverage for overlayfs operations The implementation maintains the existing passthrough functionality while adding the ability to configure overlayfs mode with multiple read-only layers and a writable top layer. * feat(overlayfs): add special handling for init.krun lookup Add special case handling in the lookup method to return a predefined entry when looking up "init.krun" file. This allows exposing the init binary with specific permissions (755) and size based on the included binary data. * fix(overlayfs): improve init.krun inode handling and documentation - Set init.krun inode ID dynamically using next_inode counter - Reorder init.krun inode check before handle data lookup in read() - Add documentation about default values for config options - Clarify proc_sfd_rawfd usage in sandboxing scenarios - Update comments to specifically reference init.krun * refactor(fs): remove debug println statements from overlayfs
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add public API for using OverlayFS functionality in libkrun on macOS by exposing the implementation through a new FsImplConfig enum. This allows clients to configure either passthrough or overlayfs filesystem modes.
Key changes:
The implementation maintains the existing passthrough functionality while adding the ability to configure overlayfs mode with multiple read-only layers and a writable top layer.