// Module included in the following assemblies:
//
// * installing/overview/installing-preparing.adoc
//
// This file is a navigation file - xrefs are allowed in this type of module, but it must only ever be included from one location

:_mod-docs-content-type: REFERENCE
[id="installing-preparing-selecting-cluster-type_{context}"]
= Selecting a cluster installation type

[role="_abstract"]
Decide what kind of installation process to follow based on your infrastructure, experience, and security requirements.

Before you install an {product-title} cluster, you need to select the best installation instructions to follow. Think about your answers to the following questions to select the best option.

[id="installing-preparing-install-manage_{context}"]
== Do you want to install and manage an {product-title} cluster yourself?

If you want to install and manage {product-title} yourself, you can install it on the following platforms:

* Amazon Web Services (AWS) on 64-bit x86 instances
ifndef::openshift-origin[]
* Amazon Web Services (AWS) on 64-bit ARM instances
endif::openshift-origin[]
* Microsoft Azure on 64-bit x86 instances
* Microsoft Azure on 64-bit ARM instances
* Microsoft Azure Stack Hub
* {gcp-first} on 64-bit x86 instances
* {gcp-first} on 64-bit ARM instances
* {rh-openstack-first}
* {ibm-cloud-name}
* {ibm-z-name} or {ibm-linuxone-name} with z/VM
* {ibm-z-name} or {ibm-linuxone-name} with {op-system-base-full} KVM
* {ibm-z-name} or {ibm-linuxone-name} in an LPAR
* {ibm-power-name}
* {ibm-power-server-name}
* Nutanix
* VMware vSphere
* Bare metal or other platform agnostic infrastructure
// might want a note about single node here

You can deploy an {product-title} 4 cluster to both on-premise hardware and to cloud hosting services, but all of the machines in a cluster must be in the same data center or cloud hosting service.

If you want to use {product-title} but you do not want to manage the cluster yourself, you can choose from several managed service options. If you want a cluster that is fully managed by Red Hat, you can use link:https://www.openshift.com/products/dedicated/[OpenShift Dedicated]. You can also use OpenShift as a managed service on {azure-short}, {aws-short}, {ibm-cloud-name}, or {gcp-full}. For more information about managed services, see the link:https://www.openshift.com/products[OpenShift Products] page. If you install an {product-title} cluster with a cloud virtual machine as a virtual bare metal, the corresponding cloud-based storage is not supported.

[id="installing-preparing-migrate_{context}"]
== Have you used {product-title} 3 and want to use {product-title} 4?

If you used {product-title} 3 and want to try {product-title} 4, you need to understand how different {product-title} 4 is. {product-title} 4 weaves the Operators that package, deploy, and manage Kubernetes applications and the operating system that the platform runs on, {op-system-first}, together seamlessly. Instead of deploying machines and configuring their operating systems so that you can install {product-title} on them, the {op-system} operating system is an integral part of the {product-title} cluster. Deploying the operating system for the cluster machines is part of the installation process for {product-title}. See xref:../../migrating_from_ocp_3_to_4/planning-migration-3-4.adoc#migration-comparing-ocp-3-4[Differences between {product-title} 3 and 4].

Because you need to provision machines as part of the {product-title} cluster installation process, you cannot upgrade an {product-title} 3 cluster to {product-title} 4. Instead, you must create a new {product-title} 4 cluster and migrate your {product-title} 3 workloads to them. For more information about migrating, see xref:../../migrating_from_ocp_3_to_4/index.adoc#migration-from-version-3-to-4-overview[Migrating from {product-title} 3 to 4 overview]. Because you must migrate to {product-title} 4, you can use any type of production cluster installation process to create your new cluster.

[id="installing-preparing-existing-components_{context}"]
== Do you want to use existing components in your cluster?

Because the operating system is integral to {product-title}, it is easier to let the installation program for {product-title} stand up all of the infrastructure. These are called _installer provisioned infrastructure_ installations. In this type of installation, you can provide some existing infrastructure to the cluster, but the installation program deploys all of the machines that your cluster initially needs.

You can deploy an installer-provisioned infrastructure cluster without specifying any customizations to the cluster or its underlying machines to xref:../../installing/installing_aws/ipi/installing-aws-default.adoc#installing-aws-default[AWS], xref:../../installing/installing_azure/ipi/installing-azure-default.adoc#installing-azure-default[Azure], xref:../../installing/installing_azure_stack_hub/ipi/installing-azure-stack-hub-default.adoc#installing-azure-stack-hub-default[Azure Stack Hub], xref:../../installing/installing_gcp/installing-gcp-default.adoc#installing-gcp-default[{gcp-short}], xref:../../installing/installing_nutanix/installing-nutanix-installer-provisioned.adoc#installing-nutanix-installer-provisioned[Nutanix].

If you need to perform basic configuration for your installer-provisioned infrastructure cluster, such as the instance type for the cluster machines, you can customize an installation for xref:../../installing/installing_aws/ipi/installing-aws-customizations.adoc#installing-aws-customizations[AWS], xref:../../installing/installing_azure/ipi/installing-azure-customizations.adoc#installing-azure-customizations[Azure], xref:../../installing/installing_gcp/installing-gcp-customizations.adoc#installing-gcp-customizations[{gcp-short}], xref:../../installing/installing_nutanix/installing-nutanix-installer-provisioned.adoc#installing-nutanix-installer-provisioned[Nutanix].

