Skip to content

Commit 4910e48

Browse files
authored
Merge pull request #63227 from jeana-redhat/OSDOCS-7251-Azure-CPMS-mutli-subnet
[OSDOCS-9373]: Azure CPMS failure domain misc updates (prework)
2 parents d93f894 + 9e6d57f commit 4910e48

12 files changed

+408
-264
lines changed

machine_management/control_plane_machine_management/cpmso-configuration.adoc

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,13 @@ Some sections of the control plane machine set CR are provider-specific. The fol
4343
//Sample AWS provider specification
4444
include::modules/cpmso-yaml-provider-spec-aws.adoc[leveloffset=+2]
4545

46-
//Sample AWS failure domain configuration
47-
include::modules/cpmso-yaml-failure-domain-aws.adoc[leveloffset=+2]
48-
4946
[role="_additional-resources"]
5047
.Additional resources
5148
* xref:../../machine_management/control_plane_machine_management/cpmso-using.adoc#cpmso-supported-features-aws_cpmso-using[Enabling Amazon Web Services features for control plane machines]
5249

50+
//Sample AWS failure domain configuration
51+
include::modules/cpmso-yaml-failure-domain-aws.adoc[leveloffset=+2]
52+
5353
[id="cpmso-sample-yaml-gcp_{context}"]
5454
== Sample YAML for configuring Google Cloud Platform clusters
5555

@@ -58,14 +58,13 @@ Some sections of the control plane machine set CR are provider-specific. The fol
5858
//Sample GCP provider specification
5959
include::modules/cpmso-yaml-provider-spec-gcp.adoc[leveloffset=+2]
6060

61-
//Sample GCP failure domain configuration
62-
include::modules/cpmso-yaml-failure-domain-gcp.adoc[leveloffset=+2]
63-
////
64-
//To be added in a later PR
6561
[role="_additional-resources"]
6662
.Additional resources
6763
* xref:../../machine_management/control_plane_machine_management/cpmso-using.adoc#cpmso-supported-features-gcp_cpmso-using[Enabling Google Cloud Platform features for control plane machines]
68-
////
64+
65+
//Sample GCP failure domain configuration
66+
include::modules/cpmso-yaml-failure-domain-gcp.adoc[leveloffset=+2]
67+
6968
[id="cpmso-sample-yaml-azure_{context}"]
7069
== Sample YAML for configuring Microsoft Azure clusters
7170

@@ -74,13 +73,13 @@ Some sections of the control plane machine set CR are provider-specific. The fol
7473
//Sample Azure provider specification
7574
include::modules/cpmso-yaml-provider-spec-azure.adoc[leveloffset=+2]
7675

77-
//Sample Azure failure domain configuration
78-
include::modules/cpmso-yaml-failure-domain-azure.adoc[leveloffset=+2]
79-
8076
[role="_additional-resources"]
8177
.Additional resources
8278
* xref:../../machine_management/control_plane_machine_management/cpmso-using.adoc#cpmso-supported-features-azure_cpmso-using[Enabling Microsoft Azure features for control plane machines]
8379

80+
//Sample Azure failure domain configuration
81+
include::modules/cpmso-yaml-failure-domain-azure.adoc[leveloffset=+2]
82+
8483
[id="cpmso-sample-yaml-nutanix_{context}"]
8584
== Sample YAML for configuring Nutanix clusters
8685

modules/cpmso-yaml-failure-domain-aws.adoc

Lines changed: 30 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -13,25 +13,36 @@ When configuring AWS failure domains in the control plane machine set, you must
1313
.Sample AWS failure domain values
1414
[source,yaml]
1515
----
16-
failureDomains:
17-
aws:
18-
- placement:
19-
availabilityZone: <aws_zone_a> <1>
20-
subnet: <2>
21-
filters:
22-
- name: tag:Name
23-
values:
24-
- <cluster_id>-private-<aws_zone_a> <3>
25-
type: Filters <4>
26-
- placement:
27-
availabilityZone: <aws_zone_b> <5>
28-
subnet:
29-
filters:
30-
- name: tag:Name
31-
values:
32-
- <cluster_id>-private-<aws_zone_b> <6>
33-
type: Filters
34-
platform: AWS <7>
16+
apiVersion: machine.openshift.io/v1
17+
kind: ControlPlaneMachineSet
18+
metadata:
19+
name: cluster
20+
namespace: openshift-machine-api
21+
spec:
22+
# ...
23+
template:
24+
# ...
25+
machines_v1beta1_machine_openshift_io:
26+
failureDomains:
27+
aws:
28+
- placement:
29+
availabilityZone: <aws_zone_a> <1>
30+
subnet: <2>
31+
filters:
32+
- name: tag:Name
33+
values:
34+
- <cluster_id>-private-<aws_zone_a> <3>
35+
type: Filters <4>
36+
- placement:
37+
availabilityZone: <aws_zone_b> <5>
38+
subnet:
39+
filters:
40+
- name: tag:Name
41+
values:
42+
- <cluster_id>-private-<aws_zone_b> <6>
43+
type: Filters
44+
platform: AWS <7>
45+
# ...
3546
----
3647
<1> Specifies an AWS availability zone for the first failure domain.
3748
<2> Specifies a subnet configuration. In this example, the subnet type is `Filters`, so there is a `filters` stanza.

