You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: doc/README.md
+61-16Lines changed: 61 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,9 +13,8 @@ This document focuses on the features of the multicluster global hub.
13
13
-[Workings of Global Hub](./how_global_hub_works.md)
14
14
-[Quick Start](#quick-start)
15
15
-[Prerequisites](#prerequisites)
16
-
-[Red Hat Advanced Cluster Management for Kubernetes (RHACM) 2.7 or later needs to be installed](#red-hat-advanced-cluster-management-for-kubernetes-rhacm-27-or-later-needs-to-be-installed)
17
-
-[Storage secret](#storage-secret)
18
-
-[Transport secret](#transport-secret)
16
+
-[Dependencies](#dependencies)
17
+
-[Network configuration](#network-configuration)
19
18
-[Installation](#installation)
20
19
-[1. Install the multicluster global hub operator on a disconnected environment](#1-install-the-multicluster-global-hub-operator-on-a-disconnected-environment)
21
20
-[2. Install the multicluster global hub operator from OpenShift console](#2-install-the-multicluster-global-hub-operator-from-openshift-console)
@@ -69,28 +68,74 @@ To understand how Global Hub functions, proceed [here](how_global_hub_works.md).
69
68
## Quick Start
70
69
71
70
### Prerequisites
71
+
#### Dependencies
72
+
1.**Red Hat Advanced Cluster Management for Kubernetes (RHACM)** 2.7 or later needs to be installed
72
73
73
-
#### Red Hat Advanced Cluster Management for Kubernetes (RHACM) 2.7 or later needs to be installed
74
+
[Learn more details about RHACM](https://access.redhat.com/documentation/en-us/red_hat_advanced_cluster_management_for_kubernetes/2.7)
74
75
75
-
#### Storage secret
76
+
2.**Crunchy Postgres for Kubernetes** 5.0 or later needs to be provided
76
77
77
-
Both the global hub manager and grafana services need a postgres database to collect and display data. The data can be accessed by creating a storage secret, which contains the following two fields:
78
+
**Crunchy Postgres for Kubernetes** provide a declarative Postgres solution that automatically manages PostgreSQL clusters.
79
+
80
+
[Learn more details about Crunchy Postgres for Kubernetes](https://access.crunchydata.com/documentation/postgres-operator/v5/)
78
81
79
-
-`database_uri`: Required, the URI user should have the permission to create the global hub database in the postgres.
80
-
-`ca.crt`: Optional, if your database service has TLS enabled, you can provide the appropriate certificate depending on the SSL mode of the connection. If the SSL mode is `verify-ca` and `verify-full`, then the `ca.crt` certificate must be provided.
82
+
Global hub manager and grafana services need Postgres database to collect and display data. The data can be accessed by creating a storage secret `multicluster-global-hub-storage` in namespace `open-cluster-management`, this secret should contains the following two fields:
81
83
82
-
> Note: There is a sample script available [here](https://github.com/stolostron/multicluster-global-hub/tree/main/operator/config/samples/storage)(Note:the client version of kubectl must be v1.21+) to install postgres in `hoh-postgres` namespace and create the secret `storage-secret` in namespace `open-cluster-management` automatically.
84
+
-`database_uri`: Required, the URI user should have the permission to create the global hub database in the postgres.
85
+
-`ca.crt`: Optional, if your database service has TLS enabled, you can provide the appropriate certificate depending on the SSL mode of the connection. If the SSL mode is `verify-ca` and `verify-full`, then the `ca.crt` certificate must be provided.
83
86
84
-
#### Transport secret
87
+
> Note: There is a sample script available [here](https://github.com/stolostron/multicluster-global-hub/tree/main/operator/config/samples/storage)(Note:the client version of kubectl must be v1.21+) to install postgres in `hoh-postgres` namespace and create the secret`multicluster-global-hub-storage` in namespace `open-cluster-management` automatically.
85
88
86
-
Right now, we support Kafka transport only. You need to create a secret for the Kafka transport. The secret contains the following fields:
89
+
3.**Strimzi** 0.33 or later needs to be provided
87
90
88
-
-`bootstrap.servers`: Required, the Kafka bootstrap servers.
89
-
-`ca.crt`: Optional, if you use the `KafkaUser` custom resource to configure authentication credentials, you can follow this [document](https://strimzi.io/docs/operators/latest/deploying.html#con-securing-client-authentication-str) to get the `ca.crt` certificate from the secret.
90
-
-`client.crt`: Optional, you can follow this [document](https://strimzi.io/docs/operators/latest/deploying.html#con-securing-client-authentication-str) to get the `user.crt` certificate from the secret.
91
-
-`client.key`: Optional, you can follow this [document](https://strimzi.io/docs/operators/latest/deploying.html#con-securing-client-authentication-str) to get the `user.key` from the secret.
91
+
**Strimzi** provides a way to run Kafka cluster on Kubernetes in various deployment configurations.
92
+
93
+
[Learn more details about Strimzi](https://strimzi.io/documentation/)
92
94
93
-
> Note: There is a sample script available [here](https://github.com/stolostron/multicluster-global-hub/tree/main/operator/config/samples/transport) to install kafka in `kafka` namespace and create the secret `transport-secret` in namespace `open-cluster-management` automatically.
95
+
Global hub agent need to sync cluster info and policy info to Kafka transport. And global hub manager persist the Kafka transport data to Postgre database.
96
+
97
+
So, you need to create a secret `multicluster-global-hub-transport` in global hub cluster namespace `open-cluster-management` for the Kafka transport. The secret contains the following fields:
98
+
99
+
-`bootstrap.servers`: Required, the Kafka bootstrap servers.
100
+
-`ca.crt`: Optional, if you use the `KafkaUser` custom resource to configure authentication credentials, you can follow this [document](https://strimzi.io/docs/operators/latest/deploying.html#con-securing-client-authentication-str) to get the `ca.crt` certificate from the secret.
101
+
-`client.crt`: Optional, you can follow this [document](https://strimzi.io/docs/operators/latest/deploying.html#con-securing-client-authentication-str) to get the `user.crt` certificate from the secret.
102
+
-`client.key`: Optional, you can follow this [document](https://strimzi.io/docs/operators/latest/deploying.html#con-securing-client-authentication-str) to get the `user.key` from the secret.
103
+
104
+
> Note: There is a sample script available [here](https://github.com/stolostron/multicluster-global-hub/tree/main/operator/config/samples/transport) to install kafka in `kafka` namespace and create the secret `multicluster-global-hub-transport` in namespace `open-cluster-management` automatically.
105
+
106
+
#### Sizing
107
+
1.[Sizing your RHACM cluster](https://access.redhat.com/documentation/en-us/red_hat_advanced_cluster_management_for_kubernetes/2.7/html/install/installing#sizing-your-cluster)
108
+
109
+
2.**Minimum requirements for Crunchy Postgres**
110
+
111
+
| vCPU | Memory | Storage size | Namespace |
112
+
| ---- | ------ | ------ | ------ |
113
+
| 100m | 2G | 20Gi*3 | hoh-postgres
114
+
| 10m | 500M | N/A | postgres-operator
115
+
116
+
3.**Minimum requirements for Strimzi**
117
+
118
+
| vCPU | Memory | Storage size | Namespace |
119
+
| ---- | ------ | ------ | ------ |
120
+
| 100m | 8G | 20Gi*3 | kafka
121
+
122
+
123
+
#### Network configuration
124
+
As regional hub is also managedcluster of global hub in RHACM. So the network configuration in RHACM is necessary. Details see [RHACM Networking](https://access.redhat.com/documentation/en-us/red_hat_advanced_cluster_management_for_kubernetes/2.7/html/networking/networking)
125
+
126
+
1. Global hub networking requirements
127
+
128
+
| Direction | Protocol | Connection | Port (if specified) | Source address | Destination address |
|Inbound from user's browsers | HTTPS | User need to access the grafana dashboard | 443 | User's browsers | IP address of grafana route |
131
+
| Outbound to Kafka Cluster | HTTPS | Global hub manager need to get data from Kafka cluster | 443 | multicluster-global-hub-manager-xxx pod | Kafka route host |
132
+
| Outbound to Postgres database | HTTPS | Global hub manager need to persist data to Postgres database | 443 | multicluster-global-hub-manager-xxx pod | IP address of Postgres database |
133
+
134
+
2. Regional hub networking requirements
135
+
136
+
| Direction | Protocol | Connection | Port (if specified) | Source address | Destination address |
| Outbound to Kafka Cluster | HTTPS | Global hub agent need to sync cluster info and policy info to Kafka cluster | 443 | multicluster-global-hub-agent pod | Kafka route host |
0 commit comments