Skip to content

Commit 848f16f

Browse files
committed
Added docs for the Telco Hub Pattern
1 parent 0b69ddc commit 848f16f

File tree

4 files changed

+537
-0
lines changed

4 files changed

+537
-0
lines changed
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
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}.
34+
It centralizes GitOps, multi-cluster lifecycle control and policy enforcement to simplify the deployment and Day 2 operations of Telco workloads and edge clusters.
35+
36+
Background::
37+
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.
38+
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.
39+
40+
Use cases::
41+
42+
* **Telco Edge Hub Management**: Deploy and manage multiple edge clusters from a central hub
43+
* **Zero Touch Provisioning**: Automated cluster installation and configuration via ZTP workflow
44+
* **Multi-Cluster Operations**: Centralized management of distributed telco infrastructure
45+
* **GitOps Workflows**: Infrastructure-as-code with automated deployment and synchronization
46+
47+
Red Hat technologies::
48+
* {rh-ocp}
49+
* {rh-rhacm-first}
50+
* {gitops-title} (ArgoCD)
51+
* Topology Aware Lifecycle Manager (TALM)
52+
* Red Hat OpenShift Data Foundation (ODF) (Optional)
53+
54+
Other technologies and Operators::
55+
* Disconnected catalogs and ImageSetConfiguration for air-gapped environments.
56+
* Example policies and plugins for ArgoCD, including Kustomize alpha plugin enablement.
57+
58+
[id="telco-hub-pattern-architecture"]
59+
== Architecture
60+
61+
The Telco Hub pattern architecture consists of the following key components:
62+
63+
[source,terminal]
64+
----
65+
telco-hub-pattern/
66+
├── kustomize/overlays/telco-hub/ # 🔧 Kustomize Overlay Configuration
67+
│ └── kustomization.yaml # Component selection and patches
68+
├── values-hub.yaml # Hub Cluster Definition
69+
├── values-global.yaml # Global Pattern Settings
70+
├── common/ # 📦 Validated Patterns Framework
71+
└── docs/ # Documentation
72+
73+
# Consumed Remote Resources (via kustomize):
74+
# https://github.com/openshift-kni/telco-reference/tree/main/telco-hub/configuration/reference-crs/
75+
├── required/ # 🔧 Essential Components
76+
│ ├── acm/ # Advanced Cluster Management
77+
│ ├── gitops/ # GitOps Operators & Configuration
78+
│ ├── talm/ # Topology Aware Lifecycle Manager
79+
│ └── registry/ # Local Registry (disconnected)
80+
└── optional/ # 🔌 Optional Components
81+
├── lso/ # Local Storage Operator
82+
├── odf-internal/ # OpenShift Data Foundation
83+
└── logging/ # Cluster Logging Stack
84+
----
85+
86+
Design principles::
87+
88+
[cols="1,2,2"]
89+
|===
90+
91+
|Principle
92+
|Description
93+
|Benefit
94+
95+
|Reference-based
96+
|Direct consumption of official telco-reference configurations
97+
|Always use validated, upstream telco designs
98+
99+
|GitOps-Native
100+
|ArgoCD manages all deployments via validated patterns framework
101+
|Automated, auditable infrastructure changes
102+
103+
|Kustomize-First
104+
|Environment-specific overlays without modifying upstream configs
105+
|Customize while maintaining upstream compatibility
106+
107+
|Component Selection
108+
|Declarative component enablement via kustomize resources
109+
|Granular control over telco-hub functionality
110+
111+
|===
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
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 required components, add optional services, and apply environment-specific patches.
20+
21+
[id="global-pattern-configuration"]
22+
== Global pattern configuration
23+
24+
The `values-global.yaml` file defines configuration values that apply across all clusters and environments in the pattern, establishing the overall pattern behavior.
25+
26+
Key parameters within the global section include:
27+
28+
* `pattern`: Defines the name of the validated pattern, set to `telco-hub-pattern`.
29+
* `secretLoader`: Use it to disable the secret loading process. For example, `disabled: true`.
30+
* `options`: Affects all clusters by defining default behaviors:
31+
32+
** `syncPolicy`: Sets the default ArgoCD synchronization policy. Options include `Automatic` or `Manual`.
33+
** `installPlanApproval`: Sets the default operator install plan approval. Options include `Automatic` or `Manual`.
34+
** `useCSV`: Specifies whether to use specific `ClusterServiceVersions` for operators. The default value is `false`.
35+
* `main`: Defines settings for the main cluster (hub) that manages the pattern, including the `clusterGroupName: hub`.
36+
* 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`.
37+
38+
[id="hub-cluster-configuration"]
39+
== Hub cluster configuration
40+
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.
41+
42+
Cluster group identification::
43+
The `clusterGroup` section identifies the cluster's role and name:
44+
[source,terminal]
45+
----
46+
clusterGroup:
47+
name: hub # Name of this cluster group
48+
isHubCluster: true # Designates this as the hub/management cluster
49+
----
50+
51+
Management of the `namespaces` and `subscriptions` 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 Specifications.
52+
53+
ArgoCD application configuration::
54+
55+
The `applications` section defines the core ArgoCD application for the Telco Hub pattern:
56+
57+
* `telco-hub` application: Uses Kustomize for manifest processing `kustomize: true` and points to the overlay path `kustomize/overlays/telco-hub`.
58+
* Synchronization Policy: The `syncPolicy` is configured to be automated `automated: prune: true` to remove resources not present in git.
59+
* Retry Mechanism: The application uses a configured retry mechanism to handle temporary failures during synchronization:
60+
◦ `limit: 6`: maximum number of sync retries, adjusted for about 20 minutes total.
61+
◦ `backoff`: configured with an initial duration of `15s`, a factor of `2`, and a `maxDuration` of `15m`.
62+
63+
[id="component-selection-and-environment-customization"]
64+
== Component selection and environment customization
65+
66+
Components are enabled by uncommenting the corresponding remote resource declarations within the `resources:` array of the `kustomization.yaml` file.
67+
The pattern uses remote resources from the telco-reference git repository.
68+
69+
Required components::
70+
These components are essential for hub cluster functionality:
71+
72+
* Red Hat Advanced Cluster Management for Kubernetes (ACM): Uncomment the resource URL to enable. Note: Enabling ACM requires that a storage backend is configured on the hub cluster first.
73+
* Topology Aware Lifecycle Manager (TALM): This component is required and typically enabled by default (or must be explicitly uncommented).
74+
* Local Registry: This component is required only if you are deploying the pattern in a disconnected environment.
75+
* 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.
76+
77+
Zero Touch Provisioning (ZTP) Workflow Components::
78+
Enable this resource if you intend to use the GitOps ZTP workflow for automated cluster deployment:
79+
80+
* ZTP Installation: Uncomment the dedicated resource URL for `ztp-installation`.
81+
82+
Optional components::
83+
These components should be enabled based on specific workload and storage requirements:
84+
85+
* LocalStorage Operator (LSO): Enable if you plan to use LSO as your storage backend.
86+
* Red Hat OpenShift Data Foundation (ODF): Enable if you plan to use ODF as your storage backend. Note: ODF currently requires a Namespace defined in the GitOps component.
87+
* Cluster Logging Operator (Logging): Enable if you require the cluster logging operator for log aggregation.
88+
89+
Environment Customization (Kustomize Patches)::
90+
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.
91+
Patches are defined using a target specification `group`, `version`, `kind`, or `name` and the specific patch content.
92+
93+
[id="example-patch"]
94+
=== Examples
95+
96+
The following examples illustrate how to customize operator configurations for specific environments, such as disconnected setups or storage class adjustments.
97+
98+
[source,yaml]
99+
----
100+
patches:
101+
# Example: Configure TALM operator for disconnected environments
102+
- target:
103+
group: operators.coreos.com
104+
version: v1alpha1
105+
kind: Subscription
106+
name: openshift-topology-aware-lifecycle-manager-subscription
107+
patch: |-
108+
- op: replace
109+
path: "/spec/source"
110+
value: "redhat-operators-disconnected"
111+
112+
# Example: Customize storage classes for ODF
113+
- target:
114+
group: ocs.openshift.io
115+
version: v1
116+
kind: StorageCluster
117+
name: ocs-storagecluster
118+
patch: |-
119+
- op: replace
120+
path: "/spec/storageDeviceSets/0/dataPVCTemplate/spec/storageClassName"
121+
value: "localblock"
122+
----
123+
124+
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].
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
---
2+
title: Getting Started
3+
weight: 10
4+
aliases: /telco-hub/getting-started/
5+
---
6+
7+
:toc:
8+
:imagesdir: /images
9+
:_mod-docs-content-type: ASSEMBLY
10+
include::modules/comm-attributes.adoc[]
11+
12+
[id="deploying-the-telco-hub-pattern"]
13+
= Deploying the Telco hub pattern
14+
15+
16+
[id="telco-hub-prerequisites"]
17+
== Prerequisites
18+
19+
* An {ocp} 4.14 or later cluster with:
20+
21+
** cluster administrator privileges.
22+
** compact cluster with at least 3 worker nodes.
23+
** more than 500 GB of available storage.
24+
** internet access.
25+
26+
* A Git repository to host your configuration files.
27+
* Access to a terminal with `oc` and `git` command-line tools installed.
28+
29+
[id="preparing-for-deployment"]
30+
== Preparing for deployment
31+
32+
.Procedure
33+
34+
. Clone telco-hub-pattern repository from GitHub and navigate to the directory:
35+
+
36+
[source,terminal]
37+
----
38+
$ git clone https://github.com/validatedpatterns-sandbox/telco-hub-pattern.git
39+
$ cd telco-hub-pattern
40+
----
41+
42+
. Configure components by editing the file `kustomize/overlays/telco-hub/kustomization.yaml` to enable required components:
43+
+
44+
[source,yaml]
45+
----
46+
# =============================================================================
47+
# Telco Hub pattern - Kustomization Configuration
48+
# =============================================================================
49+
50+
apiVersion: kustomize.config.k8s.io/v1beta1
51+
kind: Kustomization
52+
53+
resources:
54+
# Required: Advanced Cluster Management (uncomment to enable)
55+
# - https://github.com/openshift-kni/telco-reference//telco-hub/configuration/reference-crs/required/acm
56+
57+
# Required: Topology Aware Lifecycle Manager (enabled by default)
58+
- https://github.com/openshift-kni/telco-reference//telco-hub/configuration/reference-crs/required/talm
59+
60+
# Workflow: GitOps ZTP Installation (uncomment if deploying clusters via ZTP)
61+
# - https://github.com/openshift-kni/telco-reference//telco-hub/configuration/reference-crs/required/gitops/ztp-installation
62+
63+
# Optional Components (uncomment as needed):
64+
# - https://github.com/openshift-kni/telco-reference//telco-hub/configuration/reference-crs/optional/lso
65+
# - https://github.com/openshift-kni/telco-reference//telco-hub/configuration/reference-crs/optional/odf-internal
66+
# - https://github.com/openshift-kni/telco-reference//telco-hub/configuration/reference-crs/optional/logging
67+
68+
# Disconnected: Local Registry (uncomment for disconnected environments)
69+
# - https://github.com/openshift-kni/telco-reference//telco-hub/configuration/reference-crs/required/registry
70+
71+
# Environment-specific patches (example for disconnected environments)
72+
patches:
73+
- target:
74+
group: operators.coreos.com
75+
version: v1alpha1
76+
kind: Subscription
77+
name: openshift-topology-aware-lifecycle-manager-subscription
78+
patch: |-
79+
- op: replace
80+
path: "/spec/source"
81+
value: "redhat-operators" # or "redhat-operators-disconnected"
82+
----
83+
84+
[id="deploying-the-pattern"]
85+
== Deploying the pattern by using the pattern.sh script
86+
87+
. Deploy the pattern:
88+
+
89+
[source,terminal]
90+
----
91+
$ ./pattern.sh make operator-deploy
92+
----
93+
94+
.Verification
95+
. Verify the deployment by running the health check:
96+
+
97+
[source,terminal]
98+
----
99+
$ ./pattern.sh make argo-healthcheck
100+
----

0 commit comments

Comments
 (0)