For installer-provisioned infrastructure installations, you can use an existing xref:../../installing/installing_aws/ipi/installing-aws-vpc.adoc#installing-aws-vpc[VPC in AWS], xref:../../installing/installing_azure/ipi/installing-azure-vnet.adoc#installing-azure-vnet[vNet in Azure], or xref:../../installing/installing_gcp/installing-gcp-vpc.adoc#installing-gcp-vpc[VPC in {gcp-short}]. You can also reuse part of your networking infrastructure so that your cluster in xref:../../installing/installing_aws/ipi/installing-aws-customizations.adoc#installing-aws-customizations[AWS], xref:../../installing/installing_azure/ipi/installing-azure-customizations.adoc#installing-azure-customizations[Azure], xref:../../installing/installing_gcp/installing-gcp-customizations.adoc#installing-gcp-customizations[{gcp-short}] can coexist with existing IP address allocations in your environment and integrate with existing MTU and VXLAN configurations. If you have existing accounts and credentials on these clouds, you can re-use them, but you might need to modify the accounts to have the required permissions to install {product-title} clusters on them.

You can use the installer-provisioned infrastructure method to create appropriate machine instances on your hardware for xref:../../installing/installing_vsphere/ipi/installing-vsphere-installer-provisioned.adoc#installing-vsphere-installer-provisioned[vSphere], and xref:../../installing/installing_bare_metal/ipi/ipi-install-overview.adoc#ipi-install-overview[bare metal]. Additionally, for xref:../../installing/installing_vsphere/ipi/installing-vsphere-installer-provisioned-customizations.adoc#installing-vsphere-installer-provisioned-customizations[vSphere], you can also customize additional network parameters during installation.

For some installer-provisioned infrastructure installations, for example on the {vmw-first} and bare metal platforms, the external traffic that reaches the ingress virtual IP (VIP) is not balanced between the default `IngressController` replicas. For {vmw-short}  and bare-metal installer-provisioned infrastructure installations where exceeding the baseline `IngressController` router performance is expected, you must configure an external load balancer. Configuring an external load balancer achieves the performance of multiple `IngressController` replicas. For more information about the baseline `IngressController` performance, see xref:../../scalability_and_performance/optimization/routing-optimization.adoc#baseline-router-performance_routing-optimization[Baseline Ingress Controller (router) performance]. For more information about configuring an external load balancer, see xref:../../installing/installing_bare_metal/ipi/ipi-install-installation-workflow.adoc#nw-osp-configuring-external-load-balancer_ipi-install-installation-workflow[Configuring a user-managed load balancer].

If you want to reuse extensive cloud infrastructure, you can complete a _user-provisioned infrastructure_ installation. With these installations, you manually deploy the machines that your cluster requires during the installation process. If you perform a user-provisioned infrastructure installation on xref:../../installing/installing_aws/upi/installing-aws-user-infra.adoc#installing-aws-user-infra[AWS], xref:../../installing/installing_azure/upi/installing-azure-user-infra.adoc#installing-azure-user-infra[Azure], xref:../../installing/installing_azure_stack_hub/upi/installing-azure-stack-hub-user-infra.adoc#installing-azure-stack-hub-user-infra[Azure Stack Hub], you can use the provided templates to help you stand up all of the required components. You can also reuse a shared xref:../../installing/installing_gcp/installing-gcp-user-infra-vpc.adoc#installing-gcp-user-infra-vpc[VPC on {gcp-short}]. Otherwise, you can use the xref:../../installing/installing_platform_agnostic/installing-platform-agnostic.adoc#installing-platform-agnostic[provider-agnostic] installation method to deploy a cluster into other clouds.


You can also complete a user-provisioned infrastructure installation on your existing hardware. If you use xref:../../installing/installing_openstack/installing-openstack-user.adoc#installing-openstack-user[{rh-openstack}], xref:../../installing/installing_ibm_z/upi/installing-ibm-z.adoc#installing-ibm-z[{ibm-z-name} or {ibm-linuxone-name}], xref:../../installing/installing_ibm_z/upi/installing-ibm-z-kvm.adoc#installing-ibm-z-kvm[{ibm-z-name} and {ibm-linuxone-name} with {op-system-base} KVM], xref:../../installing/installing_ibm_z/upi/installing-ibm-z-lpar.adoc#installing-ibm-z-lpar[{ibm-z-name} and {ibm-linuxone-name} in an LPAR], xref:../../installing/installing_ibm_power/installing-ibm-power.adoc#installing-ibm-power[{ibm-power-title}], or xref:../../installing/installing_vsphere/upi/installing-vsphere.adoc#installing-vsphere[vSphere], use the specific installation instructions to deploy your cluster. If you use other supported hardware, follow the xref:../../installing/installing_bare_metal/upi/installing-bare-metal.adoc#installing-bare-metal[bare metal installation] procedure. For some of these platforms, such as xref:../../installing/installing_vsphere/upi/installing-vsphere.adoc#installing-vsphere[vSphere] and xref:../../installing/installing_bare_metal/upi/installing-bare-metal-network-customizations.adoc#installing-bare-metal-network-customizations[bare metal], you can also customize additional network parameters during installation.


