Sample AWS failure domain configuration

To prevent downtime for your applications due to the failure of a single Amazon Web Services (AWS) region, you can configure failure domains in the control plane machine set by configuring appropriate values in the failureDomains section of the ControlPlaneMachineSet object.

The control plane machine set concept of a failure domain is analogous to the AWS concept of an Availability Zone (AZ). The ControlPlaneMachineSet CR spreads control plane machines across more than one failure domain 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.

Sample AWS failure domain values
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>
          subnet:
            filters:
            - name: tag:Name
              values:
              - <cluster_id>-subnet-private-<aws_zone_a>
            type: Filters
        - placement:
            availabilityZone: <aws_zone_b>
          subnet:
            filters:
            - name: tag:Name
              values:
              - <cluster_id>-subnet-private-<aws_zone_b>
            type: Filters
        platform: AWS
# ...

where:

spec.template.machines_v1beta1_machine_openshift_io.failureDomains.aws.placement.availabilityZone: <aws_zone_a>

Specifies an AWS availability zone for the first failure domain.

spec.template.machines_v1beta1_machine_openshift_io.failureDomains.aws.subnet

Specifies a subnet configuration. In this example, the subnet type is Filters, so there is a filters stanza.

spec.template.machines_v1beta1_machine_openshift_io.failureDomains.aws.subnet.filters.values: <cluster_id>-subnet-private-<aws_zone_a>

Specifies the subnet name for the first failure domain, using the infrastructure ID and the AWS availability zone.

spec.template.machines_v1beta1_machine_openshift_io.failureDomains.aws.subnet.type

Specifies the subnet type. The following values are valid: ARN, Filters and ID. The default value is Filters.

spec.template.machines_v1beta1_machine_openshift_io.failureDomains.aws.placement.availabilityZone: <aws_zone_b>

Specifies an AWS availability zone for an additional failure domain.

spec.template.machines_v1beta1_machine_openshift_io.failureDomains.aws.subnet.filters.values: <cluster_id>-subnet-private-<aws_zone_b>

Specifies the subnet name for the additional failure domain, using the infrastructure ID and the AWS availability zone.

spec.template.machines_v1beta1_machine_openshift_io.failureDomains.platform

Specifies the cloud provider platform name. Do not change this value.