// 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-core-gitops-operator-and-ztp-plugins_{context}"]
= GitOps Operator and {ztp} plugins

[role="_abstract"]
The GitOps Operator provides a GitOps-driven infrastructure for managing cluster deployment and configuration.

New in this release::
* There are no reference design updates in this release.

Description::
+
--
The GitOps Operator provides a GitOps driven infrastructure for managing cluster deployment and configuration.
Cluster definitions and configuration are maintained in a Git repository.

The SiteConfig Operator generates installation CRs from `ClusterInstance` CRs.

[IMPORTANT]
====
From {product-title} 4.21, you must use `ClusterInstance` CRs and the SiteConfig Operator to define managed cluster installations.
With this release, support for defining managed cluster installations with the `SiteConfig` CR is removed.
====

{ztp} plugins provide support for automatically wrapping configuration CRs in policies based on {rh-rhacm} `PolicyGenerator` CRs.

You should structure the Git repository according to the release version, with all necessary artifacts added to the repository, such as the `ClusterInstance`, `PolicyGenerator`, and supporting reference CRs.
This structure enables deploying and managing multiple versions of the {product-title} and configuration versions to clusters simultaneously and through upgrades.

The recommended Git structure keeps reference CRs in a directory separate from customer or partner provided content.
This means that you can import reference updates by simply overwriting existing content.
Customer or partner supplied CRs can be provided in a parallel directory to the reference CRs for easy inclusion in the generated configuration policies.

--

Limits and requirements::
// Scale results ACM-17868
* Each ArgoCD application supports up to 1000 nodes on a hub cluster conforming to the Hub RDS.
Multiple ArgoCD applications can be used to achieve the maximum number of clusters supported by a single hub cluster.
* Use the `extraManifestsRefs` field in the `ClusterInstance` CR to reference `ConfigMap` resources that contain additional manifests to apply at install time.

Engineering considerations::
* To avoid confusion or unintentional overwriting when updating content, you should use unique and distinguishable names for custom CRs in the `reference-crs/` directory under core-overlay and extra manifests in git.
* The `ClusterInstance` CR allows multiple `ConfigMap` references in the `extraManifestsRefs` field for additional install-time manifests.
