// Module included in the following assemblies:
//
// * rosa_cluster_admin/rosa_nodes/rosa-managing-worker-nodes.adoc

:_mod-docs-content-type: PROCEDURE
[id="creating_a_machine_pools_cli_win_li_{context}"]
= Creating a machine pool with AWS Windows License Included enabled using the {rosa-cli}

[role="_abstract"]
If you are using {VirtProductName} on a {product-title} cluster running Windows VMs you need to be license-compliant with Microsoft Windows in AWS. The hosts (AWS x86-64 bare metal EC2 instances) running these VMs must be enabled with AWS EC2 Windows License Included (LI).

[IMPORTANT]
====
Enabling AWS Windows LI on a machine pool applies the associated licensing fees on that specific machine pool. This includes billing for the full vCPU allocation of each AWS Windows LI enabled host in your {product-title} cluster. Windows LI enabled machine pools will also deny vCPU over-allocation on {VirtProductName} VMs. For more information, see link:https://aws.amazon.com/windows/resources/licensing//[Microsoft Licensing on AWS] and the link:https://docs.redhat.com/en/documentation/red_hat_openshift_service_on_aws/4/html/introduction_to_rosa/policies-and-service-definition#rosa-hcp-instance-types[{product-title} instance types].
====

.Prerequisites

* You installed and configured the {rosa-cli} version 1.2.58 or above.
* You logged in to your Red{nbsp}Hat account using the {rosa-cli}.
* You created a {product-title} cluster version 4.19 or above.
* You identified an x86-64 bare metal EC2 instance type to use {VirtProductName}. For more, see link:https://aws.amazon.com/ec2/instance-types/#Bare_metal[Amazon EC2 Instance Types].
* You are in compliance with Microsoft and AWS requirements for the Microsoft licenses and associated costs.

.Procedure

* To add a Windows LI enabled machine pool to a {product-title} cluster, create the machine pool with the following definitions:
+
[source,terminal]
----
$ rosa create machinepool --cluster=<cluster-name> \
                          --name=<machine_pool_id> \
                          --replicas=<replica_count> \
                          --instance-type=<instance_type> \
                          --type=<image_type>
----
where:

`--name=<machine_pool_id>`:: Specifies the name of the machine pool. Replace `<machine_pool_id>` with the name of your machine pool.
`--replicas=<replica_count>`:: Specifies the number of compute nodes to provision. If you deployed {product-title} using a single availability zone, this defines the number of compute nodes to provision to the machine pool for the zone. If you deployed your cluster using multiple availability zones, this defines the number of compute nodes to provision in total across all zones and the count must be a multiple of 3. The `--replicas` argument is required when autoscaling is not configured.
`--instance-type=<instance_type>`:: Specifies the instance type. You can only select an x86-64 bare metal instance type to enable Windows LI. For example, you can use `m5zn.metal` or `i3.metal`. You cannot change the instance type for a machine pool after the pool is created.
`--type=<type>`:: You must specify `Windows` to ensure the machine pool is created with Windows LI enabled.
+
The following command creates a Windows LI enabled machine pool called `mymachinepool` using the `m5zn.metal` instance type with 1 compute node replica:
+
[source,terminal]
----
$ rosa create machinepool --cluster=mycluster --name=mymachinepool --type=Windows --instance-type=m5zn.metal --replicas=1
----
+
**Example output**
+
[source,terminal]
----
I: Machine pool 'mymachinepool' created successfully on cluster 'mycluster'
I: To view all machine pools, run 'rosa list machinepools -c mycluster'
----

.Verification

. List the available machine pools on your cluster by running the following command:
+
[source,terminal]
----
$ rosa list machinepools --cluster=<cluster_name>
----
+
. Describe the information of a specific machine pool in your cluster:
+
[source,terminal]
----
$ rosa describe machinepool --cluster=<cluster_name> --machinepool=mymachinepool
----
+
The output has the image type set to `Windows` as shown in the following example:
+
**Example output**
+
[source,terminal]
----
ID:                         mymachinepool
Cluster ID:                 mycluster
Autoscaling:                No
Desired replicas:           1
Current replicas:           1
Instance type:              m5zn.metal
Image type:                 Windows
Labels:
Tags:
Taints:
Availability zone:          us-east-1a
Subnet:                     <subnet-id>
Disk Size:                  300 GiB
Version:                    4.19.18
EC2 Metadata Http Tokens:   optional
Autorepair:                 Yes
Tuning configs:
Kubelet configs:
Additional security group IDs:
Node drain grace period:
----
+
. For more information about running virtualized Windows workloads after you have set up a Windows LI enabled machine pool, see link:https://access.redhat.com/solutions/7135149[Creating a Windows VM compliant to AWS EC2 Windows License Included].
