-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Multi storage support and selection using the runtime class #5624
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
Conversation
|
Hi @alicefr. Thanks for your PR. I'm waiting for a cri-o member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
|
/ok-to-test thanks @alicefr ! |
a8bced8 to
f37492a
Compare
|
Update PR with 2 new interfaces for the multi store support. The unit test are passing locally. However, I needed to put a couple of AnyTimes(). So probably we want to get rid of those but at least I wanted to check the entire testsuite. Now, I'd like to check what is passing/failing in the upstream CI |
a946cff to
8c7912e
Compare
pkg/config/config.go
Outdated
| storageDrivers := c.Storage | ||
| storageOpts := copyStorageOptions(c.StorageOptions) | ||
|
|
||
| data, err := ioutil.ReadFile(path) |
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.
G304: Potential file inclusion via variable
(at-me in a reply with help or ignore)
f11da2b to
2ff8f6a
Compare
2ff8f6a to
4e711f0
Compare
68fdb27 to
3e64a4b
Compare
Generate mock for cri-o/cri-o/internal/storage.MultiStoreServer and cri-o/pkg/config.MultiStore Signed-off-by: Alice Frosi <[email protected]>
With the introduction of the multi storage driver support, the tests need to be adjusted to reflect the new structures and interfaces. Signed-off-by: Alice Frosi <[email protected]>
Signed-off-by: Alice Frosi <[email protected]>
Signed-off-by: Alice Frosi <[email protected]>
Signed-off-by: Alice Frosi <[email protected]>
Signed-off-by: Alice Frosi <[email protected]>
Signed-off-by: Alice Frosi <[email protected]>
Signed-off-by: Alice Frosi <[email protected]>
Add documentation for the new option --runtime-storage Signed-off-by: Alice Frosi <[email protected]>
Replace errrors.Wraps with fmt.Errors Signed-off-by: Alice Frosi <[email protected]>
Signed-off-by: Alice Frosi <[email protected]>
Signed-off-by: Alice Frosi <[email protected]>
The image can be present on multiple storage driver and needs to be remove from all of them. Signed-off-by: Alice Frosi <[email protected]>
Every instance of the iterator is a local copy and concurrent calls to the same function don't conflicts. Signed-off-by: Alice Frosi <[email protected]>
The new iterator behavior changed the sequence of the mocked calls. Signed-off-by: Alice Frosi <[email protected]>
Include fix github.com/containers/storage#1298 Signed-off-by: Alice Frosi <[email protected]>
Signed-off-by: Alice Frosi <[email protected]>
Genereting mock function for GetImageServerForContainer Signed-off-by: Alice Frosi <[email protected]>
Adjust the new unit tests with the checkpoint/restore and multi-store support. Signed-off-by: Alice Frosi <[email protected]>
2b7b47f to
daff36c
Compare
|
@alicefr: PR needs rebase. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
|
A friendly reminder that this PR had no activity for 30 days. |
|
@alicefr: The following test failed, say
DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
|
@alicefr: The following tests failed, say
Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
|
Unfortunately, I'm not working on this anymore. However, I think in the future we might need to be able to differentiate the storage driver based on the runtime or kind of workload and this PR can be used as reference. Closing it. |
What type of PR is this?
/kind feature
What this PR does / why we need it:
Extend cri-o to configure multiple storage drivers at the same time and select the storage driver based on the runtime.
Today, cri-o supports a single storage driver at the time and the suggested/default is overlayfs for standard containers. For VM-based runtimes, the current solution is to share the container filesystem mount point using 9p or virtiofs. However, this doesn't offer the best performance, and passing a disk would be the ideal solution.
The benefits of this enhancement are that we avoid the conflicts between standard and VM-based containers. We could get the best performance for both kind of workloads. Giving an example, kata-container could use device-mapper instead of overlays for passing the container filesystem as a device.
In the long term, this extension could also facilitate the introduction of new storage driver types for confidential computing. These new technologies come with a lot of challenges and requirements that filesystem-based storage drivers probably cannot satisfy.
Which issue(s) this PR fixes:
Fixes #5578
Special notes for your reviewer:
Missing pieces:
Right now, I've been testing these changes by:
Starting cri-o with overlay and devicemapper:
Does this PR introduce a user-facing change?