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
feat: Add ClusterParamsOverride for geo-replication configuration (#319)
* feat: Add ClusterParamsOverride for geo-replication configuration
- Introduced ClusterParamsOverride struct to allow customization of cluster parameters during geo-replication setup.
- Updated PulsarGeoReplicationSpec to include ClusterParamsOverride.
- Enhanced reconciliation logic to utilize ClusterParamsOverride for authentication and connection parameters.
- Updated CRD and documentation to reflect new configuration options for geo-replication.
* address file path option
Copy file name to clipboardExpand all lines: docs/pulsar_geo_replication.md
+62Lines changed: 62 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,6 +28,7 @@ The `PulsarGeoReplication` resource has the following specifications:
28
28
|`connectionRef`| Reference to the PulsarConnection resource used to connect to the source Pulsar cluster. | Yes |
29
29
|`destinationConnectionRef`| Reference to the PulsarConnection resource used to connect to the destination Pulsar cluster. | Yes |
30
30
|`lifecyclePolicy`| Determines whether to keep or delete the geo-replication configuration when the Kubernetes resource is deleted. Options: `CleanUpAfterDeletion`, `KeepAfterDeletion`. Default is `CleanUpAfterDeletion`. | No |
31
+
|`clusterParamsOverride`| Allows overriding specific cluster parameters when setting up geo-replication. This is useful when the destination cluster requires different configuration than what's defined in the `destinationConnectionRef`. See [Cluster Parameters Override](#cluster-parameters-override) for details. | No |
31
32
32
33
The `PulsarGeoReplication` resource is designed to configure geo-replication between separate Pulsar instances. It creates a new "Cluster" in the destination Pulsar cluster identified by `destinationConnectionRef`. This setup allows configuring the replication of data from the source cluster (identified by `connectionRef`) to the destination cluster. By establishing this connection, the brokers in the source cluster can communicate with and replicate data to the brokers in the destination cluster, enabling geo-replication between the two separate Pulsar instances.
33
34
@@ -49,6 +50,67 @@ Note: When configuring geo-replication between `connectionRef` and `destinationC
49
50
50
51
1. The brokers in the `connectionRef` cluster are able to communicate with the `destinationConnectionRef` cluster, and the `destinationConnectionRef` cluster is able to authenticate the connections from the `connectionRef` cluster.
51
52
53
+
### Cluster Parameters Override
54
+
55
+
The `clusterParamsOverride` field provides a powerful way to customize cluster configuration for geo-replication without modifying the underlying `PulsarConnection` resource. This is particularly useful when:
56
+
57
+
1.**Different authentication is required** for geo-replication compared to regular cluster operations
58
+
2.**Alternative URLs need to be used** for inter-cluster communication
59
+
3.**Specific TLS configurations** are needed for cross-cluster connections
60
+
61
+
#### Supported Override Parameters
62
+
63
+
The `clusterParamsOverride` supports the following fields:
64
+
65
+
-**URL Configuration**:
66
+
-`serviceURL`: Override the HTTP(S) URL for the Pulsar cluster's admin service
67
+
-`serviceSecureURL`: Override the HTTPS URL for secure admin connections
68
+
-`brokerServiceURL`: Override the non-TLS URL for broker connections
69
+
-`brokerServiceSecureURL`: Override the TLS-enabled URL for secure broker connections
70
+
71
+
-**TLS Configuration**:
72
+
-`brokerClientTrustCertsFilePath`: Override the path to trusted TLS certificates
73
+
74
+
-**Authentication Configuration**:
75
+
-`authentication.authPlugin`: Override the authentication plugin class name
76
+
-`authentication.authParameters`: Override the authentication parameters
77
+
78
+
#### Authentication Override Benefits
79
+
80
+
When `authentication` is specified in the override, the system automatically:
81
+
-**Skips secret validation checks** for the destination connection
82
+
-**Avoids unnecessary Secret API calls** for improved performance
83
+
-**Uses the override authentication directly** without processing the destinationConnectionRef authentication
0 commit comments