github.com/1aal/kubeblocks@v0.0.0-20231107070852-e1c03e598921/deploy/pulsar/config/proxy-config-constraint.cue (about) 1 // Copyright (C) 2022-2023 ApeCloud Co., Ltd 2 // 3 // This file is part of KubeBlocks project 4 // 5 // This program is free software: you can redistribute it and/or modify 6 // it under the terms of the GNU Affero General Public License as published by 7 // the Free Software Foundation, either version 3 of the License, or 8 // (at your option) any later version. 9 // 10 // This program is distributed in the hope that it will be useful 11 // but WITHOUT ANY WARRANTY; without even the implied warranty of 12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 // GNU Affero General Public License for more details. 14 // 15 // You should have received a copy of the GNU Affero General Public License 16 // along with this program. If not, see <http://www.gnu.org/licenses/>. 17 18 #PulsarProxyParameter: { 19 // The ZooKeeper quorum connection string (as a comma-separated list) 20 // @deprecated 21 zookeeperServers: string 22 23 // The metadata store URL. \n Examples: \n * zk:my-zk-1:2181,my-zk-2:2181,my-zk-3:2181\n * my-zk-1:2181,my-zk-2:2181,my-zk-3:2181 (will default to ZooKeeper when the schema is not specified)\n * zk:my-zk-1:2181,my-zk-2:2181,my-zk-3:2181/my-chroot-path (to add a ZK chroot path)\n 24 metadataStoreUrl: string 25 26 // Configuration store connection string (as a comma-separated list). Deprecated in favor of `configurationMetadataStoreUrl` 27 // @deprecated 28 configurationStoreServers: string 29 30 // Global ZooKeeper quorum connection string (as a comma-separated list) 31 // @deprecated 32 globalZookeeperServers: string 33 34 // The metadata store URL for the configuration data. If empty, we fall back to use metadataStoreUrl 35 configurationMetadataStoreUrl: string 36 37 // Metadata store session timeout in milliseconds. 38 metadataStoreSessionTimeoutMillis: int 39 40 // Metadata store cache expiry time in seconds. 41 metadataStoreCacheExpirySeconds: int 42 43 // Is metadata store read-only operations. 44 metadataStoreAllowReadOnlyOperations: bool 45 46 // Max size of messages. 47 maxMessageSize: int 48 49 // ZooKeeper session timeout in milliseconds. @deprecated - Use metadataStoreSessionTimeoutMillis instead. 50 // @deprecated 51 zookeeperSessionTimeoutMs: int 52 53 // ZooKeeper cache expiry time in seconds. @deprecated - Use metadataStoreCacheExpirySeconds instead. 54 // @deprecated 55 zooKeeperCacheExpirySeconds: int 56 57 // Is zooKeeper allow read-only operations. 58 // @deprecated 59 zooKeeperAllowReadOnlyOperations: bool 60 61 // The service url points to the broker cluster. URL must have the pulsar:// prefix. 62 brokerServiceURL: string 63 64 // The tls service url points to the broker cluster. URL must have the pulsar+ssl:// prefix. 65 brokerServiceURLTLS: string 66 67 // The web service url points to the broker cluster 68 brokerWebServiceURL: string 69 70 // The tls web service url points to the broker cluster 71 brokerWebServiceURLTLS: string 72 73 // The web service url points to the function worker cluster. Only configure it when you setup function workers in a separate cluster 74 functionWorkerWebServiceURL: string 75 76 // The tls web service url points to the function worker cluster. Only configure it when you setup function workers in a separate cluster 77 functionWorkerWebServiceURLTLS: string 78 79 // When enabled, checks that the target broker is active before connecting. zookeeperServers and configurationStoreServers must be configured in proxy configuration for retrieving the active brokers. 80 checkActiveBrokers: bool 81 82 // Broker proxy connect timeout.\nThe timeout value for Broker proxy connect timeout is in millisecond. Set to 0 to disable. 83 brokerProxyConnectTimeoutMs: int 84 85 // Broker proxy read timeout.\nThe timeout value for Broker proxy read timeout is in millisecond. Set to 0 to disable. 86 brokerProxyReadTimeoutMs: int 87 88 // Allowed broker target host names. Supports multiple comma separated entries and a wildcard. 89 brokerProxyAllowedHostNames: string 90 91 // Allowed broker target ip addresses or ip networks / netmasks. Supports multiple comma separated entries. 92 brokerProxyAllowedIPAddresses: string 93 94 // Allowed broker target ports 95 brokerProxyAllowedTargetPorts: string 96 97 // Hostname or IP address the service binds on 98 bindAddress: string 99 100 // Hostname or IP address the service advertises to the outside world. If not set, the value of `InetAddress.getLocalHost().getCanonicalHostName()` is used. 101 advertisedAddress: string 102 103 // Enable or disable the proxy protocol. 104 haProxyProtocolEnabled: bool 105 106 // Enables zero-copy transport of data across network interfaces using the spice. Zero copy mode cannot be used when TLS is enabled or when proxyLogLevel is > 0. 107 proxyZeroCopyModeEnabled: bool 108 109 // The port for serving binary protobuf request 110 servicePort: int 111 112 // The port for serving tls secured binary protobuf request 113 servicePortTls: int 114 115 // The port for serving http requests 116 webServicePort: int 117 118 // The port for serving https requests 119 webServicePortTls: int 120 121 // Specify the TLS provider for the web service, available values can be SunJSSE, Conscrypt and etc. 122 webServiceTlsProvider: string 123 124 // Specify the tls protocols the proxy's web service will use to negotiate during TLS Handshake.\n\nExample:- [TLSv1.3, TLSv1.2] 125 webServiceTlsProtocols: string 126 127 // Specify the tls cipher the proxy's web service will use to negotiate during TLS Handshake.\n\nExample:- [TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256] 128 webServiceTlsCiphers: string 129 130 // The directory where nar Extraction happens 131 narExtractionDirectory: string 132 133 // Proxy log level, default is 0. 0: Do not log any tcp channel info 1: Parse and log any tcp channel info and command info without message body 2: Parse and log channel info, command info and message body 134 proxyLogLevel: int 135 136 // Path for the file used to determine the rotation status for the proxy instance when responding to service discovery health checks 137 statusFilePath: string 138 139 // A list of role names (a comma-separated list of strings) that are treated as `super-user`, meaning they will be able to do all admin operations and publish & consume from all topics 140 superUserRoles: string 141 142 // Whether authentication is enabled for the Pulsar proxy 143 authenticationEnabled: bool 144 145 // Authentication provider name list (a comma-separated list of class names 146 authenticationProviders: string 147 148 // Whether authorization is enforced by the Pulsar proxy 149 authorizationEnabled: bool 150 151 // Authorization provider as a fully qualified class name 152 authorizationProvider: string 153 154 // Whether client authorization credentials are forwarded to the broker for re-authorization.Authentication must be enabled via configuring `authenticationEnabled` to be true for thisto take effect 155 forwardAuthorizationCredentials: bool 156 157 // Interval of time for checking for expired authentication credentials. Disable by setting to 0. 158 authenticationRefreshCheckSeconds: int 159 160 // Whether the '/metrics' endpoint requires authentication. Defaults to true.'authenticationEnabled' must also be set for this to take effect. 161 authenticateMetricsEndpoint: bool 162 163 // This is a regexp, which limits the range of possible ids which can connect to the Broker using SASL.\n Default value is: \".*pulsar.*\", so only clients whose id contains 'pulsar' are allowed to connect. 164 saslJaasClientAllowedIds: string 165 166 // Service Principal, for login context name. Default value is \"PulsarProxy\". 167 saslJaasServerSectionName: string 168 169 // Path to file containing the secret to be used to SaslRoleTokenSigner\nThe secret can be specified like:\nsaslJaasServerRoleTokenSignerSecretPath=file:///my/saslRoleTokenSignerSecret.key. 170 saslJaasServerRoleTokenSignerSecretPath: string 171 172 // kerberos kinit command. 173 kinitCommand: string 174 175 // Max concurrent inbound connections. The proxy will reject requests beyond that 176 maxConcurrentInboundConnections: int 177 178 // The maximum number of connections per IP. If it exceeds, new connections are rejected. 179 maxConcurrentInboundConnectionsPerIp: int 180 181 // Max concurrent lookup requests. The proxy will reject requests beyond that 182 maxConcurrentLookupRequests: int 183 184 // The authentication plugin used by the Pulsar proxy to authenticate with Pulsar brokers 185 brokerClientAuthenticationPlugin: string 186 187 // The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers 188 brokerClientAuthenticationParameters: string 189 190 // The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers 191 brokerClientTrustCertsFilePath: string 192 193 // The path to TLS private key used by the Pulsar proxy to authenticate with Pulsar brokers 194 brokerClientKeyFilePath: string 195 196 // The path to the TLS certificate used by the Pulsar proxy to authenticate with Pulsar brokers 197 brokerClientCertificateFilePath: string 198 199 // Whether TLS is enabled when communicating with Pulsar brokers 200 tlsEnabledWithBroker: bool 201 202 // When this parameter is not empty, unauthenticated users perform as anonymousUserRole 203 anonymousUserRole: string 204 205 // Tls cert refresh duration in seconds (set 0 to check on every new connection) 206 tlsCertRefreshCheckDurationSec: int 207 208 // Path for the TLS certificate file 209 tlsCertificateFilePath: string 210 211 // Path for the TLS private key file 212 tlsKeyFilePath: string 213 214 // Path for the trusted TLS certificate file.\n\nThis cert is used to verify that any certs presented by connecting clients are signed by a certificate authority. If this verification fails, then the certs are untrusted and the connections are dropped 215 tlsTrustCertsFilePath: string 216 217 // Accept untrusted TLS certificate from client.\n\nIf true, a client with a cert which cannot be verified with the `tlsTrustCertsFilePath` cert will be allowed to connect to the server, though the cert will not be used for client authentication 218 tlsAllowInsecureConnection: bool 219 220 // Whether the hostname is validated when the proxy creates a TLS connection with brokers 221 tlsHostnameVerificationEnabled: bool 222 223 // Specify the tls protocols the broker will use to negotiate during TLS handshake (a comma-separated list of protocol names).\n\nExamples:- [TLSv1.3, TLSv1.2] 224 tlsProtocols: string 225 226 // Specify the tls cipher the proxy will use to negotiate during TLS Handshake (a comma-separated list of ciphers).\n\nExamples:- [TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256] 227 tlsCiphers: string 228 229 // Whether client certificates are required for TLS.\n\n Connections are rejected if the client certificate isn't trusted 230 tlsRequireTrustedClientCertOnConnect: bool 231 232 // Enable TLS with KeyStore type configuration for proxy 233 tlsEnabledWithKeyStore: bool 234 235 // Specify the TLS provider for the broker service: \nWhen using TLS authentication with CACert, the valid value is either OPENSSL or JDK.\nWhen using TLS authentication with KeyStore, available values can be SunJSSE, Conscrypt and etc. 236 tlsProvider: string 237 238 // TLS KeyStore type configuration for proxy: JKS, PKCS12 239 tlsKeyStoreType: string 240 241 // TLS KeyStore path for proxy 242 tlsKeyStore: string 243 244 // TLS KeyStore password for proxy 245 tlsKeyStorePassword: string 246 247 // TLS TrustStore type configuration for proxy: JKS, PKCS12 248 tlsTrustStoreType: string 249 250 // TLS TrustStore path for proxy 251 tlsTrustStore: string 252 253 // TLS TrustStore password for proxy, null means empty password. 254 tlsTrustStorePassword: string 255 256 // Whether the Pulsar proxy use KeyStore type to authenticate with Pulsar brokers 257 brokerClientTlsEnabledWithKeyStore: bool 258 259 // The TLS Provider used by the Pulsar proxy to authenticate with Pulsar brokers 260 brokerClientSslProvider: string 261 262 // TLS KeyStore type configuration for proxy: JKS, PKCS12 used by the Pulsar proxy to authenticate with Pulsar brokers 263 brokerClientTlsKeyStoreType: string 264 265 // TLS KeyStore path for internal client, used by the Pulsar proxy to authenticate with Pulsar brokers 266 brokerClientTlsKeyStore: string 267 268 // TLS KeyStore password for proxy, used by the Pulsar proxy to authenticate with Pulsar brokers 269 brokerClientTlsKeyStorePassword: string 270 271 // TLS TrustStore type configuration for proxy: JKS, PKCS12 used by the Pulsar proxy to authenticate with Pulsar brokers 272 brokerClientTlsTrustStoreType: string 273 274 // TLS TrustStore path for proxy, used by the Pulsar proxy to authenticate with Pulsar brokers 275 brokerClientTlsTrustStore: string 276 277 // TLS TrustStore password for proxy, used by the Pulsar proxy to authenticate with Pulsar brokers 278 brokerClientTlsTrustStorePassword: string 279 280 // Specify the tls cipher the proxy will use to negotiate during TLS Handshake (a comma-separated list of ciphers).\n\nExamples:- [TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256].\n used by the Pulsar proxy to authenticate with Pulsar brokers 281 brokerClientTlsCiphers: string 282 283 // Specify the tls protocols the broker will use to negotiate during TLS handshake (a comma-separated list of protocol names).\n\nExamples:- [TLSv1.3, TLSv1.2] \n used by the Pulsar proxy to authenticate with Pulsar brokers 284 brokerClientTlsProtocols: string 285 286 // Http directs to redirect to non-pulsar services 287 httpReverseProxyConfigs: string 288 289 // Http output buffer size.\n\nThe amount of data that will be buffered for http requests before it is flushed to the channel. A larger buffer size may result in higher http throughput though it may take longer for the client to see data. If using HTTP streaming via the reverse proxy, this should be set to the minimum value, 1, so that clients see the data as soon as possible. 290 httpOutputBufferSize: int 291 292 // The maximum size in bytes of the request header. Larger headers will allow for more and/or larger cookies plus larger form content encoded in a URL. However, larger headers consume more memory and can make a server more vulnerable to denial of service attacks. 293 httpMaxRequestHeaderSize: int 294 295 // Http input buffer max size.\n\nThe maximum amount of data that will be buffered for incoming http requests so that the request body can be replayed when the backend broker issues a redirect response. 296 httpInputMaxReplayBufferSize: int 297 298 // Http proxy timeout.\n\nThe timeout value for HTTP proxy is in millisecond. 299 httpProxyTimeout: int 300 301 // Number of threads to use for HTTP requests processing 302 httpNumThreads: int 303 304 // Max concurrent web requests 305 maxConcurrentHttpRequests: int 306 307 // Capacity for thread pool queue in the HTTP server Default is set to 8192. 308 httpServerThreadPoolQueueSize: int 309 310 // Capacity for accept queue in the HTTP server Default is set to 8192. 311 httpServerAcceptQueueSize: int 312 313 // Maximum number of inbound http connections. (0 to disable limiting) 314 maxHttpServerConnections: int 315 316 // Number of threads used for Netty IO. Default is set to `2 * Runtime.getRuntime().availableProcessors()` 317 numIOThreads: int 318 319 // Number of threads used for Netty Acceptor. Default is set to `1` 320 numAcceptorThreads: int 321 322 // The directory to locate proxy additional servlet 323 proxyAdditionalServletDirectory: string 324 325 // The directory to locate proxy additional servlet 326 additionalServletDirectory: string 327 328 // List of proxy additional servlet to load, which is a list of proxy additional servlet names 329 proxyAdditionalServlets: string 330 331 // List of proxy additional servlet to load, which is a list of proxy additional servlet names 332 additionalServlets: string 333 334 // Enable the enforcement of limits on the incoming HTTP requests 335 httpRequestsLimitEnabled: bool 336 337 // Max HTTP requests per seconds allowed. The excess of requests will be rejected with HTTP code 429 (Too many requests) 338 httpRequestsMaxPerSecond: float 339 340 // The directory to locate proxy extensions 341 proxyExtensionsDirectory: string 342 343 // List of messaging protocols to load, which is a list of extension names 344 proxyExtensions: string 345 346 // Use a separate ThreadPool for each Proxy Extension 347 useSeparateThreadPoolForProxyExtensions: bool 348 349 // Enable or disable the WebSocket servlet 350 webSocketServiceEnabled: bool 351 352 // Interval of time to sending the ping to keep alive in WebSocket proxy. This value greater than 0 means enabled 353 webSocketPingDurationSeconds: int 354 355 // Name of the cluster to which this broker belongs to 356 clusterName: string 357 358 ... 359 } 360 361 configuration: #PulsarProxyParameter & { 362 }