Skip to content

Commit c4739db

Browse files
authored
Merge pull request #66212 from maxwelldb/cpms-shiftstack-OSDOCS6989
[OSDOCS-6989] Control plane machine sets for clusters on RHOSP
2 parents b9e4d17 + 1e6ec78 commit c4739db

13 files changed

+355
-5
lines changed

machine_management/control_plane_machine_management/cpmso-about.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ The Control Plane Machine Set Operator has the following limitations:
2525

2626
* The Operator requires the Machine API Operator to be operational and is therefore not supported on clusters with manually provisioned machines. When installing a {product-title} cluster with manually provisioned machines for a platform that creates an active generated `ControlPlaneMachineSet` custom resource (CR), you must remove the Kubernetes manifest files that define the control plane machine set as instructed in the installation process.
2727

28-
* Only Amazon Web Services (AWS), Google Cloud Platform (GCP), {ibmpowerProductName} Virtual Server, Microsoft Azure, Nutanix, and VMware vSphere clusters are supported.
28+
* Only Amazon Web Services (AWS), Google Cloud Platform (GCP), {ibmpowerProductName} Virtual Server, Microsoft Azure, Nutanix, VMware vSphere, and {rh-openstack-first} clusters are supported.
2929

3030
* Only clusters with three control plane machines are supported.
3131

machine_management/control_plane_machine_management/cpmso-configuration.adoc

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ The `<platform_provider_spec>` and `<platform_failure_domains>` sections of the
3333

3434
* xref:../../machine_management/control_plane_machine_management/cpmso-configuration.adoc#cpmso-sample-yaml-vsphere_cpmso-configuration[Sample YAML snippets for configuring VMware vSphere clusters]
3535

36+
* xref:../../machine_management/control_plane_machine_management/cpmso-configuration.adoc#cpmso-sample-yaml-openstack_cpmso-configuration[Sample YAML snippets for configuring {rh-openstack-first} clusters]
37+
3638
[id="cpmso-sample-yaml-aws_{context}"]
3739
== Sample YAML for configuring Amazon Web Services clusters
3840

@@ -94,3 +96,14 @@ Some sections of the control plane machine set CR are provider-specific. The fol
9496

9597
//Sample VMware vSphere provider specification
9698
include::modules/cpmso-yaml-provider-spec-vsphere.adoc[leveloffset=+2]
99+
100+
[id="cpmso-sample-yaml-openstack_{context}"]
101+
== Sample YAML for configuring {rh-openstack-first} clusters
102+
103+
Some sections of the control plane machine set CR are provider-specific. The following example YAML snippets show provider specification and failure domain configurations for an {rh-openstack} cluster.
104+
105+
//Sample OpenStack provider specification
106+
include::modules/cpmso-yaml-provider-spec-openstack.adoc[leveloffset=+2]
107+
108+
//Sample OpenStack failure domain configuration
109+
include::modules/cpmso-yaml-failure-domain-openstack.adoc[leveloffset=+2]

machine_management/control_plane_machine_management/cpmso-getting-started.adoc

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,17 @@ The status of the control plane machine set after installation depends on your c
5252
|
5353
|
5454
|X
55+
56+
|{rh-openstack-first}
57+
|X ^[3]^
58+
|X
59+
|
5560
|====
5661
[.small]
5762
--
5863
1. AWS clusters that are upgraded from version 4.11 or earlier require xref:../../machine_management/control_plane_machine_management/cpmso-getting-started.adoc#cpmso-activating_cpmso-getting-started[CR activation].
5964
2. GCP and Azure clusters that are upgraded from version 4.12 or earlier require xref:../../machine_management/control_plane_machine_management/cpmso-getting-started.adoc#cpmso-activating_cpmso-getting-started[CR activation].
60-
3. Nutanix clusters that are upgraded from version 4.13 or earlier require xref:../../machine_management/control_plane_machine_management/cpmso-getting-started.adoc#cpmso-activating_cpmso-getting-started[CR activation].
65+
3. Nutanix and {rh-openstack} clusters that are upgraded from version 4.13 or earlier require xref:../../machine_management/control_plane_machine_management/cpmso-getting-started.adoc#cpmso-activating_cpmso-getting-started[CR activation].
6166
--
6267

