Bug 1764092

Summary: [MHC] String value on maxUnhealthy reveals typo in machinehealthcheck_controller
Product: OpenShift Container Platform Reporter: Jianwei Hou <jhou>
Component: Cloud ComputeAssignee: Alberto <agarcial>
Status: CLOSED ERRATA QA Contact: Jianwei Hou <jhou>
Severity: low Docs Contact:
Priority: low    
Version: 4.3.0   
Target Milestone: ---   
Target Release: 4.3.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-01-23 11:08:30 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:

Description Jianwei Hou 2019-10-22 08:55:08 UTC
Description of problem:
Set a random string on spec.maxUnhealthy which can not be decoded, for example:

apiVersion: "healthchecking.openshift.io/v1alpha1"
kind: "MachineHealthCheck"
metadata:
  name: jhou-tssxr-worker-centralus1
  namespace: openshift-machine-api
spec:
  selector:
    matchLabels:
      machine.openshift.io/cluster-api-cluster: jhou-7x7zx
      machine.openshift.io/cluster-api-machine-role: worker
      machine.openshift.io/cluster-api-machine-type: worker
      machine.openshift.io/cluster-api-machineset: jhou-7x7zx-worker-centralus2
  unhealthyConditions:
  - type: Ready
    status: "False"
    timeout: 300s
  - type: Ready
    status: Unknown
    timeout: 300s
  maxUnhealthy: randomstring

Then mhc controller reported 
```
E1022 08:44:23.384973       1 machinehealthcheck_controller.go:173] openshift-machine-api/jhou-tssxr-worker-centralus1: error decoding maxUnavailable, remediation won't be allowed: invalid value for IntOrString: invalid value "randomstring": strconv.Atoi: parsing "randomstring": invalid syntax
```

In the message, "maxUnavailable" should be "maxUnhealthy" to avoid misunderstanding of end user.

Version-Release number of selected component (if applicable):
4.3.0-0.ci-2019-10-22-005014

How reproducible:
Always

Steps to Reproduce:
1. Create the mhc as the example and monitor the mhc controller.

Actual results:
As description

Expected results:
Text "maxUnavailable" should be "maxUnhealthy"

Additional info:
https://github.com/openshift/machine-api-operator/blob/master/pkg/controller/machinehealthcheck/machinehealthcheck_controller.go#L173

Comment 3 Jianwei Hou 2019-10-24 03:47:04 UTC
Verified in 4.3.0-0.ci-2019-10-23-170752

E1024 03:45:48.360718       1 machinehealthcheck_controller.go:173] openshift-machine-api/jhou-tssxr-worker-centralus1: error decoding maxUnhealthy, remediation won't be allowed: invalid value for IntOrString: invalid value "node": strconv.Atoi: parsing "node": invalid syntax

Comment 5 errata-xmlrpc 2020-01-23 11:08:30 UTC
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, 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/RHBA-2020:0062