A Quickstart guide to deploying a Red Hat OpenShift cluster on AWS using the CLI.
You must have an AWS account with the AWS ROSA Prerequisites met.
MacOS
-
Install AWS CLI using the macOS command line:
$ curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
sudo installer -pkg AWSCLIV2.pkg -target /
Linux
-
Install AWS CLI using the Linux command line:
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
Windows
-
Install AWS CLI using the Windows command line
$ C:\> msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi
-
Configure the AWS CLI by running the following command:
$ aws configure
-
You will be required to enter an
AWS Access Key ID
and anAWS Secret Access Key
along with a default region name and output format```bash % aws configure AWS Access Key ID []: AWS Secret Access Key []: Default region name [us-east-2]: Default output format [json]: ``` The `AWS Access Key ID` and `AWS Secret Access Key` values can be obtained by logging in to the AWS console and creating an **Access Key** in the **Security Credentials** section of the IAM dashboard for your user
-
Validate your credentials
```bash aws sts get-caller-identity ```
You should receive output similar to the following ``` { "UserId": <your ID>, "Account": <your account>, "Arn": <your arn> } ```
-
If this is a brand new AWS account that has never had a AWS Load Balancer installed in it, you should run the following
```bash aws iam create-service-linked-role --aws-service-name \ "elasticloadbalancing.amazonaws.com" ```
-
Log into cloud.redhat.com
-
Copy the Offline Access Token and save it for the next step
-
Download the OS specific OpenShift CLI from [Red Hat](https://mirror.openshift.com/pub/openshift-v4/clients/ocp/latest/)
-
Unzip the downloaded file on your local machine
-
Place the extracted
oc
executable in your OS path or local directory
-
Download the OS specific ROSA CLI from [Red Hat](https://www.openshift.com/products/amazon-openshift/download)
-
Unzip the downloaded file on your local machine
-
Place the extracted
rosa
andkubectl
executables in your OS path or local directory -
Log in to ROSA
```bash rosa login ```
You will be prompted to enter in the **Red Hat Offline Access Token** you retrieved earlier and should receive the following message
``` Logged in as <email address> on 'https://api.openshift.com' ```
Verify that ROSA has the minimal permissions
```bash rosa verify permissions ``` >Expected output: `AWS SCP policies ok`
Verify that ROSA has the minimal quota
```bash rosa verify quota ``` >Expected output: `AWS quota ok`
ROSA can be installed using command line parameters or in interactive mode. For an interactive installation run the following command
```bash rosa create cluster --interactive --mode auto ```
As part of the interactive install you will be required to enter the following parameters or accept the default values (if applicable)
``` Cluster name: Multiple availability zones (y/N): AWS region: (select) OpenShift version: (select) Install into an existing VPC (y/N): Compute nodes instance type (optional): (select) Enable autoscaling (y/N): Compute nodes [2]: Additional Security Group IDs (optional): (select) Machine CIDR [10.0.0.0/16]: Service CIDR [172.30.0.0/16]: Pod CIDR [10.128.0.0/14]: Host prefix [23]: Private cluster (y/N): ``` >Note: the installation process should take between 30 - 45 minutes
To get the web console link run the following command.
>Substitute your actual cluster name for <cluster-name>
```bash rosa describe cluster --cluster=<cluster-name> ```
By default, only the OpenShift SRE team will have access to the ROSA cluster. To add a local admin user, run the following command to create the cluster-admin
account in your cluster.
>Substitute your actual cluster name for <cluster-name>
```bash rosa create admin --cluster=<cluster-name> ``` >Refresh your web browser and you should see the `cluster-admin` option to log in
Deleting a ROSA cluster consists of two parts
-
Delete the cluster instance, including the removal of AWS resources.
>Substitute your actual cluster name for <cluster-name>
```bash rosa delete cluster --cluster=<cluster-name> ``` Delete Cluster's operator-roles and oidc-provider as shown in the above delete cluster command's output. For e.g.
```bash rosa delete operator-roles -c <cluster-name> rosa delete oidc-provider -c <cluster-name> ```
-
Delete the CloudFormation stack, including the removal of the
osdCcsAdmin
user```bash rosa init --delete-stack ```