6368
//Checking the control plane machine set custom resource state
@@ -82,3 +87,4 @@ include::modules/cpmso-creating-cr.adoc[leveloffset=+1]
8287
* xref:../../machine_management/control_plane_machine_management/cpmso-configuration.adoc#cpmso-sample-yaml-azure_cpmso-configuration[Sample YAML for configuring Microsoft Azure clusters]
8388
* xref:../../machine_management/control_plane_machine_management/cpmso-configuration.adoc#cpmso-sample-yaml-nutanix_cpmso-configuration[Sample YAML for configuring Nutanix clusters]
8489
* xref:../../machine_management/control_plane_machine_management/cpmso-configuration.adoc#cpmso-sample-yaml-vsphere_cpmso-configuration[Sample YAML for configuring VMware vSphere clusters]
90+
* xref:../../machine_management/control_plane_machine_management/cpmso-configuration.adoc#cpmso-sample-yaml-openstack_cpmso-configuration[Sample YAML for configuring {rh-openStack-first} clusters]

machine_management/control_plane_machine_management/cpmso-resiliency.adoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ include::modules/cpmso-failure-domains-provider.adoc[leveloffset=+2]
2323

2424
* xref:../../machine_management/control_plane_machine_management/cpmso-configuration.adoc#cpmso-yaml-failure-domain-azure_cpmso-configuration[Sample Microsoft Azure failure domain configuration]
2525

26+
* xref:../../machine_management/control_plane_machine_management/cpmso-configuration.adoc#cpmso-yaml-failure-domain-openstack_cpmso-configuration[Sample {rh-openstack-first} failure domain configuration]
27+
2628
//Balancing control plane machines
2729
include::modules/cpmso-failure-domains-balancing.adoc[leveloffset=+2]
2830

machine_management/control_plane_machine_management/cpmso-troubleshooting.adoc

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,16 @@ include::modules/cpmso-ts-mhc-etcd-degraded.adoc[leveloffset=+1]
2828

2929
[role="_additional-resources"]
3030
.Additional resources
31-
* xref:../../backup_and_restore/control_plane_backup_and_restore/disaster_recovery/scenario-2-restoring-cluster-state.adoc#dr-restoring-cluster-state[Restoring to a previous cluster state]
31+
* xref:../../backup_and_restore/control_plane_backup_and_restore/disaster_recovery/scenario-2-restoring-cluster-state.adoc#dr-restoring-cluster-state[Restoring to a previous cluster state]
32+
33+
[id="cpmso-troubleshooting-shiftstack-upgrade_{context}"]
34+
== Upgrading clusters that run on {rh-openstack}
35+
36+
For clusters that run on {rh-openstack-first} that you upgrade from {product-title} 4.13 to 4.14, you might have to perform post-upgrade tasks before you can use control plane machine sets.
37+
38+
// TODO: Rejigger
39+
// Post-upgrade config for ShiftStack with machine AZs explicitly defined and rootVolumes w/out AZs
40+
include::modules/cpmso-openstack-ts-root-volume-azs.adoc[leveloffset=+2]
41+
42+
// Post-upgrade config for ShiftStack with control plane AZs explicitly defined
43+
include::modules/cpmso-openstack-with-az-config.adoc[leveloffset=+2]

machine_management/control_plane_machine_management/cpmso-using.adoc

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ include::modules/machineset-gcp-confidential-vm.adoc[leveloffset=+2]
115115

116116
//Configuring Shielded VM options by using machine sets
117117
include::modules/machineset-gcp-shielded-vms.adoc[leveloffset=+2]
118+
118119
[role="_additional-resources"]
119120
.Additional resources
120121
* link:https://cloud.google.com/compute/shielded-vm/docs/shielded-vm[What is Shielded VM?]
@@ -123,4 +124,12 @@ include::modules/machineset-gcp-shielded-vms.adoc[leveloffset=+2]
123124
** link:https://cloud.google.com/compute/shielded-vm/docs/shielded-vm#integrity-monitoring[Integrity monitoring]
124125

