{"id":20077643,"url":"https://github.com/stolostron/multicluster-global-hub","last_synced_at":"2025-07-29T06:09:47.168Z","repository":{"id":36955145,"uuid":"377924023","full_name":"stolostron/multicluster-global-hub","owner":"stolostron","description":"the main repository for the multicluster global hub","archived":false,"fork":false,"pushed_at":"2025-07-27T10:05:29.000Z","size":124948,"stargazers_count":21,"open_issues_count":32,"forks_count":33,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-07-27T11:27:22.964Z","etag":null,"topics":["global-hub","hub-of-hubs","multicluster","multicluster-global-hub"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stolostron.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-06-17T18:19:22.000Z","updated_at":"2025-07-24T14:40:47.000Z","dependencies_parsed_at":"2023-01-17T08:02:27.956Z","dependency_job_id":"a1e2ce1f-a194-43ca-bdae-b92fbb24f443","html_url":"https://github.com/stolostron/multicluster-global-hub","commit_stats":null,"previous_names":["stolostron/hub-of-hubs"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/stolostron/multicluster-global-hub","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stolostron%2Fmulticluster-global-hub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stolostron%2Fmulticluster-global-hub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stolostron%2Fmulticluster-global-hub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stolostron%2Fmulticluster-global-hub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stolostron","download_url":"https://codeload.github.com/stolostron/multicluster-global-hub/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stolostron%2Fmulticluster-global-hub/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267352607,"owners_count":24073743,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-27T02:00:11.917Z","response_time":82,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["global-hub","hub-of-hubs","multicluster","multicluster-global-hub"],"created_at":"2024-11-13T15:09:30.104Z","updated_at":"2025-07-29T06:09:47.131Z","avatar_url":"https://github.com/stolostron.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Multicluster Global Hub Overview\n\n[![Build](https://img.shields.io/badge/build-Prow-informational)](https://prow.ci.openshift.org/?repo=stolostron%2F${multicluster-global-hub})\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=open-cluster-management_hub-of-hubs\u0026metric=coverage)](https://sonarcloud.io/dashboard?id=open-cluster-management_hub-of-hubs)\n[![Go Reference](https://pkg.go.dev/badge/github.com/stolostron/multicluster-global-hub.svg)](https://pkg.go.dev/github.com/stolostron/multicluster-global-hub)\n[![License](https://img.shields.io/github/license/stolostron/multicluster-global-hub)](/LICENSE)\n\nThis document attempts to explain how the different components in multicluster global hub come together to deliver multicluster management at very high scale. The multicluster-global-hub operator is the root operator which pulls in all things needed.\n\n## Conceptual Diagram\n\n![ArchitectureDiagram](doc/architecture/multicluster-global-hub-arch.png)\n\n### Multicluster Global Hub Operator\n\nOperator is for multicluster global hub. It is used to deploy all required components for multicluster management. The components include multicluster-global-hub-manager in the global hub cluster and multicluster-global-hub-agent in the managed hub clusters.\n\nThe Operator also leverages the manifestwork to deploy the Advanced Cluster Management for Kubernetes in the managed cluster. So the managed cluster is switched to a standard ACM Hub cluster (managed hub cluster).\n\n### Multicluster Global Hub Manager\n\nThe manager is used to persist the data into the postgreSQL. The data is from Kafka transport. The manager is also used to post the data to Kafka transport so that it can be synced to the managed hub clusters.\n\n### Multicluster Global Hub Agent\n\nThe agent is running in the managed hub clusters. It is responsible to sync-up the data between the global cluster hub and the managed hub clusters. For instance, sync-up the managed clusters' info from the managed hub clusters to the global hub cluster and sync-up the policy or application from the global hub cluster to the managed hub clusters.\n\n### Multicluster Global Hub Observability\n\nGrafana runs on the global hub cluster, as the main service for Global Hub Observability. The Postgres data collected by the Global Hub Manager services as its default DataSource. By exposing the service via route(`multicluster-global-hub-grafana`), you can access the global hub grafana dashboards just like accessing the openshift console.\n\n## Quick Start Guide\n\n### Prerequisites\n\n1. Connect to a Kubernetes cluster with `kubectl`\n2. ACM or OCM is installed on the Kubernetes cluster\n\n### Run the operator in the cluster\n\n_Note:_ You can also install Multicluster Global Hub Operator from [Operator Hub](https://docs.openshift.com/container-platform/4.6/operators/understanding/olm-understanding-operatorhub.html) if you have ACM installed in an OpenShift Container Platform, the operator can be found in community operators by searching \"multicluster global hub\" keyword in the filter box, then follow the document to install the operator.\n\nFollow the steps below to instal Multicluster Global Hub Operator in developing environment:\n\n1. Check out the multicluster-global-hub repository\n\n```bash\ngit clone git@github.com:stolostron/multicluster-global-hub.git\ncd multicluster-global-hub/operator\n```\n\n2. Build and push your image to the location specified by `IMG`:\n\n```bash\nmake docker-build docker-push IMG=\u003csome-registry\u003e/multicluster-global-hub-operator:\u003ctag\u003e\n```\n\n3. Deploy the controller to the cluster with the image specified by `IMG`:\n\n```bash\nmake deploy IMG=\u003csome-registry\u003e/multicluster-global-hub-operator:\u003ctag\u003e\n```\n\n4. Install instance of custom resource:\n\n```bash\nkubectl apply -k config/samples/\n```\n\n### Uninstall the operator\n\n1. Delete the multicluster-global-hub-operator CR:\n\n```bash\nkubectl delete mgh --all\n```\n\n2. Delete the multicluster-global-hub-operator:\n\n_Note:_ This will delete Multicluster Global Hub Operator and the CRD from the cluster.\n\n```bash\nmake undeploy\n```\n\n# Contributing\n\nGo to the [Contributing guide](CONTRIBUTING.md) to learn how to get involved.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstolostron%2Fmulticluster-global-hub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstolostron%2Fmulticluster-global-hub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstolostron%2Fmulticluster-global-hub/lists"}