modules/cpmso-yaml-failure-domain-azure.adoc

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,33 @@
88

99
The control plane machine set concept of a failure domain is analogous to existing Azure concept of an link:https://learn.microsoft.com/en-us/azure/azure-web-pubsub/concept-availability-zones[_Azure availability zone_]. The `ControlPlaneMachineSet` CR spreads control plane machines across multiple failure domains when possible.
1010

11-
When configuring Azure failure domains in the control plane machine set, you must specify the availability zone name.
11+
When configuring Azure failure domains in the control plane machine set, you must specify the availability zone name. An Azure cluster uses a single subnet that spans multiple zones.
1212

1313
.Sample Azure failure domain values
1414
[source,yaml]
1515
----
16-
failureDomains:
17-
azure: <1>
18-
- zone: "1"
19-
- zone: "2"
20-
- zone: "3"
21-
platform: Azure <2>
16+
apiVersion: machine.openshift.io/v1
17+
kind: ControlPlaneMachineSet
18+
metadata:
19+
name: cluster
20+
namespace: openshift-machine-api
21+
spec:
22+
# ...
23+
template:
24+
# ...
25+
machines_v1beta1_machine_openshift_io:
26+
failureDomains:
27+
azure:
28+
- zone: "1" # <1>
29+
- zone: "2"
30+
- zone: "3"
31+
platform: Azure # <2>
32+
# ...
2233
----
2334
<1> Each instance of `zone` specifies an Azure availability zone for a failure domain.
35+
+
36+
[NOTE]
37+
====
38+
If the cluster is configured to use a single zone for all failure domains, the `zone` parameter is configured in the provider specification instead of in the failure domain configuration.
39+
====
2440
<2> Specifies the cloud provider platform name. Do not change this value.

modules/cpmso-yaml-failure-domain-gcp.adoc

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,24 @@ When configuring GCP failure domains in the control plane machine set, you must
1313
.Sample GCP failure domain values
1414
[source,yaml]
1515
----
16-
failureDomains:
17-
gcp:
18-
- zone: <gcp_zone_a> <1>
19-
- zone: <gcp_zone_b> <2>
20-
- zone: <gcp_zone_c>
21-
- zone: <gcp_zone_d>
22-
platform: GCP <3>
16+
apiVersion: machine.openshift.io/v1
17+
kind: ControlPlaneMachineSet
18+
metadata:
19+
name: cluster
20+
namespace: openshift-machine-api
21+
spec:
22+
# ...
23+
template:
24+
# ...
25+
machines_v1beta1_machine_openshift_io:
26+
failureDomains:
27+
gcp:
28+
- zone: <gcp_zone_a> <1>
29+
- zone: <gcp_zone_b> <2>
30+
- zone: <gcp_zone_c>
31+
- zone: <gcp_zone_d>
32+
platform: GCP <3>
33+
# ...
2334
----
2435
<1> Specifies a GCP zone for the first failure domain.
2536
<2> Specifies an additional failure domain. Further failure domains are added the same way.

modules/cpmso-yaml-failure-domain-openstack.adoc

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,34 @@
66
[id="cpmso-yaml-failure-domain-openstack_{context}"]
77
= Sample {rh-openstack} failure domain configuration
88
// TODO: Replace that link.
9-
The control plane machine set concept of a failure domain is analogous to existing {rh-openstack-first} concept of an link:https://docs.openstack.org/nova/latest/admin/availability-zones.html[availability zone]. The `ControlPlaneMachineSet` CR spreads control plane machines across multiple failure domains when possible.
9+
The control plane machine set concept of a failure domain is analogous to the existing {rh-openstack-first} concept of an link:https://docs.openstack.org/nova/latest/admin/availability-zones.html[availability zone]. The `ControlPlaneMachineSet` CR spreads control plane machines across multiple failure domains when possible.
1010

1111
The following example demonstrates the use of multiple Nova availability zones as well as Cinder availability zones.
1212

