Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -25,24 +25,18 @@ include::modules/cpms-changing-aws-instance-type.adoc[leveloffset=+1]
//Assigning machines to placement groups by using machine sets
include::modules/machineset-aws-existing-placement-group.adoc[leveloffset=+1]

//Machine sets that enable the Amazon EC2 Instance Metadata Service
include::modules/machineset-imds-options.adoc[leveloffset=+1]
//Creating machines that use the Amazon EC2 Instance Metadata Service
include::modules/machineset-creating-imds-options.adoc[leveloffset=+1]

[role="_additional-resources"]
.Additional resources
* xref:../../../machine_configuration/mco-update-boot-images.adoc#mco-update-boot-images[Boot image management]

//Creating machines that use the Amazon EC2 Instance Metadata Service
include::modules/machineset-creating-imds-options.adoc[leveloffset=+2]

//Configuring storage throughput for gp3 drives
include::modules/machineset-creating-gp3-throughput.adoc[leveloffset=+1]

//Machine sets that deploy machines as Dedicated Instances
include::modules/machineset-dedicated-instances.adoc[leveloffset=+1]

//Creating Dedicated Instances by using machine sets
include::modules/machineset-creating-dedicated-instances.adoc[leveloffset=+2]
include::modules/machineset-creating-dedicated-instances.adoc[leveloffset=+1]

//Configuring Capacity Reservation by using machine sets
include::modules/machineset-capacity-reservation.adoc[leveloffset=+1,tag=!compute]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,24 +27,18 @@ include::modules/machineset-label-gpu-autoscaler.adoc[leveloffset=+1]
//Assigning machines to placement groups by using machine sets
include::modules/machineset-aws-existing-placement-group.adoc[leveloffset=+1]

//Machine sets that enable the Amazon EC2 Instance Metadata Service
include::modules/machineset-imds-options.adoc[leveloffset=+1]
//Creating machines that use the Amazon EC2 Instance Metadata Service
include::modules/machineset-creating-imds-options.adoc[leveloffset=+1]

[role="_additional-resources"]
.Additional resources
* xref:../../machine_configuration/mco-update-boot-images.adoc#mco-update-boot-images[Boot image management]

//Creating machines that use the Amazon EC2 Instance Metadata Service
include::modules/machineset-creating-imds-options.adoc[leveloffset=+2]

//Configuring storage throughput for gp3 drives
include::modules/machineset-creating-gp3-throughput.adoc[leveloffset=+1]

//Machine sets that deploy machines as Dedicated Instances
include::modules/machineset-dedicated-instances.adoc[leveloffset=+1]

//Creating Dedicated Instances by using machine sets
include::modules/machineset-creating-dedicated-instances.adoc[leveloffset=+2]
include::modules/machineset-creating-dedicated-instances.adoc[leveloffset=+1]

//Machine sets that deploy machines as Spot Instances
include::modules/machineset-non-guaranteed-instance.adoc[leveloffset=+1]
Expand Down
57 changes: 26 additions & 31 deletions modules/cpms-changing-aws-instance-type.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,57 +3,52 @@
// * scalability_and_performance/recommended-performance-scale-practices/recommended-control-plane-practices.adoc
// * machine_management/control_plane_machine_management/cpmso_provider_configurations/cpmso-config-options-aws.adoc

ifeval::["{context}" == "recommended-control-plane-practices"]
:scale-host:
endif::[]
ifeval::["{context}" == "cpmso-supported-features-aws"]
:cpmso-config-options-aws:
endif::[]

:_mod-docs-content-type: PROCEDURE
[id="cpms-changing-aws-instance-type_{context}"]
= Changing the Amazon Web Services instance type by using a control plane machine set
= Changing the {aws-full} instance type by using a control plane machine set

[role="_abstract"]
You can change the {aws-first} instance type that your control plane machines use by updating the specification in the control plane machine set custom resource (CR).

ifdef::scale-host[]
** For clusters that use the default `RollingUpdate` update strategy, the Operator automatically propagates the changes to your control plane configuration.

** For clusters that are configured to use the `OnDelete` update strategy, you must replace your control plane machines manually.
endif::scale-host[]
If you need more resources for your control plane machines, you can change the {aws-first} instance type that they use.
To change the instance type, you update the instance type value in the control plane machine set custom resource (CR).

.Prerequisites

* You have access to the {oc-first} as a user with administrator privileges.

* Your {aws-short} cluster uses a control plane machine set.

.Procedure

ifdef::scale-host[]
. Edit your control plane machine set CR by running the following command:
+
[source,terminal]
----
$ oc --namespace openshift-machine-api edit controlplanemachineset.machine.openshift.io cluster
$ oc edit controlplanemachineset.machine.openshift.io cluster --namespace openshift-machine-api
----
endif::scale-host[]

. Edit the following line under the `providerSpec` field:
. Update the CR to implement your configuration changes:
+
[source,yaml]
----
providerSpec:
value:
...
instanceType: <compatible_aws_instance_type>
apiVersion: machine.openshift.io/v1
kind: ControlPlaneMachineSet
# ...
spec:
template:
machines_v1beta1_machine_openshift_io:
spec:
providerSpec:
value:
instanceType: <compatible_aws_instance_type>
----
** `<compatible_aws_instance_type>`: Specifies a larger {aws-short} instance type with the same base as the previous selection. For example, you can change `m6i.xlarge` to `m6i.2xlarge` or `m6i.4xlarge`.
+
where `<compatible_aws_instance_type>` specifies a larger {aws-short} instance type with the same base.
For example, you can change this value from `m6i.xlarge` to `m6i.2xlarge` or `m6i.4xlarge`.

. Save your changes.
. Save your changes and exit the object 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.

ifeval::["{context}" == "recommended-control-plane-practices"]
:!scale-host:
endif::[]
ifeval::["{context}" == "cpmso-supported-features-aws"]
:!cpmso-config-options-aws:
endif::[]
** For clusters that use the default `RollingUpdate` update strategy, the Operator automatically propagates the changes to your control plane configuration.

** For clusters that are configured to use the `OnDelete` update strategy, you must replace your control plane machines manually.
100 changes: 77 additions & 23 deletions modules/machineset-aws-existing-placement-group.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -11,67 +11,121 @@ endif::[]
[id="machineset-aws-existing-placement-group_{context}"]
= Assigning machines to placement groups for Elastic Fabric Adapter instances by using machine sets

You can configure a machine set to deploy machines on link:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html[Elastic Fabric Adapter] (EFA) instances within an existing AWS placement group.
[role="_abstract"]
To improve network performance, you can configure a machine set to deploy machines on link:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html[Elastic Fabric Adapter] (EFA) instances within an AWS placement group.

EFA instances do not require placement groups, and you can use placement groups for purposes other than configuring an EFA. This example uses both to demonstrate a configuration that can improve network performance for machines within the specified placement group.
EFA instances do not require placement groups, and you can use placement groups for purposes other than configuring an EFA.
This example uses both to demonstrate a configuration that can improve network performance for machines within the specified placement group.

.Prerequisites

* You have access to the {oc-first} as a user with administrator privileges.

* You created a placement group in the AWS console.
+
[NOTE]
====
Ensure that the link:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html#limitations-placement-groups[rules and limitations] for the type of placement group that you create are compatible with your intended use case.
ifdef::cpmso[]
The control plane machine set spreads the control plane machines across multiple failure domains when possible. To use placement groups for the control plane, you must use a placement group type that can span multiple Availability Zones.
The control plane machine set spreads the control plane machines across multiple failure domains when possible.
To use placement groups for the control plane, you must use a placement group type that can span multiple Availability Zones.
endif::cpmso[]
====

.Procedure

. In a text editor, open the YAML file for an existing machine set or create a new one.

. Edit the following lines under the `providerSpec` field:
ifdef::cpmso[]
. Edit your control plane machine set custom resource (CR) by running the following command:
+
[source,yaml]
[source,terminal]
----
$ oc edit controlplanemachineset.machine.openshift.io cluster --namespace openshift-machine-api
----
endif::cpmso[]

ifndef::cpmso[]
apiVersion: machine.openshift.io/v1beta1
kind: MachineSet
. In a text editor, open an existing machine set custom resource (CR) or create a new one.
endif::cpmso[]

. Update the CR to implement your configuration changes:
+
[source,yaml]
----
ifdef::cpmso[]
apiVersion: machine.openshift.io/v1
kind: ControlPlaneMachineSet
# ...
spec:
template:
machines_v1beta1_machine_openshift_io:
spec:
providerSpec:
value:
instanceType: <supported_instance_type>
networkInterfaceType: <interface_type>
placement:
availabilityZone: <zone>
region: <region>
placementGroupName: <placement_group>
placementGroupPartition: <placement_group_partition_number>
endif::cpmso[]
ifndef::cpmso[]
apiVersion: machine.openshift.io/v1beta1
kind: MachineSet
# ...
spec:
template:
spec:
providerSpec:
value:
instanceType: <supported_instance_type> # <1>
networkInterfaceType: EFA # <2>
instanceType: <supported_instance_type>
networkInterfaceType: EFA
placement:
availabilityZone: <zone> # <3>
region: <region> # <4>
placementGroupName: <placement_group> # <5>
placementGroupPartition: <placement_group_partition_number> # <6>
# ...
availabilityZone: <zone>
region: <region>
placementGroupName: <placement_group>
placementGroupPartition: <placement_group_partition_number>
endif::cpmso[]
----
<1> Specify an instance type that link:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html#efa-instance-types[supports EFAs].
<2> Specify the `EFA` network interface type.
<3> Specify the zone, for example, `us-east-1a`.
<4> Specify the region, for example, `us-east-1`.
<5> Specify the name of the existing AWS placement group to deploy machines in.
<6> Optional: Specify the partition number of the existing AWS placement group to deploy machines in.
+
where:

`<supported_instance_type>`::
Specifies an instance type that link:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html#efa-instance-types[supports EFAs].

`<interface_type>`::
Specifies the network interface type.
To use an EFA, set this value to `EFA`.

`<zone>`::
Specifies the zone; for example, `us-east-1a`.

`<region>`::
Specifies the region; for example, `us-east-1`.

`<placement_group>`::
Specifies the name of the existing AWS placement group to deploy machines in.

`<placement_group_partition_number>`::
Optional: Specifies the partition number of the existing AWS placement group to deploy machines in.

. Save your changes and exit the object specification.
ifdef::cpmso[]
+
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 clusters that use the default `RollingUpdate` update strategy, the Operator automatically propagates the changes to your control plane configuration.

** For clusters that are configured to use the `OnDelete` update strategy, you must replace your control plane machines manually.
endif::cpmso[]

.Verification

* In the AWS console, find a machine that the machine set created and verify the following in the machine properties:

** The placement group field has the value that you specified for the `placementGroupName` parameter in the machine set.

** The partition number field has the value that you specified for the `placementGroupPartition` parameter in the machine set.
** If you specified a partition number, the partition number field has the value that you specified for the `placementGroupPartition` parameter in the machine set.

** The interface type field indicates that it uses an EFA.

Expand Down
Loading