[wip] add PinnedImageSet types and crd#1713
[wip] add PinnedImageSet types and crd#1713hexfusion wants to merge 5 commits intoopenshift:masterfrom
Conversation
|
Skipping CI for Draft Pull Request. |
|
Hello @hexfusion! Some important instructions when contributing to openshift/api: |
bcfe707 to
f2dc1f4
Compare
|
@hexfusion: This pull request references MCO-838 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the epic to target the "4.16.0" version, but no target version was set. 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 openshift-eng/jira-lifecycle-plugin repository. |
|
@hexfusion: This pull request references MCO-838 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the epic to target the "4.16.0" version, but no target version was set. 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 openshift-eng/jira-lifecycle-plugin repository. |
|
/test all |
|
@hexfusion: This pull request references MCO-838 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the epic to target the "4.16.0" version, but no target version was set. 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 openshift-eng/jira-lifecycle-plugin repository. |
1 similar comment
|
@hexfusion: This pull request references MCO-838 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the epic to target the "4.16.0" version, but no target version was set. 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 openshift-eng/jira-lifecycle-plugin repository. |
|
@hexfusion: This pull request references MCO-838 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the epic to target the "4.15.0" version, but no target version was set. 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 openshift-eng/jira-lifecycle-plugin repository. |
6cb5940 to
1d2ec1c
Compare
1d2ec1c to
44756aa
Compare
|
@hexfusion: This pull request references MCO-838 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the epic to target the "4.15.0" version, but no target version was set. 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 openshift-eng/jira-lifecycle-plugin repository. |
|
/test all |
The implementation will be very tightly coupled with MCP and MCD. it will not add additional node annotations instead use those already used by MCD. So the goal will be to pivot to MCN when it becomes v1 but not before. |
c286509 to
9220483
Compare
44309e5 to
363d8b8
Compare
| // pinnedImageSets specifies a sequence of PinnedImageSetRef objects for the | ||
| // pool. Nodes within this pool will preload and pin images defined in the | ||
| // PinnedImageSet. Before pulling images the controller will ensure the | ||
| // total uncompressed size of all the images does not exceed available |
There was a problem hiding this comment.
What happens if we do exceed the available disk space?
There was a problem hiding this comment.
controller does a precheck calculating the storage required for all images + buffer ~20GB - allocatable, before we pull. If this fails the pool goes degraded. The node is checked for KubeletHasNoDiskPressure if that at anytime is true controller workers will bail and retry if that can't be reconciled eventually it will be Unreconcilable. Also the node will become NotReady as a result of disk pressure (pretty sure).
Kubelet would force a GC on images(need to verify) and potentially evict pods. On the control-plane worst case it could take the cluster down. So there is a fair amount of assumption that the kubelet reports allocatable storage correctly.
There was a problem hiding this comment.
For this reason, we will not pin the images until all images are pulled to allow the Kubelet the ability to GC>
|
@hexfusion: This pull request references MCO-838 which is a valid jira issue. 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 openshift-eng/jira-lifecycle-plugin repository. |
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
|
make verify is failing in the new Custom/TechPreview crd for v1 unrelated to changes directly in this PR |
|
Do I want this? It seems recent updates now generate this file, perhaps it should replace the other stable CRD? |
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
:) |
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
JoelSpeed
left a comment
There was a problem hiding this comment.
Nit on the tests. Would be good to test the name validation in the references with both valid and non valid cases, but otherwise the API shape is good here
| pinnedImageSets: | ||
| - name: test-pinnedimageset |
There was a problem hiding this comment.
This isn't a required field is it? Generally the minimal version of this test shows only required fields
There was a problem hiding this comment.
ok gotcha so I can add an additional test to show this. Will update
yuqi-zhang
left a comment
There was a problem hiding this comment.
Overall makes sense to me from the MCO perspective. Do you foresee the need to add any new status types?
| // +kubebuilder:validation:MinLength=1 | ||
| // +kubebuilder:validation:MaxLength=447 | ||
| // +kubebuilder:validation:XValidation:rule=`self.matches('^([a-zA-Z0-9-]+\\.)+[a-zA-Z0-9-]+(:[0-9]{2,5})?/([a-zA-Z0-9-_]{0,61}/)?[a-zA-Z0-9-_.]*@sha256:[a-f0-9]{64}$')`,message="The OCI Image reference must be in the format host[:port][/namespace]/name@sha256:<digest> with a valid SHA256 digest" | ||
| Name string `json:"name"` |
There was a problem hiding this comment.
I'm wondering if there were alternatives to just "name" here, as this is more of a... url? digest? I guess I don't have a good alternative
|
@hexfusion: 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. |
|
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. |
|
THis PR evolved a lot over time as the design drifted away from the enhancement while this is good historical context closing and moving to #1822 |
|
@hexfusion: No Jira issue is referenced in the title of this pull 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 openshift-eng/jira-lifecycle-plugin repository. |
This PR adds
PinnedImageSettypes to themachineconfiguration.openshift.iogroup and a CRD as a continuation of #1609. More will be needed but a little time is needed to finalize final status requirements and this gets us in the door.ref: