:_mod-docs-content-type: ASSEMBLY
[id="installing-restricted-networks-aws"]
= Installing a cluster on {aws-short} in a disconnected environment with user-provisioned infrastructure
include::_attributes/common-attributes.adoc[]
:context: installing-restricted-networks-aws

toc::[]

[role="_abstract"]
In {product-title} version {product-version}, you can install a cluster on {aws-first} using infrastructure that you provide and
an internal mirror of the installation release content.

[IMPORTANT]
====
While you can install an {product-title} cluster by using mirrored installation release content, your cluster still requires internet access to use the {aws-short} APIs.
====

One way to create this infrastructure 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-short} objects according to your company's policies.

[IMPORTANT]
====
The steps for performing a user-provisioned infrastructure installation are provided as an example only. Installing a cluster with infrastructure you provide requires knowledge of the cloud provider and the installation process of {product-title}. Several 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.
====

include::modules/installing-aws-upi-restricted-prereqs.adoc[leveloffset=+1]

[role="_additional-resources"]
.Additional resources

* xref:../../../architecture/architecture-installation.adoc#architecture-installation[Installation and update]
* xref:../../../installing/overview/installing-preparing.adoc#installing-preparing[Selecting a cluster installation method and preparing it for users]
* xref:../../../disconnected/installing-mirroring-installation-images.adoc#installing-mirroring-installation-images[Mirroring images for a disconnected installation]
* xref:../../../installing/installing_aws/installing-aws-account.adoc#installing-aws-account[Configuring an {aws-short} account]
* link:https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html[Managing access keys for IAM users ({aws-short} documentation)]
* xref:../../../installing/installing_aws/upi/upi-aws-installation-reqs#upi-aws-installation-reqs[Requirements for a cluster with user-provisioned infrastructure on {aws-short}]
* link:https://docs.aws.amazon.com/cli/latest/userguide/install-bundle.html[Install the {aws-short} CLI Using the Bundled Installer (Linux, macOS, or UNIX) ({aws-short} documentation)]
* xref:../../../installing/install_config/configuring-firewall.adoc#configuring-firewall[Configuring your firewall]
* xref:../../../installing/installing_aws/ipi/installing-aws-customizations.adoc#manually-create-iam_installing-aws-customizations[Manually creating long-term credentials]

include::modules/installation-about-restricted-network.adoc[leveloffset=+1]

//You extract the installation program from the mirrored content.

include::modules/installation-user-infra-generate.adoc[leveloffset=+1]

include::modules/installation-disk-partitioning-upi-templates.adoc[leveloffset=+2]

include::modules/installation-generate-aws-user-infra-install-config.adoc[leveloffset=+2]

[role="_additional-resources"]
.Additional resources

* link:https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html[Configuration and credential file settings ({aws-short} documentation)]

include::modules/installation-configure-proxy.adoc[leveloffset=+2]

//include::modules/installation-three-node-cluster.adoc[leveloffset=+2]

// Creating the Kubernetes manifest and Ignition config files
include::modules/installation-user-infra-generate-k8s-manifest-ignition.adoc[leveloffset=+2]

[role="_additional-resources"]
.Additional resources
* xref:../../../installing/installing_aws/ipi/installing-restricted-networks-aws-installer-provisioned.adoc#manually-create-iam_installing-restricted-networks-aws-installer-provisioned[Manually creating long-term credentials]

include::modules/installation-extracting-infraid.adoc[leveloffset=+1]

include::modules/installation-creating-aws-vpc.adoc[leveloffset=+1]

include::modules/installation-cloudformation-vpc.adoc[leveloffset=+2]

include::modules/installation-creating-aws-dns.adoc[leveloffset=+1]

include::modules/installation-cloudformation-dns.adoc[leveloffset=+2]

[role="_additional-resources"]
.Additional resources

* link:https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ListInfoOnHostedZone.html[Listing public hosted zones({aws-short} documentation)]

include::modules/installation-creating-aws-security.adoc[leveloffset=+1]

include::modules/installation-cloudformation-security.adoc[leveloffset=+2]

include::modules/installation-aws-ami-stream-metadata.adoc[leveloffset=+1]

include::modules/installation-aws-user-infra-rhcos-ami.adoc[leveloffset=+1]

include::modules/installation-creating-aws-bootstrap.adoc[leveloffset=+1]

include::modules/installation-cloudformation-bootstrap.adoc[leveloffset=+2]

[role="_additional-resources"]
.Additional resources

* xref:../../../installing/installing_aws/upi/installing-aws-user-infra.adoc#installation-aws-user-infra-rhcos-ami_installing-aws-user-infra[{op-system} AMIs for the {aws-short} infrastructure ({aws-short} documentation)]

include::modules/installation-creating-aws-control-plane.adoc[leveloffset=+2]

include::modules/installation-cloudformation-control-plane.adoc[leveloffset=+2]

include::modules/installation-creating-aws-worker.adoc[leveloffset=+1]

////
[id="installing-workers-aws-user-infra"]
== Creating worker nodes

You can either manually create worker nodes or use a MachineSet to create worker nodes after the cluster deploys. If you use a MachineSet to create and maintain the workers, you can allow the cluster to manage them. This allows you to easily scale, manage, and upgrade your workers.
////

include::modules/installation-cloudformation-worker.adoc[leveloffset=+2]

include::modules/installation-aws-creating-cloudformation-stack-compute.adoc[leveloffset=+2]

include::modules/installation-aws-user-infra-bootstrap.adoc[leveloffset=+1]

[role="_additional-resources"]
.Additional resources

* xref:../../../support/troubleshooting/troubleshooting-installations.adoc#monitoring-installation-progress_troubleshooting-installations[Monitoring installation progress]

* xref:../../../support/troubleshooting/troubleshooting-installations.adoc#gathering-bootstrap-diagnostic-data_troubleshooting-installations[Gathering bootstrap node diagnostic data]

//You can install the CLI on the mirror host.

include::modules/installation-approve-csrs.adoc[leveloffset=+1]

include::modules/installation-operators-config.adoc[leveloffset=+1]

include::modules/olm-restricted-networks-configuring-operatorhub.adoc[leveloffset=+2]

include::modules/installation-registry-storage-config.adoc[leveloffset=+2]

include::modules/registry-configuring-storage-aws-user-infra.adoc[leveloffset=+3]

include::modules/installation-registry-storage-non-production.adoc[leveloffset=+3]

include::modules/installation-aws-user-infra-delete-bootstrap.adoc[leveloffset=+1]

include::modules/installation-create-ingress-dns-records.adoc[leveloffset=+1]

include::modules/installation-aws-user-infra-installation.adoc[leveloffset=+1]

include::modules/cli-logging-in-kubeadmin.adoc[leveloffset=+1]

include::modules/logging-in-by-using-the-web-console.adoc[leveloffset=+1]

[role="_additional-resources"]
.Additional resources

* xref:../../../web_console/web-console.adoc#web-console[Accessing the web console]

* xref:../../../support/remote_health_monitoring/about-remote-health-monitoring.adoc#about-remote-health-monitoring[About remote health monitoring]

* link:https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html[Managing {aws-short} resources as a single unit with CloudFormation stacks ({aws-short} documentation)]

* xref:../../../installing/validation_and_troubleshooting/validating-an-installation.adoc#validating-an-installation[Validating an installation]

* xref:../../../post_installation_configuration/cluster-tasks.adoc#available_cluster_customizations[Customizing your cluster]

* xref:../../../post_installation_configuration/cluster-tasks.adoc#post-install-must-gather-disconnected[Configuring image streams]

* xref:../../../disconnected/using-olm.adoc#olm-restricted-networks[Using Operator Lifecycle Manager in disconnected environments]

* xref:../../../openshift_images/image-configuration.adoc#images-configuration-cas_image-configuration[Image configuration resources]

* xref:../../../support/remote_health_monitoring/remote-health-reporting.adoc#remote-health-reporting[Remote health reporting]

* xref:../../../post_installation_configuration/changing-cloud-credentials-configuration.adoc#manually-removing-cloud-creds_changing-cloud-credentials-configuration[Changing the cloud provider credentials configuration]
