Skip to content

Commit 286b3db

Browse files
committed
Added docs for the Telco Hub Pattern
1 parent 0f4f4d5 commit 286b3db

File tree

5 files changed

+662
-1
lines changed

5 files changed

+662
-1
lines changed
Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
---
2+
title: Telco Hub
3+
date: 2025-10-01
4+
tier: sandbox
5+
summary: The Telco Hub pattern is a GitOps-first validated pattern for deploying and operating a Telco-focused management hub.
6+
rh_products:
7+
- Red Hat OpenShift Container Platform
8+
- Red Hat Advanced Cluster Management for Kubernetes (RHACM)
9+
- Red Hat OpenShift GitOps (ArgoCD)
10+
- Topology Aware Lifecycle Manager (TALM)
11+
- Red Hat OpenShift Data Foundation (ODF) (Optional)
12+
industries:
13+
- Telecommunications
14+
aliases: /telco-hub/
15+
# uncomment once this exists
16+
# pattern_logo: telco-hub.png
17+
links:
18+
github: https://github.com/validatedpatterns/telco-hub-pattern
19+
install: getting-started
20+
bugs: https://github.com/validatedpatterns/telco-hub-pattern/issues
21+
feedback: https://docs.google.com/forms/d/e/1FAIpQLScI76b6tD1WyPu2-d_9CCVDr3Fu5jYERthqLKJDUGwqBg7Vcg/viewform
22+
ci: telco-hub
23+
---
24+
25+
:toc:
26+
:imagesdir: /images
27+
:_mod-docs-content-type: ASSEMBLY
28+
include::modules/comm-attributes.adoc[]
29+
30+
[id="about-telco-hub-pattern"]
31+
= About the Telco Hub pattern
32+
33+
The Telco Hub pattern is a GitOps-first validated pattern for deploying and operating a Telco-focused management hub on {rh-ocp}. It uses a GitOps approach to centralize multi-cluster operations, lifecycle management, and policy enforcement to simplify the deployment and Day 2 operations of Telco workloads and edge clusters.
34+
35+
When the pattern installation is complete, the hub cluster provides:
36+
37+
* A dedicated GitOps (ArgoCD) instance created to manage spoke clusters. This instance includes resource tuning for scalability and an ACM plugin for simplified creation of policies.
38+
* Support for Zero Touch Provisioning (ZTP) workflows, which provide automated cluster installation and configuration.
39+
* The Topology Aware Lifecycle Manager (TALM) for integrated cluster management and upgrade capabilities.
40+
* Centralized management of distributed telco infrastructure.
41+
42+
[id="telco-hub-pattern-background"]
43+
== Background
44+
45+
Telco networks and cloud-native network functions (CNFs) require fast, repeatable lifecycle operations, strict dependency management, and consistent configuration across many clusters and edge sites.
46+
This pattern packages a production-ready, GitOps-based hub that uses validated upstream telco-reference CRs and applies environment-specific Kustomize overlays so Operators deploy and manage Telco platforms consistently.
47+
48+
49+
[id="telco-hub-pattern-use-cases"]
50+
== Use Cases
51+
52+
* **Telco Edge Hub Management**: Deploy and manage multiple edge clusters from a central hub
53+
* **Zero Touch Provisioning**: Automated cluster installation and configuration via ZTP workflow
54+
* **Multi-Cluster Operations**: Centralized management of distributed telco infrastructure
55+
* **GitOps Workflows**: Infrastructure-as-code with automated deployment and synchronization
56+
57+
[id="telco-hub-pattern-technologies"]
58+
== Red Hat technologies
59+
60+
* {rh-ocp}
61+
* {rh-rhacm-first}
62+
* {gitops-title} (ArgoCD)
63+
* Topology Aware Lifecycle Manager (TALM)
64+
* Optional: Local Storage Operator (LSO)
65+
* Optional: Red Hat OpenShift Data Foundation (ODF)
66+
* Optional: Red Hat Cluster Logging Operator (CLO)
67+
68+
[id="telco-hub-pattern-other-technologies"]
69+
== Other technologies
70+
71+
* Support for disconnected (air-gapped) environments through local registries, cluster proxy configuration, and image mirroring (`ImageSetConfiguration`).
72+
* A dedicated GitOps (ArgoCD) instance that includes resource tuning for scalability and an ACM plugin for simplified creation of policies for managed clusters.
73+
74+
[id="telco-hub-pattern-architecture"]
75+
== Architecture
76+
77+
The Telco Hub pattern architecture consists of the following key components:
78+
79+
[source,terminal]
80+
----
81+
telco-hub-pattern/
82+
├── kustomize/overlays/telco-hub/ # 🔧 Kustomize Overlay Configuration
83+
│ └── kustomization.yaml # Component selection and patches
84+
├── kustomize/air-gapped/ # 🛡️ Disconnected (air-gapped) assets
85+
│ ├── imageset-config.yaml # Image mirroring (oc-mirror)
86+
│ ├── prerequisites/ # Cluster proxy, catalogs, CAs
87+
│ │ └── kustomization.yaml
88+
│ └── README.md # Disconnected deployment guide
89+
├── values-hub.yaml # Hub Cluster Definition
90+
├── values-global.yaml # Global Pattern Settings
91+
└── docs/ # Documentation
92+
93+
# Consumed Remote Resources (via kustomize):
94+
# https://github.com/openshift-kni/telco-reference/tree/main/telco-hub/configuration/reference-crs/
95+
├── required/ # 🔧 Essential Components
96+
│ ├── acm/ # Advanced Cluster Management
97+
│ ├── gitops/ # GitOps Operators & Configuration
98+
│ ├── talm/ # Topology Aware Lifecycle Manager
99+
│ └── registry/ # Local Registry (disconnected)
100+
└── optional/ # 🔌 Optional Components
101+
├── lso/ # Local Storage Operator
102+
├── odf-internal/ # OpenShift Data Foundation
103+
└── logging/ # Cluster Logging Stack
104+
----
105+
106+
Design principles::
107+
108+
[cols="1,2,2"]
109+
|===
110+
111+
|Principle
112+
|Description
113+
|Benefit
114+
115+
|Reference-based
116+
|Direct consumption of official telco-reference configurations
117+
|Always use validated, upstream telco designs
118+
119+
|GitOps-Native
120+
|ArgoCD manages all deployments via validated patterns framework
121+
|Automated, auditable infrastructure changes
122+
123+
|Kustomize-First
124+
|Environment-specific overlays without modifying upstream configs
125+
|Customize while maintaining upstream compatibility
126+
127+
|Component Selection
128+
|Declarative component enablement via kustomize resources
129+
|Granular control over telco-hub functionality
130+
131+
|===
Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
1+
---
2+
title: Configuration
3+
weight: 20
4+
aliases: /telco-hub/configuration/
5+
---
6+
7+
:toc:
8+
:imagesdir: /images
9+
:_mod-docs-content-type: ASSEMBLY
10+
include::modules/comm-attributes.adoc[]
11+
12+
[id="telco-hub-pattern-configuration"]
13+
= Telco hub pattern configuration
14+
15+
The Telco Hub pattern uses the following file hierarchy to control what runs in your hub.
16+
17+
* `values-global.yaml`: global, cross-environment pattern settings.
18+
* `values-hub.yaml`: hub-specific ArgoCD and cluster definitions.
19+
* `kustomize/overlays/telco-hub/kustomization.yaml`: enable optional components and apply environment-specific patches.
20+
* `kustomize/air-gapped/imageset-config.yaml`: image set config to mirror required images and catalogs (disconnected).
21+
* `kustomize/air-gapped/prerequisites/kustomization.yaml`: prerequisites for air-gapped deployments, apply proxy, CA, and catalog sources (disconnected).
22+
23+
[id="global-pattern-configuration"]
24+
== Global pattern configuration
25+
26+
The `values-global.yaml` file defines configuration values that apply across all clusters and environments in the pattern, establishing the overall pattern behavior.
27+
28+
Key parameters within the global section include:
29+
30+
* `pattern`: Defines the name of the validated pattern, set to `telco-hub-pattern`.
31+
* `secretLoader`: Use it to disable the secret loading process. For example, `disabled: true`.
32+
* `options`: Affects all clusters by defining default behaviors:
33+
34+
** `syncPolicy`: Sets the default ArgoCD synchronization policy. Options include `Automatic` or `Manual`.
35+
** `installPlanApproval`: Sets the default operator install plan approval. Options include `Automatic` or `Manual`.
36+
** `useCSV`: Specifies whether to use specific `ClusterServiceVersions` for operators. The default value is `false`.
37+
* `main`: Defines settings for the main cluster (hub) that manages the pattern, including the `clusterGroupName: hub`.
38+
* Disconnected Configuration: This file also specifies sources for operators in disconnected environments, such as `patternsOperator: source: community-operators-disconnected` and `gitops: operatorSource: redhat-operators-disconnected`.
39+
40+
[id="hub-cluster-configuration"]
41+
== Hub cluster configuration
42+
The `values-hub.yaml` file has configuration specific to the hub cluster within the Telco Hub pattern. It is crucial as it defines the hub cluster, which acts as the central management point for GitOps, cluster management, and policy enforcement across the infrastructure.
43+
44+
Cluster group identification::
45+
The `clusterGroup` section identifies the cluster's role and name:
46+
[source,terminal]
47+
----
48+
clusterGroup:
49+
name: hub # Name of this cluster group
50+
isHubCluster: true # Designates this as the hub/management cluster
51+
----
52+
53+
Management of the `subscriptions` and `projects` resources within this file is delegated to the `telco-hub` kustomization application to prevent systematic conflicts between the Pattern Operator and the Telco Hub Reference Design Specification.
54+
55+
ArgoCD application configuration::
56+
57+
The `applications` section defines the core ArgoCD application for the Telco Hub pattern:
58+
59+
* `telco-hub` application: Uses Kustomize for manifest processing `kustomize: true` and points to the overlay path `kustomize/overlays/telco-hub`.
60+
* Synchronization Policy: The `syncPolicy` is configured to be automated `automated: prune: true` to remove resources not present in git.
61+
* Retry Mechanism: The application uses a configured retry mechanism to handle temporary failures during synchronization:
62+
◦ `limit: 6`: maximum number of sync retries, adjusted for about 20 minutes total.
63+
◦ `backoff`: configured with an initial duration of `15s`, a factor of `2`, and a `maxDuration` of `15m`.
64+
65+
[id="component-selection-and-environment-customization"]
66+
== Component selection and environment customization
67+
68+
Components are enabled by uncommenting the corresponding remote base resource declarations within the `resources:` array of the `kustomization.yaml` file.
69+
The pattern uses remote base resources from the telco-reference git repository.
70+
71+
Required components::
72+
These components are essential for hub cluster functionality:
73+
74+
* Local Registry: The Telco Hub Reference Design Specifications targets disconnected environments, therefore this component is enabled by default.
75+
* {rh-rhacm-first}: The {rh-rhacm} telco-hub component requires a storage backend to support its observability functionality. You need to configure a storage backend for the hub cluster along with {rh-rhacm}.
76+
* GitOps Operator: This component's configuration is currently provided by default through the Validated Patterns Operator, and its resource URL from telco-reference is not yet supported by the pattern itself.
77+
* {cgu-operator-first}: This component is required and enabled by default.
78+
79+
Zero Touch Provisioning (ZTP) Workflow Components::
80+
This component provides ArgoCD applications for synchronizing cluster deployment (ClusterInstance) CRs and configuration (Policy and/or PolicyGenerator) CRs. Enable this resource if you intend to use the GitOps ZTP workflow for automated cluster deployment:
81+
82+
* ZTP Installation: Uncomment the dedicated resource URL for `ztp-installation`.
83+
84+
Optional components::
85+
These components should be enabled based on specific workload and storage requirements:
86+
87+
* LocalStorage Operator (LSO): Enable if you plan to use LSO as your storage backend.
88+
* Red Hat OpenShift Data Foundation (ODF): Enable if you plan to use ODF as your storage backend.
89+
* Cluster Logging Operator (Logging): Enable if you require the cluster logging operator for log aggregation.
90+
91+
Environment Customization (Kustomize Patches)::
92+
The `patches:` section allows you to apply modifications to the base configurations sourced from the telco-reference without directly editing those upstream files. This is vital for maintaining upstream compatibility.
93+
Patches are defined using a target specification `group`, `version`, `kind`, or `name` and the specific patch content.
94+
95+
[id="example-patch"]
96+
=== Examples
97+
98+
The following examples illustrate how to customize Operator configurations for specific environments, such as disconnected setups or storage class adjustments.
99+
100+
[source,yaml]
101+
----
102+
patches:
103+
# Example: Update Red Hat operators catalog to use specific version
104+
- target:
105+
group: operators.coreos.com
106+
version: v1alpha1
107+
kind: CatalogSource
108+
name: redhat-operators-disconnected
109+
patch: |-
110+
- op: replace
111+
path: /spec/image
112+
value: <registry.example.com:8443>/openshift-marketplace/redhat-operators-disconnected:v4.20
113+
114+
# Example: Add registry CA to the hub cluster
115+
- target:
116+
version: v1
117+
kind: ConfigMap
118+
name: registry-ca
119+
patch: |-
120+
- op: replace
121+
path: /data
122+
value:
123+
registry.example.com..8443 |
124+
-----BEGIN CERTIFICATE-----
125+
MIIGcjCCBFqgAwIBAgIFICIE...
126+
-----END CERTIFICATE-----
127+
128+
# Example: AgentServiceConfig storage and OS images configuration
129+
- target:
130+
group: agent-install.openshift.io
131+
version: v1beta1
132+
kind: AgentServiceConfig
133+
name: agent
134+
patch: |-
135+
- op: replace
136+
path: "/spec/osImages"
137+
value:
138+
- cpuArchitecture: x86_64
139+
openshiftVersion: "4.18"
140+
rootFSUrl: https://mirror.example.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.18/latest/rhcos-live-rootfs.x86_64.img
141+
url: https://mirror.example.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.18/latest/rhcos-live.x86_64.iso
142+
version: 418.94.202502100215-0
143+
- cpuArchitecture: x86_64
144+
openshiftVersion: "4.19"
145+
rootFSUrl: https://mirror.example.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.19/latest/rhcos-live-rootfs.x86_64.img
146+
url: https://mirror.example.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.19/latest/rhcos-live-iso.x86_64.iso
147+
version: 9.6.20250530-0
148+
- cpuArchitecture: x86_64
149+
openshiftVersion: "4.20"
150+
rootFSUrl: https://mirror.example.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.20/latest/rhcos-live-rootfs.x86_64.img
151+
url: https://mirror.example.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.20/latest/rhcos-live-iso.x86_64.iso
152+
version: 9.6.20250530-0
153+
154+
# Example: LocalVolume disk paths configuration
155+
- target:
156+
group: local.storage.openshift.io
157+
version: v1
158+
kind: LocalVolume
159+
name: local-disks
160+
namespace: openshift-local-storage
161+
patch: |-
162+
- op: replace
163+
path: /spec/storageClassDevices/0/devicePaths
164+
value:
165+
- /dev/nvme1n1
166+
----
167+
168+
For more examples and detailed configurations, see link:https://github.com/openshift-kni/telco-reference/tree/main/telco-hub/configuration/example-overlays-config[telco-reference example overlays].

0 commit comments

Comments
 (0)