[id="installing-preparing-security_{context}"]
== Do you need extra security for your cluster?

If you use a user-provisioned installation method, you can configure a proxy for your cluster. The instructions are included in each installation procedure.

If you want to prevent your cluster on a public cloud from exposing endpoints externally, you can deploy a private cluster with installer-provisioned infrastructure on xref:../../installing/installing_aws/ipi/installing-aws-private.adoc#installing-aws-private[AWS], xref:../../installing/installing_azure/ipi/installing-azure-private.adoc#installing-azure-private[Azure], or xref:../../installing/installing_gcp/installing-gcp-private.adoc#installing-gcp-private[{gcp-short}].

If you need to install your cluster that has limited access to the internet, such as a disconnected or restricted network cluster, you can xref:../../disconnected/installing-mirroring-installation-images.adoc#installing-mirroring-installation-images[mirror the installation packages] and install the cluster from them. Follow detailed instructions for user-provisioned infrastructure installations into restricted networks for xref:../../installing/installing_aws/upi/installing-restricted-networks-aws.adoc#installing-restricted-networks-aws[AWS], xref:../../installing/installing_gcp/installing-restricted-networks-gcp.adoc#installing-restricted-networks-gcp[{gcp-short}], xref:../../installing/installing_ibm_z/upi/installing-restricted-networks-ibm-z.adoc#installing-restricted-networks-ibm-z[{ibm-z-name} or {ibm-linuxone-name}], xref:../../installing/installing_ibm_z/upi/installing-restricted-networks-ibm-z-kvm.adoc#installing-restricted-networks-ibm-z-kvm[{ibm-z-name} or {ibm-linuxone-name} with {op-system-base} KVM], xref:../../installing/installing_ibm_z/upi/installing-restricted-networks-ibm-z-lpar.adoc#installing-restricted-networks-ibm-z-lpar[{ibm-z-name} or {ibm-linuxone-name} in an LPAR], xref:../../installing/installing_ibm_power/installing-restricted-networks-ibm-power.adoc#installing-restricted-networks-ibm-power[{ibm-power-name}], xref:../../installing/installing_vsphere/upi/installing-restricted-networks-vsphere.adoc#installing-restricted-networks-vsphere[vSphere], or xref:../../installing/installing_bare_metal/upi/installing-restricted-networks-bare-metal.adoc#installing-restricted-networks-bare-metal[bare metal]. You can also install a cluster into a restricted network by using installer-provisioned infrastructure by following detailed instructions for xref:../../installing/installing_aws/ipi/installing-restricted-networks-aws-installer-provisioned.adoc#installing-restricted-networks-aws-installer-provisioned[AWS], xref:../../installing/installing_gcp/installing-restricted-networks-gcp-installer-provisioned.adoc#installing-restricted-networks-gcp-installer-provisioned[{gcp-short}], xref:../../installing/installing_ibm_cloud/installing-ibm-cloud-restricted.adoc#installing-ibm-cloud-restricted[{ibm-cloud-name}], xref:../../installing/installing_nutanix/installing-restricted-networks-nutanix-installer-provisioned.adoc#installing-restricted-networks-nutanix-installer-provisioned[Nutanix], xref:../../installing/installing_openstack/installing-openstack-installer-restricted.adoc#installing-openstack-installer-restricted[{rh-openstack}], and xref:../../installing/installing_vsphere/ipi/installing-restricted-networks-installer-provisioned-vsphere.adoc#installing-restricted-networks-installer-provisioned-vsphere[vSphere].


If you need to deploy your cluster to an xref:../../installing/installing_aws/ipi/installing-aws-specialized-region.adoc#installing-aws-specialized-region[AWS GovCloud region], xref:../../installing/installing_aws/ipi/installing-aws-specialized-region.adoc#installing-aws-specialized-region[AWS China region], or xref:../../installing/installing_azure/ipi/installing-azure-government-region.adoc#installing-azure-government-region[Azure government region], you can configure those custom regions during an installer-provisioned infrastructure installation.

ifndef::openshift-origin[]
You can also configure the cluster machines to use the {op-system-base} cryptographic libraries that have been submitted to NIST for xref:../../installing/overview/installing-fips.adoc#installing-fips[FIPS 140-2/140-3 Validation] during installation.

[IMPORTANT]
====
When running {op-system-base-full} or {op-system-first} booted in FIPS mode, {product-title} core components use the {op-system-base} cryptographic libraries that have been submitted to NIST for FIPS 140-2/140-3 Validation on only the x86_64, ppc64le, and s390x architectures.
====

endif::[]

////
[id="installing-preparing-single-node_{context}"]
== Are you installing single-node clusters at the edge?

You can use the assisted installer to deploy xref:../../installing/installing_sno/install-sno-installing-sno.adoc#installing-sno[single node] clusters for edge workloads.
////