125126
//Enabling customer-managed encryption keys for a machine set
126-
include::modules/machineset-gcp-enabling-customer-managed-encryption.adoc[leveloffset=+2]
127+
include::modules/machineset-gcp-enabling-customer-managed-encryption.adoc[leveloffset=+2]
128+
129+
[id="cpmso-supported-features-openstack_{context}"]
130+
== Updating the configuration for {rh-openstack} control plane machines
131+
132+
You can configure {rh-openstack-first} control plane machines by changing the configuration of your control plane machine set. When you save an update to the control plane machine set, the Control Plane Machine Set Operator updates the control plane machines according to your configured update strategy.
133+
134+
//Changing the OpenStack Nova flavor by using a control plane machine set
135+
include::modules/cpms-changing-openstack-flavor-type.adoc[leveloffset=+2]
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
// Module included in the following assemblies:
2+
// * machine_management/control_plane_machine_management/cpmso-using.adoc
3+
4+
:_content-type: PROCEDURE
5+
[id="cpms-changing-openstack-flavor-type_{context}"]
6+
= Changing the {rh-openstack} compute flavor by using a control plane machine set
7+
8+
You can change the {rh-openstack-first} compute service (Nova) flavor that your control plane machines use by updating the specification in the control plane machine set custom resource.
9+
10+
In {rh-openstack}, flavors define the compute, memory, and storage capacity of computing instances. By increasing or decreasing the flavor size, you can scale your control plane vertically.
11+
12+
.Prerequisites
13+
14+
* Your {rh-openstack} cluster uses a control plane machine set.
15+
16+
.Procedure
17+
18+
. Edit the following line under the `providerSpec` field:
19+
+
20+
[source,yaml]
21+
----
22+
providerSpec:
23+
value:
24+
# ...
25+
flavor: m1.xlarge <1>
26+
----
27+
<1> Specify a {rh-openstack} flavor type that has the same base as the existing selection. For example, you can change `m6i.xlarge` to `m6i.2xlarge` or `m6i.4xlarge`. You can choose larger or smaller flavors depending on your vertical scaling needs.
28+
29+
. Save your changes.
30+
31+
After you save your changes, machines are replaced with ones that use the flavor you chose.

modules/cpmso-creating-cr.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ $ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
6565
Before you activate the CR, you must ensure that its configuration is correct for your cluster requirements.
6666
====
6767
<3> Specify the update strategy for the cluster. Valid values are `OnDelete` and `RollingUpdate`. The default value is `RollingUpdate`. For more information about update strategies, see "Updating the control plane configuration".
68-
<4> Specify your cloud provider platform name. Valid values are `AWS`, `Azure`, `GCP`, `Nutanix`, and `VSphere`.
68+
<4> Specify your cloud provider platform name. Valid values are `AWS`, `Azure`, `GCP`, `Nutanix`, `VSphere`, and `OpenStack`.
6969
<5> Add the `<platform_failure_domains>` configuration for the cluster. The format and values of this section are provider-specific. For more information, see the sample failure domain configuration for your cloud provider.
7070
+
7171
[NOTE]

modules/cpmso-failure-domains-provider.adoc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
//
33
// * machine_management/cpmso-resiliency.adoc
44

