mirror of
https://github.com/edgelesssys/constellation.git
synced 2024-12-28 00:49:26 -05:00
f649219cbf
* bump cilium helm charts * integrate cilium strict mode v2
945 lines
36 KiB
YAML
945 lines
36 KiB
YAML
{{- if and (.Values.agent) (not .Values.preflight.enabled) }}
|
|
{{- /* Default values with backwards compatibility */ -}}
|
|
{{- $defaultEnableCnpStatusUpdates := "true" -}}
|
|
{{- $defaultBpfMapDynamicSizeRatio := 0.0 -}}
|
|
{{- $defaultBpfMasquerade := "false" -}}
|
|
{{- $defaultBpfClockProbe := "false" -}}
|
|
{{- $defaultBpfTProxy := "false" -}}
|
|
{{- $defaultIPAM := "cluster-pool" -}}
|
|
{{- $defaultOperatorApiServeAddr := "localhost:9234" -}}
|
|
{{- $defaultBpfCtTcpMax := 524288 -}}
|
|
{{- $defaultBpfCtAnyMax := 262144 -}}
|
|
{{- $enableIdentityMark := "true" -}}
|
|
{{- $fragmentTracking := "true" -}}
|
|
{{- $crdWaitTimeout := "5m" -}}
|
|
{{- $defaultKubeProxyReplacement := "disabled" -}}
|
|
{{- $azureUsePrimaryAddress := "true" -}}
|
|
|
|
{{- /* Default values when 1.8 was initially deployed */ -}}
|
|
{{- if semverCompare ">=1.8" (default "1.8" .Values.upgradeCompatibility) -}}
|
|
{{- $defaultEnableCnpStatusUpdates = "false" -}}
|
|
{{- $defaultBpfMapDynamicSizeRatio = 0.0025 -}}
|
|
{{- $defaultBpfMasquerade = "true" -}}
|
|
{{- $defaultBpfClockProbe = "true" -}}
|
|
{{- $defaultIPAM = "cluster-pool" -}}
|
|
{{- if .Values.ipv4.enabled }}
|
|
{{- $defaultOperatorApiServeAddr = "127.0.0.1:9234" -}}
|
|
{{- else -}}
|
|
{{- $defaultOperatorApiServeAddr = "[::1]:9234" -}}
|
|
{{- end }}
|
|
{{- $defaultBpfCtTcpMax = 0 -}}
|
|
{{- $defaultBpfCtAnyMax = 0 -}}
|
|
{{- $defaultKubeProxyReplacement = "probe" -}}
|
|
{{- end -}}
|
|
|
|
{{- /* Default values when 1.9 was initially deployed */ -}}
|
|
{{- if semverCompare ">=1.9" (default "1.9" .Values.upgradeCompatibility) -}}
|
|
{{- $defaultKubeProxyReplacement = "probe" -}}
|
|
{{- end -}}
|
|
|
|
{{- /* Default values when 1.10 was initially deployed */ -}}
|
|
{{- if semverCompare ">=1.10" (default "1.10" .Values.upgradeCompatibility) -}}
|
|
{{- /* Needs to be explicitly disabled because it was enabled on all versions >=v1.8 above. */ -}}
|
|
{{- $defaultBpfMasquerade = "false" -}}
|
|
{{- end -}}
|
|
|
|
{{- /* Default values when 1.12 was initially deployed */ -}}
|
|
{{- if semverCompare ">=1.12" (default "1.12" .Values.upgradeCompatibility) -}}
|
|
{{- if .Values.azure.enabled }}
|
|
{{- $azureUsePrimaryAddress = "false" -}}
|
|
{{- end }}
|
|
{{- $defaultKubeProxyReplacement = "disabled" -}}
|
|
{{- end -}}
|
|
|
|
{{- $ipam := (coalesce .Values.ipam.mode $defaultIPAM) -}}
|
|
{{- $bpfCtTcpMax := (coalesce .Values.bpf.ctTcpMax $defaultBpfCtTcpMax) -}}
|
|
{{- $bpfCtAnyMax := (coalesce .Values.bpf.ctAnyMax $defaultBpfCtAnyMax) -}}
|
|
{{- $kubeProxyReplacement := (coalesce .Values.kubeProxyReplacement $defaultKubeProxyReplacement) -}}
|
|
{{- $azureUsePrimaryAddress = (coalesce .Values.azure.usePrimaryAddress $azureUsePrimaryAddress) -}}
|
|
{{- $socketLB := (coalesce .Values.socketLB .Values.hostServices) -}}
|
|
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: cilium-config
|
|
namespace: {{ .Release.Namespace }}
|
|
data:
|
|
{{- if .Values.etcd.enabled }}
|
|
# The kvstore configuration is used to enable use of a kvstore for state
|
|
# storage. This can either be provided with an external kvstore or with the
|
|
# help of cilium-etcd-operator which operates an etcd cluster automatically.
|
|
kvstore: etcd
|
|
{{- if .Values.etcd.k8sService }}
|
|
kvstore-opt: '{"etcd.config": "/var/lib/etcd-config/etcd.config", "etcd.operator": "true"}'
|
|
{{- else }}
|
|
kvstore-opt: '{"etcd.config": "/var/lib/etcd-config/etcd.config"}'
|
|
{{- end }}
|
|
|
|
# This etcd-config contains the etcd endpoints of your cluster. If you use
|
|
# TLS please make sure you follow the tutorial in https://cilium.link/etcd-config
|
|
etcd-config: |-
|
|
---
|
|
endpoints:
|
|
{{- if .Values.etcd.managed }}
|
|
- https://cilium-etcd-client.{{ .Release.Namespace }}.svc:2379
|
|
{{- else }}
|
|
{{- range .Values.etcd.endpoints }}
|
|
- {{ . }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- if or .Values.etcd.ssl .Values.etcd.managed }}
|
|
trusted-ca-file: '/var/lib/etcd-secrets/etcd-client-ca.crt'
|
|
key-file: '/var/lib/etcd-secrets/etcd-client.key'
|
|
cert-file: '/var/lib/etcd-secrets/etcd-client.crt'
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{- if hasKey .Values "conntrackGCInterval" }}
|
|
conntrack-gc-interval: {{ .Values.conntrackGCInterval | quote }}
|
|
{{- end }}
|
|
|
|
{{- if hasKey .Values "disableEnvoyVersionCheck" }}
|
|
disable-envoy-version-check: {{ .Values.disableEnvoyVersionCheck | quote }}
|
|
{{- end }}
|
|
|
|
# Identity allocation mode selects how identities are shared between cilium
|
|
# nodes by setting how they are stored. The options are "crd" or "kvstore".
|
|
# - "crd" stores identities in kubernetes as CRDs (custom resource definition).
|
|
# These can be queried with:
|
|
# kubectl get ciliumid
|
|
# - "kvstore" stores identities in an etcd kvstore, that is
|
|
# configured below. Cilium versions before 1.6 supported only the kvstore
|
|
# backend. Upgrades from these older cilium versions should continue using
|
|
# the kvstore by commenting out the identity-allocation-mode below, or
|
|
# setting it to "kvstore".
|
|
identity-allocation-mode: {{ .Values.identityAllocationMode }}
|
|
{{- if hasKey .Values "identityHeartbeatTimeout" }}
|
|
identity-heartbeat-timeout: "{{ .Values.identityHeartbeatTimeout }}"
|
|
{{- end }}
|
|
{{- if hasKey .Values "identityGCInterval" }}
|
|
identity-gc-interval: "{{ .Values.identityGCInterval }}"
|
|
{{- end }}
|
|
{{- if hasKey .Values.operator "endpointGCInterval" }}
|
|
cilium-endpoint-gc-interval: "{{ .Values.operator.endpointGCInterval }}"
|
|
{{- end }}
|
|
|
|
{{- if hasKey .Values.operator "nodeGCInterval" }}
|
|
nodes-gc-interval: "{{ .Values.operator.nodeGCInterval | default "0s" }}"
|
|
{{- end }}
|
|
|
|
{{- if hasKey .Values "disableEndpointCRD" }}
|
|
# Disable the usage of CiliumEndpoint CRD
|
|
disable-endpoint-crd: "{{ .Values.disableEndpointCRD }}"
|
|
{{- end }}
|
|
|
|
{{- if hasKey .Values "identityChangeGracePeriod" }}
|
|
# identity-change-grace-period is the grace period that needs to pass
|
|
# before an endpoint that has changed its identity will start using
|
|
# that new identity. During the grace period, the new identity has
|
|
# already been allocated and other nodes in the cluster have a chance
|
|
# to whitelist the new upcoming identity of the endpoint.
|
|
identity-change-grace-period: {{ default "5s" .Values.identityChangeGracePeriod | quote }}
|
|
{{- end }}
|
|
|
|
{{- if hasKey .Values "labels" }}
|
|
# To include or exclude matched resources from cilium identity evaluation
|
|
labels: {{ .Values.labels | quote }}
|
|
{{- end }}
|
|
|
|
# If you want to run cilium in debug mode change this value to true
|
|
debug: {{ .Values.debug.enabled | quote }}
|
|
|
|
{{- if hasKey .Values.debug "verbose" }}
|
|
debug-verbose: "{{ .Values.debug.verbose }}"
|
|
{{- end }}
|
|
|
|
{{- if ne (int .Values.healthPort) 9879 }}
|
|
# Set the TCP port for the agent health status API. This is not the port used
|
|
# for cilium-health.
|
|
agent-health-port: "{{ .Values.healthPort }}"
|
|
{{- end }}
|
|
|
|
{{- if hasKey .Values "clusterHealthPort" }}
|
|
# Set the TCP port for the agent health API. This port is used for cilium-health.
|
|
cluster-health-port: "{{ .Values.clusterHealthPort }}"
|
|
{{- end }}
|
|
|
|
{{- if hasKey .Values "policyEnforcementMode" }}
|
|
# The agent can be put into the following three policy enforcement modes
|
|
# default, always and never.
|
|
# https://docs.cilium.io/en/latest/policy/intro/#policy-enforcement-modes
|
|
enable-policy: "{{ lower .Values.policyEnforcementMode }}"
|
|
{{- end }}
|
|
|
|
{{- if .Values.prometheus.enabled }}
|
|
# If you want metrics enabled in all of your Cilium agents, set the port for
|
|
# which the Cilium agents will have their metrics exposed.
|
|
# This option deprecates the "prometheus-serve-addr" in the
|
|
# "cilium-metrics-config" ConfigMap
|
|
# NOTE that this will open the port on ALL nodes where Cilium pods are
|
|
# scheduled.
|
|
prometheus-serve-addr: ":{{ .Values.prometheus.port }}"
|
|
# Port to expose Envoy metrics (e.g. "9964"). Envoy metrics listener will be disabled if this
|
|
# field is not set.
|
|
{{- if .Values.proxy.prometheus.enabled }}
|
|
proxy-prometheus-port: "{{ .Values.proxy.prometheus.port }}"
|
|
{{- end }}
|
|
{{- if .Values.prometheus.metrics }}
|
|
# Metrics that should be enabled or disabled from the default metric
|
|
# list. (+metric_foo to enable metric_foo , -metric_bar to disable
|
|
# metric_bar).
|
|
metrics: {{- range .Values.prometheus.metrics }}
|
|
{{ . }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{- if .Values.operator.prometheus.enabled }}
|
|
# If you want metrics enabled in cilium-operator, set the port for
|
|
# which the Cilium Operator will have their metrics exposed.
|
|
# NOTE that this will open the port on the nodes where Cilium operator pod
|
|
# is scheduled.
|
|
operator-prometheus-serve-addr: ":{{ .Values.operator.prometheus.port }}"
|
|
enable-metrics: "true"
|
|
{{- end }}
|
|
|
|
{{- if .Values.operator.skipCRDCreation }}
|
|
skip-crd-creation: "true"
|
|
{{- end }}
|
|
|
|
{{- if .Values.ingressController.enabled }}
|
|
enable-ingress-controller: "true"
|
|
enable-envoy-config: "true"
|
|
enforce-ingress-https: {{ .Values.ingressController.enforceHttps | quote }}
|
|
enable-ingress-secrets-sync: {{ .Values.ingressController.secretsNamespace.sync | quote }}
|
|
ingress-secrets-namespace: {{ .Values.ingressController.secretsNamespace.name | quote }}
|
|
{{- end }}
|
|
|
|
# Enable IPv4 addressing. If enabled, all endpoints are allocated an IPv4
|
|
# address.
|
|
enable-ipv4: {{ .Values.ipv4.enabled | quote }}
|
|
|
|
# Enable IPv6 addressing. If enabled, all endpoints are allocated an IPv6
|
|
# address.
|
|
enable-ipv6: {{ .Values.ipv6.enabled | quote }}
|
|
|
|
{{- if .Values.cleanState }}
|
|
# If a serious issue occurs during Cilium startup, this
|
|
# invasive option may be set to true to remove all persistent
|
|
# state. Endpoints will not be restored using knowledge from a
|
|
# prior Cilium run, so they may receive new IP addresses upon
|
|
# restart. This also triggers clean-cilium-bpf-state.
|
|
clean-cilium-state: "true"
|
|
{{- end }}
|
|
|
|
{{- if .Values.cleanBpfState }}
|
|
# If you want to clean cilium BPF state, set this to true;
|
|
# Removes all BPF maps from the filesystem. Upon restart,
|
|
# endpoints are restored with the same IP addresses, however
|
|
# any ongoing connections may be disrupted briefly.
|
|
# Loadbalancing decisions will be reset, so any ongoing
|
|
# connections via a service may be loadbalanced to a different
|
|
# backend after restart.
|
|
clean-cilium-bpf-state: "true"
|
|
{{- end }}
|
|
|
|
{{- if hasKey .Values.cni "customConf" }}
|
|
# Users who wish to specify their own custom CNI configuration file must set
|
|
# custom-cni-conf to "true", otherwise Cilium may overwrite the configuration.
|
|
custom-cni-conf: "{{ .Values.cni.customConf }}"
|
|
{{- end }}
|
|
|
|
{{- if hasKey .Values "bpfClockProbe" }}
|
|
enable-bpf-clock-probe: {{ .Values.bpfClockProbe | quote }}
|
|
{{- else if eq $defaultBpfClockProbe "true" }}
|
|
enable-bpf-clock-probe: {{ $defaultBpfClockProbe | quote }}
|
|
{{- end }}
|
|
|
|
{{- if hasKey .Values.bpf "tproxy" }}
|
|
enable-bpf-tproxy: {{ .Values.bpf.tproxy | quote }}
|
|
{{- else if eq $defaultBpfTProxy "true" }}
|
|
enable-bpf-tproxy: {{ $defaultBpfTProxy | quote }}
|
|
{{- end }}
|
|
# If you want cilium monitor to aggregate tracing for packets, set this level
|
|
# to "low", "medium", or "maximum". The higher the level, the less packets
|
|
# that will be seen in monitor output.
|
|
monitor-aggregation: {{ .Values.bpf.monitorAggregation }}
|
|
|
|
# The monitor aggregation interval governs the typical time between monitor
|
|
# notification events for each allowed connection.
|
|
#
|
|
# Only effective when monitor aggregation is set to "medium" or higher.
|
|
monitor-aggregation-interval: {{ .Values.bpf.monitorInterval }}
|
|
|
|
# The monitor aggregation flags determine which TCP flags which, upon the
|
|
# first observation, cause monitor notifications to be generated.
|
|
#
|
|
# Only effective when monitor aggregation is set to "medium" or higher.
|
|
monitor-aggregation-flags: {{ .Values.bpf.monitorFlags }}
|
|
|
|
|
|
|
|
|
|
{{- if hasKey .Values.bpf "mapDynamicSizeRatio" }}
|
|
# Specifies the ratio (0.0-1.0) of total system memory to use for dynamic
|
|
# sizing of the TCP CT, non-TCP CT, NAT and policy BPF maps.
|
|
bpf-map-dynamic-size-ratio: {{ .Values.bpf.mapDynamicSizeRatio | quote }}
|
|
{{- else if ne $defaultBpfMapDynamicSizeRatio 0.0 }}
|
|
# Specifies the ratio (0.0-1.0) of total system memory to use for dynamic
|
|
# sizing of the TCP CT, non-TCP CT, NAT and policy BPF maps.
|
|
bpf-map-dynamic-size-ratio: {{ $defaultBpfMapDynamicSizeRatio | quote }}
|
|
{{- end }}
|
|
|
|
{{- if hasKey .Values.bpf "hostLegacyRouting" }}
|
|
enable-host-legacy-routing: {{ .Values.bpf.hostLegacyRouting | quote }}
|
|
{{- else if hasKey .Values.bpf "hostRouting" }}
|
|
# DEPRECATED: this block should be removed in 1.13
|
|
enable-host-legacy-routing: {{ .Values.bpf.hostRouting | quote }}
|
|
{{- end }}
|
|
|
|
{{- if or $bpfCtTcpMax $bpfCtAnyMax }}
|
|
# bpf-ct-global-*-max specifies the maximum number of connections
|
|
# supported across all endpoints, split by protocol: tcp or other. One pair
|
|
# of maps uses these values for IPv4 connections, and another pair of maps
|
|
# use these values for IPv6 connections.
|
|
#
|
|
# If these values are modified, then during the next Cilium startup the
|
|
# tracking of ongoing connections may be disrupted. As a result, reply
|
|
# packets may be dropped and the load-balancing decisions for established
|
|
# connections may change.
|
|
#
|
|
# For users upgrading from Cilium 1.2 or earlier, to minimize disruption
|
|
# during the upgrade process, set bpf-ct-global-tcp-max to 1000000.
|
|
{{- if $bpfCtTcpMax }}
|
|
bpf-ct-global-tcp-max: {{ $bpfCtTcpMax | quote }}
|
|
{{- end }}
|
|
{{- if $bpfCtAnyMax }}
|
|
bpf-ct-global-any-max: {{ $bpfCtAnyMax | quote }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- if hasKey .Values.bpf "natMax" }}
|
|
# bpf-nat-global-max specified the maximum number of entries in the
|
|
# BPF NAT table.
|
|
bpf-nat-global-max: "{{ .Values.bpf.natMax }}"
|
|
{{- end }}
|
|
{{- if hasKey .Values.bpf "neighMax" }}
|
|
# bpf-neigh-global-max specified the maximum number of entries in the
|
|
# BPF neighbor table.
|
|
bpf-neigh-global-max: "{{ .Values.bpf.neighMax }}"
|
|
{{- end }}
|
|
{{- if hasKey .Values.bpf "policyMapMax" }}
|
|
# bpf-policy-map-max specifies the maximum number of entries in endpoint
|
|
# policy map (per endpoint)
|
|
bpf-policy-map-max: "{{ .Values.bpf.policyMapMax }}"
|
|
{{- end }}
|
|
{{- if hasKey .Values.bpf "lbMapMax" }}
|
|
# bpf-lb-map-max specifies the maximum number of entries in bpf lb service,
|
|
# backend and affinity maps.
|
|
bpf-lb-map-max: "{{ .Values.bpf.lbMapMax }}"
|
|
{{- end }}
|
|
# bpf-lb-bypass-fib-lookup instructs Cilium to enable the FIB lookup bypass
|
|
# optimization for nodeport reverse NAT handling.
|
|
{{- if hasKey .Values.bpf "lbBypassFIBLookup" }}
|
|
bpf-lb-bypass-fib-lookup: {{ .Values.bpf.lbBypassFIBLookup | quote }}
|
|
{{- end }}
|
|
{{- if hasKey .Values.bpf "lbExternalClusterIP" }}
|
|
bpf-lb-external-clusterip: {{ .Values.bpf.lbExternalClusterIP | quote }}
|
|
{{- end }}
|
|
|
|
# Pre-allocation of map entries allows per-packet latency to be reduced, at
|
|
# the expense of up-front memory allocation for the entries in the maps. The
|
|
# default value below will minimize memory usage in the default installation;
|
|
# users who are sensitive to latency may consider setting this to "true".
|
|
#
|
|
# This option was introduced in Cilium 1.4. Cilium 1.3 and earlier ignore
|
|
# this option and behave as though it is set to "true".
|
|
#
|
|
# If this value is modified, then during the next Cilium startup the restore
|
|
# of existing endpoints and tracking of ongoing connections may be disrupted.
|
|
# As a result, reply packets may be dropped and the load-balancing decisions
|
|
# for established connections may change.
|
|
#
|
|
# If this option is set to "false" during an upgrade from 1.3 or earlier to
|
|
# 1.4 or later, then it may cause one-time disruptions during the upgrade.
|
|
preallocate-bpf-maps: "{{ .Values.bpf.preallocateMaps }}"
|
|
|
|
# Regular expression matching compatible Istio sidecar istio-proxy
|
|
# container image names
|
|
sidecar-istio-proxy-image: "{{ .Values.proxy.sidecarImageRegex }}"
|
|
|
|
# Name of the cluster. Only relevant when building a mesh of clusters.
|
|
cluster-name: {{ .Values.cluster.name }}
|
|
|
|
{{- if hasKey .Values.cluster "id" }}
|
|
# Unique ID of the cluster. Must be unique across all conneted clusters and
|
|
# in the range of 1 and 255. Only relevant when building a mesh of clusters.
|
|
cluster-id: "{{ .Values.cluster.id }}"
|
|
{{- end }}
|
|
|
|
# Encapsulation mode for communication between nodes
|
|
# Possible values:
|
|
# - disabled
|
|
# - vxlan (default)
|
|
# - geneve
|
|
{{- if .Values.gke.enabled }}
|
|
tunnel: "disabled"
|
|
enable-endpoint-routes: "true"
|
|
enable-local-node-route: "false"
|
|
{{- else if .Values.aksbyocni.enabled }}
|
|
tunnel: "vxlan"
|
|
{{- else }}
|
|
tunnel: {{ .Values.tunnel | quote }}
|
|
{{- end }}
|
|
|
|
{{- if hasKey .Values "tunnelPort" }}
|
|
tunnel-port: "{{ .Values.tunnelPort }}"
|
|
{{- end }}
|
|
|
|
{{- if .Values.eni.enabled }}
|
|
enable-endpoint-routes: "true"
|
|
auto-create-cilium-node-resource: "true"
|
|
{{- if .Values.eni.updateEC2AdapterLimitViaAPI }}
|
|
update-ec2-adapter-limit-via-api: "true"
|
|
{{- end }}
|
|
{{- if .Values.eni.awsReleaseExcessIPs }}
|
|
aws-release-excess-ips: "true"
|
|
{{- end }}
|
|
{{- if .Values.eni.awsEnablePrefixDelegation }}
|
|
aws-enable-prefix-delegation: "true"
|
|
{{- end }}
|
|
ec2-api-endpoint: {{ .Values.eni.ec2APIEndpoint | quote }}
|
|
eni-tags: {{ .Values.eni.eniTags | toRawJson | quote }}
|
|
subnet-ids-filter: {{ .Values.eni.subnetIDsFilter | quote }}
|
|
subnet-tags-filter: {{ .Values.eni.subnetTagsFilter | quote }}
|
|
instance-tags-filter: {{ .Values.eni.instanceTagsFilter | quote }}
|
|
{{- end }}
|
|
|
|
{{- if .Values.azure.enabled }}
|
|
enable-endpoint-routes: "true"
|
|
auto-create-cilium-node-resource: "true"
|
|
enable-local-node-route: "false"
|
|
{{- if .Values.azure.userAssignedIdentityID }}
|
|
azure-user-assigned-identity-id: {{ .Values.azure.userAssignedIdentityID | quote }}
|
|
{{- end }}
|
|
azure-use-primary-address: {{ $azureUsePrimaryAddress | quote }}
|
|
{{- end }}
|
|
|
|
{{- if .Values.alibabacloud.enabled }}
|
|
enable-endpoint-routes: "true"
|
|
auto-create-cilium-node-resource: "true"
|
|
{{- end }}
|
|
|
|
{{- if hasKey .Values "l7Proxy" }}
|
|
# Enables L7 proxy for L7 policy enforcement and visibility
|
|
enable-l7-proxy: {{ .Values.l7Proxy | quote }}
|
|
{{- end }}
|
|
|
|
{{- if ne .Values.cni.chainingMode "none" }}
|
|
# Enable chaining with another CNI plugin
|
|
#
|
|
# Supported modes:
|
|
# - none
|
|
# - aws-cni
|
|
# - flannel
|
|
# - generic-veth
|
|
# - portmap (Enables HostPort support for Cilium)
|
|
cni-chaining-mode: {{ .Values.cni.chainingMode }}
|
|
|
|
{{- if hasKey .Values "enableIdentityMark" }}
|
|
enable-identity-mark: {{ .Values.enableIdentityMark | quote }}
|
|
{{- else if (ne $enableIdentityMark "true") }}
|
|
enable-identity-mark: "false"
|
|
{{- end }}
|
|
{{- if ne .Values.cni.chainingMode "portmap" }}
|
|
# Disable the PodCIDR route to the cilium_host interface as it is not
|
|
# required. While chaining, it is the responsibility of the underlying plugin
|
|
# to enable routing.
|
|
enable-local-node-route: "false"
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
enable-ipv4-masquerade: {{ .Values.enableIPv4Masquerade | quote }}
|
|
enable-ipv6-masquerade: {{ .Values.enableIPv6Masquerade | quote }}
|
|
|
|
{{- if hasKey .Values.bpf "masquerade" }}
|
|
enable-bpf-masquerade: {{ .Values.bpf.masquerade | quote }}
|
|
{{- else if eq $defaultBpfMasquerade "true" }}
|
|
enable-bpf-masquerade: {{ $defaultBpfMasquerade | quote }}
|
|
{{- end }}
|
|
{{- if hasKey .Values "egressMasqueradeInterfaces" }}
|
|
egress-masquerade-interfaces: {{ .Values.egressMasqueradeInterfaces }}
|
|
{{- end }}
|
|
{{- if and .Values.ipMasqAgent .Values.ipMasqAgent.enabled }}
|
|
enable-ip-masq-agent: "true"
|
|
{{- end }}
|
|
|
|
{{- if .Values.encryption.enabled }}
|
|
{{- if eq .Values.encryption.type "ipsec" }}
|
|
enable-ipsec: {{ .Values.encryption.enabled | quote }}
|
|
|
|
{{- if and .Values.encryption.ipsec.mountPath .Values.encryption.ipsec.keyFile }}
|
|
ipsec-key-file: {{ .Values.encryption.ipsec.mountPath }}/{{ .Values.encryption.ipsec.keyFile }}
|
|
{{- else }}
|
|
ipsec-key-file: {{ .Values.encryption.mountPath }}/{{ .Values.encryption.keyFile }}
|
|
{{- end }}
|
|
{{- if .Values.encryption.ipsec.interface }}
|
|
encrypt-interface: {{ .Values.encryption.ipsec.interface }}
|
|
{{- else if .Values.encryption.interface }}
|
|
encrypt-interface: {{ .Values.encryption.interface }}
|
|
{{- end }}
|
|
|
|
{{- if .Values.encryption.nodeEncryption }}
|
|
encrypt-node: {{ .Values.encryption.nodeEncryption | quote }}
|
|
{{- end }}
|
|
{{- else if eq .Values.encryption.type "wireguard" }}
|
|
enable-wireguard: {{ .Values.encryption.enabled | quote }}
|
|
{{- if .Values.encryption.wireguard.userspaceFallback }}
|
|
enable-wireguard-userspace-fallback: {{ .Values.encryption.wireguard.userspaceFallback | quote }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{- if .Values.strictModeCIDR }}
|
|
strict-mode-cidr: {{ .Values.strictModeCIDR | quote }}
|
|
{{- end }}
|
|
enable-xt-socket-fallback: {{ .Values.enableXTSocketFallback | quote }}
|
|
install-iptables-rules: {{ .Values.installIptablesRules | quote }}
|
|
{{- if or (.Values.azure.enabled) (.Values.eni.enabled) (.Values.gke.enabled) (ne .Values.cni.chainingMode "none") }}
|
|
install-no-conntrack-iptables-rules: "false"
|
|
{{- else }}
|
|
install-no-conntrack-iptables-rules: {{ .Values.installNoConntrackIptablesRules | quote }}
|
|
{{- end}}
|
|
|
|
{{- if hasKey .Values "iptablesRandomFully" }}
|
|
iptables-random-fully: {{ .Values.iptablesRandomFully | quote }}
|
|
{{- end }}
|
|
|
|
{{- if hasKey .Values "iptablesLockTimeout" }}
|
|
iptables-lock-timeout: {{ .Values.iptablesLockTimeout | quote }}
|
|
{{- end }}
|
|
|
|
auto-direct-node-routes: {{ .Values.autoDirectNodeRoutes | quote }}
|
|
|
|
{{- if .Values.bandwidthManager }}
|
|
{{- if typeIs "bool" .Values.bandwidthManager }}
|
|
# DEPRECATED: this block should be removed in 1.13
|
|
enable-bandwidth-manager: {{ .Values.bandwidthManager | quote }}
|
|
{{- else }}
|
|
{{- if .Values.bandwidthManager.enabled }}
|
|
enable-bandwidth-manager: {{ .Values.bandwidthManager.enabled | quote }}
|
|
enable-bbr: {{ .Values.bandwidthManager.bbr | quote }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{- if hasKey .Values "localRedirectPolicy" }}
|
|
enable-local-redirect-policy: {{ .Values.localRedirectPolicy | quote }}
|
|
{{- end }}
|
|
|
|
{{- if hasKey .Values "ipv4NativeRoutingCIDR" }}
|
|
ipv4-native-routing-cidr: {{ .Values.ipv4NativeRoutingCIDR }}
|
|
{{- end }}
|
|
|
|
{{- if hasKey .Values "ipv6NativeRoutingCIDR" }}
|
|
ipv6-native-routing-cidr: {{ .Values.ipv6NativeRoutingCIDR }}
|
|
{{- end }}
|
|
|
|
{{- if hasKey .Values "fragmentTracking" }}
|
|
enable-ipv4-fragment-tracking: {{ .Values.fragmentTracking | quote }}
|
|
{{- else if (ne $fragmentTracking "true") }}
|
|
enable-ipv4-fragment-tracking: "false"
|
|
{{- end }}
|
|
|
|
{{- if and .Values.hostFirewall .Values.hostFirewall.enabled }}
|
|
enable-host-firewall: {{ .Values.hostFirewall.enabled | quote }}
|
|
{{- end}}
|
|
|
|
{{- if hasKey .Values "devices" }}
|
|
# List of devices used to attach bpf_host.o (implements BPF NodePort,
|
|
# host-firewall and BPF masquerading)
|
|
devices: {{ join " " .Values.devices | quote }}
|
|
{{- end }}
|
|
|
|
{{- if .Values.enableRuntimeDeviceDetection }}
|
|
enable-runtime-device-detection: "true"
|
|
{{- end }}
|
|
|
|
kube-proxy-replacement: {{ $kubeProxyReplacement | quote }}
|
|
|
|
{{- if ne $kubeProxyReplacement "disabled" }}
|
|
kube-proxy-replacement-healthz-bind-address: {{ default "" .Values.kubeProxyReplacementHealthzBindAddr | quote}}
|
|
{{- end }}
|
|
|
|
{{- if $socketLB }}
|
|
{{- if hasKey $socketLB "enabled" }}
|
|
bpf-lb-sock: {{ $socketLB.enabled | quote }}
|
|
{{- end }}
|
|
{{- if hasKey $socketLB "hostNamespaceOnly" }}
|
|
bpf-lb-sock-hostns-only: {{ $socketLB.hostNamespaceOnly | quote }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{- if hasKey .Values "hostServices" }}
|
|
{{- if ne .Values.hostServices.protocols "tcp,udp" }}
|
|
host-reachable-services-protos: {{ .Values.hostServices.protocols }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- if hasKey .Values "hostPort" }}
|
|
{{- if eq $kubeProxyReplacement "partial" }}
|
|
enable-host-port: {{ .Values.hostPort.enabled | quote }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- if hasKey .Values "externalIPs" }}
|
|
{{- if eq $kubeProxyReplacement "partial" }}
|
|
enable-external-ips: {{ .Values.externalIPs.enabled | quote }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- if hasKey .Values "nodePort" }}
|
|
{{- if eq $kubeProxyReplacement "partial" }}
|
|
enable-node-port: {{ .Values.nodePort.enabled | quote }}
|
|
{{- end }}
|
|
{{- if hasKey .Values.nodePort "range" }}
|
|
node-port-range: {{ .Values.nodePort.range | quote }}
|
|
{{- end }}
|
|
{{- if hasKey .Values.nodePort "directRoutingDevice" }}
|
|
direct-routing-device: {{ .Values.nodePort.directRoutingDevice | quote }}
|
|
{{- end }}
|
|
{{- if hasKey .Values.nodePort "enableHealthCheck" }}
|
|
enable-health-check-nodeport: {{ .Values.nodePort.enableHealthCheck | quote}}
|
|
{{- end }}
|
|
node-port-bind-protection: {{ .Values.nodePort.bindProtection | quote }}
|
|
enable-auto-protect-node-port-range: {{ .Values.nodePort.autoProtectPortRange | quote }}
|
|
{{- end }}
|
|
{{- if hasKey .Values "loadBalancer" }}
|
|
{{- if .Values.loadBalancer.standalone }}
|
|
datapath-mode: lb-only
|
|
{{- end }}
|
|
{{- if hasKey .Values.loadBalancer "mode" }}
|
|
bpf-lb-mode: {{ .Values.loadBalancer.mode | quote }}
|
|
{{- end }}
|
|
{{- if hasKey .Values.loadBalancer "algorithm" }}
|
|
bpf-lb-algorithm: {{ .Values.loadBalancer.algorithm | quote }}
|
|
{{- end }}
|
|
{{- if hasKey .Values.loadBalancer "acceleration" }}
|
|
bpf-lb-acceleration: {{ .Values.loadBalancer.acceleration | quote }}
|
|
{{- end }}
|
|
{{- if hasKey .Values.loadBalancer "dsrDispatch" }}
|
|
bpf-lb-dsr-dispatch: {{ .Values.loadBalancer.dsrDispatch | quote }}
|
|
{{- end }}
|
|
{{- if hasKey .Values.loadBalancer "serviceTopology" }}
|
|
enable-service-topology: {{ .Values.loadBalancer.serviceTopology | quote }}
|
|
{{- end }}
|
|
|
|
{{- end }}
|
|
{{- if hasKey .Values.maglev "tableSize" }}
|
|
bpf-lb-maglev-table-size: {{ .Values.maglev.tableSize | quote}}
|
|
{{- end }}
|
|
{{- if hasKey .Values.maglev "hashSeed" }}
|
|
bpf-lb-maglev-hash-seed: {{ .Values.maglev.hashSeed | quote}}
|
|
{{- end }}
|
|
{{- if .Values.sessionAffinity }}
|
|
enable-session-affinity: {{ .Values.sessionAffinity | quote }}
|
|
{{- end }}
|
|
{{- if .Values.svcSourceRangeCheck }}
|
|
enable-svc-source-range-check: {{ .Values.svcSourceRangeCheck | quote }}
|
|
{{- end }}
|
|
|
|
{{- if hasKey .Values "l2NeighDiscovery" }}
|
|
{{- if hasKey .Values.l2NeighDiscovery "enabled" }}
|
|
enable-l2-neigh-discovery: {{ .Values.l2NeighDiscovery.enabled | quote }}
|
|
{{- end }}
|
|
{{- if hasKey .Values.l2NeighDiscovery "refreshPeriod" }}
|
|
arping-refresh-period: {{ .Values.l2NeighDiscovery.refreshPeriod | quote }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{- if and .Values.pprof .Values.pprof.enabled }}
|
|
pprof: {{ .Values.pprof.enabled | quote }}
|
|
{{- end }}
|
|
{{- if .Values.logSystemLoad }}
|
|
log-system-load: {{ .Values.logSystemLoad | quote }}
|
|
{{- end }}
|
|
{{- if .Values.logOptions }}
|
|
log-opt: {{ .Values.logOptions | toJson | quote }}
|
|
{{- end }}
|
|
{{- if and .Values.sockops .Values.sockops.enabled }}
|
|
sockops-enable: {{ .Values.sockops.enabled | quote }}
|
|
{{- end }}
|
|
{{- if hasKey .Values.k8s "requireIPv4PodCIDR" }}
|
|
k8s-require-ipv4-pod-cidr: {{ .Values.k8s.requireIPv4PodCIDR | quote }}
|
|
{{- end }}
|
|
{{- if hasKey .Values.k8s "requireIPv6PodCIDR" }}
|
|
k8s-require-ipv6-pod-cidr: {{ .Values.k8s.requireIPv6PodCIDR | quote }}
|
|
{{- end }}
|
|
{{- if .Values.endpointStatus.enabled }}
|
|
endpoint-status: {{ required "endpointStatus.status required: policy, health, controllers, logs and / or state. For 2 or more options use a comma: \"policy, health\"" .Values.endpointStatus.status | quote }}
|
|
{{- end }}
|
|
{{- if and .Values.endpointRoutes .Values.endpointRoutes.enabled }}
|
|
enable-endpoint-routes: {{ .Values.endpointRoutes.enabled | quote }}
|
|
{{- end }}
|
|
{{- if .Values.cni.configMap }}
|
|
read-cni-conf: {{ .Values.cni.confFileMountPath }}/{{ .Values.cni.configMapKey }}
|
|
write-cni-conf-when-ready: {{ .Values.cni.hostConfDirMountPath }}/05-cilium.conflist
|
|
{{- else if .Values.cni.readCniConf }}
|
|
read-cni-conf: {{ .Values.cni.readCniConf }}
|
|
{{- end }}
|
|
{{- if .Values.kubeConfigPath }}
|
|
k8s-kubeconfig-path: {{ .Values.kubeConfigPath | quote }}
|
|
{{- end }}
|
|
{{- if and ( .Values.endpointHealthChecking.enabled ) (or (eq .Values.cni.chainingMode "portmap") (eq .Values.cni.chainingMode "none")) }}
|
|
enable-endpoint-health-checking: "true"
|
|
{{- else}}
|
|
# Disable health checking, when chaining mode is not set to portmap or none
|
|
enable-endpoint-health-checking: "false"
|
|
{{- end }}
|
|
{{- if hasKey .Values "healthChecking" }}
|
|
enable-health-checking: {{ .Values.healthChecking | quote }}
|
|
{{- end }}
|
|
{{- if or .Values.wellKnownIdentities.enabled .Values.etcd.managed }}
|
|
enable-well-known-identities: "true"
|
|
{{- else }}
|
|
enable-well-known-identities: "false"
|
|
{{- end }}
|
|
enable-remote-node-identity: {{ .Values.remoteNodeIdentity | quote }}
|
|
|
|
{{- if hasKey .Values "synchronizeK8sNodes" }}
|
|
synchronize-k8s-nodes: {{ .Values.synchronizeK8sNodes | quote }}
|
|
{{- end }}
|
|
|
|
{{- if hasKey .Values "policyAuditMode" }}
|
|
policy-audit-mode: {{ .Values.policyAuditMode | quote }}
|
|
{{- end }}
|
|
|
|
{{- if ne $defaultOperatorApiServeAddr "localhost:9234" }}
|
|
operator-api-serve-addr: {{ $defaultOperatorApiServeAddr | quote }}
|
|
{{- end }}
|
|
|
|
{{- if .Values.hubble.enabled }}
|
|
# Enable Hubble gRPC service.
|
|
enable-hubble: {{ .Values.hubble.enabled | quote }}
|
|
# UNIX domain socket for Hubble server to listen to.
|
|
hubble-socket-path: {{ .Values.hubble.socketPath | quote }}
|
|
{{- if hasKey .Values.hubble "eventQueueSize" }}
|
|
# Buffer size of the channel for Hubble to receive monitor events. If this field is not set,
|
|
# the buffer size is set to the default monitor queue size.
|
|
hubble-event-queue-size: {{ .Values.hubble.eventQueueSize | quote }}
|
|
{{- end }}
|
|
{{- if hasKey .Values.hubble "flowBufferSize" }}
|
|
# DEPRECATED: this block should be removed in 1.11
|
|
hubble-flow-buffer-size: {{ .Values.hubble.flowBufferSize | quote }}
|
|
{{- end }}
|
|
{{- if hasKey .Values.hubble "eventBufferCapacity" }}
|
|
# Capacity of the buffer to store recent events.
|
|
hubble-event-buffer-capacity: {{ .Values.hubble.eventBufferCapacity | quote }}
|
|
{{- end }}
|
|
{{- if .Values.hubble.metrics.enabled }}
|
|
# Address to expose Hubble metrics (e.g. ":7070"). Metrics server will be disabled if this
|
|
# field is not set.
|
|
hubble-metrics-server: ":{{ .Values.hubble.metrics.port }}"
|
|
# A space separated list of metrics to enable. See [0] for available metrics.
|
|
#
|
|
# https://github.com/cilium/hubble/blob/master/Documentation/metrics.md
|
|
hubble-metrics: {{- range .Values.hubble.metrics.enabled }}
|
|
{{.}}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- if hasKey .Values.hubble "listenAddress" }}
|
|
# An additional address for Hubble server to listen to (e.g. ":4244").
|
|
hubble-listen-address: {{ .Values.hubble.listenAddress | quote }}
|
|
{{- if .Values.hubble.tls.enabled }}
|
|
hubble-disable-tls: "false"
|
|
hubble-tls-cert-file: /var/lib/cilium/tls/hubble/server.crt
|
|
hubble-tls-key-file: /var/lib/cilium/tls/hubble/server.key
|
|
hubble-tls-client-ca-files: /var/lib/cilium/tls/hubble/client-ca.crt
|
|
{{- else }}
|
|
hubble-disable-tls: "true"
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- if hasKey .Values "disableIptablesFeederRules" }}
|
|
# A space separated list of iptables chains to disable when installing feeder rules.
|
|
disable-iptables-feeder-rules: {{ .Values.disableIptablesFeederRules | join " " | quote }}
|
|
{{- end }}
|
|
{{- if .Values.aksbyocni.enabled }}
|
|
ipam: "cluster-pool"
|
|
{{- else }}
|
|
ipam: {{ $ipam | quote }}
|
|
{{- end }}
|
|
|
|
{{- if or (eq $ipam "cluster-pool") (eq $ipam "cluster-pool-v2beta") }}
|
|
{{- if .Values.ipv4.enabled }}
|
|
{{- if .Values.ipam.operator.clusterPoolIPv4PodCIDRList }}
|
|
cluster-pool-ipv4-cidr: {{ .Values.ipam.operator.clusterPoolIPv4PodCIDRList | join " " | quote }}
|
|
{{- else }}
|
|
cluster-pool-ipv4-cidr: {{ .Values.ipam.operator.clusterPoolIPv4PodCIDR | quote }}
|
|
{{- end }}
|
|
cluster-pool-ipv4-mask-size: {{ .Values.ipam.operator.clusterPoolIPv4MaskSize | quote }}
|
|
{{- end }}
|
|
{{- if .Values.ipv6.enabled }}
|
|
{{- if .Values.ipam.operator.clusterPoolIPv6PodCIDRList }}
|
|
cluster-pool-ipv6-cidr: {{ .Values.ipam.operator.clusterPoolIPv6PodCIDRList | join " " | quote }}
|
|
{{- else }}
|
|
cluster-pool-ipv6-cidr: {{ .Values.ipam.operator.clusterPoolIPv6PodCIDR | quote }}
|
|
{{- end }}
|
|
cluster-pool-ipv6-mask-size: {{ .Values.ipam.operator.clusterPoolIPv6MaskSize | quote }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{- if .Values.enableCnpStatusUpdates }}
|
|
disable-cnp-status-updates: {{ (not .Values.enableCnpStatusUpdates) | quote }}
|
|
{{- else if (eq $defaultEnableCnpStatusUpdates "false") }}
|
|
disable-cnp-status-updates: "true"
|
|
{{- end }}
|
|
|
|
{{- if .Values.egressGateway.enabled }}
|
|
enable-ipv4-egress-gateway: "true"
|
|
{{- end }}
|
|
{{- if .Values.egressGateway.installRoutes }}
|
|
install-egress-gateway-routes: "true"
|
|
{{- end }}
|
|
|
|
{{- if hasKey .Values "vtep" }}
|
|
enable-vtep: {{ .Values.vtep.enabled | quote }}
|
|
{{- if hasKey .Values.vtep "endpoint" }}
|
|
vtep-endpoint: {{ .Values.vtep.endpoint | quote }}
|
|
{{- end }}
|
|
{{- if hasKey .Values.vtep "cidr" }}
|
|
vtep-cidr: {{ .Values.vtep.cidr | quote }}
|
|
{{- end }}
|
|
{{- if hasKey .Values.vtep "mask" }}
|
|
vtep-mask: {{ .Values.vtep.mask | quote }}
|
|
{{- end }}
|
|
{{- if hasKey .Values.vtep "mac" }}
|
|
vtep-mac: {{ .Values.vtep.mac | quote }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{- if .Values.enableK8sEventHandover }}
|
|
enable-k8s-event-handover: "true"
|
|
{{- end }}
|
|
|
|
{{- if hasKey .Values "crdWaitTimeout" }}
|
|
crd-wait-timeout: {{ .Values.crdWaitTimeout | quote }}
|
|
{{- else if ( ne $crdWaitTimeout "5m" ) }}
|
|
crd-wait-timeout: {{ $crdWaitTimeout | quote }}
|
|
{{- end }}
|
|
|
|
{{- if .Values.enableK8sEndpointSlice }}
|
|
enable-k8s-endpoint-slice: {{ .Values.enableK8sEndpointSlice | quote }}
|
|
{{- end }}
|
|
|
|
{{- if hasKey .Values.k8s "serviceProxyName" }}
|
|
# Configure service proxy name for Cilium.
|
|
k8s-service-proxy-name: {{ .Values.k8s.serviceProxyName | quote }}
|
|
{{- end }}
|
|
|
|
{{- if and .Values.customCalls .Values.customCalls.enabled }}
|
|
# Enable tail call hooks for custom eBPF programs.
|
|
enable-custom-calls: {{ .Values.customCalls.enabled | quote }}
|
|
{{- end }}
|
|
|
|
{{- if and .Values.bgp.enabled (and (not .Values.bgp.announce.loadbalancerIP) (not .Values.bgp.announce.podCIDR)) }}
|
|
{{ fail "BGP was enabled, but no announcements were enabled. Please enable one or more announcements." }}
|
|
{{- end }}
|
|
|
|
{{- if and .Values.bgp.enabled .Values.bgp.announce.loadbalancerIP }}
|
|
bgp-announce-lb-ip: {{ .Values.bgp.announce.loadbalancerIP | quote }}
|
|
{{- end }}
|
|
|
|
{{- if and .Values.bgp.enabled .Values.bgp.announce.podCIDR }}
|
|
bgp-announce-pod-cidr: {{ .Values.bgp.announce.podCIDR | quote }}
|
|
{{- end}}
|
|
|
|
{{- if .Values.bgpControlPlane.enabled }}
|
|
enable-bgp-control-plane: "true"
|
|
{{- else }}
|
|
enable-bgp-control-plane: "false"
|
|
{{- end }}
|
|
|
|
{{- if not .Values.securityContext.privileged }}
|
|
procfs: "/host/proc"
|
|
{{- end }}
|
|
|
|
{{- if hasKey .Values.bpf "root" }}
|
|
bpf-root: {{ .Values.bpf.root | quote }}
|
|
{{- end }}
|
|
|
|
{{- if hasKey .Values.cgroup "hostRoot" }}
|
|
cgroup-root: {{ .Values.cgroup.hostRoot | quote }}
|
|
{{- end }}
|
|
|
|
{{- if hasKey .Values.bpf "vlanBypass" }}
|
|
# A space separated list of explicitly allowed vlan id's
|
|
vlan-bpf-bypass: {{ .Values.bpf.vlanBypass | join " " | quote }}
|
|
{{- end }}
|
|
|
|
{{- if .Values.enableCiliumEndpointSlice }}
|
|
enable-cilium-endpoint-slice: "true"
|
|
{{- end }}
|
|
|
|
{{- if hasKey .Values "enableK8sTerminatingEndpoint" }}
|
|
enable-k8s-terminating-endpoint: {{ .Values.enableK8sTerminatingEndpoint | quote }}
|
|
{{- end }}
|
|
|
|
{{- if hasKey .Values "dnsPolicyUnloadOnShutdown" }}
|
|
# Unload DNS policy rules on graceful shutdown
|
|
dns-policy-unload-on-shutdown: {{.Values.dnsPolicyUnloadOnShutdown | quote }}
|
|
{{- end }}
|
|
|
|
{{- if .Values.annotateK8sNode }}
|
|
annotate-k8s-node: "true"
|
|
{{- end }}
|
|
|
|
{{- if .Values.operator.removeNodeTaints }}
|
|
remove-cilium-node-taints: "true"
|
|
{{- end }}
|
|
{{- if .Values.operator.setNodeNetworkStatus }}
|
|
set-cilium-is-up-condition: "true"
|
|
{{- end }}
|
|
|
|
{{- if .Values.operator.unmanagedPodWatcher.restart }}
|
|
unmanaged-pod-watcher-interval: {{ .Values.operator.unmanagedPodWatcher.intervalSeconds | quote }}
|
|
{{- else }}
|
|
unmanaged-pod-watcher-interval: "0"
|
|
{{- end }}
|
|
|
|
{{- if .Values.dnsProxy }}
|
|
{{- if .Values.dnsProxy.dnsRejectResponseCode }}
|
|
tofqdns-dns-reject-response-code: {{ .Values.dnsProxy.dnsRejectResponseCode | quote }}
|
|
{{- end }}
|
|
{{- if hasKey .Values.dnsProxy "enableDnsCompression" }}
|
|
tofqdns-enable-dns-compression: {{ .Values.dnsProxy.enableDnsCompression | quote }}
|
|
{{- end }}
|
|
{{- if .Values.dnsProxy.endpointMaxIpPerHostname }}
|
|
tofqdns-endpoint-max-ip-per-hostname: {{ .Values.dnsProxy.endpointMaxIpPerHostname | quote }}
|
|
{{- end }}
|
|
{{- if .Values.dnsProxy.idleConnectionGracePeriod }}
|
|
tofqdns-idle-connection-grace-period: {{ .Values.dnsProxy.idleConnectionGracePeriod | quote }}
|
|
{{- end }}
|
|
{{- if .Values.dnsProxy.maxDeferredConnectionDeletes }}
|
|
tofqdns-max-deferred-connection-deletes: {{ .Values.dnsProxy.maxDeferredConnectionDeletes | quote }}
|
|
{{- end }}
|
|
{{- if .Values.dnsProxy.minTtl }}
|
|
tofqdns-min-ttl: {{ .Values.dnsProxy.minTtl | quote }}
|
|
{{- end }}
|
|
{{- if .Values.dnsProxy.preCache }}
|
|
tofqdns-pre-cache: {{ .Values.dnsProxy.preCache | quote }}
|
|
{{- end }}
|
|
{{- if .Values.dnsProxy.proxyPort }}
|
|
tofqdns-proxy-port: {{ .Values.dnsProxy.proxyPort | quote }}
|
|
{{- end }}
|
|
{{- if .Values.dnsProxy.proxyResponseMaxDelay }}
|
|
tofqdns-proxy-response-max-delay: {{ .Values.dnsProxy.proxyResponseMaxDelay | quote }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{- if .Values.extraConfig }}
|
|
{{ toYaml .Values.extraConfig | nindent 2 }}
|
|
{{- end }}
|
|
|
|
{{- if hasKey .Values "agentNotReadyTaintKey" }}
|
|
agent-not-ready-taint-key: {{ .Values.agentNotReadyTaintKey | quote }}
|
|
{{- end }}
|
|
|
|
{{- end }}
|