kuma-cp configuration reference

Kuma CP configuration

  1. # Environment type. Available values are: "kubernetes" or "universal"
  2. environment: universal # ENV: KUMA_ENVIRONMENT
  3. # Mode in which Kuma CP is running. Available values are: "global", "zone", "standalone" (deprecated, use "zone")
  4. mode: zone # ENV: KUMA_MODE
  5. # Resource Store configuration
  6. store:
  7. # Type of Store used in the Control Plane. Available values are: "kubernetes", "postgres" or "memory"
  8. type: memory # ENV: KUMA_STORE_TYPE
  9. # Kubernetes Store configuration (used when store.type=kubernetes)
  10. kubernetes:
  11. # Namespace where Control Plane is installed to.
  12. systemNamespace: kuma-system # ENV: KUMA_STORE_KUBERNETES_SYSTEM_NAMESPACE
  13. # Postgres Store configuration (used when store.type=postgres)
  14. postgres:
  15. # Host of the Postgres DB
  16. host: 127.0.0.1 # ENV: KUMA_STORE_POSTGRES_HOST
  17. # Port of the Postgres DB
  18. port: 15432 # ENV: KUMA_STORE_POSTGRES_PORT
  19. # User of the Postgres DB
  20. user: kuma # ENV: KUMA_STORE_POSTGRES_USER
  21. # Password of the Postgres DB
  22. password: kuma # ENV: KUMA_STORE_POSTGRES_PASSWORD
  23. # Database name of the Postgres DB
  24. dbName: kuma # ENV: KUMA_STORE_POSTGRES_DB_NAME
  25. # Driver to use, one of: pgx, postgres
  26. driverName: pgx # ENV: KUMA_STORE_POSTGRES_DRIVER_NAME
  27. # Connection Timeout to the DB in seconds
  28. connectionTimeout: 5 # ENV: KUMA_STORE_POSTGRES_CONNECTION_TIMEOUT
  29. # MaxConnectionIdleTime (applied only when driverName=pgx) is the duration after which an idle connection will be automatically closed by the health check.
  30. maxConnectionIdleTime: "30m" # ENV: KUMA_STORE_POSTGRES_MAX_CONNECTION_IDLE_TIME
  31. # MaxConnectionLifetime (applied only when driverName=pgx) is the duration since creation after which a connection will be automatically closed
  32. maxConnectionLifetime: "1h" # ENV: KUMA_STORE_POSTGRES_MAX_CONNECTION_LIFETIME
  33. # MaxConnectionLifetimeJitter (applied only when driverName=pgx) is the duration after maxConnectionLifetime to randomly decide to close a connection.
  34. # This helps prevent all connections from being closed at the exact same time, starving the pool.
  35. maxConnectionLifetimeJitter: "1m" # ENV: KUMA_STORE_POSTGRES_MAX_CONNECTION_LIFETIME_JITTER
  36. # HealthCheckInterval (applied only when driverName=pgx) is the duration between checks of the health of idle connections.
  37. healthCheckInterval: "30s" # ENV: KUMA_STORE_POSTGRES_HEALTH_CHECK_INTERVAL
  38. # MinOpenConnections (applied only when driverName=pgx) is the minimum number of open connections to the database
  39. minOpenConnections: 0 # ENV: KUMA_STORE_POSTGRES_MIN_OPEN_CONNECTIONS
  40. # MaxOpenConnections is the maximum number of open connections to the database
  41. # `0` value means number of open connections is unlimited
  42. maxOpenConnections: 50 # ENV: KUMA_STORE_POSTGRES_MAX_OPEN_CONNECTIONS
  43. # MaxIdleConnections is the maximum number of connections in the idle connection pool
  44. # <0 value means no idle connections and 0 means default max idle connections.
  45. maxIdleConnections: 50 # ENV: KUMA_STORE_POSTGRES_MAX_IDLE_CONNECTIONS
  46. # MaxListQueryElements defines maximum number of changed elements before requesting full list of elements from the store.
  47. maxListQueryElements: 0 # ENV: KUMA_STORE_POSTGRES_MAX_LIST_QUERY_ELEMENTS
  48. # TLS settings
  49. tls:
  50. # Mode of TLS connection. Available values are: "disable", "verifyNone", "verifyCa", "verifyFull"
  51. mode: disable # ENV: KUMA_STORE_POSTGRES_TLS_MODE
  52. # Path to TLS Certificate of the client. Required when server has METHOD=cert
  53. certPath: # ENV: KUMA_STORE_POSTGRES_TLS_CERT_PATH
  54. # Path to TLS Key of the client. Required when server has METHOD=cert
  55. keyPath: # ENV: KUMA_STORE_POSTGRES_TLS_KEY_PATH
  56. # Path to the root certificate. Used in verifyCa and verifyFull modes.
  57. caPath: # ENV: KUMA_STORE_POSTGRES_TLS_ROOT_CERT_PATH
  58. # ReadReplica is a setting for a DB replica used only for read queries
  59. readReplica:
  60. # Host of the Postgres DB read replica. If not set, read replica is not used.
  61. host: "" # ENV: KUMA_STORE_POSTGRES_READ_REPLICA_HOST
  62. # Port of the Postgres DB read replica
  63. port: 5432 # ENV: KUMA_STORE_POSTGRES_READ_REPLICA_PORT
  64. # Ratio in [0-100] range. How many SELECT queries (out of 100) will use read replica.
  65. ratio: 100 # ENV: KUMA_STORE_POSTGRES_READ_REPLICA_RATIO
  66. # Cache for read only operations. This cache is local to the instance of the control plane.
  67. cache:
  68. # If true then cache is enabled
  69. enabled: true # ENV: KUMA_STORE_CACHE_ENABLED
  70. # Expiration time for elements in cache.
  71. expirationTime: 1s # ENV: KUMA_STORE_CACHE_EXPIRATION_TIME
  72. # Upsert (get and update) configuration
  73. upsert:
  74. # Base time for exponential backoff on upsert operations when retry is enabled
  75. conflictRetryBaseBackoff: 200ms # ENV: KUMA_STORE_UPSERT_CONFLICT_RETRY_BASE_BACKOFF
  76. # Max retries on upsert (get and update) operation when retry is enabled
  77. conflictRetryMaxTimes: 10 # ENV: KUMA_STORE_UPSERT_CONFLICT_RETRY_MAX_TIMES
  78. # Percentage of jitter. For example: if backoff is 20s, and this value 10, the backoff will be between 18s and 22s.
  79. conflictRetryJitterPercent: 30 # ENV: KUMA_STORE_UPSERT_CONFLICT_RETRY_JITTER_PERCENT
  80. # If true, skips validation of resource delete.
  81. # For example you don't have to delete all Dataplane objects before you delete a Mesh
  82. unsafeDelete: false # ENV: KUMA_STORE_UNSAFE_DELETE
  83. # Configuration of Bootstrap Server, which provides bootstrap config to Dataplanes
  84. bootstrapServer:
  85. # Parameters of bootstrap configuration
  86. params:
  87. # Address of Envoy Admin
  88. adminAddress: 127.0.0.1 # ENV: KUMA_BOOTSTRAP_SERVER_PARAMS_ADMIN_ADDRESS
  89. # Port of Envoy Admin
  90. adminPort: 9901 # ENV: KUMA_BOOTSTRAP_SERVER_PARAMS_ADMIN_PORT
  91. # Path to access log file of Envoy Admin
  92. adminAccessLogPath: /dev/null # ENV: KUMA_BOOTSTRAP_SERVER_PARAMS_ADMIN_ACCESS_LOG_PATH
  93. # Host of XDS Server. By default it is the same host as the one used by kuma-dp to connect to the control plane
  94. xdsHost: "" # ENV: KUMA_BOOTSTRAP_SERVER_PARAMS_XDS_HOST
  95. # Port of XDS Server. By default it is autoconfigured from KUMA_DP_SERVER_PORT
  96. xdsPort: 0 # ENV: KUMA_BOOTSTRAP_SERVER_PARAMS_XDS_PORT
  97. # Connection timeout to the XDS Server
  98. xdsConnectTimeout: 1s # ENV: KUMA_BOOTSTRAP_SERVER_PARAMS_XDS_CONNECT_TIMEOUT
  99. # Monitoring Assignment Discovery Service (MADS) server configuration
  100. monitoringAssignmentServer:
  101. # Port of a gRPC server that serves Monitoring Assignment Discovery Service (MADS).
  102. port: 5676 # ENV: KUMA_MONITORING_ASSIGNMENT_SERVER_PORT
  103. # Which MADS API versions to serve
  104. apiVersions: ["v1"] # ENV: KUMA_MONITORING_ASSIGNMENT_SERVER_API_VERSIONS
  105. # Interval for re-generating monitoring assignments for clients connected to the Control Plane.
  106. assignmentRefreshInterval: 1s # ENV: KUMA_MONITORING_ASSIGNMENT_SERVER_ASSIGNMENT_REFRESH_INTERVAL
  107. # The default timeout for a single fetch-based discovery request, if not specified
  108. defaultFetchTimeout: 30s # ENV: KUMA_MONITORING_ASSIGNMENT_SERVER_DEFAULT_FETCH_TIMEOUT
  109. # Path to TLS certificate file
  110. tlsCertFile: "" # ENV: KUMA_MONITORING_ASSIGNMENT_SERVER_TLS_CERT_FILE
  111. # Path to TLS key file
  112. tlsKeyFile: "" # ENV: KUMA_MONITORING_ASSIGNMENT_SERVER_TLS_KEY_FILE
  113. # TlsMinVersion the minimum version of TLS used across all the Kuma Servers.
  114. tlsMinVersion: "TLSv1_2" # ENV: KUMA_MONITORING_ASSIGNMENT_SERVER_TLS_MIN_VERSION
  115. # TlsMaxVersion the maximum version of TLS used across all the Kuma Servers.
  116. tlsMaxVersion: # ENV: KUMA_MONITORING_ASSIGNMENT_SERVER_TLS_MAX_VERSION
  117. # TlsCipherSuites the list of cipher suites to be used across all the Kuma Servers.
  118. tlsCipherSuites: [] # ENV: KUMA_MONITORING_ASSIGNMENT_SERVER_TLS_CIPHER_SUITES
  119. # Envoy XDS server configuration
  120. xdsServer:
  121. # Interval for re-genarting configuration for Dataplanes connected to the Control Plane
  122. dataplaneConfigurationRefreshInterval: 1s # ENV: KUMA_XDS_SERVER_DATAPLANE_CONFIGURATION_REFRESH_INTERVAL
  123. # Interval for flushing status of Dataplanes connected to the Control Plane
  124. dataplaneStatusFlushInterval: 10s # ENV: KUMA_XDS_SERVER_DATAPLANE_STATUS_FLUSH_INTERVAL
  125. # Backoff that is executed when Control Plane is sending the response that was previously rejected by Dataplane
  126. nackBackoff: 5s # ENV: KUMA_XDS_SERVER_NACK_BACKOFF
  127. # A delay between proxy terminating a connection and the CP trying to deregister the proxy.
  128. # It is used only in universal mode when you use direct lifecycle.
  129. # Setting this setting to 0s disables the delay.
  130. # Disabling this may cause race conditions that one instance of CP removes proxy object
  131. # while proxy is connected to another instance of the CP.
  132. dataplaneDeregistrationDelay: 10s # ENV: KUMA_XDS_DATAPLANE_DEREGISTRATION_DELAY
  133. # API Server configuration
  134. apiServer:
  135. # HTTP configuration of the API Server
  136. http:
  137. # If true then API Server will be served on HTTP
  138. enabled: true # ENV: KUMA_API_SERVER_HTTP_ENABLED
  139. # Network interface on which HTTP API Server will be exposed
  140. interface: 0.0.0.0 # ENV: KUMA_API_SERVER_HTTP_INTERFACE
  141. # Port of the API Server
  142. port: 5681 # ENV: KUMA_API_SERVER_HTTP_PORT
  143. # HTTPS configuration of the API Server
  144. https:
  145. # If true then API Server will be served on HTTPS
  146. enabled: true # ENV: KUMA_API_SERVER_HTTPS_ENABLED
  147. # Network interface on which HTTPS API Server will be exposed
  148. interface: 0.0.0.0 # ENV: KUMA_API_SERVER_HTTPS_INTERFACE
  149. # Port of the HTTPS API Server
  150. port: 5682 # ENV: KUMA_API_SERVER_HTTPS_PORT
  151. # Path to TLS certificate file. Autoconfigured from KUMA_GENERAL_TLS_CERT_FILE if empty
  152. tlsCertFile: "" # ENV: KUMA_API_SERVER_HTTPS_TLS_CERT_FILE
  153. # Path to TLS key file. Autoconfigured from KUMA_GENERAL_TLS_KEY_FILE if empty
  154. tlsKeyFile: "" # ENV: KUMA_API_SERVER_HTTPS_TLS_KEY_FILE
  155. # Path to the CA certificate which is used to sign client certificates. It is used only for verifying client certificates.
  156. tlsCaFile: "" # ENV: KUMA_API_SERVER_HTTPS_CLIENT_CERTS_CA_FILE
  157. # TlsMinVersion the minimum version of TLS used across all the Kuma Servers.
  158. tlsMinVersion: "TLSv1_2" # ENV: KUMA_API_SERVER_HTTPS_TLS_MIN_VERSION
  159. # TlsMaxVersion the maximum version of TLS used across all the Kuma Servers.
  160. tlsMaxVersion: # ENV: KUMA_API_SERVER_HTTPS_TLS_MAX_VERSION
  161. # TlsCipherSuites the list of cipher suites to be used across all the Kuma Servers.
  162. tlsCipherSuites: [] # ENV: KUMA_API_SERVER_HTTPS_TLS_CIPHER_SUITES
  163. # If true, then HTTPS connection will require client cert.
  164. requireClientCert: false # ENV: KUMA_API_SERVER_HTTPS_REQUIRE_CLIENT_CERT
  165. # Authentication configuration for administrative endpoints like Dataplane Token or managing Secrets
  166. auth:
  167. # Directory of authorized client certificates (only validate in HTTPS)
  168. clientCertsDir: "" # ENV: KUMA_API_SERVER_AUTH_CLIENT_CERTS_DIR
  169. # Api Server Authentication configuration
  170. authn:
  171. # Type of authentication mechanism (available values: "adminClientCerts", "tokens")
  172. type: tokens # ENV: KUMA_API_SERVER_AUTHN_TYPE
  173. # Localhost is authenticated as a user admin of group admin
  174. localhostIsAdmin: true # ENV: KUMA_API_SERVER_AUTHN_LOCALHOST_IS_ADMIN
  175. # Configuration for tokens authentication
  176. tokens:
  177. # If true then User Token with name admin and group admin will be created and placed as admin-user-token Kuma secret
  178. bootstrapAdminToken: true # ENV: KUMA_API_SERVER_AUTHN_TOKENS_BOOTSTRAP_ADMIN_TOKEN
  179. # If true the control plane token issuer is enabled. It's recommended to set it to false when all the tokens are issued offline.
  180. enableIssuer: true # ENV: KUMA_API_SERVER_AUTHN_TOKENS_ENABLE_ISSUER
  181. # Token validator configuration
  182. validator:
  183. # If true then Kuma secrets with prefix "user-token-signing-key" are considered as signing keys.
  184. useSecrets: true # ENV: KUMA_API_SERVER_AUTHN_TOKENS_VALIDATOR_USE_SECRETS
  185. # List of public keys used to validate the token. Example:
  186. # - kid: 1
  187. # key: |
  188. # -----BEGIN RSA PUBLIC KEY-----
  189. # MIIBCgKCAQEAq....
  190. # -----END RSA PUBLIC KEY-----
  191. # - kid: 2
  192. # keyFile: /keys/public.pem
  193. publicKeys: []
  194. # If true, then API Server will operate in read only mode (serving GET requests)
  195. readOnly: false # ENV: KUMA_API_SERVER_READ_ONLY
  196. # Allowed domains for Cross-Origin Resource Sharing. The value can be either domain or regexp
  197. corsAllowedDomains:
  198. - ".*" # ENV: KUMA_API_SERVER_CORS_ALLOWED_DOMAINS
  199. # Can be used if you use a reverse proxy
  200. rootUrl: "" # ENV: KUMA_API_SERVER_ROOT_URL
  201. # The path to serve the API from
  202. basePath: "/" # ENV: KUMA_API_SERVER_BASE_PATH
  203. # configuration specific to the GUI
  204. gui:
  205. # Whether to serve the gui (if mode=zone this has no effect)
  206. enabled: true # ENV: KUMA_API_SERVER_GUI_ENABLED
  207. # Can be used if you use a reverse proxy or want to serve the gui from a different path
  208. rootUrl: "" # ENV: KUMA_API_SERVER_GUI_ROOT_URL
  209. # The path to serve the GUI from
  210. basePath: "/gui" # ENV: KUMA_API_SERVER_GUI_BASE_PATH
  211. # Environment-specific configuration
  212. runtime:
  213. # Kubernetes-specific configuration
  214. kubernetes:
  215. # Service name of the Kuma Control Plane. It is used to point Kuma DP to proper URL.
  216. controlPlaneServiceName: kuma-control-plane # ENV: KUMA_RUNTIME_KUBERNETES_CONTROL_PLANE_SERVICE_NAME
  217. # Name of Service Account that is used to run the Control Plane
  218. serviceAccountName: "system:serviceaccount:kuma-system:kuma-control-plane" # ENV: KUMA_RUNTIME_KUBERNETES_SERVICE_ACCOUNT_NAME
  219. # Taint controller that prevents applications from scheduling until CNI is ready.
  220. nodeTaintController:
  221. # If true enables the taint controller.
  222. enabled: false # ENV: KUMA_RUNTIME_KUBERNETES_NODE_TAINT_CONTROLLER_ENABLED
  223. # Value of app label on CNI pod that indicates if node can be ready.
  224. cniApp: "" # ENV: KUMA_RUNTIME_KUBERNETES_NODE_TAINT_CONTROLLER_CNI_APP
  225. # Value of CNI namespace.
  226. cniNamespace: "kube-system" # ENV: KUMA_RUNTIME_KUBERNETES_NODE_TAINT_CONTROLLER_CNI_NAMESPACE
  227. # Admission WebHook Server configuration
  228. admissionServer:
  229. # Address the Admission WebHook Server should be listening on
  230. address: # ENV: KUMA_RUNTIME_KUBERNETES_ADMISSION_SERVER_ADDRESS
  231. # Port the Admission WebHook Server should be listening on
  232. port: 5443 # ENV: KUMA_RUNTIME_KUBERNETES_ADMISSION_SERVER_PORT
  233. # Directory with a TLS cert and private key for the Admission WebHook Server.
  234. # TLS certificate file must be named `tls.crt`.
  235. # TLS key file must be named `tls.key`.
  236. certDir: # ENV: kuma_runtime_kubernetes_admission_server_cert_dir
  237. # Injector defines configuration of a Kuma Sidecar Injector.
  238. injector:
  239. # if true runs kuma-cp in CNI compatible mode
  240. cniEnabled: false # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_CNI_ENABLED
  241. # list of exceptions for Kuma injection
  242. exceptions:
  243. # a map of labels for exception. If pod matches label with given value Kuma won't be injected. Specify '*' to match any value.
  244. labels:
  245. openshift.io/build.name: "*"
  246. openshift.io/deployer-pod-for.name: "*"
  247. # (Deprecated, set ApplicationProbeProxyPort to 0 to disable probe proxying) VirtualProbesEnabled enables automatic converting HttpGet probes to virtual.
  248. # Virtual probe serves on sub-path of insecure port 'virtualProbesPort',
  249. # i.e :8080/health/readiness -> :9000/8080/health/readiness where 9000 is virtualProbesPort
  250. virtualProbesEnabled: true # ENV: KUMA_RUNTIME_KUBERNETES_VIRTUAL_PROBES_ENABLED
  251. # (Deprecated, use ApplicationProbeProxyPort instead) VirtualProbesPort is a port for exposing virtual probes which are not secured by mTLS
  252. virtualProbesPort: 9000 # ENV: KUMA_RUNTIME_KUBERNETES_VIRTUAL_PROBES_PORT
  253. # ApplicationProbeProxyPort is a port for proxying application probes, it is not secured by mTLS. By setting to 0, probe proxying will be disabled.
  254. applicationProbeProxyPort: 9001 # ENV: KUMA_RUNTIME_KUBERNETES_APPLICATION_PROBE_PROXY_PORT
  255. # CaCertFile is CA certificate which will be used to verify a connection to the control plane.
  256. caCertFile: # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_CA_CERT_FILE
  257. # SidecarContainer defines configuration of the Kuma sidecar container.
  258. sidecarContainer:
  259. # Image name.
  260. image: kuma/kuma-dp:latest # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_IMAGE
  261. # Redirect port for inbound traffic.
  262. redirectPortInbound: 15006 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_REDIRECT_PORT_INBOUND
  263. # IP family mode enabled for traffic redirection, can be 'dualstack' or 'ipv4'
  264. ipFamilyMode: dualstack # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_IP_FAMILY_MODE
  265. # Redirect port for outbound traffic.
  266. redirectPortOutbound: 15001 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_REDIRECT_PORT_OUTBOUND
  267. # User ID.
  268. uid: 5678 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_UID
  269. # Group ID.
  270. gid: 5678 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_GUI
  271. # Drain time for listeners.
  272. drainTime: 30s # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_DRAIN_TIME
  273. # Readiness probe.
  274. readinessProbe:
  275. # Number of seconds after the container has started before readiness probes are initiated.
  276. initialDelaySeconds: 1 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_READINESS_PROBE_INITIAL_DELAY_SECONDS
  277. # Number of seconds after which the probe times out.
  278. timeoutSeconds: 3 # ENV : KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_READINESS_PROBE_TIMEOUT_SECONDS
  279. # Number of seconds after which the probe times out.
  280. periodSeconds: 5 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_READINESS_PROBE_PERIOD_SECONDS
  281. # Minimum consecutive successes for the probe to be considered successful after having failed.
  282. successThreshold: 1 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_READINESS_PROBE_SUCCESS_THRESHOLD
  283. # Minimum consecutive failures for the probe to be considered failed after having succeeded.
  284. failureThreshold: 12 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_READINESS_PROBE_FAILURE_THRESHOLD
  285. # Liveness probe.
  286. livenessProbe:
  287. # Number of seconds after the container has started before liveness probes are initiated.
  288. initialDelaySeconds: 60 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_LIVENESS_PROBE_INITIAL_DELAY_SECONDS
  289. # Number of seconds after which the probe times out.
  290. timeoutSeconds: 3 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_LIVENESS_PROBE_TIMEOUT_SECONDS
  291. # How often (in seconds) to perform the probe.
  292. periodSeconds: 5 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_LIVENESS_PROBE_PERIOD_SECONDS
  293. # Minimum consecutive failures for the probe to be considered failed after having succeeded.
  294. failureThreshold: 12 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_LIVENESS_PROBE_FAILURE_THRESHOLD
  295. # Startup probe (if sidecar containers feature is enabled).
  296. startupProbe:
  297. # Number of seconds after the container has started before startup probes are initiated.
  298. initialDelaySeconds: 1 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_STARTUP_PROBE_INITIAL_DELAY_SECONDS
  299. # Number of seconds after which the probe times out.
  300. timeoutSeconds: 3 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_STARTUP_PROBE_TIMEOUT_SECONDS
  301. # How often (in seconds) to perform the probe.
  302. periodSeconds: 5 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_STARTUP_PROBE_PERIOD_SECONDS
  303. # Minimum consecutive failures for the probe to be considered failed after having succeeded.
  304. failureThreshold: 12 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_STARTUP_PROBE_FAILURE_THRESHOLD
  305. # Compute resource requirements.
  306. resources:
  307. # Minimum amount of compute resources required.
  308. requests:
  309. # CPU, in cores. (500m = .5 cores)
  310. cpu: 50m # ENV: KUMA_INJECTOR_SIDECAR_CONTAINER_RESOURCES_REQUESTS_CPU
  311. # Memory, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)
  312. memory: 64Mi # ENV: KUMA_INJECTOR_SIDECAR_CONTAINER_RESOURCES_REQUESTS_MEMORY
  313. # Maximum amount of compute resources allowed.
  314. limits:
  315. # CPU, in cores. (500m = .5 cores)
  316. cpu: 1000m # ENV: KUMA_INJECTOR_SIDECAR_CONTAINER_RESOURCES_LIMITS_CPU
  317. # Memory, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)
  318. memory: 512Mi # ENV: KUMA_INJECTOR_SIDECAR_CONTAINER_RESOURCES_LIMITS_MEMORY
  319. # Additional environment variables that can be placed on Kuma DP sidecar
  320. envVars: {} # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_ENV_VARS
  321. # If true, it enables a postStart script that waits until Envoy is ready.
  322. # With the current Kubernetes behavior, any other container in the Pod will wait until the script is complete.
  323. waitForDataplaneReady: false # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_WAIT_FOR_DATAPLANE_READY
  324. # InitContainer defines configuration of the Kuma init container
  325. initContainer:
  326. # Image name.
  327. image: kuma/kuma-init:latest # ENV: KUMA_INJECTOR_INIT_CONTAINER_IMAGE
  328. # ContainerPatches is an optional list of ContainerPatch names which will be applied
  329. # to init and sidecar containers if workload is not annotated with a patch list.
  330. containerPatches: [] # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_CONTAINER_PATCHES
  331. # Configuration for a traffic that is intercepted by sidecar
  332. sidecarTraffic:
  333. # List of inbound ports that will be excluded from interception.
  334. # This setting is applied on every pod unless traffic.kuma.io/exclude-inbound-ports annotation is specified on Pod.
  335. excludeInboundPorts: [] # ENV: KUMA_RUNTIME_KUBERNETES_SIDECAR_TRAFFIC_EXCLUDE_INBOUND_PORTS
  336. # List of outbound ports that will be excluded from interception.
  337. # This setting is applied on every pod unless traffic.kuma.io/exclude-oubound-ports annotation is specified on Pod.
  338. excludeOutboundPorts: [] # ENV: KUMA_RUNTIME_KUBERNETES_SIDECAR_TRAFFIC_EXCLUDE_OUTBOUND_PORTS
  339. # List of inbound IP addresses that will be excluded from interception.
  340. # This setting is applied on every pod unless traffic.kuma.io/exclude-inbound-ips annotation is specified on the Pod.
  341. # IP addresses can be specified with or without CIDR notation, and multiple addresses can be separated by commas.
  342. excludeInboundIPs: [] # ENV: KUMA_RUNTIME_KUBERNETES_SIDECAR_TRAFFIC_EXCLUDE_INBOUND_IPS
  343. # List of outbound IP addresses that will be excluded from interception.
  344. # This setting is applied on every pod unless traffic.kuma.io/exclude-outbound-ips annotation is specified on the Pod.
  345. # IP addresses can be specified with or without CIDR notation, and multiple addresses can be separated by commas.
  346. excludeOutboundIPs: [] # ENV: KUMA_RUNTIME_KUBERNETES_SIDECAR_TRAFFIC_EXCLUDE_OUTBOUND_IPS
  347. builtinDNS:
  348. # Use the built-in DNS
  349. enabled: true # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_BUILTIN_DNS_ENABLED
  350. # Redirect port for DNS
  351. port: 15053 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_BUILTIN_DNS_PORT
  352. # Enable coredns query logging if true
  353. logging: false # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_BUILTIN_DNS_LOGGING
  354. # EBPF defines configuration for the ebpf, when transparent proxy is marked to be
  355. # installed using ebpf instead of iptables
  356. ebpf:
  357. # Install transparent proxy using ebpf
  358. enabled: false # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_EBPF_ENABLED
  359. # Name of the environmental variable which will include IP address of the pod
  360. instanceIPEnvVarName: INSTANCE_IP # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_EBPF_INSTANCE_IP_ENV_VAR_NAME
  361. # Path where BPF file system will be mounted for pinning ebpf programs and maps
  362. bpffsPath: /sys/fs/bpf # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_EBPF_BPFFS_PATH
  363. # Path of mounted cgroup2
  364. cgroupPath: /sys/fs/cgroup # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_EBPF_CGROUP_PATH
  365. # Name of the network interface which should be used to attach to it TC programs
  366. # when not specified, we will try to automatically determine it
  367. tcAttachIface: "" # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_EBPF_TC_ATTACH_IFACE
  368. # Path where compiled eBPF programs are placed
  369. programsSourcePath: /tmp/kuma-ebpf # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_EBPF_PROGRAMS_SOURCE_PATH
  370. # IgnoredServiceSelectorLabels defines a list ignored labels in Service selector.
  371. # If Pod matches a Service with ignored labels, but does not match it fully, it gets Ignored inbound.
  372. # It is useful when you change Service selector and expect traffic to be sent immediately.
  373. # An example of this is ArgoCD's BlueGreen deployment and "rollouts-pod-template-hash" selector.
  374. ignoredServiceSelectorLabels: [] # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_IGNORED_SERVICE_SELECTOR_LABELS
  375. # nodeLabelsToCopy defines a list of node labels that should be copied to the Pod.
  376. nodeLabelsToCopy: ["topology.kubernetes.io/zone", "topology.kubernetes.io/region", "kubernetes.io/hostname"] # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_NODE_LABELS_TO_COPY
  377. marshalingCacheExpirationTime: 5m # ENV: KUMA_RUNTIME_KUBERNETES_MARSHALING_CACHE_EXPIRATION_TIME
  378. # Kubernetes's resources reconciliation concurrency configuration
  379. controllersConcurrency:
  380. # PodController defines maximum concurrent reconciliations of Pod resources
  381. # Default value 10. If set to 0 kube controller-runtime default value of 1 will be used.
  382. podController: 10 # ENV: KUMA_RUNTIME_KUBERNETES_CONTROLLERS_CONCURRENCY_POD_CONTROLLER
  383. # Kubernetes client configuration
  384. clientConfig:
  385. # Qps defines maximum requests kubernetes client is allowed to make per second.
  386. # Default value 100. If set to 0 kube-client default value of 5 will be used.
  387. qps: 100 # ENV: KUMA_RUNTIME_KUBERNETES_CLIENT_CONFIG_QPS
  388. # BurstQps defines maximum burst requests kubernetes client is allowed to make per second
  389. # Default value 100. If set to 0 kube-client default value of 10 will be used.
  390. burstQps: 100 # ENV: KUMA_RUNTIME_KUBERNETES_CLIENT_CONFIG_BURST_QPS
  391. leaderElection:
  392. # LeaseDuration is the duration that non-leader candidates will
  393. # wait to force acquire leadership. This is measured against time of
  394. # last observed ack. Default is 15 seconds.
  395. leaseDuration: 15s # ENV: KUMA_RUNTIME_KUBERNETES_LEADER_ELECTION_LEASE_DURATION
  396. # RenewDeadline is the duration that the acting controlplane will retry
  397. # refreshing leadership before giving up. Default is 10 seconds.
  398. renewDeadline: 10s # ENV: KUMA_RUNTIME_KUBERNETES_LEADER_ELECTION_RENEW_DEADLINE
  399. # SkipMeshOwnerReference is a flag that allows to skip adding Mesh owner reference to resources.
  400. # If this is set to true, deleting a Mesh will not delete resources that belong to that Mesh.
  401. # This can be useful when resources are managed in Argo CD where creation/deletion is managed there.
  402. skipMeshOwnerReference: false # ENV: KUMA_RUNTIME_KUBERNETES_SKIP_MESH_OWNER_REFERENCE
  403. # If true, then control plane can support TLS secrets for builtin gateway outside of mesh system namespace.
  404. # The downside is that control plane requires permission to read Secrets in all namespaces.
  405. supportGatewaySecretsInAllNamespaces: false # ENV: KUMA_RUNTIME_KUBERNETES_SUPPORT_GATEWAY_SECRETS_IN_ALL_NAMESPACES
  406. # Universal-specific configuration
  407. universal:
  408. # DataplaneCleanupAge defines how long Dataplane should be offline to be cleaned up by GC
  409. dataplaneCleanupAge: 72h0m0s # ENV: KUMA_RUNTIME_UNIVERSAL_DATAPLANE_CLEANUP_AGE
  410. # VIPRefreshInterval defines how often all meshes' VIPs should be recomputed
  411. vipRefreshInterval: 500ms # ENV: KUMA_RUNTIME_UNIVERSAL_VIP_REFRESH_INTERVAL
  412. # Default Kuma entities configuration
  413. defaults:
  414. # If true, it skips creating the default Mesh
  415. skipMeshCreation: false # ENV: KUMA_DEFAULTS_SKIP_MESH_CREATION
  416. # If true, it skips creating the default tenant resources
  417. skipTenantResources: false # ENV: KUMA_DEFAULTS_SKIP_TENANT_RESOURCES
  418. # If true, it creates the default routing (TrafficPermission and TrafficRoute) resources for a new Mesh
  419. createMeshRoutingResources: false # ENV: KUMA_DEFAULTS_CREATE_MESH_ROUTING_RESOURCES
  420. # If true, it skips creating default hostname generators
  421. skipHostnameGenerators: false # ENV: KUMA_DEFAULTS_SKIP_HOSTNAME_GENERATORS
  422. # Metrics configuration
  423. metrics:
  424. dataplane:
  425. # How many latest subscriptions will be stored in DataplaneInsight object, if equals 0 then unlimited
  426. subscriptionLimit: 2 # ENV: KUMA_METRICS_DATAPLANE_SUBSCRIPTION_LIMIT
  427. # How long data plane proxy can stay Online without active xDS connection
  428. idleTimeout: 5m # ENV: KUMA_METRICS_DATAPLANE_IDLE_TIMEOUT
  429. zone:
  430. # How many latest subscriptions will be stored in ZoneInsights object, if equals 0 then unlimited
  431. subscriptionLimit: 10 # ENV: KUMA_METRICS_ZONE_SUBSCRIPTION_LIMIT
  432. # How long zone can stay Online without active KDS connection
  433. idleTimeout: 5m # ENV: KUMA_METRICS_ZONE_IDLE_TIMEOUT
  434. # Compact finished metrics (do not store config and details of KDS exchange).
  435. compactFinishedSubscriptions: false # ENV: KUMA_METRICS_ZONE_COMPACT_FINISHED_SUBSCRIPTIONS
  436. mesh:
  437. # Minimum time between 2 refresh of insights
  438. minResyncInterval: 1s # ENV: KUMA_METRICS_MESH_MIN_RESYNC_INTERVAL
  439. # time between triggering a full refresh of all the insights
  440. fullResyncInterval: 20s # ENV: KUMA_METRICS_MESH_FULL_RESYNC_INTERVAL
  441. # the size of the buffer between event creation and processing
  442. bufferSize: 1000 # ENV: KUMA_METRICS_MESH_BUFFER_SIZE
  443. # the number of workers that process metrics events
  444. eventProcessors: 1 # ENV: KUMA_METRICS_MESH_EVENT_PROCESSORS
  445. controlPlane:
  446. # If true metrics show number of resources in the system should be reported
  447. reportResourcesCount: true # ENV: KUMA_METRICS_CONTROL_PLANE_REPORT_RESOURCES_COUNT
  448. # Reports configuration
  449. reports:
  450. # If true then usage stats will be reported
  451. enabled: false # ENV: KUMA_REPORTS_ENABLED
  452. # General configuration
  453. general:
  454. # dnsCacheTTL represents duration for how long Kuma CP will cache result of resolving dataplane's domain name
  455. dnsCacheTTL: 10s # ENV: KUMA_GENERAL_DNS_CACHE_TTL
  456. # TlsCertFile defines a path to a file with PEM-encoded TLS cert that will be used across all the Kuma Servers.
  457. tlsCertFile: # ENV: KUMA_GENERAL_TLS_CERT_FILE
  458. # TlsKeyFile defines a path to a file with PEM-encoded TLS key that will be used across all the Kuma Servers.
  459. tlsKeyFile: # ENV: KUMA_GENERAL_TLS_KEY_FILE
  460. # TlsMinVersion the minimum version of TLS used across all the Kuma Servers.
  461. tlsMinVersion: "TLSv1_2" # ENV: KUMA_GENERAL_TLS_MIN_VERSION
  462. # TlsMaxVersion the maximum version of TLS used across all the Kuma Servers.
  463. tlsMaxVersion: # ENV: KUMA_GENERAL_TLS_MAX_VERSION
  464. # TlsCipherSuites the list of cipher suites to be used across all the Kuma Servers.
  465. tlsCipherSuites: [] # ENV: KUMA_GENERAL_TLS_CIPHER_SUITES
  466. # WorkDir defines a path to the working directory
  467. # Kuma stores in this directory autogenerated entities like certificates.
  468. # If empty then the working directory is $HOME/.kuma
  469. workDir: "" # ENV: KUMA_GENERAL_WORK_DIR
  470. # ResilientComponentBaseBackoff configures base backoff for restarting resilient components:
  471. # KDS sync, Insight resync, PostgresEventListener, etc.
  472. resilientComponentBaseBackoff: 5s # ENV: KUMA_GENERAL_RESILIENT_COMPONENT_BASE_BACKOFF
  473. # ResilientComponentMaxBackoff configures max backoff for restarting resilient component:
  474. # KDS sync, Insight resync, PostgresEventListener, etc.
  475. resilientComponentMaxBackoff: 1m # ENV: KUMA_GENERAL_RESILIENT_COMPONENT_MAX_BACKOFF
  476. # DNS Server configuration
  477. dnsServer:
  478. # The domain that the server will resolve the services for
  479. domain: "mesh" # ENV: KUMA_DNS_SERVER_DOMAIN
  480. # The CIDR range used to allocate
  481. CIDR: "240.0.0.0/4" # ENV: KUMA_DNS_SERVER_CIDR
  482. # Will create a service "<kuma.io/service>.mesh" dns entry for every service.
  483. serviceVipEnabled: true # ENV: KUMA_DNS_SERVER_SERVICE_VIP_ENABLED
  484. # The port to use along with the `<kuma.io/service>.mesh` dns entry
  485. serviceVipPort: 80 # ENV: KUMA_DNS_SERVICE_SERVICE_VIP_PORT
  486. # Multizone mode
  487. multizone:
  488. global:
  489. kds:
  490. # Port of a gRPC server that serves Kuma Discovery Service (KDS).
  491. grpcPort: 5685 # ENV: KUMA_MULTIZONE_GLOBAL_KDS_GRPC_PORT
  492. # Interval for refreshing state of the world
  493. refreshInterval: 1s # ENV: KUMA_MULTIZONE_GLOBAL_KDS_REFRESH_INTERVAL
  494. # Interval for flushing Zone Insights (stats of multi-zone communication)
  495. zoneInsightFlushInterval: 10s # ENV: KUMA_MULTIZONE_GLOBAL_KDS_ZONE_INSIGHT_FLUSH_INTERVAL
  496. # TlsEnabled turns on TLS for KDS
  497. tlsEnabled: true # ENV: KUMA_MULTIZONE_GLOBAL_KDS_TLS_ENABLED
  498. # TlsCertFile defines a path to a file with PEM-encoded TLS cert.
  499. tlsCertFile: # ENV: KUMA_MULTIZONE_GLOBAL_KDS_TLS_CERT_FILE
  500. # TlsKeyFile defines a path to a file with PEM-encoded TLS key.
  501. tlsKeyFile: # ENV: KUMA_MULTIZONE_GLOBAL_KDS_TLS_KEY_FILE
  502. # TlsMinVersion the minimum version of TLS
  503. tlsMinVersion: "TLSv1_2" # ENV: KUMA_MULTIZONE_GLOBAL_KDS_TLS_MIN_VERSION
  504. # TlsMaxVersion the maximum version of TLS
  505. tlsMaxVersion: # ENV: KUMA_MULTIZONE_GLOBAL_KDS_TLS_MAX_VERSION
  506. # TlsCipherSuites the list of cipher suites
  507. tlsCipherSuites: [] # ENV: KUMA_MULTIZONE_GLOBAL_KDS_TLS_CIPHER_SUITES
  508. # MaxMsgSize defines a maximum size of the message in bytes that is exchanged using KDS.
  509. # In practice this means a limit on full list of one resource type.
  510. maxMsgSize: 10485760 # ENV: KUMA_MULTIZONE_GLOBAL_KDS_MAX_MSG_SIZE
  511. # MsgSendTimeout defines a timeout on sending a single KDS message.
  512. # KDS stream between control planes is terminated if the control plane hits this timeout.
  513. msgSendTimeout: 60s # ENV: KUMA_MULTIZONE_GLOBAL_KDS_MSG_SEND_TIMEOUT
  514. # Backoff that is executed when the global control plane is sending the response that was previously rejected by zone control plane
  515. nackBackoff: 5s # ENV: KUMA_MULTIZONE_GLOBAL_KDS_NACK_BACKOFF
  516. # Response backoff is a time Global CP waits before sending ACK/NACK.
  517. # This is a way to slow down Zone CP from sending resources too often.
  518. responseBackoff: 0s # ENV: KUMA_MULTIZONE_GLOBAL_KDS_RESPONSE_BACKOFF
  519. zone:
  520. # Kuma Zone name used to mark the zone dataplane resources
  521. name: "default" # ENV: KUMA_MULTIZONE_ZONE_NAME
  522. # GlobalAddress URL of Global Kuma CP
  523. globalAddress: # ENV KUMA_MULTIZONE_ZONE_GLOBAL_ADDRESS
  524. kds:
  525. # Interval for refreshing state of the world
  526. refreshInterval: 1s # ENV: KUMA_MULTIZONE_ZONE_KDS_REFRESH_INTERVAL
  527. # RootCAFile defines a path to a file with PEM-encoded Root CA. Client will verify server by using it.
  528. rootCaFile: # ENV: KUMA_MULTIZONE_ZONE_KDS_ROOT_CA_FILE
  529. # If true, TLS connection to the server won't be verified.
  530. tlsSkipVerify: false # ENV: KUMA_MULTIZONE_ZONE_KDS_TLS_SKIP_VERIFY
  531. # MaxMsgSize defines a maximum size of the message in bytes that is exchanged using KDS.
  532. # In practice this means a limit on full list of one resource type.
  533. maxMsgSize: 10485760 # ENV: KUMA_MULTIZONE_ZONE_KDS_MAX_MSG_SIZE
  534. # MsgSendTimeout defines a timeout on sending a single KDS message.
  535. # KDS stream between control planes is terminated if the control plane hits this timeout.
  536. msgSendTimeout: 60s # ENV: KUMA_MULTIZONE_ZONE_KDS_MSG_SEND_TIMEOUT
  537. # Backoff that is executed when the zone control plane is sending the response that was previously rejected by global control plane
  538. nackBackoff: 5s # ENV: KUMA_MULTIZONE_ZONE_KDS_NACK_BACKOFF
  539. # Response backoff is a time Zone CP waits before sending ACK/NACK.
  540. # This is a way to slow down Global CP from sending resources too often.
  541. responseBackoff: 0s # ENV: KUMA_MULTIZONE_ZONE_KDS_RESPONSE_BACKOFF
  542. # disableOriginLabelValidation disables validation of the origin label when applying resources on Zone CP
  543. disableOriginLabelValidation: false # ENV: KUMA_MULTIZONE_ZONE_DISABLE_ORIGIN_LABEL_VALIDATION
  544. # IngressUpdateInterval is the interval between the CP updating the list of
  545. # available services on ZoneIngress.
  546. ingressUpdateInterval: 1s # ENV: KUMA_MULTIZONE_ZONE_INGRESS_UPDATE_INTERVAL
  547. # Diagnostics configuration
  548. diagnostics:
  549. # Port of Diagnostic Server for checking health and readiness of the Control Plane
  550. serverPort: 5680 # ENV: KUMA_DIAGNOSTICS_SERVER_PORT
  551. # If true, enables https://golang.org/pkg/net/http/pprof/ debug endpoints
  552. debugEndpoints: false # ENV: KUMA_DIAGNOSTICS_DEBUG_ENDPOINTS
  553. # Whether tls is enabled or not
  554. tlsEnabled: false # ENV: KUMA_DIAGNOSTICS_TLS_ENABLED
  555. # TlsCertFile defines a path to a file with PEM-encoded TLS cert. If empty, autoconfigured from general.tlsCertFile
  556. tlsCertFile: # ENV: KUMA_DIAGNOSTICS_TLS_CERT_FILE
  557. # TlsKeyFile defines a path to a file with PEM-encoded TLS key. If empty, autoconfigured from general.tlsKeyFile
  558. tlsKeyFile: # ENV: KUMA_DIAGNOSTICS_TLS_KEY_FILE
  559. # TlsMinVersion the minimum version of TLS
  560. tlsMinVersion: "TLSv1_2" # ENV: KUMA_DIAGNOSTICS_TLS_MIN_VERSION
  561. # TlsMaxVersion the maximum version of TLS
  562. tlsMaxVersion: # ENV: KUMA_DIAGNOSTICS_TLS_MAX_VERSION
  563. # TlsCipherSuites the list of cipher suites
  564. tlsCipherSuites: [] # ENV: KUMA_DIAGNOSTICS_TLS_CIPHER_SUITES
  565. # Dataplane Server configuration that servers API like Bootstrap/XDS for the Dataplane.
  566. dpServer:
  567. # Port of the DP Server
  568. port: 5678 # ENV: KUMA_DP_SERVER_PORT
  569. # TlsCertFile defines a path to a file with PEM-encoded TLS cert. If empty, autoconfigured from general.tlsCertFile
  570. tlsCertFile: # ENV: KUMA_DP_SERVER_TLS_CERT_FILE
  571. # TlsKeyFile defines a path to a file with PEM-encoded TLS key. If empty, autoconfigured from general.tlsKeyFile
  572. tlsKeyFile: # ENV: KUMA_DP_SERVER_TLS_KEY_FILE
  573. # TlsMinVersion the minimum version of TLS
  574. tlsMinVersion: "TLSv1_2" # ENV: KUMA_DP_SERVER_TLS_MIN_VERSION
  575. # TlsMaxVersion the maximum version of TLS
  576. tlsMaxVersion: # ENV: KUMA_DP_SERVER_TLS_MAX_VERSION
  577. # TlsCipherSuites the list of cipher suites
  578. tlsCipherSuites: [] # ENV: KUMA_DP_SERVER_TLS_CIPHER_SUITES
  579. # ReadHeaderTimeout defines the amount of time DP server will be allowed
  580. # to read request headers. The connection's read deadline is reset
  581. # after reading the headers and the Handler can decide what is considered
  582. # too slow for the body. If ReadHeaderTimeout is zero there is no timeout.
  583. # The timeout is configurable as in rare cases, when Kuma CP was restarting,
  584. # 1s which is explicitly set in other servers was insufficient and DPs
  585. # were failing to reconnect (we observed this in Projected Service Account
  586. # Tokens e2e tests, which started flaking a lot after introducing explicit
  587. # 1s timeout)
  588. readHeaderTimeout: 5s # ENV: KUMA_DP_SERVER_READ_HEADER_TIMEOUT
  589. # Authn defines an authentication configuration for the DP Server
  590. authn:
  591. # Configuration for data plane proxy authentication.
  592. dpProxy:
  593. # Type of authentication. Available values: "serviceAccountToken", "dpToken", "none".
  594. # If empty, autoconfigured based on the environment - "serviceAccountToken" on Kubernetes, "dpToken" on Universal.
  595. type: ""
  596. # Configuration of dpToken authentication method
  597. dpToken:
  598. # If true the control plane token issuer is enabled. It's recommended to set it to false when all the tokens are issued offline.
  599. enableIssuer: true
  600. # DP Token validator configuration.
  601. validator:
  602. # If true then Kuma secrets with prefix "dataplane-token-signing-key-{mesh}" are considered as signing keys.
  603. useSecrets: true
  604. # List of public keys used to validate the token. Example:
  605. # - kid: 1
  606. # mesh: default
  607. # key: |
  608. # -----BEGIN RSA PUBLIC KEY-----
  609. # MIIBCgKCAQEAq....
  610. # -----END RSA PUBLIC KEY-----
  611. # - kid: 2
  612. # mesh: demo
  613. # keyFile: /keys/public.pem
  614. publicKeys: []
  615. # Configuration for zone proxy authentication.
  616. zoneProxy:
  617. # Type of authentication. Available values: "serviceAccountToken", "zoneToken", "none".
  618. # If empty, autoconfigured based on the environment - "serviceAccountToken" on Kubernetes, "zoneToken" on Universal.
  619. type: ""
  620. # Configuration for zoneToken authentication method.
  621. zoneToken:
  622. # If true the control plane token issuer is enabled. It's recommended to set it to false when all the tokens are issued offline.
  623. enableIssuer: true
  624. # Zone Token validator configuration.
  625. validator:
  626. # If true then Kuma secrets with prefix "zone-token-signing-key" are considered as signing keys.
  627. useSecrets: true
  628. # List of public keys used to validate the token. Example:
  629. # - kid: 1
  630. # key: |
  631. # -----BEGIN RSA PUBLIC KEY-----
  632. # MIIBCgKCAQEAq....
  633. # -----END RSA PUBLIC KEY-----
  634. # - kid: 2
  635. # keyFile: /keys/public.pem
  636. publicKeys: []
  637. # If true then Envoy uses Google gRPC instead of Envoy gRPC which lets a proxy reload the auth data (service account token, dp token etc.) stored in the file without proxy restart.
  638. enableReloadableTokens: false # ENV: KUMA_DP_SERVER_AUTHN_ENABLE_RELOADABLE_TOKENS
  639. # Hds defines a Health Discovery Service configuration
  640. hds:
  641. # Enabled if true then Envoy will actively check application's ports, but only on Universal.
  642. # On Kubernetes this feature disabled for now regardless the flag value
  643. enabled: true # ENV: KUMA_DP_SERVER_HDS_ENABLED
  644. # Interval for Envoy to send statuses for HealthChecks
  645. interval: 5s # ENV: KUMA_DP_SERVER_HDS_INTERVAL
  646. # RefreshInterval is an interval for re-genarting configuration for Dataplanes connected to the Control Plane
  647. refreshInterval: 10s # ENV: KUMA_DP_SERVER_HDS_REFRESH_INTERVAL
  648. # Check defines a HealthCheck configuration
  649. checkDefaults:
  650. # Timeout is a time to wait for a health check response. If the timeout is reached the
  651. # health check attempt will be considered a failure
  652. timeout: 2s # ENV: KUMA_DP_SERVER_HDS_CHECK_TIMEOUT
  653. # Interval between health checks
  654. interval: 1s # ENV: KUMA_DP_SERVER_HDS_CHECK_INTERVAL
  655. # NoTrafficInterval is a special health check interval that is used when a cluster has
  656. # never had traffic routed to it
  657. noTrafficInterval: 1s # ENV: KUMA_DP_SERVER_HDS_CHECK_NO_TRAFFIC_INTERVAL
  658. # HealthyThreshold is a number of healthy health checks required before a host is marked healthy
  659. healthyThreshold: 1 # ENV: KUMA_DP_SERVER_HDS_CHECK_HEALTHY_THRESHOLD
  660. # UnhealthyThreshold is a number of unhealthy health checks required before a host is marked unhealthy
  661. unhealthyThreshold: 1 # ENV: KUMA_DP_SERVER_HDS_CHECK_UNHEALTHY_THRESHOLD
  662. # Intercommunication CP configuration
  663. interCp:
  664. # Catalog configuration. Catalog keeps a record of all live CP instances in the zone.
  665. catalog:
  666. # Indicates an address on which other control planes can communicate with this CP.
  667. # If empty then it's autoconfigured by taking the first IP of the nonloopback network interface.
  668. instanceAddress: "" # ENV: KUMA_INTER_CP_CATALOG_INSTANCE_ADDRESS
  669. # Interval on which CP will send heartbeat to a leader.
  670. heartbeatInterval: 5s # ENV: KUMA_INTER_CP_CATALOG_HEARTBEAT_INTERVAL
  671. # Interval on which CP will write all instances to a catalog.
  672. writerInterval: 15s # ENV: KUMA_INTER_CP_CATALOG_WRITER_INTERVAL
  673. # Intercommunication CP server configuration
  674. server:
  675. # Port of the inter-cp server
  676. port: 5683 # ENV: KUMA_INTER_CP_SERVER_PORT
  677. # TlsMinVersion the minimum version of TLS
  678. tlsMinVersion: "TLSv1_2" # ENV: KUMA_INTER_CP_SERVER_TLS_MIN_VERSION
  679. # TlsMaxVersion the maximum version of TLS
  680. tlsMaxVersion: # ENV: KUMA_INTER_CP_SERVER_TLS_MAX_VERSION
  681. # TlsCipherSuites the list of cipher suites
  682. tlsCipherSuites: [] # ENV: KUMA_INTER_CP_SERVER_TLS_CIPHER_SUITES
  683. # Access Control configuration
  684. access:
  685. # Type of access strategy (available values: "static")
  686. type: static
  687. # Configuration of static access strategy
  688. static:
  689. # AdminResources defines an access to admin resources (Secret/GlobalSecret)
  690. adminResources:
  691. # List of users that are allowed to access admin resources
  692. users: ["mesh-system:admin"] # ENV: KUMA_ACCESS_STATIC_ADMIN_RESOURCES_USERS
  693. # List of groups that are allowed to access admin resources
  694. groups: ["mesh-system:admin"] # ENV: KUMA_ACCESS_STATIC_ADMIN_RESOURCES_GROUPS
  695. # GenerateDPToken defines an access to generating dataplane token
  696. generateDpToken:
  697. # List of users that are allowed to generate dataplane token
  698. users: ["mesh-system:admin"] # ENV: KUMA_ACCESS_STATIC_GENERATE_DP_TOKEN_USERS
  699. # List of groups that are allowed to generate dataplane token
  700. groups: ["mesh-system:admin"] # ENV: KUMA_ACCESS_STATIC_GENERATE_DP_TOKEN_GROUPS
  701. # GenerateUserToken defines an access to generating user token
  702. generateUserToken:
  703. # List of users that are allowed to generate user token
  704. users: ["mesh-system:admin"] # ENV: KUMA_ACCESS_STATIC_GENERATE_USER_TOKEN_USERS
  705. # List of groups that are allowed to generate user token
  706. groups: ["mesh-system:admin"] # ENV: KUMA_ACCESS_STATIC_GENERATE_USER_TOKEN_GROUPS
  707. # GenerateZoneToken defines an access to generating zone token
  708. generateZoneToken:
  709. # List of users that are allowed to generate zone token
  710. users: ["mesh-system:admin"] # ENV: KUMA_ACCESS_STATIC_GENERATE_ZONE_TOKEN_USERS
  711. # List of groups that are allowed to generate zone token
  712. groups: ["mesh-system:admin"] # ENV: KUMA_ACCESS_STATIC_GENERATE_ZONE_TOKEN_GROUPS
  713. viewConfigDump:
  714. # List of users that are allowed to get envoy config dump
  715. users: [] # ENV: KUMA_ACCESS_STATIC_GET_CONFIG_DUMP_USERS
  716. # List of groups that are allowed to get envoy config dump
  717. groups: ["mesh-system:unauthenticated", "mesh-system:authenticated"] # ENV: KUMA_ACCESS_STATIC_GET_CONFIG_DUMP_GROUPS
  718. viewStats:
  719. # List of users that are allowed to get envoy stats
  720. users: [] # ENV: KUMA_ACCESS_STATIC_VIEW_STATS_USERS
  721. # List of groups that are allowed to get envoy stats
  722. groups: ["mesh-system:unauthenticated", "mesh-system:authenticated"] # ENV: KUMA_ACCESS_STATIC_VIEW_STATS_GROUPS
  723. viewClusters:
  724. # List of users that are allowed to get envoy clusters
  725. users: [] # ENV: KUMA_ACCESS_STATIC_VIEW_CLUSTERS_USERS
  726. # List of groups that are allowed to get envoy clusters
  727. groups: ["mesh-system:unauthenticated", "mesh-system:authenticated"] # ENV: KUMA_ACCESS_STATIC_VIEW_CLUSTERS_GROUPS
  728. controlPlaneMetadata:
  729. # List of users that are allowed to get control plane metadata
  730. users: [] # ENV: KUMA_ACCESS_STATIC_CONTROL_PLANE_METADATA_USERS
  731. # List of groups that are allowed to get control plane metadata
  732. groups: ["mesh-system:unauthenticated", "mesh-system:authenticated"] # ENV: KUMA_ACCESS_STATIC_CONTROL_PLANE_METADATA_GROUPS
  733. # Configuration of experimental features of Kuma
  734. experimental:
  735. # If true, instead of embedding kubernetes outbounds into Dataplane object, they are persisted next to VIPs in ConfigMap
  736. # This can improve performance, but it should be enabled only after all instances are migrated to version that supports this config
  737. kubeOutboundsAsVIPs: true # ENV: KUMA_EXPERIMENTAL_KUBE_OUTBOUNDS_AS_VIPS
  738. # Tag first virtual outbound model is compressed version of default Virtual Outbound model
  739. # It is recommended to use tag first model for deployments with more than 2k services
  740. # You can enable this flag on existing deployment. In order to downgrade cp with this flag enabled
  741. # you need to first disable this flag and redeploy cp, after config is rewritten to default
  742. # format you can downgrade your cp
  743. useTagFirstVirtualOutboundModel: false # ENV: KUMA_EXPERIMENTAL_USE_TAG_FIRST_VIRTUAL_OUTBOUND_MODEL
  744. # List of prefixes that will be used to filter out tags by keys from ingress' available services section.
  745. # This can trim the size of the ZoneIngress object significantly.
  746. # The drawback is that you cannot use filtered out tags for traffic routing.
  747. # If empty, no filter is applied.
  748. ingressTagFilters: [] # ENV: KUMA_EXPERIMENTAL_INGRESS_TAG_FILTERS
  749. # KDS event based watchdog settings. It is a more optimal way to generate KDS snapshot config.
  750. kdsEventBasedWatchdog:
  751. # If true, then experimental event based watchdog to generate KDS snapshot is used.
  752. enabled: false # ENV: KUMA_EXPERIMENTAL_KDS_EVENT_BASED_WATCHDOG_ENABLED
  753. # How often we flush changes when experimental event based watchdog is used.
  754. flushInterval: 5s # ENV: KUMA_EXPERIMENTAL_KDS_EVENT_BASED_WATCHDOG_FLUSH_INTERVAL
  755. # How often we schedule full KDS resync when experimental event based watchdog is used.
  756. fullResyncInterval: 60s # ENV: KUMA_EXPERIMENTAL_KDS_EVENT_BASED_WATCHDOG_FULL_RESYNC_INTERVAL
  757. # If true, then initial full resync is going to be delayed by 0 to FullResyncInterval.
  758. delayFullResync: false # ENV: KUMA_EXPERIMENTAL_KDS_EVENT_BASED_WATCHDOG_DELAY_FULL_RESYNC
  759. # If true then control plane computes reachable services automatically based on MeshTrafficPermission.
  760. # Lack of MeshTrafficPermission is treated as Deny the traffic.
  761. autoReachableServices: false # ENV: KUMA_EXPERIMENTAL_AUTO_REACHABLE_SERVICES
  762. # Enables sidecar containers in Kubernetes if supported by the Kubernetes
  763. # environment.
  764. sidecarContainers: false # ENV: KUMA_EXPERIMENTAL_SIDECAR_CONTAINERS
  765. # If true then it generates MeshServices from Kubernetes Service.
  766. generateMeshServices: false # ENV: KUMA_EXPERIMENTAL_GENERATE_MESH_SERVICES
  767. # If true skips persisted VIPs. Change to true only if generateMeshServices is enabled.
  768. # Do not enable on production.
  769. skipPersistedVIPs: false # ENV: KUMA_EXPERIMENTAL_SKIP_PERSISTED_VIPS
  770. proxy:
  771. gateway:
  772. # Sets the envoy runtime value to limit maximum number of incoming
  773. # connections to a builtin gateway data plane proxy
  774. globalDownstreamMaxConnections: 50000 # ENV: KUMA_PROXY_GATEWAY_GLOBAL_DOWNSTREAM_MAX_CONNECTIONS
  775. tracing:
  776. openTelemetry:
  777. endpoint: "" # e.g. otel-collector:4317
  778. # Configuration of the event bus which is local to one instance of CP
  779. eventBus:
  780. # BufferSize controls the buffer for every single event listener.
  781. # If we go over buffer, additional delay may happen to various operation like insight recomputation or KDS.
  782. bufferSize: 100 # ENV: KUMA_EVENT_BUS_BUFFER_SIZE
  783. policies:
  784. # PluginPoliciesEnabled controls which policy plugins are enabled
  785. pluginPoliciesEnabled: # ENV: KUMA_PLUGIN_POLICIES_ENABLED
  786. - meshaccesslogs
  787. - meshcircuitbreakers
  788. - meshfaultinjections
  789. - meshhealthchecks
  790. - meshhttproutes
  791. - meshloadbalancingstrategies
  792. - meshmetrics
  793. - meshpassthroughs
  794. - meshproxypatches
  795. - meshratelimits
  796. - meshretries
  797. - meshtcproutes
  798. - meshtimeouts
  799. - meshtlses
  800. - meshtraces
  801. - meshtrafficpermissions
  802. coreResources:
  803. status:
  804. # How often we compute status of MeshMultiZoneService
  805. meshMultiZoneServiceInterval: 5s # ENV: KUMA_CORE_RESOURCES_STATUS_MESH_MULTI_ZONE_SERVICE_INTERVAL
  806. # How often we compute status of MeshService
  807. meshServiceInterval: 5s # ENV: KUMA_CORE_RESOURCES_STATUS_MESH_SERVICE_INTERVAL
  808. enabled: # ENV: KUMA_CORE_RESOURCES_ENABLED
  809. - hostnamegenerators
  810. - meshexternalservices
  811. - meshmultizoneservices
  812. - meshservices
  813. # IP address management configuration
  814. ipam:
  815. # MeshService address management
  816. meshService:
  817. # CIDR for MeshService IPs
  818. cidr: 241.0.0.0/8 # ENV: KUMA_IPAM_MESH_SERVICE_CIDR
  819. meshExternalService:
  820. # CIDR for MeshExternalService IPs
  821. cidr: 242.0.0.0/8 # ENV: KUMA_IPAM_MESH_EXTERNAL_SERVICE_CIDR
  822. meshMultiZoneService:
  823. # CIDR for MeshMultiZoneService IPs
  824. cidr: 243.0.0.0/8 # ENV: KUMA_IPAM_MESH_MULTI_ZONE_SERVICE_CIDR
  825. # Interval on which Kuma will allocate new IPs for MeshServices and MeshExternalServices
  826. allocationInterval: 5s # ENV: KUMA_IPAM_ALLOCATION_INTERVAL
  827. meshService:
  828. # How often we check whether MeshServices need to be generated from Dataplanes
  829. generationInterval: 2s # ENV: KUMA_MESH_SERVICE_GENERATION_INTERVAL
  830. # How long we wait before deleting a MeshService if all Dataplanes are gone
  831. deletionGracePeriod: 1h # ENV: KUMA_MESH_SERVICE_DELETION_GRACE_PERIOD

