Create IBMCloud PowerVS Infra resources separately
The default behavior of the hypershift create cluster powervs
command is to create cloud infrastructure
along with the manifests for hosted cluster and apply it.
It is possible to create the cloud infrastructure separately so that the hypershift create cluster powervs
command can just be used to create the manifests and apply it.
In order to do this, you need to: 1. Create PowerVS infrastructure 2. Create cluster
Creating the PowerVS infra
Please see prerequisites before setting up the infra
Use the hypershift create infra powervs
command:
CLUSTER_NAME=example
INFRA_ID=example-infra
REGION=tok
ZONE=tok04
VPC_REGION=jp-tok
BASEDOMAIN=hypershift-on-power.com
RESOURCE_GROUP=ibm-hypershift-dev
OUTPUT_INFRA_FILE=infra.json
./bin/hypershift create infra powervs \
--name $CLUSTER_NAME \
--infra-id $INFRA_ID \
--region $REGION \
--zone $ZONE \
--region $VPC_REGION \
--base-domain $BASEDOMAIN \
--resource-group $RESOURCE_GROUP \
--output-file $OUTPUT_INFRA_FILE
where
- CLUSTER_NAME is a name for the cluster.
- INFRA_ID is a unique name that will be used to name the infrastructure resources.
- REGION is the region where you want to create the PowerVS resources.
- ZONE is the zone under POWERVS_REGION where you want to create the PowerVS resources.
- VPC_REGION is the region where you want to create the VPC resources.
- BASEDOMAIN is the CIS base domain that will be used for your hosted cluster's ingress. It should be an existing CIS domain name.
- RESOURCE_GROUP is the resource group in IBM Cloud where your infrastructure resources will be created.
- OUTPUT_INFRA_FILE is the file where IDs of the infrastructure that has been created will be stored in JSON format.
This file can then be used as input to the
hypershift create cluster powervs
command to populate the appropriate fields in the HostedCluster and NodePool resources.
Running this command should result in the following resources getting created in IBM Cloud:
PowerVS Cluster Infra Resources
- 1 VPC with Subnet
- 1 PowerVS Cloud Instance
- 1 DHCP Service
- 1 DHCP Private Network
- 1 DHCP Public Network
- 1 Cloud Connection
Creating the Cluster
Once you have the OUTPUT_INFRA_FILE
generated, can pass this file hypershift create cluster powervs
to this command with --infra-json
flag
Running the below command set up the cluster on infra created separately
E.g.:
CLUSTER_NAME=example
REGION=tok
ZONE=tok04
VPC_REGION=jp-tok
BASEDOMAIN=hypershift-on-power.com
RESOURCE_GROUP=ibm-hypershift-dev
RELEASE_IMAGE=quay.io/openshift-release-dev/ocp-release:4.12.0-0.nightly-multi-2022-09-08-131900
PULL_SECRET="$HOME/pull-secret"
INFRA_JSON=infra.json
./bin/hypershift create cluster powervs \
--name $CLUSTER_NAME \
--region $REGION \
--zone $ZONE \
--vpc-region $VPC_REGION \
--base-domain $BASEDOMAIN \
--resource-group $RESOURCE_GROUP \
--release-image $RELEASE_IMAGE
--pull-secret $PULL_SECRET \
--infra-json $INFRA_JSON \
--node-pool-replicas=2
Important
Need to understand --recreate-secrets flag usage before using it. Enabling this flag will result in recreating the creds mentioned here [PowerVSPlatformSpec](https://hypershift-docs.netlify.app/reference/api/#hypershift.openshift.io/v1alpha1.PowerVSPlatformSpec)
This is required when rerunning `hypershift create cluster powervs` command, since API Key once created cannot be retrieved again.
Please make sure cluster name used is unique across different management cluster before using this flag since this will result in removing the existing cred's service ID and recreate them.