// Module included in the following assemblies:
//
// * machine_management/control_plane_machine_management/cpmso-troubleshooting.adoc

:_mod-docs-content-type: PROCEDURE
[id="cpmso-openstack-with-az-config_{context}"]
= Configuring {rh-openstack} clusters that have control plane machines with availability zones after an upgrade

[role="_abstract"]
For some clusters that run on {rh-openstack-first} that you upgrade, you must manually update machine resources before you can use control plane machine sets if the following configurations are true:

* The upgraded cluster was created with {product-title} 4.13 or earlier.

* The cluster infrastructure is installer-provisioned.

* Control plane machines were distributed across multiple compute availability zones.

To understand why this procedure is necessary, see link:https://access.redhat.com/solutions/7013893[Solution #7013893].

.Procedure

. For the `master-1` and `master-2` control plane machines, open the provider specs for editing. For example, to edit the first machine, enter the following command:
+
[source,terminal]
----
$ oc edit machine/<cluster_id>-master-1 -n openshift-machine-api
----
+
where:
+
`<cluster_id>`:: Specifies the ID of the upgraded cluster.

. For the `master-1` and `master-2` control plane machines, edit the value of the `serverGroupName` property in their provider specs to match that of the machine `master-0`.
+
.An example {rh-openstack} provider spec
[source,yaml,subs="attributes+"]
----
providerSpec:
  value:
    apiVersion: machine.openshift.io/v1alpha1
    availabilityZone: az0
      cloudName: openstack
    cloudsSecret:
      name: openstack-cloud-credentials
      namespace: openshift-machine-api
    flavor: m1.xlarge
    image: rhcos-{product-version}
    kind: OpenstackProviderSpec
    metadata:
      creationTimestamp: null
    networks:
    - filter: {}
      subnets:
      - filter:
          name: refarch-lv7q9-nodes
          tags: openshiftClusterID=refarch-lv7q9
    securityGroups:
    - filter: {}
      name: refarch-lv7q9-master
    serverGroupName: refarch-lv7q9-master-az0
    serverMetadata:
      Name: refarch-lv7q9-master
      openshiftClusterID: refarch-lv7q9
    tags:
    - openshiftClusterID=refarch-lv7q9
    trunk: true
    userDataSecret:
      name: master-user-data
----
+
where:
+
`serverGroupName`:: Specifies the server group name. This value must match for machines `master-0`, `master-1`, and `master-2`.
+
[NOTE]
====
If you edited or recreated machine resources after your initial cluster deployment, you might have to adapt these steps for your configuration.

In your {rh-openstack} cluster, find the server group that your control plane instances are in and use that as the value.
====

. Run the following command to retrieve information about the control plane machine set resource:
+
[source,terminal]
----
$ oc describe controlplanemachineset.machine.openshift.io/cluster --namespace openshift-machine-api
----

. Run the following command to edit the resource:
+
[source,terminal]
----
$ oc edit controlplanemachineset.machine.openshift.io/cluster --namespace openshift-machine-api
----

. For that resource, set the value of the `spec.state` property to `Active` to activate control plane machine sets for your cluster.
+
The control plane is now ready to be managed by the Cluster Control Plane Machine Set Operator.