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: "standalone", "global", "zone"
  4. mode: standalone # 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. # MaxConnectionLifetime (applied only when driverName=pgx) is the duration since creation after which a connection will be automatically closed
  30. maxConnectionLifetime: "1h" # ENV: KUMA_STORE_POSTGRES_MAX_CONNECTION_LIFETIME
  31. # MaxConnectionLifetimeJitter (applied only when driverName=pgx) is the duration after maxConnectionLifetime to randomly decide to close a connection.
  32. # This helps prevent all connections from being closed at the exact same time, starving the pool.
  33. maxConnectionLifetimeJitter: "1m" # ENV: KUMA_STORE_POSTGRES_MAX_CONNECTION_LIFETIME_JITTER
  34. # HealthCheckInterval (applied only when driverName=pgx) is the duration between checks of the health of idle connections.
  35. healthCheckInterval: "30s" # ENV: KUMA_STORE_POSTGRES_HEALTH_CHECK_INTERVAL
  36. # MinOpenConnections (applied only when driverName=pgx) is the minimum number of open connections to the database
  37. minOpenConnections: 0 # ENV: KUMA_STORE_POSTGRES_MIN_OPEN_CONNECTIONS
  38. # MaxOpenConnections is the maximum number of open connections to the database
  39. # `0` value means number of open connections is unlimited
  40. maxOpenConnections: 50 # ENV: KUMA_STORE_POSTGRES_MAX_OPEN_CONNECTIONS
  41. # MaxIdleConnections (applied only when driverName=postgres) is the maximum number of connections in the idle connection pool
  42. # <0 value means no idle connections and 0 means default max idle connections
  43. maxIdleConnections: 50 # ENV: KUMA_STORE_POSTGRES_MAX_IDLE_CONNECTIONS
  44. # TLS settings
  45. tls:
  46. # Mode of TLS connection. Available values are: "disable", "verifyNone", "verifyCa", "verifyFull"
  47. mode: disable # ENV: KUMA_STORE_POSTGRES_TLS_MODE
  48. # Path to TLS Certificate of the client. Required when server has METHOD=cert
  49. certPath: # ENV: KUMA_STORE_POSTGRES_TLS_CERT_PATH
  50. # Path to TLS Key of the client. Required when server has METHOD=cert
  51. keyPath: # ENV: KUMA_STORE_POSTGRES_TLS_KEY_PATH
  52. # Path to the root certificate. Used in verifyCa and verifyFull modes.
  53. caPath: # ENV: KUMA_STORE_POSTGRES_TLS_ROOT_CERT_PATH
  54. # MinReconnectInterval (applied only when driverName=postgres) controls the duration to wait before trying to
  55. # re-establish the database connection after connection loss. After each
  56. # consecutive failure this interval is doubled, until MaxReconnectInterval
  57. # is reached. Successfully completing the connection establishment procedure
  58. # resets the interval back to MinReconnectInterval.
  59. minReconnectInterval: "10s" # ENV: KUMA_STORE_POSTGRES_MIN_RECONNECT_INTERVAL
  60. # MaxReconnectInterval (applied only when driverName=postgres) controls the maximum possible duration to wait before trying
  61. # to re-establish the database connection after connection loss.
  62. maxReconnectInterval: "60s" # ENV: KUMA_STORE_POSTGRES_MAX_RECONNECT_INTERVAL
  63. # Cache for read only operations. This cache is local to the instance of the control plane.
  64. cache:
  65. # If true then cache is enabled
  66. enabled: true # ENV: KUMA_STORE_CACHE_ENABLED
  67. # Expiration time for elements in cache.
  68. expirationTime: 1s # ENV: KUMA_STORE_CACHE_EXPIRATION_TIME
  69. # Upsert (get and update) configuration
  70. upsert:
  71. # Base time for exponential backoff on upsert operations when retry is enabled
  72. conflictRetryBaseBackoff: 100ms # ENV: KUMA_STORE_UPSERT_CONFLICT_RETRY_BASE_BACKOFF
  73. # Max retries on upsert (get and update) operation when retry is enabled
  74. conflictRetryMaxTimes: 5 # ENV: KUMA_STORE_UPSERT_CONFLICT_RETRY_MAX_TIMES
  75. # If true, skips validation of resource delete.
  76. # For example you don't have to delete all Dataplane objects before you delete a Mesh
  77. unsafeDelete: false # ENV: KUMA_STORE_UNSAFE_DELETE
  78. # Configuration of Bootstrap Server, which provides bootstrap config to Dataplanes
  79. bootstrapServer:
  80. # Parameters of bootstrap configuration
  81. params:
  82. # Address of Envoy Admin
  83. adminAddress: 127.0.0.1 # ENV: KUMA_BOOTSTRAP_SERVER_PARAMS_ADMIN_ADDRESS
  84. # Port of Envoy Admin
  85. adminPort: 9901 # ENV: KUMA_BOOTSTRAP_SERVER_PARAMS_ADMIN_PORT
  86. # Path to access log file of Envoy Admin
  87. adminAccessLogPath: /dev/null # ENV: KUMA_BOOTSTRAP_SERVER_PARAMS_ADMIN_ACCESS_LOG_PATH
  88. # Host of XDS Server. By default it is the same host as the one used by kuma-dp to connect to the control plane
  89. xdsHost: "" # ENV: KUMA_BOOTSTRAP_SERVER_PARAMS_XDS_HOST
  90. # Port of XDS Server. By default it is autoconfigured from KUMA_DP_SERVER_PORT
  91. xdsPort: 0 # ENV: KUMA_BOOTSTRAP_SERVER_PARAMS_XDS_PORT
  92. # Connection timeout to the XDS Server
  93. xdsConnectTimeout: 1s # ENV: KUMA_BOOTSTRAP_SERVER_PARAMS_XDS_CONNECT_TIMEOUT
  94. # Monitoring Assignment Discovery Service (MADS) server configuration
  95. monitoringAssignmentServer:
  96. # Port of a gRPC server that serves Monitoring Assignment Discovery Service (MADS).
  97. port: 5676 # ENV: KUMA_MONITORING_ASSIGNMENT_SERVER_PORT
  98. # Which MADS API versions to serve
  99. apiVersions: ["v1"] # ENV: KUMA_MONITORING_ASSIGNMENT_SERVER_API_VERSIONS
  100. # Interval for re-generating monitoring assignments for clients connected to the Control Plane.
  101. assignmentRefreshInterval: 1s # ENV: KUMA_MONITORING_ASSIGNMENT_SERVER_ASSIGNMENT_REFRESH_INTERVAL
  102. # The default timeout for a single fetch-based discovery request, if not specified
  103. defaultFetchTimeout: 30s # ENV: KUMA_MONITORING_ASSIGNMENT_SERVER_DEFAULT_FETCH_TIMEOUT
  104. # Path to TLS certificate file
  105. tlsCertFile: "" # ENV: KUMA_MONITORING_ASSIGNMENT_SERVER_TLS_CERT_FILE
  106. # Path to TLS key file
  107. tlsKeyFile: "" # ENV: KUMA_MONITORING_ASSIGNMENT_SERVER_TLS_KEY_FILE
  108. # TlsMinVersion the minimum version of TLS used across all the Kuma Servers.
  109. tlsMinVersion: "TLSv1_2" # ENV: KUMA_MONITORING_ASSIGNMENT_SERVER_TLS_MIN_VERSION
  110. # TlsMaxVersion the maximum version of TLS used across all the Kuma Servers.
  111. tlsMaxVersion: # ENV: KUMA_MONITORING_ASSIGNMENT_SERVER_TLS_MAX_VERSION
  112. # TlsCipherSuites the list of cipher suites to be used across all the Kuma Servers.
  113. tlsCipherSuites: [] # ENV: KUMA_MONITORING_ASSIGNMENT_SERVER_TLS_CIPHER_SUITES
  114. # Envoy XDS server configuration
  115. xdsServer:
  116. # Interval for re-genarting configuration for Dataplanes connected to the Control Plane
  117. dataplaneConfigurationRefreshInterval: 1s # ENV: KUMA_XDS_SERVER_DATAPLANE_CONFIGURATION_REFRESH_INTERVAL
  118. # Interval for flushing status of Dataplanes connected to the Control Plane
  119. dataplaneStatusFlushInterval: 10s # ENV: KUMA_XDS_SERVER_DATAPLANE_STATUS_FLUSH_INTERVAL
  120. # Backoff that is executed when Control Plane is sending the response that was previously rejected by Dataplane
  121. nackBackoff: 5s # ENV: KUMA_XDS_SERVER_NACK_BACKOFF
  122. # A delay between proxy terminating a connection and the CP trying to deregister the proxy.
  123. # It is used only in universal mode when you use direct lifecycle.
  124. # Setting this setting to 0s disables the delay.
  125. # Disabling this may cause race conditions that one instance of CP removes proxy object
  126. # while proxy is connected to another instance of the CP.
  127. dataplaneDeregistrationDelay: 10s # ENV: KUMA_XDS_DATAPLANE_DEREGISTRATION_DELAY
  128. # API Server configuration
  129. apiServer:
  130. # HTTP configuration of the API Server
  131. http:
  132. # If true then API Server will be served on HTTP
  133. enabled: true # ENV: KUMA_API_SERVER_HTTP_ENABLED
  134. # Network interface on which HTTP API Server will be exposed
  135. interface: 0.0.0.0 # ENV: KUMA_API_SERVER_HTTP_INTERFACE
  136. # Port of the API Server
  137. port: 5681 # ENV: KUMA_API_SERVER_HTTP_PORT
  138. # HTTPS configuration of the API Server
  139. https:
  140. # If true then API Server will be served on HTTPS
  141. enabled: true # ENV: KUMA_API_SERVER_HTTPS_ENABLED
  142. # Network interface on which HTTPS API Server will be exposed
  143. interface: 0.0.0.0 # ENV: KUMA_API_SERVER_HTTPS_INTERFACE
  144. # Port of the HTTPS API Server
  145. port: 5682 # ENV: KUMA_API_SERVER_HTTPS_PORT
  146. # Path to TLS certificate file. Autoconfigured from KUMA_GENERAL_TLS_CERT_FILE if empty
  147. tlsCertFile: "" # ENV: KUMA_API_SERVER_HTTPS_TLS_CERT_FILE
  148. # Path to TLS key file. Autoconfigured from KUMA_GENERAL_TLS_KEY_FILE if empty
  149. tlsKeyFile: "" # ENV: KUMA_API_SERVER_HTTPS_TLS_KEY_FILE
  150. # Path to the CA certificate which is used to sign client certificates. It is used only for verifying client certificates.
  151. tlsCaFile: "" # ENV: KUMA_API_SERVER_HTTPS_CLIENT_CERTS_CA_FILE
  152. # TlsMinVersion the minimum version of TLS used across all the Kuma Servers.
  153. tlsMinVersion: "TLSv1_2" # ENV: KUMA_API_SERVER_HTTPS_TLS_MIN_VERSION
  154. # TlsMaxVersion the maximum version of TLS used across all the Kuma Servers.
  155. tlsMaxVersion: # ENV: KUMA_API_SERVER_HTTPS_TLS_MAX_VERSION
  156. # TlsCipherSuites the list of cipher suites to be used across all the Kuma Servers.
  157. tlsCipherSuites: [] # ENV: KUMA_API_SERVER_HTTPS_TLS_CIPHER_SUITES
  158. # If true, then HTTPS connection will require client cert.
  159. requireClientCert: false # ENV: KUMA_API_SERVER_HTTPS_REQUIRE_CLIENT_CERT
  160. # Authentication configuration for administrative endpoints like Dataplane Token or managing Secrets
  161. auth:
  162. # Directory of authorized client certificates (only validate in HTTPS)
  163. clientCertsDir: "" # ENV: KUMA_API_SERVER_AUTH_CLIENT_CERTS_DIR
  164. # Api Server Authentication configuration
  165. authn:
  166. # Type of authentication mechanism (available values: "adminClientCerts", "tokens")
  167. type: tokens # ENV: KUMA_API_SERVER_AUTHN_TYPE
  168. # Localhost is authenticated as a user admin of group admin
  169. localhostIsAdmin: true # ENV: KUMA_API_SERVER_AUTHN_LOCALHOST_IS_ADMIN
  170. # Configuration for tokens authentication
  171. tokens:
  172. # If true then User Token with name admin and group admin will be created and placed as admin-user-token Kuma secret
  173. bootstrapAdminToken: true # ENV: KUMA_API_SERVER_AUTHN_TOKENS_BOOTSTRAP_ADMIN_TOKEN
  174. # If true the control plane token issuer is enabled. It's recommended to set it to false when all the tokens are issued offline.
  175. enableIssuer: true # ENV: KUMA_API_SERVER_AUTHN_TOKENS_ENABLE_ISSUER
  176. # Token validator configuration
  177. validator:
  178. # If true then Kuma secrets with prefix "user-token-signing-key" are considered as signing keys.
  179. useSecrets: true # ENV: KUMA_API_SERVER_AUTHN_TOKENS_VALIDATOR_USE_SECRETS
  180. # List of public keys used to validate the token. Example:
  181. # - kid: 1
  182. # key: |
  183. # -----BEGIN RSA PUBLIC KEY-----
  184. # MIIBCgKCAQEAq....
  185. # -----END RSA PUBLIC KEY-----
  186. # - kid: 2
  187. # keyFile: /keys/public.pem
  188. publicKeys: []
  189. # If true, then API Server will operate in read only mode (serving GET requests)
  190. readOnly: false # ENV: KUMA_API_SERVER_READ_ONLY
  191. # Allowed domains for Cross-Origin Resource Sharing. The value can be either domain or regexp
  192. corsAllowedDomains:
  193. - ".*" # ENV: KUMA_API_SERVER_CORS_ALLOWED_DOMAINS
  194. # Can be used if you use a reverse proxy
  195. rootUrl: "" # ENV: KUMA_API_SERVER_ROOT_URL
  196. # The path to serve the API from
  197. basePath: "/" # ENV: KUMA_API_SERVER_BASE_PATH
  198. # configuration specific to the GUI
  199. gui:
  200. # Whether to serve the gui (if mode=zone this has no effect)
  201. enabled: true # ENV: KUMA_API_SERVER_GUI_ENABLED
  202. # Can be used if you use a reverse proxy or want to serve the gui from a different path
  203. rootUrl: "" # ENV: KUMA_API_SERVER_GUI_ROOT_URL
  204. # The path to serve the GUI from
  205. basePath: "/gui" # ENV: KUMA_API_SERVER_GUI_BASE_PATH
  206. # Environment-specific configuration
  207. runtime:
  208. # Kubernetes-specific configuration
  209. kubernetes:
  210. # Service name of the Kuma Control Plane. It is used to point Kuma DP to proper URL.
  211. controlPlaneServiceName: kuma-control-plane # ENV: KUMA_RUNTIME_KUBERNETES_CONTROL_PLANE_SERVICE_NAME
  212. # Name of Service Account that is used to run the Control Plane
  213. serviceAccountName: "system:serviceaccount:kuma-system:kuma-control-plane" # ENV: KUMA_RUNTIME_KUBERNETES_SERVICE_ACCOUNT_NAME
  214. # Taint controller that prevents applications from scheduling until CNI is ready.
  215. nodeTaintController:
  216. # If true enables the taint controller.
  217. enabled: false # ENV: KUMA_RUNTIME_KUBERNETES_NODE_TAINT_CONTROLLER_ENABLED
  218. # Value of app label on CNI pod that indicates if node can be ready.
  219. cniApp: "" # ENV: KUMA_RUNTIME_KUBERNETES_NODE_TAINT_CONTROLLER_CNI_APP
  220. # Value of CNI namespace.
  221. cniNamespace: "kube-system" # ENV: KUMA_RUNTIME_KUBERNETES_NODE_TAINT_CONTROLLER_CNI_NAMESPACE
  222. # Admission WebHook Server configuration
  223. admissionServer:
  224. # Address the Admission WebHook Server should be listening on
  225. address: # ENV: KUMA_RUNTIME_KUBERNETES_ADMISSION_SERVER_ADDRESS
  226. # Port the Admission WebHook Server should be listening on
  227. port: 5443 # ENV: KUMA_RUNTIME_KUBERNETES_ADMISSION_SERVER_PORT
  228. # Directory with a TLS cert and private key for the Admission WebHook Server.
  229. # TLS certificate file must be named `tls.crt`.
  230. # TLS key file must be named `tls.key`.
  231. certDir: # ENV: kuma_runtime_kubernetes_admission_server_cert_dir
  232. # Injector defines configuration of a Kuma Sidecar Injector.
  233. injector:
  234. # if true runs kuma-cp in CNI compatible mode
  235. cniEnabled: false # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_CNI_ENABLED
  236. # list of exceptions for Kuma injection
  237. exceptions:
  238. # a map of labels for exception. If pod matches label with given value Kuma won't be injected. Specify '*' to match any value.
  239. labels:
  240. openshift.io/build.name: "*"
  241. openshift.io/deployer-pod-for.name: "*"
  242. # VirtualProbesEnabled enables automatic converting HttpGet probes to virtual. Virtual probe
  243. # serves on sub-path of insecure port 'virtualProbesPort',
  244. # i.e :8080/health/readiness -> :9000/8080/health/readiness where 9000 is virtualProbesPort
  245. virtualProbesEnabled: true # ENV: KUMA_RUNTIME_KUBERNETES_VIRTUAL_PROBES_ENABLED
  246. # VirtualProbesPort is a port for exposing virtual probes which are not secured by mTLS
  247. virtualProbesPort: 9000 # ENV: KUMA_RUNTIME_KUBERNETES_VIRTUAL_PROBES_PORT
  248. # CaCertFile is CA certificate which will be used to verify a connection to the control plane.
  249. caCertFile: # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_CA_CERT_FILE
  250. # SidecarContainer defines configuration of the Kuma sidecar container.
  251. sidecarContainer:
  252. # Image name.
  253. image: kuma/kuma-dp:latest # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_IMAGE
  254. # Redirect port for inbound traffic.
  255. redirectPortInbound: 15006 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_REDIRECT_PORT_INBOUND
  256. # Redirect port for inbound traffic.
  257. redirectPortInboundV6: 15010 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_REDIRECT_PORT_INBOUND_V6
  258. # Redirect port for outbound traffic.
  259. redirectPortOutbound: 15001 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_REDIRECT_PORT_OUTBOUND
  260. # User ID.
  261. uid: 5678 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_UID
  262. # Group ID.
  263. gid: 5678 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_GUI
  264. # Drain time for listeners.
  265. drainTime: 30s # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_DRAIN_TIME
  266. # Readiness probe.
  267. readinessProbe:
  268. # Number of seconds after the container has started before readiness probes are initiated.
  269. initialDelaySeconds: 1 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_READINESS_PROBE_INITIAL_DELAY_SECONDS
  270. # Number of seconds after which the probe times out.
  271. timeoutSeconds: 3 # ENV : KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_READINESS_PROBE_TIMEOUT_SECONDS
  272. # Number of seconds after which the probe times out.
  273. periodSeconds: 5 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_READINESS_PROBE_PERIOD_SECONDS
  274. # Minimum consecutive successes for the probe to be considered successful after having failed.
  275. successThreshold: 1 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_READINESS_PROBE_SUCCESS_THRESHOLD
  276. # Minimum consecutive failures for the probe to be considered failed after having succeeded.
  277. failureThreshold: 12 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_READINESS_PROBE_FAILURE_THRESHOLD
  278. # Liveness probe.
  279. livenessProbe:
  280. # Number of seconds after the container has started before liveness probes are initiated.
  281. initialDelaySeconds: 60 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_LIVENESS_PROBE_INITIAL_DELAY_SECONDS
  282. # Number of seconds after which the probe times out.
  283. timeoutSeconds: 3 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_LIVENESS_PROBE_TIMEOUT_SECONDS
  284. # How often (in seconds) to perform the probe.
  285. periodSeconds: 5 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_LIVENESS_PROBE_PERIOD_SECONDS
  286. # Minimum consecutive failures for the probe to be considered failed after having succeeded.
  287. failureThreshold: 12 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_LIVENESS_PROBE_FAILURE_THRESHOLD
  288. # Compute resource requirements.
  289. resources:
  290. # Minimum amount of compute resources required.
  291. requests:
  292. # CPU, in cores. (500m = .5 cores)
  293. cpu: 50m # ENV: KUMA_INJECTOR_SIDECAR_CONTAINER_RESOURCES_REQUESTS_CPU
  294. # Memory, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)
  295. memory: 64Mi # ENV: KUMA_INJECTOR_SIDECAR_CONTAINER_RESOURCES_REQUESTS_MEMORY
  296. # Maximum amount of compute resources allowed.
  297. limits:
  298. # CPU, in cores. (500m = .5 cores)
  299. cpu: 1000m # ENV: KUMA_INJECTOR_SIDECAR_CONTAINER_RESOURCES_LIMITS_CPU
  300. # Memory, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)
  301. memory: 512Mi # ENV: KUMA_INJECTOR_SIDECAR_CONTAINER_RESOURCES_LIMITS_MEMORY
  302. # Additional environment variables that can be placed on Kuma DP sidecar
  303. envVars: {} # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_SIDECAR_CONTAINER_ENV_VARS
  304. # InitContainer defines configuration of the Kuma init container
  305. initContainer:
  306. # Image name.
  307. image: kuma/kuma-init:latest # ENV: KUMA_INJECTOR_INIT_CONTAINER_IMAGE
  308. # ContainerPatches is an optional list of ContainerPatch names which will be applied
  309. # to init and sidecar containers if workload is not annotated with a patch list.
  310. containerPatches: [ ] # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_CONTAINER_PATCHES
  311. # Configuration for a traffic that is intercepted by sidecar
  312. sidecarTraffic:
  313. # List of inbound ports that will be excluded from interception.
  314. # This setting is applied on every pod unless traffic.kuma.io/exclude-inbound-ports annotation is specified on Pod.
  315. excludeInboundPorts: [ ] # ENV: KUMA_RUNTIME_KUBERNETES_SIDECAR_TRAFFIC_EXCLUDE_INBOUND_PORTS
  316. # List of outbound ports that will be excluded from interception.
  317. # This setting is applied on every pod unless traffic.kuma.io/exclude-oubound-ports annotation is specified on Pod.
  318. excludeOutboundPorts: [ ] # ENV: KUMA_RUNTIME_KUBERNETES_SIDECAR_TRAFFIC_EXCLUDE_OUTBOUND_PORTS
  319. builtinDNS:
  320. # Use the built-in DNS
  321. enabled: true # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_BUILTIN_DNS_ENABLED
  322. # Redirect port for DNS
  323. port: 15053 # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_BUILTIN_DNS_PORT
  324. transparentProxyV1: false # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_TRANSPARENT_PROXY_V1
  325. # EBPF defines configuration for the ebpf, when transparent proxy is marked to be
  326. # installed using ebpf instead of iptables
  327. ebpf:
  328. # Install transparent proxy using ebpf
  329. enabled: false # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_EBPF_ENABLED
  330. # Name of the environmental variable which will include IP address of the pod
  331. instanceIPEnvVarName: INSTANCE_IP # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_EBPF_INSTANCE_IP_ENV_VAR_NAME
  332. # Path where BPF file system will be mounted for pinning ebpf programs and maps
  333. bpffsPath: /sys/fs/bpf # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_EBPF_BPFFS_PATH
  334. # Path of mounted cgroup2
  335. cgroupPath: /sys/fs/cgroup # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_EBPF_CGROUP_PATH
  336. # Name of the network interface which should be used to attach to it TC programs
  337. # when not specified, we will try to automatically determine it
  338. tcAttachIface: "" # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_EBPF_TC_ATTACH_IFACE
  339. # Path where compiled eBPF programs are placed
  340. programsSourcePath: /kuma/ebpf # ENV: KUMA_RUNTIME_KUBERNETES_INJECTOR_EBPF_PROGRAMS_SOURCE_PATH
  341. marshalingCacheExpirationTime: 5m # ENV: KUMA_RUNTIME_KUBERNETES_MARSHALING_CACHE_EXPIRATION_TIME
  342. # Kubernetes's resources reconciliation concurrency configuration
  343. controllersConcurrency:
  344. # PodController defines maximum concurrent reconciliations of Pod resources
  345. # Default value 10. If set to 0 kube controller-runtime default value of 1 will be used.
  346. podController: 10 # ENV: KUMA_RUNTIME_KUBERNETES_CONTROLLERS_CONCURRENCY_POD_CONTROLLER
  347. # Kubernetes client configuration
  348. clientConfig:
  349. # Qps defines maximum requests kubernetes client is allowed to make per second.
  350. # Default value 100. If set to 0 kube-client default value of 5 will be used.
  351. qps: 100
  352. # BurstQps defines maximum burst requests kubernetes client is allowed to make per second
  353. # Default value 100. If set to 0 kube-client default value of 10 will be used.
  354. burstQps: 100
  355. # Universal-specific configuration
  356. universal:
  357. # DataplaneCleanupAge defines how long Dataplane should be offline to be cleaned up by GC
  358. dataplaneCleanupAge: 72h0m0s # ENV: KUMA_RUNTIME_UNIVERSAL_DATAPLANE_CLEANUP_AGE
  359. # Default Kuma entities configuration
  360. defaults:
  361. # If true, it skips creating the default Mesh
  362. skipMeshCreation: false # ENV: KUMA_DEFAULTS_SKIP_MESH_CREATION
  363. # If true, it skips creating the default tenant resources
  364. skipTenantResources: false # ENV: KUMA_DEFAULTS_SKIP_TENANT_RESOURCES
  365. # Metrics configuration
  366. metrics:
  367. dataplane:
  368. # How many latest subscriptions will be stored in DataplaneInsight object, if equals 0 then unlimited
  369. subscriptionLimit: 2 # ENV: KUMA_METRICS_DATAPLANE_SUBSCRIPTION_LIMIT
  370. # How long data plane proxy can stay Online without active xDS connection
  371. idleTimeout: 5m # ENV: KUMA_METRICS_DATAPLANE_IDLE_TIMEOUT
  372. zone:
  373. # How many latest subscriptions will be stored in ZoneInsights object, if equals 0 then unlimited
  374. subscriptionLimit: 10 # ENV: KUMA_METRICS_ZONE_SUBSCRIPTION_LIMIT
  375. # How long zone can stay Online without active KDS connection
  376. idleTimeout: 5m # ENV: KUMA_METRICS_ZONE_IDLE_TIMEOUT
  377. mesh:
  378. # Min time that should pass between MeshInsight resync
  379. minResyncTimeout: 1s # ENV: KUMA_METRICS_MESH_MIN_RESYNC_TIMEOUT
  380. # Max time that MeshInsight could spend without resync
  381. maxResyncTimeout: 20s # ENV: KUMA_METRICS_MESH_MAX_RESYNC_TIMEOUT
  382. # Reports configuration
  383. reports:
  384. # If true then usage stats will be reported
  385. enabled: false # ENV: KUMA_REPORTS_ENABLED
  386. # General configuration
  387. general:
  388. # dnsCacheTTL represents duration for how long Kuma CP will cache result of resolving dataplane's domain name
  389. dnsCacheTTL: 10s # ENV: KUMA_GENERAL_DNS_CACHE_TTL
  390. # TlsCertFile defines a path to a file with PEM-encoded TLS cert that will be used across all the Kuma Servers.
  391. tlsCertFile: # ENV: KUMA_GENERAL_TLS_CERT_FILE
  392. # TlsKeyFile defines a path to a file with PEM-encoded TLS key that will be used across all the Kuma Servers.
  393. tlsKeyFile: # ENV: KUMA_GENERAL_TLS_KEY_FILE
  394. # TlsMinVersion the minimum version of TLS used across all the Kuma Servers.
  395. tlsMinVersion: "TLSv1_2" # ENV: KUMA_GENERAL_TLS_MIN_VERSION
  396. # TlsMaxVersion the maximum version of TLS used across all the Kuma Servers.
  397. tlsMaxVersion: # ENV: KUMA_GENERAL_TLS_MAX_VERSION
  398. # TlsCipherSuites the list of cipher suites to be used across all the Kuma Servers.
  399. tlsCipherSuites: [] # ENV: KUMA_GENERAL_TLS_CIPHER_SUITES
  400. # WorkDir defines a path to the working directory
  401. # Kuma stores in this directory autogenerated entities like certificates.
  402. # If empty then the working directory is $HOME/.kuma
  403. workDir: "" # ENV: KUMA_GENERAL_WORK_DIR
  404. # DNS Server configuration
  405. dnsServer:
  406. # The domain that the server will resolve the services for
  407. domain: "mesh" # ENV: KUMA_DNS_SERVER_DOMAIN
  408. # The CIDR range used to allocate
  409. CIDR: "240.0.0.0/4" # ENV: KUMA_DNS_SERVER_CIDR
  410. # Will create a service "<kuma.io/service>.mesh" dns entry for every service.
  411. serviceVipEnabled: true # ENV: KUMA_DNS_SERVER_SERVICE_VIP_ENABLED
  412. # The port to use along with the `<kuma.io/service>.mesh` dns entry
  413. serviceVipPort: 80 # ENV: KUMA_DNS_SERVICE_SERVICE_VIP_PORT
  414. # Multizone mode
  415. multizone:
  416. global:
  417. kds:
  418. # Port of a gRPC server that serves Kuma Discovery Service (KDS).
  419. grpcPort: 5685 # ENV: KUMA_MULTIZONE_GLOBAL_KDS_GRPC_PORT
  420. # Interval for refreshing state of the world
  421. refreshInterval: 1s # ENV: KUMA_MULTIZONE_GLOBAL_KDS_REFRESH_INTERVAL
  422. # Interval for flushing Zone Insights (stats of multi-zone communication)
  423. zoneInsightFlushInterval: 10s # ENV: KUMA_MULTIZONE_GLOBAL_KDS_ZONE_INSIGHT_FLUSH_INTERVAL
  424. # TlsEnabled turns on TLS for KDS
  425. tlsEnabled: true # ENV: KUMA_MULTIZONE_GLOBAL_KDS_TLS_ENABLED
  426. # TlsCertFile defines a path to a file with PEM-encoded TLS cert.
  427. tlsCertFile: # ENV: KUMA_MULTIZONE_GLOBAL_KDS_TLS_CERT_FILE
  428. # TlsKeyFile defines a path to a file with PEM-encoded TLS key.
  429. tlsKeyFile: # ENV: KUMA_MULTIZONE_GLOBAL_KDS_TLS_KEY_FILE
  430. # TlsMinVersion the minimum version of TLS
  431. tlsMinVersion: "TLSv1_2" # ENV: KUMA_MULTIZONE_GLOBAL_KDS_TLS_MIN_VERSION
  432. # TlsMaxVersion the maximum version of TLS
  433. tlsMaxVersion: # ENV: KUMA_MULTIZONE_GLOBAL_KDS_TLS_MAX_VERSION
  434. # TlsCipherSuites the list of cipher suites
  435. tlsCipherSuites: [] # ENV: KUMA_MULTIZONE_GLOBAL_KDS_TLS_CIPHER_SUITES
  436. # MaxMsgSize defines a maximum size of the message in bytes that is exchanged using KDS.
  437. # In practice this means a limit on full list of one resource type.
  438. maxMsgSize: 10485760 # ENV: KUMA_MULTIZONE_GLOBAL_KDS_MAX_MSG_SIZE
  439. # MsgSendTimeout defines a timeout on sending a single KDS message.
  440. # KDS stream between control planes is terminated if the control plane hits this timeout.
  441. msgSendTimeout: 60s # ENV: KUMA_MULTIZONE_GLOBAL_KDS_MSG_SEND_TIMEOUT
  442. # Backoff that is executed when the global control plane is sending the response that was previously rejected by zone control plane
  443. nackBackoff: 5s # ENV: KUMA_MULTIZONE_GLOBAL_KDS_NACK_BACKOFF
  444. zone:
  445. # Kuma Zone name used to mark the zone dataplane resources
  446. name: "" # ENV: KUMA_MULTIZONE_ZONE_NAME
  447. # GlobalAddress URL of Global Kuma CP
  448. globalAddress: # ENV KUMA_MULTIZONE_ZONE_GLOBAL_ADDRESS
  449. kds:
  450. # Interval for refreshing state of the world
  451. refreshInterval: 1s # ENV: KUMA_MULTIZONE_ZONE_KDS_REFRESH_INTERVAL
  452. # RootCAFile defines a path to a file with PEM-encoded Root CA. Client will verify server by using it.
  453. rootCaFile: # ENV: KUMA_MULTIZONE_ZONE_KDS_ROOT_CA_FILE
  454. # If true, TLS connection to the server won't be verified.
  455. tlsSkipVerify: false # ENV: KUMA_MULTIZONE_ZONE_KDS_TLS_SKIP_VERIFY
  456. # MaxMsgSize defines a maximum size of the message in bytes that is exchanged using KDS.
  457. # In practice this means a limit on full list of one resource type.
  458. maxMsgSize: 10485760 # ENV: KUMA_MULTIZONE_ZONE_KDS_MAX_MSG_SIZE
  459. # MsgSendTimeout defines a timeout on sending a single KDS message.
  460. # KDS stream between control planes is terminated if the control plane hits this timeout.
  461. msgSendTimeout: 60s # ENV: KUMA_MULTIZONE_ZONE_KDS_MSG_SEND_TIMEOUT
  462. # Backoff that is executed when the zone control plane is sending the response that was previously rejected by global control plane
  463. nackBackoff: 5s # ENV: KUMA_MULTIZONE_ZONE_KDS_NACK_BACKOFF
  464. # Diagnostics configuration
  465. diagnostics:
  466. # Port of Diagnostic Server for checking health and readiness of the Control Plane
  467. serverPort: 5680 # ENV: KUMA_DIAGNOSTICS_SERVER_PORT
  468. # If true, enables https://golang.org/pkg/net/http/pprof/ debug endpoints
  469. debugEndpoints: false # ENV: KUMA_DIAGNOSTICS_DEBUG_ENDPOINTS
  470. # Whether tls is enabled or not
  471. tlsEnabled: false # ENV: KUMA_DIAGNOSTICS_TLS_ENABLED
  472. # TlsCertFile defines a path to a file with PEM-encoded TLS cert. If empty, autoconfigured from general.tlsCertFile
  473. tlsCertFile: # ENV: KUMA_DIAGNOSTICS_TLS_CERT_FILE
  474. # TlsKeyFile defines a path to a file with PEM-encoded TLS key. If empty, autoconfigured from general.tlsKeyFile
  475. tlsKeyFile: # ENV: KUMA_DIAGNOSTICS_TLS_KEY_FILE
  476. # TlsMinVersion the minimum version of TLS
  477. tlsMinVersion: "TLSv1_2" # ENV: KUMA_DIAGNOSTICS_TLS_MIN_VERSION
  478. # TlsMaxVersion the maximum version of TLS
  479. tlsMaxVersion: # ENV: KUMA_DIAGNOSTICS_TLS_MAX_VERSION
  480. # TlsCipherSuites the list of cipher suites
  481. tlsCipherSuites: [] # ENV: KUMA_DIAGNOSTICS_TLS_CIPHER_SUITES
  482. # Dataplane Server configuration that servers API like Bootstrap/XDS for the Dataplane.
  483. dpServer:
  484. # Port of the DP Server
  485. port: 5678 # ENV: KUMA_DP_SERVER_PORT
  486. # TlsCertFile defines a path to a file with PEM-encoded TLS cert. If empty, autoconfigured from general.tlsCertFile
  487. tlsCertFile: # ENV: KUMA_DP_SERVER_TLS_CERT_FILE
  488. # TlsKeyFile defines a path to a file with PEM-encoded TLS key. If empty, autoconfigured from general.tlsKeyFile
  489. tlsKeyFile: # ENV: KUMA_DP_SERVER_TLS_KEY_FILE
  490. # TlsMinVersion the minimum version of TLS
  491. tlsMinVersion: "TLSv1_2" # ENV: KUMA_DP_SERVER_TLS_MIN_VERSION
  492. # TlsMaxVersion the maximum version of TLS
  493. tlsMaxVersion: # ENV: KUMA_DP_SERVER_TLS_MAX_VERSION
  494. # TlsCipherSuites the list of cipher suites
  495. tlsCipherSuites: [] # ENV: KUMA_DP_SERVER_TLS_CIPHER_SUITES
  496. # ReadHeaderTimeout defines the amount of time DP server will be allowed
  497. # to read request headers. The connection's read deadline is reset
  498. # after reading the headers and the Handler can decide what is considered
  499. # too slow for the body. If ReadHeaderTimeout is zero there is no timeout.
  500. # The timeout is configurable as in rare cases, when Kuma CP was restarting,
  501. # 1s which is explicitly set in other servers was insufficient and DPs
  502. # were failing to reconnect (we observed this in Projected Service Account
  503. # Tokens e2e tests, which started flaking a lot after introducing explicit
  504. # 1s timeout)
  505. readHeaderTimeout: 5s # ENV: KUMA_DP_SERVER_READ_HEADER_TIMEOUT
  506. # Auth defines an authentication configuration for the DP Server
  507. # DEPRECATED: use "authn" section.
  508. auth:
  509. # Type of authentication. Available values: "serviceAccountToken", "dpToken", "none".
  510. # If empty, autoconfigured based on the environment - "serviceAccountToken" on Kubernetes, "dpToken" on Universal.
  511. type: "" # ENV: KUMA_DP_SERVER_AUTH_TYPE
  512. # Authn defines an authentication configuration for the DP Server
  513. authn:
  514. # Configuration for data plane proxy authentication.
  515. dpProxy:
  516. # Type of authentication. Available values: "serviceAccountToken", "dpToken", "none".
  517. # If empty, autoconfigured based on the environment - "serviceAccountToken" on Kubernetes, "dpToken" on Universal.
  518. type: ""
  519. # Configuration of dpToken authentication method
  520. dpToken:
  521. # If true the control plane token issuer is enabled. It's recommended to set it to false when all the tokens are issued offline.
  522. enableIssuer: true
  523. # DP Token validator configuration.
  524. validator:
  525. # If true then Kuma secrets with prefix "dataplane-token-signing-key-{mesh}" are considered as signing keys.
  526. useSecrets: true
  527. # List of public keys used to validate the token. Example:
  528. # - kid: 1
  529. # mesh: default
  530. # key: |
  531. # -----BEGIN RSA PUBLIC KEY-----
  532. # MIIBCgKCAQEAq....
  533. # -----END RSA PUBLIC KEY-----
  534. # - kid: 2
  535. # mesh: demo
  536. # keyFile: /keys/public.pem
  537. publicKeys: []
  538. # Configuration for zone proxy authentication.
  539. zoneProxy:
  540. # Type of authentication. Available values: "serviceAccountToken", "zoneToken", "none".
  541. # If empty, autoconfigured based on the environment - "serviceAccountToken" on Kubernetes, "zoneToken" on Universal.
  542. type: ""
  543. # Configuration for zoneToken authentication method.
  544. zoneToken:
  545. # If true the control plane token issuer is enabled. It's recommended to set it to false when all the tokens are issued offline.
  546. enableIssuer: true
  547. # Zone Token validator configuration.
  548. validator:
  549. # If true then Kuma secrets with prefix "zone-token-signing-key" are considered as signing keys.
  550. useSecrets: true
  551. # List of public keys used to validate the token. Example:
  552. # - kid: 1
  553. # key: |
  554. # -----BEGIN RSA PUBLIC KEY-----
  555. # MIIBCgKCAQEAq....
  556. # -----END RSA PUBLIC KEY-----
  557. # - kid: 2
  558. # keyFile: /keys/public.pem
  559. publicKeys: []
  560. # 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.
  561. enableReloadableTokens: false # ENV: KUMA_DP_SERVER_AUTHN_ENABLE_RELOADABLE_TOKENS
  562. # Hds defines a Health Discovery Service configuration
  563. hds:
  564. # Enabled if true then Envoy will actively check application's ports, but only on Universal.
  565. # On Kubernetes this feature disabled for now regardless the flag value
  566. enabled: true # ENV: KUMA_DP_SERVER_HDS_ENABLED
  567. # Interval for Envoy to send statuses for HealthChecks
  568. interval: 5s # ENV: KUMA_DP_SERVER_HDS_INTERVAL
  569. # RefreshInterval is an interval for re-genarting configuration for Dataplanes connected to the Control Plane
  570. refreshInterval: 10s # ENV: KUMA_DP_SERVER_HDS_REFRESH_INTERVAL
  571. # Check defines a HealthCheck configuration
  572. checkDefaults:
  573. # Timeout is a time to wait for a health check response. If the timeout is reached the
  574. # health check attempt will be considered a failure
  575. timeout: 2s # ENV: KUMA_DP_SERVER_HDS_CHECK_TIMEOUT
  576. # Interval between health checks
  577. interval: 1s # ENV: KUMA_DP_SERVER_HDS_CHECK_INTERVAL
  578. # NoTrafficInterval is a special health check interval that is used when a cluster has
  579. # never had traffic routed to it
  580. noTrafficInterval: 1s # ENV: KUMA_DP_SERVER_HDS_CHECK_NO_TRAFFIC_INTERVAL
  581. # HealthyThreshold is a number of healthy health checks required before a host is marked healthy
  582. healthyThreshold: 1 # ENV: KUMA_DP_SERVER_HDS_CHECK_HEALTHY_THRESHOLD
  583. # UnhealthyThreshold is a number of unhealthy health checks required before a host is marked unhealthy
  584. unhealthyThreshold: 1 # ENV: KUMA_DP_SERVER_HDS_CHECK_UNHEALTHY_THRESHOLD
  585. # Intercommunication CP configuration
  586. interCp:
  587. # Catalog configuration. Catalog keeps a record of all live CP instances in the zone.
  588. catalog:
  589. # Indicates an address on which other control planes can communicate with this CP.
  590. # If empty then it's autoconfigured by taking the first IP of the nonloopback network interface.
  591. instanceAddress: "" # ENV: KUMA_INTER_CP_CATALOG_INSTANCE_ADDRESS
  592. # Interval on which CP will send heartbeat to a leader.
  593. heartbeatInterval: 5s # ENV: KUMA_INTER_CP_CATALOG_HEARTBEAT_INTERVAL
  594. # Interval on which CP will write all instances to a catalog.
  595. writerInterval: 15s # ENV: KUMA_INTER_CP_CATALOG_WRITER_INTERVAL
  596. # Intercommunication CP server configuration
  597. server:
  598. # Port of the inter-cp server
  599. port: 5683 # ENV: KUMA_INTER_CP_SERVER_PORT
  600. # TlsMinVersion the minimum version of TLS
  601. tlsMinVersion: "TLSv1_2" # ENV: KUMA_INTER_CP_SERVER_TLS_MIN_VERSION
  602. # TlsMaxVersion the maximum version of TLS
  603. tlsMaxVersion: # ENV: KUMA_INTER_CP_SERVER_TLS_MAX_VERSION
  604. # TlsCipherSuites the list of cipher suites
  605. tlsCipherSuites: [ ] # ENV: KUMA_INTER_CP_SERVER_TLS_CIPHER_SUITES
  606. # Access Control configuration
  607. access:
  608. # Type of access strategy (available values: "static")
  609. type: static
  610. # Configuration of static access strategy
  611. static:
  612. # AdminResources defines an access to admin resources (Secret/GlobalSecret)
  613. adminResources:
  614. # List of users that are allowed to access admin resources
  615. users: ["mesh-system:admin"] # ENV: KUMA_ACCESS_STATIC_ADMIN_RESOURCES_USERS
  616. # List of groups that are allowed to access admin resources
  617. groups: ["mesh-system:admin"] # ENV: KUMA_ACCESS_STATIC_ADMIN_RESOURCES_GROUPS
  618. # GenerateDPToken defines an access to generating dataplane token
  619. generateDpToken:
  620. # List of users that are allowed to generate dataplane token
  621. users: ["mesh-system:admin"] # ENV: KUMA_ACCESS_STATIC_GENERATE_DP_TOKEN_USERS
  622. # List of groups that are allowed to generate dataplane token
  623. groups: ["mesh-system:admin"] # ENV: KUMA_ACCESS_STATIC_GENERATE_DP_TOKEN_GROUPS
  624. # GenerateUserToken defines an access to generating user token
  625. generateUserToken:
  626. # List of users that are allowed to generate user token
  627. users: ["mesh-system:admin"] # ENV: KUMA_ACCESS_STATIC_GENERATE_USER_TOKEN_USERS
  628. # List of groups that are allowed to generate user token
  629. groups: ["mesh-system:admin"] # ENV: KUMA_ACCESS_STATIC_GENERATE_USER_TOKEN_GROUPS
  630. # GenerateZoneToken defines an access to generating zone token
  631. generateZoneToken:
  632. # List of users that are allowed to generate zone token
  633. users: ["mesh-system:admin"] # ENV: KUMA_ACCESS_STATIC_GENERATE_ZONE_TOKEN_USERS
  634. # List of groups that are allowed to generate zone token
  635. groups: ["mesh-system:admin"] # ENV: KUMA_ACCESS_STATIC_GENERATE_ZONE_TOKEN_GROUPS
  636. viewConfigDump:
  637. # List of users that are allowed to get envoy config dump
  638. users: [ ] # ENV: KUMA_ACCESS_STATIC_GET_CONFIG_DUMP_USERS
  639. # List of groups that are allowed to get envoy config dump
  640. groups: ["mesh-system:unauthenticated","mesh-system:authenticated"] # ENV: KUMA_ACCESS_STATIC_GET_CONFIG_DUMP_GROUPS
  641. viewStats:
  642. # List of users that are allowed to get envoy stats
  643. users: [ ] # ENV: KUMA_ACCESS_STATIC_VIEW_STATS_USERS
  644. # List of groups that are allowed to get envoy stats
  645. groups: ["mesh-system:unauthenticated","mesh-system:authenticated"] # ENV: KUMA_ACCESS_STATIC_VIEW_STATS_GROUPS
  646. viewClusters:
  647. # List of users that are allowed to get envoy clusters
  648. users: [ ] # ENV: KUMA_ACCESS_STATIC_VIEW_CLUSTERS_USERS
  649. # List of groups that are allowed to get envoy clusters
  650. groups: ["mesh-system:unauthenticated","mesh-system:authenticated"] # ENV: KUMA_ACCESS_STATIC_VIEW_CLUSTERS_GROUPS
  651. # Configuration of experimental features of Kuma
  652. experimental:
  653. # If true, experimental Gateway API is enabled
  654. gatewayAPI: false # ENV: KUMA_EXPERIMENTAL_GATEWAY_API
  655. # If true, instead of embedding kubernetes outbounds into Dataplane object, they are persisted next to VIPs in ConfigMap
  656. # This can improve performance, but it should be enabled only after all instances are migrated to version that supports this config
  657. kubeOutboundsAsVIPs: true # ENV: KUMA_EXPERIMENTAL_KUBE_OUTBOUNDS_AS_VIPS
  658. # Tag first virtual outbound model is compressed version of default Virtual Outbound model
  659. # It is recommended to use tag first model for deployments with more than 2k services
  660. # You can enable this flag on existing deployment. In order to downgrade cp with this flag enabled
  661. # you need to first disable this flag and redeploy cp, after config is rewritten to default
  662. # format you can downgrade your cp
  663. useTagFirstVirtualOutboundModel: false # ENV: KUMA_EXPERIMENTAL_USE_TAG_FIRST_VIRTUAL_OUTBOUND_MODEL
  664. # If true, KDS will sync using incremental xDS updates
  665. kdsDeltaEnabled: false # ENV: KUMA_EXPERIMENTAL_KDS_DELTA_ENABLED
  666. proxy:
  667. gateway:
  668. # Sets the envoy runtime value to limit maximum number of incoming
  669. # connections to a builtin gateway data plane proxy
  670. globalDownstreamMaxConnections: 50000 # ENV: KUMA_PROXY_GATEWAY_GLOBAL_DOWNSTREAM_MAX_CONNECTIONS

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. controlPlane:
  18. # -- Environment that control plane is run in, useful when running universal global control plane on k8s
  19. environment: "kubernetes"
  20. # -- Labels to add to resources in addition to default labels
  21. extraLabels: {}
  22. # -- Kuma CP log level: one of off,info,debug
  23. logLevel: "info"
  24. # -- Kuma CP log output path: Defaults to /dev/stdout
  25. logOutputPath: ""
  26. # -- Kuma CP modes: one of standalone,zone,global
  27. mode: "standalone"
  28. # -- (string) Kuma CP zone, if running multizone
  29. zone:
  30. # -- Only used in `zone` mode
  31. kdsGlobalAddress: ""
  32. # -- Number of replicas of the Kuma CP. Ignored when autoscaling is enabled
  33. replicas: 1
  34. # -- Control Plane Pod Annotations
  35. podAnnotations: {}
  36. # Horizontal Pod Autoscaling configuration
  37. autoscaling:
  38. # -- Whether to enable Horizontal Pod Autoscaling, which requires the [Metrics Server](https://github.com/kubernetes-sigs/metrics-server) in the cluster
  39. enabled: false
  40. # -- The minimum CP pods to allow
  41. minReplicas: 2
  42. # -- The max CP pods to scale to
  43. maxReplicas: 5
  44. # -- For clusters that don't support autoscaling/v2, autoscaling/v1 is used
  45. targetCPUUtilizationPercentage: 80
  46. # -- For clusters that do support autoscaling/v2, use metrics
  47. metrics:
  48. - type: Resource
  49. resource:
  50. name: cpu
  51. target:
  52. type: Utilization
  53. averageUtilization: 80
  54. # -- Node selector for the Kuma Control Plane pods
  55. nodeSelector:
  56. kubernetes.io/os: linux
  57. # -- Tolerations for the Kuma Control Plane pods
  58. tolerations: []
  59. podDisruptionBudget:
  60. # -- Whether to create a pod disruption budget
  61. enabled: false
  62. # -- The maximum number of unavailable pods allowed by the budget
  63. maxUnavailable: 1
  64. # -- Affinity placement rule for the Kuma Control Plane pods.
  65. # This is rendered as a template, so you can reference other helm variables or includes.
  66. affinity:
  67. podAntiAffinity:
  68. preferredDuringSchedulingIgnoredDuringExecution:
  69. - weight: 100
  70. podAffinityTerm:
  71. labelSelector:
  72. # These match the selector labels used on the deployment.
  73. matchExpressions:
  74. - key: app.kubernetes.io/name
  75. operator: In
  76. values:
  77. - '{{ include "kuma.name" . }}'
  78. - key: app.kubernetes.io/instance
  79. operator: In
  80. values:
  81. - '{{ .Release.Name }}'
  82. - key: app
  83. operator: In
  84. values:
  85. - '{{ include "kuma.name" . }}-control-plane'
  86. topologyKey: kubernetes.io/hostname
  87. # -- Topology spread constraints rule for the Kuma Control Plane pods.
  88. # This is rendered as a template, so you can use variables to generate match labels.
  89. topologySpreadConstraints:
  90. # -- Failure policy of the mutating webhook implemented by the Kuma Injector component
  91. injectorFailurePolicy: Fail
  92. service:
  93. apiServer:
  94. http:
  95. # -- Port on which Http api server Service is exposed on Node for service of type NodePort
  96. nodePort: 30681
  97. https:
  98. # -- Port on which Https api server Service is exposed on Node for service of type NodePort
  99. nodePort: 30682
  100. # -- Whether to create a service resource.
  101. enabled: true
  102. # -- (string) Optionally override of the Kuma Control Plane Service's name
  103. name:
  104. # -- Service type of the Kuma Control Plane
  105. type: ClusterIP
  106. # -- Additional annotations to put on the Kuma Control Plane
  107. annotations: { }
  108. # Kuma API and GUI ingress settings. Useful if you want to expose the
  109. # API and GUI of Kuma outside the k8s cluster.
  110. ingress:
  111. # -- Install K8s Ingress resource that exposes GUI and API
  112. enabled: false
  113. # -- IngressClass defines which controller will implement the resource
  114. ingressClassName:
  115. # -- Ingress hostname
  116. hostname:
  117. # -- Map of ingress annotations.
  118. annotations: {}
  119. # -- Ingress path.
  120. path: /
  121. # -- Each path in an Ingress is required to have a corresponding path type. (ImplementationSpecific/Exact/Prefix)
  122. pathType: ImplementationSpecific
  123. globalZoneSyncService:
  124. # -- Whether to create a k8s service for the global zone sync
  125. # service. It will only be created when enabled and deploying the global
  126. # control plane.
  127. enabled: true
  128. # -- Service type of the Global-zone sync
  129. type: LoadBalancer
  130. # -- (string) Optionally specify IP to be used by cloud provider when configuring load balancer
  131. loadBalancerIP:
  132. # -- Additional annotations to put on the Global Zone Sync Service
  133. annotations: { }
  134. # -- Port on which Global Zone Sync Service is exposed on Node for service of type NodePort
  135. nodePort: 30685
  136. # -- Port on which Global Zone Sync Service is exposed
  137. port: 5685
  138. # -- Protocol of the Global Zone Sync service port
  139. protocol: grpc
  140. defaults:
  141. # -- Whether to skip creating the default Mesh
  142. skipMeshCreation: false
  143. # -- Whether to automountServiceAccountToken for cp. Optionally set to false
  144. automountServiceAccountToken: true
  145. # -- Optionally override the resource spec
  146. resources:
  147. requests:
  148. cpu: 500m
  149. memory: 256Mi
  150. limits:
  151. memory: 256Mi
  152. # -- Pod lifecycle settings (useful for adding a preStop hook, when
  153. # using AWS ALB or NLB)
  154. lifecycle: {}
  155. # -- Number of seconds to wait before force killing the pod. Make sure to
  156. # update this if you add a preStop hook.
  157. terminationGracePeriodSeconds: 30
  158. # TLS for various servers
  159. tls:
  160. general:
  161. # -- Secret that contains tls.crt, tls.key [and ca.crt when no
  162. # controlPlane.tls.general.caSecretName specified] for protecting
  163. # Kuma in-cluster communication
  164. secretName: ""
  165. # -- Secret that contains ca.crt that was used to sign cert for protecting
  166. # Kuma in-cluster communication (ca.crt present in this secret
  167. # have precedence over the one provided in the controlPlane.tls.general.secretName)
  168. caSecretName: ""
  169. # -- Base64 encoded CA certificate (the same as in controlPlane.tls.general.secret#ca.crt)
  170. caBundle: ""
  171. apiServer:
  172. # -- Secret that contains tls.crt, tls.key for protecting Kuma API on HTTPS
  173. secretName: ""
  174. # -- Secret that contains list of .pem certificates that can access admin endpoints of Kuma API on HTTPS
  175. clientCertsSecretName: ""
  176. # - if not creating the global control plane, then do nothing
  177. # - if secretName is empty and create is false, then do nothing
  178. # - if secretName is non-empty and create is false, then use the secret made outside of helm with the name secretName
  179. # - if secretName is empty and create is true, then create a secret with a default name and use it
  180. # - if secretName is non-empty and create is true, then create the secret using the provided name
  181. kdsGlobalServer:
  182. # -- Name of the K8s TLS Secret resource. If you set this and don't set
  183. # create=true, you have to create the secret manually.
  184. secretName: ""
  185. # -- Whether to create the TLS secret in helm.
  186. create: false
  187. # -- The TLS certificate to offer.
  188. cert: ""
  189. # -- The TLS key to use.
  190. key: ""
  191. # - if not creating the zonal control plane, then do nothing
  192. # - if secretName is empty and create is false, then do nothing
  193. # - if secretName is non-empty and create is false, then use the secret made outside of helm with the name secretName
  194. # - if secretName is empty and create is true, then create a secret with a default name and use it
  195. # - if secretName is non-empty and create is true, then create the secret using the provided name
  196. kdsZoneClient:
  197. # -- Name of the K8s Secret resource that contains ca.crt which was
  198. # used to sign the certificate of KDS Global Server. If you set this
  199. # and don't set create=true, you have to create the secret manually.
  200. secretName: ""
  201. # -- Whether to create the TLS secret in helm.
  202. create: false
  203. # -- CA bundle that was used to sign the certificate of KDS Global Server.
  204. cert: ""
  205. # -- If true, TLS cert of the server is not verified.
  206. skipVerify: false
  207. image:
  208. # -- Kuma CP ImagePullPolicy
  209. pullPolicy: IfNotPresent
  210. # -- Kuma CP image repository
  211. repository: "kuma-cp"
  212. # -- Kuma CP Image tag. When not specified, the value is copied from global.tag
  213. tag:
  214. # -- (object with { Env: string, Secret: string, Key: string }) Secrets to add as environment variables,
  215. # where `Env` is the name of the env variable,
  216. # `Secret` is the name of the Secret,
  217. # and `Key` is the key of the Secret value to use
  218. secrets:
  219. # someSecret:
  220. # Secret: some-secret
  221. # Key: secret_key
  222. # Env: SOME_SECRET
  223. # -- Additional environment variables that will be passed to the control plane
  224. envVars: { }
  225. # -- Additional config maps to mount into the control plane, with optional inline values
  226. extraConfigMaps: [ ]
  227. # - name: extra-config
  228. # mountPath: /etc/extra-config
  229. # readOnly: true
  230. # values:
  231. # extra-config-key: |
  232. # extra-config-value
  233. # -- (object with { name: string, mountPath: string, readOnly: string }) Additional secrets to mount into the control plane,
  234. # where `Env` is the name of the env variable,
  235. # `Secret` is the name of the Secret,
  236. # and `Key` is the key of the Secret value to use
  237. extraSecrets:
  238. # extraConfig:
  239. # name: extra-config
  240. # mountPath: /etc/extra-config
  241. # readOnly: true
  242. webhooks:
  243. validator:
  244. # -- Additional rules to apply on Kuma validator webhook. Useful when building custom policy on top of Kuma.
  245. additionalRules: ""
  246. ownerReference:
  247. # -- Additional rules to apply on Kuma owner reference webhook. Useful when building custom policy on top of Kuma.
  248. additionalRules: ""
  249. # -- Specifies if the deployment should be started in hostNetwork mode.
  250. hostNetwork: false
  251. # -- Define a new server port for the admission controller. Recommended to set in combination with
  252. # hostNetwork to prevent multiple port bindings on the same port (like Calico in AWS EKS).
  253. admissionServerPort: 5443
  254. # -- Security context at the pod level for control plane.
  255. podSecurityContext:
  256. runAsNonRoot: true
  257. # -- Security context at the container level for control plane.
  258. containerSecurityContext:
  259. readOnlyRootFilesystem: true
  260. cni:
  261. # -- Install Kuma with CNI instead of proxy init container
  262. enabled: false
  263. # -- Install CNI in chained mode
  264. chained: false
  265. # -- Set the CNI install directory
  266. netDir: /etc/cni/multus/net.d
  267. # -- Set the CNI bin directory
  268. binDir: /var/lib/cni/bin
  269. # -- Set the CNI configuration name
  270. confName: kuma-cni.conf
  271. # -- CNI log level: one of off,info,debug
  272. logLevel: info
  273. # -- Node Selector for the CNI pods
  274. nodeSelector:
  275. kubernetes.io/os: linux
  276. # -- Tolerations for the CNI pods
  277. tolerations: []
  278. # -- Additional pod annotations
  279. podAnnotations: { }
  280. # -- Set the CNI namespace
  281. namespace: kube-system
  282. image:
  283. # -- CNI image repository
  284. repository: "kuma-cni"
  285. # -- CNI image tag - defaults to .Chart.AppVersion
  286. tag:
  287. # -- CNI image pull policy
  288. imagePullPolicy: IfNotPresent
  289. # -- it's only useful in tests to trigger a possible race condition
  290. delayStartupSeconds: 0
  291. # -- use new CNI (experimental)
  292. experimental:
  293. imageEbpf:
  294. # -- CNI experimental eBPF image registry
  295. registry: "docker.io/kumahq"
  296. # -- CNI experimental eBPF image repository
  297. repository: "merbridge"
  298. # -- CNI experimental eBPF image tag
  299. tag: "0.8.5"
  300. resources:
  301. requests:
  302. cpu: 100m
  303. memory: 100Mi
  304. limits:
  305. memory: 100Mi
  306. # -- Security context at the pod level for cni
  307. podSecurityContext: {}
  308. # -- Security context at the container level for cni
  309. containerSecurityContext:
  310. readOnlyRootFilesystem: true
  311. runAsNonRoot: false
  312. runAsUser: 0
  313. runAsGroup: 0
  314. dataPlane:
  315. image:
  316. # -- The Kuma DP image repository
  317. repository: "kuma-dp"
  318. # -- Kuma DP ImagePullPolicy
  319. pullPolicy: IfNotPresent
  320. # -- Kuma DP Image Tag. When not specified, the value is copied from global.tag
  321. tag:
  322. initImage:
  323. # -- The Kuma DP init image repository
  324. repository: "kuma-init"
  325. # -- Kuma DP init image tag When not specified, the value is copied from global.tag
  326. tag:
  327. ingress:
  328. # -- If true, it deploys Ingress for cross cluster communication
  329. enabled: false
  330. # -- Labels to add to resources, in addition to default labels
  331. extraLabels: {}
  332. # -- Time for which old listener will still be active as draining
  333. drainTime: 30s
  334. # -- Number of replicas of the Ingress. Ignored when autoscaling is enabled.
  335. replicas: 1
  336. # -- Define the resources to allocate to mesh ingress
  337. resources:
  338. requests:
  339. cpu: 50m
  340. memory: 64Mi
  341. limits:
  342. cpu: 1000m
  343. memory: 512Mi
  344. # -- Pod lifecycle settings (useful for adding a preStop hook, when
  345. # using AWS ALB or NLB)
  346. lifecycle: {}
  347. # -- Number of seconds to wait before force killing the pod. Make sure to
  348. # update this if you add a preStop hook.
  349. terminationGracePeriodSeconds: 40
  350. # Horizontal Pod Autoscaling configuration
  351. autoscaling:
  352. # -- Whether to enable Horizontal Pod Autoscaling, which requires the [Metrics Server](https://github.com/kubernetes-sigs/metrics-server) in the cluster
  353. enabled: false
  354. # -- The minimum CP pods to allow
  355. minReplicas: 2
  356. # -- The max CP pods to scale to
  357. maxReplicas: 5
  358. # -- For clusters that don't support autoscaling/v2, autoscaling/v1 is used
  359. targetCPUUtilizationPercentage: 80
  360. # -- For clusters that do support autoscaling/v2, use metrics
  361. metrics:
  362. - type: Resource
  363. resource:
  364. name: cpu
  365. target:
  366. type: Utilization
  367. averageUtilization: 80
  368. service:
  369. # -- Whether to create a Service resource.
  370. enabled: true
  371. # -- Service type of the Ingress
  372. type: LoadBalancer
  373. # -- (string) Optionally specify IP to be used by cloud provider when configuring load balancer
  374. loadBalancerIP:
  375. # -- Additional annotations to put on the Ingress service
  376. annotations: { }
  377. # -- Port on which Ingress is exposed
  378. port: 10001
  379. # -- Port on which service is exposed on Node for service of type NodePort
  380. nodePort:
  381. # -- Additional pod annotations (deprecated favor `podAnnotations`)
  382. annotations: { }
  383. # -- Additional pod annotations
  384. podAnnotations: { }
  385. # -- Node Selector for the Ingress pods
  386. nodeSelector:
  387. kubernetes.io/os: linux
  388. # -- Tolerations for the Ingress pods
  389. tolerations: []
  390. podDisruptionBudget:
  391. # -- Whether to create a pod disruption budget
  392. enabled: false
  393. # -- The maximum number of unavailable pods allowed by the budget
  394. maxUnavailable: 1
  395. # -- Affinity placement rule for the Kuma Ingress pods
  396. # This is rendered as a template, so you can reference other helm variables
  397. # or includes.
  398. affinity:
  399. podAntiAffinity:
  400. preferredDuringSchedulingIgnoredDuringExecution:
  401. - weight: 100
  402. podAffinityTerm:
  403. labelSelector:
  404. # These match the selector labels used on the deployment.
  405. matchExpressions:
  406. - key: app.kubernetes.io/name
  407. operator: In
  408. values:
  409. - '{{ include "kuma.name" . }}'
  410. - key: app.kubernetes.io/instance
  411. operator: In
  412. values:
  413. - '{{ .Release.Name }}'
  414. - key: app
  415. operator: In
  416. values:
  417. - kuma-ingress
  418. topologyKey: kubernetes.io/hostname
  419. # -- Topology spread constraints rule for the Kuma Mesh Ingress pods.
  420. # This is rendered as a template, so you can use variables to generate match labels.
  421. topologySpreadConstraints:
  422. # -- Security context at the pod level for ingress
  423. podSecurityContext:
  424. runAsNonRoot: true
  425. runAsUser: 5678
  426. runAsGroup: 5678
  427. # -- Security context at the container level for ingress
  428. containerSecurityContext:
  429. readOnlyRootFilesystem: true
  430. egress:
  431. # -- If true, it deploys Egress for cross cluster communication
  432. enabled: false
  433. # -- Labels to add to resources, in addition to the default labels.
  434. extraLabels: {}
  435. # -- Time for which old listener will still be active as draining
  436. drainTime: 30s
  437. # -- Number of replicas of the Egress. Ignored when autoscaling is enabled.
  438. replicas: 1
  439. # Horizontal Pod Autoscaling configuration
  440. autoscaling:
  441. # -- Whether to enable Horizontal Pod Autoscaling, which requires the [Metrics Server](https://github.com/kubernetes-sigs/metrics-server) in the cluster
  442. enabled: false
  443. # -- The minimum CP pods to allow
  444. minReplicas: 2
  445. # -- The max CP pods to scale to
  446. maxReplicas: 5
  447. # -- For clusters that don't support autoscaling/v2, autoscaling/v1 is used
  448. targetCPUUtilizationPercentage: 80
  449. # -- For clusters that do support autoscaling/v2, use metrics
  450. metrics:
  451. - type: Resource
  452. resource:
  453. name: cpu
  454. target:
  455. type: Utilization
  456. averageUtilization: 80
  457. resources:
  458. requests:
  459. cpu: 50m
  460. memory: 64Mi
  461. limits:
  462. cpu: 1000m
  463. memory: 512Mi
  464. service:
  465. # -- Whether to create the service object
  466. enabled: true
  467. # -- Service type of the Egress
  468. type: ClusterIP
  469. # -- (string) Optionally specify IP to be used by cloud provider when configuring load balancer
  470. loadBalancerIP:
  471. # -- Additional annotations to put on the Egress service
  472. annotations: { }
  473. # -- Port on which Egress is exposed
  474. port: 10002
  475. # -- Port on which service is exposed on Node for service of type NodePort
  476. nodePort:
  477. # -- Additional pod annotations (deprecated favor `podAnnotations`)
  478. annotations: { }
  479. # -- Additional pod annotations
  480. podAnnotations: { }
  481. # -- Node Selector for the Egress pods
  482. nodeSelector:
  483. kubernetes.io/os: linux
  484. # -- Tolerations for the Egress pods
  485. tolerations: []
  486. podDisruptionBudget:
  487. # -- Whether to create a pod disruption budget
  488. enabled: false
  489. # -- The maximum number of unavailable pods allowed by the budget
  490. maxUnavailable: 1
  491. # -- Affinity placement rule for the Kuma Egress pods.
  492. # This is rendered as a template, so you can reference other helm variables or includes.
  493. affinity:
  494. podAntiAffinity:
  495. preferredDuringSchedulingIgnoredDuringExecution:
  496. - weight: 100
  497. podAffinityTerm:
  498. labelSelector:
  499. # These match the selector labels used on the deployment.
  500. matchExpressions:
  501. - key: app.kubernetes.io/name
  502. operator: In
  503. values:
  504. - '{{ include "kuma.name" . }}'
  505. - key: app.kubernetes.io/instance
  506. operator: In
  507. values:
  508. - '{{ .Release.Name }}'
  509. - key: app
  510. operator: In
  511. values:
  512. - kuma-egress
  513. topologyKey: kubernetes.io/hostname
  514. # -- Topology spread constraints rule for the Kuma Egress pods.
  515. # This is rendered as a template, so you can use variables to generate match labels.
  516. topologySpreadConstraints:
  517. # -- Security context at the pod level for egress
  518. podSecurityContext:
  519. runAsNonRoot: true
  520. runAsUser: 5678
  521. runAsGroup: 5678
  522. # -- Security context at the container level for egress
  523. containerSecurityContext:
  524. readOnlyRootFilesystem: true
  525. kumactl:
  526. image:
  527. # -- The kumactl image repository
  528. repository: kumactl
  529. # -- The kumactl image tag. When not specified, the value is copied from global.tag
  530. tag:
  531. kubectl:
  532. # kuma image that support v1.20.15 image */ } }
  533. # see: https://hub.docker.com/r/kumahq/kubectl */ } }
  534. image:
  535. # -- The kubectl image registry
  536. registry: kumahq
  537. # -- The kubectl image repository
  538. repository: kubectl
  539. # -- The kubectl image tag
  540. tag: "v1.20.15"
  541. hooks:
  542. # -- Node selector for the HELM hooks
  543. nodeSelector:
  544. kubernetes.io/os: linux
  545. # -- Tolerations for the HELM hooks
  546. tolerations: []
  547. # -- Security context at the pod level for crd/webhook/ns
  548. podSecurityContext:
  549. runAsNonRoot: true
  550. # -- Security context at the container level for crd/webhook/ns
  551. containerSecurityContext:
  552. readOnlyRootFilesystem: true
  553. # -- ebpf-cleanup hook needs write access to the root filesystem to clean ebpf programs
  554. # Changing below values will potentially break ebpf cleanup completely,
  555. # so be cautious when doing so.
  556. ebpfCleanup:
  557. # -- Security context at the pod level for crd/webhook/cleanup-ebpf
  558. podSecurityContext:
  559. runAsNonRoot: false
  560. # -- Security context at the container level for crd/webhook/cleanup-ebpf
  561. containerSecurityContext:
  562. readOnlyRootFilesystem: false
  563. experimental:
  564. # -- If true, it installs experimental Gateway API support
  565. gatewayAPI: false
  566. # Configuration for the experimental ebpf mode for transparent proxy
  567. ebpf:
  568. # -- If true, ebpf will be used instead of using iptables to install/configure transparent proxy
  569. enabled: false
  570. # -- Name of the environmental variable which will contain the IP address of a pod
  571. instanceIPEnvVarName: INSTANCE_IP
  572. # -- Path where BPF file system should be mounted
  573. bpffsPath: /sys/fs/bpf
  574. # -- Host's cgroup2 path
  575. cgroupPath: /sys/fs/cgroup
  576. # -- Name of the network interface which TC programs should be attached to, we'll try to automatically determine it if empty
  577. tcAttachIface: ""
  578. # -- Path where compiled eBPF programs which will be installed can be found
  579. programsSourcePath: /kuma/ebpf
  580. # -- If true, it uses new API for resource synchronization
  581. deltaKds: false
  582. legacy:
  583. # -- If true, use the legacy transparent proxy engine
  584. transparentProxy: false
  585. cni:
  586. # -- If true, it installs legacy version of the CNI
  587. enabled: false
  588. image:
  589. # -- CNI v1 image registry
  590. registry: "docker.io/kumahq"
  591. # -- CNI v1 image repository
  592. repository: "install-cni"
  593. # -- CNI v1 image tag
  594. tag: "0.0.10"
  595. # Postgres' settings for universal control plane on k8s
  596. postgres:
  597. # -- Postgres port, password should be provided as a secret reference in "controlPlane.secrets"
  598. # with the Env value "KUMA_STORE_POSTGRES_PASSWORD".
  599. # Example:
  600. # controlPlane:
  601. # secrets:
  602. # - Secret: postgres-postgresql
  603. # Key: postgresql-password
  604. # Env: KUMA_STORE_POSTGRES_PASSWORD
  605. port: "5432"
  606. # TLS settings
  607. tls:
  608. # -- Mode of TLS connection. Available values are: "disable", "verifyNone", "verifyCa", "verifyFull"
  609. mode: disable # ENV: KUMA_STORE_POSTGRES_TLS_MODE
  610. # -- Whether to disable SNI the postgres `sslsni` option.
  611. disableSSLSNI: false # ENV: KUMA_STORE_POSTGRES_TLS_DISABLE_SSLSNI
  612. # -- Secret name that contains the ca.crt
  613. caSecretName:
  614. # -- Secret name that contains the client tls.crt, tls.key
  615. secretName:
  616. # @ignored for helm-docs
  617. plugins:
  618. policies:
  619. meshaccesslogs: {}
  620. meshcircuitbreakers: {}
  621. meshfaultinjections: {}
  622. meshhealthchecks: {}
  623. meshhttproutes: {}
  624. meshloadbalancingstrategies: {}
  625. meshproxypatches: {}
  626. meshratelimits: {}
  627. meshretries: {}
  628. meshtcproutes: {}
  629. meshtimeouts: {}
  630. meshtraces: {}
  631. meshtrafficpermissions: {}