|
| 1 | + |
| 2 | +// Module included in the following assemblies: |
| 3 | +// |
| 4 | +// * rosa_planning/rosa-sts-aws-prereqs.html |
| 5 | + |
| 6 | + |
| 7 | +:_content-type: PROCEDURE |
| 8 | +[id="rosa-mobb-prereq-checklist_{context}"] |
| 9 | += Prerequisites checklist to deploy a ROSA classic cluster |
| 10 | + |
| 11 | +//Mobb content metadata |
| 12 | +//Brought into ROSA product docs 2023-09-15; does not follow typical OpenShift documentation formatting |
| 13 | +//--- |
| 14 | +//date: '2023-07-27' |
| 15 | +//title: Prerequisites Checklist to Deploy ROSA Cluster with STS |
| 16 | +//tags: ["ROSA", "STS"] |
| 17 | +//authors: |
| 18 | +// - Byron Miller |
| 19 | +// - Connor Wooley |
| 20 | +// - Diana Sari |
| 21 | +//--- |
| 22 | + |
| 23 | +This is a checklist of prerequisites needed to spin up a {product-title} classic cluster with link:https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html[STS]. |
| 24 | + |
| 25 | +[NOTE] |
| 26 | +==== |
| 27 | +This is a high level checklist and your implementation can vary. |
| 28 | +==== |
| 29 | + |
| 30 | +Before running the installation process, verify that you deploy this from a machine that has access to: |
| 31 | + |
| 32 | +* The API services for the cloud to which you provision. |
| 33 | +* Access to `api.openshift.com` and `sso.redhat.com`. |
| 34 | +* The hosts on the network that you provision. |
| 35 | +* The internet to obtain installation media. |
| 36 | +
|
| 37 | +== Accounts and CLIs Prerequisites |
| 38 | + |
| 39 | +Accounts and CLIs you must install to deploy the cluster. |
| 40 | + |
| 41 | +=== AWS account |
| 42 | + |
| 43 | +* Gather the following details: |
| 44 | +** AWS IAM User |
| 45 | +** AWS Access Key ID |
| 46 | +** AWS Secret Access Key |
| 47 | +* Ensure that you have the right permissions as detailed link:https://docs.aws.amazon.com/ROSA/latest/userguide/security-iam-awsmanpol.html[AWS managed IAM policies for ROSA] and link:https://docs.openshift.com/rosa/rosa_architecture/rosa-sts-about-iam-resources.html[About IAM resources for ROSA clusters that use STS]. |
| 48 | +* See link:https://docs.openshift.com/rosa/rosa_planning/rosa-sts-aws-prereqs.html#rosa-account_rosa-sts-aws-prereqs[Account] for more details. |
| 49 | + |
| 50 | +=== AWS CLI (`aws`) |
| 51 | + |
| 52 | +* Install from https://aws.amazon.com/cli/[AWS Command Line Interface] if you have not already. |
| 53 | +* Configure the CLI: |
| 54 | ++ |
| 55 | +. Enter `aws configure` in the terminal: |
| 56 | ++ |
| 57 | +[source,terminal] |
| 58 | +---- |
| 59 | +$ aws configure |
| 60 | +---- |
| 61 | ++ |
| 62 | +. Enter the AWS Access Key ID and press *enter*. |
| 63 | +. Enter the AWS Secret Access Key and press *enter*. |
| 64 | +. Enter the default region you want to deploy into. |
| 65 | +. Enter the output format you want, “table” or “json”. |
| 66 | +. Verify the output by running: |
| 67 | ++ |
| 68 | +[source,terminal] |
| 69 | +---- |
| 70 | + $ aws sts get-caller-identity |
| 71 | +---- |
| 72 | ++ |
| 73 | +. Ensure that the service role for ELB already exists by running: |
| 74 | ++ |
| 75 | +[source,terminal] |
| 76 | +---- |
| 77 | +$ aws iam get-role --role-name "AWSServiceRoleForElasticLoadBalancing" |
| 78 | +---- |
| 79 | ++ |
| 80 | +.. If it does not exist, run: |
| 81 | ++ |
| 82 | +[source,terminal] |
| 83 | +---- |
| 84 | +$ aws iam create-service-linked-role --aws-service-name "elasticloadbalancing.amazonaws.com" |
| 85 | +---- |
| 86 | + |
| 87 | +=== Red Hat account |
| 88 | + |
| 89 | +* Create a https://console.redhat.com/[hybrid-console] account if you have not already. |
| 90 | + |
| 91 | +=== ROSA CLI (`rosa`) |
| 92 | + |
| 93 | +. Enable ROSA from your AWS account on the https://console.aws.amazon.com/rosa/[AWS console] if you have not already. |
| 94 | +. Install the CLI from https://docs.openshift.com/rosa/rosa_install_access_delete_clusters/rosa_getting_started_iam/rosa-installing-rosa.html[Installing the Red Hat OpenShift Service on AWS (ROSA) CLI, rosa[] or from the OpenShift console https://console.redhat.com/openshift/downloads#tool-rosa[AWS console]. |
| 95 | +. Enter `rosa login` in a terminal, and this will prompt you to go to the https://console.redhat.com/openshift/token/rosa[token page] through the console: |
| 96 | ++ |
| 97 | +[source,terminal] |
| 98 | +---- |
| 99 | +$ rosa login |
| 100 | +---- |
| 101 | ++ |
| 102 | +. Log in with your Red Hat account credentials. |
| 103 | +. Click the *Load token* button. |
| 104 | +. Copy the token and paste it back into the CLI prompt and press *enter*. |
| 105 | ++ |
| 106 | +* Alternatively, you can copy the full `$ rosa login --token=abc...` command and paste that in the terminal: |
| 107 | ++ |
| 108 | +[source,terminal] |
| 109 | +---- |
| 110 | +$ rosa login --token=<abc..> |
| 111 | +---- |
| 112 | ++ |
| 113 | +. Verify your credentials by running: |
| 114 | ++ |
| 115 | +[source,terminal] |
| 116 | +---- |
| 117 | +$ rosa whoami |
| 118 | +---- |
| 119 | ++ |
| 120 | +. Ensure you have sufficient quota by running: |
| 121 | ++ |
| 122 | +[source,terminal] |
| 123 | +---- |
| 124 | +$ rosa verify quota |
| 125 | +---- |
| 126 | ++ |
| 127 | +* See link:https://docs.openshift.com/rosa/rosa_planning/rosa-sts-aws-prereqs.html#rosa-aws-policy-provisioned_rosa-sts-aws-prereqs[Provisioned AWS Infrastructure] for more details on AWS services provisioned for ROSA cluster. |
| 128 | +* See link:https://docs.openshift.com/rosa/rosa_planning/rosa-sts-required-aws-service-quotas.html[Required AWS service quotas] for more details on AWS services quota. |
| 129 | + |
| 130 | +=== OpenShift CLI (`oc`) |
| 131 | + |
| 132 | +. Install from link:https://docs.openshift.com/container-platform/4.13/cli_reference/openshift_cli/getting-started-cli.html[Getting started with the OpenShift CLI] or from the OpenShift console link:https://console.redhat.com/openshift/downloads#tool-oc[Command-line interface (CLI) tools]. |
| 133 | +. Verify that the OpenShift CLI has been installed correctly by running: |
| 134 | ++ |
| 135 | +[source,terminal] |
| 136 | +---- |
| 137 | +$ rosa verify openshift-client |
| 138 | +---- |
| 139 | + |
| 140 | +Once you have the above prerequisites installed and enabled, proceed to the next steps. |
| 141 | + |
| 142 | + |
| 143 | +== SCP Prerequisites |
| 144 | + |
| 145 | +ROSA clusters are hosted in an AWS account within an AWS organizational unit. A link:https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html[service control policy (SCP)] is created and applied to the AWS organizational unit that manages what services the AWS sub-accounts are permitted to access. |
| 146 | + |
| 147 | +* Ensure that your organization's SCPs are not more restrictive than the roles and policies required by the cluster. |
| 148 | +* Ensure that your SCP is configured to allow the required `aws-marketplace:Subscribe` permission when you choose *Enable ROSA* from the console, and see link:https://docs.aws.amazon.com/ROSA/latest/userguide/troubleshoot-rosa-enablement.html#error-aws-orgs-scp-denies-permissions[AWS Organizations service control policy (SCP) is denying required AWS Marketplace permissions] for more details. |
| 149 | +* When you create a ROSA classic cluster, an associated AWS OpenID Connect (OIDC) identity provider is created. |
| 150 | +** This OIDC provider configuration relies on a public key that is located in the `us-east-1` AWS region. |
| 151 | +** Customers with AWS SCPs must allow the use of the `us-east-1` AWS region, even if these clusters are deployed in a different region. |
| 152 | + |
| 153 | +== Networking Prerequisites |
| 154 | + |
| 155 | +Prerequisites needed from a networking standpoint. |
| 156 | + |
| 157 | +=== Firewall |
| 158 | + |
| 159 | +* Configure your firewall to allow access to the domains and ports listed in link:https://docs.openshift.com/rosa/rosa_planning/rosa-sts-aws-prereqs.html#osd-aws-privatelink-firewall-prerequisites_rosa-sts-aws-prereqs[AWS firewall prerequisites]. |
| 160 | + |
| 161 | +=== Custom DNS |
| 162 | + |
| 163 | +* If you want to use custom DNS, then the ROSA installer must be able to use VPC DNS with default DHCP options so it can resolve hosts locally. |
| 164 | +** To do so, run `aws ec2 describe-dhcp-options` and see if the VPC is using VPC Resolver: |
| 165 | ++ |
| 166 | +[source,terminal] |
| 167 | +---- |
| 168 | +$ aws ec2 describe-dhcp-options |
| 169 | +---- |
| 170 | ++ |
| 171 | +* Otherwise, the upstream DNS will need to forward the cluster scope to this VPC so the cluster can resolve internal IPs and services. |
| 172 | + |
| 173 | +== PrivateLink Prerequisites |
| 174 | + |
| 175 | +If you choose to deploy a PrivateLink cluster, then be sure to deploy the cluster in the pre-existing BYO VPC: |
| 176 | + |
| 177 | +* Create a public and private subnet for each AZ that your cluster uses. |
| 178 | +** Alternatively, implement transit gateway for internet and egress with appropriate routes. |
| 179 | +* The VPC's CIDR block must contain the `Networking.MachineCIDR` range, which is the IP address for cluster machines. |
| 180 | +** The subnet CIDR blocks must belong to the machine CIDR that you specify. |
| 181 | +* Set both `enableDnsHostnames` and `enableDnsSupport` to `true`. |
| 182 | +** That way, the cluster can use the Route 53 zones that are attached to the VPC to resolve cluster internal DNS records. |
| 183 | +* Verify route tables by running: |
| 184 | ++ |
| 185 | +[source,terminal] |
| 186 | + ---- |
| 187 | + $ aws ec2 describe-route-tables --filters "Name=vpc-id,Values=<vpc-id>" |
| 188 | + ---- |
| 189 | + |
| 190 | +** Ensure that the cluster can egress either through NAT gateway in public subnet or through transit gateway. |
| 191 | +** Ensure whatever UDR you would like to follow is set up. |
| 192 | +* You can also configure a cluster-wide proxy during or after install. |
| 193 | +https://docs.openshift.com/rosa/networking/configuring-cluster-wide-proxy.html[Configuring a cluster-wide proxy] for more details. |
| 194 | + |
| 195 | +[NOTE] |
| 196 | +==== |
| 197 | +You can install a non-PrivateLink ROSA cluster in a pre-existing BYO VPC. |
| 198 | +==== |
0 commit comments