:_mod-docs-content-type: ASSEMBLY
[id="installing-bare-metal-network-customizations"]
= Installing a user-provisioned bare metal cluster with network customizations
include::_attributes/common-attributes.adoc[]
:context: installing-bare-metal-network-customizations

toc::[]

In {product-title} {product-version}, you can install a cluster on bare
metal infrastructure that you provision with customized network configuration
options. By customizing your network configuration, your cluster can coexist
with existing IP address allocations in your environment and integrate with
existing MTU and VXLAN configurations.

When you customize {product-title} networking, you must set most of the network configuration parameters during installation. You can modify only `kubeProxy` network configuration parameters in a running
cluster.

== 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/overview/installing-preparing.adoc#installing-preparing[selecting a cluster installation method and preparing it for users].
* If you use a firewall and plan to use the Telemetry service, you xref:../../../installing/install_config/configuring-firewall.adoc#configuring-firewall[configured the firewall to allow the sites] that your cluster requires access to.

include::modules/cluster-entitlements.adoc[leveloffset=+1]

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

* See xref:../../../installing/installing_bare_metal/upi/installing-restricted-networks-bare-metal.adoc#installing-restricted-networks-bare-metal[Installing a user-provisioned bare metal cluster on a restricted network] for more information about performing a restricted network installation on bare metal infrastructure that you provision.

[id="installation-requirements-user-infra_{context}"]
== Requirements for a cluster with user-provisioned infrastructure

For a cluster that contains user-provisioned infrastructure, you must deploy all
of the required machines.

This section describes the requirements for deploying {product-title} on user-provisioned infrastructure.

include::modules/installation-machine-requirements.adoc[leveloffset=+2]

include::modules/installation-minimum-resource-requirements.adoc[leveloffset=+2]

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

* xref:../../../scalability_and_performance/optimization/optimizing-storage.adoc#optimizing-storage[Optimizing storage]

include::modules/csr-management.adoc[leveloffset=+2]

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

* See xref:../../../installing/installing_bare_metal/upi/installing-bare-metal.adoc#installation-three-node-cluster_installing-bare-metal[Configuring a three-node cluster] for details about deploying three-node clusters in bare metal environments.
* See xref:../../../installing/installing_bare_metal/upi/installing-bare-metal-network-customizations.adoc#installation-approve-csrs_installing-bare-metal-network-customizations[Approving the certificate signing requests for your machines] for more information about approving cluster certificate signing requests after installation.

// Networking requirements for user-provisioned infrastructure
include::modules/installation-network-user-infra.adoc[leveloffset=+2]

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

* xref:../../../installing/install_config/installing-customizing.adoc#installation-special-config-chrony_installing-customizing[Configuring chrony time service]

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

* xref:../../../installing/installing_bare_metal/upi/installing-bare-metal-network-customizations.adoc#installation-user-provisioned-validating-dns_installing-bare-metal-network-customizations[Validating DNS resolution for user-provisioned infrastructure]

include::modules/installation-load-balancing-user-infra.adoc[leveloffset=+2]

// Creating a manifest object that includes a customized `br-ex` bridge
include::modules/creating-manifest-file-customized-br-ex-bridge.adoc[leveloffset=+1]

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

* xref:../../../networking/ovn_kubernetes_network_provider/converting-to-dual-stack.adoc#nw-dual-stack-convert_converting-to-dual-stack[Converting to a dual-stack cluster network]

* xref:../../../installing/installing_bare_metal/bare-metal-expanding-the-cluster.adoc#bare-metal-expanding-the-cluster[Expanding the cluster]

// Scale each machine set to compute nodes
include::modules/creating-scaling-machine-sets-compute-nodes-networking.adoc[leveloffset=+2]

// Enabling OVS balance-slb mode for your cluster
include::modules/enabling-OVS-balance-slb-mode.adoc[leveloffset=+1]

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

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

