blob: ff1e3b9945c820fe1f12344ec356656bf665c046 [file] [log] [blame]
# upgradeCompatibility helps users upgrading to ensure that the configMap for
# Cilium will not change critical values to ensure continued operation
# This is flag is not required for new installations.
# For example: 1.7, 1.8, 1.9
# upgradeCompatibility: '1.8'
debug:
# -- Enable debug logging
enabled: false
# verbose:
rbac:
# -- Enable creation of Resource-Based Access Control configuration.
create: true
# -- Configure image pull secrets for pulling container images
imagePullSecrets:
# - name: "image-pull-secret"
# kubeConfigPath: ~/.kube/config
# k8sServiceHost:
# k8sServicePort:
cluster:
# -- Name of the cluster. Only required for Cluster Mesh.
name: default
# -- (int) Unique ID of the cluster. Must be unique across all connected
# clusters and in the range of 1 to 255. Only required for Cluster Mesh.
id:
# -- Define serviceAccount names for components.
# @default -- Component's fully qualified name.
serviceAccounts:
cilium:
create: true
name: cilium
annotations: {}
etcd:
create: true
name: cilium-etcd-operator
annotations: {}
operator:
create: true
name: cilium-operator
annotations: {}
preflight:
create: true
name: cilium-pre-flight
annotations: {}
relay:
create: true
name: hubble-relay
annotations: {}
ui:
create: true
name: hubble-ui
annotations: {}
clustermeshApiserver:
create: true
name: clustermesh-apiserver
annotations: {}
# -- Clustermeshcertgen is used if clustermesh.apiserver.tls.auto.method=cronJob
clustermeshcertgen:
create: true
name: clustermesh-apiserver-generate-certs
annotations: {}
# -- Hubblecertgen is used if hubble.tls.auto.method=cronJob
hubblecertgen:
create: true
name: hubble-generate-certs
annotations: {}
# -- Install the cilium agent resources.
agent: true
# -- Agent container name.
name: cilium
# -- Roll out cilium agent pods automatically when configmap is updated.
rollOutCiliumPods: false
# -- Agent container image.
image:
repository: quay.io/cilium/cilium
tag: v1.10.7
pullPolicy: IfNotPresent
# cilium-digest
digest: "sha256:e23f55e80e1988db083397987a89967aa204ad6fc32da243b9160fbcea29b0ca"
useDigest: true
# -- Pod affinity for cilium-agent.
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/os
operator: In
values:
- linux
# Compatible with Kubernetes 1.12.x and 1.13.x
- matchExpressions:
- key: beta.kubernetes.io/os
operator: In
values:
- linux
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: k8s-app
operator: In
values:
- cilium
topologyKey: kubernetes.io/hostname
# -- The priority class to use for cilium-agent.
priorityClassName: ""
# -- Additional agent container arguments.
extraArgs: []
# -- Additional agent container environment variables.
extraEnv: {}
# -- Additional InitContainers to initialize the pod.
extraInitContainers: []
# -- Additional agent hostPath mounts.
extraHostPathMounts: []
# - name: host-mnt-data
# mountPath: /host/mnt/data
# hostPath: /mnt/data
# hostPathType: Directory
# readOnly: true
# mountPropagation: HostToContainer
# -- Additional agent ConfigMap mounts.
extraConfigmapMounts: []
# - name: certs-configmap
# mountPath: /certs
# configMap: certs-configmap
# readOnly: true
# -- extraConfig allows you to specify additional configuration parameters to be
# included in the cilium-config configmap.
extraConfig: {}
# my-config-a: "1234"
# my-config-b: |-
# test 1
# test 2
# test 3
# -- Node tolerations for agent scheduling to nodes with taints
# ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
tolerations:
- operator: Exists
# - key: "key"
# operator: "Equal|Exists"
# value: "value"
# effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
# -- Annotations to be added to agent pods
podAnnotations: {}
# -- Labels to be added to agent pods
podLabels: {}
# -- PodDisruptionBudget settings
# ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
podDisruptionBudget:
enabled: true
maxUnavailable: 2
# -- Agent resource limits & requests
# ref: https://kubernetes.io/docs/user-guide/compute-resources/
resources: {}
# limits:
# cpu: 4000m
# memory: 4Gi
# requests:
# cpu: 100m
# memory: 512Mi
# -- Security context to be added to agent pods
securityContext: {}
# runAsUser: 0
# -- Cilium agent update strategy
updateStrategy:
rollingUpdate:
maxUnavailable: 2
type: RollingUpdate
# Configuration Values for cilium-agent
# -- Enable installation of PodCIDR routes between worker
# nodes if worker nodes share a common L2 network segment.
autoDirectNodeRoutes: false
azure:
# -- Enable Azure integration
enabled: false
# resourceGroup: group1
# subscriptionID: 00000000-0000-0000-0000-000000000000
# tenantID: 00000000-0000-0000-0000-000000000000
# clientID: 00000000-0000-0000-0000-000000000000
# clientSecret: 00000000-0000-0000-0000-000000000000
# userAssignedIdentityID: 00000000-0000-0000-0000-000000000000
alibabacloud:
# -- Enable AlibabaCloud ENI integration
enabled: false
# -- Optimize TCP and UDP workloads and enable rate-limiting traffic from
# individual Pods with EDT (Earliest Departure Time)
# through the "kubernetes.io/egress-bandwidth" Pod annotation.
bandwidthManager: false
# -- Configure BGP
bgp:
# -- Enable BGP support inside Cilium; embeds a new ConfigMap for BGP inside
# cilium-agent and cilium-operator
enabled: false
announce:
# -- Enable allocation and announcement of service LoadBalancer IPs
loadbalancerIP: false
bpf:
# -- Enable BPF clock source probing for more efficient tick retrieval.
clockProbe: false
# -- Enables pre-allocation of eBPF map values. This increases
# memory usage but can reduce latency.
preallocateMaps: false
# -- Configure the maximum number of entries in the TCP connection tracking
# table.
# ctTcpMax: '524288'
# -- Configure the maximum number of entries for the non-TCP connection
# tracking table.
# ctAnyMax: '262144'
# -- Configure the maximum number of service entries in the
# load balancer maps.
lbMapMax: 65536
# -- Configure the maximum number of entries for the NAT table.
# natMax: 524288
# -- Configure the maximum number of entries for the neighbor table.
# neighMax: 524288
# -- Configure the maximum number of entries in endpoint policy map (per endpoint).
policyMapMax: 16384
# -- Configure auto-sizing for all BPF maps based on available memory.
# ref: https://docs.cilium.io/en/stable/concepts/ebpf/maps/#ebpf-maps
#mapDynamicSizeRatio: 0.0025
# -- Configure the level of aggregation for monitor notifications.
# Valid options are none, low, medium, maximum.
monitorAggregation: medium
# -- Configure the typical time between monitor notifications for
# active connections.
monitorInterval: "5s"
# -- Configure which TCP flags trigger notifications when seen for the
# first time in a connection.
monitorFlags: "all"
# -- Allow cluster external access to ClusterIP services.
lbExternalClusterIP: false
# -- Enable native IP masquerade support in eBPF
#masquerade: false
# -- Configure whether direct routing mode should route traffic via
# host stack (true) or directly and more efficiently out of BPF (false) if
# the kernel supports it. The latter has the implication that it will also
# bypass netfilter in the host namespace.
#hostRouting: true
# -- Configure the eBPF-based TPROXY to reduce reliance on iptables rules
# for implementing Layer 7 policy.
# tproxy: true
# -- Configure the FIB lookup bypass optimization for nodeport reverse
# NAT handling.
# lbBypassFIBLookup: true
# -- Clean all eBPF datapath state from the initContainer of the cilium-agent
# DaemonSet.
#
# WARNING: Use with care!
cleanBpfState: false
# -- Clean all local Cilium state from the initContainer of the cilium-agent
# DaemonSet. Implies cleanBpfState: true.
#
# WARNING: Use with care!
cleanState: false
cni:
# -- Install the CNI configuration and binary files into the filesystem.
install: true
# -- Configure chaining on top of other CNI plugins. Possible values:
# - none
# - generic-veth
# - aws-cni
# - portmap
chainingMode: none
# -- Make Cilium take ownership over the `/etc/cni/net.d` directory on the
# node, renaming all non-Cilium CNI configurations to `*.cilium_bak`.
# This ensures no Pods can be scheduled using other CNI plugins during Cilium
# agent downtime.
exclusive: true
# -- Skip writing of the CNI configuration. This can be used if
# writing of the CNI configuration is performed by external automation.
customConf: false
# -- Configure the path to the CNI configuration directory on the host.
confPath: /etc/cni/net.d
# -- Configure the path to the CNI binary directory on the host.
binPath: /opt/cni/bin
# -- Specify the path to a CNI config to read from on agent start.
# This can be useful if you want to manage your CNI
# configuration outside of a Kubernetes environment. This parameter is
# mutually exclusive with the 'cni.configMap' parameter.
# readCniConf: /host/etc/cni/net.d/05-cilium.conf
# -- When defined, configMap will mount the provided value as ConfigMap and
# interpret the cniConf variable as CNI configuration file and write it
# when the agent starts up
# configMap: cni-configuration
# -- Configure the key in the CNI ConfigMap to read the contents of
# the CNI configuration from.
configMapKey: cni-config
# -- Configure the path to where to mount the ConfigMap inside the agent pod.
confFileMountPath: /tmp/cni-configuration
# -- Configure the path to where the CNI configuration directory is mounted
# inside the agent pod.
hostConfDirMountPath: /host/etc/cni/net.d
# -- Configure how frequently garbage collection should occur for the datapath
# connection tracking table.
# conntrackGCInterval: "0s"
# -- Configure container runtime specific integration.
containerRuntime:
# -- Enables specific integrations for container runtimes.
# Supported values:
# - containerd
# - crio
# - docker
# - none
# - auto (automatically detect the container runtime)
integration: none
# -- Configure the path to the container runtime control socket.
# socketPath: /path/to/runtime.sock
# crdWaitTimeout: ""
# -- Tail call hooks for custom eBPF programs.
customCalls:
# -- Enable tail call hooks for custom eBPF programs.
enabled: false
# -- Configure which datapath mode should be used for configuring container
# connectivity. Valid options are "veth" or "ipvlan".
datapathMode: veth
daemon:
# -- Configure where Cilium runtime state should be stored.
runPath: "/var/run/cilium"
# -- Specify which network interfaces can run the eBPF datapath. This means
# that a packet sent from a pod to a destination outside the cluster will be
# masqueraded (to an output device IPv4 address), if the output device runs the
# program. When not specified, probing will automatically detect devices.
# devices: ""
# -- Chains to ignore when installing feeder rules.
# disableIptablesFeederRules: ""
# -- Limit egress masquerading to interface selector.
# egressMasqueradeInterfaces: ""
# -- Whether to enable CNP status updates.
enableCnpStatusUpdates: false
# -- Configures the use of the KVStore to optimize Kubernetes event handling by
# mirroring it into the KVstore for reduced overhead in large clusters.
enableK8sEventHandover: false
# TODO: Add documentation
# enableIdentityMark: false
# enableK8sEndpointSlice: false
# -- Enables the fallback compatibility solution for when the xt_socket kernel
# module is missing and it is needed for the datapath L7 redirection to work
# properly. See documentation for details on when this can be disabled:
# http://docs.cilium.io/en/stable/install/system_requirements/#admin-kernel-version.
enableXTSocketFallback: true
encryption:
# -- Enable transparent network encryption.
enabled: false
# -- Encryption method. Can be either ipsec or wireguard.
type: ipsec
# -- Enable encryption for pure node to node traffic.
# This option is only effective when encryption.type is set to ipsec.
nodeEncryption: false
ipsec:
# -- Name of the key file inside the Kubernetes secret configured via secretName.
keyFile: ""
# -- Path to mount the secret inside the Cilium pod.
mountPath: ""
# -- Name of the Kubernetes secret containing the encryption keys.
secretName: ""
# -- The interface to use for encrypted traffic.
interface: ""
# -- Deprecated in favor of encryption.ipsec.keyFile.
# Name of the key file inside the Kubernetes secret configured via secretName.
# This option is only effective when encryption.type is set to ipsec.
keyFile: keys
# -- Deprecated in favor of encryption.ipsec.mountPath.
# Path to mount the secret inside the Cilium pod.
# This option is only effective when encryption.type is set to ipsec.
mountPath: /etc/ipsec
# -- Deprecated in favor of encryption.ipsec.secretName.
# Name of the Kubernetes secret containing the encryption keys.
# This option is only effective when encryption.type is set to ipsec.
secretName: cilium-ipsec-keys
# -- Deprecated in favor of encryption.ipsec.interface.
# The interface to use for encrypted traffic.
# This option is only effective when encryption.type is set to ipsec.
interface: ""
endpointHealthChecking:
# -- Enable connectivity health checking between virtual endpoints.
enabled: true
# -- Enable endpoint status.
# Status can be: policy, health, controllers, logs and / or state. For 2 or more options use a comma.
endpointStatus:
enabled: false
status: ""
endpointRoutes:
# -- Enable use of per endpoint routes instead of routing via
# the cilium_host interface.
enabled: false
eni:
# -- Enable Elastic Network Interface (ENI) integration.
enabled: false
# -- Update ENI Adapter limits from the EC2 API
updateEC2AdapterLimitViaAPI: false
# -- Release IPs not used from the ENI
awsReleaseExcessIPs: false
# -- EC2 API endpoint to use
ec2APIEndpoint: ""
# -- Tags to apply to the newly created ENIs
eniTags: {}
# -- If using IAM role for Service Accounts will not try to
# inject identity values from cilium-aws kubernetes secret.
# Adds annotation to service account if managed by Helm.
# See https://github.com/aws/amazon-eks-pod-identity-webhook
iamRole: ""
# -- Filter via subnet IDs which will dictate which subnets are going to be used to create new ENIs
subnetIDsFilter: ""
# -- Filter via tags (k=v) which will dictate which subnets are going to be used to create new ENIs
subnetTagsFilter: ""
externalIPs:
# -- Enable ExternalIPs service support.
enabled: false
# fragmentTracking enables IPv4 fragment tracking support in the datapath.
# fragmentTracking: true
gke:
# -- Enable Google Kubernetes Engine integration
enabled: false
# -- Enable connectivity health checking.
healthChecking: true
# -- TCP port for the agent health API. This is not the port for cilium-health.
healthPort: 9876
# -- Enables the enforcement of host policies in the eBPF datapath.
hostFirewall: false
hostPort:
# -- Enable hostPort service support.
enabled: false
# -- Configure ClusterIP service handling in the host namespace (the node).
hostServices:
# -- Enable host reachable services.
enabled: false
# -- Supported list of protocols to apply ClusterIP translation to.
protocols: tcp,udp
# -- Disable socket lb for non-root ns. This is used to enable Istio routing rules.
# hostNamespaceOnly: false
# -- Configure certificate generation for Hubble integration.
# If hubble.tls.auto.method=cronJob, these values are used
# for the Kubernetes CronJob which will be scheduled regularly to
# (re)generate any certificates not provided manually.
certgen:
image:
repository: quay.io/cilium/certgen
tag: v0.1.5
pullPolicy: IfNotPresent
# -- Seconds after which the completed job pod will be deleted
ttlSecondsAfterFinished: 1800
# -- Labels to be added to hubble-certgen pods
podLabels: {}
hubble:
# -- Enable Hubble (true by default).
enabled: true
# -- Buffer size of the channel Hubble uses to receive monitor events. If this
# value is not set, the queue size is set to the default monitor queue size.
# eventQueueSize: ""
# -- Number of recent flows for Hubble to cache. Defaults to 4095.
# Possible values are:
# 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023,
# 2047, 4095, 8191, 16383, 32767, 65535
# eventBufferCapacity: "4095"
# -- Hubble metrics configuration.
# See https://docs.cilium.io/en/stable/configuration/metrics/#hubble-metrics
# for more comprehensive documentation about Hubble metrics.
metrics:
# -- Configures the list of metrics to collect. If empty or null, metrics
# are disabled.
# Example:
#
# enabled:
# - dns:query;ignoreAAAA
# - drop
# - tcp
# - flow
# - icmp
# - http
#
# You can specify the list of metrics from the helm CLI:
#
# --set metrics.enabled="{dns:query;ignoreAAAA,drop,tcp,flow,icmp,http}"
#
enabled: ~
# -- Configure the port the hubble metric server listens on.
port: 9091
serviceMonitor:
# -- Create ServiceMonitor resources for Prometheus Operator.
# This requires the prometheus CRDs to be available.
# ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml)
enabled: false
# -- Labels to add to ServiceMonitor hubble
labels: {}
# -- Unix domain socket path to listen to when Hubble is enabled.
socketPath: /var/run/cilium/hubble.sock
# -- An additional address for Hubble to listen to.
# Set this field ":4244" if you are enabling Hubble Relay, as it assumes that
# Hubble is listening on port 4244.
listenAddress: ":4244"
# -- TLS configuration for Hubble
tls:
# -- Enable mutual TLS for listenAddress. Setting this value to false is
# highly discouraged as the Hubble API provides access to potentially
# sensitive network flow metadata and is exposed on the host network.
enabled: true
# -- Configure automatic TLS certificates generation.
auto:
# -- Auto-generate certificates.
# When set to true, automatically generate a CA and certificates to
# enable mTLS between Hubble server and Hubble Relay instances. If set to
# false, the certs for Hubble server need to be provided by setting
# appropriate values below.
enabled: true
# -- Set the method to auto-generate certificates. Supported values:
# - helm: This method uses Helm to generate all certificates.
# - cronJob: This method uses a Kubernetes CronJob the generate any
# certificates not provided by the user at installation
# time.
method: helm
# -- Generated certificates validity duration in days.
certValidityDuration: 1095
# -- Schedule for certificates regeneration (regardless of their expiration date).
# Only used if method is "cronJob". If nil, then no recurring job will be created.
# Instead, only the one-shot job is deployed to generate the certificates at
# installation time.
#
# Defaults to midnight of the first day of every fourth month. For syntax, see
# https://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/#schedule
schedule: "0 0 1 */4 *"
# -- base64 encoded PEM values for the Hubble CA certificate and private key.
ca:
cert: ""
# -- The CA private key (optional). If it is provided, then it will be
# used by hubble.tls.auto.method=cronJob to generate all other certificates.
# Otherwise, a ephemeral CA is generated if hubble.tls.auto.enabled=true.
key: ""
# -- base64 encoded PEM values for the Hubble server certificate and private key
server:
cert: ""
key: ""
relay:
# -- Enable Hubble Relay (requires hubble.enabled=true)
enabled: false
# -- Roll out Hubble Relay pods automatically when configmap is updated.
rollOutPods: false
# -- Hubble-relay container image.
image:
repository: quay.io/cilium/hubble-relay
tag: v1.10.7
# hubble-relay-digest
digest: "sha256:385fcc4fa315eb6b66626c3e5f607b6b6514c8c3a863c47c2b2dbc97790acb47"
useDigest: true
pullPolicy: IfNotPresent
# -- Specifies the resources for the hubble-relay pods
resources: {}
# -- Number of replicas run for the hubble-relay deployment.
replicas: 1
# -- Node labels for pod assignment
# ref: https://kubernetes.io/docs/user-guide/node-selection/
nodeSelector: {}
# -- Annotations to be added to hubble-relay pods
podAnnotations: {}
# -- Labels to be added to hubble-relay pods
podLabels: {}
# -- Node tolerations for pod assignment on nodes with taints
# ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
#
tolerations: []
# -- hubble-relay update strategy
updateStrategy:
rollingUpdate:
maxUnavailable: 1
type: RollingUpdate
# -- Host to listen to. Specify an empty string to bind to all the interfaces.
listenHost: ""
# -- Port to listen to.
listenPort: "4245"
# -- TLS configuration for Hubble Relay
tls:
# -- base64 encoded PEM values for the hubble-relay client certificate and private key
# This keypair is presented to Hubble server instances for mTLS
# authentication and is required when hubble.tls.enabled is true.
# These values need to be set manually if hubble.tls.auto.enabled is false.
client:
cert: ""
key: ""
# -- base64 encoded PEM values for the hubble-relay server certificate and private key
server:
# When set to true, enable TLS on for Hubble Relay server
# (ie: for clients connecting to the Hubble Relay API).
enabled: false
# These values need to be set manually if hubble.tls.auto.enabled is false.
cert: ""
key: ""
# -- Dial timeout to connect to the local hubble instance to receive peer information (e.g. "30s").
dialTimeout: ~
# -- Backoff duration to retry connecting to the local hubble instance in case of failure (e.g. "30s").
retryTimeout: ~
# -- Max number of flows that can be buffered for sorting before being sent to the
# client (per request) (e.g. 100).
sortBufferLenMax: ~
# -- When the per-request flows sort buffer is not full, a flow is drained every
# time this timeout is reached (only affects requests in follow-mode) (e.g. "1s").
sortBufferDrainTimeout: ~
# -- Port to use for the k8s service backed by hubble-relay pods.
# If not set, it is dynamically assigned to port 443 if TLS is enabled and to
# port 80 if not.
# servicePort: 80
ui:
# -- Whether to enable the Hubble UI.
enabled: false
# -- Roll out Hubble-ui pods automatically when configmap is updated.
rollOutPods: false
backend:
# -- Hubble-ui backend image.
image:
repository: quay.io/cilium/hubble-ui-backend
tag: v0.8.5@sha256:2bce50cf6c32719d072706f7ceccad654bfa907b2745a496da99610776fe31ed
pullPolicy: IfNotPresent
# [Example]
# resources:
# limits:
# cpu: 1000m
# memory: 1024M
# requests:
# cpu: 100m
# memory: 64Mi
# -- Resource requests and limits for the 'backend' container of the 'hubble-ui' deployment.
resources: {}
frontend:
# -- Hubble-ui frontend image.
image:
repository: quay.io/cilium/hubble-ui
tag: v0.8.5@sha256:4eaca1ec1741043cfba6066a165b3bf251590cf4ac66371c4f63fbed2224ebb4
pullPolicy: IfNotPresent
# [Example]
# resources:
# limits:
# cpu: 1000m
# memory: 1024M
# requests:
# cpu: 100m
# memory: 64Mi
# -- Resource requests and limits for the 'frontend' container of the 'hubble-ui' deployment.
resources: {}
proxy:
# -- Hubble-ui ingress proxy image.
image:
repository: docker.io/envoyproxy/envoy
tag: v1.18.4@sha256:e5c2bb2870d0e59ce917a5100311813b4ede96ce4eb0c6bfa879e3fbe3e83935
pullPolicy: IfNotPresent
# [Example]
# resources:
# limits:
# cpu: 1000m
# memory: 1024M
# requests:
# cpu: 100m
# memory: 64Mi
# -- Resource requests and limits for the 'proxy' container of the 'hubble-ui' deployment.
resources: {}
# -- The number of replicas of Hubble UI to deploy.
replicas: 1
# -- Annotations to be added to hubble-ui pods
podAnnotations: {}
# -- Labels to be added to hubble-ui pods
podLabels: {}
# -- Node labels for pod assignment
# ref: https://kubernetes.io/docs/user-guide/node-selection/
nodeSelector: {}
# -- Node tolerations for pod assignment on nodes with taints
# ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
#
tolerations: []
# -- hubble-ui update strategy.
updateStrategy:
rollingUpdate:
maxUnavailable: 1
type: RollingUpdate
securityContext:
# -- Whether to set the security context on the Hubble UI pods.
enabled: true
# -- hubble-ui ingress configuration.
ingress:
enabled: false
annotations: {}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
hosts:
- chart-example.local
tls: []
# - secretName: chart-example-tls
# hosts:
# - chart-example.local
# -- Method to use for identity allocation (`crd` or `kvstore`).
identityAllocationMode: "crd"
# TODO: Add documentation
# identityChangeGracePeriod: "5s"
# TODO: Add documentation
# identityGCInterval:
# TODO: Add documentation
# identityHeartbeatTimeout: ""
# -- Configure whether to install iptables rules to allow for TPROXY
# (L7 proxy injection), iptables-based masquerading and compatibility
# with kube-proxy.
installIptablesRules: true
# -- Install Iptables rules to skip netfilter connection tracking on all pod
# traffic. This option is only effective when Cilium is running in direct
# routing and full KPR mode. Moreover, this option cannot be enabled when Cilium
# is running in a managed Kubernetes environment or in a chained CNI setup.
installNoConntrackIptablesRules: false
ipam:
# -- Configure IP Address Management mode.
# ref: https://docs.cilium.io/en/stable/concepts/networking/ipam/
mode: "cluster-pool"
operator:
# -- IPv4 CIDR range to delegate to individual nodes for IPAM.
clusterPoolIPv4PodCIDR: "10.0.0.0/8"
# -- IPv4 CIDR mask size to delegate to individual nodes for IPAM.
clusterPoolIPv4MaskSize: 24
# -- IPv6 CIDR range to delegate to individual nodes for IPAM.
clusterPoolIPv6PodCIDR: "fd00::/104"
# -- IPv6 CIDR mask size to delegate to individual nodes for IPAM.
clusterPoolIPv6MaskSize: 120
# -- Configure the eBPF-based ip-masq-agent
ipMasqAgent:
enabled: false
# iptablesLockTimeout defines the iptables "--wait" option when invoked from Cilium.
# iptablesLockTimeout: "5s"
ipv4:
# -- Enable IPv4 support.
enabled: true
ipv6:
# -- Enable IPv6 support.
enabled: false
ipvlan:
# -- Enable the IPVLAN datapath
enabled: false
# -- masterDevice is the name of the device to use to attach secondary IPVLAN
# devices
# masterDevice: eth0
# -- Configure Kubernetes specific configuration
k8s: {}
# -- requireIPv4PodCIDR enables waiting for Kubernetes to provide the PodCIDR
# range via the Kubernetes node resource
# requireIPv4PodCIDR: false
# -- requireIPv6PodCIDR enables waiting for Kubernetes to provide the PodCIDR
# range via the Kubernetes node resource
# requireIPv6PodCIDR: false
# -- Keep the deprecated selector labels when deploying Cilium DaemonSet.
keepDeprecatedLabels: false
# -- Keep the deprecated probes when deploying Cilium DaemonSet
keepDeprecatedProbes: false
startupProbe:
# -- failure threshold of startup probe.
# 105 x 2s translates to the old behaviour of the readiness probe (120s delay + 30 x 3s)
failureThreshold: 105
# -- interval between checks of the startup probe
periodSeconds: 2
livenessProbe:
# -- failure threshold of liveness probe
failureThreshold: 10
# -- interval between checks of the liveness probe
periodSeconds: 30
readinessProbe:
# -- failure threshold of readiness probe
failureThreshold: 3
# -- interval between checks of the readiness probe
periodSeconds: 30
# -- Configure the kube-proxy replacement in Cilium BPF datapath
# Valid options are "disabled", "probe", "partial", "strict".
# ref: https://docs.cilium.io/en/stable/gettingstarted/kubeproxy-free/
#kubeProxyReplacement: "disabled"
# -- healthz server bind address for the kube-proxy replacement.
# To enable set the value to '0.0.0.0:10256' for all ipv4
# addresses and this '[::]:10256' for all ipv6 addresses.
# By default it is disabled.
kubeProxyReplacementHealthzBindAddr: ""
l2NeighDiscovery:
# -- Enable L2 neighbour discovery in the agent
enabled: true
# -- Set period for arping
arping-refresh-period: "5m"
# -- Enable Layer 7 network policy.
l7Proxy: true
# -- Enable Local Redirect Policy.
localRedirectPolicy: false
# To include or exclude matched resources from cilium identity evaluation
# labels: ""
# logOptions allows you to define logging options. eg:
# logOptions:
# format: json
# -- Enables periodic logging of system load
logSystemLoad: false
# -- Configure maglev consistent hashing
maglev: {}
# -- tableSize is the size (parameter M) for the backend table of one
# service entry
# tableSize:
# -- hashSeed is the cluster-wide base64 encoded seed for the hashing
# hashSeed:
# -- Enables masquerading of IPv4 traffic leaving the node from endpoints.
enableIPv4Masquerade: true
# -- Enables masquerading of IPv6 traffic leaving the node from endpoints.
enableIPv6Masquerade: true
# -- Enables egress gateway (beta) to redirect and SNAT the traffic that
# leaves the cluster.
egressGateway:
enabled: false
# -- Specify the CIDR for native routing (ie to avoid IP masquerade for).
# This value corresponds to the configured cluster-cidr.
# nativeRoutingCIDR:
monitor:
# -- Enable the cilium-monitor sidecar.
enabled: false
# -- Configure service load balancing
# loadBalancer:
# -- standalone enables the standalone L4LB which does not connect to
# kube-apiserver.
# standalone: false
# -- algorithm is the name of the load balancing algorithm for backend
# selection e.g. random or maglev
# algorithm: random
# -- mode is the operation mode of load balancing for remote backends
# e.g. snat, dsr, hybrid
# mode: snat
# -- acceleration is the option to accelerate service handling via XDP
# e.g. native, disabled
# acceleration: disabled
# -- dsrDispatch configures whether IP option or IPIP encapsulation is
# used to pass a service IP and port to remote backend
# dsrDispatch: opt
# -- Configure N-S k8s service loadbalancing
nodePort:
# -- Enable the Cilium NodePort service implementation.
enabled: false
# -- Port range to use for NodePort services.
# range: "30000,32767"
# -- Set to true to prevent applications binding to service ports.
bindProtection: true
# -- Append NodePort range to ip_local_reserved_ports if clash with ephemeral
# ports is detected.
autoProtectPortRange: true
# -- Enable healthcheck nodePort server for NodePort services
enableHealthCheck: true
# policyAuditMode: false
# -- The agent can be put into one of the three policy enforcement modes:
# default, always and never.
# ref: https://docs.cilium.io/en/stable/policy/intro/#policy-enforcement-modes
policyEnforcementMode: "default"
pprof:
# -- Enable Go pprof debugging
enabled: false
# -- Configure prometheus metrics on the configured port at /metrics
prometheus:
enabled: false
port: 9090
serviceMonitor:
# -- Enable service monitors.
# This requires the prometheus CRDs to be available (see https://github.com/prometheus-operator/prometheus-operator/blob/master/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml)
#
enabled: false
# -- Labels to add to ServiceMonitor cilium-agent
labels: {}
# -- Specify the Kubernetes namespace where Prometheus expects to find
# service monitors configured.
# namespace: ""
# -- Metrics that should be enabled or disabled from the default metric
# list. (+metric_foo to enable metric_foo , -metric_bar to disable
# metric_bar).
# ref: https://docs.cilium.io/en/stable/operations/metrics/#exported-metrics
metrics: ~
# -- Configure Istio proxy options.
proxy:
prometheus:
enabled: true
port: "9095"
# -- Regular expression matching compatible Istio sidecar istio-proxy
# container image names
sidecarImageRegex: "cilium/istio_proxy"
# -- Enable use of the remote node identity.
# ref: https://docs.cilium.io/en/v1.7/install/upgrade/#configmap-remote-node-identity
remoteNodeIdentity: true
# -- Enable resource quotas for priority classes used in the cluster.
resourceQuotas:
enabled: false
cilium:
hard:
# 5k nodes * 2 DaemonSets (Cilium and cilium node init)
pods: "10k"
operator:
hard:
# 15 "clusterwide" Cilium Operator pods for HA
pods: "15"
# Need to document default
##################
#sessionAffinity: false
# -- Do not run Cilium agent when running with clean mode. Useful to completely
# uninstall Cilium as it will stop Cilium from starting and create artifacts
# in the node.
sleepAfterInit: false
# -- Configure BPF socket operations configuration
sockops:
# enabled enables installation of socket options acceleration.
enabled: false
# TODO: Add documentation, default value
# svcSourceRangeCheck:
# synchronizeK8sNodes: true
# -- Configure TLS configuration in the agent.
tls:
enabled: true
secretsBackend: local
# -- Configure the encapsulation configuration for communication between nodes.
# Possible values:
# - disabled
# - vxlan (default)
# - geneve
tunnel: "vxlan"
wellKnownIdentities:
# -- Enable the use of well-known identities.
enabled: false
etcd:
# -- Enable etcd mode for the agent.
enabled: false
# -- cilium-etcd-operator image.
image:
repository: quay.io/cilium/cilium-etcd-operator
tag: v2.0.7
pullPolicy: IfNotPresent
# -- cilium-etcd-operator priorityClassName
priorityClassName: ""
# -- Additional cilium-etcd-operator container arguments.
extraArgs: []
# -- Additional InitContainers to initialize the pod.
extraInitContainers: []
# -- Additional cilium-etcd-operator hostPath mounts.
extraHostPathMounts: []
# - name: textfile-dir
# mountPath: /srv/txt_collector
# hostPath: /var/lib/cilium-etcd-operator
# readOnly: true
# mountPropagation: HostToContainer
# -- Additional cilium-etcd-operator ConfigMap mounts.
extraConfigmapMounts: []
# - name: certs-configmap
# mountPath: /certs
# configMap: certs-configmap
# readOnly: true
# -- Node tolerations for cilium-etcd-operator scheduling to nodes with taints
# ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
tolerations:
- operator: Exists
# - key: "key"
# operator: "Equal|Exists"
# value: "value"
# effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
# -- Node labels for cilium-etcd-operator pod assignment
# ref: https://kubernetes.io/docs/user-guide/node-selection/
nodeSelector: {}
# -- Annotations to be added to cilium-etcd-operator pods
podAnnotations: {}
# -- Labels to be added to cilium-etcd-operator pods
podLabels: {}
# -- PodDisruptionBudget settings
# ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
#
podDisruptionBudget:
enabled: true
maxUnavailable: 2
# -- cilium-etcd-operator resource limits & requests
# ref: https://kubernetes.io/docs/user-guide/compute-resources/
#
resources: {}
# limits:
# cpu: 4000m
# memory: 4Gi
# requests:
# cpu: 100m
# memory: 512Mi
# -- Security context to be added to cilium-etcd-operator pods
#
securityContext: {}
# runAsUser: 0
# -- cilium-etcd-operator update strategy
updateStrategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
# -- If etcd is behind a k8s service set this option to true so that Cilium
# does the service translation automatically without requiring a DNS to be
# running.
k8sService: false
# -- Cluster domain for cilium-etcd-operator.
clusterDomain: cluster.local
# -- List of etcd endpoints (not needed when using managed=true).
endpoints:
- https://CHANGE-ME:2379
# -- Enable use of TLS/SSL for connectivity to etcd. (auto-enabled if
# managed=true)
ssl: false
operator:
# -- Enable the cilium-operator component (required).
enabled: true
# -- Roll out cilium-operator pods automatically when configmap is updated.
rollOutPods: false
# -- cilium-operator image.
image:
repository: quay.io/cilium/operator
tag: v1.10.7
# operator-generic-digest
genericDigest: "sha256:d0b491d8d8cb45862ed7f0410f65e7c141832f0f95262643fa5ff1edfcddcafe"
# operator-azure-digest
azureDigest: "sha256:556d692b2f08822101c159d9d6f731efe6c437d2b80f0ef96813e8745203c852"
# operator-aws-digest
awsDigest: "sha256:97b378e0e3b6b5ade6ae1706024c7a25fe6fc48e00102b65a6b7ac51d6327f40"
# operator-alibabacloud-digest
alibabacloudDigest: "sha256:7a6ccc99195ae6a8216d2a1e1e0cc05d49c2d263b194895da264899fe9d0f45a"
useDigest: true
pullPolicy: IfNotPresent
suffix: ""
# -- Number of replicas to run for the cilium-operator deployment
replicas: 2
# -- For using with an existing serviceAccount.
serviceAccountName: cilium-operator
# -- cilium-operator priorityClassName
priorityClassName: ""
# -- cilium-operator update strategy
updateStrategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
# -- cilium-operator affinity
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: io.cilium/app
operator: In
values:
- operator
topologyKey: kubernetes.io/hostname
# -- Additional cilium-operator container arguments.
extraArgs: []
# -- Additional cilium-operator environment variables.
extraEnv: {}
# -- Additional InitContainers to initialize the pod.
extraInitContainers: []
# -- Additional cilium-operator hostPath mounts.
extraHostPathMounts: []
# - name: host-mnt-data
# mountPath: /host/mnt/data
# hostPath: /mnt/data
# hostPathType: Directory
# readOnly: true
# mountPropagation: HostToContainer
# -- Additional cilium-operator ConfigMap mounts.
extraConfigmapMounts: []
# - name: certs-configmap
# mountPath: /certs
# configMap: certs-configmap
# readOnly: true
# -- Node tolerations for cilium-operator scheduling to nodes with taints
# ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
tolerations:
- operator: Exists
# - key: "key"
# operator: "Equal|Exists"
# value: "value"
# effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
# -- Node labels for cilium-operator pod assignment
# ref: https://kubernetes.io/docs/user-guide/node-selection/
#
nodeSelector: {}
# -- Annotations to be added to cilium-operator pods
podAnnotations: {}
# -- Labels to be added to cilium-operator pods
podLabels: {}
# -- PodDisruptionBudget settings
# ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
#
podDisruptionBudget:
enabled: false
maxUnavailable: 1
# -- cilium-operator resource limits & requests
# ref: https://kubernetes.io/docs/user-guide/compute-resources/
#
resources: {}
# limits:
# cpu: 1000m
# memory: 1Gi
# requests:
# cpu: 100m
# memory: 128Mi
# -- Security context to be added to cilium-operator pods
#
securityContext: {}
# runAsUser: 0
# -- Interval for endpoint garbage collection.
endpointGCInterval: "5m0s"
# -- Interval for identity garbage collection.
identityGCInterval: "15m0s"
# -- Timeout for identity heartbeats.
identityHeartbeatTimeout: "30m0s"
# -- Enable prometheus metrics for cilium-operator on the configured port at
# /metrics
prometheus:
enabled: false
port: 6942
serviceMonitor:
# -- Enable service monitors.
# This requires the prometheus CRDs to be available (see https://github.com/prometheus-operator/prometheus-operator/blob/master/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml)
##
enabled: false
# -- Labels to add to ServiceMonitor cilium-operator
labels: {}
# -- Skip CRDs creation for cilium-operator
skipCRDCreation: false
nodeinit:
# -- Enable the node initialization DaemonSet
enabled: false
# -- node-init image.
image:
repository: quay.io/cilium/startup-script
tag: 62bfbe88c17778aad7bef9fa57ff9e2d4a9ba0d8
pullPolicy: IfNotPresent
# -- The priority class to use for the nodeinit pod.
priorityClassName: ""
# -- node-init update strategy
updateStrategy:
type: RollingUpdate
# -- Additional nodeinit environment variables.
extraEnv: {}
# -- Additional nodeinit init containers.
extraInitContainers: []
# -- Additional nodeinit host path mounts.
extraHostPathMounts: []
# - name: textfile-dir
# mountPath: /srv/txt_collector
# hostPath: /var/lib/nodeinit
# readOnly: true
# mountPropagation: HostToContainer
# -- Additional nodeinit ConfigMap mounts.
extraConfigmapMounts: []
# - name: certs-configmap
# mountPath: /certs
# configMap: certs-configmap
# readOnly: true
# -- Node tolerations for nodeinit scheduling to nodes with taints
# ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
#
tolerations:
- operator: Exists
# - key: "key"
# operator: "Equal|Exists"
# value: "value"
# effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
# -- Node labels for nodeinit pod assignment
# ref: https://kubernetes.io/docs/user-guide/node-selection/
#
nodeSelector: {}
# -- Annotations to be added to node-init pods.
podAnnotations: {}
# -- Labels to be added to node-init pods.
podLabels: {}
# -- PodDisruptionBudget settings
# ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
#
podDisruptionBudget:
enabled: true
maxUnavailable: 2
# -- nodeinit resource limits & requests
# ref: https://kubernetes.io/docs/user-guide/compute-resources/
#
resources:
requests:
cpu: 100m
memory: 100Mi
# -- Security context to be added to nodeinit pods.
#
securityContext: {}
# runAsUser: 0
# -- bootstrapFile is the location of the file where the bootstrap timestamp is
# written by the node-init DaemonSet
bootstrapFile: "/tmp/cilium-bootstrap-time"
preflight:
# -- Enable Cilium pre-flight resources (required for upgrade)
enabled: false
# -- Cilium pre-flight image.
image:
repository: quay.io/cilium/cilium
tag: v1.10.7
# cilium-digest
digest: "sha256:e23f55e80e1988db083397987a89967aa204ad6fc32da243b9160fbcea29b0ca"
useDigest: true
pullPolicy: IfNotPresent
# -- The priority class to use for the preflight pod.
priorityClassName: ""
# -- preflight update strategy
updateStrategy:
type: RollingUpdate
# -- Additional preflight environment variables.
extraEnv: {}
# -- Additional preflight init containers.
extraInitContainers: []
# -- Additional preflight host path mounts.
extraHostPathMounts: []
# - name: textfile-dir
# mountPath: /srv/txt_collector
# hostPath: /var/lib/preflight
# readOnly: true
# mountPropagation: HostToContainer
# -- Additional preflight ConfigMap mounts.
extraConfigmapMounts: []
# - name: certs-configmap
# mountPath: /certs
# configMap: certs-configmap
# readOnly: true
# -- Node tolerations for preflight scheduling to nodes with taints
# ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
#
tolerations:
- effect: NoSchedule
key: node.kubernetes.io/not-ready
- effect: NoSchedule
key: node-role.kubernetes.io/master
- effect: NoSchedule
key: node.cloudprovider.kubernetes.io/uninitialized
value: "true"
- key: CriticalAddonsOnly
operator: "Exists"
# - key: "key"
# operator: "Equal|Exists"
# value: "value"
# effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
# -- Node labels for preflight pod assignment
# ref: https://kubernetes.io/docs/user-guide/node-selection/
#
nodeSelector: {}
# -- Annotations to be added to preflight pods
podAnnotations: {}
# -- Labels to be added to the preflight pod.
podLabels: {}
# -- PodDisruptionBudget settings
# ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
#
podDisruptionBudget:
enabled: true
maxUnavailable: 2
# -- preflight resource limits & requests
# ref: https://kubernetes.io/docs/user-guide/compute-resources/
#
resources: {}
# limits:
# cpu: 4000m
# memory: 4Gi
# requests:
# cpu: 100m
# memory: 512Mi
# -- Security context to be added to preflight pods
#
securityContext: {}
# runAsUser: 0
# -- Path to write the `--tofqdns-pre-cache` file to.
tofqdnsPreCache: ""
# -- By default we should always validate the installed CNPs before upgrading
# Cilium. This will make sure the user will have the policies deployed in the
# cluster with the right schema.
validateCNPs: true
# -- Explicitly enable or disable priority class.
# .Capabilities.KubeVersion is unsettable in `helm template` calls,
# it depends on k8s libraries version that Helm was compiled against.
# This option allows to explicitly disable setting the priority class, which
# is useful for rendering charts for gke clusters in advance.
enableCriticalPriorityClass: true
# disableEnvoyVersionCheck removes the check for Envoy, which can be useful
# on AArch64 as the images do not currently ship a version of Envoy.
#disableEnvoyVersionCheck: false
clustermesh:
# -- Deploy clustermesh-apiserver for clustermesh
useAPIServer: false
apiserver:
# -- Clustermesh API server image.
image:
repository: quay.io/cilium/clustermesh-apiserver
tag: v1.10.7
# clustermesh-apiserver-digest
digest: "sha256:9afb0a15afffdf84812c8174df9de86e35239fb87a6ffd9539877a9e643d8132"
useDigest: true
pullPolicy: IfNotPresent
etcd:
# -- Clustermesh API server etcd image.
image:
repository: quay.io/coreos/etcd
tag: v3.4.13
pullPolicy: IfNotPresent
service:
# -- The type of service used for apiserver access.
type: NodePort
# -- Optional port to use as the node port for apiserver access.
nodePort: 32379
# -- Optional loadBalancer IP address to use with type LoadBalancer.
# loadBalancerIP:
# -- Annotations for the clustermesh-apiserver
# For GKE LoadBalancer, use annotation cloud.google.com/load-balancer-type: "Internal"
# For EKS LoadBalancer, use annotation service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0
annotations: {}
# -- Number of replicas run for the clustermesh-apiserver deployment.
replicas: 1
# -- Node labels for pod assignment
# ref: https://kubernetes.io/docs/user-guide/node-selection/
nodeSelector: {}
# -- Annotations to be added to clustermesh-apiserver pods
podAnnotations: {}
# -- Labels to be added to clustermesh-apiserver pods
podLabels: {}
# -- Resource requests and limits for the clustermesh-apiserver container of the clustermesh-apiserver deployment, such as
# resources:
# limits:
# cpu: 1000m
# memory: 1024M
# requests:
# cpu: 100m
# memory: 64Mi
resources: {}
# -- Node tolerations for pod assignment on nodes with taints
# ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
tolerations: []
# -- clustermesh-apiserver update strategy
updateStrategy:
rollingUpdate:
maxUnavailable: 1
type: RollingUpdate
tls:
# -- Configure automatic TLS certificates generation.
# A Kubernetes CronJob is used the generate any
# certificates not provided by the user at installation
# time.
auto:
# -- When set to true, automatically generate a CA and certificates to
# enable mTLS between clustermesh-apiserver and external workload instances.
# If set to false, the certs to be provided by setting appropriate values below.
enabled: true
# Sets the method to auto-generate certificates. Supported values:
# - helm: This method uses Helm to generate all certificates.
# - cronJob: This method uses a Kubernetes CronJob the generate any
# certificates not provided by the user at installation
# time.
method: helm
# -- Generated certificates validity duration in days.
certValidityDuration: 1095
# -- Schedule for certificates regeneration (regardless of their expiration date).
# Only used if method is "cronJob". If nil, then no recurring job will be created.
# Instead, only the one-shot job is deployed to generate the certificates at
# installation time.
#
# Due to the out-of-band distribution of client certs to external workloads the
# CA is (re)regenerated only if it is not provided as a helm value and the k8s
# secret is manually deleted.
#
# Defaults to none. Commented syntax gives midnight of the first day of every
# fourth month. For syntax, see
# https://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/#schedule
# schedule: "0 0 1 */4 *"
# -- base64 encoded PEM values for the ExternalWorkload CA certificate and private key.
ca:
# -- Optional CA cert. If it is provided, it will be used by the 'cronJob' method to
# generate all other certificates. Otherwise, an ephemeral CA is generated.
cert: ""
# -- Optional CA private key. If it is provided, it will be used by the 'cronJob' method to
# generate all other certificates. Otherwise, an ephemeral CA is generated.
key: ""
# -- base64 encoded PEM values for the clustermesh-apiserver server certificate and private key.
# Used if 'auto' is not enabled.
server:
cert: ""
key: ""
# -- base64 encoded PEM values for the clustermesh-apiserver admin certificate and private key.
# Used if 'auto' is not enabled.
admin:
cert: ""
key: ""
# -- base64 encoded PEM values for the clustermesh-apiserver client certificate and private key.
# Used if 'auto' is not enabled.
client:
cert: ""
key: ""
# -- base64 encoded PEM values for the clustermesh-apiserver remote cluster certificate and private key.
# Used if 'auto' is not enabled.
remote:
cert: ""
key: ""
# -- Configure external workloads support
externalWorkloads:
# -- Enable support for external workloads, such as VMs (false by default).
enabled: false
# -- Configure cgroup related configuration
cgroup:
autoMount:
# -- Enable auto mount of cgroup2 filesystem.
# When `autoMount` is enabled, cgroup2 filesystem is mounted at
# `cgroup.hostRoot` path on the underlying host and inside the cilium agent pod.
# If users disable `autoMount`, it's expected that users have mounted
# cgroup2 filesystem at the specified `cgroup.hostRoot` volume, and then the
# volume will be mounted inside the cilium agent pod at the same path.
enabled: true
# -- Configure cgroup root where cgroup2 filesystem is mounted on the host (see also: `cgroup.autoMount`)
hostRoot: /run/cilium/cgroupv2