-
Notifications
You must be signed in to change notification settings - Fork 1.9k
OSDOCS-4347: Account Information: installing-aws-localzone created from cloudformation #54535
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,117 @@ | ||||||||||||
| :_content-type: ASSEMBLY | ||||||||||||
| [id="installing-aws-localzone"] | ||||||||||||
| = Installing a cluster using AWS Local Zones | ||||||||||||
| include::_attributes/common-attributes.adoc[] | ||||||||||||
| :context: installing-aws-localzone | ||||||||||||
|
|
||||||||||||
| toc::[] | ||||||||||||
|
|
||||||||||||
| In {product-title} version {product-version}, you can install a cluster on Amazon Web Services (AWS) into an existing VPC, extending workers to the edge of the Cloud Infrastructure using AWS Local Zones. | ||||||||||||
|
|
||||||||||||
| AWS Local Zones are a type of infrastructure that place Cloud Resources close to the 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]. | ||||||||||||
|
|
||||||||||||
| {product-title} can be installed in existing VPCs with Local Zone subnets. The Local Zone subnets can be used to extend the regular workers' nodes to the edge networks. The edge worker nodes are dedicated to running user workloads. | ||||||||||||
|
|
||||||||||||
| One way to create the VPC and subnets is to use the provided CloudFormation templates. You can modify the templates to customize your infrastructure or use the information that they contain to create AWS objects according to your company's policies. | ||||||||||||
|
|
||||||||||||
| [IMPORTANT] | ||||||||||||
| ==== | ||||||||||||
| The steps for performing an installer-provisioned infrastructure installation are provided as an example only. Installing a cluster with VPC you provide requires knowledge of the cloud provider and the installation process of {product-title}. The CloudFormation templates are provided to assist in completing these steps or to help model your own. You are also free to create the required resources through other methods; the templates are just an example. | ||||||||||||
|
||||||||||||
| The steps for performing an installer-provisioned infrastructure installation are provided as an example only. Installing a cluster with VPC you provide requires knowledge of the cloud provider and the installation process of {product-title}. The CloudFormation templates are provided to assist in completing these steps or to help model your own. You are also free to create the required resources through other methods; the templates are just an example. | |
| The steps for performing an installer-provisioned infrastructure installation are provided as an example only. Installing a cluster with a VPC you provide requires knowledge of the cloud provider and the installation process of {product-title}. The CloudFormation templates are provided to assist in completing these steps or to help model your own. You are also free to create the required resources through other methods; the templates are just an example. |
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Suggested adding LZ references:
| ==== | |
| ==== | |
| * You xref:../../installing/installing_aws/installing-aws-account.adoc#installing-aws-account[configured an AWS account] to host the cluster | |
| * You noted the Region and supported [AWS Local Zones locations](https://aws.amazon.com/about-aws/global-infrastructure/localzones/locations) to create the network resources | |
| * You read the [Features](https://aws.amazon.com/about-aws/global-infrastructure/localzones/features/) for each AWS Local Zones location |
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This link redirects to https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html and best I can tell, this page does not have steps to install the AWS CLI.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm going to use https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html. This link is used in five other places in the repo.
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It will be nice to have the instances c5d.* and r5d.* validated to Local Zones, as some zones in the US are limited in terms of instance types.
Is it could be something to track after this PR?
https://aws.amazon.com/about-aws/global-infrastructure/localzones/features
cc @kalexand-rh
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The types supported by Local Zone are not the same to this list, only few instance types are available [1] in Local Zone, and the types supported by each Local Zone are also different. At present, only m5.xlarge are tested by QE.
I would suggest remove this section or adding a new list for Local Zone separately.
@patrickdillon @mtulio WDYT?
[1] https://aws.amazon.com/about-aws/global-infrastructure/localzones/features/?pg=localzones
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The types supported by Local Zone are not the same to this list, only few instance types are available [1] in Local Zone, and the types supported by each Local Zone are also different. At present, only
m5.xlargeare tested by QE. I would suggest remove this section or adding a new list for Local Zone separately.@patrickdillon @mtulio WDYT?
[1] https://aws.amazon.com/about-aws/global-infrastructure/localzones/features/?pg=localzones
@yunjiang29 I agree to add a separate list. I would suggest validating at least three instance types. Some time ago I exported[1] the matrix of instances supported. As the instances can vary between zones, I'd suggest to validated those instances:
m5.xlargem5.2xlargec5d.2xlarget3.xlarge
[1] https://gist.github.com/mtulio/c98aa15128a7becb06a372f00d824c42
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mtulio To be clear, supported doesn't equal to tested, for example, there are tons of instance types in various AWS regions, but we just tested some of them which are listed in the documentation. (that's why we call it Tested instance types for AWS, but user can use any instance types which meet minimum resource requirements )
I will do validation on above instance types, and create PR on installer side to add a new list next Monday, so that this PR can include it. Following the current rule, the list would be:
m5.*
c5d.*
t3.*
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For now, I'm making a manual edit to show m5.xlarge, since that is true right now, and we can replace the list as soon as that PR clears.
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@kalexand-rh Thanks for providing this module. Although, this module has one step that I think is not correct to the create cluster. The Procedure 2 and 3 seems to be unnecessary.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we can add a few resources here, something like:
- "Opt in to Local Zones"
- Local Zones available locations https://aws.amazon.com/about-aws/global-infrastructure/localzones/locations
- Local Zones features https://aws.amazon.com/about-aws/global-infrastructure/localzones/features
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm moving these links down to the == Additional resources section down a few lines because they apply to the whole document.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@kalexand-rh @GroceryBoyJr
I am thinking if we need to provide a section, or reference, of deploying a simple app in Local Zone worker nodes, which require the user to define the tolerations on the deployment spec. I will check if we have something in our documentation to make the reference. Let me know if you consider it a requirement for now or we can patch it later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mtulio, I think that we can patch that in after GA. Let me know if you have a reference doc, and I'll make an issue to track the work.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,57 @@ | ||
| // Module included in the following assemblies: | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I can't see this document on the rendered web page: https://54535--docspreview.netlify.app/openshift-enterprise/latest/installing/installing_aws/installing-aws-localzone.html
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I found it became a section in the AWS Account Setup. Is it expected? It seems to be confusing for the users who want to follow the user guide. As it is used only for Local Zones, does it make sense to keep it on the Local Zone installing guide?
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We have the rest of the account configuration options in the other topic and a note about when users would need to do it. I'm not opposed to moving it to the installation topic, though. |
||
| // | ||
| // * installing/installing_aws/installing-aws-localzone.adoc | ||
|
|
||
| :_content-type: PROCEDURE | ||
| [id="installation-aws-add-local-zone-locations_{context}"] | ||
| = Opting into AWS Local Zones | ||
|
||
|
|
||
| If you plan to create the subnets in AWS Local Zones, you must opt in to each zone group separately. | ||
|
|
||
| .Prerequisites | ||
|
|
||
| * You have installed the AWS CLI. | ||
| * You have determined into which region you will deploy your {product-title} cluster. | ||
|
|
||
| .Procedure | ||
|
|
||
| . Export a variable to contain the name of the region in which you plan to deploy your {product-title} cluster by running the following command: | ||
| + | ||
| [source,terminal] | ||
| ---- | ||
| $ export CLUSTER_REGION="<region_name>" <1> | ||
| ---- | ||
| <1> For `<region_name>`, specify a valid AWS region name, such as `us-east-1`. | ||
|
|
||
| . Review the list of zones that your region contains by running the following command: | ||
| + | ||
| [source,terminal] | ||
| ---- | ||
| $ aws ec2 describe-availability-zones \ | ||
| --filters Name=region-name,Values=${CLUSTER_REGION} \ | ||
| --query 'AvailabilityZones[].ZoneName' \ | ||
| --all-availability-zones | ||
| ---- | ||
| + | ||
| Depending on the region, the list of available zones can be long. The different zones use the following naming conventions: | ||
| + | ||
| `${REGION}[a-z]`:: Availability zones available in the region. | ||
| `${REGION}-LID-N[a-z]`:: Available AWS Local Zones. `${REGION}LID-N` is the zone group identifier, and `[a-z]` is the zone identifier. | ||
| `${REGION}-wl1-LID-wlz-[1-9]`:: Available Wavelength zones. | ||
|
|
||
| . Export a variable to contain the name of the Local Zone to host your VPC by running the following command: | ||
| + | ||
| [source,terminal] | ||
| ---- | ||
| $ export ZONE_GROUP_NAME="${CLUSTER_REGION}-<location_identifier>-<zone_identifier>" <1> | ||
| ---- | ||
| <1> For `<location_identifier>-<zone_identifier>`, specify the location identifier and zone identifier for the Local Zone that you selected for your region. For example, specify `nyc-1a` to use the US East (New York) Local Zone. | ||
|
|
||
| . Opt in to the zone group on your AWS account by running the following command: | ||
| + | ||
| [source,terminal] | ||
| ---- | ||
| $ aws ec2 modify-availability-zone-group \ | ||
| --group-name "${ZONE_GROUP_NAME}" \ | ||
| --opt-in-status opted-in | ||
| ---- | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -9,18 +9,42 @@ | |
| // installing/installing_aws/installing-aws-vpc.adoc | ||
| // installing/installing_aws/installing-restricted-networks-aws.adoc | ||
|
|
||
| ifeval::["{context}" == "installing-aws-localzone"] | ||
| :localzone: | ||
| endif::[] | ||
|
|
||
| [id="installation-aws-tested-machine-types_{context}"] | ||
| = Tested instance types for AWS | ||
|
|
||
| The following Amazon Web Services (AWS) instance types have been tested with {product-title}. | ||
| The following Amazon Web Services (AWS) instance types have been tested with | ||
| ifndef::localzone[] | ||
| {product-title}. | ||
| endif::localzone[] | ||
| ifdef::localzone[] | ||
| {product-title} for use with AWS Local Zones. | ||
| endif::localzone[] | ||
|
|
||
|
|
||
| [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". | ||
| 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[] | ||
| .Machine types based on x86_64 architecture | ||
| [%collapsible] | ||
| ==== | ||
| include::https://raw.githubusercontent.com/openshift/installer/master/docs/user/aws/tested_instance_types_x86_64.md[] | ||
| ==== | ||
| endif::localzone[] | ||
| ifdef::localzone[] | ||
| .Machine types based on x86_64 architecture for AWS Local Zones | ||
| [%collapsible] | ||
| ==== | ||
| * `m5.xlarge` | ||
|
||
| ==== | ||
| endif::localzone[] | ||
|
|
||
| ifeval::["{context}" == "installing-aws-localzone"] | ||
| :!localzone: | ||
| endif::[] | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,74 @@ | ||
| // Module included in the following assemblies: | ||
| // | ||
| // * installing/installing_aws/installing-aws-localzone.adoc | ||
|
|
||
|
||
| :_content-type: REFERENCE | ||
| [id="installation-cloudformation-subnet-localzone_{context}"] | ||
| = CloudFormation template for the subnet that uses AWS Local Zones | ||
|
|
||
| You can use the following CloudFormation template to deploy the subnet that | ||
| you need for your {product-title} cluster that uses AWS Local Zones. | ||
|
||
|
|
||
| .CloudFormation template for the subnet | ||
| [%collapsible] | ||
| ==== | ||
| [source,yaml] | ||
| ---- | ||
|
||
| # CloudFormation template used to create Local Zone subnets and dependencies | ||
| AWSTemplateFormatVersion: 2010-09-09 | ||
| Description: Template for Best Practice VPC with 1-3 AZs | ||
|
|
||
| Parameters: | ||
| ClusterName: | ||
| Description: ClusterName used to prefix resource names | ||
| Type: String | ||
| VpcId: | ||
| Description: VPC Id | ||
| Type: String | ||
| LocalZoneName: | ||
| Description: Local Zone Name (Example us-east-1-bos-1) | ||
| Type: String | ||
| LocalZoneNameShort: | ||
| Description: Short name for Local Zone used on tag Name (Example bos1) | ||
| Type: String | ||
| PublicRouteTableId: | ||
|
||
| Description: Public Route Table ID to associate the Local Zone subnet | ||
| Type: String | ||
| PublicSubnetCidr: | ||
| AllowedPattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-4]))$ | ||
| ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-24. | ||
| Default: 10.0.128.0/20 | ||
| Description: CIDR block for Public Subnet | ||
| Type: String | ||
|
|
||
| Resources: | ||
| PublicSubnet: | ||
| Type: "AWS::EC2::Subnet" | ||
| Properties: | ||
| VpcId: !Ref VpcId | ||
| CidrBlock: !Ref PublicSubnetCidr | ||
| AvailabilityZone: !Ref LocalZoneName | ||
| Tags: | ||
| - Key: Name | ||
| Value: !Join | ||
| - "" | ||
| - [ !Ref ClusterName, "-public-", !Ref LocalZoneNameShort, "-1" ] | ||
| - Key: kubernetes.io/cluster/unmanaged | ||
| Value: "true" | ||
|
|
||
| PublicSubnetRouteTableAssociation: | ||
| Type: "AWS::EC2::SubnetRouteTableAssociation" | ||
| Properties: | ||
| SubnetId: !Ref PublicSubnet | ||
| RouteTableId: !Ref PublicRouteTableId | ||
|
|
||
| Outputs: | ||
| PublicSubnetIds: | ||
| Description: Subnet IDs of the public subnets. | ||
| Value: | ||
| !Join [ | ||
| "", | ||
| [!Ref PublicSubnet] | ||
| ] | ||
| ---- | ||
| ==== | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a statement that typically appears in UPI doc. Is the use of
installer-provisioned infrastructureintentional?Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. This is IPI not UPI. However, it does use some CF templates to make the VPC and subnets. Unlike the UPI methods, the installation program still stands up all the machines. The VPC and subnet data is added to a custom Kubernetes manifest for the workers to get it done. I think the note still holds.