Control-Plane configuration

Here are all options to configure the control-plane:

  1. # Environment Type, can be either "kubernetes" or "universal"
  2. environment: universal # ENV: KUMA_ENVIRONMENT
  3. mode: standalone # ENV: KUMA_MODE By default autoconfigured to standalone
  4. # Resource Store configuration
  5. store:
  6. # Type of Store used in the Control Plane. Can be either "kubernetes", "postgres" or "memory"
  7. type: memory # ENV: KUMA_STORE_TYPE
  8. # Kubernetes Store configuration (used when store.type=kubernetes)
  9. kubernetes:
  10. # Namespace where Control Plane is installed to.
  11. systemNamespace: kuma-system # ENV: KUMA_STORE_KUBERNETES_SYSTEM_NAMESPACE
  12. # Postgres Store configuration (used when store.type=postgres)
  13. postgres:
  14. # Host of the Postgres DB
  15. host: 127.0.0.1 # ENV: KUMA_STORE_POSTGRES_HOST
  16. # Port of the Postgres DB
  17. port: 15432 # ENV: KUMA_STORE_POSTGRES_PORT
  18. # User of the Postgres DB
  19. user: kuma # ENV: KUMA_STORE_POSTGRES_USER
  20. # Password of the Postgres DB
  21. password: kuma # ENV: KUMA_STORE_POSTGRES_PASSWORD
  22. # Database name of the Postgres DB
  23. dbName: kuma # ENV: KUMA_STORE_POSTGRES_DB_NAME
  24. # Connection Timeout to the DB in seconds
  25. connectionTimeout: 5 # ENV: KUMA_STORE_POSTGRES_CONNECTION_TIMEOUT
  26. # Maximum number of open connections to the database
  27. # `0` value means number of open connections is unlimited
  28. maxOpenConnections: 50 # ENV: KUMA_STORE_POSTGRES_MAX_OPEN_CONNECTIONS
  29. # Maximum number of connections in the idle connection pool
  30. # <0 value means no idle connections and 0 means default max idle connections
  31. maxIdleConnections: 50 # ENV: KUMA_STORE_POSTGRES_MAX_IDLE_CONNECTIONS
  32. # TLS settings
  33. tls:
  34. # Mode of TLS connection. Available values (disable, verifyNone, verifyCa, verifyFull)
  35. mode: disable # ENV: KUMA_STORE_POSTGRES_TLS_MODE
  36. # Path to TLS Certificate of the client. Used in verifyCa and verifyFull modes
  37. certPath: # ENV: KUMA_STORE_POSTGRES_TLS_CERT_PATH
  38. # Path to TLS Key of the client. Used in verifyCa and verifyFull modes
  39. keyPath: # ENV: KUMA_STORE_POSTGRES_TLS_KEY_PATH
  40. # Path to the root certificate. Used in verifyCa and verifyFull modes.
  41. caPath: # ENV: KUMA_STORE_POSTGRES_TLS_ROOT_CERT_PATH
  42. # MinReconnectInterval controls the duration to wait before trying to
  43. # re-establish the database connection after connection loss. After each
  44. # consecutive failure this interval is doubled, until MaxReconnectInterval
  45. # is reached. Successfully completing the connection establishment procedure
  46. # resets the interval back to MinReconnectInterval.
  47. minReconnectInterval: "10s" # ENV: KUMA_STORE_POSTGRES_MIN_RECONNECT_INTERVAL
  48. # MaxReconnectInterval controls the maximum possible duration to wait before trying
  49. # to re-establish the database connection after connection loss.
  50. maxReconnectInterval: "60s" # ENV: KUMA_STORE_POSTGRES_MAX_RECONNECT_INTERVAL
  51. # Cache for read only operations. This cache is local to the instance of the control plane.
  52. cache:
  53. # If true then cache is enabled
  54. enabled: true # ENV: KUMA_STORE_CACHE_ENABLED
  55. # Expiration time for elements in cache.
  56. expirationTime: 1s # ENV: KUMA_STORE_CACHE_EXPIRATION_TIME
  57. # Upsert configuration
  58. upsert:
  59. # Base time for exponential backoff on upsert (get and update) operations when retry is enabled
  60. conflictRetryBaseBackoff: 100ms # ENV: KUMA_STORE_UPSERT_CONFLICT_RETRY_BASE_BACKOFF
  61. # Max retries on upsert (get and update) operation when retry is enabled
  62. conflictRetryMaxTimes: 5 # ENV: KUMA_STORE_UPSERT_CONFLICT_RETRY_MAX_TIMES
  63. # Configuration of Bootstrap Server, which provides bootstrap config to Dataplanes
  64. bootstrapServer:
  65. # The version of Envoy API (available: "v3")
  66. apiVersion: v3
  67. # Parameters of bootstrap configuration
  68. params:
  69. # Address of Envoy Admin
  70. adminAddress: 127.0.0.1 # ENV: KUMA_BOOTSTRAP_SERVER_PARAMS_ADMIN_ADDRESS
  71. # Port of Envoy Admin
  72. adminPort: 9901 # ENV: KUMA_BOOTSTRAP_SERVER_PARAMS_ADMIN_PORT
  73. # Path to access log file of Envoy Admin
  74. adminAccessLogPath: /dev/null # ENV: KUMA_BOOTSTRAP_SERVER_PARAMS_ADMIN_ACCESS_LOG_PATH
  75. # Host of XDS Server. By default it is the same host as the one used by kuma-dp to connect to the control plane
  76. xdsHost: "" # ENV: KUMA_BOOTSTRAP_SERVER_PARAMS_XDS_HOST
  77. # Port of XDS Server. By default it is autoconfigured from KUMA_XDS_SERVER_GRPC_PORT
  78. xdsPort: 0 # ENV: KUMA_BOOTSTRAP_SERVER_PARAMS_XDS_PORT
  79. # Connection timeout to the XDS Server
  80. xdsConnectTimeout: 1s # ENV: KUMA_BOOTSTRAP_SERVER_PARAMS_XDS_CONNECT_TIMEOUT
  81. # Monitoring Assignment Discovery Service (MADS) server configuration
  82. monitoringAssignmentServer:
  83. # Port of a gRPC server that serves Monitoring Assignment Discovery Service (MADS).
  84. port: 5676 # ENV: KUMA_MONITORING_ASSIGNMENT_SERVER_PORT
  85. # Which MADS API versions to serve
  86. apiVersions: # ENV: KUMA_MONITORING_ASSIGNMENT_SERVER_API_VERSIONS
  87. - v1
  88. # Interval for re-generating monitoring assignments for clients connected to the Control Plane.
  89. assignmentRefreshInterval: 1s # ENV: KUMA_MONITORING_ASSIGNMENT_SERVER_ASSIGNMENT_REFRESH_INTERVAL
  90. # The default timeout for a single fetch-based discovery request, if not specified
  91. defaultFetchTimeout: 30s # ENV: KUMA_MONITORING_ASSIGNMENT_SERVER_DEFAULT_FETCH_TIMEOUT
  92. # Envoy XDS server configuration
  93. xdsServer:
  94. # Interval for re-genarting configuration for Dataplanes connected to the Control Plane
  95. dataplaneConfigurationRefreshInterval: 1s # ENV: KUMA_XDS_SERVER_DATAPLANE_CONFIGURATION_REFRESH_INTERVAL
  96. # Interval for flushing status of Dataplanes connected to the Control Plane
  97. dataplaneStatusFlushInterval: 10s # ENV: KUMA_XDS_SERVER_DATAPLANE_STATUS_FLUSH_INTERVAL
  98. # Backoff that is executed when Control Plane is sending the response that was previously rejected by Dataplane
  99. nackBackoff: 5s # ENV: KUMA_XDS_SERVER_NACK_BACKOFF
  100. # API Server configuration
  101. apiServer:
  102. # HTTP configuration of the API Server
  103. http:
  104. # If true then API Server will be served on HTTP
  105. enabled: true # ENV: KUMA_API_SERVER_HTTP_ENABLED
  106. # Network interface on which HTTP API Server will be exposed
  107. interface: 0.0.0.0 # ENV: KUMA_API_SERVER_HTTP_INTERFACE
  108. # Port of the API Server
  109. port: 5681 # ENV: KUMA_API_SERVER_HTTP_PORT
  110. # HTTPS configuration of the API Server
  111. https:
  112. # If true then API Server will be served on HTTPS
  113. enabled: true # ENV: KUMA_API_SERVER_HTTPS_ENABLED
  114. # Network interface on which HTTPS API Server will be exposed
  115. interface: 0.0.0.0 # ENV: KUMA_API_SERVER_HTTPS_INTERFACE
  116. # Port of the HTTPS API Server
  117. port: 5682 # ENV: KUMA_API_SERVER_HTTPS_PORT
  118. # Path to TLS certificate file. Autoconfigured from KUMA_GENERAL_TLS_CERT_FILE if empty
  119. tlsCertFile: "" # ENV: KUMA_API_SERVER_HTTPS_TLS_CERT_FILE
  120. # Path to TLS key file. Autoconfigured from KUMA_GENERAL_TLS_KEY_FILE if empty
  121. tlsKeyFile: "" # ENV: KUMA_API_SERVER_HTTPS_TLS_KEY_FILE
  122. # Authentication configuration for administrative endpoints like Dataplane Token or managing Secrets
  123. auth:
  124. # Directory of authorized client certificates (only validate in HTTPS)
  125. clientCertsDir: "" # ENV: KUMA_API_SERVER_AUTH_CLIENT_CERTS_DIR
  126. # Api Server Authentication configuration
  127. authn:
  128. # Type of authentication mechanism (available values: "adminClientCerts", "tokens")
  129. type: tokens # ENV: KUMA_API_SERVER_AUTHN_TYPE
  130. # Localhost is authenticated as a user admin of group admin
  131. localhostIsAdmin: true # ENV: KUMA_API_SERVER_AUTHN_LOCALHOST_IS_ADMIN
  132. # Configuration for tokens authentication
  133. tokens:
  134. # If true then User Token with name admin and group admin will be created and placed as admin-user-token Kuma secret
  135. bootstrapAdminToken: true # ENV: KUMA_API_SERVER_AUTHN_TOKENS_BOOTSTRAP_ADMIN_TOKEN
  136. # If true, then API Server will operate in read only mode (serving GET requests)
  137. readOnly: false # ENV: KUMA_API_SERVER_READ_ONLY
  138. # Allowed domains for Cross-Origin Resource Sharing. The value can be either domain or regexp
  139. corsAllowedDomains:
  140. - ".*" # ENV: KUMA_API_SERVER_CORS_ALLOWED_DOMAINS
  141. # Environment-specific configuration
  142. runtime:
  143. # Kubernetes-specific configuration
  144. kubernetes:
  145. # Service name of the Kuma Control Plane. It is used to point Kuma DP to proper URL.
  146. controlPlaneServiceName: kuma-control-plane # ENV: KUMA_RUNTIME_KUBERNETES_CONTROL_PLANE_SERVICE_NAME
  147. # Name of Service Account that is used to run the Control Plane
  148. serviceAccountName: "system:serviceaccount:kuma-system:kuma-control-plane" # ENV: KUMA_RUNTIME_KUBERNETES_SERVICE_ACCOUNT_NAME
  149. # Admission WebHook Server configuration
  150. admissionServer:
  151. # Address the Admission WebHook Server should be listening on
  152. address: # ENV: KUMA_RUNTIME_KUBERNETES_ADMISSION_SERVER_ADDRESS
  153. # Port the Admission WebHook Server should be listening on
  154. port: 5443 # ENV: KUMA_RUNTIME_KUBERNETES_ADMISSION_SERVER_PORT
  155. # Directory with a TLS cert and private key for the Admission WebHook Server.
  156. # TLS certificate file must be named `tls.crt`.
  157. # TLS key file must be named `tls.key`.
  158. certDir: # ENV: kuma_runtime_kubernetes_admission_server_cert_dir
  159. # Injector defines configuration of a Kuma Sidecar Injector.
  160. injector:
  161. # if true runs kuma-cp in CNI compatible mode
  162. cniEnabled: false # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_CNI_ENABLED
  163. # list of exceptions for Kuma injection
  164. exceptions:
  165. # a map of labels for exception. If pod matches label with given value Kuma won't be injected. Specify '*' to match any value.
  166. labels:
  167. openshift.io/build.name: "*"
  168. openshift.io/deployer-pod-for.name: "*"
  169. # VirtualProbesEnabled enables automatic converting HttpGet probes to virtual. Virtual probe
  170. # serves on sub-path of insecure port 'virtualProbesPort',
  171. # i.e :8080/health/readiness -> :9000/8080/health/readiness where 9000 is virtualProbesPort
  172. virtualProbesEnabled: true # ENV: KUMA_RUNTIME_KUBERNETES_VIRTUAL_PROBES_ENABLED
  173. # VirtualProbesPort is a port for exposing virtual probes which are not secured by mTLS
  174. virtualProbesPort: 9000 # ENV: KUMA_RUNTIME_KUBERNETES_VIRTUAL_PROBES_PORT
  175. # CaCertFile is CA certificate which will be used to verify a connection to the control plane.
  176. caCertFile: # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_CA_CERT_FILE
  177. # SidecarContainer defines configuration of the Kuma sidecar container.
  178. sidecarContainer:
  179. # Image name.
  180. image: kuma/kuma-dp:latest # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_IMAGE
  181. # Redirect port for inbound traffic.
  182. redirectPortInbound: 15006 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_REDIRECT_PORT_INBOUND
  183. # Redirect port for inbound traffic.
  184. redirectPortInboundV6: 15010 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_REDIRECT_PORT_INBOUND_V6
  185. # Redirect port for outbound traffic.
  186. redirectPortOutbound: 15001 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_REDIRECT_PORT_OUTBOUND
  187. # User ID.
  188. uid: 5678 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_UID
  189. # Group ID.
  190. gid: 5678 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_GUI
  191. # Drain time for listeners.
  192. drainTime: 30s # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_DRAIN_TIME
  193. # Readiness probe.
  194. readinessProbe:
  195. # Number of seconds after the container has started before readiness probes are initiated.
  196. initialDelaySeconds: 1 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_READINESS_PROBE_INITIAL_DELAY_SECONDS
  197. # Number of seconds after which the probe times out.
  198. timeoutSeconds: 3 # ENV : KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_READINESS_PROBE_TIMEOUT_SECONDS
  199. # Number of seconds after which the probe times out.
  200. periodSeconds: 5 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_READINESS_PROBE_PERIOD_SECONDS
  201. # Minimum consecutive successes for the probe to be considered successful after having failed.
  202. successThreshold: 1 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_READINESS_PROBE_SUCCESS_THRESHOLD
  203. # Minimum consecutive failures for the probe to be considered failed after having succeeded.
  204. failureThreshold: 12 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_READINESS_PROBE_FAILURE_THRESHOLD
  205. # Liveness probe.
  206. livenessProbe:
  207. # Number of seconds after the container has started before liveness probes are initiated.
  208. initialDelaySeconds: 60 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_LIVENESS_PROBE_INITIAL_DELAY_SECONDS
  209. # Number of seconds after which the probe times out.
  210. timeoutSeconds: 3 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_LIVENESS_PROBE_TIMEOUT_SECONDS
  211. # How often (in seconds) to perform the probe.
  212. periodSeconds: 5 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_LIVENESS_PROBE_PERIOD_SECONDS
  213. # Minimum consecutive failures for the probe to be considered failed after having succeeded.
  214. failureThreshold: 12 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_LIVENESS_PROBE_FAILURE_THRESHOLD
  215. # Compute resource requirements.
  216. resources:
  217. # Minimum amount of compute resources required.
  218. requests:
  219. # CPU, in cores. (500m = .5 cores)
  220. cpu: 50m # ENV: KUMA_INJECTOR_SIDECAR_CONTAINER_RESOURCES_REQUESTS_CPU
  221. # Memory, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)
  222. memory: 64Mi # ENV: KUMA_INJECTOR_SIDECAR_CONTAINER_RESOURCES_REQUESTS_MEMORY
  223. # Maximum amount of compute resources allowed.
  224. limits:
  225. # CPU, in cores. (500m = .5 cores)
  226. cpu: 1000m # ENV: KUMA_INJECTOR_SIDECAR_CONTAINER_RESOURCES_LIMITS_CPU
  227. # Memory, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)
  228. memory: 512Mi # ENV: KUMA_INJECTOR_SIDECAR_CONTAINER_RESOURCES_LIMITS_MEMORY
  229. # Additional environment variables that can be placed on Kuma DP sidecar
  230. envVars: # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_ENV_VARS
  231. # InitContainer defines configuration of the Kuma init container
  232. initContainer:
  233. # Image name.
  234. image: kuma/kuma-init:latest # ENV: KUMA_INJECTOR_INIT_CONTAINER_IMAGE
  235. # Configuration for a traffic that is intercepted by sidecar
  236. sidecarTraffic:
  237. # List of inbound ports that will be excluded from interception.
  238. # This setting is applied on every pod unless traffic.kuma.io/exclude-inbound-ports annotation is specified on Pod.
  239. excludeInboundPorts: [ ] # ENV: KUMA_RUNTIME_KUBERNETES_SIDECAR_TRAFFIC_EXCLUDE_INBOUND_PORTS
  240. # List of outbound ports that will be excluded from interception.
  241. # This setting is applied on every pod unless traffic.kuma.io/exclude-oubound-ports annotation is specified on Pod.
  242. excludeOutboundPorts: [ ] # ENV: KUMA_RUNTIME_KUBERNETES_SIDECAR_TRAFFIC_EXCLUDE_OUTBOUND_PORTS
  243. builtinDNS:
  244. # Use the built-in DNS
  245. enabled: true # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_BUILTIN_DNS_ENABLED
  246. # Redirect port for DNS
  247. port: 15053 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_BUILTIN_DNS_PORT
  248. marshalingCacheExpirationTime: 5m # ENV: KUMA_RUNTIME_KUBERNETES_MARSHALING_CACHE_EXPIRATION_TIME
  249. # Universal-specific configuration
  250. universal:
  251. # DataplaneCleanupAge defines how long Dataplane should be offline to be cleaned up by GC
  252. dataplaneCleanupAge: 72h0m0s # ENV: KUMA_RUNTIME_UNIVERSAL_DATAPLANE_CLEANUP_AGE
  253. # Default Kuma entities configuration
  254. defaults:
  255. skipMeshCreation: false # ENV: KUMA_DEFAULTS_SKIP_MESH_CREATION
  256. # Metrics configuration
  257. metrics:
  258. dataplane:
  259. # Enables collecting metrics from Dataplane
  260. enabled: true # ENV: KUMA_METRICS_DATAPLANE_ENABLED
  261. # How many latest subscriptions will be stored in DataplaneInsight object, if equals 0 then unlimited
  262. subscriptionLimit: 2 # ENV: KUMA_METRICS_DATAPLANE_SUBSCRIPTION_LIMIT
  263. # How long data plane proxy can stay Online without active xDS connection
  264. idleTimeout: 5m # ENV: KUMA_METRICS_DATAPLANE_IDLE_TIMEOUT
  265. zone:
  266. # Enables collecting metrics from Zone
  267. enabled: true # ENV: KUMA_METRICS_ZONE_ENABLED
  268. # How many latest subscriptions will be stored in ZoneInsights object, if equals 0 then unlimited
  269. subscriptionLimit: 10 # ENV: KUMA_METRICS_ZONE_SUBSCRIPTION_LIMIT
  270. # How long zone can stay Online without active KDS connection
  271. idleTimeout: 5m # ENV: KUMA_METRICS_ZONE_IDLE_TIMEOUT
  272. mesh:
  273. # Min time that should pass between MeshInsight resync
  274. minResyncTimeout: 1s # ENV: KUMA_METRICS_MESH_MIN_RESYNC_TIMEOUT
  275. # Max time that MeshInsight could spend without resync
  276. maxResyncTimeout: 20s # ENV: KUMA_METRICS_MESH_MAX_RESYNC_TIMEOUT
  277. # Reports configuration
  278. reports:
  279. # If true then usage stats will be reported
  280. enabled: false # ENV: KUMA_REPORTS_ENABLED
  281. # General configuration
  282. general:
  283. # dnsCacheTTL represents duration for how long Kuma CP will cache result of resolving dataplane's domain name
  284. dnsCacheTTL: 10s # ENV: KUMA_GENERAL_DNS_CACHE_TTL
  285. # TlsCertFile defines a path to a file with PEM-encoded TLS cert that will be used across all the Kuma Servers.
  286. tlsCertFile: # ENV: KUMA_GENERAL_TLS_CERT_FILE
  287. # TlsKeyFile defines a path to a file with PEM-encoded TLS key that will be used across all the Kuma Servers.
  288. tlsKeyFile: # ENV: KUMA_GENERAL_TLS_KEY_FILE
  289. workDir: ""
  290. # Web GUI Server configuration
  291. guiServer:
  292. # URL of the Api Server
  293. apiServerUrl: # ENV: KUMA_GUI_SERVER_API_SERVER_URL
  294. # DNS Server configuration
  295. dnsServer:
  296. # The domain that the server will resolve the services for
  297. domain: "mesh" # ENV: KUMA_DNS_SERVER_DOMAIN
  298. # Port on which the server is exposed
  299. port: 5653 # ENV: KUMA_DNS_SERVER_PORT
  300. # The CIDR range used to allocate
  301. CIDR: "240.0.0.0/4" # ENV: KUMA_DNS_SERVER_CIDR
  302. # Will create a service "<kuma.io/service>.mesh" dns entry for every service.
  303. serviceVipEnabled: true # ENV: KUMA_DNS_SERVER_SERVICE_VIP_ENABLED
  304. # Multizone mode
  305. multizone:
  306. global:
  307. kds:
  308. # Port of a gRPC server that serves Kuma Discovery Service (KDS).
  309. grpcPort: 5685 # ENV: KUMA_MULTIZONE_GLOBAL_KDS_GRPC_PORT
  310. # Interval for refreshing state of the world
  311. refreshInterval: 1s # ENV: KUMA_MULTIZONE_GLOBAL_KDS_REFRESH_INTERVAL
  312. # Interval for flushing Zone Insights (stats of multi-zone communication)
  313. zoneInsightFlushInterval: 10s # ENV: KUMA_MULTIZONE_GLOBAL_KDS_ZONE_INSIGHT_FLUSH_INTERVAL
  314. # TlsCertFile defines a path to a file with PEM-encoded TLS cert.
  315. tlsCertFile: # ENV: KUMA_MULTIZONE_GLOBAL_KDS_TLS_CERT_FILE
  316. # TTlsKeyFile defines a path to a file with PEM-encoded TLS key.
  317. tlsKeyFile: # ENV: KUMA_MULTIZONE_GLOBAL_KDS_TLS_KEY_FILE
  318. # MaxMsgSize defines a maximum size of the message in bytes that is exchanged using KDS.
  319. # In practice this means a limit on full list of one resource type.
  320. maxMsgSize: 10485760 # ENV: KUMA_MULTIZONE_GLOBAL_KDS_MAX_MSG_SIZE
  321. # MsgSendTimeout defines a timeout on sending a single KDS message.
  322. # KDS stream between control planes is terminated if the control plane hits this timeout.
  323. msgSendTimeout: 60s # ENV: KUMA_MULTIZONE_GLOBAL_KDS_MSG_SEND_TIMEOUT
  324. zone:
  325. # Kuma Zone name used to mark the zone dataplane resources
  326. name: "" # ENV: KUMA_MULTIZONE_ZONE_NAME
  327. # GlobalAddress URL of Global Kuma CP
  328. globalAddress: # ENV KUMA_MULTIZONE_ZONE_GLOBAL_ADDRESS
  329. kds:
  330. # Interval for refreshing state of the world
  331. refreshInterval: 1s # ENV: KUMA_MULTIZONE_ZONE_KDS_REFRESH_INTERVAL
  332. # RootCAFile defines a path to a file with PEM-encoded Root CA. Client will verify server by using it.
  333. rootCaFile: # ENV: KUMA_MULTIZONE_ZONE_KDS_ROOT_CA_FILE
  334. # MaxMsgSize defines a maximum size of the message in bytes that is exchanged using KDS.
  335. # In practice this means a limit on full list of one resource type.
  336. maxMsgSize: 10485760 # ENV: KUMA_MULTIZONE_ZONE_KDS_MAX_MSG_SIZE
  337. # MsgSendTimeout defines a timeout on sending a single KDS message.
  338. # KDS stream between control planes is terminated if the control plane hits this timeout.
  339. msgSendTimeout: 60s # ENV: KUMA_MULTIZONE_ZONE_KDS_MSG_SEND_TIMEOUT
  340. # Diagnostics configuration
  341. diagnostics:
  342. # Port of Diagnostic Server for checking health and readiness of the Control Plane
  343. serverPort: 5680 # ENV: KUMA_DIAGNOSTICS_SERVER_PORT
  344. # If true, enables https://golang.org/pkg/net/http/pprof/ debug endpoints
  345. debugEndpoints: false # ENV: KUMA_DIAGNOSTICS_DEBUG_ENDPOINTS
  346. # Dataplane Server configuration that servers API like Bootstrap/XDS for the Dataplane.
  347. dpServer:
  348. # Port of the DP Server
  349. port: 5678 # ENV: KUMA_DP_SERVER_PORT
  350. # TlsCertFile defines a path to a file with PEM-encoded TLS cert. If empty, autoconfigured from general.tlsCertFile
  351. tlsCertFile: # ENV: KUMA_DP_SERVER_TLS_CERT_FILE
  352. # TlsKeyFile defines a path to a file with PEM-encoded TLS key. If empty, autoconfigured from general.tlsKeyFile
  353. tlsKeyFile: # ENV: KUMA_DP_SERVER_TLS_KEY_FILE
  354. # Auth defines an authentication configuration for the DP Server
  355. auth:
  356. # Type of authentication. Available values: "serviceAccountToken", "dpToken", "none".
  357. # If empty, autoconfigured based on the environment - "serviceAccountToken" on Kubernetes, "dpToken" on Universal.
  358. type: "" # ENV: KUMA_DP_SERVER_AUTH_TYPE
  359. # Hds defines a Health Discovery Service configuration
  360. hds:
  361. # Enabled if true then Envoy will actively check application's ports, but only on Universal.
  362. # On Kubernetes this feature disabled for now regardless the flag value
  363. enabled: true # ENV: KUMA_DP_SERVER_HDS_ENABLED
  364. # Interval for Envoy to send statuses for HealthChecks
  365. interval: 5s # ENV: KUMA_DP_SERVER_HDS_INTERVAL
  366. # RefreshInterval is an interval for re-genarting configuration for Dataplanes connected to the Control Plane
  367. refreshInterval: 10s # ENV: KUMA_DP_SERVER_HDS_REFRESH_INTERVAL
  368. # Check defines a HealthCheck configuration
  369. checkDefaults:
  370. # Timeout is a time to wait for a health check response. If the timeout is reached the
  371. # health check attempt will be considered a failure
  372. timeout: 2s # ENV: KUMA_DP_SERVER_HDS_CHECK_TIMEOUT
  373. # Interval between health checks
  374. interval: 1s # ENV: KUMA_DP_SERVER_HDS_CHECK_INTERVAL
  375. # NoTrafficInterval is a special health check interval that is used when a cluster has
  376. # never had traffic routed to it
  377. noTrafficInterval: 1s # ENV: KUMA_DP_SERVER_HDS_CHECK_NO_TRAFFIC_INTERVAL
  378. # HealthyThreshold is a number of healthy health checks required before a host is marked healthy
  379. healthyThreshold: 1 # ENV: KUMA_DP_SERVER_HDS_CHECK_HEALTHY_THRESHOLD
  380. # UnhealthyThreshold is a number of unhealthy health checks required before a host is marked unhealthy
  381. unhealthyThreshold: 1 # ENV: KUMA_DP_SERVER_HDS_CHECK_UNHEALTHY_THRESHOLD
  382. # Access Control configuration
  383. access:
  384. # Type of access strategy (available values: "static")
  385. type: static
  386. # Configuration of static access strategy
  387. static:
  388. # AdminResources defines an access to admin resources (Secret/GlobalSecret)
  389. adminResources:
  390. # List of users that are allowed to access admin resources
  391. users: ["mesh-system:admin"] # ENV: KUMA_ACCESS_STATIC_ADMIN_RESOURCES_USERS
  392. # List of groups that are allowed to access admin resources
  393. groups: ["mesh-system:admin"] # ENV: KUMA_ACCESS_STATIC_ADMIN_RESOURCES_GROUPS
  394. # GenerateDPToken defines an access to generating dataplane token
  395. generateDpToken:
  396. # List of users that are allowed to generate dataplane token
  397. users: ["mesh-system:admin"] # ENV: KUMA_ACCESS_STATIC_GENERATE_DP_TOKEN_USERS
  398. # List of groups that are allowed to generate dataplane token
  399. groups: ["mesh-system:admin"] # ENV: KUMA_ACCESS_STATIC_GENERATE_DP_TOKEN_GROUPS
  400. # GenerateUserToken defines an access to generating user token
  401. generateUserToken:
  402. # List of users that are allowed to generate user token
  403. users: ["mesh-system:admin"] # ENV: KUMA_ACCESS_STATIC_GENERATE_USER_TOKEN_USERS
  404. # List of groups that are allowed to generate user token
  405. groups: ["mesh-system:admin"] # ENV: KUMA_ACCESS_STATIC_GENERATE_USER_TOKEN_GROUPS
  406. # GenerateZoneToken defines an access to generating zone token
  407. generateZoneToken:
  408. # List of users that are allowed to generate zone token
  409. users: ["mesh-system:admin"] # ENV: KUMA_ACCESS_STATIC_GENERATE_ZONE_TOKEN_USERS
  410. # List of groups that are allowed to generate zone token
  411. groups: ["mesh-system:admin"] # ENV: KUMA_ACCESS_STATIC_GENERATE_ZONE_TOKEN_GROUPS
  412. viewConfigDump:
  413. # List of users that are allowed to get envoy config dump
  414. users: [ ] # ENV: KUMA_ACCESS_STATIC_GET_CONFIG_DUMP_USERS
  415. # List of groups that are allowed to get envoy config dump
  416. groups: ["mesh-system:unauthenticated","mesh-system:authenticated"] # ENV: KUMA_ACCESS_STATIC_GET_CONFIG_DUMP_GROUPS
  417. # Configuration of experimental features of Kuma
  418. experimental:
  419. # If true, experimental built-in gateway is enabled
  420. meshGateway: false # ENV: KUMA_EXPERIMENTAL_MESHGATEWAY
  421. # If true, experimental Gateway API is enabled
  422. gatewayAPI: false # ENV: KUMA_EXPERIMENTAL_GATEWAY_API
  423. # If true, instead of embedding kubernetes outbounds into Dataplane object, they are persisted next to VIPs in ConfigMap
  424. # This can improve performance, but it should be enabled only after all instances are migrated to version that supports this config
  425. kubeOutboundsAsVIPs: false # ENV: KUMA_EXPERIMENTAL_KUBE_OUTBOUNDS_AS_VIPS