5+
// TODO: See if I can find RHOSP docs links for the proposed changes.
6+
57
:_content-type: REFERENCE
68
[id="cpmso-failure-domains-provider_{context}"]
79
= Failure domain platform support and configuration
@@ -33,6 +35,10 @@ The control plane machine set concept of a failure domain is analogous to existi
3335
|VMware vSphere
3436
|
3537
|Not applicable
38+
39+
|{rh-openstack-first}
40+
|X
41+
|link:https://docs.openstack.org/nova/2023.2/admin/availability-zones.html[OpenStack Nova availability zones] and link:https://docs.openstack.org/cinder/2023.2/admin/availability-zone-type.html[OpenStack Cinder availability zones]
3642
|====
3743
[.small]
3844
--
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * machine_management/control_plane_machine_management/cpmso-troubleshooting.adoc
4+
5+
:_content-type: PROCEDURE
6+
[id="cpmso-openstack-ts-root-volume-azs_{context}"]
7+
= Configuring {rh-openstack} clusters that have machines with root volume availability zones after an upgrade
8+
9+
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:
10+
11+
* You upgraded the cluster from {product-title} 4.13 to 4.14.
12+
13+
* The cluster infrastructure is installer-provisioned.
14+
15+
* Machines were distributed across multiple availability zones.
16+
17+
* Machines were configured to use root volumes for which block storage availability zones were not defined.
18+
19+
To understand why this procedure is necessary, see link:https://access.redhat.com/solutions/7013893[Solution #7024383].
20+
21+
.Procedure
22+
23+
. For all control plane machines, edit the provider spec for all control plane machines that match the environment. For example, to edit the machine `master-0`, enter the following command:
24+
+
25+
[source,terminal]
26+
----
27+
$ oc edit machine/<cluster_id>-master-0 -n openshift-machine-api
28+
----
29+
+
30+
where:
31+
+
32+
`<cluster_id>`:: Specifies the ID of the upgraded cluster.
33+
34+
. In the provider spec, set the value of the property `rootVolume.availabilityZone` to the volume of the availability zone you want to use.
35+
+
36+
.An example {rh-openstack} provider spec
37+
[source,yaml]
38+
----
39+
providerSpec:
40+
value:
41+
apiVersion: machine.openshift.io/v1alpha1
42+
availabilityZone: az0
43+
cloudName: openstack
44+
cloudsSecret:
45+
name: openstack-cloud-credentials
46+
namespace: openshift-machine-api
47+
flavor: m1.xlarge
48+
image: rhcos-4.14
49+
kind: OpenstackProviderSpec
50+
metadata:
51+
creationTimestamp: null
52+
networks:
53+
- filter: {}
54+
subnets:
55+
- filter:
56+
name: refarch-lv7q9-nodes
57+
tags: openshiftClusterID=refarch-lv7q9
58+
rootVolume:
59+
availabilityZone: nova <1>
60+
diskSize: 30
61+
sourceUUID: rhcos-4.12
62+
volumeType: fast-0
63+
securityGroups:
64+
- filter: {}
65+
name: refarch-lv7q9-master
66+
serverGroupName: refarch-lv7q9-master
67+
serverMetadata:
68+
Name: refarch-lv7q9-master
69+
openshiftClusterID: refarch-lv7q9
70+
tags:
71+
- openshiftClusterID=refarch-lv7q9
72+
trunk: true
73+
userDataSecret:
74+
name: master-user-data
75+
----
76+
<1> Set the zone name as this value.
77+
+
78+
[NOTE]
79+
====
80+
If you edited or recreated machine resources after your initial cluster deployment, you might have to adapt these steps for your configuration.
81+
82+
In your {rh-openstack} cluster, find the availability zone of the root volumes for your machines and use that as the value.
83+
====
84+
85+
. Run the following command to retrieve information about the control plane machine set resource:
86+
+
87+
[source,terminal]
88+
----
89+
$ oc describe controlplanemachineset.machine.openshift.io/cluster --namespace openshift-machine-api
90+
----
91+
92+
. Run the following command to edit the resource:
93+
+
94+
[source,terminal]
95+
----
96+
$ oc edit controlplanemachineset.machine.openshift.io/cluster --namespace openshift-machine-api
97+
----
98+
99+
. For that resource, set the value of the `spec.state` property to `Active` to activate control plane machine sets for your cluster.
100+
101+
Your control plane is ready to be managed by the Cluster Control Plane Machine Set Operator.

0 commit comments

Comments
 (0)