Validated Patterns

Managing the Telco Hub pattern

After the initial deployment, you can use the pattern.sh script and standard OpenShift Container Platform tools to manage, check, and troubleshoot the Telco Hub pattern.

Pattern management commands

The pattern includes a pattern.sh script that provides commands for managing the pattern lifecycle.

$ ./pattern.sh make help

For a complete guide to these targets and the available overrides, please visit https://validatedpatterns.io/blog/2025-08-29-new-common-makefile-structure/

Usage:
  make <target>

Testing & Development Tasks
  argo-healthcheck                     Checks if all argo applications are synced
  validate-telco-reference             Validates telco-hub pattern against telco-reference CRs using cluster-compare
  super-linter                         Runs the super-linter locally
  validate-kustomize                   Validates kustomization build and YAML format
  help                                 Print this help message

Pattern Install Tasks
  show                                 Shows the template that would be applied by the `make install` target
  operator-deploy operator-upgrade     Installs/updates the pattern on a cluster (DOES NOT load secrets)
  install                              Installs the pattern onto a cluster (Loads secrets as well if configured)
  load-secrets                         Loads secrets onto the cluster (unless explicitly disabled in values-global.yaml)

Validation Tasks
  validate-prereq                      verify pre-requisites
  validate-origin                      verify the git origin is available
  validate-cluster                     Do some cluster validations before installing

Day 2 operations

You can change the pattern’s configuration after the initial deployment.

Managing components

To enable or disable components after deployment:

  1. Edit the kustomize/overlays/telco-hub/kustomization.yaml file.

  2. Uncomment the resource URL for a component to enable it, or comment it to disable it.

    resources:
      # Example: Uncomment to enable Logging Operator
      # - https://github.com/openshift-kni/telco-reference//telco-hub/configuration/reference-crs/optional/logging
  3. Apply the changes by running the operator-upgrade command:

    $ ./pattern.sh make operator-upgrade

Customizing environment patches

To change environment-specific configurations, such as Operator sources for disconnected environments:

  1. Edit the patches: section in the kustomize/overlays/telco-hub/kustomization.yaml file.

  2. Add or change a patch to target the necessary resource.

      # ClusterLogForwarder with hub-specific labelsconfiguration
      - target:
          group: observability.openshift.io
          version: v1
          kind: ClusterLogForwarder
          name: instance
          namespace: openshift-logging
        patch: |-
          - op: replace
            path: "/spec/outputs/0/kafka/url"
            value: "tcp://jumphost.inbound.lab:9092/logs"
          - op: add
            path: /spec/filters/0/openshiftLabels
            value:
              cluster-role: hub
              environment: production
              telco-component: hub
  3. Apply the configuration changes:

    $ ./pattern.sh make operator-upgrade

Monitoring the deployment

You can check the health and synchronization status of the pattern components through the OpenShift Container Platform CLI or the ArgoCD UI.

Monitoring from the CLI

  1. Describe the main telco-hub application to view detailed status and synchronization information:

    $ oc describe applications.argoproj.io hub-config -n telco-hub-pattern-hub
  2. Describe the clusters and policies application to view status of deployed managed clusters:

    $ oc describe applications.argoproj.io clusters policies -n telco-hub-pattern
  3. View all the ArgoCD applications managed by the pattern:

    $ ./pattern.sh make argo-healthcheck

Accessing the ArgoCD UI

  1. Retrieve the route for the telco-hub application:

    $ echo "ArgoCD UI: https://$(oc get route hub-gitops-server -n telco-hub-pattern-hub -o jsonpath='{.spec.host}')"
  2. Retrieve the default administrator password:

    $ oc extract secret/hub-gitops-cluster -n telco-hub-pattern-hub --to=-
  3. Retrieve the route for the clusters and policies applications:

    $ echo "ArgoCD UI: https://$(oc get route telco-hub-gitops-server -n telco-hub-pattern -o jsonpath='{.spec.host}')"
  4. Retrieve the default administrator password:

    $ oc extract secret/telco-hub-gitops-cluster -n telco-hub-pattern --to=-

    You can also access the ArgoCD UI from the application launcher (nine-box icon) in the OpenShift Container Platform console.

Troubleshooting

This section covers common issues and their resolutions.

Component synchronization failures
  • Problem: An ArgoCD application in the telco-hub-pattern-hub namespace displays a SyncError or Degraded status.

  • Diagnosis: Check the application’s detailed status to identify the failing resource.

    $ oc describe applications.argoproj.io <app_name> -n telco-hub-pattern-hub
  • Solution: Verify that the component configuration in kustomization.yaml is correct and that all kustomize patches are valid. Ensure that any prerequisite components are enabled and healthy.

Git repository access
  • Problem: ArgoCD cannot access the github.com/openshift-kni/telco-reference repository.

  • Diagnosis: Check the ArgoCD application logs for Git-related errors, such as "repository unavailable" or certificate validation failures.

  • Solution:

    • For standard, connected environments, verify that the hub cluster has network connectivity to github.com.

    • For disconnected (air-gapped) environments, you must verify the following two common issues:

      1. Wrong repository URL: Ensure that the kustomize/overlays/telco-hub/kustomization.yaml file is updated to point to the correct location, branch, and path of the mirrored repository.

      2. Certificate related errors: If ArgoCD cannot verify the repository’s TLS certificates, you might need to add those certificates to the argocd-tls-certs-cm patch in kustomize/overlays/telco-hub/kustomization.yaml.

Component dependencies
  • Problem: A component fails to install because a required operator or custom resource definition (CRD) is missing.

  • Diagnosis: The component’s operator logs or the ArgoCD sync status indicates "resource not found" or "missing dependency".

  • Solution: Ensure that all required components, such as Red Hat Advanced Cluster Management (RHACM) or Topology Aware Lifecycle Manager (TALM), are enabled (uncommented) in kustomization.yaml before enabling optional components that depend on them.