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