1313
.Sample OpenStack failure domain values
1414
[source,yaml]
1515
----
16-
failureDomains:
17-
platform: OpenStack
18-
openstack:
19-
- availabilityZone: nova-az0
20-
rootVolume:
21-
availabilityZone: cinder-az0
22-
- availabilityZone: nova-az1
23-
rootVolume:
24-
availabilityZone: cinder-az1
25-
- availabilityZone: nova-az2
26-
rootVolume:
27-
availabilityZone: cinder-az2
16+
apiVersion: machine.openshift.io/v1
17+
kind: ControlPlaneMachineSet
18+
metadata:
19+
name: cluster
20+
namespace: openshift-machine-api
21+
spec:
22+
# ...
23+
template:
24+
# ...
25+
machines_v1beta1_machine_openshift_io:
26+
failureDomains:
27+
platform: OpenStack
28+
openstack:
29+
- availabilityZone: nova-az0
30+
rootVolume:
31+
availabilityZone: cinder-az0
32+
- availabilityZone: nova-az1
33+
rootVolume:
34+
availabilityZone: cinder-az1
35+
- availabilityZone: nova-az2
36+
rootVolume:
37+
availabilityZone: cinder-az2
38+
# ...
2839
----

modules/cpmso-yaml-failure-domain-vsphere.adoc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
[id="cpmso-yaml-failure-domain-vsphere_{context}"]
77
= Sample VMware vSphere failure domain configuration
88

9-
On VMware vSphere infrastructure, the cluster-wide infrastructure Custom Resource Definition (CRD), `infrastructures.config.openshift.io`, defines failure domains for your cluster. The `providerSpec` in the `ControlPlaneMachineSet` custom resource (CR) specifies names for failure domains. A failure domain is an infrastructure resource that comprises a control plane machine set, a vCenter datacenter, vCenter datastore, and a network.
9+
On VMware vSphere infrastructure, the cluster-wide infrastructure Custom Resource Definition (CRD), `infrastructures.config.openshift.io`, defines failure domains for your cluster. The `providerSpec` in the `ControlPlaneMachineSet` custom resource (CR) specifies names for failure domains. A failure domain is an infrastructure resource that comprises a control plane machine set, a vCenter datacenter, vCenter datastore, and a network.
1010

1111
By using a failure domain resource, you can use a control plane machine set to deploy control plane machines on hardware that is separate from the primary VMware vSphere infrastructure. A control plane machine set also balances control plane machines across defined failure domains to provide fault tolerance capabilities to your infrastructure.
1212

@@ -18,7 +18,7 @@ If you modify the `ProviderSpec` configuration in the `ControlPlaneMachineSet` C
1818
:FeatureName: Defining a failure domain for a control plane machine set
1919
include::snippets/technology-preview.adoc[]
2020

21-
.Example ProviderSpec configuration with specified failure domain names
21+
.Sample vSphere failure domain values
2222
[source,yaml]
2323
----
2424
apiVersion: machine.openshift.io/v1
@@ -29,14 +29,14 @@ metadata:
2929
spec:
3030
# ...
3131
template:
32-
machineType: machines_v1beta1_machine_openshift_io
32+
# ...
3333
machines_v1beta1_machine_openshift_io:
3434
failureDomains: <1>
3535
platform: VSphere
3636
vsphere: <2>
3737
- name: <failure_domain_name1>
38-
- name: <failure_domain_name2>
39-
# ...
38+
- name: <failure_domain_name2>
39+
# ...
4040
----
4141
<1> A failure domain defines the vCenter location for {product-title} cluster nodes.
4242
<2> Defines failure domains by name for the control plane machine set.

modules/cpmso-yaml-provider-spec-aws.adoc

