OCPBUGS-57348: add MCO operator manifest for boot image management#9783
Conversation
|
@patrickdillon: This pull request references Jira Issue OCPBUGS-57348, which is valid. The bug has been moved to the POST state. 3 validation(s) were run on this bug
Requesting review from QA contact: The bug has been updated to 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 openshift-eng/jira-lifecycle-plugin repository. |
97f0735 to
7f5f88f
Compare
7f5f88f to
e04874e
Compare
e04874e to
2ccb6ec
Compare
|
@patrickdillon: This pull request references Jira Issue OCPBUGS-57348, 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 openshift-eng/jira-lifecycle-plugin repository. |
|
Ok I have reworked the PR, because cluster-bootstrap was not able to successfully apply the manifest created in the original implementation. I confirmed in testing what @djoshy suspected: when golang serializes the empty values of the mco configuration, it leaves a lot of empty values, and API server validation fails on them. So in order to create the minimally specified manifest (in the updated description above), I switched the implementation to use a go template file. I have added this as a fixup commit ATM and will squash it later, once we align on this approach. |
|
I have the lint fixes committed locally but will wait to push them until I get more feedback. This is a substantial change from the first iteration, so I wanted to get it up for review. I also still need to rework the mco tests; which I think I can mostly reuse. Local testing shows the configuration I would expect in the cluster: |
|
This approach looks good to me from the MCO POV. Sorry about the operator API weirdness, it's caused us some issues too(we have to do server side apply in same cases 😓 ). |
Adds manifest generation for MCO configuration. Currently the manifest is only generated when custom boot images are specified, in order to disable MCO management of those boot images. The manifest generation uses a golang template as testing revealed that API server validation would not permit the manifests generated from serializing the golang structs, which would be more consistent with how we generate manifests for other openshift operators. As golang will populate the zero value for any non-pointer struct this triggered validation, where the API server expected certain required fields for these zero-value structs. Using a template allows us to bypass this problem. Fixes OCPBUGS-57348
2ccb6ec to
8931141
Compare
| ) | ||
|
|
||
| const ( | ||
| mcoConfigTemplateFileName = "cluster-mco-02-config.yaml.template" |
There was a problem hiding this comment.
Where does the eventual generated manifest's filename sort vs. the installer-generated MachineSet manifests? Do we want a 90_ prefix or something to ensure we sort the MachineConfiguration first, so the MCO knows to leave MachineSets alone before the MachineSets are created in the cluster?
There was a problem hiding this comment.
Good question. The resulting filename is indeed cluster-mco-02-config.yaml and therefore sorts after the 99_ prefixed machinesets. I am running a local install to gather the bootkube logs and see if I can get a sense of when it is created.
My only hesitation is that none of the other cluster operator manifests have a numerical prefix... but I don't find that convincing.
|
/lgtm The MCO manifests and tests seems sane to me. I'm not as familiar with the manifest generation flow, so I will defer that to the installer folks. Thanks for putting this together! |
|
/retest-required |
|
@patrickdillon: The following test 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-sigs/prow repository. I understand the commands that are listed here. |
|
#9793 has merged for unit tests /retest-required |
|
/label tide/merge-method-squash |
|
@djoshy would you mind bumping lgtm? |
|
/cherry-pick release-4.19 |
|
@patrickdillon: once the present PR merges, I will cherry-pick it on top of 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-sigs/prow repository. |
|
/lgtm |
|
/approve |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: patrickdillon 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 |
|
/label qe-approved |
b241c4e
into
openshift:main
|
@patrickdillon: Jira Issue OCPBUGS-57348: All pull requests linked via external trackers have merged: Jira Issue OCPBUGS-57348 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 openshift-eng/jira-lifecycle-plugin repository. |
|
@patrickdillon: new pull request created: #9797 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-sigs/prow repository. |
|
[ART PR BUILD NOTIFIER] Distgit: ose-installer |
|
[ART PR BUILD NOTIFIER] Distgit: ose-baremetal-installer |
|
[ART PR BUILD NOTIFIER] Distgit: ose-installer-artifacts |
If custom boot images are specified, the installer generates an MCO manifest to disable MCO boot image management [0]. On AWS, previously edge compute machine pool was not considered for custom AMI. This commit ensures custom AMI is considered in all compute machine pools. References: [0] openshift#9783
If custom boot images are specified, the installer generates an MCO manifest to disable MCO boot image management [0]. On AWS, previously edge compute machine pool was not considered for custom AMI. This commit ensures custom AMI is considered in all compute machine pools. References: [0] openshift#9783
If custom boot images are specified, the installer generates an MCO manifest to disable MCO boot image management [0]. On AWS, previously edge compute machine pool was not considered for custom AMI. This commit ensures custom AMI is considered in all compute machine pools. References: [0] openshift#9783
If custom boot images are specified, the installer generates an MCO manifest to disable MCO boot image management [0]. On AWS, previously edge compute machine pool was not considered for custom AMI. This commit ensures custom AMI is considered in all compute machine pools. References: [0] openshift#9783
If custom boot images are specified, the installer generates an MCO manifest to disable MCO boot image management [0]. On AWS, previously edge compute machine pool was not considered for custom AMI. This commit ensures custom AMI is considered in all compute machine pools. References: [0] openshift#9783
Adds manifest generation for MCO configuration. Currently the manifest is only generated when compute node custom boot images are specified, in order to disable MCO management of those boot images.
For example, aws install config with compute ami set:
Produces the following manifest