Skip to content

Repository files navigation

lightspeed-hub

Multicluster hub operator for OpenShift Lightspeed. Runs on a central hub cluster and manages a fleet of spoke clusters, coordinating agentic operations across the fleet.

The hub operator validates spoke connectivity, provisions credentials for standalone adapters, and monitors spoke health — all driven by two CRDs: HubConfig (cluster-wide configuration) and SpokeCluster (one per registered spoke).

Prerequisites

The following must be installed on the hub cluster before deploying lightspeed-hub:

  • lightspeed-operator — provides OLSConfig, the lightspeed-service, and LLM provider configuration
  • lightspeed-agentic-operator — reconciles AgenticRun CRs targeting spoke clusters

Installation

Deploy the operator via Helm into the openshift-lightspeed namespace, then create a HubConfig CR to configure how spoke clusters are registered.

apiVersion: hub.openshift.io/v1alpha1
kind: HubConfig
metadata:
  name: cluster
spec:
  clusterRegistryMode: secret

Note: MCE-based auto-discovery (clusterRegistryMode: mce) will be supported in a future release.

Registering Spoke Clusters

SpokeCluster is a cluster-scoped CR. Each instance represents one spoke cluster.

Create a Secret containing the spoke's kubeconfig, then reference it:

apiVersion: hub.openshift.io/v1alpha1
kind: SpokeCluster
metadata:
  name: spoke-east
spec:
  apiServer: https://api.spoke-east.example.com:6443
  credentialSource:
    secret:
      name: spoke-east-kubeconfig
      namespace: openshift-lightspeed

Re-applying a SpokeCluster CR is safe — the reconciler is idempotent and converges without side effects.

Status and Health

The hub continuously monitors each spoke's API server reachability and reflects the result in status conditions. Check a spoke's health with:

kubectl get spokecluster spoke-east -o jsonpath='{.status.conditions}'

Key conditions:

Condition Meaning
Connected Spoke API server is reachable via the credential broker
AdaptersReady Per-spoke adapter credentials have been provisioned

An unhealthy spoke does not block operations on other spokes.

Development

make build      # Build the operator binary
make test       # Run unit tests
make lint       # Run golangci-lint
make generate   # Regenerate DeepCopy implementations
make manifests  # Regenerate CRD YAML and RBAC ClusterRole
make fmt        # Run go fmt
make vet        # Run go vet

License

Apache License 2.0 — see LICENSE.

About

Hub service for multicluster OpenShift Lightspeed.

Resources

Security policy

Stars

9 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages