$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
You can update your control plane machines to reflect changes in your infrastructure or environment by editing values in the control plane machine set specification.
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. For more information, see "Updating the control plane configuration".
The following example YAML snippets show provider specification and failure domain configurations for an AWS cluster.
When you create a control plane machine set for an existing cluster, the provider specification must match the providerSpec configuration in the control plane machine custom resource (CR) that the installation program creates. You can omit any field that is set in the failure domain section of the CR.
In the following example, <cluster_id> is the infrastructure ID that is based on the cluster ID that you set when you provisioned the cluster. If you have the OpenShift CLI installed, you can obtain the infrastructure ID by running the following command:
$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
providerSpec valuesapiVersion: machine.openshift.io/v1
kind: ControlPlaneMachineSet
metadata:
name: cluster
namespace: openshift-machine-api
spec:
# ...
template:
# ...
spec:
providerSpec:
value:
ami:
id: ami-<ami_id_string> (1)
apiVersion: machine.openshift.io/v1beta1
blockDevices:
- ebs: (2)
encrypted: true
iops: 0
kmsKey:
arn: ""
volumeSize: 120
volumeType: gp3
credentialsSecret:
name: aws-cloud-credentials (3)
deviceIndex: 0
iamInstanceProfile:
id: <cluster_id>-master-profile (4)
instanceType: m6i.xlarge (5)
kind: AWSMachineProviderConfig (6)
loadBalancers: (7)
- name: <cluster_id>-int
type: network
- name: <cluster_id>-ext
type: network
metadata:
creationTimestamp: null
metadataServiceOptions: {}
placement: (8)
region: <region> (9)
availabilityZone: "" (10)
tenancy: (11)
securityGroups:
- filters:
- name: tag:Name
values:
- <cluster_id>-master-sg (12)
subnet: {} (13)
userDataSecret:
name: master-user-data (14)
| 1 | Specifies the Fedora CoreOS (FCOS) 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 OKD subscription from the AWS Marketplace to obtain an AMI ID for your region. | ||
| 2 | Specifies the configuration of an encrypted EBS volume. | ||
| 3 | Specifies the secret name for the cluster. Do not change this value. | ||
| 4 | Specifies the AWS Identity and Access Management (IAM) instance profile. Do not change this value. | ||
| 5 | Specifies the AWS instance type for the control plane. | ||
| 6 | Specifies the cloud provider platform type. Do not change this value. | ||
| 7 | Specifies the internal (int) and external (ext) load balancers for the cluster.
|
||
| 8 | Specifies where to create the control plane instance in AWS. | ||
| 9 | Specifies the AWS region for the cluster. | ||
| 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. | ||
| 11 | Specifies the AWS Dedicated Instance configuration for the control plane. For more information, see AWS documentation about Dedicated Instances. The following values are valid:
|
||
| 12 | Specifies the control plane machines security group. | ||
| 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.
|
||
| 14 | Specifies the control plane user data secret. Do not change this value. |
The control plane machine set concept of a failure domain is analogous to existing AWS concept of an Availability Zone (AZ). The ControlPlaneMachineSet CR spreads control plane machines across multiple failure domains when possible.
When configuring AWS failure domains in the control plane machine set, you must specify the availability zone name and the subnet to use.
apiVersion: machine.openshift.io/v1
kind: ControlPlaneMachineSet
metadata:
name: cluster
namespace: openshift-machine-api
spec:
# ...
template:
# ...
machines_v1beta1_machine_openshift_io:
failureDomains:
aws:
- placement:
availabilityZone: <aws_zone_a> (1)
subnet: (2)
filters:
- name: tag:Name
values:
- <cluster_id>-private-<aws_zone_a> (3)
type: Filters (4)
- placement:
availabilityZone: <aws_zone_b> (5)
subnet:
filters:
- name: tag:Name
values:
- <cluster_id>-private-<aws_zone_b> (6)
type: Filters
platform: AWS (7)
# ...
| 1 | Specifies an AWS availability zone for the first failure domain. |
| 2 | Specifies a subnet configuration. In this example, the subnet type is Filters, so there is a filters stanza. |
| 3 | Specifies the subnet name for the first failure domain, using the infrastructure ID and the AWS availability zone. |
| 4 | Specifies the subnet type. The allowed values are: ARN, Filters and ID. The default value is Filters. |
| 5 | Specifies the subnet name for an additional failure domain, using the infrastructure ID and the AWS availability zone. |
| 6 | Specifies the cluster’s infrastructure ID and the AWS availability zone for the additional failure domain. |
| 7 | Specifies the cloud provider platform name. Do not change this value. |