* xref:../../../installing/installing_bare_metal/upi/installing-bare-metal-network-customizations.adoc#creating-machines-bare-metal_installing-bare-metal-network-customizations[Installing {op-system} and starting the {product-title} bootstrap process]
* xref:../../../installing/installing_bare_metal/upi/installing-bare-metal-network-customizations.adoc#installation-host-names-dhcp-user-infra_installing-bare-metal-network-customizations[Setting the cluster node hostnames through DHCP]
* xref:../../../installing/installing_bare_metal/upi/installing-bare-metal-network-customizations.adoc#installation-user-infra-machines-advanced_installing-bare-metal-network-customizations[Advanced RHCOS installation configuration]
* xref:../../../installing/installing_bare_metal/upi/installing-bare-metal-network-customizations.adoc#installation-network-user-infra_installing-bare-metal-network-customizations[Networking requirements for user-provisioned infrastructure]
* xref:../../../installing/installing_bare_metal/upi/installing-bare-metal-network-customizations.adoc#installation-dns-user-infra_installing-bare-metal-network-customizations[User-provisioned DNS requirements]
* xref:../../../installing/installing_bare_metal/upi/installing-bare-metal-network-customizations.adoc#installation-user-provisioned-validating-dns_installing-bare-metal-network-customizations[Validating DNS resolution for user-provisioned infrastructure]
* xref:../../../installing/installing_bare_metal/upi/installing-bare-metal-network-customizations.adoc#installation-load-balancing-user-infra_installing-bare-metal-network-customizations[Load balancing requirements for user-provisioned infrastructure]

include::modules/installation-user-provisioned-validating-dns.adoc[leveloffset=+1]

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

* xref:../../../installing/installing_bare_metal/upi/installing-bare-metal-network-customizations.adoc#installation-dns-user-infra_installing-bare-metal-network-customizations[User-provisioned DNS requirements]
* xref:../../../installing/installing_bare_metal/upi/installing-bare-metal-network-customizations.adoc#installation-load-balancing-user-infra_installing-bare-metal-network-customizations[Load balancing requirements for user-provisioned infrastructure]

include::modules/ssh-agent-using.adoc[leveloffset=+1]

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

* xref:../../../support/troubleshooting/verifying-node-health.adoc#verifying-node-health[Verifying node health]

include::modules/installation-obtaining-installer.adoc[leveloffset=+1]

// Installing the OpenShift CLI on Linux
include::modules/cli-installing-cli-linux.adoc[leveloffset=+1]

// Installing the OpenShift CLI on Windows
include::modules/cli-installing-cli-windows.adoc[leveloffset=+1]

// Installing the OpenShift CLI on macOS
include::modules/cli-installing-cli-macos.adoc[leveloffset=+1]

include::modules/installation-initializing-manual.adoc[leveloffset=+1]

[role="_additional-resources"]
.Additional resources
* xref:../../../installing/installing_bare_metal/upi/installation-config-parameters-bare-metal.adoc#installation-config-parameters-bare-metal[Installation configuration parameters for bare metal]

include::modules/installation-bare-metal-config-yaml.adoc[leveloffset=+2]

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

* See xref:../../../installing/installing_bare_metal/upi/installing-bare-metal-network-customizations.adoc#installation-load-balancing-user-infra_installing-bare-metal-network-customizations[Load balancing requirements for user-provisioned infrastructure] for more information on the API and application ingress load balancing requirements.

// Network Operator specific configuration
include::modules/nw-network-config.adoc[leveloffset=+1]

include::modules/nw-modifying-operator-install-config.adoc[leveloffset=+1]

include::modules/nw-operator-cr.adoc[leveloffset=+1]

include::modules/installation-generate-ignition-configs.adoc[leveloffset=+1]

include::modules/creating-machines-bare-metal.adoc[leveloffset=+1]

include::modules/installation-user-infra-machines-iso.adoc[leveloffset=+2]

