Bug 2017756: Remove crio settings that overwrite /etc/containers/storage.conf#2811
Conversation
|
Skipping CI for Draft Pull Request. |
|
@palonsoro: This pull request references Bugzilla bug 2017756, which is invalid:
Comment DetailsIn response to this:
Instructions 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. |
|
/bugzilla refresh |
|
@palonsoro: This pull request references Bugzilla bug 2017756, which is valid. The bug has been moved to the POST state. The bug has been updated to refer to the pull request using the external bug tracker. 3 validation(s) were run on this bug
No GitHub users were found matching the public email listed for the QA contact in Bugzilla (schoudha@redhat.com), skipping review request. DetailsIn response to this:
Instructions 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. |
|
/retest |
1 similar comment
|
/retest |
yuqi-zhang
left a comment
There was a problem hiding this comment.
Some initial comments (I am not the most knowledgeable regarding crio conf so we likely need someone from the container runtimes side to review)
There was a problem hiding this comment.
What happens if you don't provide a containerruntime object (that as I understand, would provide these configs)? Do they have defaults? Or are they simply gone?
It sounds to me that the better way to approach this is to have the containerruntime config controller correctly handle this to override defaults correctly.
There was a problem hiding this comment.
There are defaults and MCO has full control on them. Defaults can be found here and match the removed config: https://github.com/openshift/machine-config-operator/blob/master/templates/common/_base/files/container-storage.yaml
Doing what you suggest (making the controller handle this) might require rewriting the whole controller almost from scratch and would go against its design principles (https://github.com/openshift/machine-config-operator/blob/master/docs/ContainerRuntimeConfigDesign.md).
There was a problem hiding this comment.
So I honestly thing that we should just keep /etc/containers/storage.conf as the only source for CRIO storage configuration (either relying just on defaults or letting them be modified as needed), which also aligns with current container runtime config controller and requires least coding effort.
There was a problem hiding this comment.
There are defaults and MCO has full control on them. Defaults can be found here and match the removed config
Ah ok, thanks!
Given that @haircommander authored the original #2723, let's see if he has any insight into wiping crio.conf (I'm leaning towards somehow not shipping it in the first place, as opposed to having it overwritten by an empty file
There was a problem hiding this comment.
@yuqi-zhang I agree that not shipping it is best definitive solution. However, I also placed this because I thought it would be easier to make it empty via MCO while a later fix to remove it from RPM is developed.
There was a problem hiding this comment.
I'm not seeing this line in https://github.com/openshift/machine-config-operator/blob/master/templates/common/_base/files/container-storage.yaml though frankly I'm not sure what it does or why it's there in the first place
(@rhatdan @giuseppe @nalind what does this do/do we need it)
There was a problem hiding this comment.
The overlay driver used to retrieve the version information about the running kernel, and if was below 4.0 in general, or below 4.7 if the backing storage was on btrfs, it would error out during initialization. The logic that checks for and heeds that flag was replaced by run-time try-it-and-find-out logic some time ago.
There was a problem hiding this comment.
https://github.com/containers/storage/blob/77999de8b3ded5a4d41fb2642a68a17aa7c9eb3d/drivers/overlay/overlay.go#L418
It seems c/storage no longer handle this override_kernel_check option, so we can get this PR in, at least merge this to master branch?
There was a problem hiding this comment.
@haircommander FYI
storage_driverline: https://github.com/openshift/machine-config-operator/blob/master/templates/common/_base/files/container-storage.yaml#L14override_kernel_checkline: https://github.com/openshift/machine-config-operator/blob/master/templates/common/_base/files/container-storage.yaml#L35
|
in general I'm in favor of cri-o doing the right thing regardless of the config. @QiWang19 has opened a PR to have cri-o handle this situation more logically: cri-o/cri-o#5423 That said, it is worth evaluating the two pieces of this PR. Dropping the cri-o specific storage information in favor of deferring to /etc/containers/storage.conf makes sense to me, as long as we don't need "override_kernel_checks". I'll wait for the experts on this to chime in dropping the /etc/crio/crio.conf here solves the case where a user directly changed /etc/crio/crio.conf and it's saved by the RPM (which caused the need for #2723 in the first place), so I think I'm in favor of it. TL;DR: assuming we don't want override_kernel_checks |
|
Closing this PR. The bug turned out to be a duplicate of https://bugzilla.redhat.com/show_bug.cgi?id=2012838 . In that bug, the proposed code fix is to make cri-o merge configs from both |
|
@palonsoro: This pull request references Bugzilla bug 2017756. The bug has been updated to no longer refer to the pull request using the external bug tracker. DetailsIn response to this:
Instructions 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. |
|
@haircommander I realized that I closed the PR before seeing your last comment, because the main issue was being addressed by the other bug and PR. But if you think this is still worth it, I can reopen. |
|
/reopen yeah I think this is worth investigating |
|
@haircommander: Reopened this PR. DetailsIn response to this:
Instructions 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. |
|
@palonsoro: This pull request references Bugzilla bug 2017756, which is invalid:
Comment DetailsIn response to this:
Instructions 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. |
|
/retest |
1 similar comment
|
/retest |
|
I think we should pivot a bit here. I don't think we should overwrite /etc/crio/crio.conf, nor do I think we should not ship it in the RPM. The reasoning for the latter is because without cri-o being configured OOTB to update it's cni plugin dir, cri-o starts but doesn't accept container creation requests and basically endlessly stalls. Even though no one is using RHCOS+CRI-O without MCO, it feels too weird to have that behavior come from the vanilla RPM. Instead, I have dropped the storage related fields in the crio.conf from the RPM, and I think we should do the same here. then, we will ineherit it from /etc/containers/storage.conf, which correctly configures everything. WDYT @palonsoro |
|
If you have removed the storage related overrides from crio.conf on RPM, and that removal can be backported to crio versions used in older OCPs (as necessary), I think I can just drop the crio.conf modification completely and only leave the rest of the changes. Please confirm if that makes sense for you and I'll just go ahead and do it. |
|
@haircommander ^^^ |
|
yup sounds good to me, thanks @palonsoro |
…te settings from /etc/containers/storage.conf.
|
Done. |
|
/lgtm thanks for sticking with this and waiting while we figured out the solution here :) |
|
@palonsoro: 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. |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: haircommander, palonsoro, yuqi-zhang The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
5 similar comments
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/bugzilla refresh |
|
@haircommander: This pull request references Bugzilla bug 2017756, which is valid. 3 validation(s) were run on this bug
Requesting review from QA contact: DetailsIn response to this:
Instructions 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. |
|
@palonsoro: All pull requests linked via external trackers have merged: Bugzilla bug 2017756 has been moved to the MODIFIED state. DetailsIn response to this:
Instructions 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. |
|
Thanks to you for all your assistance |
This intends to fix https://bugzilla.redhat.com/show_bug.cgi?id=2017756
The way it does is:
/etc/crio/crio.conf.d/00-defaultthat may overwrite changes in/etc/containers/storage.confintroduced byContainerRuntimeConfigcustom resources./etc/crio/crio.conf, as it also includes the offending settings and any other interesting default has already been moved to MCO-managed configuration/etc/crio/crio.conf.d/00-default.