// Module included in the following assemblies:
//
// * scalability_and_performance/telco_core_ref_design_specs/telco-core-rds.adoc

:_mod-docs-content-type: REFERENCE
[id="telco-hub-managed-cluster-deployment_{context}"]
= Managed cluster deployment

[role="_abstract"]
Description::
As of {rh-rhacm-first} 2.12, using the SiteConfig Operator is the recommended method for deploying managed clusters.
The SiteConfig Operator introduces a unified ClusterInstance API that decouples the parameters that define the cluster from the manner in which it is deployed.
The SiteConfig Operator uses a set of cluster templates that are instantiated using the data from a `ClusterInstance` custom resource (CR) to dynamically generate installation manifests.
Following the GitOps methodology, the `ClusterInstance` CR is sourced from a Git repository through ArgoCD.
The `ClusterInstance` CR can be used to initiate cluster installation by using either Assisted Installer, or the image-based installation available in multicluster engine.

Limits and requirements::
* The `SiteConfig` ArgoCD plugin which handles `SiteConfig` CRs is removed from {product-title} 4.21.
From this release, use `ClusterInstance` CRs to define managed cluster deployments.
* An HTTP server hosting the root filesystem and RHCOS live ISO images is required for cluster deployment. 
These images are release specific.
ISO images for each {product-title} release to be deployed must be reachable by the hub cluster and each deployed spoke cluster.
Only include ISO images which exist on the HTTP server in the `AgentServiceConfig` CR.
* A container registry hosting all {product-title} and day-2 OLM operator images must be reachable from all deployed spoke clusters.
The hub configuration includes Kustomize overlays which you can use to provide the TLS certificates and credentials for a disconnected container registry.

Engineering considerations::
* You must create a `Secret` CR with the login information for the cluster baseboard management controller (BMC).
This `Secret` CR is then referenced in the `SiteConfig` CR.
Integration with a secret store, such as Vault, can be used to manage the secrets.
* Besides offering deployment method isolation and unification of Git and non-Git workflows, the SiteConfig Operator provides better scalability, greater flexibility with the use of custom templates, and an enhanced troubleshooting experience.
