-
Notifications
You must be signed in to change notification settings - Fork 1.5k
inject registries.conf with docker.io to use crio for bootstrap kubelet #234
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
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: sjenning If they are not already assigned, you can assign the PR to them by writing 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 |
| # and 'registries.block'. | ||
|
|
||
| [registries.search] | ||
| registries = ['docker.io', 'registry.access.redhat.com'] |
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.
should this order be flipped? i thought ordering mattered here.
| # and 'registries.block'. | ||
|
|
||
| [registries.search] | ||
| registries = ['docker.io', 'registry.access.redhat.com'] |
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.
r.a.r.c might need to come first, so no one hijacks one of our image names on docker.io.
| # and 'registries.block'. | ||
|
|
||
| [registries.search] | ||
| registries = ['docker.io', 'registry.access.redhat.com'] |
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.
docker.io could come after registry.access.redhat.com
| # | ||
| # Docker only | ||
| [registries.block] | ||
| registries = [] |
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.
The docs are not super clear, but it seems like we could accomplish this same result by leaving this block (and registries.insecure) off entirely. If that's the case, I'd rather have the file content be just:
# Configure container registries. Docs in containers-registries.conf(5).
[registries.search]
registries = ['registry.access.redhat.com', 'docker.io']or similar.
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.
+1
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.
@wking I tested this out and it does appear that you can remove these sections completely.
2110857 to
5ca14a1
Compare
|
flipped the registry ordering |
|
/hold |
|
/hold cancel |
|
/retest |
We push most (but not all) of our images to both docker.io and quay.io, right? I'm not sure how registry lookup works with this search approach; if one registry is dead do we move on to the next? It would be nice if we had a centralized place where we could set preferred/alternate/fallback registries for both robustness (no single point of failure) and optimization (prefer a local caching registry to conserve bandwidth). I dunno if this |
|
I'm generally against this idea from a philisophical PoV. We are putting system wide configuration in individual nodes. is this what is used for unqualified openshift containers? if not, can we instead just 'ban' unqualified static pods? |
|
@eparis personally, i'd like to make the search list empty by default, basically forcing fully qualified image paths, but that isn't a great experience for customers that already have unqualified pod spec or are trying to run sample pod specs from upstream documentation. |
|
Do we do qualification in openshift/kube or only in the runtime? |
Can you elaborate? Do you want to force blobs for an image to come from |
The dockershim in the kubelet will actually UNqualify image paths with docker.io explicitly specified leading to this long standing issue https://bugzilla.redhat.com/show_bug.cgi?id=1561989 If we are using cri-o, however, there is no qualification of image paths. The image path defined in the pod spec is passed through unchanged. |
|
We don't need this configuration on the bootstrap node since we don't run user workloads. All of our images should be fully qualified. Closing in favor of openshift/machine-config-operator#52 (this will apply the change to all of the masters and the workers). /close |
|
@crawford: Closing 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. |
|
@wking In general I'm opposed to doing any node level configuration. Files on disks, even if they get laid down by the MC* tooling, are a source of skew/mis-configuration that can bite us in unexpected ways. So I'd rather we find a way to not have to ever set files on disks. |
@mrunalp @eparis @derekwaynecarr
static pods do not use fully qualified image names and
docker.iois not in the registry search list in/etc/containers/registries.confby default. We need to inject it.TNC change will also be needed if we want this change in the masters/workers.