Introduction
Are you looking to reduce costs in managing your control planes? Are you looking to reduce the burdens of managing multiple control planes? Hosted Control Planes (aka HyperShift) for Red Hat OpenShift makes it possible to host OpenShift tenant clusters at scale in Amazon Web Services (AWS). With each standalone OpenShift cluster, the control plane is scheduled across three machine nodes. However, with Hosted Control Planes, the control plane is scheduled as pods on available worker nodes just like any other workload. This allows many control planes to be created and run on fewer nodes making clusters more affordable while still re-using OpenShift tenancy primitives such as projects, policies, etc. While utilizing hosted control planes can reduce costs, utilizing Arm hosted control planes can also potentially add to those cost savings.
Arm hosted control planes can be installed on existing 64-bit Arm OpenShift Container Platform (OCP) cluster environments allowing you to quickly deploy multiple Arm hosted control planes with 64-bit x86 NodePools. This can all be done on the AWS platform and opens the opportunity to save on costs by utilizing Arm hosted control planes. This blog will examine the benefits and installation steps for installing an Arm hosted control plane.
Please note the current support status of this feature is in Technical Preview (TP) and will be officially supported in a future release.

Benefits
Using Arm hosted control planes, over standard OCP clusters, offers these additional benefits:
- Arm hosted control planes could reduce costs by approximately 20% compared to an equivalent x86 hosted control plane. Cost savings based on per hour cost of m6i.xlarge (x86 based) vs m6g.xlarge (Arm based)
- Reduced maintenance
- Stronger security boundaries between management and workloads
- Run many control planes on fewer nodes making clusters more affordable
- Quicker startup times for control planes
- Makes multicluster management more centralized and easier
More details on hosted cluster benefits can be found in the hosted control plane overview documentation.
Cluster Preparation
OCP 4.13.0 is running as the underlying base for a 64-bit Arm OCP cluster hosted on AWS.
- Install the multicluster engine operator, 2.2.4 or newer. Instructions for installing this operator can be found here.
- Next, follow the steps under, 1.7.1.2. Creating the Amazon Web Services S3 bucket and S3 OIDC secret, to set up an AWS S3 bucket and S3 OIDC secret.
After step 1, run the following command:
aws s3api put-bucket-ownership-controls --bucket $BUCKET_NAME --ownership-controls="Rules=[{ObjectOwnership=BucketOwnerPreferred}]"
- Next, follow the steps under, 1.7.1.6. Enabling the hosted control planes feature, to enable hosted control planes.
- Download the hypershift cli, 1.7.1.7 Installing the Hosted Control Plane CLI
Demo
The following sections will take you through the steps of:
- Configuring Environment Variables
- Creating an Arm Hosted Control Plane and 64-bit x86 Guest Cluster
- Adding an Additional 64-bit x86 Guest Cluster to the Existing Arm Hosted Control Plane
- Deleting an Arm Hosted Control Plane
Configuring Environment Variables
First, set up some environment variables needed by the HyperShift command line tool to install the Arm HyperShift Operator and create the hosted control plane cluster. This closely follows step 1, in 1.7.2.3. Deploying a hosted cluster on AWS.
You can obtain the image pull secret from the Red Hat OpenShift Cluster Manager.
REGION=us-east-1
AWS_CREDS=~/.aws/credentials
BASE_DOMAIN=my.base.domain.com
PULL_SECRET=~/all-the-pull-secrets.json
BUCKET_NAME=my-s3-bucket
CLUSTER_NAME=my-hypershift-arm-cluster
NODEPOOL_NAME=my-additional-x86-guest-cluster
NODEPOOL_REPLICAS=2
Set your KUBECONFIG environment variable to point at your OpenShift 64-bit Arm management cluster.
$ hypershift % export KUBECONFIG=/Users/user/aws-oc-nightly/auth/kubeconfig
Creating an Arm Hosted Control Plane and 64-bit x86 Guest Cluster
1) Next, create a hosted control plane with an initial guest cluster with 2 nodes while overriding the standard release image to utilize a multi-architecture release image since the management cluster is 64-bit Arm and the hosted control plane guest clusters will be 64-bit x86. This ensures the right bootstrapping configuration is used when creating the hosted cluster and its guest cluster.
This closely follows step 4, in 1.7.2.3. Deploying a hosted cluster on AWS.
$ hypershift create cluster aws \
--name $CLUSTER_NAME \
--node-pool-replicas=$NODEPOOL_REPLICAS \
--base-domain $BASE_DOMAIN \
--pull-secret $PULL_SECRET \
--aws-creds $AWS_CREDS \
--region $REGION \
--release-image quay.io/openshift-release-dev/ocp-release:4.13.0-multi
2) Verify successful guest cluster creation by utilizing the OpenShift command line tool.
$ oc get nodepools --namespace clusters
NAME CLUSTER DESIRED NODES CURRENT NODES AUTOSCALING AUTOREPAIR VERSION UPDATINGVERSION UPDATINGCONFIG MESSAGE
my-hypershift-arm-cluster-us-east-1a my-hypershift-arm-cluster 2 2 False False 4.13.0
3) Verify successful creation of the hosted control plane.
$ oc get --namespace clusters hostedclusters
NAME VERSION KUBECONFIG PROGRESS AVAILABLE PROGRESSING MESSAGE
my-hypershift-arm-cluster 4.13.0 my-hypershift-arm-cluster-admin-kubeconfig Completed True False The hosted control plane is available
4) Once the guest cluster and hosted control plane are successfully created, create a KUBECONFIG to navigate to the new guest cluster and verify the AWS machines are in the guest cluster.
$ hypershift create kubeconfig > temp_kubeconfig
2023/03/21 11:12:32 selected 1 of 1 hostedclusters for the kubeconfig
2023/03/21 11:12:32 adding clusters/my-hypershift-arm-cluster to kubeconfig
2023/03/21 11:12:32 added clusters-my-hypershift-arm-cluster to kubeconfig
2023/03/21 11:12:32 created kubeconfig with 1 contexts
$ hypershift % export KUBECONFIG=/Users/user/hypershift/temp_kubeconfig
$ hypershift % oc get nodes
NAME STATUS ROLES AGE VERSION
ip-10-0-142-149.ec2.internal Ready worker 10m v1.26.2+06e8c46
ip-10-0-143-86.ec2.internal Ready worker 10m v1.26.2+06e8c46
Adding an Additional 64-bit x86 Guest Cluster to the Existing Arm Hosted Control Plane
In addition, you can add additional guest clusters, utilizing the HyperShift command line tool, to the hosted control plane as needed.
$ hypershift create nodepool aws \
--cluster-name $CLUSTER_NAME \
--name $NODEPOOL_NAME \
--node-count=$NODEPOOL_REPLICAS
NodePool my-additional-x86-guest-cluster created
Use the OpenShift command line tool command to verify the new guest cluster was initialized successfully.
$ oc get nodepools --namespace clusters
NAME CLUSTER DESIRED NODES CURRENT NODES AUTOSCALING AUTOREPAIR VERSION UPDATINGVERSION UPDATINGCONFIG MESSAGE
my-additional-x86-guest-cluster my-hypershift-arm-cluster 2 2 False False 4.13.0
my-hypershift-arm-cluster-us-east-1a my-hypershift-arm-cluster 2 2 False False 4.13.0
Deleting an Arm Hosted Control Plane
To delete the Arm hosted control plane, run the following command below. This closely follows step 1, in 1.7.2.6. Destroying a hosted cluster on AWS.
$ hypershift destroy cluster aws \
--name $CLUSTER_NAME \
--aws-creds $AWS_CREDS
Summary
We demonstrated the steps needed to install and verify an Arm hosted control plane with an 64-bit x86 tenant cluster. We also demonstrated how to use the HyperShift command line tool to install the Arm HyperShift operator, created an additional 64-bit x86 tenant cluster utilizing the same Arm hosted control plane, verified successful creation of the 64-bit x86 tenant clusters, verified successful creation of the Arm hosted control plane, and deleted the Arm hosted control plane.
Future Work
Future work will expand the multi-architecture CPU capabilities of hosted control planes. The next capability to be added is enabling creation of 64-bit Arm NodePools on AWS. With this capability, you will be able to run 64-bit x86 and 64-bit Arm NodePools from the same hosted control plane (note: you will not be able to mix CPU architectures within the same NodePool).
After the 64-bit Arm NodePools on AWS, we will expand 64-bit Arm hosted control planes and 64-bit Arm NodePools onto other on-prem and cloud providers in the future.
About the author
Senior software engineer with over 10 years of industry experience in the full software development cycle. Bryan’s work in Red Hat over the past few years has primarily focused on expanding Arm offerings in Red Hat OpenShift and development on Hosted Control Planes.
Browse by channel
Automation
The latest on IT automation for tech, teams, and environments
Artificial intelligence
Updates on the platforms that free customers to run AI workloads anywhere
Open hybrid cloud
Explore how we build a more flexible future with hybrid cloud
Security
The latest on how we reduce risks across environments and technologies
Edge computing
Updates on the platforms that simplify operations at the edge
Infrastructure
The latest on the world’s leading enterprise Linux platform
Applications
Inside our solutions to the toughest application challenges
Original shows
Entertaining stories from the makers and leaders in enterprise tech
Products
- Red Hat Enterprise Linux
- Red Hat OpenShift
- Red Hat Ansible Automation Platform
- Cloud services
- See all products
Tools
- Training and certification
- My account
- Customer support
- Developer resources
- Find a partner
- Red Hat Ecosystem Catalog
- Red Hat value calculator
- Documentation
Try, buy, & sell
Communicate
About Red Hat
We’re the world’s leading provider of enterprise open source solutions—including Linux, cloud, container, and Kubernetes. We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.
Select a language
Red Hat legal and privacy links
- About Red Hat
- Jobs
- Events
- Locations
- Contact Red Hat
- Red Hat Blog
- Diversity, equity, and inclusion
- Cool Stuff Store
- Red Hat Summit