Original: * Previously, the Machine API controller could not determine the zone of machines in vSphere clusters that use multiple zones. With this release, the zone lookup logic is based on the host of a VM and, as a result, machine objects indicate proper zones. (link:https://issues.redhat.com/browse/OCPBUGS-7249[*OCPBUGS-7249*])
* Previously, after the rotation of cloud credentials in the `clouds.yaml` file, the OpenStack machine API provider would need to be restarted in order to pick up the new cloud credentials. As a result, the ability of a machine set to scale to zero could be affected. With this change, cloud credentials are no longer cached, and the provider reads the corresponding secret freshly as needed. (link:https://issues.redhat.com/browse/OCPBUGS-8687[*OCPBUGS-8687*])
* Previously, some conditions during the startup process of the Cluster Autoscaler Operator caused a lock that prevented the Operator from successfully starting and marking itself as available. As a result, the cluster became degraded. The issue is resolved with this release. (link:https://issues.redhat.com/browse/OCPBUGS-20038[*OCPBUGS-20038*])
* Previously, the bootstrap credentials used to request client credentials for control plane nodes did not include the generic, all service accounts group. As a result, the cluster machine approver ignored certificate signing requests (CSRs) created during this phase. In certain conditions, this prevented approval of CSRs during bootstrap and caused the installation to fail. With this release, the bootstrap credential includes the groups that the cluster machine approver expects for a service account. This change allows the machine approver to take over from the bootstrap CSR approver earlier in the cluster lifecycle and should reduce bootstrap failures related to CSR approval. (link:https://issues.redhat.com/browse/OCPBUGS-8349[*OCPBUGS-8349*])
* Previously, if scaling the machines on a Nutanix cluster exceeded the available memory to complete the operation, machines would get stuck in the `Provisioning` state and could not be scaled up or down. The issue is resolved in this release. (link:https://issues.redhat.com/browse/OCPBUGS-19731[*OCPBUGS-19731*])
* Previously, for clusters on which the Control Plane Machine Set Operator is configured to use the `OnDelete` update strategy, cached information about machines caused the Operator to balance machines incorrectly and place them in an unexpected failure domain during reconciliation. With this release, the Operator refreshes this information immediately before creating new machines so that it correctly identifies the failure domains to place machines in. (link:https://issues.redhat.com/browse/OCPBUGS-15338[*OCPBUGS-15338*])
* Previously, the Control Plane Machine Set Operator used the `Infrastructure` object specification to determine the platform type for the cluster. For clusters upgraded from {product-title} version 4.5 and earlier, this practice meant that the Operator could not correctly determine that a cluster was running on AWS, and therefore did not generate the `ControlPlaneMachineSet` custom resource (CR) as expected. With this release, the Operator uses the status platform type, which is populated on all clusters independent of when they were created and is now able to generate the `ControlPlaneMachineSet` CR for all clusters. (link:https://issues.redhat.com/browse/OCPBUGS-11389[*OCPBUGS-11389*])
* Previously, machines created by a control plane machine set were considered ready once the underlying Machine API machine was running. With this release, the machine is not considered ready until the node linked to that machine is also ready. (link:https://issues.redhat.com/browse/OCPBUGS-7989[*OCPBUGS-7989*])
* Previously, the Control Plane Machine Set Operator prioritized failure domains alphabetically and moved machines from alphabetically later failure domains to alphabetically earlier failure domains, even if doing so did not improve the availability of the machines across the failure domains. With this release, the Operator is updated to prioritize failure domains that are present in the existing machines and to respect existing failure domains that provide better availability. (link:https://issues.redhat.com/browse/OCPBUGS-7921[*OCPBUGS-7921*])
* Previously, when a control plane machine on a vSphere cluster that uses a control plane machine set was deleted, sometimes two replacement machines were created. With this release, the control plane machine set no longer causes an extra machine to be created. (link:https://issues.redhat.com/browse/OCPBUGS-7516[*OCPBUGS-7516*])
* Previously, when the availability zone and subnet ID in a machine set were mismatched, a machine was created successfully by using the machine set specification with no indication to the user of the mismatch. Because the mismatched values can cause problems with some configurations, this occurrence might be visible as a warning message. With this release, a warning about the mismatch is logged. (link:https://issues.redhat.com/browse/OCPBUGS-6882[*OCPBUGS-6882*])
* Previously, when creating an {product-title} cluster on Nutanix that uses Dynamic Host Configuration Protocol (DHCP) instead of an IP address management (IPAM) network configuration, the hostname of the VM was not set by DHCP. With this release, the VM hostname is set with values from the ignition configuration files. As a result, the issue is resolved for DHCP as well as other network configuration types. (link:https://issues.redhat.com/browse/OCPBUGS-6727[*OCPBUGS-6727*])
* Previously, multiple clusters could be created in the `openshift-cluster-api` namespace. This namespace must contain only one cluster. With this release, additional clusters cannot be created in this namespace. (link:https://issues.redhat.com/browse/OCPBUGS-4147[*OCPBUGS-4147*])
* Previously, clearing some parameters from the `providerSpec` field of a control plane machine set custom resource caused a loop of control plane machine deletion and creation. With this release, these parameters receive a default value if they are cleared or left empty, which resolves the issue. (link:https://issues.redhat.com/browse/OCPBUGS-2960[*OCPBUGS-2960*])
* Previously, the Cloud Credential Operator utility (`ccoctl`) used an incorrect Amazon Resource Names (ARN) prefix for AWS GovCloud (US) and AWS China regions. The incorrect ARN prefix caused the `ccoctl aws create-all` command that is used to create AWS resources during installation to fail. This release updates the ARN prefixes to the correct values. (link:https://issues.redhat.com/browse/OCPBUGS-13549[*OCPBUGS-13549*])
* Previously, security changes to Amazon S3 buckets caused the Cloud Credential Operator utility (`ccoctl`) command that is used to create AWS resources during installation (`ccoctl aws create-all`) to fail. With this release, the `ccoctl` utility is updated to reflect the Amazon S3 security changes. (link:https://issues.redhat.com/browse/OCPBUGS-11671[*OCPBUGS-11671*])
Users who want to upgrade from earlier {product-title} versions and who operate workloads depending on modified system `SecurityContextConstraints` resources must follow the procedure in the link:https://access.redhat.com/solutions/7033949[Knowledge Base article] to make sure their workloads are able to run without modified system `SecurityContextConstraint` resources. (link:https://issues.redhat.com/browse/OCPBUGS-19465[*OCPBUGS-19465*])
* Previously, the Cluster Version Operator did not prioritize likely targets when determining which conditional update risks to evaluate first. Now for conditional updates to which risks do not apply, these updates are available faster after Cluster Version Operator detection. . (link:https://issues.redhat.com/browse/OCPBUGS-5469[*OCPBUGS-5469*])
Revised: * Previously, the Cluster Version Operator did not prioritize likely targets when determining which conditional update risks to evaluate first. Now for conditional updates to which risks do not apply, these updates are available faster after Cluster Version Operator detection. (link:https://issues.redhat.com/browse/OCPBUGS-5469[OCPBUGS-5469])