Bug 1969681

Summary: MCO: maxUnavailable of ds/machine-config-daemon does not get updated due to missing resourcemerge check
Product: OpenShift Container Platform Reporter: Yu Qi Zhang <jerzhang>
Component: Machine Config OperatorAssignee: John Kyros <jkyros>
Status: CLOSED ERRATA QA Contact: Micah Abbott <miabbott>
Severity: medium Docs Contact:
Priority: medium    
Version: 4.7CC: kahara, miabbott
Target Milestone: ---   
Target Release: 4.8.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-07-27 23:12:15 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: 1970166    

Description Yu Qi Zhang 2021-06-09 00:49:43 UTC
Bug 1899535 was fixed for accelerating OpenShift upgrade with a lot of nodes.
However, the fix has an effect only with a fresh cluster. Existing clusters
upgrading does not resync updateStrategy.

Comment 3 Micah Abbott 2021-06-12 03:00:14 UTC
Verified with 4.8.0-fc.9

Per reproduction steps in PR#2601 (thanks @jkyros!), upgrade from 4.5 -> 4.8 and check the `maxUnavailable` value of the `machine-config-daemon` DaemonSet:


- Installed 4.5.40

```
$ oc get co/machine-config
NAME             VERSION   AVAILABLE   PROGRESSING   DEGRADED   SINCE
machine-config   4.5.40    True        False         False      62m
$ oc get -n openshift-machine-config-operator ds/machine-config-daemon -o json | jq .spec.updateStrategy
{
  "rollingUpdate": {
    "maxUnavailable": 1
  },
  "type": "RollingUpdate"
}
```
- Upgraded to 4.6.32

```
$ oc get clusterversion
NAME      VERSION   AVAILABLE   PROGRESSING   SINCE   STATUS
version   4.6.32    True        False         72s     Cluster version is 4.6.32
$ oc get -n openshift-machine-config-operator ds/machine-config-daemon -o json | jq .spec.updateStrategy
{
  "rollingUpdate": {
    "maxUnavailable": 1
  },
  "type": "RollingUpdate"
}
```

- Upgraded to 4.7.16

$ oc get clusterversion
NAME      VERSION   AVAILABLE   PROGRESSING   SINCE   STATUS
version   4.7.16    True        False         3h46m   Cluster version is 4.7.16
[miabbott@toolbox (container) ~/openshift-cluster-installs/4.5.40 ]$ oc get -n openshift-machine-config-operator ds/machine-config-daemon -o json | jq .spec.updateStrategy
{
  "rollingUpdate": {
    "maxUnavailable": 1
  },
  "type": "RollingUpdate"
}

- Upgraded to 4.8.0-fc.9

```
$ oc get clusterversion
NAME      VERSION      AVAILABLE   PROGRESSING   SINCE   STATUS
version   4.8.0-fc.9   True        False         110s    Cluster version is 4.8.0-fc.9
$ oc get -n openshift-machine-config-operator ds/machine-config-daemon -o json | jq .spec.updateStrategy
{
  "rollingUpdate": {
    "maxSurge": 0,
    "maxUnavailable": "10%"
  },
  "type": "RollingUpdate"
}
```

Comment 6 errata-xmlrpc 2021-07-27 23:12:15 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 (Moderate: OpenShift Container Platform 4.8.2 bug fix and 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-2021:2438