Helm values.yaml

  1. global:
  2. image:
  3. # -- Default registry for all Kuma Images
  4. registry: "docker.io/kumahq"
  5. # -- The default tag for all Kuma images, which itself defaults to .Chart.AppVersion
  6. tag:
  7. # -- Add `imagePullSecrets` to all the service accounts used for Kuma components
  8. imagePullSecrets: []
  9. # -- Whether to patch the target namespace with the system label
  10. patchSystemNamespace: true
  11. installCrdsOnUpgrade:
  12. # -- Whether install new CRDs before upgrade (if any were introduced with the new version of Kuma)
  13. enabled: true
  14. # -- The `imagePullSecrets` to attach to the Service Account running CRD installation.
  15. # This field will be deprecated in a future release, please use .global.imagePullSecrets
  16. imagePullSecrets: []
  17. # -- Whether to disable all helm hooks
  18. noHelmHooks: false
  19. # -- Whether to restart control-plane by calculating a new checksum for the secret
  20. restartOnSecretChange: true
  21. controlPlane:
  22. # -- Environment that control plane is run in, useful when running universal global control plane on k8s
  23. environment: "kubernetes"
  24. # -- Labels to add to resources in addition to default labels
  25. extraLabels: {}
  26. # -- Kuma CP log level: one of off,info,debug
  27. logLevel: "info"
  28. # -- Kuma CP log output path: Defaults to /dev/stdout
  29. logOutputPath: ""
  30. # -- Kuma CP modes: one of zone,global
  31. mode: "zone"
  32. # -- (string) Kuma CP zone, if running multizone
  33. zone:
  34. # -- Only used in `zone` mode
  35. kdsGlobalAddress: ""
  36. # -- Number of replicas of the Kuma CP. Ignored when autoscaling is enabled
  37. replicas: 1
  38. # -- Minimum number of seconds for which a newly created pod should be ready for it to be considered available.
  39. minReadySeconds: 0
  40. # -- Annotations applied only to the `Deployment` resource
  41. deploymentAnnotations: {}
  42. # -- Annotations applied only to the `Pod` resource
  43. podAnnotations: {}
  44. # Horizontal Pod Autoscaling configuration
  45. autoscaling:
  46. # -- Whether to enable Horizontal Pod Autoscaling, which requires the [Metrics Server](https://github.com/kubernetes-sigs/metrics-server) in the cluster
  47. enabled: false
  48. # -- The minimum CP pods to allow
  49. minReplicas: 2
  50. # -- The max CP pods to scale to
  51. maxReplicas: 5
  52. # -- For clusters that don't support autoscaling/v2, autoscaling/v1 is used
  53. targetCPUUtilizationPercentage: 80
  54. # -- For clusters that do support autoscaling/v2, use metrics
  55. metrics:
  56. - type: Resource
  57. resource:
  58. name: cpu
  59. target:
  60. type: Utilization
  61. averageUtilization: 80
  62. # -- Node selector for the Kuma Control Plane pods
  63. nodeSelector:
  64. kubernetes.io/os: linux
  65. # -- Tolerations for the Kuma Control Plane pods
  66. tolerations: []
  67. podDisruptionBudget:
  68. # -- Whether to create a pod disruption budget
  69. enabled: false
  70. # -- The maximum number of unavailable pods allowed by the budget
  71. maxUnavailable: 1
  72. # -- Affinity placement rule for the Kuma Control Plane pods.
  73. # This is rendered as a template, so you can reference other helm variables or includes.
  74. affinity:
  75. podAntiAffinity:
  76. preferredDuringSchedulingIgnoredDuringExecution:
  77. - weight: 100
  78. podAffinityTerm:
  79. labelSelector:
  80. # These match the selector labels used on the deployment.
  81. matchExpressions:
  82. - key: app.kubernetes.io/name
  83. operator: In
  84. values:
  85. - '{{ include "kuma.name" . }}'
  86. - key: app.kubernetes.io/instance
  87. operator: In
  88. values:
  89. - '{{ .Release.Name }}'
  90. - key: app
  91. operator: In
  92. values:
  93. - '{{ include "kuma.name" . }}-control-plane'
  94. topologyKey: kubernetes.io/hostname
  95. # -- Topology spread constraints rule for the Kuma Control Plane pods.
  96. # This is rendered as a template, so you can use variables to generate match labels.
  97. topologySpreadConstraints:
  98. # -- Failure policy of the mutating webhook implemented by the Kuma Injector component
  99. injectorFailurePolicy: Fail
  100. service:
  101. apiServer:
  102. http:
  103. # -- Port on which Http api server Service is exposed on Node for service of type NodePort
  104. nodePort: 30681
  105. https:
  106. # -- Port on which Https api server Service is exposed on Node for service of type NodePort
  107. nodePort: 30682
  108. # -- Whether to create a service resource.
  109. enabled: true
  110. # -- (string) Optionally override of the Kuma Control Plane Service's name
  111. name:
  112. # -- Service type of the Kuma Control Plane
  113. type: ClusterIP
  114. # -- Annotations to put on the Kuma Control Plane
  115. annotations:
  116. prometheus.io/scrape: "true"
  117. prometheus.io/port: "5680"
  118. # Kuma API and GUI ingress settings. Useful if you want to expose the
  119. # API and GUI of Kuma outside the k8s cluster.
  120. ingress:
  121. # -- Install K8s Ingress resource that exposes GUI and API
  122. enabled: false
  123. # -- IngressClass defines which controller will implement the resource
  124. ingressClassName:
  125. # -- Ingress hostname
  126. hostname:
  127. # -- Map of ingress annotations.
  128. annotations: {}
  129. # -- Ingress path.
  130. path: /
  131. # -- Each path in an Ingress is required to have a corresponding path type. (ImplementationSpecific/Exact/Prefix)
  132. pathType: ImplementationSpecific
  133. # -- Port from kuma-cp to use to expose API and GUI. Switch to 5682 to expose TLS port
  134. servicePort: 5681
  135. globalZoneSyncService:
  136. # -- Whether to create a k8s service for the global zone sync
  137. # service. It will only be created when enabled and deploying the global
  138. # control plane.
  139. enabled: true
  140. # -- Service type of the Global-zone sync
  141. type: LoadBalancer
  142. # -- (string) Optionally specify IP to be used by cloud provider when configuring load balancer
  143. loadBalancerIP:
  144. # -- Optionally specify allowed source ranges that can access the load balancer
  145. loadBalancerSourceRanges: []
  146. # -- Additional annotations to put on the Global Zone Sync Service
  147. annotations: { }
  148. # -- Port on which Global Zone Sync Service is exposed on Node for service of type NodePort
  149. nodePort: 30685
  150. # -- Port on which Global Zone Sync Service is exposed
  151. port: 5685
  152. # -- Protocol of the Global Zone Sync service port
  153. protocol: grpc
  154. defaults:
  155. # -- Whether to skip creating the default Mesh
  156. skipMeshCreation: false
  157. # -- Whether to automountServiceAccountToken for cp. Optionally set to false
  158. automountServiceAccountToken: true
  159. # -- Optionally override the resource spec
  160. resources:
  161. requests:
  162. cpu: 500m
  163. memory: 256Mi
  164. limits:
  165. memory: 256Mi
  166. # -- Pod lifecycle settings (useful for adding a preStop hook, when
  167. # using AWS ALB or NLB)
  168. lifecycle: {}
  169. # -- Number of seconds to wait before force killing the pod. Make sure to
  170. # update this if you add a preStop hook.
  171. terminationGracePeriodSeconds: 30
  172. # TLS for various servers
  173. tls:
  174. general:
  175. # -- Secret that contains tls.crt, tls.key [and ca.crt when no
  176. # controlPlane.tls.general.caSecretName specified] for protecting
  177. # Kuma in-cluster communication
  178. secretName: ""
  179. # -- Secret that contains ca.crt that was used to sign cert for protecting
  180. # Kuma in-cluster communication (ca.crt present in this secret
  181. # have precedence over the one provided in the controlPlane.tls.general.secretName)
  182. caSecretName: ""
  183. # -- Base64 encoded CA certificate (the same as in controlPlane.tls.general.secret#ca.crt)
  184. caBundle: ""
  185. apiServer:
  186. # -- Secret that contains tls.crt, tls.key for protecting Kuma API on HTTPS
  187. secretName: ""
  188. # -- Secret that contains list of .pem certificates that can access admin endpoints of Kuma API on HTTPS
  189. clientCertsSecretName: ""
  190. # - if not creating the global control plane, then do nothing
  191. # - if secretName is empty and create is false, then do nothing
  192. # - if secretName is non-empty and create is false, then use the secret made outside of helm with the name secretName
  193. # - if secretName is empty and create is true, then create a secret with a default name and use it
  194. # - if secretName is non-empty and create is true, then create the secret using the provided name
  195. kdsGlobalServer:
  196. # -- Name of the K8s TLS Secret resource. If you set this and don't set
  197. # create=true, you have to create the secret manually.
  198. secretName: ""
  199. # -- Whether to create the TLS secret in helm.
  200. create: false
  201. # -- The TLS certificate to offer.
  202. cert: ""
  203. # -- The TLS key to use.
  204. key: ""
  205. # - if not creating the zonal control plane, then do nothing
  206. # - if secretName is empty and create is false, then do nothing
  207. # - if secretName is non-empty and create is false, then use the secret made outside of helm with the name secretName
  208. # - if secretName is empty and create is true, then create a secret with a default name and use it
  209. # - if secretName is non-empty and create is true, then create the secret using the provided name
  210. kdsZoneClient:
  211. # -- Name of the K8s Secret resource that contains ca.crt which was
  212. # used to sign the certificate of KDS Global Server. If you set this
  213. # and don't set create=true, you have to create the secret manually.
  214. secretName: ""
  215. # -- Whether to create the TLS secret in helm.
  216. create: false
  217. # -- CA bundle that was used to sign the certificate of KDS Global Server.
  218. cert: ""
  219. # -- If true, TLS cert of the server is not verified.
  220. skipVerify: false
  221. # -- Annotations to add for Control Plane's Service Account
  222. serviceAccountAnnotations: { }
  223. image:
  224. # -- Kuma CP ImagePullPolicy
  225. pullPolicy: IfNotPresent
  226. # -- Kuma CP image repository
  227. repository: "kuma-cp"
  228. # -- Kuma CP Image tag. When not specified, the value is copied from global.tag
  229. tag:
  230. # -- (object with { Env: string, Secret: string, Key: string }) Secrets to add as environment variables,
  231. # where `Env` is the name of the env variable,
  232. # `Secret` is the name of the Secret,
  233. # and `Key` is the key of the Secret value to use
  234. secrets:
  235. # someSecret:
  236. # Secret: some-secret
  237. # Key: secret_key
  238. # Env: SOME_SECRET
  239. # -- Additional environment variables that will be passed to the control plane
  240. envVars: { }
  241. # -- Additional environment variables that will be passed to the control plane. Can be used with Kubernetes downward API
  242. envVarEntries:
  243. # - name: MY_NODE_NAME
  244. # valueFrom:
  245. # fieldRef:
  246. # fieldPath: spec.nodeName
  247. # -- Additional config maps to mount into the control plane, with optional inline values
  248. extraConfigMaps: [ ]
  249. # - name: extra-config
  250. # mountPath: /etc/extra-config
  251. # readOnly: true
  252. # values:
  253. # extra-config-key: |
  254. # extra-config-value
  255. # -- (object with { name: string, mountPath: string, readOnly: string }) Additional secrets to mount into the control plane,
  256. # where `Env` is the name of the env variable,
  257. # `Secret` is the name of the Secret,
  258. # and `Key` is the key of the Secret value to use
  259. extraSecrets:
  260. # extraConfig:
  261. # name: extra-config
  262. # mountPath: /etc/extra-config
  263. # readOnly: true
  264. webhooks:
  265. validator:
  266. # -- Additional rules to apply on Kuma validator webhook. Useful when building custom policy on top of Kuma.
  267. additionalRules: ""
  268. ownerReference:
  269. # -- Additional rules to apply on Kuma owner reference webhook. Useful when building custom policy on top of Kuma.
  270. additionalRules: ""
  271. # -- Specifies if the deployment should be started in hostNetwork mode.
  272. hostNetwork: false
  273. # -- Define a new server port for the admission controller. Recommended to set in combination with
  274. # hostNetwork to prevent multiple port bindings on the same port (like Calico in AWS EKS).
  275. admissionServerPort: 5443
  276. # -- Security context at the pod level for control plane.
  277. podSecurityContext:
  278. runAsNonRoot: true
  279. # -- Security context at the container level for control plane.
  280. containerSecurityContext:
  281. readOnlyRootFilesystem: true
  282. # -- If true, then control plane can support TLS secrets for builtin gateway outside of mesh system namespace.
  283. # The downside is that control plane requires permission to read Secrets in all namespaces.
  284. supportGatewaySecretsInAllNamespaces: false
  285. # -- DNS configuration for the control-plane pod.
  286. # This is equivalent to the [Kubernetes DNS policy](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy).
  287. dns:
  288. # -- Defines how DNS resolution is configured for that Pod.
  289. policy: ""
  290. # -- Optional dns configuration, required when policy is 'None'
  291. config:
  292. # -- A list of IP addresses that will be used as DNS servers for the Pod. There can be at most 3 IP addresses specified.
  293. nameservers: []
  294. # -- A list of DNS search domains for hostname lookup in the Pod.
  295. searches: []
  296. cni:
  297. # -- Install Kuma with CNI instead of proxy init container
  298. enabled: false
  299. # -- Install CNI in chained mode
  300. chained: false
  301. # -- Set the CNI install directory
  302. netDir: /etc/cni/multus/net.d
  303. # -- Set the CNI bin directory
  304. binDir: /var/lib/cni/bin
  305. # -- Set the CNI configuration name
  306. confName: kuma-cni.conf
  307. # -- CNI log level: one of off,info,debug
  308. logLevel: info
  309. # -- Node Selector for the CNI pods
  310. nodeSelector:
  311. kubernetes.io/os: linux
  312. # -- Tolerations for the CNI pods
  313. tolerations: []
  314. # -- Additional pod annotations
  315. podAnnotations: { }
  316. # -- Set the CNI namespace
  317. namespace: kube-system
  318. image:
  319. # -- CNI image repository
  320. repository: "kuma-cni"
  321. # -- CNI image tag - defaults to .Chart.AppVersion
  322. tag:
  323. # -- CNI image pull policy
  324. imagePullPolicy: IfNotPresent
  325. # -- it's only useful in tests to trigger a possible race condition
  326. delayStartupSeconds: 0
  327. # -- use new CNI (experimental)
  328. experimental:
  329. imageEbpf:
  330. # -- CNI experimental eBPF image registry
  331. registry: "docker.io/kumahq"
  332. # -- CNI experimental eBPF image repository
  333. repository: "merbridge"
  334. # -- CNI experimental eBPF image tag
  335. tag: "0.8.5"
  336. resources:
  337. requests:
  338. cpu: 100m
  339. memory: 100Mi
  340. limits:
  341. memory: 100Mi
  342. # -- Security context at the pod level for cni
  343. podSecurityContext: {}
  344. # -- Security context at the container level for cni
  345. containerSecurityContext:
  346. readOnlyRootFilesystem: true
  347. runAsNonRoot: false
  348. runAsUser: 0
  349. runAsGroup: 0
  350. dataPlane:
  351. # -- If true, then turn on CoreDNS query logging
  352. dnsLogging: false
  353. image:
  354. # -- The Kuma DP image repository
  355. repository: "kuma-dp"
  356. # -- Kuma DP ImagePullPolicy
  357. pullPolicy: IfNotPresent
  358. # -- Kuma DP Image Tag. When not specified, the value is copied from global.tag
  359. tag:
  360. initImage:
  361. # -- The Kuma DP init image repository
  362. repository: "kuma-init"
  363. # -- Kuma DP init image tag When not specified, the value is copied from global.tag
  364. tag:
  365. ingress:
  366. # -- If true, it deploys Ingress for cross cluster communication
  367. enabled: false
  368. # -- Labels to add to resources, in addition to default labels
  369. extraLabels: {}
  370. # -- Time for which old listener will still be active as draining
  371. drainTime: 30s
  372. # -- Number of replicas of the Ingress. Ignored when autoscaling is enabled.
  373. replicas: 1
  374. # -- Log level for ingress (available values: off|info|debug)
  375. logLevel: info
  376. # -- Define the resources to allocate to mesh ingress
  377. resources:
  378. requests:
  379. cpu: 50m
  380. memory: 64Mi
  381. limits:
  382. cpu: 1000m
  383. memory: 512Mi
  384. # -- Pod lifecycle settings (useful for adding a preStop hook, when
  385. # using AWS ALB or NLB)
  386. lifecycle: {}
  387. # -- Number of seconds to wait before force killing the pod. Make sure to
  388. # update this if you add a preStop hook.
  389. terminationGracePeriodSeconds: 40
  390. # Horizontal Pod Autoscaling configuration
  391. autoscaling:
  392. # -- Whether to enable Horizontal Pod Autoscaling, which requires the [Metrics Server](https://github.com/kubernetes-sigs/metrics-server) in the cluster
  393. enabled: false
  394. # -- The minimum CP pods to allow
  395. minReplicas: 2
  396. # -- The max CP pods to scale to
  397. maxReplicas: 5
  398. # -- For clusters that don't support autoscaling/v2, autoscaling/v1 is used
  399. targetCPUUtilizationPercentage: 80
  400. # -- For clusters that do support autoscaling/v2, use metrics
  401. metrics:
  402. - type: Resource
  403. resource:
  404. name: cpu
  405. target:
  406. type: Utilization
  407. averageUtilization: 80
  408. service:
  409. # -- Whether to create a Service resource.
  410. enabled: true
  411. # -- Service type of the Ingress
  412. type: LoadBalancer
  413. # -- (string) Optionally specify IP to be used by cloud provider when configuring load balancer
  414. loadBalancerIP:
  415. # -- Additional annotations to put on the Ingress service
  416. annotations: { }
  417. # -- Port on which Ingress is exposed
  418. port: 10001
  419. # -- Port on which service is exposed on Node for service of type NodePort
  420. nodePort:
  421. # -- Additional pod annotations (deprecated favor `podAnnotations`)
  422. annotations: { }
  423. # -- Additional pod annotations
  424. podAnnotations: { }
  425. # -- Node Selector for the Ingress pods
  426. nodeSelector:
  427. kubernetes.io/os: linux
  428. # -- Tolerations for the Ingress pods
  429. tolerations: []
  430. podDisruptionBudget:
  431. # -- Whether to create a pod disruption budget
  432. enabled: false
  433. # -- The maximum number of unavailable pods allowed by the budget
  434. maxUnavailable: 1
  435. # -- Affinity placement rule for the Kuma Ingress pods
  436. # This is rendered as a template, so you can reference other helm variables
  437. # or includes.
  438. affinity:
  439. podAntiAffinity:
  440. preferredDuringSchedulingIgnoredDuringExecution:
  441. - weight: 100
  442. podAffinityTerm:
  443. labelSelector:
  444. # These match the selector labels used on the deployment.
  445. matchExpressions:
  446. - key: app.kubernetes.io/name
  447. operator: In
  448. values:
  449. - '{{ include "kuma.name" . }}'
  450. - key: app.kubernetes.io/instance
  451. operator: In
  452. values:
  453. - '{{ .Release.Name }}'
  454. - key: app
  455. operator: In
  456. values:
  457. - kuma-ingress
  458. topologyKey: kubernetes.io/hostname
  459. # -- Topology spread constraints rule for the Kuma Mesh Ingress pods.
  460. # This is rendered as a template, so you can use variables to generate match labels.
  461. topologySpreadConstraints:
  462. # -- Security context at the pod level for ingress
  463. podSecurityContext:
  464. runAsNonRoot: true
  465. runAsUser: 5678
  466. runAsGroup: 5678
  467. # -- Security context at the container level for ingress
  468. containerSecurityContext:
  469. readOnlyRootFilesystem: true
  470. # -- Annotations to add for Control Plane's Service Account
  471. serviceAccountAnnotations: { }
  472. # -- Whether to automountServiceAccountToken for cp. Optionally set to false
  473. automountServiceAccountToken: true
  474. # -- DNS configuration for the ingress pod.
  475. # This is equivalent to the [Kubernetes DNS policy](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy).
  476. dns:
  477. # -- Defines how DNS resolution is configured for that Pod.
  478. policy: ""
  479. # -- Optional dns configuration, required when policy is 'None'
  480. config:
  481. # -- A list of IP addresses that will be used as DNS servers for the Pod. There can be at most 3 IP addresses specified.
  482. nameservers: []
  483. # -- A list of DNS search domains for hostname lookup in the Pod.
  484. searches: []
  485. egress:
  486. # -- If true, it deploys Egress for cross cluster communication
  487. enabled: false
  488. # -- Labels to add to resources, in addition to the default labels.
  489. extraLabels: {}
  490. # -- Time for which old listener will still be active as draining
  491. drainTime: 30s
  492. # -- Number of replicas of the Egress. Ignored when autoscaling is enabled.
  493. replicas: 1
  494. # -- Log level for egress (available values: off|info|debug)
  495. logLevel: info
  496. # Horizontal Pod Autoscaling configuration
  497. autoscaling:
  498. # -- Whether to enable Horizontal Pod Autoscaling, which requires the [Metrics Server](https://github.com/kubernetes-sigs/metrics-server) in the cluster
  499. enabled: false
  500. # -- The minimum CP pods to allow
  501. minReplicas: 2
  502. # -- The max CP pods to scale to
  503. maxReplicas: 5
  504. # -- For clusters that don't support autoscaling/v2, autoscaling/v1 is used
  505. targetCPUUtilizationPercentage: 80
  506. # -- For clusters that do support autoscaling/v2, use metrics
  507. metrics:
  508. - type: Resource
  509. resource:
  510. name: cpu
  511. target:
  512. type: Utilization
  513. averageUtilization: 80
  514. resources:
  515. requests:
  516. cpu: 50m
  517. memory: 64Mi
  518. limits:
  519. cpu: 1000m
  520. memory: 512Mi
  521. service:
  522. # -- Whether to create the service object
  523. enabled: true
  524. # -- Service type of the Egress
  525. type: ClusterIP
  526. # -- (string) Optionally specify IP to be used by cloud provider when configuring load balancer
  527. loadBalancerIP:
  528. # -- Additional annotations to put on the Egress service
  529. annotations: { }
  530. # -- Port on which Egress is exposed
  531. port: 10002
  532. # -- Port on which service is exposed on Node for service of type NodePort
  533. nodePort:
  534. # -- Additional pod annotations (deprecated favor `podAnnotations`)
  535. annotations: { }
  536. # -- Additional pod annotations
  537. podAnnotations: { }
  538. # -- Node Selector for the Egress pods
  539. nodeSelector:
  540. kubernetes.io/os: linux
  541. # -- Tolerations for the Egress pods
  542. tolerations: []
  543. podDisruptionBudget:
  544. # -- Whether to create a pod disruption budget
  545. enabled: false
  546. # -- The maximum number of unavailable pods allowed by the budget
  547. maxUnavailable: 1
  548. # -- Affinity placement rule for the Kuma Egress pods.
  549. # This is rendered as a template, so you can reference other helm variables or includes.
  550. affinity:
  551. podAntiAffinity:
  552. preferredDuringSchedulingIgnoredDuringExecution:
  553. - weight: 100
  554. podAffinityTerm:
  555. labelSelector:
  556. # These match the selector labels used on the deployment.
  557. matchExpressions:
  558. - key: app.kubernetes.io/name
  559. operator: In
  560. values:
  561. - '{{ include "kuma.name" . }}'
  562. - key: app.kubernetes.io/instance
  563. operator: In
  564. values:
  565. - '{{ .Release.Name }}'
  566. - key: app
  567. operator: In
  568. values:
  569. - kuma-egress
  570. topologyKey: kubernetes.io/hostname
  571. # -- Topology spread constraints rule for the Kuma Egress pods.
  572. # This is rendered as a template, so you can use variables to generate match labels.
  573. topologySpreadConstraints:
  574. # -- Security context at the pod level for egress
  575. podSecurityContext:
  576. runAsNonRoot: true
  577. runAsUser: 5678
  578. runAsGroup: 5678
  579. # -- Security context at the container level for egress
  580. containerSecurityContext:
  581. readOnlyRootFilesystem: true
  582. # -- Annotations to add for Control Plane's Service Account
  583. serviceAccountAnnotations: { }
  584. # -- Whether to automountServiceAccountToken for cp. Optionally set to false
  585. automountServiceAccountToken: true
  586. # -- DNS configuration for the egress pod.
  587. # This is equivalent to the [Kubernetes DNS policy](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy).
  588. dns:
  589. # -- Defines how DNS resolution is configured for that Pod.
  590. policy: ""
  591. # -- Optional dns configuration, required when policy is 'None'
  592. config:
  593. # -- A list of IP addresses that will be used as DNS servers for the Pod. There can be at most 3 IP addresses specified.
  594. nameservers: []
  595. # -- A list of DNS search domains for hostname lookup in the Pod.
  596. searches: []
  597. kumactl:
  598. image:
  599. # -- The kumactl image repository
  600. repository: kumactl
  601. # -- The kumactl image tag. When not specified, the value is copied from global.tag
  602. tag:
  603. kubectl:
  604. image:
  605. # -- The kubectl image registry
  606. registry: docker.io
  607. # -- The kubectl image repository
  608. repository: bitnami/kubectl
  609. # -- The kubectl image tag
  610. tag: "1.27.5"
  611. hooks:
  612. # -- Node selector for the HELM hooks
  613. nodeSelector:
  614. kubernetes.io/os: linux
  615. # -- Tolerations for the HELM hooks
  616. tolerations: []
  617. # -- Security context at the pod level for crd/webhook/ns
  618. podSecurityContext:
  619. runAsNonRoot: true
  620. # -- Security context at the container level for crd/webhook/ns
  621. containerSecurityContext:
  622. readOnlyRootFilesystem: true
  623. # -- ebpf-cleanup hook needs write access to the root filesystem to clean ebpf programs
  624. # Changing below values will potentially break ebpf cleanup completely,
  625. # so be cautious when doing so.
  626. ebpfCleanup:
  627. # -- Security context at the pod level for crd/webhook/cleanup-ebpf
  628. podSecurityContext:
  629. runAsNonRoot: false
  630. # -- Security context at the container level for crd/webhook/cleanup-ebpf
  631. containerSecurityContext:
  632. readOnlyRootFilesystem: false
  633. transparentProxy:
  634. configMap:
  635. # -- If true, enables the use of a ConfigMap to manage transparent proxy configuration
  636. # instead of directly configuring it within the Kuma system
  637. enabled: false
  638. # -- The name of the ConfigMap used to store the transparent proxy configuration
  639. name: kuma-transparent-proxy-config
  640. config:
  641. # -- The username or UID of the user that will run kuma-dp. If not provided, the system will
  642. # use the default UID ("5678") or the default username ("kuma-dp")
  643. kumaDPUser: "5678"
  644. # -- The IP family mode used for configuring traffic redirection in the transparent proxy
  645. # Supports "dualstack" (for both IPv4 and IPv6) and "ipv4" modes
  646. ipFamilyMode: dualstack
  647. redirect:
  648. dns:
  649. # -- Enables DNS redirection in the transparent proxy
  650. enabled: true
  651. # -- Redirect all DNS queries
  652. captureAll: true
  653. # -- The port on which the DNS server listens
  654. port: 15053
  655. # -- Path to the system's resolv.conf file
  656. resolvConfigPath: /etc/resolv.conf
  657. # -- Disables conntrack zone splitting, which can prevent potential DNS issues
  658. skipConntrackZoneSplit: false
  659. inbound:
  660. # -- Enables inbound traffic redirection
  661. enabled: true
  662. # -- Port used for redirecting inbound traffic
  663. port: 15006
  664. # -- List of ports to exclude from inbound traffic redirection
  665. excludePorts: []
  666. # -- List of IP addresses to exclude from inbound traffic redirection for specific ports
  667. excludePortsForIPs: []
  668. # -- List of UIDs to exclude from inbound traffic redirection for specific ports
  669. excludePortsForUIDs: []
  670. # -- List of ports to include in inbound traffic redirection
  671. includePorts: []
  672. # -- Inserts the redirection rule at the beginning of the chain instead of appending it
  673. insertRedirectInsteadOfAppend: false
  674. outbound:
  675. # -- Enables outbound traffic redirection
  676. enabled: true
  677. # -- Port used for redirecting outbound traffic
  678. port: 15001
  679. # -- List of ports to exclude from outbound traffic redirection
  680. excludePorts: []
  681. # -- List of IP addresses to exclude from outbound traffic redirection for specific ports
  682. excludePortsForIPs: []
  683. # -- List of UIDs to exclude from outbound traffic redirection for specific ports
  684. excludePortsForUIDs: []
  685. # -- List of ports to include in outbound traffic redirection
  686. includePorts: []
  687. # -- Inserts the redirection rule at the beginning of the chain instead of appending it
  688. insertRedirectInsteadOfAppend: false
  689. vnet:
  690. # -- Specifies virtual networks using the format interfaceName:CIDR
  691. # Allows matching traffic on specific network interfaces
  692. # Examples:
  693. # - "docker0:172.17.0.0/16"
  694. # - "br+:172.18.0.0/16" (matches any interface starting with "br")
  695. # - "iface:::1/64" (for IPv6)
  696. networks: []
  697. ebpf:
  698. # -- Enables eBPF support for handling traffic redirection in the transparent proxy
  699. enabled: false
  700. # -- The path of the BPF filesystem
  701. bpffsPath: /run/kuma/bpf
  702. # -- The path of cgroup2
  703. cgroupPath: /sys/fs/cgroup
  704. # -- The name of the environment variable containing the IP address of the instance (pod/vm)
  705. # where transparent proxy will be installed
  706. instanceIPEnvVarName: ""
  707. # -- Path where compiled eBPF programs and other necessary files for eBPF mode can be found
  708. programsSourcePath: /tmp/kuma-ebpf
  709. # -- The network interface for TC eBPF programs to bind to. If not provided, it will be
  710. # automatically determined
  711. tcAttachIface: ""
  712. retry:
  713. # -- The maximum number of retry attempts for operations
  714. maxRetries: 4
  715. # -- The time duration to wait between retry attempts
  716. sleepBetweenRetries: 2s
  717. iptablesExecutables:
  718. # -- Custom path for the iptables executable (IPv4)
  719. iptables: ""
  720. # -- Custom path for the iptables-save executable (IPv4)
  721. iptables-save: ""
  722. # -- Custom path for the iptables-restore executable (IPv4)
  723. iptables-restore: ""
  724. # -- Custom path for the ip6tables executable (IPv6)
  725. ip6tables: ""
  726. # -- Custom path for the ip6tables-save executable (IPv6)
  727. ip6tables-save: ""
  728. # -- Custom path for the ip6tables-restore executable (IPv6)
  729. ip6tables-restore: ""
  730. log:
  731. # -- Enables logging of iptables rules for diagnostics and monitoring
  732. enabled: false
  733. comments:
  734. # -- Disables comments in the generated iptables rules
  735. disabled: false
  736. # -- Time in seconds to wait for acquiring the xtables lock before failing
  737. # Value 0 means wait indefinitely
  738. wait: 5
  739. # -- Time interval between retries to acquire the xtables lock in seconds
  740. waitInterval: 0
  741. # -- Drops invalid packets to avoid connection resets in high-throughput scenarios
  742. dropInvalidPackets: false
  743. # -- Enables firewalld support to store iptables rules
  744. storeFirewalld: false
  745. # -- Enables verbose mode with longer argument/flag names and additional comments
  746. verbose: false
  747. experimental:
  748. # Configuration for the experimental ebpf mode for transparent proxy
  749. ebpf:
  750. # -- If true, ebpf will be used instead of using iptables to install/configure transparent proxy
  751. enabled: false
  752. # -- Name of the environmental variable which will contain the IP address of a pod
  753. instanceIPEnvVarName: INSTANCE_IP
  754. # -- Path where BPF file system should be mounted
  755. bpffsPath: /sys/fs/bpf
  756. # -- Host's cgroup2 path
  757. cgroupPath: /sys/fs/cgroup
  758. # -- Name of the network interface which TC programs should be attached to, we'll try to automatically determine it if empty
  759. tcAttachIface: ""
  760. # -- Path where compiled eBPF programs which will be installed can be found
  761. programsSourcePath: /tmp/kuma-ebpf
  762. # -- If true, enable native Kubernetes sidecars. This requires at least
  763. # Kubernetes v1.29
  764. sidecarContainers: false
  765. # Postgres' settings for universal control plane on k8s
  766. postgres:
  767. # -- Postgres port, password should be provided as a secret reference in "controlPlane.secrets"
  768. # with the Env value "KUMA_STORE_POSTGRES_PASSWORD".
  769. # Example:
  770. # controlPlane:
  771. # secrets:
  772. # - Secret: postgres-postgresql
  773. # Key: postgresql-password
  774. # Env: KUMA_STORE_POSTGRES_PASSWORD
  775. port: "5432"
  776. # TLS settings
  777. tls:
  778. # -- Mode of TLS connection. Available values are: "disable", "verifyNone", "verifyCa", "verifyFull"
  779. mode: disable # ENV: KUMA_STORE_POSTGRES_TLS_MODE
  780. # -- Whether to disable SNI the postgres `sslsni` option.
  781. disableSSLSNI: false # ENV: KUMA_STORE_POSTGRES_TLS_DISABLE_SSLSNI
  782. # -- Secret name that contains the ca.crt
  783. caSecretName:
  784. # -- Secret name that contains the client tls.crt, tls.key
  785. secretName:
  786. # @ignored for helm-docs
  787. plugins:
  788. resources:
  789. hostnamegenerators: true
  790. meshexternalservices: true
  791. meshmultizoneservices: true
  792. meshservices: true
  793. policies:
  794. meshaccesslogs: true
  795. meshcircuitbreakers: true
  796. meshfaultinjections: true
  797. meshhealthchecks: true
  798. meshhttproutes: true
  799. meshloadbalancingstrategies: true
  800. meshmetrics: true
  801. meshpassthroughs: true
  802. meshproxypatches: true
  803. meshratelimits: true
  804. meshretries: true
  805. meshtcproutes: true
  806. meshtimeouts: true
  807. meshtlses: true
  808. meshtraces: true
  809. meshtrafficpermissions: true