Bug 1999425
| Summary: | kube-apiserver with "[SHOULD NOT HAPPEN] failed to update managedFields" err="failed to convert new object (machine.openshift.io/v1beta1, Kind=MachineHealthCheck) | |||
|---|---|---|---|---|
| Product: | OpenShift Container Platform | Reporter: | Ke Wang <kewang> | |
| Component: | Cloud Compute | Assignee: | Joel Speed <jspeed> | |
| Cloud Compute sub component: | MachineHealthCheck | QA Contact: | sunzhaohua <zhsun> | |
| Status: | CLOSED ERRATA | Docs Contact: | ||
| Severity: | medium | |||
| Priority: | medium | CC: | aos-bugs, mfojtik, xxia | |
| Version: | 4.8 | |||
| Target Milestone: | --- | |||
| Target Release: | 4.10.0 | |||
| Hardware: | Unspecified | |||
| OS: | Unspecified | |||
| Whiteboard: | ||||
| Fixed In Version: | Doc Type: | Bug Fix | ||
| Doc Text: |
Cause: CRD schema requirements were too strict and did not allow numeric values
Consequence: Marshalling errors occurred during upgrades
Fix: Correct the schema requirements to allow both string and numeric values
Result: Marshalling errors are no longer reported by the API server conversion
|
Story Points: | --- | |
| Clone Of: | ||||
| : | 2005242 (view as bug list) | Environment: | ||
| Last Closed: | 2022-03-12 04:37:58 UTC | Type: | Bug | |
| Regression: | --- | Mount Type: | --- | |
| Documentation: | --- | CRM: | ||
| Verified Versions: | Category: | --- | ||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | ||
| Cloudforms Team: | --- | Target Upstream Version: | ||
| Embargoed: | ||||
| Bug Depends On: | ||||
| Bug Blocks: | 2005242 | |||
The OpenAPI spec does not match the type: https://github.com/openshift/machine-api-operator/blob/master/install/0000_30_machine-api-operator_07_machinehealthcheck.crd.yaml#L28 https://github.com/openshift/machine-api-operator/blob/master/pkg/apis/machine/v1beta1/machinehealthcheck_types.go#L71 IntOrString is not string. CRD schemas can express IntOrString correctly. verified
clusterversion: 4.10.0-0.nightly-2021-09-17-190348
NO error was found again, the maxUnhealthy "type: string" has been removed from crd
$ oc logs kube-apiserver-xiyun410-0918-z2hdz-master-0 -n openshift-kube-apiserver | grep "SHOULD NOT HAPPEN"
$ oc logs kube-apiserver-xiyun410-0918-z2hdz-master-1 -n openshift-kube-apiserver | grep "SHOULD NOT HAPPEN"
$ oc logs kube-apiserver-xiyun410-0918-z2hdz-master-2 -n openshift-kube-apiserver | grep "SHOULD NOT HAPPEN"
$ oc edit crd machinehealthchecks.machine.openshift.io
x-kubernetes-int-or-string: true
nodeStartupTimeout:
default: 10m
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (Moderate: OpenShift Container Platform 4.10.3 security update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHSA-2022:0056 |
Description of problem: In kube-apiserver logs, found ... "[SHOULD NOT HAPPEN] failed to update managedFields" err="failed to convert new object (machine.openshift.io/v1beta1, Kind=MachineHealthCheck) to smd typed: errors:\n .spec.maxUnhealthy: expected string, got &value.valueUnstructured{Value: ... Version-Release number of selected component (if applicable): 4.8.8-x86_64 How reproducible: at least once Steps to Reproduce: 1.Vsphere 7 IPI installed cluster with windows_server_ver_2004 workers and OVNKubernetes network 2.Run some of QE automated tests 3.Check the kube-apiserver logs on all master nodes. Actual results: In kube-apiserver log files found two "[SHOULD NOT HAPPEN]" errors, 448061 20 fieldmanager.go:191] "[SHOULD NOT HAPPEN] failed to update managedFields" err="failed to convert new object (machine.openshift.io/v1beta1, Kind=MachineHealthCheck) to smd typed: .spec.maxUnhealthy: expected string, got &value.valueUnstructured{Value:3}" VersionKind=" 456379 22 fieldmanager.go:191] "[SHOULD NOT HAPPEN] failed to update managedFields" err="failed to convert new object (machine.openshift.io/v1beta1, Kind=MachineHealthCheck) to smd typed: errors:\n .spec.maxUnhealthy: expected string, got &value.valueUnstructured{Value: ... Expected results: Should not see above errors in kube-apiserver logs. Additional info: