blob: ff1e3b9945c820fe1f12344ec356656bf665c046 [file] [log] [blame]
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001# upgradeCompatibility helps users upgrading to ensure that the configMap for
2# Cilium will not change critical values to ensure continued operation
3# This is flag is not required for new installations.
4# For example: 1.7, 1.8, 1.9
5# upgradeCompatibility: '1.8'
6
7debug:
8 # -- Enable debug logging
9 enabled: false
10 # verbose:
11
12rbac:
13 # -- Enable creation of Resource-Based Access Control configuration.
14 create: true
15
16# -- Configure image pull secrets for pulling container images
17imagePullSecrets:
18# - name: "image-pull-secret"
19
20# kubeConfigPath: ~/.kube/config
21# k8sServiceHost:
22# k8sServicePort:
23
24cluster:
25 # -- Name of the cluster. Only required for Cluster Mesh.
26 name: default
27 # -- (int) Unique ID of the cluster. Must be unique across all connected
28 # clusters and in the range of 1 to 255. Only required for Cluster Mesh.
29 id:
30
31# -- Define serviceAccount names for components.
32# @default -- Component's fully qualified name.
33serviceAccounts:
34 cilium:
35 create: true
36 name: cilium
37 annotations: {}
38 etcd:
39 create: true
40 name: cilium-etcd-operator
41 annotations: {}
42 operator:
43 create: true
44 name: cilium-operator
45 annotations: {}
46 preflight:
47 create: true
48 name: cilium-pre-flight
49 annotations: {}
50 relay:
51 create: true
52 name: hubble-relay
53 annotations: {}
54 ui:
55 create: true
56 name: hubble-ui
57 annotations: {}
58 clustermeshApiserver:
59 create: true
60 name: clustermesh-apiserver
61 annotations: {}
62 # -- Clustermeshcertgen is used if clustermesh.apiserver.tls.auto.method=cronJob
63 clustermeshcertgen:
64 create: true
65 name: clustermesh-apiserver-generate-certs
66 annotations: {}
67 # -- Hubblecertgen is used if hubble.tls.auto.method=cronJob
68 hubblecertgen:
69 create: true
70 name: hubble-generate-certs
71 annotations: {}
72
73# -- Install the cilium agent resources.
74agent: true
75
76# -- Agent container name.
77name: cilium
78
79# -- Roll out cilium agent pods automatically when configmap is updated.
80rollOutCiliumPods: false
81
82# -- Agent container image.
83image:
84 repository: quay.io/cilium/cilium
85 tag: v1.10.7
86 pullPolicy: IfNotPresent
87 # cilium-digest
88 digest: "sha256:e23f55e80e1988db083397987a89967aa204ad6fc32da243b9160fbcea29b0ca"
89 useDigest: true
90
91# -- Pod affinity for cilium-agent.
92affinity:
93 nodeAffinity:
94 requiredDuringSchedulingIgnoredDuringExecution:
95 nodeSelectorTerms:
96 - matchExpressions:
97 - key: kubernetes.io/os
98 operator: In
99 values:
100 - linux
101 # Compatible with Kubernetes 1.12.x and 1.13.x
102 - matchExpressions:
103 - key: beta.kubernetes.io/os
104 operator: In
105 values:
106 - linux
107 podAntiAffinity:
108 requiredDuringSchedulingIgnoredDuringExecution:
109 - labelSelector:
110 matchExpressions:
111 - key: k8s-app
112 operator: In
113 values:
114 - cilium
115 topologyKey: kubernetes.io/hostname
116
117# -- The priority class to use for cilium-agent.
118priorityClassName: ""
119
120# -- Additional agent container arguments.
121extraArgs: []
122
123# -- Additional agent container environment variables.
124extraEnv: {}
125
126# -- Additional InitContainers to initialize the pod.
127extraInitContainers: []
128
129# -- Additional agent hostPath mounts.
130extraHostPathMounts: []
131 # - name: host-mnt-data
132 # mountPath: /host/mnt/data
133 # hostPath: /mnt/data
134 # hostPathType: Directory
135 # readOnly: true
136 # mountPropagation: HostToContainer
137
138# -- Additional agent ConfigMap mounts.
139extraConfigmapMounts: []
140 # - name: certs-configmap
141 # mountPath: /certs
142 # configMap: certs-configmap
143 # readOnly: true
144
145# -- extraConfig allows you to specify additional configuration parameters to be
146# included in the cilium-config configmap.
147extraConfig: {}
148# my-config-a: "1234"
149# my-config-b: |-
150# test 1
151# test 2
152# test 3
153
154# -- Node tolerations for agent scheduling to nodes with taints
155# ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
156tolerations:
157- operator: Exists
158 # - key: "key"
159 # operator: "Equal|Exists"
160 # value: "value"
161 # effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
162
163# -- Annotations to be added to agent pods
164podAnnotations: {}
165
166# -- Labels to be added to agent pods
167podLabels: {}
168
169# -- PodDisruptionBudget settings
170# ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
171podDisruptionBudget:
172 enabled: true
173 maxUnavailable: 2
174
175# -- Agent resource limits & requests
176# ref: https://kubernetes.io/docs/user-guide/compute-resources/
177resources: {}
178 # limits:
179 # cpu: 4000m
180 # memory: 4Gi
181 # requests:
182 # cpu: 100m
183 # memory: 512Mi
184
185# -- Security context to be added to agent pods
186securityContext: {}
187 # runAsUser: 0
188
189# -- Cilium agent update strategy
190updateStrategy:
191 rollingUpdate:
192 maxUnavailable: 2
193 type: RollingUpdate
194
195# Configuration Values for cilium-agent
196
197# -- Enable installation of PodCIDR routes between worker
198# nodes if worker nodes share a common L2 network segment.
199autoDirectNodeRoutes: false
200
201azure:
202 # -- Enable Azure integration
203 enabled: false
204 # resourceGroup: group1
205 # subscriptionID: 00000000-0000-0000-0000-000000000000
206 # tenantID: 00000000-0000-0000-0000-000000000000
207 # clientID: 00000000-0000-0000-0000-000000000000
208 # clientSecret: 00000000-0000-0000-0000-000000000000
209 # userAssignedIdentityID: 00000000-0000-0000-0000-000000000000
210
211alibabacloud:
212 # -- Enable AlibabaCloud ENI integration
213 enabled: false
214
215# -- Optimize TCP and UDP workloads and enable rate-limiting traffic from
216# individual Pods with EDT (Earliest Departure Time)
217# through the "kubernetes.io/egress-bandwidth" Pod annotation.
218bandwidthManager: false
219
220# -- Configure BGP
221bgp:
222 # -- Enable BGP support inside Cilium; embeds a new ConfigMap for BGP inside
223 # cilium-agent and cilium-operator
224 enabled: false
225 announce:
226 # -- Enable allocation and announcement of service LoadBalancer IPs
227 loadbalancerIP: false
228
229bpf:
230 # -- Enable BPF clock source probing for more efficient tick retrieval.
231 clockProbe: false
232
233 # -- Enables pre-allocation of eBPF map values. This increases
234 # memory usage but can reduce latency.
235 preallocateMaps: false
236
237 # -- Configure the maximum number of entries in the TCP connection tracking
238 # table.
239 # ctTcpMax: '524288'
240
241 # -- Configure the maximum number of entries for the non-TCP connection
242 # tracking table.
243 # ctAnyMax: '262144'
244
245 # -- Configure the maximum number of service entries in the
246 # load balancer maps.
247 lbMapMax: 65536
248
249 # -- Configure the maximum number of entries for the NAT table.
250 # natMax: 524288
251
252 # -- Configure the maximum number of entries for the neighbor table.
253 # neighMax: 524288
254
255 # -- Configure the maximum number of entries in endpoint policy map (per endpoint).
256 policyMapMax: 16384
257
258 # -- Configure auto-sizing for all BPF maps based on available memory.
259 # ref: https://docs.cilium.io/en/stable/concepts/ebpf/maps/#ebpf-maps
260 #mapDynamicSizeRatio: 0.0025
261
262 # -- Configure the level of aggregation for monitor notifications.
263 # Valid options are none, low, medium, maximum.
264 monitorAggregation: medium
265
266 # -- Configure the typical time between monitor notifications for
267 # active connections.
268 monitorInterval: "5s"
269
270 # -- Configure which TCP flags trigger notifications when seen for the
271 # first time in a connection.
272 monitorFlags: "all"
273
274 # -- Allow cluster external access to ClusterIP services.
275 lbExternalClusterIP: false
276
277 # -- Enable native IP masquerade support in eBPF
278 #masquerade: false
279
280 # -- Configure whether direct routing mode should route traffic via
281 # host stack (true) or directly and more efficiently out of BPF (false) if
282 # the kernel supports it. The latter has the implication that it will also
283 # bypass netfilter in the host namespace.
284 #hostRouting: true
285
286 # -- Configure the eBPF-based TPROXY to reduce reliance on iptables rules
287 # for implementing Layer 7 policy.
288 # tproxy: true
289
290 # -- Configure the FIB lookup bypass optimization for nodeport reverse
291 # NAT handling.
292 # lbBypassFIBLookup: true
293
294# -- Clean all eBPF datapath state from the initContainer of the cilium-agent
295# DaemonSet.
296#
297# WARNING: Use with care!
298cleanBpfState: false
299
300# -- Clean all local Cilium state from the initContainer of the cilium-agent
301# DaemonSet. Implies cleanBpfState: true.
302#
303# WARNING: Use with care!
304cleanState: false
305
306cni:
307 # -- Install the CNI configuration and binary files into the filesystem.
308 install: true
309
310 # -- Configure chaining on top of other CNI plugins. Possible values:
311 # - none
312 # - generic-veth
313 # - aws-cni
314 # - portmap
315 chainingMode: none
316
317 # -- Make Cilium take ownership over the `/etc/cni/net.d` directory on the
318 # node, renaming all non-Cilium CNI configurations to `*.cilium_bak`.
319 # This ensures no Pods can be scheduled using other CNI plugins during Cilium
320 # agent downtime.
321 exclusive: true
322
323 # -- Skip writing of the CNI configuration. This can be used if
324 # writing of the CNI configuration is performed by external automation.
325 customConf: false
326
327 # -- Configure the path to the CNI configuration directory on the host.
328 confPath: /etc/cni/net.d
329
330 # -- Configure the path to the CNI binary directory on the host.
331 binPath: /opt/cni/bin
332
333 # -- Specify the path to a CNI config to read from on agent start.
334 # This can be useful if you want to manage your CNI
335 # configuration outside of a Kubernetes environment. This parameter is
336 # mutually exclusive with the 'cni.configMap' parameter.
337 # readCniConf: /host/etc/cni/net.d/05-cilium.conf
338
339 # -- When defined, configMap will mount the provided value as ConfigMap and
340 # interpret the cniConf variable as CNI configuration file and write it
341 # when the agent starts up
342 # configMap: cni-configuration
343
344 # -- Configure the key in the CNI ConfigMap to read the contents of
345 # the CNI configuration from.
346 configMapKey: cni-config
347
348 # -- Configure the path to where to mount the ConfigMap inside the agent pod.
349 confFileMountPath: /tmp/cni-configuration
350
351 # -- Configure the path to where the CNI configuration directory is mounted
352 # inside the agent pod.
353 hostConfDirMountPath: /host/etc/cni/net.d
354
355# -- Configure how frequently garbage collection should occur for the datapath
356# connection tracking table.
357# conntrackGCInterval: "0s"
358
359# -- Configure container runtime specific integration.
360containerRuntime:
361 # -- Enables specific integrations for container runtimes.
362 # Supported values:
363 # - containerd
364 # - crio
365 # - docker
366 # - none
367 # - auto (automatically detect the container runtime)
368 integration: none
369 # -- Configure the path to the container runtime control socket.
370 # socketPath: /path/to/runtime.sock
371
372# crdWaitTimeout: ""
373
374# -- Tail call hooks for custom eBPF programs.
375customCalls:
376 # -- Enable tail call hooks for custom eBPF programs.
377 enabled: false
378
379# -- Configure which datapath mode should be used for configuring container
380# connectivity. Valid options are "veth" or "ipvlan".
381datapathMode: veth
382
383daemon:
384 # -- Configure where Cilium runtime state should be stored.
385 runPath: "/var/run/cilium"
386
387# -- Specify which network interfaces can run the eBPF datapath. This means
388# that a packet sent from a pod to a destination outside the cluster will be
389# masqueraded (to an output device IPv4 address), if the output device runs the
390# program. When not specified, probing will automatically detect devices.
391# devices: ""
392
393# -- Chains to ignore when installing feeder rules.
394# disableIptablesFeederRules: ""
395
396# -- Limit egress masquerading to interface selector.
397# egressMasqueradeInterfaces: ""
398
399# -- Whether to enable CNP status updates.
400enableCnpStatusUpdates: false
401
402# -- Configures the use of the KVStore to optimize Kubernetes event handling by
403# mirroring it into the KVstore for reduced overhead in large clusters.
404enableK8sEventHandover: false
405
406# TODO: Add documentation
407# enableIdentityMark: false
408
409# enableK8sEndpointSlice: false
410
411# -- Enables the fallback compatibility solution for when the xt_socket kernel
412# module is missing and it is needed for the datapath L7 redirection to work
413# properly. See documentation for details on when this can be disabled:
414# http://docs.cilium.io/en/stable/install/system_requirements/#admin-kernel-version.
415enableXTSocketFallback: true
416
417encryption:
418 # -- Enable transparent network encryption.
419 enabled: false
420
421 # -- Encryption method. Can be either ipsec or wireguard.
422 type: ipsec
423
424 # -- Enable encryption for pure node to node traffic.
425 # This option is only effective when encryption.type is set to ipsec.
426 nodeEncryption: false
427
428 ipsec:
429 # -- Name of the key file inside the Kubernetes secret configured via secretName.
430 keyFile: ""
431
432 # -- Path to mount the secret inside the Cilium pod.
433 mountPath: ""
434
435 # -- Name of the Kubernetes secret containing the encryption keys.
436 secretName: ""
437
438 # -- The interface to use for encrypted traffic.
439 interface: ""
440
441 # -- Deprecated in favor of encryption.ipsec.keyFile.
442 # Name of the key file inside the Kubernetes secret configured via secretName.
443 # This option is only effective when encryption.type is set to ipsec.
444 keyFile: keys
445
446 # -- Deprecated in favor of encryption.ipsec.mountPath.
447 # Path to mount the secret inside the Cilium pod.
448 # This option is only effective when encryption.type is set to ipsec.
449 mountPath: /etc/ipsec
450
451 # -- Deprecated in favor of encryption.ipsec.secretName.
452 # Name of the Kubernetes secret containing the encryption keys.
453 # This option is only effective when encryption.type is set to ipsec.
454 secretName: cilium-ipsec-keys
455
456 # -- Deprecated in favor of encryption.ipsec.interface.
457 # The interface to use for encrypted traffic.
458 # This option is only effective when encryption.type is set to ipsec.
459 interface: ""
460
461endpointHealthChecking:
462 # -- Enable connectivity health checking between virtual endpoints.
463 enabled: true
464
465# -- Enable endpoint status.
466# Status can be: policy, health, controllers, logs and / or state. For 2 or more options use a comma.
467endpointStatus:
468 enabled: false
469 status: ""
470
471endpointRoutes:
472 # -- Enable use of per endpoint routes instead of routing via
473 # the cilium_host interface.
474 enabled: false
475
476eni:
477 # -- Enable Elastic Network Interface (ENI) integration.
478 enabled: false
479 # -- Update ENI Adapter limits from the EC2 API
480 updateEC2AdapterLimitViaAPI: false
481 # -- Release IPs not used from the ENI
482 awsReleaseExcessIPs: false
483 # -- EC2 API endpoint to use
484 ec2APIEndpoint: ""
485 # -- Tags to apply to the newly created ENIs
486 eniTags: {}
487 # -- If using IAM role for Service Accounts will not try to
488 # inject identity values from cilium-aws kubernetes secret.
489 # Adds annotation to service account if managed by Helm.
490 # See https://github.com/aws/amazon-eks-pod-identity-webhook
491 iamRole: ""
492 # -- Filter via subnet IDs which will dictate which subnets are going to be used to create new ENIs
493 subnetIDsFilter: ""
494 # -- Filter via tags (k=v) which will dictate which subnets are going to be used to create new ENIs
495 subnetTagsFilter: ""
496
497externalIPs:
498 # -- Enable ExternalIPs service support.
499 enabled: false
500
501# fragmentTracking enables IPv4 fragment tracking support in the datapath.
502# fragmentTracking: true
503
504gke:
505 # -- Enable Google Kubernetes Engine integration
506 enabled: false
507
508# -- Enable connectivity health checking.
509healthChecking: true
510
511# -- TCP port for the agent health API. This is not the port for cilium-health.
512healthPort: 9876
513
514# -- Enables the enforcement of host policies in the eBPF datapath.
515hostFirewall: false
516
517hostPort:
518 # -- Enable hostPort service support.
519 enabled: false
520
521# -- Configure ClusterIP service handling in the host namespace (the node).
522hostServices:
523 # -- Enable host reachable services.
524 enabled: false
525
526 # -- Supported list of protocols to apply ClusterIP translation to.
527 protocols: tcp,udp
528
529 # -- Disable socket lb for non-root ns. This is used to enable Istio routing rules.
530 # hostNamespaceOnly: false
531
532# -- Configure certificate generation for Hubble integration.
533# If hubble.tls.auto.method=cronJob, these values are used
534# for the Kubernetes CronJob which will be scheduled regularly to
535# (re)generate any certificates not provided manually.
536certgen:
537 image:
538 repository: quay.io/cilium/certgen
539 tag: v0.1.5
540 pullPolicy: IfNotPresent
541 # -- Seconds after which the completed job pod will be deleted
542 ttlSecondsAfterFinished: 1800
543 # -- Labels to be added to hubble-certgen pods
544 podLabels: {}
545
546hubble:
547 # -- Enable Hubble (true by default).
548 enabled: true
549
550 # -- Buffer size of the channel Hubble uses to receive monitor events. If this
551 # value is not set, the queue size is set to the default monitor queue size.
552 # eventQueueSize: ""
553
554 # -- Number of recent flows for Hubble to cache. Defaults to 4095.
555 # Possible values are:
556 # 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023,
557 # 2047, 4095, 8191, 16383, 32767, 65535
558 # eventBufferCapacity: "4095"
559
560 # -- Hubble metrics configuration.
561 # See https://docs.cilium.io/en/stable/configuration/metrics/#hubble-metrics
562 # for more comprehensive documentation about Hubble metrics.
563 metrics:
564 # -- Configures the list of metrics to collect. If empty or null, metrics
565 # are disabled.
566 # Example:
567 #
568 # enabled:
569 # - dns:query;ignoreAAAA
570 # - drop
571 # - tcp
572 # - flow
573 # - icmp
574 # - http
575 #
576 # You can specify the list of metrics from the helm CLI:
577 #
578 # --set metrics.enabled="{dns:query;ignoreAAAA,drop,tcp,flow,icmp,http}"
579 #
580 enabled: ~
581 # -- Configure the port the hubble metric server listens on.
582 port: 9091
583 serviceMonitor:
584 # -- Create ServiceMonitor resources for Prometheus Operator.
585 # This requires the prometheus CRDs to be available.
586 # ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml)
587 enabled: false
588 # -- Labels to add to ServiceMonitor hubble
589 labels: {}
590
591 # -- Unix domain socket path to listen to when Hubble is enabled.
592 socketPath: /var/run/cilium/hubble.sock
593
594 # -- An additional address for Hubble to listen to.
595 # Set this field ":4244" if you are enabling Hubble Relay, as it assumes that
596 # Hubble is listening on port 4244.
597 listenAddress: ":4244"
598
599 # -- TLS configuration for Hubble
600 tls:
601 # -- Enable mutual TLS for listenAddress. Setting this value to false is
602 # highly discouraged as the Hubble API provides access to potentially
603 # sensitive network flow metadata and is exposed on the host network.
604 enabled: true
605 # -- Configure automatic TLS certificates generation.
606 auto:
607 # -- Auto-generate certificates.
608 # When set to true, automatically generate a CA and certificates to
609 # enable mTLS between Hubble server and Hubble Relay instances. If set to
610 # false, the certs for Hubble server need to be provided by setting
611 # appropriate values below.
612 enabled: true
613 # -- Set the method to auto-generate certificates. Supported values:
614 # - helm: This method uses Helm to generate all certificates.
615 # - cronJob: This method uses a Kubernetes CronJob the generate any
616 # certificates not provided by the user at installation
617 # time.
618 method: helm
619 # -- Generated certificates validity duration in days.
620 certValidityDuration: 1095
621 # -- Schedule for certificates regeneration (regardless of their expiration date).
622 # Only used if method is "cronJob". If nil, then no recurring job will be created.
623 # Instead, only the one-shot job is deployed to generate the certificates at
624 # installation time.
625 #
626 # Defaults to midnight of the first day of every fourth month. For syntax, see
627 # https://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/#schedule
628 schedule: "0 0 1 */4 *"
629 # -- base64 encoded PEM values for the Hubble CA certificate and private key.
630 ca:
631 cert: ""
632 # -- The CA private key (optional). If it is provided, then it will be
633 # used by hubble.tls.auto.method=cronJob to generate all other certificates.
634 # Otherwise, a ephemeral CA is generated if hubble.tls.auto.enabled=true.
635 key: ""
636 # -- base64 encoded PEM values for the Hubble server certificate and private key
637 server:
638 cert: ""
639 key: ""
640
641 relay:
642 # -- Enable Hubble Relay (requires hubble.enabled=true)
643 enabled: false
644
645 # -- Roll out Hubble Relay pods automatically when configmap is updated.
646 rollOutPods: false
647
648 # -- Hubble-relay container image.
649 image:
650 repository: quay.io/cilium/hubble-relay
651 tag: v1.10.7
652 # hubble-relay-digest
653 digest: "sha256:385fcc4fa315eb6b66626c3e5f607b6b6514c8c3a863c47c2b2dbc97790acb47"
654 useDigest: true
655 pullPolicy: IfNotPresent
656
657 # -- Specifies the resources for the hubble-relay pods
658 resources: {}
659
660 # -- Number of replicas run for the hubble-relay deployment.
661 replicas: 1
662
663 # -- Node labels for pod assignment
664 # ref: https://kubernetes.io/docs/user-guide/node-selection/
665 nodeSelector: {}
666
667 # -- Annotations to be added to hubble-relay pods
668 podAnnotations: {}
669
670 # -- Labels to be added to hubble-relay pods
671 podLabels: {}
672
673 # -- Node tolerations for pod assignment on nodes with taints
674 # ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
675 #
676 tolerations: []
677
678 # -- hubble-relay update strategy
679 updateStrategy:
680 rollingUpdate:
681 maxUnavailable: 1
682 type: RollingUpdate
683
684 # -- Host to listen to. Specify an empty string to bind to all the interfaces.
685 listenHost: ""
686
687 # -- Port to listen to.
688 listenPort: "4245"
689
690 # -- TLS configuration for Hubble Relay
691 tls:
692 # -- base64 encoded PEM values for the hubble-relay client certificate and private key
693 # This keypair is presented to Hubble server instances for mTLS
694 # authentication and is required when hubble.tls.enabled is true.
695 # These values need to be set manually if hubble.tls.auto.enabled is false.
696 client:
697 cert: ""
698 key: ""
699 # -- base64 encoded PEM values for the hubble-relay server certificate and private key
700 server:
701 # When set to true, enable TLS on for Hubble Relay server
702 # (ie: for clients connecting to the Hubble Relay API).
703 enabled: false
704 # These values need to be set manually if hubble.tls.auto.enabled is false.
705 cert: ""
706 key: ""
707
708 # -- Dial timeout to connect to the local hubble instance to receive peer information (e.g. "30s").
709 dialTimeout: ~
710
711 # -- Backoff duration to retry connecting to the local hubble instance in case of failure (e.g. "30s").
712 retryTimeout: ~
713
714 # -- Max number of flows that can be buffered for sorting before being sent to the
715 # client (per request) (e.g. 100).
716 sortBufferLenMax: ~
717
718 # -- When the per-request flows sort buffer is not full, a flow is drained every
719 # time this timeout is reached (only affects requests in follow-mode) (e.g. "1s").
720 sortBufferDrainTimeout: ~
721
722 # -- Port to use for the k8s service backed by hubble-relay pods.
723 # If not set, it is dynamically assigned to port 443 if TLS is enabled and to
724 # port 80 if not.
725 # servicePort: 80
726
727 ui:
728 # -- Whether to enable the Hubble UI.
729 enabled: false
730
731 # -- Roll out Hubble-ui pods automatically when configmap is updated.
732 rollOutPods: false
733
734 backend:
735 # -- Hubble-ui backend image.
736 image:
737 repository: quay.io/cilium/hubble-ui-backend
738 tag: v0.8.5@sha256:2bce50cf6c32719d072706f7ceccad654bfa907b2745a496da99610776fe31ed
739 pullPolicy: IfNotPresent
740 # [Example]
741 # resources:
742 # limits:
743 # cpu: 1000m
744 # memory: 1024M
745 # requests:
746 # cpu: 100m
747 # memory: 64Mi
748 # -- Resource requests and limits for the 'backend' container of the 'hubble-ui' deployment.
749 resources: {}
750
751 frontend:
752 # -- Hubble-ui frontend image.
753 image:
754 repository: quay.io/cilium/hubble-ui
755 tag: v0.8.5@sha256:4eaca1ec1741043cfba6066a165b3bf251590cf4ac66371c4f63fbed2224ebb4
756 pullPolicy: IfNotPresent
757 # [Example]
758 # resources:
759 # limits:
760 # cpu: 1000m
761 # memory: 1024M
762 # requests:
763 # cpu: 100m
764 # memory: 64Mi
765 # -- Resource requests and limits for the 'frontend' container of the 'hubble-ui' deployment.
766 resources: {}
767
768 proxy:
769 # -- Hubble-ui ingress proxy image.
770 image:
771 repository: docker.io/envoyproxy/envoy
772 tag: v1.18.4@sha256:e5c2bb2870d0e59ce917a5100311813b4ede96ce4eb0c6bfa879e3fbe3e83935
773 pullPolicy: IfNotPresent
774 # [Example]
775 # resources:
776 # limits:
777 # cpu: 1000m
778 # memory: 1024M
779 # requests:
780 # cpu: 100m
781 # memory: 64Mi
782 # -- Resource requests and limits for the 'proxy' container of the 'hubble-ui' deployment.
783 resources: {}
784
785 # -- The number of replicas of Hubble UI to deploy.
786 replicas: 1
787
788 # -- Annotations to be added to hubble-ui pods
789 podAnnotations: {}
790
791 # -- Labels to be added to hubble-ui pods
792 podLabels: {}
793
794 # -- Node labels for pod assignment
795 # ref: https://kubernetes.io/docs/user-guide/node-selection/
796 nodeSelector: {}
797
798 # -- Node tolerations for pod assignment on nodes with taints
799 # ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
800 #
801 tolerations: []
802
803 # -- hubble-ui update strategy.
804 updateStrategy:
805 rollingUpdate:
806 maxUnavailable: 1
807 type: RollingUpdate
808
809 securityContext:
810 # -- Whether to set the security context on the Hubble UI pods.
811 enabled: true
812
813 # -- hubble-ui ingress configuration.
814 ingress:
815 enabled: false
816 annotations: {}
817 # kubernetes.io/ingress.class: nginx
818 # kubernetes.io/tls-acme: "true"
819 hosts:
820 - chart-example.local
821 tls: []
822 # - secretName: chart-example-tls
823 # hosts:
824 # - chart-example.local
825
826
827# -- Method to use for identity allocation (`crd` or `kvstore`).
828identityAllocationMode: "crd"
829
830# TODO: Add documentation
831# identityChangeGracePeriod: "5s"
832
833# TODO: Add documentation
834# identityGCInterval:
835
836# TODO: Add documentation
837# identityHeartbeatTimeout: ""
838
839
840# -- Configure whether to install iptables rules to allow for TPROXY
841# (L7 proxy injection), iptables-based masquerading and compatibility
842# with kube-proxy.
843installIptablesRules: true
844
845# -- Install Iptables rules to skip netfilter connection tracking on all pod
846# traffic. This option is only effective when Cilium is running in direct
847# routing and full KPR mode. Moreover, this option cannot be enabled when Cilium
848# is running in a managed Kubernetes environment or in a chained CNI setup.
849installNoConntrackIptablesRules: false
850
851ipam:
852 # -- Configure IP Address Management mode.
853 # ref: https://docs.cilium.io/en/stable/concepts/networking/ipam/
854 mode: "cluster-pool"
855 operator:
856 # -- IPv4 CIDR range to delegate to individual nodes for IPAM.
857 clusterPoolIPv4PodCIDR: "10.0.0.0/8"
858 # -- IPv4 CIDR mask size to delegate to individual nodes for IPAM.
859 clusterPoolIPv4MaskSize: 24
860 # -- IPv6 CIDR range to delegate to individual nodes for IPAM.
861 clusterPoolIPv6PodCIDR: "fd00::/104"
862 # -- IPv6 CIDR mask size to delegate to individual nodes for IPAM.
863 clusterPoolIPv6MaskSize: 120
864
865# -- Configure the eBPF-based ip-masq-agent
866ipMasqAgent:
867 enabled: false
868
869# iptablesLockTimeout defines the iptables "--wait" option when invoked from Cilium.
870# iptablesLockTimeout: "5s"
871
872ipv4:
873 # -- Enable IPv4 support.
874 enabled: true
875
876ipv6:
877 # -- Enable IPv6 support.
878 enabled: false
879
880ipvlan:
881 # -- Enable the IPVLAN datapath
882 enabled: false
883
884 # -- masterDevice is the name of the device to use to attach secondary IPVLAN
885 # devices
886 # masterDevice: eth0
887
888# -- Configure Kubernetes specific configuration
889k8s: {}
890 # -- requireIPv4PodCIDR enables waiting for Kubernetes to provide the PodCIDR
891 # range via the Kubernetes node resource
892 # requireIPv4PodCIDR: false
893
894 # -- requireIPv6PodCIDR enables waiting for Kubernetes to provide the PodCIDR
895 # range via the Kubernetes node resource
896 # requireIPv6PodCIDR: false
897
898# -- Keep the deprecated selector labels when deploying Cilium DaemonSet.
899keepDeprecatedLabels: false
900
901# -- Keep the deprecated probes when deploying Cilium DaemonSet
902keepDeprecatedProbes: false
903
904startupProbe:
905 # -- failure threshold of startup probe.
906 # 105 x 2s translates to the old behaviour of the readiness probe (120s delay + 30 x 3s)
907 failureThreshold: 105
908 # -- interval between checks of the startup probe
909 periodSeconds: 2
910livenessProbe:
911 # -- failure threshold of liveness probe
912 failureThreshold: 10
913 # -- interval between checks of the liveness probe
914 periodSeconds: 30
915readinessProbe:
916 # -- failure threshold of readiness probe
917 failureThreshold: 3
918 # -- interval between checks of the readiness probe
919 periodSeconds: 30
920
921# -- Configure the kube-proxy replacement in Cilium BPF datapath
922# Valid options are "disabled", "probe", "partial", "strict".
923# ref: https://docs.cilium.io/en/stable/gettingstarted/kubeproxy-free/
924#kubeProxyReplacement: "disabled"
925
926# -- healthz server bind address for the kube-proxy replacement.
927# To enable set the value to '0.0.0.0:10256' for all ipv4
928# addresses and this '[::]:10256' for all ipv6 addresses.
929# By default it is disabled.
930kubeProxyReplacementHealthzBindAddr: ""
931
932l2NeighDiscovery:
933 # -- Enable L2 neighbour discovery in the agent
934 enabled: true
935 # -- Set period for arping
936 arping-refresh-period: "5m"
937
938# -- Enable Layer 7 network policy.
939l7Proxy: true
940
941# -- Enable Local Redirect Policy.
942localRedirectPolicy: false
943
944# To include or exclude matched resources from cilium identity evaluation
945# labels: ""
946
947# logOptions allows you to define logging options. eg:
948# logOptions:
949# format: json
950
951# -- Enables periodic logging of system load
952logSystemLoad: false
953
954
955# -- Configure maglev consistent hashing
956maglev: {}
957 # -- tableSize is the size (parameter M) for the backend table of one
958 # service entry
959 # tableSize:
960
961 # -- hashSeed is the cluster-wide base64 encoded seed for the hashing
962 # hashSeed:
963
964# -- Enables masquerading of IPv4 traffic leaving the node from endpoints.
965enableIPv4Masquerade: true
966
967# -- Enables masquerading of IPv6 traffic leaving the node from endpoints.
968enableIPv6Masquerade: true
969
970# -- Enables egress gateway (beta) to redirect and SNAT the traffic that
971# leaves the cluster.
972egressGateway:
973 enabled: false
974
975# -- Specify the CIDR for native routing (ie to avoid IP masquerade for).
976# This value corresponds to the configured cluster-cidr.
977# nativeRoutingCIDR:
978
979monitor:
980 # -- Enable the cilium-monitor sidecar.
981 enabled: false
982
983# -- Configure service load balancing
984# loadBalancer:
985 # -- standalone enables the standalone L4LB which does not connect to
986 # kube-apiserver.
987 # standalone: false
988
989 # -- algorithm is the name of the load balancing algorithm for backend
990 # selection e.g. random or maglev
991 # algorithm: random
992
993 # -- mode is the operation mode of load balancing for remote backends
994 # e.g. snat, dsr, hybrid
995 # mode: snat
996
997 # -- acceleration is the option to accelerate service handling via XDP
998 # e.g. native, disabled
999 # acceleration: disabled
1000
1001 # -- dsrDispatch configures whether IP option or IPIP encapsulation is
1002 # used to pass a service IP and port to remote backend
1003 # dsrDispatch: opt
1004
1005# -- Configure N-S k8s service loadbalancing
1006nodePort:
1007 # -- Enable the Cilium NodePort service implementation.
1008 enabled: false
1009
1010 # -- Port range to use for NodePort services.
1011 # range: "30000,32767"
1012
1013 # -- Set to true to prevent applications binding to service ports.
1014 bindProtection: true
1015
1016 # -- Append NodePort range to ip_local_reserved_ports if clash with ephemeral
1017 # ports is detected.
1018 autoProtectPortRange: true
1019
1020 # -- Enable healthcheck nodePort server for NodePort services
1021 enableHealthCheck: true
1022
1023# policyAuditMode: false
1024
1025# -- The agent can be put into one of the three policy enforcement modes:
1026# default, always and never.
1027# ref: https://docs.cilium.io/en/stable/policy/intro/#policy-enforcement-modes
1028policyEnforcementMode: "default"
1029
1030pprof:
1031 # -- Enable Go pprof debugging
1032 enabled: false
1033
1034# -- Configure prometheus metrics on the configured port at /metrics
1035prometheus:
1036 enabled: false
1037 port: 9090
1038 serviceMonitor:
1039 # -- Enable service monitors.
1040 # 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)
1041 #
1042 enabled: false
1043 # -- Labels to add to ServiceMonitor cilium-agent
1044 labels: {}
1045 # -- Specify the Kubernetes namespace where Prometheus expects to find
1046 # service monitors configured.
1047 # namespace: ""
1048 # -- Metrics that should be enabled or disabled from the default metric
1049 # list. (+metric_foo to enable metric_foo , -metric_bar to disable
1050 # metric_bar).
1051 # ref: https://docs.cilium.io/en/stable/operations/metrics/#exported-metrics
1052 metrics: ~
1053
1054# -- Configure Istio proxy options.
1055proxy:
1056 prometheus:
1057 enabled: true
1058 port: "9095"
1059 # -- Regular expression matching compatible Istio sidecar istio-proxy
1060 # container image names
1061 sidecarImageRegex: "cilium/istio_proxy"
1062
1063# -- Enable use of the remote node identity.
1064# ref: https://docs.cilium.io/en/v1.7/install/upgrade/#configmap-remote-node-identity
1065remoteNodeIdentity: true
1066
1067# -- Enable resource quotas for priority classes used in the cluster.
1068resourceQuotas:
1069 enabled: false
1070 cilium:
1071 hard:
1072 # 5k nodes * 2 DaemonSets (Cilium and cilium node init)
1073 pods: "10k"
1074 operator:
1075 hard:
1076 # 15 "clusterwide" Cilium Operator pods for HA
1077 pods: "15"
1078
1079# Need to document default
1080##################
1081#sessionAffinity: false
1082
1083# -- Do not run Cilium agent when running with clean mode. Useful to completely
1084# uninstall Cilium as it will stop Cilium from starting and create artifacts
1085# in the node.
1086sleepAfterInit: false
1087
1088# -- Configure BPF socket operations configuration
1089sockops:
1090 # enabled enables installation of socket options acceleration.
1091 enabled: false
1092
1093# TODO: Add documentation, default value
1094# svcSourceRangeCheck:
1095
1096# synchronizeK8sNodes: true
1097
1098# -- Configure TLS configuration in the agent.
1099tls:
1100 enabled: true
1101 secretsBackend: local
1102
1103# -- Configure the encapsulation configuration for communication between nodes.
1104# Possible values:
1105# - disabled
1106# - vxlan (default)
1107# - geneve
1108tunnel: "vxlan"
1109
1110wellKnownIdentities:
1111 # -- Enable the use of well-known identities.
1112 enabled: false
1113
1114
1115etcd:
1116 # -- Enable etcd mode for the agent.
1117 enabled: false
1118
1119 # -- cilium-etcd-operator image.
1120 image:
1121 repository: quay.io/cilium/cilium-etcd-operator
1122 tag: v2.0.7
1123 pullPolicy: IfNotPresent
1124
1125 # -- cilium-etcd-operator priorityClassName
1126 priorityClassName: ""
1127
1128 # -- Additional cilium-etcd-operator container arguments.
1129 extraArgs: []
1130
1131 # -- Additional InitContainers to initialize the pod.
1132 extraInitContainers: []
1133
1134 # -- Additional cilium-etcd-operator hostPath mounts.
1135 extraHostPathMounts: []
1136 # - name: textfile-dir
1137 # mountPath: /srv/txt_collector
1138 # hostPath: /var/lib/cilium-etcd-operator
1139 # readOnly: true
1140 # mountPropagation: HostToContainer
1141
1142 # -- Additional cilium-etcd-operator ConfigMap mounts.
1143 extraConfigmapMounts: []
1144 # - name: certs-configmap
1145 # mountPath: /certs
1146 # configMap: certs-configmap
1147 # readOnly: true
1148
1149 # -- Node tolerations for cilium-etcd-operator scheduling to nodes with taints
1150 # ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
1151 tolerations:
1152 - operator: Exists
1153 # - key: "key"
1154 # operator: "Equal|Exists"
1155 # value: "value"
1156 # effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
1157
1158 # -- Node labels for cilium-etcd-operator pod assignment
1159 # ref: https://kubernetes.io/docs/user-guide/node-selection/
1160 nodeSelector: {}
1161
1162 # -- Annotations to be added to cilium-etcd-operator pods
1163 podAnnotations: {}
1164
1165 # -- Labels to be added to cilium-etcd-operator pods
1166 podLabels: {}
1167
1168 # -- PodDisruptionBudget settings
1169 # ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
1170 #
1171 podDisruptionBudget:
1172 enabled: true
1173 maxUnavailable: 2
1174
1175 # -- cilium-etcd-operator resource limits & requests
1176 # ref: https://kubernetes.io/docs/user-guide/compute-resources/
1177 #
1178 resources: {}
1179 # limits:
1180 # cpu: 4000m
1181 # memory: 4Gi
1182 # requests:
1183 # cpu: 100m
1184 # memory: 512Mi
1185
1186 # -- Security context to be added to cilium-etcd-operator pods
1187 #
1188 securityContext: {}
1189 # runAsUser: 0
1190
1191 # -- cilium-etcd-operator update strategy
1192 updateStrategy:
1193 rollingUpdate:
1194 maxSurge: 1
1195 maxUnavailable: 1
1196 type: RollingUpdate
1197
1198 # -- If etcd is behind a k8s service set this option to true so that Cilium
1199 # does the service translation automatically without requiring a DNS to be
1200 # running.
1201 k8sService: false
1202
1203 # -- Cluster domain for cilium-etcd-operator.
1204 clusterDomain: cluster.local
1205
1206 # -- List of etcd endpoints (not needed when using managed=true).
1207 endpoints:
1208 - https://CHANGE-ME:2379
1209
1210 # -- Enable use of TLS/SSL for connectivity to etcd. (auto-enabled if
1211 # managed=true)
1212 ssl: false
1213
1214operator:
1215 # -- Enable the cilium-operator component (required).
1216 enabled: true
1217
1218 # -- Roll out cilium-operator pods automatically when configmap is updated.
1219 rollOutPods: false
1220
1221 # -- cilium-operator image.
1222 image:
1223 repository: quay.io/cilium/operator
1224 tag: v1.10.7
1225 # operator-generic-digest
1226 genericDigest: "sha256:d0b491d8d8cb45862ed7f0410f65e7c141832f0f95262643fa5ff1edfcddcafe"
1227 # operator-azure-digest
1228 azureDigest: "sha256:556d692b2f08822101c159d9d6f731efe6c437d2b80f0ef96813e8745203c852"
1229 # operator-aws-digest
1230 awsDigest: "sha256:97b378e0e3b6b5ade6ae1706024c7a25fe6fc48e00102b65a6b7ac51d6327f40"
1231 # operator-alibabacloud-digest
1232 alibabacloudDigest: "sha256:7a6ccc99195ae6a8216d2a1e1e0cc05d49c2d263b194895da264899fe9d0f45a"
1233 useDigest: true
1234 pullPolicy: IfNotPresent
1235 suffix: ""
1236
1237 # -- Number of replicas to run for the cilium-operator deployment
1238 replicas: 2
1239
1240 # -- For using with an existing serviceAccount.
1241 serviceAccountName: cilium-operator
1242
1243 # -- cilium-operator priorityClassName
1244 priorityClassName: ""
1245
1246 # -- cilium-operator update strategy
1247 updateStrategy:
1248 rollingUpdate:
1249 maxSurge: 1
1250 maxUnavailable: 1
1251 type: RollingUpdate
1252
1253 # -- cilium-operator affinity
1254 affinity:
1255 podAntiAffinity:
1256 requiredDuringSchedulingIgnoredDuringExecution:
1257 - labelSelector:
1258 matchExpressions:
1259 - key: io.cilium/app
1260 operator: In
1261 values:
1262 - operator
1263 topologyKey: kubernetes.io/hostname
1264
1265
1266 # -- Additional cilium-operator container arguments.
1267 extraArgs: []
1268
1269 # -- Additional cilium-operator environment variables.
1270 extraEnv: {}
1271
1272 # -- Additional InitContainers to initialize the pod.
1273 extraInitContainers: []
1274
1275 # -- Additional cilium-operator hostPath mounts.
1276 extraHostPathMounts: []
1277 # - name: host-mnt-data
1278 # mountPath: /host/mnt/data
1279 # hostPath: /mnt/data
1280 # hostPathType: Directory
1281 # readOnly: true
1282 # mountPropagation: HostToContainer
1283
1284 # -- Additional cilium-operator ConfigMap mounts.
1285 extraConfigmapMounts: []
1286 # - name: certs-configmap
1287 # mountPath: /certs
1288 # configMap: certs-configmap
1289 # readOnly: true
1290
1291 # -- Node tolerations for cilium-operator scheduling to nodes with taints
1292 # ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
1293 tolerations:
1294 - operator: Exists
1295 # - key: "key"
1296 # operator: "Equal|Exists"
1297 # value: "value"
1298 # effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
1299
1300 # -- Node labels for cilium-operator pod assignment
1301 # ref: https://kubernetes.io/docs/user-guide/node-selection/
1302 #
1303 nodeSelector: {}
1304
1305 # -- Annotations to be added to cilium-operator pods
1306 podAnnotations: {}
1307
1308 # -- Labels to be added to cilium-operator pods
1309 podLabels: {}
1310
1311 # -- PodDisruptionBudget settings
1312 # ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
1313 #
1314 podDisruptionBudget:
1315 enabled: false
1316 maxUnavailable: 1
1317
1318 # -- cilium-operator resource limits & requests
1319 # ref: https://kubernetes.io/docs/user-guide/compute-resources/
1320 #
1321 resources: {}
1322 # limits:
1323 # cpu: 1000m
1324 # memory: 1Gi
1325 # requests:
1326 # cpu: 100m
1327 # memory: 128Mi
1328
1329 # -- Security context to be added to cilium-operator pods
1330 #
1331 securityContext: {}
1332 # runAsUser: 0
1333
1334 # -- Interval for endpoint garbage collection.
1335 endpointGCInterval: "5m0s"
1336
1337 # -- Interval for identity garbage collection.
1338 identityGCInterval: "15m0s"
1339
1340 # -- Timeout for identity heartbeats.
1341 identityHeartbeatTimeout: "30m0s"
1342
1343 # -- Enable prometheus metrics for cilium-operator on the configured port at
1344 # /metrics
1345 prometheus:
1346 enabled: false
1347 port: 6942
1348 serviceMonitor:
1349 # -- Enable service monitors.
1350 # 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)
1351 ##
1352 enabled: false
1353 # -- Labels to add to ServiceMonitor cilium-operator
1354 labels: {}
1355
1356 # -- Skip CRDs creation for cilium-operator
1357 skipCRDCreation: false
1358
1359
1360nodeinit:
1361 # -- Enable the node initialization DaemonSet
1362 enabled: false
1363
1364 # -- node-init image.
1365 image:
1366 repository: quay.io/cilium/startup-script
1367 tag: 62bfbe88c17778aad7bef9fa57ff9e2d4a9ba0d8
1368 pullPolicy: IfNotPresent
1369
1370 # -- The priority class to use for the nodeinit pod.
1371 priorityClassName: ""
1372
1373 # -- node-init update strategy
1374 updateStrategy:
1375 type: RollingUpdate
1376
1377 # -- Additional nodeinit environment variables.
1378 extraEnv: {}
1379
1380 # -- Additional nodeinit init containers.
1381 extraInitContainers: []
1382
1383 # -- Additional nodeinit host path mounts.
1384 extraHostPathMounts: []
1385 # - name: textfile-dir
1386 # mountPath: /srv/txt_collector
1387 # hostPath: /var/lib/nodeinit
1388 # readOnly: true
1389 # mountPropagation: HostToContainer
1390
1391 # -- Additional nodeinit ConfigMap mounts.
1392 extraConfigmapMounts: []
1393 # - name: certs-configmap
1394 # mountPath: /certs
1395 # configMap: certs-configmap
1396 # readOnly: true
1397
1398 # -- Node tolerations for nodeinit scheduling to nodes with taints
1399 # ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
1400 #
1401 tolerations:
1402 - operator: Exists
1403 # - key: "key"
1404 # operator: "Equal|Exists"
1405 # value: "value"
1406 # effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
1407
1408 # -- Node labels for nodeinit pod assignment
1409 # ref: https://kubernetes.io/docs/user-guide/node-selection/
1410 #
1411 nodeSelector: {}
1412
1413 # -- Annotations to be added to node-init pods.
1414 podAnnotations: {}
1415
1416 # -- Labels to be added to node-init pods.
1417 podLabels: {}
1418
1419 # -- PodDisruptionBudget settings
1420 # ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
1421 #
1422 podDisruptionBudget:
1423 enabled: true
1424 maxUnavailable: 2
1425
1426 # -- nodeinit resource limits & requests
1427 # ref: https://kubernetes.io/docs/user-guide/compute-resources/
1428 #
1429 resources:
1430 requests:
1431 cpu: 100m
1432 memory: 100Mi
1433
1434 # -- Security context to be added to nodeinit pods.
1435 #
1436 securityContext: {}
1437 # runAsUser: 0
1438
1439 # -- bootstrapFile is the location of the file where the bootstrap timestamp is
1440 # written by the node-init DaemonSet
1441 bootstrapFile: "/tmp/cilium-bootstrap-time"
1442
1443preflight:
1444 # -- Enable Cilium pre-flight resources (required for upgrade)
1445 enabled: false
1446
1447 # -- Cilium pre-flight image.
1448 image:
1449 repository: quay.io/cilium/cilium
1450 tag: v1.10.7
1451 # cilium-digest
1452 digest: "sha256:e23f55e80e1988db083397987a89967aa204ad6fc32da243b9160fbcea29b0ca"
1453 useDigest: true
1454 pullPolicy: IfNotPresent
1455
1456 # -- The priority class to use for the preflight pod.
1457 priorityClassName: ""
1458
1459 # -- preflight update strategy
1460 updateStrategy:
1461 type: RollingUpdate
1462
1463 # -- Additional preflight environment variables.
1464 extraEnv: {}
1465
1466 # -- Additional preflight init containers.
1467 extraInitContainers: []
1468
1469 # -- Additional preflight host path mounts.
1470 extraHostPathMounts: []
1471 # - name: textfile-dir
1472 # mountPath: /srv/txt_collector
1473 # hostPath: /var/lib/preflight
1474 # readOnly: true
1475 # mountPropagation: HostToContainer
1476
1477 # -- Additional preflight ConfigMap mounts.
1478 extraConfigmapMounts: []
1479 # - name: certs-configmap
1480 # mountPath: /certs
1481 # configMap: certs-configmap
1482 # readOnly: true
1483
1484 # -- Node tolerations for preflight scheduling to nodes with taints
1485 # ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
1486 #
1487 tolerations:
1488 - effect: NoSchedule
1489 key: node.kubernetes.io/not-ready
1490 - effect: NoSchedule
1491 key: node-role.kubernetes.io/master
1492 - effect: NoSchedule
1493 key: node.cloudprovider.kubernetes.io/uninitialized
1494 value: "true"
1495 - key: CriticalAddonsOnly
1496 operator: "Exists"
1497 # - key: "key"
1498 # operator: "Equal|Exists"
1499 # value: "value"
1500 # effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
1501
1502 # -- Node labels for preflight pod assignment
1503 # ref: https://kubernetes.io/docs/user-guide/node-selection/
1504 #
1505 nodeSelector: {}
1506
1507 # -- Annotations to be added to preflight pods
1508 podAnnotations: {}
1509
1510 # -- Labels to be added to the preflight pod.
1511 podLabels: {}
1512
1513 # -- PodDisruptionBudget settings
1514 # ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
1515 #
1516 podDisruptionBudget:
1517 enabled: true
1518 maxUnavailable: 2
1519
1520 # -- preflight resource limits & requests
1521 # ref: https://kubernetes.io/docs/user-guide/compute-resources/
1522 #
1523 resources: {}
1524 # limits:
1525 # cpu: 4000m
1526 # memory: 4Gi
1527 # requests:
1528 # cpu: 100m
1529 # memory: 512Mi
1530
1531 # -- Security context to be added to preflight pods
1532 #
1533 securityContext: {}
1534 # runAsUser: 0
1535
1536 # -- Path to write the `--tofqdns-pre-cache` file to.
1537 tofqdnsPreCache: ""
1538 # -- By default we should always validate the installed CNPs before upgrading
1539 # Cilium. This will make sure the user will have the policies deployed in the
1540 # cluster with the right schema.
1541 validateCNPs: true
1542
1543# -- Explicitly enable or disable priority class.
1544# .Capabilities.KubeVersion is unsettable in `helm template` calls,
1545# it depends on k8s libraries version that Helm was compiled against.
1546# This option allows to explicitly disable setting the priority class, which
1547# is useful for rendering charts for gke clusters in advance.
1548enableCriticalPriorityClass: true
1549
1550# disableEnvoyVersionCheck removes the check for Envoy, which can be useful
1551# on AArch64 as the images do not currently ship a version of Envoy.
1552#disableEnvoyVersionCheck: false
1553
1554clustermesh:
1555 # -- Deploy clustermesh-apiserver for clustermesh
1556 useAPIServer: false
1557
1558 apiserver:
1559 # -- Clustermesh API server image.
1560 image:
1561 repository: quay.io/cilium/clustermesh-apiserver
1562 tag: v1.10.7
1563 # clustermesh-apiserver-digest
1564 digest: "sha256:9afb0a15afffdf84812c8174df9de86e35239fb87a6ffd9539877a9e643d8132"
1565 useDigest: true
1566 pullPolicy: IfNotPresent
1567
1568 etcd:
1569 # -- Clustermesh API server etcd image.
1570 image:
1571 repository: quay.io/coreos/etcd
1572 tag: v3.4.13
1573 pullPolicy: IfNotPresent
1574
1575 service:
1576 # -- The type of service used for apiserver access.
1577 type: NodePort
1578 # -- Optional port to use as the node port for apiserver access.
1579 nodePort: 32379
1580 # -- Optional loadBalancer IP address to use with type LoadBalancer.
1581 # loadBalancerIP:
1582
1583 # -- Annotations for the clustermesh-apiserver
1584 # For GKE LoadBalancer, use annotation cloud.google.com/load-balancer-type: "Internal"
1585 # For EKS LoadBalancer, use annotation service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0
1586 annotations: {}
1587
1588 # -- Number of replicas run for the clustermesh-apiserver deployment.
1589 replicas: 1
1590
1591 # -- Node labels for pod assignment
1592 # ref: https://kubernetes.io/docs/user-guide/node-selection/
1593 nodeSelector: {}
1594
1595 # -- Annotations to be added to clustermesh-apiserver pods
1596 podAnnotations: {}
1597
1598 # -- Labels to be added to clustermesh-apiserver pods
1599 podLabels: {}
1600
1601 # -- Resource requests and limits for the clustermesh-apiserver container of the clustermesh-apiserver deployment, such as
1602 # resources:
1603 # limits:
1604 # cpu: 1000m
1605 # memory: 1024M
1606 # requests:
1607 # cpu: 100m
1608 # memory: 64Mi
1609 resources: {}
1610
1611 # -- Node tolerations for pod assignment on nodes with taints
1612 # ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
1613 tolerations: []
1614
1615 # -- clustermesh-apiserver update strategy
1616 updateStrategy:
1617 rollingUpdate:
1618 maxUnavailable: 1
1619 type: RollingUpdate
1620
1621 tls:
1622 # -- Configure automatic TLS certificates generation.
1623 # A Kubernetes CronJob is used the generate any
1624 # certificates not provided by the user at installation
1625 # time.
1626 auto:
1627 # -- When set to true, automatically generate a CA and certificates to
1628 # enable mTLS between clustermesh-apiserver and external workload instances.
1629 # If set to false, the certs to be provided by setting appropriate values below.
1630 enabled: true
1631 # Sets the method to auto-generate certificates. Supported values:
1632 # - helm: This method uses Helm to generate all certificates.
1633 # - cronJob: This method uses a Kubernetes CronJob the generate any
1634 # certificates not provided by the user at installation
1635 # time.
1636 method: helm
1637 # -- Generated certificates validity duration in days.
1638 certValidityDuration: 1095
1639 # -- Schedule for certificates regeneration (regardless of their expiration date).
1640 # Only used if method is "cronJob". If nil, then no recurring job will be created.
1641 # Instead, only the one-shot job is deployed to generate the certificates at
1642 # installation time.
1643 #
1644 # Due to the out-of-band distribution of client certs to external workloads the
1645 # CA is (re)regenerated only if it is not provided as a helm value and the k8s
1646 # secret is manually deleted.
1647 #
1648 # Defaults to none. Commented syntax gives midnight of the first day of every
1649 # fourth month. For syntax, see
1650 # https://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/#schedule
1651 # schedule: "0 0 1 */4 *"
1652 # -- base64 encoded PEM values for the ExternalWorkload CA certificate and private key.
1653 ca:
1654 # -- Optional CA cert. If it is provided, it will be used by the 'cronJob' method to
1655 # generate all other certificates. Otherwise, an ephemeral CA is generated.
1656 cert: ""
1657 # -- Optional CA private key. If it is provided, it will be used by the 'cronJob' method to
1658 # generate all other certificates. Otherwise, an ephemeral CA is generated.
1659 key: ""
1660 # -- base64 encoded PEM values for the clustermesh-apiserver server certificate and private key.
1661 # Used if 'auto' is not enabled.
1662 server:
1663 cert: ""
1664 key: ""
1665 # -- base64 encoded PEM values for the clustermesh-apiserver admin certificate and private key.
1666 # Used if 'auto' is not enabled.
1667 admin:
1668 cert: ""
1669 key: ""
1670 # -- base64 encoded PEM values for the clustermesh-apiserver client certificate and private key.
1671 # Used if 'auto' is not enabled.
1672 client:
1673 cert: ""
1674 key: ""
1675 # -- base64 encoded PEM values for the clustermesh-apiserver remote cluster certificate and private key.
1676 # Used if 'auto' is not enabled.
1677 remote:
1678 cert: ""
1679 key: ""
1680
1681# -- Configure external workloads support
1682externalWorkloads:
1683 # -- Enable support for external workloads, such as VMs (false by default).
1684 enabled: false
1685
1686# -- Configure cgroup related configuration
1687cgroup:
1688 autoMount:
1689 # -- Enable auto mount of cgroup2 filesystem.
1690 # When `autoMount` is enabled, cgroup2 filesystem is mounted at
1691 # `cgroup.hostRoot` path on the underlying host and inside the cilium agent pod.
1692 # If users disable `autoMount`, it's expected that users have mounted
1693 # cgroup2 filesystem at the specified `cgroup.hostRoot` volume, and then the
1694 # volume will be mounted inside the cilium agent pod at the same path.
1695 enabled: true
1696 # -- Configure cgroup root where cgroup2 filesystem is mounted on the host (see also: `cgroup.autoMount`)
1697 hostRoot: /run/cilium/cgroupv2