Skip to content

Commit 398e548

Browse files
add doc for requirments (#535)
Signed-off-by: ldpliu <[email protected]> Co-authored-by: ldpliu <[email protected]>
1 parent c35b08f commit 398e548

File tree

1 file changed

+61
-16
lines changed

1 file changed

+61
-16
lines changed

doc/README.md

Lines changed: 61 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,8 @@ This document focuses on the features of the multicluster global hub.
1313
- [Workings of Global Hub](./how_global_hub_works.md)
1414
- [Quick Start](#quick-start)
1515
- [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)
1918
- [Installation](#installation)
2019
- [1. Install the multicluster global hub operator on a disconnected environment](#1-install-the-multicluster-global-hub-operator-on-a-disconnected-environment)
2120
- [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).
6968
## Quick Start
7069

7170
### Prerequisites
71+
#### Dependencies
72+
1. **Red Hat Advanced Cluster Management for Kubernetes (RHACM)** 2.7 or later needs to be installed
7273

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)
7475

75-
#### Storage secret
76+
2. **Crunchy Postgres for Kubernetes** 5.0 or later needs to be provided
7677

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/)
7881

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:
8183

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.
8386

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.
8588
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
8790

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/)
9294

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 |
129+
| ------ | ------ | ------ | ------ |------ | ------ |
130+
|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 |
137+
| ------ | ------ | ------ | ------ | ------ | ------ |
138+
| 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 |
94139

95140
### Installation
96141

0 commit comments

Comments
 (0)