Lines changed: 66 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -18,44 +18,56 @@ $ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
1818
.Sample AWS `providerSpec` values
1919
[source,yaml]
2020
----
21-
providerSpec:
22-
value:
23-
ami:
24-
id: ami-<ami_id_string> <1>
25-
apiVersion: machine.openshift.io/v1beta1
26-
blockDevices:
27-
- ebs: <2>
28-
encrypted: true
29-
iops: 0
30-
kmsKey:
31-
arn: ""
32-
volumeSize: 120
33-
volumeType: gp3
34-
credentialsSecret:
35-
name: aws-cloud-credentials <3>
36-
deviceIndex: 0
37-
iamInstanceProfile:
38-
id: <cluster_id>-master-profile <4>
39-
instanceType: m6i.xlarge <5>
40-
kind: AWSMachineProviderConfig <6>
41-
loadBalancers: <7>
42-
- name: <cluster_id>-int
43-
type: network
44-
- name: <cluster_id>-ext
45-
type: network
46-
metadata:
47-
creationTimestamp: null
48-
metadataServiceOptions: {}
49-
placement: <8>
50-
region: <region> <9>
51-
securityGroups:
52-
- filters:
53-
- name: tag:Name
54-
values:
55-
- <cluster_id>-master-sg <10>
56-
subnet: {} <11>
57-
userDataSecret:
58-
name: master-user-data <12>
21+
apiVersion: machine.openshift.io/v1
22+
kind: ControlPlaneMachineSet
23+
metadata:
24+
name: cluster
25+
namespace: openshift-machine-api
26+
spec:
27+
# ...
28+
template:
29+
# ...
30+
spec:
31+
providerSpec:
32+
value:
33+
ami:
34+
id: ami-<ami_id_string> <1>
35+
apiVersion: machine.openshift.io/v1beta1
36+
blockDevices:
37+
- ebs: <2>
38+
encrypted: true
39+
iops: 0
40+
kmsKey:
41+
arn: ""
42+
volumeSize: 120
43+
volumeType: gp3
44+
credentialsSecret:
45+
name: aws-cloud-credentials <3>
46+
deviceIndex: 0
47+
iamInstanceProfile:
48+
id: <cluster_id>-master-profile <4>
49+
instanceType: m6i.xlarge <5>
50+
kind: AWSMachineProviderConfig <6>
51+
loadBalancers: <7>
52+
- name: <cluster_id>-int
53+
type: network
54+
- name: <cluster_id>-ext
55+
type: network
56+
metadata:
57+
creationTimestamp: null
58+
metadataServiceOptions: {}
59+
placement: <8>
60+
region: <region> <9>
61+
availabilityZone: "" <10>
62+
tenancy: <11>
63+
securityGroups:
64+
- filters:
65+
- name: tag:Name
66+
values:
67+
- <cluster_id>-master-sg <12>
68+
subnet: {} <13>
69+
userDataSecret:
70+
name: master-user-data <14>
5971
----
6072
<1> Specifies the {op-system-first} Amazon Machine Images (AMI) ID for the cluster. The AMI must belong to the same region as the cluster. If you want to use an AWS Marketplace image, you must complete the {product-title} subscription from the link:https://aws.amazon.com/marketplace/fulfillment?productId=59ead7de-2540-4653-a8b0-fa7926d5c845[AWS Marketplace] to obtain an AMI ID for your region.
6173
<2> Specifies the configuration of an encrypted EBS volume.
@@ -64,8 +76,20 @@ providerSpec:
6476
<5> Specifies the AWS instance type for the control plane.
6577
<6> Specifies the cloud provider platform type. Do not change this value.
6678
<7> Specifies the internal (`int`) and external (`ext`) load balancers for the cluster.
67-
<8> This parameter is configured in the failure domain, and is shown with an empty value here. If a value specified for this parameter differs from the value in the failure domain, the Operator overwrites it with the value in the failure domain.
79+
<8> Specifies where to create the control plane instance in AWS.
6880
<9> Specifies the AWS region for the cluster.
69-
<10> Specifies the control plane machines security group.
70-
<11> This parameter is configured in the failure domain, and is shown with an empty value here. If a value specified for this parameter differs from the value in the failure domain, the Operator overwrites it with the value in the failure domain.
71-
<12> Specifies the control plane user data secret. Do not change this value.
81+
<10> This parameter is configured in the failure domain and is shown with an empty value here. If a value specified for this parameter differs from the value in the failure domain, the Control Plane Machine Set Operator overwrites it with the value in the failure domain.
82+
<11> Specifies the AWS Dedicated Instance configuration for the control plane. For more information, see AWS documentation about link:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html[Dedicated Instances]. The following values are valid:
83+
* `default`: The Dedicated Instance runs on shared hardware.
84+
* `dedicated`: The Dedicated Instance runs on single-tenant hardware.
85+
* `host`: The Dedicated Instance runs on a Dedicated Host, which is an isolated server with configurations that you can control.
86+
<12> Specifies the control plane machines security group.
87+
<13> This parameter is configured in the failure domain and is shown with an empty value here. If a value specified for this parameter differs from the value in the failure domain, the Control Plane Machine Set Operator overwrites it with the value in the failure domain.
88+
+
89+
[NOTE]
90+
====
91+
If the failure domain configuration does not specify a value, the value in the provider specification is used.
92+
Configuring a subnet in the failure domain overwrites the subnet value in the provider specification.
93+
====
94+
//TODO: clarify with dev about this one in 4.16+
95+
<14> Specifies the control plane user data secret. Do not change this value.

0 commit comments

Comments
 (0)