include::modules/installation-user-infra-machines-pxe.adoc[leveloffset=+2]

include::modules/installation-user-infra-machines-advanced.adoc[leveloffset=+2]

include::modules/installation-user-infra-machines-advanced-console-configuration.adoc[leveloffset=+3]

include::modules/installation-user-infra-machines-advanced-enabling-serial-console.adoc[leveloffset=+3]

include::modules/installation-user-infra-machines-advanced-customizing-iso-or-pxe.adoc[leveloffset=+3]

:boot-media: ISO image
:boot: iso
include::modules/installation-user-infra-machines-advanced-customizing-live.adoc[leveloffset=+3]

include::modules/installation-user-infra-machines-advanced-customizing-live-serial-console.adoc[leveloffset=+4]

include::modules/installation-user-infra-machines-advanced-customizing-live-ca-certs.adoc[leveloffset=+4]

include::modules/installation-user-infra-machines-advanced-customizing-live-network-config.adoc[leveloffset=+4]

include::modules/installation-user-infra-machines-advanced-customizing-live-iscsi-manual.adoc[leveloffset=+4]

include::modules/installation-user-infra-machines-advanced-customizing-live-iscsi-ibft.adoc[leveloffset=+4]

:boot-media!:
:boot!:

:boot-media: PXE environment
:boot: pxe
include::modules/installation-user-infra-machines-advanced-customizing-live.adoc[leveloffset=+3]

include::modules/installation-user-infra-machines-advanced-customizing-live-serial-console.adoc[leveloffset=+4]

include::modules/installation-user-infra-machines-advanced-customizing-live-ca-certs.adoc[leveloffset=+4]

include::modules/installation-user-infra-machines-advanced-customizing-live-network-config.adoc[leveloffset=+4]

include::modules/installation-user-infra-machines-advanced-customizing-live-iscsi-manual.adoc[leveloffset=+4]

include::modules/installation-user-infra-machines-advanced-customizing-live-iscsi-ibft.adoc[leveloffset=+4]

:boot-media!:
:boot!:

include::modules/installation-user-infra-machines-static-network.adoc[leveloffset=+3]

include::modules/rhcos-enabling-multipath.adoc[leveloffset=+2]

include::modules/rhcos-multipath-secondary-disk.adoc[leveloffset=+3]

//iscsi using `coreos-installer install`
include::modules/rhcos-install-iscsi-manual.adoc[leveloffset=+2]

include::modules/rhcos-install-iscsi-ibft.adoc[leveloffset=+2]

include::modules/installation-installing-bare-metal.adoc[leveloffset=+1]

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

* See xref:../../../support/troubleshooting/troubleshooting-installations.adoc#monitoring-installation-progress_troubleshooting-installations[Monitoring installation progress] for more information about monitoring the installation logs and retrieving diagnostic data if installation issues arise.

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

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

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

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

* See xref:../../../support/troubleshooting/troubleshooting-installations.adoc#installation-bootstrap-gather_troubleshooting-installations[Gathering logs from a failed installation] for details about gathering data in the event of a failed {product-title} installation.
* See xref:../../../support/troubleshooting/troubleshooting-operator-issues.adoc#troubleshooting-operator-issues[Troubleshooting Operator issues] for steps to check Operator pod health across the cluster and gather Operator logs for diagnosis.

include::modules/registry-removed.adoc[leveloffset=+2]

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

include::modules/installation-registry-storage-block-recreate-rollout-bare-metal.adoc[leveloffset=+2]

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

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

== Next steps

* 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[Customize your cluster].
* If necessary, you can
xref:../../../support/remote_health_monitoring/remote-health-reporting.adoc#remote-health-reporting[Remote health reporting].
* xref:../../../registry/configuring_registry_storage/configuring-registry-storage-baremetal.adoc#configuring-registry-storage-baremetal[Set up your registry and configure registry storage].
