diff --git a/_attributes/common-attributes.adoc b/_attributes/common-attributes.adoc index c3ba09da29e2..4104d197ff46 100644 --- a/_attributes/common-attributes.adoc +++ b/_attributes/common-attributes.adoc @@ -198,6 +198,13 @@ endif::[] :sts-first: Security Token Service (STS) :sts-full: Security Token Service :sts-short: STS +//AWS ZONES +:aws-zone-local-full: AWS Local Zones +:aws-zone-local-single: Local Zone +:aws-zone-type-local: local-zone +:aws-zone-wavelength-full: AWS Wavelength Zones +:aws-zone-wavelength-single: Wavelength Zone +:aws-zone-type-wavelength: wavelength-zone //Cloud provider names //AWS :aws-first: Amazon Web Services (AWS) diff --git a/_topic_maps/_topic_map.yml b/_topic_maps/_topic_map.yml index 20252e850a9d..8d31e610e492 100644 --- a/_topic_maps/_topic_map.yml +++ b/_topic_maps/_topic_map.yml @@ -179,10 +179,12 @@ Topics: File: installing-aws-china - Name: Installing a cluster on AWS using CloudFormation templates File: installing-aws-user-infra - - Name: Installing a cluster on AWS with worker nodes on AWS Local Zones - File: installing-aws-localzone - Name: Installing a cluster on AWS in a restricted network with user-provisioned infrastructure File: installing-restricted-networks-aws + - Name: Installing a cluster on AWS with worker nodes on AWS Local Zones + File: installing-aws-localzone + - Name: Installing a cluster on AWS with worker nodes on AWS Wavelength + File: installing-aws-wavelength - Name: Installing a cluster on AWS with remote workers on AWS Outposts File: installing-aws-outposts-remote-workers - Name: Installing a three-node cluster on AWS @@ -585,7 +587,7 @@ Topics: - Name: Fedora CoreOS (FCOS) image layering File: coreos-layering Distros: openshift-origin -- Name: AWS Local Zone tasks +- Name: AWS Local and Wavelength Zone tasks File: aws-compute-edge-tasks Distros: openshift-enterprise --- diff --git a/installing/installing_aws/installing-aws-localzone.adoc b/installing/installing_aws/installing-aws-localzone.adoc index d8b548391d35..27a07d6f1a09 100644 --- a/installing/installing_aws/installing-aws-localzone.adoc +++ b/installing/installing_aws/installing-aws-localzone.adoc @@ -1,60 +1,53 @@ :_mod-docs-content-type: ASSEMBLY -[id="installing-aws-localzone"] -= Installing a cluster on AWS with worker nodes on AWS Local Zones include::_attributes/common-attributes.adoc[] + :context: installing-aws-localzone +// Context Variables for edge zones +:aws-service-name-full: AWS Local Zones +:aws-service-name-short: Local Zones +:aws-service-name-single: Local Zone +:zone-type: local-zone + +[id="installing-aws-localzone"] += Installing a cluster on AWS with worker nodes on AWS Local Zones + +// ATTENTION: All the content from here is shared between the pages: +// installing-aws-local-zones +// installing-aws-wavelength + +ifeval::["{zone-type}" == "{aws-zone-type-local}"] +:aws-localzones: +:aws-doc-zone: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-local-zones +endif::[] +ifeval::["{zone-type}" == "{aws-zone-type-wavelength}"] +:aws-wavelength: +:aws-doc-zone: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-wavelength-zones +endif::[] + toc::[] -You can quickly install an {product-title} cluster in Amazon Web Services (AWS) Local Zones by setting the zone names in the edge compute pool of the `install-config.yaml` file, or install a cluster in an existing VPC that lists Local Zone subnets. +// Intro Installing in AWS Edge zones ({aws-service-name-full}) +include::modules/aws-edge-zones-installing-intro.adoc[leveloffset=+0] -AWS Local Zones are a type of infrastructure that place Cloud Resources close to metropolitan regions. For more information, see the link:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-local-zones[AWS Local Zones Documentation]. +// Additional Permissions for {aws-service-name-full} +include::modules/aws-edge-zones-permissions.adoc[leveloffset=+0] -[IMPORTANT] -==== -The steps for performing an installer-provisioned infrastructure installation are provided for example purposes only. Installing a cluster in an existing VPC requires that you have knowledge of the cloud provider and the installation process of {product-title}. You can use a CloudFormation template to assist you with completing these steps or to help model your own cluster installation. Instead of using the CloudFormation template to create resources, you can decide to use other methods for generating these resources. -==== +== About {aws-service-name-full} and edge compute pool -== Prerequisites +// Cluster limitations in {aws-service-name-full} +include::modules/aws-edge-zones-cluster-limitations.adoc[leveloffset=+2] + +// Edge compute pools and AWS {aws-service-name-full} +include::modules/edge-machine-pools-aws-local-zones.adoc[leveloffset=+2] + +[role="_additional-resources"] +.Additional resources + +* xref:../../networking/changing-cluster-network-mtu.adoc#mtu-value-selection_changing-cluster-network-mtu[Changing the MTU for the cluster network] +* xref:../../networking/changing-cluster-network-mtu.adoc#nw-ovn-ipsec-enable_configuring-ipsec-ovn[Enabling IPsec encryption] +* xref:../../nodes/scheduling/nodes-scheduler-taints-tolerations.adoc#nodes-scheduler-taints-tolerations-about_nodes-scheduler-taints-tolerations[Understanding taints and tolerations] -* You reviewed details about the xref:../../architecture/architecture-installation.adoc#architecture-installation[{product-title} installation and update] processes. -* You read the documentation on xref:../../installing/installing-preparing.adoc#installing-preparing[selecting a cluster installation method and preparing it for users]. -* You xref:../../installing/installing_aws/installing-aws-account.adoc#installing-aws-account[configured an AWS account] to host the cluster. -+ -[IMPORTANT] -==== -If you have an AWS profile stored on your computer, it must not use a temporary session token that you generated while using a multi-factor authentication device. The cluster continues to use your current AWS credentials to create AWS resources for the entire life of the cluster, so you must use key-based, long-term credentials. To generate appropriate keys, see link:https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html[Managing Access Keys for IAM Users] in the AWS documentation. You can supply the keys when you run the installation program. -==== -* You noted the region and supported link:https://aws.amazon.com/about-aws/global-infrastructure/localzones/locations[AWS Local Zones locations] to create the network resources in. -* You read the link:https://aws.amazon.com/about-aws/global-infrastructure/localzones/features/[Features] for each AWS Local Zones location. -* You downloaded the AWS CLI and installed it on your computer. See link:https://docs.aws.amazon.com/cli/latest/userguide/install-bundle.html[Install the AWS CLI Using the Bundled Installer (Linux, macOS, or UNIX)] in the AWS documentation. -* If you use a firewall, you xref:../../installing/install_config/configuring-firewall.adoc#configuring-firewall[configured it to allow the sites] that your cluster requires access to. -+ -[NOTE] -==== -Be sure to also review this site list if you are configuring a proxy. -==== -* Add permission for the user who creates the cluster to modify the Local Zone group with `ec2:ModifyAvailabilityZoneGroup`. For example: -+ -.An example of a permissive IAM policy to attach to a user or role -[source,yaml] ----- -{ - "Version": "2012-10-17", - "Statement": [ - { - "Action": [ - "ec2:ModifyAvailabilityZoneGroup" - ], - "Effect": "Allow", - "Resource": "*" - } - ] -} ----- - -// Cluster limitations in AWS Local Zones -include::modules/cluster-limitations-local-zone.adoc[leveloffset=+1] [role="_additional-resources"] .Additional resources @@ -63,18 +56,19 @@ include::modules/cluster-limitations-local-zone.adoc[leveloffset=+1] * xref:../../networking/ingress-sharding.html#nw-ingress-sharding_ingress-sharding[Ingress Controller sharding] +== Prerequisites for the installation + +// Opting in to the {aws-service-name-short} Group +include::modules/installation-aws-add-local-zone-locations.adoc[leveloffset=+2] + // Internet access for OpenShift Container Platform -include::modules/cluster-entitlements.adoc[leveloffset=+1] +include::modules/cluster-entitlements.adoc[leveloffset=+2] // Obtaining an AWS Marketplace image -include::modules/installation-aws-marketplace-subscribe.adoc[leveloffset=+1] +include::modules/installation-aws-marketplace-subscribe.adoc[leveloffset=+2] //Installing the OpenShift CLI by downloading the binary: Moved up to precede `ccoctl` steps, which require the use of `oc` -include::modules/cli-installing-cli.adoc[leveloffset=+1] - -== Preparing for the installation - -Before you extend nodes to local zones, you must prepare certain resources for the cluster installation environment. +include::modules/cli-installing-cli.adoc[leveloffset=+2] // Obtaining the installation program include::modules/installation-obtaining-installer.adoc[leveloffset=+2] @@ -82,8 +76,9 @@ include::modules/installation-obtaining-installer.adoc[leveloffset=+2] // Generating a key pair for cluster node SSH access include::modules/ssh-agent-using.adoc[leveloffset=+2] -// Creating the installation files for AWS -include::modules/installation-user-infra-generate.adoc[leveloffset=+2] +== Preparing for the installation + +Before you extend nodes to {aws-service-name-full}, you must prepare certain resources for the cluster installation environment. // Minimum resource requirements for cluster installation include::modules/installation-minimum-resource-requirements.adoc[leveloffset=+2] @@ -94,72 +89,47 @@ include::modules/installation-aws-tested-machine-types.adoc[leveloffset=+2] [role="_additional-resources"] .Additional resources -* See link:https://aws.amazon.com/about-aws/global-infrastructure/localzones/features/[AWS Local Zones features] in the AWS documentation for more information about AWS Local Zones and the supported instances types and services. +ifdef::aws-localzones[] +* See link:https://aws.amazon.com/about-aws/global-infrastructure/localzones/features/[AWS Local Zones features] + in the AWS documentation for more information about {aws-service-name-full} and the supported instances types and services. +endif::aws-localzones[] +ifdef::aws-wavelength[] +* See link:https://aws.amazon.com/wavelength/features[Features][{aws-service-name-full}] + in the AWS documentation for more information about {aws-service-name-full} features. +endif::aws-wavelength[] + +// Creating the installation files for AWS +//include::modules/installation-user-infra-generate.adoc[leveloffset=+2] // Creating the installation configuration file include::modules/installation-generate-aws-user-infra-install-config.adoc[leveloffset=+2] -// Suggest to standarize edge-pool's specific files with same prefixes, like: machine-edge-pool-[...] or compute-edge-pool-[...] (which is more compatible with install-config.yaml/compute) - -// Edge compute pools and AWS Local Zones -include::modules/edge-machine-pools-aws-local-zones.adoc[leveloffset=+2] - -[role="_additional-resources"] -.Additional resources - -* xref:../../networking/changing-cluster-network-mtu.adoc#mtu-value-selection_changing-cluster-network-mtu[Changing the MTU for the cluster network] -* xref:../../networking/changing-cluster-network-mtu.adoc#nw-ovn-ipsec-enable_configuring-ipsec-ovn[Enabling IPsec encryption] -* xref:../../nodes/scheduling/nodes-scheduler-taints-tolerations.adoc#nodes-scheduler-taints-tolerations-about_nodes-scheduler-taints-tolerations[Understanding taints and tolerations] - -//// -// Revisit the need for the link to this section based on testing outcome of 4.15 Wavelenght Zone testing work that also assesses Manual STS, Manual long-term, and Mint routes. -//Supertask: Configuring an AWS cluster to use short-term credentials -[id="installing-aws-with-short-term-creds_{context}"] -== Optional: Configuring an AWS cluster to use short-term credentials - -To install a cluster that is configured to use the AWS Security Token Service (STS), you must configure the CCO utility and create the required AWS resources for your cluster. - -[NOTE] -==== -To use the AWS STS, you must configure the Cloud Credential Operator (CCO) to run in manual mode. As part of the installation process, you set `credentialsMode` parameter to `Manual` after creating the `install-config.yaml` installation configuration file. -==== -//Task part 1: Configuring the Cloud Credential Operator utility -include::modules/cco-ccoctl-configuring.adoc[leveloffset=+2] +// Examples of the installation configuration file with edge compute pools +include::modules/installation-aws-edge-compute-pools-examples.adoc[leveloffset=+2] -//Task part 2: Creating the required AWS resources -[id="sts-mode-create-aws-resources-ccoctl_{context}"] -=== Creating AWS resources with the Cloud Credential Operator utility +// Customizing Cluster Network MTU +include::modules/installation-aws-cluster-network-mtu.adoc[leveloffset=+2] -You have the following options when creating AWS resources: - -* You can use the `ccoctl aws create-all` command to create the AWS resources automatically. This is the quickest way to create the resources. See xref:../../installing/installing_aws/installing-aws-localzone.adoc#cco-ccoctl-creating-at-once_installing-aws-localzone[Creating AWS resources with a single command]. - -* If you need to review the JSON files that the `ccoctl` tool creates before modifying AWS resources, or if the process the `ccoctl` tool uses to create AWS resources automatically does not meet the requirements of your organization, you can create the AWS resources individually. See xref:../../installing/installing_aws/installing-aws-localzone.adoc#cco-ccoctl-creating-individually_installing-aws-localzone[Creating AWS resources individually]. - -//Task part 2a: Creating the required AWS resources all at once -include::modules/cco-ccoctl-creating-at-once.adoc[leveloffset=+3] - -//Task part 2b: Creating the required AWS resources individually -include::modules/cco-ccoctl-creating-individually.adoc[leveloffset=+3] -//// - -// Opting in to AWS Local Zones -include::modules/installation-aws-add-local-zone-locations.adoc[leveloffset=+1] - -// Cluster installation options for an AWS Local Zone environment +// Cluster installation options for an {aws-service-name-full} environment include::modules/aws-cluster-installation-options-aws-lzs.adoc[leveloffset=+1] .Next steps -Choose one of the following options to install an {product-title} cluster in an AWS Local Zones environment: +Choose one of the following options to install an {product-title} cluster in an {aws-service-name-short} environment: -* xref:../../installing/installing_aws/installing-aws-localzone.adoc#installation-cluster-quickly-extend-workers_installing-aws-localzone[Installing a cluster quickly in AWS Local Zones] +ifdef::aws-localzones[] +* xref:../../installing/installing_aws/installing-aws-localzone.adoc#installation-cluster-quickly-extend-workers_installing-aws-localzone[Installing a cluster quickly in AWS {aws-service-name-full}] * xref:../../installing/installing_aws/installing-aws-localzone.adoc#creating-aws-local-zone-environment-existing_installing-aws-localzone[Installing a cluster in an existing VPC with defined Local Zone subnets] +endif::aws-localzones[] +ifdef::aws-wavelength[] +* xref:../../installing/installing_aws/installing-aws-wavelength.adoc#installation-cluster-quickly-extend-workers_installing-aws-wavelength[Install a cluster quickly in AWS Wavelength] +* xref:../../installing/installing_aws/installing-aws-wavelength.adoc#creating-aws-local-zone-environment-existing_installing-aws-wavelength[Installing a cluster in an existing VPC that has Wavelength Zones subnets] +endif::aws-wavelength[] -// Installing a cluster quickly in AWS Local Zones +// Installing a cluster quickly in {aws-service-name-full} include::modules/installation-cluster-quickly-extend-workers.adoc[leveloffset=+1] -// Modifying an installation configuration to use AWS Local Zones +// Modifying an installation configuration to use {aws-service-name-full} include::modules/install-creating-install-config-aws-local-zones.adoc[leveloffset=+2] [role="_additional-resources"] @@ -167,94 +137,123 @@ include::modules/install-creating-install-config-aws-local-zones.adoc[leveloffse * xref:../../installing/installing_aws/installing-aws-localzone.adoc#cluster-limitations-local-zone_installing-aws-localzone[Creating the installation configuration file] -* xref:../../installing/installing_aws/installing-aws-localzone.adoc#cluster-limitations-local-zone_installing-aws-localzone[Cluster limitations in AWS Local Zones] +* xref:../../installing/installing_aws/installing-aws-localzone.adoc#cluster-limitations-local-zone_installing-aws-localzone[Cluster limitations in AWS {aws-service-name-full}] .Next steps * xref:../../installing/installing_aws/installing-aws-localzone.adoc#installation-launching-installer_installing-aws-localzone[Deploying the cluster] [id="creating-aws-local-zone-environment-existing_{context}"] -== Installing a cluster in an existing VPC that has Local Zone subnets - -You can install a cluster into an existing Amazon Virtual Private Cloud (VPC) on Amazon Web Services (AWS). The installation program provisions the rest of the required infrastructure, which you can further customize. To customize the installation, modify parameters in the `install-config.yaml` file before you install the cluster. +== Installing a cluster in an existing VPC that has {aws-service-name-short} subnets -Installing a cluster on AWS into an existing VPC requires extending workers to the edge of the Cloud Infrastructure by using AWS Local Zones. +You can install a cluster into an existing Amazon Virtual Private Cloud (VPC) on Amazon Web Services (AWS). +The installation program provisions the rest of the required infrastructure, which you can further customize. +To customize the installation, modify parameters in the `install-config.yaml` file before you install the cluster. -Local Zone subnets extend regular workers' nodes to edge networks. Each edge worker nodes runs a user workload. After you create an Amazon Web Service (AWS) Local Zone environment, and you deploy your cluster, you can use edge worker nodes to create user workloads in Local Zone subnets. +Installing a cluster on AWS into an existing VPC requires the creation of subnets on {aws-service-name-full} +before deploying workers to the edge of the cloud infrastructure. -You can use a provided CloudFormation template to create the VPC and public subnets. Additionally, you can modify a template to customize your infrastructure or use the information that they contain to create AWS objects according to your company's policies. +You can use a provided CloudFormation template to create the required network component (VPC, gateways, and subnets). +Additionally, you can modify a template to customize your infrastructure or use the information that they contain to +create AWS objects according to your company's policies. +ifdef::aws-localzones[] [NOTE] ==== -If you want to create private subnets, you must either modify the provided CloudFormation template or create your own template. +If you want to create private subnets, you must either modify the provided CloudFormation template +or create your own template. +==== +endif::aws-localzones[] + +[IMPORTANT] +==== +The steps for performing an installer-provisioned infrastructure installation are provided for example purposes only. +Installing a cluster in an existing VPC requires that you have knowledge of the cloud provider and the +installation process of {product-title}. You can use a CloudFormation template to assist you with completing +these steps or to help model your own cluster installation. Instead of using the CloudFormation template to create +resources, you can decide to use other methods for generating these resources. ==== // Creating a VPC in AWS include::modules/installation-creating-aws-vpc-localzone.adoc[leveloffset=+2] -// Creating a subnet in AWS Local Zones -include::modules/installation-creating-aws-subnet-localzone.adoc[leveloffset=+2] + // CloudFormation template for the VPC include::modules/installation-cloudformation-vpc-localzone.adoc[leveloffset=+2] + +ifdef::aws-localzones[] // AWS security groups +// Do we need this for LZ as the example is already provided in the section "Edge compute pools and AWS Local Zones"? include::modules/installation-aws-security-groups.adoc[leveloffset=+2] -// CloududFormation template for the subnet that uses AWS Local Zones + +// CloududFormation template for the subnet for {aws-service-name-full} include::modules/installation-cloudformation-subnet-localzone.adoc[leveloffset=+2] -[role="_additional-resources"] -.Additional resources +endif::aws-localzones[] +ifdef::aws-wavelength[] + +// Creating a Carrier Gateway in AWS VPC Carrier Gateway +include::modules/installation-creating-aws-vpc-carrier-gw.adoc[leveloffset=+2] + +// CloudFormation template for the VPC Carrier Gateway +include::modules/installation-cloudformation-vpc-carrier-gw.adoc[leveloffset=+2] -* You can view details about the CloudFormation stacks that you create by navigating to the link:https://console.aws.amazon.com/cloudformation/[AWS CloudFormation console]. +// Creating the subnets in AWS {aws-service-name-full} +include::modules/installation-creating-aws-vpc-subnets.adoc[leveloffset=+2] -// Modifying an installation configuration file to use AWS Local Zones subnets -include::modules/install-creating-install-config-aws-local-zones-subnets.adoc[leveloffset=+2] +// CloudFormation template for the VPC Subnets +include::modules/installation-cloudformation-vpc-subnets.adoc[leveloffset=+2] + +endif::aws-wavelength[] [role="_additional-resources"] .Additional resources -* See link:https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html[Configuration and credential file settings] in the AWS documentation for more information about AWS profile and credential configuration. - -//include::modules/installation-configure-proxy.adoc[leveloffset=+2] -//Put this back if QE validates it. +* You can view details about the CloudFormation stacks that you create by navigating to the + link:https://console.aws.amazon.com/cloudformation/[AWS CloudFormation console]. -// Verify removal due to automation. -// include::modules/installation-localzone-generate-k8s-manifest.adoc[leveloffset=+2] +// Modifying an installation configuration file to use AWS {aws-service-name-full} subnets +include::modules/installing-aws-edge-zones-custom-vpc-config.adoc[leveloffset=+2] -//// -// Revisit the need for the link to this section based on testing outcome of 4.15 Wavelenght Zone testing work that also assesses Manual STS, Manual long-term, and Mint routes. -[id="installing-aws-manual-modes_{context}"] -== Alternatives to storing administrator-level secrets in the kube-system project +[role="_additional-resources"] +.Additional resources -By default, administrator secrets are stored in the `kube-system` project. If you configured the `credentialsMode` parameter in the `install-config.yaml` file to `Manual`, you must use one of the following alternatives: +* See link:https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html[Configuration and credential file settings] + in the AWS documentation for more information about AWS profile and credential configuration. -* If you configured the CCO utility (`ccoctl`) to implement short-term credentials for individual components, follow the procedure in xref:../../installing/installing_aws/installing-aws-localzone.adoc#cco-ccoctl-install-creating-manifests_installing-aws-localzone[Incorporating the Cloud Credential Operator utility manifests]. +.Next steps +* xref:../../installing/installing_aws/installing-aws-localzone.adoc#installation-launching-installer_installing-aws-localzone[Deploying the cluster] -* If you will manage cloud credentials manually, follow the procedure in xref:../../installing/installing_aws/installing-aws-localzone.adoc#manually-create-iam_installing-aws-localzone[Manually creating long-term credentials]. +// Creating edge worker nodes in public subnets (optional) +include::modules/machineset-aws-edge-zone-public.adoc[leveloffset=+1] -// Additional steps for the Cloud Credential Operator utility (`ccoctl`) -include::modules/cco-ccoctl-install-creating-manifests.adoc[leveloffset=+2] +//TODO: Put this back if QE validates it: +//include::modules/installation-configure-proxy.adoc[leveloffset=+2] -//Manually creating IAM -include::modules/manually-create-identity-access-management.adoc[leveloffset=+2] -//// +//TODO: Verify removal due to automation. +// include::modules/installation-localzone-generate-k8s-manifest.adoc[leveloffset=+2] // Deploying the cluster include::modules/installation-launching-installer.adoc[leveloffset=+1] .Next steps -* xref:../../post_installation_configuration/cluster-tasks.adoc#installation-extend-edge-nodes-aws-local-zones_post-install-cluster-tasks[Creating user workloads in AWS Local Zones] +* xref:../../post_installation_configuration/cluster-tasks.adoc#installation-extend-edge-nodes-aws-local-zones_post-install-cluster-tasks[Creating user workloads in AWS {aws-service-name-full}] + +[id="reviewing-installation_{context}"] +== Reviewing the Installation // Logging in to the cluster by using the CLI -include::modules/cli-logging-in-kubeadmin.adoc[leveloffset=+1] +include::modules/cli-logging-in-kubeadmin.adoc[leveloffset=+2] // Logging in to the cluster by using the web console -include::modules/logging-in-by-using-the-web-console.adoc[leveloffset=+1] +include::modules/logging-in-by-using-the-web-console.adoc[leveloffset=+2] [role="_additional-resources"] .Additional resources -* See xref:../../web_console/web-console.adoc#web-console[Accessing the web console] for more details about accessing and understanding the {product-title} web console. +* See xref:../../web_console/web-console.adoc#web-console[Accessing the web console] for more details about +accessing and understanding the {product-title} web console. // Verifying nodes that were created with edge compute pool -include::modules/machine-edge-pool-review-nodes.adoc[leveloffset=+1] +include::modules/machine-edge-pool-review-nodes.adoc[leveloffset=+2] // Telemetry access for OpenShift Container Platform include::modules/cluster-telemetry.adoc[leveloffset=+1] @@ -262,16 +261,20 @@ include::modules/cluster-telemetry.adoc[leveloffset=+1] [role="_additional-resources"] .Additional resources -* See xref:../../support/remote_health_monitoring/about-remote-health-monitoring.adoc#about-remote-health-monitoring[About remote health monitoring] for more information about the Telemetry service. +* See xref:../../support/remote_health_monitoring/about-remote-health-monitoring.adoc#about-remote-health-monitoring[About remote health monitoring] + for more information about the Telemetry service. -[id="installing-aws-localzone-next-steps"] +[id="installing-aws-edge-next-steps_{context}"] == Next steps -* xref:../../post_installation_configuration/cluster-tasks.adoc#installation-extend-edge-nodes-aws-local-zones_post-install-cluster-tasks[Creating user workloads in AWS Local Zones]. +* xref:../../post_installation_configuration/cluster-tasks.adoc#installation-extend-edge-nodes-aws-local-zones_post-install-cluster-tasks[Creating user workloads in AWS {aws-service-name-full}]. * xref:../../installing/validating-an-installation.adoc#validating-an-installation[Validating an installation]. * xref:../../post_installation_configuration/cluster-tasks.adoc#available_cluster_customizations[Customize your cluster]. * If necessary, you can xref:../../support/remote_health_monitoring/opting-out-of-remote-health-reporting.adoc#opting-out-remote-health-reporting_opting-out-remote-health-reporting[opt out of remote health reporting]. -//// -// Revisit the need for the link to this section based on testing outcome of 4.15 Wavelenght Zone testing work that also assesses Manual STS, Manual long-term, and Mint routes. -* If necessary, you can xref:../../post_installation_configuration/cluster-tasks.adoc#manually-removing-cloud-creds_post-install-cluster-tasks[remove cloud provider credentials]. -//// + +ifeval::["{zone-type}" == "{aws-zone-type-local}"] +:!aws-localzones: +endif::[] +ifeval::["{zone-type}" == "{aws-zone-type-wavelength}"] +:!aws-wavelength: +endif::[] \ No newline at end of file diff --git a/installing/installing_aws/installing-aws-wavelength.adoc b/installing/installing_aws/installing-aws-wavelength.adoc new file mode 100644 index 000000000000..4194f1dbced3 --- /dev/null +++ b/installing/installing_aws/installing-aws-wavelength.adoc @@ -0,0 +1,280 @@ +:_mod-docs-content-type: ASSEMBLY +include::_attributes/common-attributes.adoc[] + +:context: installing-aws-wavelength + +// Context Variables for edge zones +:aws-service-name-full: AWS Wavelength +:aws-service-name-short: Wavelength Zones +:aws-service-name-single: Wavelength Zone +:zone-type: wavelength-zone + +[id="installing-aws-wavelength"] += Installing a cluster on AWS with worker nodes on {aws-service-name-full} + +// ATTENTION: All the content from here is shared between the pages: +// installing-aws-local-zones +// installing-aws-wavelength + +ifeval::["{zone-type}" == "{aws-zone-type-local}"] +:aws-localzones: +:aws-doc-zone: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-local-zones +endif::[] +ifeval::["{zone-type}" == "{aws-zone-type-wavelength}"] +:aws-wavelength: +:aws-doc-zone: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-wavelength-zones +endif::[] + +toc::[] + +// Intro Installing in AWS Edge zones ({aws-service-name-full}) +include::modules/aws-edge-zones-installing-intro.adoc[leveloffset=+0] + +// Additional Permissions for {aws-service-name-full} +include::modules/aws-edge-zones-permissions.adoc[leveloffset=+0] + +== About {aws-service-name-full} and edge compute pool + +// Cluster limitations in {aws-service-name-full} +include::modules/aws-edge-zones-cluster-limitations.adoc[leveloffset=+2] + +// Edge compute pools and AWS {aws-service-name-full} +include::modules/edge-machine-pools-aws-local-zones.adoc[leveloffset=+2] + +[role="_additional-resources"] +.Additional resources + +* xref:../../networking/changing-cluster-network-mtu.adoc#mtu-value-selection_changing-cluster-network-mtu[Changing the MTU for the cluster network] +* xref:../../networking/changing-cluster-network-mtu.adoc#nw-ovn-ipsec-enable_configuring-ipsec-ovn[Enabling IPsec encryption] +* xref:../../nodes/scheduling/nodes-scheduler-taints-tolerations.adoc#nodes-scheduler-taints-tolerations-about_nodes-scheduler-taints-tolerations[Understanding taints and tolerations] + + +[role="_additional-resources"] +.Additional resources + +* xref:../../storage/understanding-persistent-storage.adoc#pvc-storage-class_understanding-persistent-storage[Storage classes] + +* xref:../../networking/ingress-sharding.html#nw-ingress-sharding_ingress-sharding[Ingress Controller sharding] + +== Prerequisites for the installation + +// Opting in to the {aws-service-name-short} Group +include::modules/installation-aws-add-local-zone-locations.adoc[leveloffset=+2] + +// Internet access for OpenShift Container Platform +include::modules/cluster-entitlements.adoc[leveloffset=+2] + +// Obtaining an AWS Marketplace image +include::modules/installation-aws-marketplace-subscribe.adoc[leveloffset=+2] + +//Installing the OpenShift CLI by downloading the binary: Moved up to precede `ccoctl` steps, which require the use of `oc` +include::modules/cli-installing-cli.adoc[leveloffset=+2] + +// Obtaining the installation program +include::modules/installation-obtaining-installer.adoc[leveloffset=+2] + +// Generating a key pair for cluster node SSH access +include::modules/ssh-agent-using.adoc[leveloffset=+2] + +== Preparing for the installation + +Before you extend nodes to {aws-service-name-full}, you must prepare certain resources for the cluster installation environment. + +// Minimum resource requirements for cluster installation +include::modules/installation-minimum-resource-requirements.adoc[leveloffset=+2] + +// Tested instance types for AWS +include::modules/installation-aws-tested-machine-types.adoc[leveloffset=+2] + +[role="_additional-resources"] +.Additional resources + +ifdef::aws-localzones[] +* See link:https://aws.amazon.com/about-aws/global-infrastructure/localzones/features/[AWS Local Zones features] + in the AWS documentation for more information about {aws-service-name-full} and the supported instances types and services. +endif::aws-localzones[] +ifdef::aws-wavelength[] +* See link:https://aws.amazon.com/wavelength/features[Features][{aws-service-name-full}] + in the AWS documentation for more information about {aws-service-name-full} features. +endif::aws-wavelength[] + +// Creating the installation files for AWS +//include::modules/installation-user-infra-generate.adoc[leveloffset=+2] + +// Creating the installation configuration file +include::modules/installation-generate-aws-user-infra-install-config.adoc[leveloffset=+2] + +// Examples of the installation configuration file with edge compute pools +include::modules/installation-aws-edge-compute-pools-examples.adoc[leveloffset=+2] + +// Customizing Cluster Network MTU +include::modules/installation-aws-cluster-network-mtu.adoc[leveloffset=+2] + +// Cluster installation options for an {aws-service-name-full} environment +include::modules/aws-cluster-installation-options-aws-lzs.adoc[leveloffset=+1] + +.Next steps + +Choose one of the following options to install an {product-title} cluster in an {aws-service-name-short} environment: + +ifdef::aws-localzones[] +* xref:../../installing/installing_aws/installing-aws-localzone.adoc#installation-cluster-quickly-extend-workers_installing-aws-localzone[Installing a cluster quickly in AWS {aws-service-name-full}] +* xref:../../installing/installing_aws/installing-aws-localzone.adoc#creating-aws-local-zone-environment-existing_installing-aws-localzone[Installing a cluster in an existing VPC with defined Local Zone subnets] +endif::aws-localzones[] +ifdef::aws-wavelength[] +* xref:../../installing/installing_aws/installing-aws-wavelength.adoc#installation-cluster-quickly-extend-workers_installing-aws-wavelength[Install a cluster quickly in AWS Wavelength] +* xref:../../installing/installing_aws/installing-aws-wavelength.adoc#creating-aws-local-zone-environment-existing_installing-aws-wavelength[Installing a cluster in an existing VPC that has Wavelength Zones subnets] +endif::aws-wavelength[] + +// Installing a cluster quickly in {aws-service-name-full} +include::modules/installation-cluster-quickly-extend-workers.adoc[leveloffset=+1] + +// Modifying an installation configuration to use {aws-service-name-full} +include::modules/install-creating-install-config-aws-local-zones.adoc[leveloffset=+2] + +[role="_additional-resources"] +.Additional resources + +* xref:../../installing/installing_aws/installing-aws-localzone.adoc#cluster-limitations-local-zone_installing-aws-localzone[Creating the installation configuration file] + +* xref:../../installing/installing_aws/installing-aws-localzone.adoc#cluster-limitations-local-zone_installing-aws-localzone[Cluster limitations in AWS {aws-service-name-full}] + +.Next steps +* xref:../../installing/installing_aws/installing-aws-localzone.adoc#installation-launching-installer_installing-aws-localzone[Deploying the cluster] + +[id="creating-aws-local-zone-environment-existing_{context}"] +== Installing a cluster in an existing VPC that has {aws-service-name-short} subnets + +You can install a cluster into an existing Amazon Virtual Private Cloud (VPC) on Amazon Web Services (AWS). +The installation program provisions the rest of the required infrastructure, which you can further customize. +To customize the installation, modify parameters in the `install-config.yaml` file before you install the cluster. + +Installing a cluster on AWS into an existing VPC requires the creation of subnets on {aws-service-name-full} +before deploying workers to the edge of the cloud infrastructure. + +You can use a provided CloudFormation template to create the required network component (VPC, gateways, and subnets). +Additionally, you can modify a template to customize your infrastructure or use the information that they contain to +create AWS objects according to your company's policies. + +ifdef::aws-localzones[] +[NOTE] +==== +If you want to create private subnets, you must either modify the provided CloudFormation template +or create your own template. +==== +endif::aws-localzones[] + +[IMPORTANT] +==== +The steps for performing an installer-provisioned infrastructure installation are provided for example purposes only. +Installing a cluster in an existing VPC requires that you have knowledge of the cloud provider and the +installation process of {product-title}. You can use a CloudFormation template to assist you with completing +these steps or to help model your own cluster installation. Instead of using the CloudFormation template to create +resources, you can decide to use other methods for generating these resources. +==== + +// Creating a VPC in AWS +include::modules/installation-creating-aws-vpc-localzone.adoc[leveloffset=+2] + +// CloudFormation template for the VPC +include::modules/installation-cloudformation-vpc-localzone.adoc[leveloffset=+2] + +ifdef::aws-localzones[] +// AWS security groups +// Do we need this for LZ as the example is already provided in the section "Edge compute pools and AWS Local Zones"? +include::modules/installation-aws-security-groups.adoc[leveloffset=+2] + +// CloududFormation template for the subnet for {aws-service-name-full} +include::modules/installation-cloudformation-subnet-localzone.adoc[leveloffset=+2] + +endif::aws-localzones[] +ifdef::aws-wavelength[] + +// Creating a Carrier Gateway in AWS VPC Carrier Gateway +include::modules/installation-creating-aws-vpc-carrier-gw.adoc[leveloffset=+2] + +// CloudFormation template for the VPC Carrier Gateway +include::modules/installation-cloudformation-vpc-carrier-gw.adoc[leveloffset=+2] + +// Creating the subnets in AWS {aws-service-name-full} +include::modules/installation-creating-aws-vpc-subnets.adoc[leveloffset=+2] + +// CloudFormation template for the VPC Subnets +include::modules/installation-cloudformation-vpc-subnets.adoc[leveloffset=+2] + +endif::aws-wavelength[] + +[role="_additional-resources"] +.Additional resources + +* You can view details about the CloudFormation stacks that you create by navigating to the + link:https://console.aws.amazon.com/cloudformation/[AWS CloudFormation console]. + +// Modifying an installation configuration file to use AWS {aws-service-name-full} subnets +include::modules/installing-aws-edge-zones-custom-vpc-config.adoc[leveloffset=+2] + +[role="_additional-resources"] +.Additional resources + +* See link:https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html[Configuration and credential file settings] + in the AWS documentation for more information about AWS profile and credential configuration. + +.Next steps +* xref:../../installing/installing_aws/installing-aws-localzone.adoc#installation-launching-installer_installing-aws-localzone[Deploying the cluster] + +// Creating edge worker nodes in public subnets (optional) +include::modules/machineset-aws-edge-zone-public.adoc[leveloffset=+1] + +//TODO: Put this back if QE validates it: +//include::modules/installation-configure-proxy.adoc[leveloffset=+2] + +//TODO: Verify removal due to automation. +// include::modules/installation-localzone-generate-k8s-manifest.adoc[leveloffset=+2] + +// Deploying the cluster +include::modules/installation-launching-installer.adoc[leveloffset=+1] + +.Next steps +* xref:../../post_installation_configuration/cluster-tasks.adoc#installation-extend-edge-nodes-aws-local-zones_post-install-cluster-tasks[Creating user workloads in AWS {aws-service-name-full}] + +[id="reviewing-installation_{context}"] +== Reviewing the Installation + +// Logging in to the cluster by using the CLI +include::modules/cli-logging-in-kubeadmin.adoc[leveloffset=+2] + +// Logging in to the cluster by using the web console +include::modules/logging-in-by-using-the-web-console.adoc[leveloffset=+2] + +[role="_additional-resources"] +.Additional resources + +* See xref:../../web_console/web-console.adoc#web-console[Accessing the web console] for more details about +accessing and understanding the {product-title} web console. + +// Verifying nodes that were created with edge compute pool +include::modules/machine-edge-pool-review-nodes.adoc[leveloffset=+2] + +// Telemetry access for OpenShift Container Platform +include::modules/cluster-telemetry.adoc[leveloffset=+1] + +[role="_additional-resources"] +.Additional resources + +* See xref:../../support/remote_health_monitoring/about-remote-health-monitoring.adoc#about-remote-health-monitoring[About remote health monitoring] + for more information about the Telemetry service. + +[id="installing-aws-edge-next-steps_{context}"] +== Next steps + +* xref:../../post_installation_configuration/cluster-tasks.adoc#installation-extend-edge-nodes-aws-local-zones_post-install-cluster-tasks[Creating user workloads in AWS {aws-service-name-full}]. +* xref:../../installing/validating-an-installation.adoc#validating-an-installation[Validating an installation]. +* xref:../../post_installation_configuration/cluster-tasks.adoc#available_cluster_customizations[Customize your cluster]. +* If necessary, you can xref:../../support/remote_health_monitoring/opting-out-of-remote-health-reporting.adoc#opting-out-remote-health-reporting_opting-out-remote-health-reporting[opt out of remote health reporting]. + +ifeval::["{zone-type}" == "{aws-zone-type-local}"] +:!aws-localzones: +endif::[] +ifeval::["{zone-type}" == "{aws-zone-type-wavelength}"] +:!aws-wavelength: +endif::[] \ No newline at end of file diff --git a/modules/aws-cluster-installation-options-aws-lzs.adoc b/modules/aws-cluster-installation-options-aws-lzs.adoc index b4a44ea4ebc1..53e13d9d2298 100644 --- a/modules/aws-cluster-installation-options-aws-lzs.adoc +++ b/modules/aws-cluster-installation-options-aws-lzs.adoc @@ -4,10 +4,13 @@ :_mod-docs-content-type: CONCEPT [id="aws-cluster-installation-options-aws-lzs_{context}"] -= Cluster installation options for an AWS Local Zones environment += Cluster installation options for an {aws-service-name-full} environment -To install an {product-title} cluster in an AWS Local Zones environment on AWS infrastructure, choose one of the following installation options: +Choose one of the following installations options to install an {product-title} cluster in on AWS with +edge worker nodes in {aws-service-name-full} infrastructure: -* Installing a cluster to quickly extend workers to edge compute pools, where the installation program automatically creates resources for the {product-title} cluster. +* Full automated option: Installing a cluster to quickly extend workers to edge compute pools, where the installation program + automatically creates infrastructure resources for the {product-title} cluster. -* Installing a cluster on AWS into an existing VPC, where you must add Local Zone subnets to the `install-config.yaml` file. +* Existing VPC option: Installing a cluster on AWS into an existing VPC, where you supply {aws-service-name-single} subnets + to the `install-config.yaml` file. diff --git a/modules/aws-edge-zones-cluster-limitations.adoc b/modules/aws-edge-zones-cluster-limitations.adoc new file mode 100644 index 000000000000..603f86241cdc --- /dev/null +++ b/modules/aws-edge-zones-cluster-limitations.adoc @@ -0,0 +1,40 @@ +// Module included in the following assemblies: +// +// * installing/installing-aws-localzone.adoc +// * installing/installing_aws/installing-aws-wavelength.adoc + +:_mod-docs-content-type: CONCEPT + +[id="cluster-limitations-local-zone_{context}"] += Cluster limitations in {aws-service-name-full} + +Some limitations exist when you attempt to deploy a cluster with a default installation configuration in Amazon Web +Services (AWS) {aws-service-name-short}. + +[IMPORTANT] +==== +The following list details limitations when deploying a cluster in {aws-service-name-full}: + +- The Maximum Transmission Unit (MTU) between an Amazon EC2 instance in a {aws-service-name-single} and an Amazon EC2 instance in the Region + is `1300`. This causes the cluster-wide network MTU to change according to the network plugin that is used on the deployment. +- Network resources such as Network Load Balancer (NLB), Classic Load Balancer, and Network Address Translation (NAT) + Gateways are not globally supported in {aws-service-name-full}. +- For an {product-title} cluster on AWS, the AWS Elastic Block Storage (EBS) `gp3` type volume is the default for node + volumes and the default for the storage class. This volume type is not globally available on {aws-service-name-single} locations. + By default, the nodes running in {aws-service-name-short} are deployed with the `gp2` EBS volume. The `gp2-csi` `StorageClass` + must be set when creating workloads in the nodes running on {aws-service-name-full}. +==== + +If you want the installation program to automatically create {aws-service-name-single} subnets for your {product-title} cluster, +specific configuration limitations apply with this method. + +[IMPORTANT] +==== +The following configuration limitation applies when you set the installation program to automatically create subnets for +your {product-title} cluster: + +- The private subnets for an {aws-service-name-full} associate with the route table of the parent zone, so that each private subnet + can route egress traffic to the internet. If this route table does not exist during cluster installation, the private subnet + associates with the first available private route table in the Virtual Private Cloud (VPC). This approach is valid only + for {aws-service-name-full} subnets in an {product-title} cluster. +==== diff --git a/modules/aws-edge-zones-installing-intro.adoc b/modules/aws-edge-zones-installing-intro.adoc new file mode 100644 index 000000000000..a2ed25f8231b --- /dev/null +++ b/modules/aws-edge-zones-installing-intro.adoc @@ -0,0 +1,59 @@ +// Module included in the following assemblies: +// +// * installing/installing-aws-localzone.adoc +// * installing/installing_aws/installing-aws-wavelength.adoc + +:_mod-docs-content-type: CONCEPT + +[id="aws-edge-zones-installing-intro_{context}"] + +You can quickly install an {product-title} cluster in Amazon Web Services (AWS) {aws-service-name-short} +by setting the zone names in the edge compute pool of the `install-config.yaml` file, or install a cluster +in an existing VPC that with {aws-service-name-single} subnets. + +ifdef::aws-localzones[] +{aws-service-name-full} are a type of infrastructure that place Cloud Resources close to metropolitan regions. +For more information, see the link:{zone-aws-doc}[{aws-service-name-full} Documentation]. +endif::aws-localzones[] +ifdef::aws-wavelength[] + +// Review. Source https://aws.amazon.com/wavelength/features/ +AWS Wavelength is an infrastructure offering optimized for mobile edge computing applications. Wavelength Zones +are AWS infrastructure deployments that embed AWS compute and storage services within communications service +providers’ (CSP) 5G networks, so application traffic from 5G devices reach application servers running in +Wavelength Zones without leaving the telecommunications network. This avoids the latency that would result from +application traffic traversing multiple hops across the internet to reach its destination, which allows customers +to take full advantage of the latency and bandwidth benefits offered by modern 5G networks. + +For more information, see the link:{zone-aws-doc}[{aws-service-name-full} Documentation]. + +endif::aws-wavelength[] + +== Prerequisites + +* You reviewed details about the xref:../../architecture/architecture-installation.adoc#architecture-installation[{product-title} installation and update] processes. +* You read the documentation on xref:../../installing/installing-preparing.adoc#installing-preparing[selecting a cluster installation method and preparing it for users]. +* You xref:../../installing/installing_aws/installing-aws-account.adoc#installing-aws-account[configured an AWS account] to host the cluster. ++ +[IMPORTANT] +==== +If you have an AWS profile stored on your computer, it must not use a temporary session token that you generated while using +a multi-factor authentication device. The cluster continues to use your current AWS credentials to create AWS resources for the +entire life of the cluster, so you must use key-based, long-term credentials. To generate appropriate keys, see +link:https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html[Managing Access Keys for IAM Users] +in the AWS documentation. You can supply the keys when you run the installation program. +==== +* You downloaded the AWS CLI and installed it on your computer. See link:https://docs.aws.amazon.com/cli/latest/userguide/install-bundle.html[Install the AWS CLI Using the Bundled Installer (Linux, macOS, or UNIX)] + in the AWS documentation. +* If you use a firewall, you xref:../../installing/install_config/configuring-firewall.adoc#configuring-firewall[configured it to allow the sites] that your cluster requires access to. +ifdef::aws-localzones[] +* You noted the region and supported link:https://aws.amazon.com/about-aws/global-infrastructure/localzones/locations[AWS Local Zones locations] + to create the network resources in. +* You read the link:https://aws.amazon.com/about-aws/global-infrastructure/localzones/features/[Features] for each AWS {aws-service-name-full} location. +endif::aws-localzones[] +ifdef::aws-wavelength[] +* You noted the region and supported link:https://aws.amazon.com/wavelength/locations[{aws-service-name-full} locations] + to create the network resources in. +* You read the link:https://aws.amazon.com/wavelength/features[Features] available on {aws-service-name-full}. +* You read the link:https://docs.aws.amazon.com/wavelength/latest/developerguide/wavelength-quotas.html[Quotas and considerations for Wavelength Zones]. +endif::aws-wavelength[] diff --git a/modules/aws-edge-zones-permissions.adoc b/modules/aws-edge-zones-permissions.adoc new file mode 100644 index 000000000000..4788fb0df6e4 --- /dev/null +++ b/modules/aws-edge-zones-permissions.adoc @@ -0,0 +1,56 @@ +// Module included in the following assemblies: +// +// * installing/installing-aws-localzone.adoc +// * installing/installing_aws/installing-aws-wavelength.adoc + +:_mod-docs-content-type: CONCEPT + +[id="aws-edge-zones-permissions_{context}"] + +* The additional permissions is required for the IAM User or Role used to create the network requirements with support of {aws-service-name-full}: `ec2:ModifyAvailabilityZoneGroup` +ifdef::aws-wavelength[, `ec2:CreateCarrierGateway`, `ec2:DeleteCarrierGateway`.] +ifndef::aws-wavelength[.] ++ +.An example of additional IAM Policy to attach to a user or role with the required permissions to create a network resources to support {aws-service-name-full}: +ifdef::aws-wavelength[] +[source,yaml] +---- +{ + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "ec2:DeleteCarrierGateway", + "ec2:CreateCarrierGateway" + ], + "Resource": "*" + }, + { + "Action": [ + "ec2:ModifyAvailabilityZoneGroup" + ], + "Effect": "Allow", + "Resource": "*" + } + ] +} +---- +endif::aws-wavelength[] +ifdef::aws-localzones[] +[source,yaml] +---- +{ + "Version": "2012-10-17", + "Statement": [ + { + "Action": [ + "ec2:ModifyAvailabilityZoneGroup" + ], + "Effect": "Allow", + "Resource": "*" + } + ] +} +---- +endif::aws-localzones[] \ No newline at end of file diff --git a/modules/capi-machine-set-creating.adoc b/modules/capi-machine-set-creating.adoc index 6e5756695ab1..43fe8c0ad9d6 100644 --- a/modules/capi-machine-set-creating.adoc +++ b/modules/capi-machine-set-creating.adoc @@ -32,13 +32,13 @@ $ oc get machinesets -n openshift-machine-api <1> .Example output [source,terminal] ---- -NAME DESIRED CURRENT READY AVAILABLE AGE -agl030519-vplxk-worker-us-east-1a 1 1 1 1 55m -agl030519-vplxk-worker-us-east-1b 1 1 1 1 55m -agl030519-vplxk-worker-us-east-1c 1 1 1 1 55m -agl030519-vplxk-worker-us-east-1d 0 0 55m -agl030519-vplxk-worker-us-east-1e 0 0 55m -agl030519-vplxk-worker-us-east-1f 0 0 55m +NAME DESIRED CURRENT READY AVAILABLE AGE +sample-vplxk-worker-us-east-1a 1 1 1 1 55m +sample-vplxk-worker-us-east-1b 1 1 1 1 55m +sample-vplxk-worker-us-east-1c 1 1 1 1 55m +sample-vplxk-worker-us-east-1d 0 0 55m +sample-vplxk-worker-us-east-1e 0 0 55m +sample-vplxk-worker-us-east-1f 0 0 55m ---- .. To display the contents of a specific compute machine set CR, run the following command: diff --git a/modules/cluster-limitations-local-zone.adoc b/modules/cluster-limitations-local-zone.adoc deleted file mode 100644 index 5ffaf02e8be2..000000000000 --- a/modules/cluster-limitations-local-zone.adoc +++ /dev/null @@ -1,28 +0,0 @@ -// Module included in the following assemblies: -// -// * installing/installing-aws-localzone.adoc - -:_mod-docs-content-type: CONCEPT - -[id="cluster-limitations-local-zone_{context}"] -= Cluster limitations in AWS Local Zones - -Some limitations exist when you attempt to deploy a cluster with a default installation configuration in Amazon Web Services (AWS) Local Zones. - -[IMPORTANT] -==== -The following list details limitations when deploying a cluster in AWS Local Zones: - -- The Maximum Transmission Unit (MTU) between an Amazon EC2 instance in a Local Zone and an Amazon EC2 instance in the Region is `1300`. This causes the cluster-wide network MTU to change according to the network plugin that is used on the deployment. -- Network resources such as Network Load Balancer (NLB), Classic Load Balancer, and Network Address Translation (NAT) Gateways are not globally supported in AWS Local Zones. -- For an {product-title} cluster on AWS, the AWS Elastic Block Storage (EBS) `gp3` type volume is the default for node volumes and the default for the storage class. This volume type is not globally available on Local Zone locations. By default, the nodes running in Local Zones are deployed with the `gp2` EBS volume. The `gp2-csi` `StorageClass` must be set when creating workloads on Local Zone nodes. -==== - -If you want the installation program to automatically create Local Zone subnets for your {product-title} cluster, specific configuration limitations apply with this method. - -[IMPORTANT] -==== -The following configuration limitation applies when you set the installation program to automatically create subnets for your {product-title} cluster: - -- The private subnets for an AWS Local Zone associate with the route table of the parent zone, so that each private subnet can route egress traffic to the internet. If this route table does not exist during cluster installation, the private subnet associates with the first available private route table in the Virtual Private Cloud (VPC). This approach is valid only for AWS Local Zones subnets in an {product-title} cluster. -==== diff --git a/modules/edge-machine-pools-aws-local-zones.adoc b/modules/edge-machine-pools-aws-local-zones.adoc index f11ac1c78fe9..959455908f13 100644 --- a/modules/edge-machine-pools-aws-local-zones.adoc +++ b/modules/edge-machine-pools-aws-local-zones.adoc @@ -2,118 +2,51 @@ // * installing/installing_aws/installing-aws-localzone.adoc // * post_installation_configuration/aws-compute-edge-tasks.adoc -ifeval::["{context}" == "aws-compute-edge-tasks"] -:edge: -endif::[] - :_mod-docs-content-type: CONCEPT [id="edge-machine-pools-aws-local-zones_{context}"] -= Edge compute pools and AWS Local Zones += Edge compute pools and {aws-service-name-full} -Edge worker nodes are tainted worker nodes that run in AWS Local Zones locations. +Edge worker nodes are tainted worker nodes that run in {aws-service-name-full} locations. -When deploying a cluster that uses Local Zones, consider the following points: +When deploying a cluster that uses {aws-service-name-short}, consider the following points: -* Amazon EC2 instances in the Local Zones are more expensive than Amazon EC2 instances in the Availability Zones. -* Latency between applications and end users is lower in Local Zones, and latency might vary by location. A latency impact exists for some workloads if, for example, ingress traffic is mixed between Local Zones and Availability Zones. +* Amazon EC2 instances in the {aws-service-name-full} are more expensive than Amazon EC2 instances in the Availability Zones. +* Latency between applications and end users is lower in {aws-service-name-full}, and latency might vary by location. + A latency impact exists for some workloads if, for example, ingress traffic is mixed between {aws-service-name-short} + and Availability Zones. [IMPORTANT] ==== -Generally, the maximum transmission unit (MTU) between an Amazon EC2 instance in a Local Zone and an Amazon EC2 instance in the Region is 1300. For more information, see link:https://docs.aws.amazon.com/local-zones/latest/ug/how-local-zones-work.html[How Local Zones work] in the AWS documentation. -The cluster network MTU must be always less than the EC2 MTU to account for the overhead. The specific overhead is determined by the network plugin, for example: +Generally, the maximum transmission unit (MTU) between an Amazon EC2 instance in a {aws-service-name-short} and an Amazon EC2 +instance in the Region is 1300. For more information, +ifdef::aws-localzones[] +see link:https://docs.aws.amazon.com/local-zones/latest/ug/how-local-zones-work.html[How Local Zones work] +endif::aws-localzones[] +ifdef::aws-wavelength[] +see link:https://docs.aws.amazon.com/wavelength/latest/developerguide/how-wavelengths-work.html[How AWS Wavelength works] +endif::aws-wavelength[] +in the AWS documentation. The cluster network MTU must be always less than the EC2 MTU to account for the overhead. +The specific overhead is determined by the network plugin, for example: - OVN-Kubernetes: `100 bytes` - OpenShift SDN: `50 bytes` -The network plugin can provide additional features, like IPsec, that also must be decreased the MTU. For additional information, see the documentation. +The network plugin can provide additional features, like IPsec, that also must be decreased the MTU. +For additional information, see the documentation. ==== -{product-title} 4.12 introduced a new compute pool, _edge_, that is designed for use in remote zones. The edge compute pool configuration is common between AWS Local Zones locations. Because of the type and size limitations of resources like EC2 and EBS on Local Zone resources, the default instance type can vary from the traditional worker pool. +{product-title} 4.12 introduced a new compute pool, _edge_, that is designed for use in remote zones. The edge compute pool +configuration is common between {aws-service-name-full} locations. Because of the type and size limitations of resources like EC2 and EBS +on {aws-service-name-single} resources, the default instance type can vary from the traditional worker pool. -The default Elastic Block Store (EBS) for Local Zone locations is `gp2`, which differs from the regular worker pool. The instance type used for each Local Zone on edge compute pool also might differ from worker pools, depending on the instance offerings on the zone. +The default Elastic Block Store (EBS) for {aws-service-name-single} locations is `gp2`, which differs from the regular worker pool. The instance +type used for each {aws-service-name-single} on edge compute pool also might differ from worker pools, depending on the instance offerings on the zone. -The edge compute pool creates new labels that developers can use to deploy applications onto AWS Local Zones nodes. The new labels are: +The edge compute pool creates new labels that developers can use to deploy applications onto {aws-service-name-full} nodes. The new labels are: * `node-role.kubernetes.io/edge=''` * `machine.openshift.io/zone-type=local-zone` * `machine.openshift.io/zone-group=$ZONE_GROUP_NAME` -//// -By default, the system creates the edge compute pool manifests only if users add AWS Local Zones subnet IDs to the list `platform.aws.subnets`. -//// - -By default, the machine sets for the edge compute pool defines the taint of `NoSchedule` to prevent regular workloads from spreading on Local Zone instances. Users can only run user workloads if they define tolerations in the pod specification. - -ifndef::edge[] -The following examples show `install-config.yaml` files that use the edge machine pool. - -.Configuration that uses an edge pool with a custom instance type -[source,yaml] ----- -apiVersion: v1 -baseDomain: devcluster.openshift.com -metadata: - name: ipi-localzone -compute: -- name: edge - platform: - aws: - type: m5.4xlarge -platform: - aws: - region: us-west-2 -pullSecret: '{"auths": ...}' -sshKey: ssh-ed25519 AAAA... ----- - -Instance types differ between locations. To verify availability in the Local Zone in which the cluster runs, see the AWS documentation. - -.Configuration that uses an edge pool with a custom EBS type -[source,yaml] ----- -apiVersion: v1 -baseDomain: devcluster.openshift.com -metadata: - name: ipi-localzone -compute: -- name: edge - platform: - aws: - rootVolume: - type: gp3 - size: 120 -platform: - aws: - region: us-west-2 -pullSecret: '{"auths": ...}' -sshKey: ssh-ed25519 AAAA... ----- - -EBS types differ between locations. Check the AWS documentation to verify availability in the Local Zone in which the cluster runs. - -.Configuration that uses an edge pool with custom security groups -[source,yaml] ----- -apiVersion: v1 -baseDomain: devcluster.openshift.com -metadata: - name: ipi-localzone -compute: -- name: edge - platform: - aws: - additionalSecurityGroupIDs: - - sg-1 <1> - - sg-2 -platform: - aws: - region: us-west-2 -pullSecret: '{"auths": ...}' -sshKey: ssh-ed25519 AAAA... ----- -<1> Specify the name of the security group as it appears in the Amazon EC2 console, including the `sg` prefix. -endif::edge[] - -ifeval::["{context}" == "aws-compute-edge-tasks"] -:!edge: -endif::[] +By default, the machine sets for the edge compute pool defines the taint of `NoSchedule` to prevent regular workloads from +spreading on {aws-service-name-single} instances. Users can only run user workloads if they define tolerations in the pod specification. \ No newline at end of file diff --git a/modules/install-creating-install-config-aws-local-zones-subnets.adoc b/modules/install-creating-install-config-aws-local-zones-subnets.adoc deleted file mode 100644 index 7dfce6af0479..000000000000 --- a/modules/install-creating-install-config-aws-local-zones-subnets.adoc +++ /dev/null @@ -1,35 +0,0 @@ -// Module included in the following assemblies: -// * installing/installing_aws/installing-aws-localzone.adoc - -:_mod-docs-content-type: PROCEDURE -[id="install-creating-install-config-aws-local-zones-subnets_{context}"] -= Modifying an installation configuration file to use AWS Local Zones subnets - -Modify an `install-config.yaml` file to include AWS Local Zones subnets. - -.Prerequisites - -* You created subnets by using the procedure "Creating a subnet in AWS Local Zones". -* You created an `install-config.yaml` file by using the procedure "Creating the installation configuration file". - -.Procedure - -* Modify the `install-config.yaml` configuration file by specifying Local Zone subnets in the `platform.aws.subnets` property, as demonstrated in the following example: -+ -[source,yaml] ----- -... -platform: - aws: - region: us-west-2 - subnets: <1> - - publicSubnetId-1 - - publicSubnetId-2 - - publicSubnetId-3 - - privateSubnetId-1 - - privateSubnetId-2 - - privateSubnetId-3 - - publicSubnetId-LocalZone-1 -... ----- -<1> List of subnets created in the Availability and Local Zones. \ No newline at end of file diff --git a/modules/install-creating-install-config-aws-local-zones.adoc b/modules/install-creating-install-config-aws-local-zones.adoc index 7a1befbef4f0..e43c708fa738 100644 --- a/modules/install-creating-install-config-aws-local-zones.adoc +++ b/modules/install-creating-install-config-aws-local-zones.adoc @@ -3,23 +3,26 @@ :_mod-docs-content-type: PROCEDURE [id="install-creating-install-config-aws-local-zones_{context}"] -= Modifying an installation configuration file to use AWS Local Zones += Modifying an installation configuration file to use {aws-service-name-full} -Modify an `install-config.yaml` file to include AWS Local Zones. +Modify an `install-config.yaml` file to include {aws-service-name-full}. .Prerequisites * You have configured an AWS account. * You added your AWS keys and region to your local AWS profile by running `aws configure`. -* You have read the configuration limitations that apply when you specify the installation program to automatically create subnets for your {product-title} cluster. See the section named "Cluster limitations in AWS Local Zones". -* You opted in to the Local Zone group for each zone. +* You have read the configuration limitations that apply when you specify the installation program to + automatically create subnets for your {product-title} cluster. See the section named "Cluster limitations in {aws-service-name-full}". +* You opted in to the {aws-service-name-single} group for each zone. * You created an `install-config.yaml` file by using the procedure "Creating the installation configuration file". .Procedure -. Modify the `install-config.yaml` file by specifying Local Zone names in the `platform.aws.zones` property of the edge compute pool. For example: +. Modify the `install-config.yaml` file by specifying {aws-service-name-single} names in the `platform.aws.zones` property + of the edge compute pool. For example: + [source,yaml] +ifdef::aws-localzones[] ---- ... platform: @@ -30,14 +33,54 @@ compute: platform: aws: zones: <2> - - + - #... ---- +endif::aws-localzones[] +ifdef::aws-wavelength[] +---- +... +platform: + aws: + region: <1> +compute: +- name: edge + platform: + aws: + zones: <2> + - +#... +---- +endif::aws-wavelength[] <1> The AWS Region name. -<2> The list of Local Zone names that must belong in the same AWS Region. +<2> The list of {aws-service-name-single} names that must belong in the same AWS Region. + -.Example of a configuration to install a cluster in the `us-west-2` AWS Region that extends edge nodes to Local Zones in `Los Angeles` and `Las Vegas` locations. +.Example of a configuration to install a cluster in the `us-west-2` AWS Region that extends edge nodes to {aws-service-name-full} in `Los Angeles` and `Las Vegas` locations. + +ifdef::aws-localzones[] +[source,yaml] +---- +apiVersion: v1 +baseDomain: example.com +metadata: + name: cluster-name +platform: + aws: + region: us-west-2 +compute: +- name: edge + platform: + aws: + zones: + - us-west-2-lax-1a + - us-west-2-lax-1b + - us-west-2-las-1a +pullSecret: '{"auths": ...}' +sshKey: 'ssh-ed25519 AAAA...' +#... +---- +endif::aws-localzones[] +ifdef::aws-wavelength[] [source,yaml] ---- apiVersion: v1 @@ -52,12 +95,12 @@ compute: platform: aws: zones: - - us-west-2-lax-1a - - us-west-2-lax-1b - - us-west-2-las-1a + - us-west-2-wl1-lax-wlz-1 + - us-west-2-wl1-las-wlz-1 pullSecret: '{"auths": ...}' sshKey: 'ssh-ed25519 AAAA...' #... ---- +endif::aws-wavelength[] . Deploy your cluster. diff --git a/modules/installation-aws-add-local-zone-locations.adoc b/modules/installation-aws-add-local-zone-locations.adoc index 545ecb5463dd..41e9fc96fb74 100644 --- a/modules/installation-aws-add-local-zone-locations.adoc +++ b/modules/installation-aws-add-local-zone-locations.adoc @@ -3,38 +3,35 @@ // * installing/installing_aws/installing-aws-localzone.adoc // * post_installation_configuration/aws-compute-edge-tasks.adoc +// AWS Local Zones +ifeval::["{context}" == "aws-compute-edge-tasks"] +:edge-zone-sample: us-east-1-nyc-1a +:edge-zone-group-sample: us-east-1-nyc-1 +endif::[] +// AWS Wavelength +ifeval::["{context}" == "aws-compute-edge-tasks-wavelength"] +:edge-zone-sample: us-east-1-wl1-nyc-wlz-1 +:edge-zone-group-sample: us-east-1-wl1 +endif::[] + :_mod-docs-content-type: PROCEDURE [id="installation-aws-add-local-zone-locations_{context}"] -= Opting in to AWS Local Zones += Opting in to {aws-service-name-full} -If you plan to create the subnets in AWS Local Zones, you must opt in to each zone group separately. +If you plan to create the subnets in {aws-service-name-full}, you must opt in to each zone group separately. .Prerequisites * You have installed the AWS CLI. * You have determined an AWS Region for where you want to deploy your {product-title} cluster. -* You have attached a permissive IAM policy to a user or role account that opts in to the zone group. Consider the following configuration as an example IAM policy: -+ -[source,yaml] ----- -{ - "Version": "2012-10-17", - "Statement": [ - { - "Action": [ - "ec2:ModifyAvailabilityZoneGroup" - ], - "Effect": "Allow", - "Resource": "*" - } - ] -} ----- +* You have attached a permissive IAM policy to a user or role account that opts in to the zone group. .Procedure . List the zones that are available in your AWS Region by running the following command: + +// Q: is there a way to use variables inside a code block and apply to the following statements? +ifdef::aws-localzones[] [source,terminal] ---- $ aws --region "" ec2 describe-availability-zones \ @@ -42,12 +39,23 @@ $ aws --region "" ec2 describe-availability-zones \ --filters Name=zone-type,Values=local-zone \ --all-availability-zones ---- +endif::aws-localzones[] +ifdef::aws-wavelength[] +[source,terminal] +---- +$ aws --region "" ec2 describe-availability-zones \ + --query 'AvailabilityZones[].[{ZoneName: ZoneName, GroupName: GroupName, Status: OptInStatus}]' \ + --filters Name=zone-type,Values=wavelength-zone \ + --all-availability-zones +---- +endif::aws-wavelength[] + Depending on the AWS Region, the list of available zones can be long. The command returns the following fields: + -`ZoneName`:: The name of the Local Zone. -`GroupName`:: The group that comprises the zone. To opt in to the region, save the name. -`Status`:: The status of the Local Zone group. If the status is `not-opted-in`, you must opt in the `GroupName` by running the commands that follow. +- `ZoneName`:: The name of the {aws-service-name-single}. +- `GroupName`:: The group that comprises the zone. To opt in to the region, save the name. +- `Status`:: The status of the {aws-service-name-single} group. If the status is `not-opted-in`, + you must opt in the `GroupName` by running the commands that follow. . Opt in to the zone group on your AWS account by running the following command: + @@ -57,4 +65,5 @@ $ aws ec2 modify-availability-zone-group \ --group-name "" \// <1> --opt-in-status opted-in ---- -<1> For ``, specify the name of the group of the Local Zone where you want to create subnets. For example, specify `us-east-1-nyc-1` to use the zone `us-east-1-nyc-1a` (US East New York). +<1> For ``, specify the name of the group of the {aws-service-name-single} where you want to create subnets. + For example, specify `{edge-zone-group-sample}` to use the zone `{edge-zone-sample}` (US East New York). \ No newline at end of file diff --git a/modules/installation-aws-cluster-network-mtu.adoc b/modules/installation-aws-cluster-network-mtu.adoc new file mode 100644 index 000000000000..2b35b29a89e0 --- /dev/null +++ b/modules/installation-aws-cluster-network-mtu.adoc @@ -0,0 +1,62 @@ +// Module included in the following assemblies: +// +// * installing/installing_aws/installing-aws-localzone.adoc +// * installing/installing_aws/installing-aws-wavelength.adoc + +ifeval::["{context}" == "installing-aws-localzone"] +:localzones: +endif::[] + +:_mod-docs-content-type: CONCEPT +[id="installation-aws-cluster-network-mtu_{context}"] += Customizing Cluster Network MTU + +Customize the Cluster Network MTU when deploying a cluster on AWS. + +The Cluster Network MTU is automatically adjusted to the lower value +accepted by the network plugin when installing a cluster with support +of {aws-service-name-full}. + +If the {aws-service-name-single} support higher MTU in between EC2 Instances in +the {aws-service-name-single} and EC2 instances in the Region, you might need +to manually configure the higher value to increase the network performance of +the cluster network. + +For more information of the MTU supported for each zone for the flow: +"Traffic that goes from one instance to another between a +{aws-service-name-single} and the Region that uses a private IP address". +See link:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/network_mtu.html[Network maximum transmission unit (MTU) for your EC2 instance]. + +The `install-config.yaml` field `networking.clusterNetworkMTU` allows you to customize the +MTU for the new cluster. + +ifdef::localzones[] +The following example show `install-config.yaml` files that use the edge machine pool. + +.Configuration that uses an edge pool with a custom cluster network MTU +[source,yaml] +---- +apiVersion: v1 +baseDomain: devcluster.openshift.com +metadata: + name: edge-zone +networking: + clusterNetworkMTU: 8901 +compute: +- name: edge + platform: + aws: + zones: + - us-west-2-lax-1a + - us-west-2-lax-1b +platform: + aws: + region: us-west-2 +pullSecret: '{"auths": ...}' +sshKey: ssh-ed25519 AAAA... +---- +endif::localzones[] + +ifeval::["{context}" == "installing-aws-localzone"] +:!localzone: +endif::[] \ No newline at end of file diff --git a/modules/installation-aws-edge-compute-pools-examples.adoc b/modules/installation-aws-edge-compute-pools-examples.adoc new file mode 100644 index 000000000000..d8b9857831f6 --- /dev/null +++ b/modules/installation-aws-edge-compute-pools-examples.adoc @@ -0,0 +1,75 @@ +// Module included in the following assemblies: +// * installing/installing_aws/installing-aws-localzone.adoc + +:_mod-docs-content-type: CONCEPT +[id="installation-aws-edge-compute-pools-examples_{context}"] += Examples of installation configuration file with edge compute pools + +The following examples show `install-config.yaml` files that use the edge machine pool. + +.Configuration that uses an edge pool with a custom instance type +[source,yaml] +---- +apiVersion: v1 +baseDomain: devcluster.openshift.com +metadata: + name: ipi-edgezone +compute: +- name: edge + platform: + aws: + type: m5.4xlarge +platform: + aws: + region: us-west-2 +pullSecret: '{"auths": ...}' +sshKey: ssh-ed25519 AAAA... +---- + +// Q: Duplicated. Why not reference the "Features" AWS documentation here? or CLI to check the offerings? +Instance types differ between locations. To verify availability in the {aws-service-name-single} in which the cluster runs, see the AWS documentation. + +.Configuration that uses an edge pool with a custom EBS type +[source,yaml] +---- +apiVersion: v1 +baseDomain: devcluster.openshift.com +metadata: + name: ipi-edgezone +compute: +- name: edge + platform: + aws: + rootVolume: + type: gp3 + size: 120 +platform: + aws: + region: us-west-2 +pullSecret: '{"auths": ...}' +sshKey: ssh-ed25519 AAAA... +---- + +EBS types differ between locations. Check the AWS documentation to verify availability in the {aws-service-name-single} in which the cluster runs. + +.Configuration that uses an edge pool with custom security groups +[source,yaml] +---- +apiVersion: v1 +baseDomain: devcluster.openshift.com +metadata: + name: ipi-edgezone +compute: +- name: edge + platform: + aws: + additionalSecurityGroupIDs: + - sg-1 <1> + - sg-2 +platform: + aws: + region: us-west-2 +pullSecret: '{"auths": ...}' +sshKey: ssh-ed25519 AAAA... +---- +<1> Specify the name of the security group as it appears in the Amazon EC2 console, including the `sg` prefix. \ No newline at end of file diff --git a/modules/installation-aws-tested-machine-types.adoc b/modules/installation-aws-tested-machine-types.adoc index 3720f7385cb1..da8232abb3b4 100644 --- a/modules/installation-aws-tested-machine-types.adoc +++ b/modules/installation-aws-tested-machine-types.adoc @@ -9,11 +9,15 @@ // installing/installing_aws/installing-aws-user-infra.adoc // installing/installing_aws/installing-aws-vpc.adoc // installing/installing_aws/installing-restricted-networks-aws.adoc -// installing-aws-localzone +// installing/installing_aws/installing-aws-localzone.adoc +// installing/installing_aws/installing-aws-wavelength-zones.adoc ifeval::["{context}" == "installing-aws-localzone"] :localzone: endif::[] +ifeval::["{context}" == "installing-aws-wavelength"] +:wavelength: +endif::[] ifeval::["{context}" == "installing-aws-secret-region"] :secretregion: endif::[] @@ -22,25 +26,25 @@ endif::[] = Tested instance types for AWS The following Amazon Web Services (AWS) instance types have been tested with -ifndef::localzone[] +ifndef::localzone,wavelength[] {product-title}. -endif::localzone[] -ifdef::localzone[] -{product-title} for use with AWS Local Zones. -endif::localzone[] +endif::localzone,wavelength[] +ifdef::localzone,wavelength[] +{product-title} for use with {zone-name-full}. +endif::localzone,wavelength[] [NOTE] ==== Use the machine types included in the following charts for your AWS instances. If you use an instance type that is not listed in the chart, ensure that the instance size you use matches the minimum resource requirements that are listed in "Minimum resource requirements for cluster installation". ==== -ifndef::localzone,secretregion[] +ifndef::localzone,secretregion,wavelength[] .Machine types based on 64-bit x86 architecture [%collapsible] ==== include::https://raw.githubusercontent.com/openshift/installer/master/docs/user/aws/tested_instance_types_x86_64.md[] ==== -endif::localzone,secretregion[] +endif::localzone,secretregion,wavelength[] ifdef::localzone[] .Machine types based on 64-bit x86 architecture for AWS Local Zones [%collapsible] @@ -53,6 +57,14 @@ ifdef::localzone[] * `t3.*` ==== endif::localzone[] +ifdef::wavelength[] +.Machine types based on 64-bit x86 architecture for {zone-name-full} +[%collapsible] +==== +* `r5.*` +* `t3.*` +==== +endif::wavelength[] ifdef::secretregion[] .Machine types based on 64-bit x86 architecture for secret regions [%collapsible] @@ -68,9 +80,12 @@ ifdef::secretregion[] ==== endif::secretregion[] +ifeval::["{context}" == "installing-aws-wavelength"] +:!wavelength: +endif::[] ifeval::["{context}" == "installing-aws-localzone"] :!localzone: endif::[] ifeval::["{context}" == "installing-aws-secret-region"] :!secretregion: -endif::[] \ No newline at end of file +endif::[] diff --git a/modules/installation-cloudformation-subnet-localzone.adoc b/modules/installation-cloudformation-subnet-localzone.adoc index 689f52e682f9..3aaeb86143fa 100644 --- a/modules/installation-cloudformation-subnet-localzone.adoc +++ b/modules/installation-cloudformation-subnet-localzone.adoc @@ -5,17 +5,17 @@ :_mod-docs-content-type: REFERENCE [id="installation-cloudformation-subnet-localzone_{context}"] -= CloudFormation template for the subnet that uses AWS Local Zones += CloudFormation template for the subnet that uses {aws-service-name-full} You can use the following CloudFormation template to deploy the subnet that -you need for your {product-title} cluster that uses AWS Local Zones. +you need for your {product-title} cluster that uses {aws-service-name-full}. .CloudFormation template for the subnet [%collapsible] ==== [source,yaml] ---- -# CloudFormation template used to create Local Zone subnets and dependencies +# CloudFormation template used to create {aws-service-name-single} subnets and dependencies AWSTemplateFormatVersion: 2010-09-09 Description: Template for create Public Local Zone subnets diff --git a/modules/installation-cloudformation-vpc-carrier-gw.adoc b/modules/installation-cloudformation-vpc-carrier-gw.adoc new file mode 100644 index 000000000000..73d9c181ad09 --- /dev/null +++ b/modules/installation-cloudformation-vpc-carrier-gw.adoc @@ -0,0 +1,19 @@ +// Module included in the following assemblies: +// +// * installing/installing_aws/installing-aws-wavelength.adoc + +:_mod-docs-content-type: REFERENCE +[id="installation-cloudformation-vpc-carrier-gw_{context}"] += CloudFormation template for the VPC Carrier Gateway + +You can use the following CloudFormation template to deploy the Carrier +Gateway on AWS Wavelength infrastructure. + +.CloudFormation template for VPC Carrier Gateway +[%collapsible] +==== +[source,yaml] +---- +include::https://raw.githubusercontent.com/openshift/installer/master/upi/aws/cloudformation/01_vpc_01_carrier_gateway.yaml[] +---- +==== \ No newline at end of file diff --git a/modules/installation-cloudformation-vpc-localzone.adoc b/modules/installation-cloudformation-vpc-localzone.adoc index eb5f3f6e9138..8037624923a4 100644 --- a/modules/installation-cloudformation-vpc-localzone.adoc +++ b/modules/installation-cloudformation-vpc-localzone.adoc @@ -1,6 +1,7 @@ // Module included in the following assemblies: // // * installing/installing_aws/installing-aws-localzone.adoc +// * installing/installing_aws/installing-aws-wavelength.adoc :_mod-docs-content-type: REFERENCE [id="installation-cloudformation-vpc-localzone_{context}"] @@ -10,8 +11,10 @@ You can use the following CloudFormation template to deploy the VPC that you need for your {product-title} cluster. .CloudFormation template for the VPC + [%collapsible] ==== +ifdef::aws-localzones[] [source,yaml] ---- AWSTemplateFormatVersion: 2010-09-09 @@ -306,4 +309,11 @@ Outputs: Description: Public Route table ID Value: !Ref PublicRouteTable ---- +endif::aws-localzones[] +ifdef::aws-wavelength[] +[source,yaml] +---- +include::https://raw.githubusercontent.com/openshift/installer/master/upi/aws/cloudformation/01_vpc.yaml[] +---- +endif::aws-wavelength[] ==== diff --git a/modules/installation-cloudformation-vpc-subnets.adoc b/modules/installation-cloudformation-vpc-subnets.adoc new file mode 100644 index 000000000000..acdc098a116f --- /dev/null +++ b/modules/installation-cloudformation-vpc-subnets.adoc @@ -0,0 +1,20 @@ +// Module included in the following assemblies: +// +// * installing/installing_aws/installing-aws-localzone.adoc +// * post_installation_configuration/aws-compute-edge-tasks.adoc + +:_mod-docs-content-type: REFERENCE +[id="installation-cloudformation-vpc-subnets_{context}"] += CloudFormation template for the VPC Subnets + +You can use the following CloudFormation template to deploy the private +and public subnets in the zone on {aws-service-name-full}. + +.CloudFormation template for the VPC Subnets +[%collapsible] +==== +[source,yaml] +---- +include::https://raw.githubusercontent.com/openshift/installer/master/upi/aws/cloudformation/01_vpc_99_subnet.yaml[] +---- +==== \ No newline at end of file diff --git a/modules/installation-cluster-quickly-extend-workers.adoc b/modules/installation-cluster-quickly-extend-workers.adoc index 373329b614ba..e5b77441e5f6 100644 --- a/modules/installation-cluster-quickly-extend-workers.adoc +++ b/modules/installation-cluster-quickly-extend-workers.adoc @@ -5,6 +5,10 @@ :_mod-docs-content-type: CONCEPT [id="installation-cluster-quickly-extend-workers_{context}"] -= Install a cluster quickly in AWS Local Zones += Install a cluster quickly in {aws-service-name-full} -For {product-title} {product-version}, you can quickly install a cluster on Amazon Web Services (AWS) to extend compute nodes to Local Zone locations. By using this installation route, the installation program automatically creates network resources and Local Zone subnets for each Local Zone that you defined in your configuration file. To customize the installation, you must modify parameters in the `install-config.yaml` file before you deploy the cluster. +For {product-title} {product-version}, you can quickly install a cluster on Amazon Web Services (AWS) +to extend compute nodes to {aws-service-name-full} locations. By using this installation route, the installation +program automatically creates network resources and {aws-service-name-single} subnets for each {aws-service-name-single} +defined in the configuration file. To customize the installation, you must modify parameters in +the `install-config.yaml` file before you deploy the cluster. diff --git a/modules/installation-creating-aws-subnet-localzone.adoc b/modules/installation-creating-aws-subnet-localzone.adoc index 4ff5b6cea368..0105bb053b89 100644 --- a/modules/installation-creating-aws-subnet-localzone.adoc +++ b/modules/installation-creating-aws-subnet-localzone.adoc @@ -5,11 +5,12 @@ :_mod-docs-content-type: PROCEDURE [id="installation-creating-aws-subnet-localzone_{context}"] -= Creating a subnet in AWS Local Zones += Creating a subnet in {aws-service-name-full} -You must create a subnet in AWS Local Zones before you configure a worker machineset for your {product-title} cluster. +// Sounds like a lot of "mandatory to you". Can we improve this section? +You must create a subnet in {aws-service-name-full} before you configure a worker machineset for your {product-title} cluster. -You must repeat the following process for each Local Zone you want to deploy worker nodes to. +You must repeat the following process for each {aws-service-name-single} you want to deploy worker nodes to. You can use the provided CloudFormation template and a custom parameter file to create a stack of AWS resources that represent the subnet. @@ -25,8 +26,10 @@ have to contact Red Hat support with your installation logs. * You configured an AWS account. * You added your AWS keys and region to your local AWS profile by running `aws configure`. -* You opted in to the Local Zone group. +* You opted in to the {aws-service-name-single} group. +ifdef::aws-wavelength[] +endif::aws-wavelength[] .Procedure . Create a JSON file that contains the parameter values that the template @@ -61,8 +64,8 @@ requires: for the VPC. <2> Specify the Route Table ID, which is the value of the `PublicRouteTableId` in the CloudFormation stack for the VPC. -<3> Specify the AWS Local Zone name, which is the value of the `ZoneName` field in the `AvailabilityZones` object that you retrieve in the section "Opting in to AWS Local Zones". -<4> Specify a CIDR block that is used to create the Local Zone subnet. This block must be part of the VPC CIDR block `VpcCidr`. +<3> Specify the {aws-service-name-single} name, which is the value of the `ZoneName` field in the `AvailabilityZones` object that you retrieve in the section "Opting in to {aws-service-name-full:}". +<4> Specify a CIDR block that is used to create the {aws-service-name-single} subnet. This block must be part of the VPC CIDR block `VpcCidr`. . Copy the template from the *CloudFormation template for the subnet* section of this topic and save it as a YAML file on your computer. This template diff --git a/modules/installation-creating-aws-vpc-carrier-gw.adoc b/modules/installation-creating-aws-vpc-carrier-gw.adoc new file mode 100644 index 000000000000..2f0deb484e7b --- /dev/null +++ b/modules/installation-creating-aws-vpc-carrier-gw.adoc @@ -0,0 +1,74 @@ +// Module included in the following assemblies: +// +// * installing/installing_aws/installing-aws-wavelength.adoc + +:_mod-docs-content-type: PROCEDURE +[id="installation-creating-aws-vpc-carrier-gw_{context}"] += Creating a VPC Carrier Gateway + +You must create the Carrier Gateway and associate to the VPC before you use public subnets, +example worker nodes, in your {product-title} cluster on AWS. + +You can use the provided CloudFormation template and a custom parameter file to create a +stack of AWS resources. + +[NOTE] +==== +If you do not use the provided CloudFormation template to create your AWS +infrastructure, you must review the provided information and manually create +the infrastructure. If your cluster does not initialize correctly, you might +have to contact Red Hat support with your installation logs. +==== + +.Prerequisites + +* You configured an AWS account. +* You added your AWS keys and region to your local AWS profile by running `aws configure`. + +.Procedure + +. Copy the template from the *CloudFormation template for the subnet* +section of this topic and save it as a YAML file on your computer. This template +describes the VPC that your cluster requires. + +. Launch the CloudFormation template to create a stack of AWS resources that represent the VPC by running the following command: ++ +[IMPORTANT] +==== +You must enter the command on a single line. +==== ++ +[source,terminal] +---- +$ aws cloudformation create-stack --stack-name \ <1> + --region ${CLUSTER_REGION} \ + --template-body file://