DirectorySecurity AdvisoriesPricing
Sign in
Directory
fluentd logoHELM

fluentd

Helm chart
iamguarded
Last changed
Request a free trial

Contact our team to test out this Helm chart and related images for free. Please also indicate any other images you would like to evaluate.

Overview
Chart tags
Default values
Chart metadata
Images

Tag:
Compare:

1
# This file has been modified by Chainguard, Inc.
2
#
3
# Copyright Chainguard, Inc. All Rights Reserved.
4
# Chainguard, Inc. modifications are subject to the license
5
# available at: https://www.chainguard.dev/legal/software-license-agreement
6
#
7
# Copyright Broadcom, Inc. All Rights Reserved.
8
# SPDX-License-Identifier: APACHE-2.0
9
10
## @section Global parameters
11
## Global Docker image parameters
12
## Please, note that this will override the image parameters, including dependencies, configured to use the global value
13
## Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass
14
15
## @param global.imageRegistry Global Docker image registry
16
## @param global.useImageTags Pull every image by tag and ignore all image digests, including digests set in values. Use this when your registry mirror does not have the chart's default image digests.
17
## @param global.imagePullSecrets Global Docker registry secret names as an array
18
## @param global.defaultStorageClass Global default StorageClass for Persistent Volume(s)
19
## @param global.storageClass DEPRECATED: use global.defaultStorageClass instead
20
##
21
global:
22
imageRegistry: ""
23
useImageTags: false
24
## E.g.
25
## imagePullSecrets:
26
## - myRegistryKeySecretName
27
##
28
imagePullSecrets: []
29
defaultStorageClass: ""
30
storageClass: ""
31
## Security parameters
32
##
33
security:
34
## @param global.security.allowInsecureImages Allows skipping image verification
35
allowInsecureImages: false
36
## Compatibility adaptations for Kubernetes platforms
37
##
38
compatibility:
39
## Compatibility adaptations for Openshift
40
##
41
openshift:
42
## @param global.compatibility.openshift.adaptSecurityContext Adapt the securityContext sections of the deployment to make them compatible with Openshift restricted-v2 SCC: remove runAsUser, runAsGroup and fsGroup and let the platform use their allowed default IDs. Possible values: auto (apply if the detected running cluster is Openshift), force (perform the adaptation always), disabled (do not perform adaptation)
43
##
44
adaptSecurityContext: auto
45
org: ""
46
## @section Common parameters
47
48
## @param kubeVersion Force target Kubernetes version (using Helm capabilities if not set)
49
##
50
kubeVersion: ""
51
## @param nameOverride String to partially override common.names.fullname template (will maintain the release name)
52
##
53
nameOverride: ""
54
## @param fullnameOverride String to fully override common.names.fullname template
55
##
56
fullnameOverride: ""
57
## @param commonAnnotations Annotations to add to all deployed objects
58
##
59
commonAnnotations: {}
60
## @param commonLabels Labels to add to all deployed objects
61
##
62
commonLabels: {}
63
## @param clusterDomain Cluster Domain
64
##
65
clusterDomain: cluster.local
66
## @param extraDeploy Array of extra objects to deploy with the release
67
##
68
extraDeploy: []
69
## Enable diagnostic mode in the deployment
70
##
71
diagnosticMode:
72
## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden)
73
##
74
enabled: false
75
## @param diagnosticMode.command Command to override all containers in the deployment
76
##
77
command:
78
- sleep
79
## @param diagnosticMode.args Args to override all containers in the deployment
80
##
81
args:
82
- infinity
83
## @section Fluentd parameters
84
85
## Iamguarded Fluentd image version
86
## ref: https://hub.docker.com/r/iamguarded/fluentd/tags/
87
## @param image.registry [default: REGISTRY_NAME] Fluentd image registry
88
## @param image.repository [default: REPOSITORY_NAME/fluentd] Fluentd image repository
89
## @skip image.tag Fluentd image tag (immutable tags are recommended)
90
## @param image.pullPolicy Fluentd image pull policy
91
## @param image.pullSecrets Fluentd image pull secrets
92
## @param image.debug Enable image debug mode
93
##
94
image:
95
registry: cgr.dev
96
repository: chainguard-private/fluentd-iamguarded
97
tag: 1.19.4
98
digest: sha256:4b3cac5fc98bf183a9c360ba289659fbec7294fa08013f8f1f7c48483111f6e7
99
## Specify a imagePullPolicy
100
## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
101
##
102
pullPolicy: IfNotPresent
103
## Optionally specify an array of imagePullSecrets.
104
## Secrets must be manually created in the namespace.
105
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
106
##
107
## pullSecrets:
108
## - myRegistryKeySecretName
109
pullSecrets: []
110
## Enable debug mode
111
##
112
debug: false
113
## /var/log readonly
114
## @param varlog.readonly Set /var/log volume mount readOnly
115
##
116
varlog:
117
readonly: true
118
## Forwarder parameters
119
##
120
forwarder:
121
## @param forwarder.enabled Enable forwarder daemonset
122
##
123
enabled: true
124
## @param forwarder.daemonUser Forwarder daemon user and group (set to root by default because it reads from host paths)
125
##
126
daemonUser: root
127
## @param forwarder.daemonGroup Fluentd forwarder daemon system group
128
##
129
daemonGroup: root
130
## @param forwarder.automountServiceAccountToken Mount Service Account token in pod
131
##
132
automountServiceAccountToken: true
133
## @param forwarder.hostAliases Add deployment host aliases
134
## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
135
##
136
hostAliases: []
137
## K8s Security Context for forwarder pods
138
## https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
139
## @param forwarder.podSecurityContext.enabled Enable security context for forwarder pods
140
## @param forwarder.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
141
## @param forwarder.podSecurityContext.sysctls Set kernel settings using the sysctl interface
142
## @param forwarder.podSecurityContext.supplementalGroups Set filesystem extra groups
143
## @param forwarder.podSecurityContext.fsGroup Group ID for forwarder's containers filesystem
144
##
145
podSecurityContext:
146
enabled: true
147
fsGroupChangePolicy: Always
148
sysctls: []
149
supplementalGroups: []
150
fsGroup: 0
151
## K8s Security Context for forwarder container
152
## https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
153
## @param forwarder.containerSecurityContext.enabled Enable security context for the forwarder container
154
## @param forwarder.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
155
## @param forwarder.containerSecurityContext.runAsUser User ID for forwarder's containers
156
## @param forwarder.containerSecurityContext.runAsGroup Group ID for forwarder's containers
157
## @param forwarder.containerSecurityContext.privileged Run as privileged
158
## @param forwarder.containerSecurityContext.allowPrivilegeEscalation Allow Privilege Escalation
159
## @param forwarder.containerSecurityContext.readOnlyRootFilesystem Require the use of a read only root file system
160
## @param forwarder.containerSecurityContext.capabilities.drop [array] Drop capabilities for the securityContext
161
## @param forwarder.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
162
##
163
containerSecurityContext:
164
enabled: true
165
seLinuxOptions: {}
166
runAsUser: 0
167
runAsGroup: 0
168
privileged: false
169
allowPrivilegeEscalation: false
170
readOnlyRootFilesystem: true
171
capabilities:
172
drop:
173
- ALL
174
seccompProfile:
175
type: "RuntimeDefault"
176
## @param forwarder.hostNetwork Enable use of host network
177
##
178
hostNetwork: false
179
## @param forwarder.dnsPolicy Pod-specific DNS policy
180
##
181
dnsPolicy: ""
182
## @param forwarder.terminationGracePeriodSeconds Duration in seconds the pod needs to terminate gracefully
183
## https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/
184
##
185
terminationGracePeriodSeconds: 30
186
## @param forwarder.extraGems List of extra gems to be installed. Can be used to install additional fluentd plugins.
187
##
188
extraGems: []
189
## @param forwarder.configFile Name of the config file that will be used by Fluentd at launch under the `/opt/iamguarded/fluentd/conf` directory
190
##
191
configFile: fluentd.conf
192
## @param forwarder.configMap Name of the config map that contains the Fluentd configuration files
193
## If not specified, one will be created by default
194
##
195
configMap: ""
196
## @param forwarder.configMapFiles [object] Files to be added to be config map. Ignored if `forwarder.configMap` is set
197
##
198
configMapFiles:
199
fluentd.conf: |
200
# Ignore fluentd own events
201
<match fluent.**>
202
@type null
203
</match>
204
205
@include fluentd-inputs.conf
206
@include fluentd-output.conf
207
{{- if .Values.metrics.enabled }}
208
@include metrics.conf
209
{{- end }}
210
fluentd-inputs.conf: |
211
# HTTP input for the liveness and readiness probes
212
<source>
213
@type http
214
port 9880
215
</source>
216
# Get the logs from the containers running in the node
217
<source>
218
@type tail
219
path /var/log/containers/*.log
220
# exclude Fluentd logs
221
exclude_path /var/log/containers/*fluentd*.log
222
pos_file /opt/iamguarded/fluentd/logs/buffers/fluentd-docker.pos
223
tag kubernetes.*
224
read_from_head true
225
<parse>
226
@type json
227
time_key time
228
time_format %Y-%m-%dT%H:%M:%S.%NZ
229
</parse>
230
</source>
231
# enrich with kubernetes metadata
232
{{- if or .Values.forwarder.serviceAccount.create .Values.forwarder.serviceAccount.name }}
233
<filter kubernetes.**>
234
@type kubernetes_metadata
235
</filter>
236
{{- end }}
237
fluentd-output.conf: |
238
# Throw the healthcheck to the standard output instead of forwarding it
239
<match fluentd.healthcheck>
240
@type stdout
241
</match>
242
{{- if .Values.aggregator.enabled }}
243
# Forward all logs to the aggregators
244
<match **>
245
@type forward
246
{{- if .Values.tls.enabled }}
247
transport tls
248
tls_cert_path /opt/iamguarded/fluentd/certs/out_forward/ca.crt
249
tls_client_cert_path /opt/iamguarded/fluentd/certs/out_forward/tls.crt
250
tls_client_private_key_path /opt/iamguarded/fluentd/certs/out_forward/tls.key
251
{{- end }}
252
253
{{- $fullName := (include "common.names.fullname" .) }}
254
{{- $global := . }}
255
{{- $domain := default "cluster.local" .Values.clusterDomain }}
256
{{- $port := .Values.aggregator.port | int }}
257
{{- range $i, $e := until (.Values.aggregator.replicaCount | int) }}
258
<server>
259
{{ printf "host %s-%d.%s-headless.%s.svc.%s" $fullName $i $fullName $global.Release.Namespace $domain }}
260
{{ printf "port %d" $port }}
261
{{- if ne $i 0 }}
262
standby
263
{{- end }}
264
</server>
265
{{- end }}
266
<buffer>
267
@type file
268
path /opt/iamguarded/fluentd/logs/buffers/logs.buffer
269
flush_thread_count 2
270
flush_interval 5s
271
</buffer>
272
</match>
273
{{- else }}
274
# Send the logs to the standard output
275
<match **>
276
@type stdout
277
</match>
278
{{- end }}
279
metrics.conf: |
280
# Prometheus Exporter Plugin
281
# input plugin that exports metrics
282
<source>
283
@type prometheus
284
port {{ .Values.metrics.service.port }}
285
</source>
286
# input plugin that collects metrics from MonitorAgent
287
<source>
288
@type prometheus_monitor
289
<labels>
290
host ${hostname}
291
</labels>
292
</source>
293
# input plugin that collects metrics for output plugin
294
<source>
295
@type prometheus_output_monitor
296
<labels>
297
host ${hostname}
298
</labels>
299
</source>
300
# input plugin that collects metrics for in_tail plugin
301
<source>
302
@type prometheus_tail_monitor
303
<labels>
304
host ${hostname}
305
</labels>
306
</source>
307
## @param forwarder.extraArgs Extra arguments for the Fluentd command line
308
## ref: https://docs.fluentd.org/deployment/command-line-option
309
##
310
extraArgs: ""
311
## @param forwarder.extraEnvVars Extra environment variables to pass to the container
312
## extraEnvVars:
313
## - name: MY_ENV_VAR
314
## value: my_value
315
##
316
extraEnvVars: []
317
## @param forwarder.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Fluentd Forwarder nodes
318
##
319
extraEnvVarsCM: ""
320
## @param forwarder.extraEnvVarsSecret Name of existing Secret containing extra env vars for Fluentd Forwarder nodes
321
##
322
extraEnvVarsSecret: ""
323
## @param forwarder.containerPorts [array] Ports the forwarder containers will listen on
324
##
325
containerPorts:
326
## - name: syslog-tcp
327
## containerPort: 5140
328
## protocol: TCP
329
## - name: syslog-udp
330
## containerPort: 5140
331
## protocol: UDP
332
## - name: tcp
333
## containerPort: 24224
334
## protocol: TCP
335
- name: http
336
containerPort: 9880
337
protocol: TCP
338
## Service parameters
339
##
340
service:
341
## @param forwarder.service.type Kubernetes service type (`ClusterIP`, `NodePort`, or `LoadBalancer`) for the forwarders
342
##
343
type: ClusterIP
344
## @param forwarder.service.ports [object] Array containing the forwarder service ports
345
##
346
ports:
347
## syslog-udp:
348
## port: 5140
349
## targetPort: syslog-udp
350
## protocol: UDP
351
## nodePort: 31514
352
## syslog-tcp:
353
## port: 5140
354
## targetPort: syslog-tcp
355
## protocol: TCP
356
## nodePort: 31514
357
## tcp:
358
## port: 24224
359
## targetPort: tcp
360
## protocol: TCP
361
http:
362
port: 9880
363
targetPort: http
364
protocol: TCP
365
## @param forwarder.service.loadBalancerIP loadBalancerIP if service type is `LoadBalancer` (optional, cloud specific)
366
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
367
##
368
loadBalancerIP: ""
369
## @param forwarder.service.loadBalancerSourceRanges Addresses that are allowed when service is LoadBalancer
370
## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
371
##
372
## loadBalancerSourceRanges:
373
## - 10.10.10.0/24
374
##
375
loadBalancerSourceRanges: []
376
## @param forwarder.service.externalTrafficPolicy Fluentd Forwarder service external traffic policy
377
## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
378
##
379
externalTrafficPolicy: Cluster
380
## @param forwarder.service.clusterIP Static clusterIP or None for headless services
381
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#choosing-your-own-ip-address
382
## e.g:
383
## clusterIP: None
384
##
385
clusterIP: ""
386
## @param forwarder.service.annotations Provide any additional annotations which may be required
387
##
388
annotations: {}
389
## @param forwarder.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
390
## If "ClientIP", consecutive client requests will be directed to the same Pod
391
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
392
##
393
sessionAffinity: None
394
## @param forwarder.service.sessionAffinityConfig Additional settings for the sessionAffinity
395
## sessionAffinityConfig:
396
## clientIP:
397
## timeoutSeconds: 300
398
##
399
sessionAffinityConfig: {}
400
## @param forwarder.service.ipFamilyPolicy Sets the IP family policy for the Service to be able to configure dual-stack; see [Configure dual-stack](https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services).
401
##
402
ipFamilyPolicy: ""
403
## @param forwarder.service.ipFamilies A list of IP families for the Service that should be supported, in the order in which they should be applied. Can be "IPv4" and/or "IPv6".
404
##
405
ipFamilies: []
406
## Network Policies
407
## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
408
##
409
networkPolicy:
410
## @param forwarder.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
411
##
412
enabled: true
413
## @param forwarder.networkPolicy.allowExternal Don't require server label for connections
414
## The Policy model to apply. When set to false, only pods with the correct
415
## server label will have network access to the ports server is listening
416
## on. When true, server will accept connections from any source
417
## (with the correct destination port).
418
##
419
allowExternal: true
420
## @param forwarder.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
421
##
422
allowExternalEgress: true
423
## @param forwarder.networkPolicy.kubeAPIServerPorts [array] List of possible endpoints to kube-apiserver (limit to your cluster settings to increase security)
424
##
425
kubeAPIServerPorts: [443, 6443, 8443]
426
## @param forwarder.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
427
## e.g:
428
## extraIngress:
429
## - ports:
430
## - port: 1234
431
## from:
432
## - podSelector:
433
## - matchLabels:
434
## - role: frontend
435
## - podSelector:
436
## - matchExpressions:
437
## - key: role
438
## operator: In
439
## values:
440
## - frontend
441
extraIngress: []
442
## @param forwarder.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
443
## e.g:
444
## extraEgress:
445
## - ports:
446
## - port: 1234
447
## to:
448
## - podSelector:
449
## - matchLabels:
450
## - role: frontend
451
## - podSelector:
452
## - matchExpressions:
453
## - key: role
454
## operator: In
455
## values:
456
## - frontend
457
##
458
extraEgress: []
459
## @param forwarder.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
460
## @param forwarder.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
461
##
462
ingressNSMatchLabels: {}
463
ingressNSPodMatchLabels: {}
464
## Configure extra options for startup probe
465
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
466
## @param forwarder.startupProbe.enabled Enable startupProbe
467
## @param forwarder.startupProbe.httpGet.path Request path for startupProbe
468
## @param forwarder.startupProbe.httpGet.port Port for startupProbe
469
## @param forwarder.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
470
## @param forwarder.startupProbe.periodSeconds Period seconds for startupProbe
471
## @param forwarder.startupProbe.timeoutSeconds Timeout seconds for startupProbe
472
## @param forwarder.startupProbe.failureThreshold Failure threshold for startupProbe
473
## @param forwarder.startupProbe.successThreshold Success threshold for startupProbe
474
##
475
startupProbe:
476
enabled: false
477
httpGet:
478
path: /fluentd.healthcheck?json=%7B%22ping%22%3A+%22pong%22%7D
479
port: http
480
initialDelaySeconds: 60
481
periodSeconds: 10
482
timeoutSeconds: 5
483
failureThreshold: 6
484
successThreshold: 1
485
## Configure extra options for liveness probe
486
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
487
## @param forwarder.livenessProbe.enabled Enable livenessProbe
488
## @param forwarder.livenessProbe.tcpSocket.port Port for livenessProbe
489
## @param forwarder.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
490
## @param forwarder.livenessProbe.periodSeconds Period seconds for livenessProbe
491
## @param forwarder.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
492
## @param forwarder.livenessProbe.failureThreshold Failure threshold for livenessProbe
493
## @param forwarder.livenessProbe.successThreshold Success threshold for livenessProbe
494
##
495
livenessProbe:
496
enabled: true
497
tcpSocket:
498
port: http
499
initialDelaySeconds: 60
500
periodSeconds: 10
501
timeoutSeconds: 5
502
failureThreshold: 6
503
successThreshold: 1
504
## Configure extra options for readiness probe
505
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
506
## @param forwarder.readinessProbe.enabled Enable readinessProbe
507
## @param forwarder.readinessProbe.httpGet.path Request path for readinessProbe
508
## @param forwarder.readinessProbe.httpGet.port Port for readinessProbe
509
## @param forwarder.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
510
## @param forwarder.readinessProbe.periodSeconds Period seconds for readinessProbe
511
## @param forwarder.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
512
## @param forwarder.readinessProbe.failureThreshold Failure threshold for readinessProbe
513
## @param forwarder.readinessProbe.successThreshold Success threshold for readinessProbe
514
##
515
readinessProbe:
516
enabled: true
517
httpGet:
518
path: /fluentd.healthcheck?json=%7B%22ping%22%3A+%22pong%22%7D
519
port: http
520
initialDelaySeconds: 5
521
periodSeconds: 10
522
timeoutSeconds: 5
523
failureThreshold: 6
524
successThreshold: 1
525
## @param forwarder.customStartupProbe Custom liveness probe for the Fluend Forwarder
526
##
527
customStartupProbe: {}
528
## @param forwarder.customLivenessProbe Custom liveness probe for the Fluend Forwarder
529
##
530
customLivenessProbe: {}
531
## @param forwarder.customReadinessProbe Custom rediness probe for the Fluend Forwarder
532
##
533
customReadinessProbe: {}
534
## @param forwarder.updateStrategy.type Set up update strategy.
535
## ref: https://kubernetes.io/docs/tasks/manage-daemon/update-daemon-set/#daemonset-update-strategy
536
## Example:
537
## updateStrategy:
538
## type: RollingUpdate
539
## rollingUpdate:
540
## maxSurge: 25%
541
## maxUnavailable: 25%
542
##
543
updateStrategy:
544
type: RollingUpdate
545
## Forwarder containers' resource requests and limits
546
## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
547
## We usually recommend not to specify default resources and to leave this as a conscious
548
## choice for the user. This also increases chances charts run on environments with little
549
## resources, such as Minikube. If you do want to specify resources, uncomment the following
550
## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
551
## @param forwarder.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if forwarder.resources is set (forwarder.resources is recommended for production).
552
## More information: https://github.com/iamguarded/charts/blob/main/iamguarded/common/templates/_resources.tpl#L15
553
##
554
resourcesPreset: "nano"
555
## @param forwarder.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
556
## Example:
557
## resources:
558
## requests:
559
## cpu: 2
560
## memory: 512Mi
561
## limits:
562
## cpu: 3
563
## memory: 1024Mi
564
##
565
resources: {}
566
## @param forwarder.priorityClassName Set Priority Class Name to allow priority control over other pods
567
## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
568
##
569
priorityClassName: ""
570
## @param forwarder.schedulerName Name of the k8s scheduler (other than default)
571
## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
572
##
573
schedulerName: ""
574
## @param forwarder.topologySpreadConstraints Topology Spread Constraints for pod assignment
575
## https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
576
## The value is evaluated as a template
577
##
578
topologySpreadConstraints: []
579
## @param forwarder.podAffinityPreset Forwarder Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
580
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
581
##
582
podAffinityPreset: ""
583
## @param forwarder.podAntiAffinityPreset Forwarder Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
584
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
585
##
586
podAntiAffinityPreset: ""
587
## Node affinity preset
588
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
589
##
590
nodeAffinityPreset:
591
## @param forwarder.nodeAffinityPreset.type Forwarder Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
592
##
593
type: ""
594
## @param forwarder.nodeAffinityPreset.key Forwarder Node label key to match Ignored if `affinity` is set.
595
## E.g.
596
## key: "kubernetes.io/e2e-az-name"
597
##
598
key: ""
599
## @param forwarder.nodeAffinityPreset.values Forwarder Node label values to match. Ignored if `affinity` is set.
600
## E.g.
601
## values:
602
## - e2e-az1
603
## - e2e-az2
604
##
605
values: []
606
## @param forwarder.affinity Forwarder Affinity for pod assignment
607
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
608
## Note: podAffinityPreset, podAntiAffinityPreset, and nodeAffinityPreset will be ignored when it's set
609
##
610
affinity: {}
611
## @param forwarder.nodeSelector Forwarder Node labels for pod assignment
612
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
613
##
614
nodeSelector: {}
615
## @param forwarder.tolerations Forwarder Tolerations for pod assignment
616
## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
617
##
618
tolerations: []
619
## @param forwarder.podAnnotations Pod annotations
620
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
621
##
622
podAnnotations: {}
623
## @param forwarder.podLabels Extra labels to add to Pod
624
##
625
podLabels: {}
626
## Pods Service Account
627
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
628
##
629
serviceAccount:
630
## @param forwarder.serviceAccount.create Specify whether a ServiceAccount should be created.
631
##
632
create: true
633
## @param forwarder.serviceAccount.name The name of the ServiceAccount to create
634
## If not set and create is true, a name is generated using the common.names.fullname template
635
name: ""
636
## @param forwarder.serviceAccount.annotations Additional Service Account annotations (evaluated as a template)
637
##
638
annotations: {}
639
## @param forwarder.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
640
##
641
automountServiceAccountToken: false
642
## Role Based Access
643
## ref: https://kubernetes.io/docs/admin/authorization/rbac/
644
## @param forwarder.rbac.create Specify whether RBAC resources should be created and used, allowing the get, watch and list of pods/namespaces
645
## @param forwarder.rbac.pspEnabled Whether to create a PodSecurityPolicy and bound it with RBAC. WARNING: PodSecurityPolicy is deprecated in Kubernetes v1.21 or later, unavailable in v1.25 or later
646
##
647
rbac:
648
create: true
649
pspEnabled: false
650
## Persist data to a persistent volume
651
##
652
persistence:
653
## @param forwarder.persistence.enabled Enable persistence volume for the forwarder
654
##
655
enabled: false
656
## @param forwarder.persistence.hostPath.path Directory from the host node's filesystem to mount as hostPath volume for persistence.
657
## The host directory you chose is mounted into /opt/iamguarded/fluentd/logs/buffers in your Pod
658
## Example use case: mount host directory /tmp/buffer (if the directory doesn't exist, it creates it) into forwarder pod.
659
## persistence:
660
## enabled: true
661
## hostPath:
662
## path: /tmp/buffer
663
##
664
hostPath:
665
path: /opt/iamguarded/fluentd/logs/buffers
666
## @param forwarder.command Override default container command (useful when using custom images)
667
##
668
command: []
669
## @param forwarder.args Override default container args (useful when using custom images)
670
##
671
args: []
672
## @param forwarder.lifecycleHooks Additional lifecycles to add to the pods
673
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/
674
## e.g:
675
## postStart:
676
## exec:
677
## command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"]
678
## preStop:
679
## exec:
680
## command: ["/bin/sh","-c","nginx -s quit; while killall -0 nginx; do sleep 1; done"]
681
##
682
lifecycleHooks: {}
683
## install-extra-gems and tmp-dir-permissions containers resource requests and limits
684
## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
685
## We usually recommend not to specify default resources and to leave this as a conscious
686
## choice for the user. This also increases chances charts run on environments with little
687
## resources, such as Minikube. If you do want to specify resources, uncomment the following
688
## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
689
## @param forwarder.initResourcePresets Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if aggregator.resources is set (aggregator.resources is recommended for production).
690
## More information: https://github.com/iamguarded/charts/blob/main/iamguarded/common/templates/_resources.tpl#L15
691
##
692
initResourcePresets: "nano"
693
## @param forwarder.initResources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
694
## Example:
695
## initResources:
696
## requests:
697
## cpu: 2
698
## memory: 512Mi
699
## limits:
700
## cpu: 3
701
## memory: 1024Mi
702
##
703
initResources: {}
704
## @param forwarder.initContainers Additional init containers to add to the pods
705
## For example:
706
## initContainers:
707
## - name: your-image-name
708
## image: your-image
709
## imagePullPolicy: Always
710
##
711
initContainers: []
712
## @param forwarder.sidecars Add sidecars to forwarder pods
713
##
714
## For example:
715
## sidecars:
716
## - name: your-image-name
717
## image: your-image
718
## imagePullPolicy: Always
719
## ports:
720
## - name: portname
721
## containerPort: 1234
722
##
723
sidecars: []
724
## @param forwarder.extraVolumes Extra volumes
725
## Example Use Case: mount systemd journal volume
726
## - name: systemd
727
## hostPath:
728
## path: /run/log/journal/
729
##
730
extraVolumes: []
731
## @param forwarder.extraVolumeMounts Mount extra volume(s)
732
## - name: systemd
733
## mountPath: /run/log/journal/
734
##
735
extraVolumeMounts: []
736
## @param forwarder.initScripts Dictionary of init scripts. Evaluated as a template.
737
## Specify dictionary of scripts to be run at first boot
738
## Alternatively, you can put your scripts under the files/docker-entrypoint-initdb.d directory
739
## For example:
740
## initScripts:
741
## my_init_script.sh: |
742
## #!/bin/sh
743
## echo "Do something."
744
##
745
initScripts: {}
746
## @param forwarder.initScriptsCM ConfigMap with the init scripts. Evaluated as a template.
747
## Note: This will override initScripts
748
##
749
initScriptsCM: ""
750
## @param forwarder.initScriptsSecret Secret containing `/docker-entrypoint-initdb.d` scripts to be executed at initialization time that contain sensitive data. Evaluated as a template.
751
##
752
initScriptsSecret: ""
753
##
754
## Aggregator parameters
755
##
756
aggregator:
757
## @param aggregator.enabled Enable Fluentd aggregator statefulset
758
##
759
enabled: true
760
## @param aggregator.replicaCount Number of aggregator pods to deploy in the Stateful Set
761
##
762
replicaCount: 1
763
## K8s Security Context for Aggregator pods
764
## https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
765
## @param aggregator.podSecurityContext.enabled Enable security context for aggregator pods
766
## @param aggregator.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
767
## @param aggregator.podSecurityContext.sysctls Set kernel settings using the sysctl interface
768
## @param aggregator.podSecurityContext.supplementalGroups Set filesystem extra groups
769
## @param aggregator.podSecurityContext.fsGroup Group ID for aggregator's containers filesystem
770
##
771
podSecurityContext:
772
enabled: true
773
fsGroupChangePolicy: Always
774
sysctls: []
775
supplementalGroups: []
776
fsGroup: 1001
777
## @param aggregator.automountServiceAccountToken Mount Service Account token in pod
778
##
779
automountServiceAccountToken: false
780
## @param aggregator.hostAliases Add deployment host aliases
781
## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
782
##
783
hostAliases: []
784
## K8s Security Context for Aggregator containers
785
## https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
786
## @param aggregator.containerSecurityContext.enabled Enable security context for the aggregator container
787
## @param aggregator.containerSecurityContext.privileged Run as privileged
788
## @param aggregator.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
789
## @param aggregator.containerSecurityContext.runAsUser User ID for aggregator's containers
790
## @param aggregator.containerSecurityContext.runAsGroup Group ID for aggregator's containers
791
## @param aggregator.containerSecurityContext.allowPrivilegeEscalation Allow Privilege Escalation
792
## @param aggregator.containerSecurityContext.readOnlyRootFilesystem Require the use of a read only root file system
793
## @param aggregator.containerSecurityContext.capabilities.drop [array] Drop capabilities for the securityContext
794
## @param aggregator.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
795
##
796
containerSecurityContext:
797
enabled: true
798
privileged: false
799
seLinuxOptions: {}
800
runAsUser: 1001
801
runAsGroup: 1001
802
allowPrivilegeEscalation: false
803
readOnlyRootFilesystem: true
804
capabilities:
805
drop:
806
- ALL
807
seccompProfile:
808
type: "RuntimeDefault"
809
## @param aggregator.terminationGracePeriodSeconds Duration in seconds the pod needs to terminate gracefully
810
## https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/
811
##
812
terminationGracePeriodSeconds: 30
813
## @param aggregator.extraGems List of extra gems to be installed. Can be used to install additional fluentd plugins.
814
##
815
extraGems: []
816
## @param aggregator.configFile Name of the config file that will be used by Fluentd at launch under the `/opt/iamguarded/fluentd/conf` directory
817
##
818
configFile: fluentd.conf
819
## @param aggregator.configMap Name of the config map that contains the Fluentd configuration files
820
##
821
configMap: ""
822
## @param aggregator.configMapFiles [object] Files to be added to be config map. Ignored if `aggregator.configMap` is set
823
##
824
configMapFiles:
825
fluentd.conf: |
826
# Ignore fluentd own events
827
<match fluent.**>
828
@type null
829
</match>
830
831
@include fluentd-inputs.conf
832
@include fluentd-output.conf
833
{{- if .Values.metrics.enabled }}
834
@include metrics.conf
835
{{- end }}
836
fluentd-inputs.conf: |
837
# TCP input to receive logs from
838
{{- if .Values.aggregator.port }}
839
<source>
840
@type forward
841
bind 0.0.0.0
842
port {{ .Values.aggregator.port }}
843
{{- if .Values.tls.enabled }}
844
<transport tls>
845
ca_path /opt/iamguarded/fluentd/certs/in_forward/ca.crt
846
cert_path /opt/iamguarded/fluentd/certs/in_forward/tls.crt
847
private_key_path /opt/iamguarded/fluentd/certs/in_forward/tls.key
848
client_cert_auth true
849
</transport>
850
{{- end }}
851
</source>
852
{{- end }}
853
854
# HTTP input for the liveness and readiness probes
855
<source>
856
@type http
857
bind 0.0.0.0
858
port 9880
859
</source>
860
fluentd-output.conf: |
861
# Throw the healthcheck to the standard output
862
<match fluentd.healthcheck>
863
@type stdout
864
</match>
865
866
# Send the logs to the standard output
867
<match **>
868
@type stdout
869
</match>
870
metrics.conf: |
871
# Prometheus Exporter Plugin
872
# input plugin that exports metrics
873
<source>
874
@type prometheus
875
port {{ .Values.metrics.service.port }}
876
</source>
877
878
# input plugin that collects metrics from MonitorAgent
879
<source>
880
@type prometheus_monitor
881
<labels>
882
host ${hostname}
883
</labels>
884
</source>
885
886
# input plugin that collects metrics for output plugin
887
<source>
888
@type prometheus_output_monitor
889
<labels>
890
host ${hostname}
891
</labels>
892
</source>
893
## @param aggregator.port Port the Aggregator container will listen for logs. Leave it blank to ignore.
894
## You can specify other ports in the aggregator.containerPorts parameter
895
##
896
port: 24224
897
## @param aggregator.extraArgs Extra arguments for the Fluentd command line
898
## ref: https://docs.fluentd.org/deployment/command-line-option
899
##
900
extraArgs: ""
901
## @param aggregator.extraEnvVars Extra environment variables to pass to the container
902
## extraEnvVars:
903
## - name: MY_ENV_VAR
904
## value: my_value
905
##
906
extraEnvVars: []
907
## @param aggregator.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Fluentd Aggregator nodes
908
##
909
extraEnvVarsCM: ""
910
## @param aggregator.extraEnvVarsSecret Name of existing Secret containing extra env vars for Fluentd Aggregator nodes
911
##
912
extraEnvVarsSecret: ""
913
## @param aggregator.containerPorts [array] Ports the aggregator containers will listen on
914
##
915
containerPorts:
916
# - name: my-port
917
# containerPort: 24222
918
# protocol: TCP
919
- name: http
920
containerPort: 9880
921
protocol: TCP
922
## Service parameters
923
##
924
service:
925
## @param aggregator.service.type Kubernetes service type (`ClusterIP`, `NodePort`, or `LoadBalancer`) for the aggregators
926
##
927
type: ClusterIP
928
## @param aggregator.service.ports [object] Array containing the aggregator service ports
929
##
930
ports:
931
http:
932
port: 9880
933
targetPort: http
934
protocol: TCP
935
tcp:
936
port: 24224
937
targetPort: tcp
938
protocol: TCP
939
## @param aggregator.service.loadBalancerIP loadBalancerIP if service type is `LoadBalancer` (optional, cloud specific)
940
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
941
##
942
loadBalancerIP: ""
943
## @param aggregator.service.loadBalancerSourceRanges Addresses that are allowed when service is LoadBalancer
944
## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
945
##
946
## loadBalancerSourceRanges:
947
## - 10.10.10.0/24
948
loadBalancerSourceRanges: []
949
## @param aggregator.service.clusterIP Static clusterIP or None for headless services
950
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#choosing-your-own-ip-address
951
## e.g:
952
## clusterIP: None
953
##
954
clusterIP: ""
955
## @param aggregator.service.annotations Provide any additional annotations which may be required
956
##
957
annotations: {}
958
## @param aggregator.service.externalTrafficPolicy Fluentd Aggregator service external traffic policy
959
## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
960
##
961
externalTrafficPolicy: Cluster
962
## @param aggregator.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
963
## If "ClientIP", consecutive client requests will be directed to the same Pod
964
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
965
##
966
sessionAffinity: None
967
## @param aggregator.service.sessionAffinityConfig Additional settings for the sessionAffinity
968
## sessionAffinityConfig:
969
## clientIP:
970
## timeoutSeconds: 300
971
##
972
sessionAffinityConfig: {}
973
## @param aggregator.service.annotationsHeadless Provide any additional annotations which may be required on headless service
974
##
975
annotationsHeadless: {}
976
## Headless service properties
977
##
978
headless:
979
## @param aggregator.service.headless.annotations Annotations for the headless service.
980
##
981
annotations: {}
982
## @param aggregator.service.ipFamilyPolicy Sets the IP family policy for the Service to be able to configure dual-stack; see [Configure dual-stack](https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services).
983
##
984
ipFamilyPolicy: ""
985
## @param aggregator.service.ipFamilies A list of IP families for the Service that should be supported, in the order in which they should be applied. Can be "IPv4" and/or "IPv6".
986
##
987
ipFamilies: []
988
## Network Policies
989
## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
990
##
991
networkPolicy:
992
## @param aggregator.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
993
##
994
enabled: true
995
## @param aggregator.networkPolicy.allowExternal Don't require server label for connections
996
## The Policy model to apply. When set to false, only pods with the correct
997
## server label will have network access to the ports server is listening
998
## on. When true, server will accept connections from any source
999
## (with the correct destination port).
1000
##
1001
allowExternal: true
1002
## @param aggregator.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
1003
##
1004
allowExternalEgress: true
1005
## @param aggregator.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
1006
## e.g:
1007
## extraIngress:
1008
## - ports:
1009
## - port: 1234
1010
## from:
1011
## - podSelector:
1012
## - matchLabels:
1013
## - role: frontend
1014
## - podSelector:
1015
## - matchExpressions:
1016
## - key: role
1017
## operator: In
1018
## values:
1019
## - frontend
1020
extraIngress: []
1021
## @param aggregator.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
1022
## e.g:
1023
## extraEgress:
1024
## - ports:
1025
## - port: 1234
1026
## to:
1027
## - podSelector:
1028
## - matchLabels:
1029
## - role: frontend
1030
## - podSelector:
1031
## - matchExpressions:
1032
## - key: role
1033
## operator: In
1034
## values:
1035
## - frontend
1036
##
1037
extraEgress: []
1038
## @param aggregator.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
1039
## @param aggregator.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
1040
##
1041
ingressNSMatchLabels: {}
1042
ingressNSPodMatchLabels: {}
1043
## Configure the ingress resource that allows you to access the
1044
## Fluentd aggregator. Set up the URL
1045
## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/
1046
##
1047
ingress:
1048
## @param aggregator.ingress.enabled Set to true to enable ingress record generation
1049
##
1050
enabled: false
1051
## DEPRECATED: Use ingress.annotations instead of ingress.certManager
1052
## certManager: false
1053
##
1054
1055
## @param aggregator.ingress.pathType Ingress Path type. How the path matching is interpreted
1056
##
1057
pathType: ImplementationSpecific
1058
## @param aggregator.ingress.apiVersion Override API Version (automatically detected if not set)
1059
##
1060
apiVersion: ""
1061
## @param aggregator.ingress.hostname Default host for the ingress resource
1062
##
1063
hostname: fluentd.local
1064
## @param aggregator.ingress.path Default path for the ingress resource
1065
## You may need to set this to '/*' in order to use this with ALB ingress controllers.
1066
##
1067
path: /
1068
## @param aggregator.ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
1069
## For a full list of possible ingress annotations, please see
1070
## ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/annotations.md
1071
## Use this parameter to set the required annotations for cert-manager, see
1072
## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
1073
##
1074
## e.g:
1075
## annotations:
1076
## kubernetes.io/ingress.class: nginx
1077
## cert-manager.io/cluster-issuer: cluster-issuer-name
1078
##
1079
annotations: {}
1080
## @param aggregator.ingress.tls Enable TLS configuration for the hostname defined at ingress.hostname parameter
1081
## TLS certificates will be retrieved from a TLS secret with name: {{- printf "%s-tls" .Values.aggregator.ingress.hostname | trunc 63 | trimSuffix "-" }}
1082
## You can use the ingress.secrets parameter to create this TLS secret or rely on cert-manager to create it
1083
##
1084
tls: false
1085
## @param aggregator.ingress.extraHosts The list of additional hostnames to be covered with this ingress record.
1086
## Most likely the hostname above will be enough, but in the event more hosts are needed, this is an array
1087
## extraHosts:
1088
## - name: fluentd.local
1089
## path: /
1090
##
1091
extraHosts: []
1092
## @param aggregator.ingress.extraPaths Any additional arbitrary paths that may need to be added to the ingress under the main host.
1093
## For example: The ALB ingress controller requires a special rule for handling SSL redirection.
1094
## extraPaths:
1095
## - path: /*
1096
## backend:
1097
## serviceName: ssl-redirect
1098
## servicePort: use-annotation
1099
##
1100
extraPaths: []
1101
## @param aggregator.ingress.extraTls The tls configuration for additional hostnames to be covered with this ingress record.
1102
## see: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
1103
## extraTls:
1104
## - hosts:
1105
## - fluentd.local
1106
## secretName: fluentd.local-tls
1107
##
1108
extraTls: []
1109
## @param aggregator.ingress.secrets If you're providing your own certificates, please use this to add the certificates as secrets
1110
## key and certificate should start with -----BEGIN CERTIFICATE----- or
1111
## -----BEGIN RSA PRIVATE KEY-----
1112
##
1113
## name should line up with a tlsSecret set further up
1114
## If you're using cert-manager, this is unneeded, as it will create the secret for you if it is not set
1115
##
1116
## It is also possible to create and manage the certificates outside of this helm chart
1117
## Please see README.md for more information
1118
## e.g:
1119
## - name: fluentd.local-tls
1120
## key:
1121
## certificate:
1122
##
1123
secrets: []
1124
## @param aggregator.ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
1125
## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
1126
## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
1127
##
1128
ingressClassName: ""
1129
## @param aggregator.ingress.extraRules Additional rules to be covered with this ingress record
1130
## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
1131
## e.g:
1132
## extraRules:
1133
## - host: example.local
1134
## http:
1135
## path: /
1136
## backend:
1137
## service:
1138
## name: example-svc
1139
## port:
1140
## name: http
1141
##
1142
extraRules: []
1143
## Configure extra options for startup probe
1144
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
1145
## @param aggregator.startupProbe.enabled Enable startupProbe
1146
## @param aggregator.startupProbe.httpGet.path Request path for startupProbe
1147
## @param aggregator.startupProbe.httpGet.port Port for startupProbe
1148
## @param aggregator.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
1149
## @param aggregator.startupProbe.periodSeconds Period seconds for startupProbe
1150
## @param aggregator.startupProbe.timeoutSeconds Timeout seconds for startupProbe
1151
## @param aggregator.startupProbe.failureThreshold Failure threshold for startupProbe
1152
## @param aggregator.startupProbe.successThreshold Success threshold for startupProbe
1153
##
1154
startupProbe:
1155
enabled: true
1156
httpGet:
1157
path: /fluentd.healthcheck?json=%7B%22ping%22%3A+%22pong%22%7D
1158
port: http
1159
initialDelaySeconds: 60
1160
periodSeconds: 10
1161
timeoutSeconds: 5
1162
failureThreshold: 6
1163
successThreshold: 1
1164
## Configure extra options for liveness probe
1165
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
1166
## @param aggregator.livenessProbe.enabled Enable livenessProbe
1167
## @param aggregator.livenessProbe.tcpSocket.port Port for livenessProbe
1168
## @param aggregator.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
1169
## @param aggregator.livenessProbe.periodSeconds Period seconds for livenessProbe
1170
## @param aggregator.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
1171
## @param aggregator.livenessProbe.failureThreshold Failure threshold for livenessProbe
1172
## @param aggregator.livenessProbe.successThreshold Success threshold for livenessProbe
1173
##
1174
livenessProbe:
1175
enabled: true
1176
tcpSocket:
1177
port: http
1178
initialDelaySeconds: 60
1179
periodSeconds: 10
1180
timeoutSeconds: 5
1181
failureThreshold: 6
1182
successThreshold: 1
1183
## Configure extra options for readiness probe
1184
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
1185
## @param aggregator.readinessProbe.enabled Enable readinessProbe
1186
## @param aggregator.readinessProbe.httpGet.path Request path for readinessProbe
1187
## @param aggregator.readinessProbe.httpGet.port Port for readinessProbe
1188
## @param aggregator.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
1189
## @param aggregator.readinessProbe.periodSeconds Period seconds for readinessProbe
1190
## @param aggregator.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
1191
## @param aggregator.readinessProbe.failureThreshold Failure threshold for readinessProbe
1192
## @param aggregator.readinessProbe.successThreshold Success threshold for readinessProbe
1193
##
1194
readinessProbe:
1195
enabled: true
1196
httpGet:
1197
path: /fluentd.healthcheck?json=%7B%22ping%22%3A+%22pong%22%7D
1198
port: http
1199
initialDelaySeconds: 5
1200
periodSeconds: 10
1201
timeoutSeconds: 5
1202
failureThreshold: 6
1203
successThreshold: 1
1204
## @param aggregator.customStartupProbe Custom liveness probe for the Fluentd Aggregator
1205
##
1206
customStartupProbe: {}
1207
## @param aggregator.customLivenessProbe Custom liveness probe for the Fluentd Aggregator
1208
##
1209
customLivenessProbe: {}
1210
## @param aggregator.customReadinessProbe Custom rediness probe for the Fluentd Aggregator
1211
##
1212
customReadinessProbe: {}
1213
## @param aggregator.updateStrategy.type Set up update strategy.
1214
## ref: https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#updating-statefulsets
1215
## Example:
1216
## updateStrategy:
1217
## type: RollingUpdate
1218
## rollingUpdate:
1219
## maxSurge: 25%
1220
## maxUnavailable: 25%
1221
##
1222
updateStrategy:
1223
type: RollingUpdate
1224
## Aggregator containers' resource requests and limits
1225
## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1226
## We usually recommend not to specify default resources and to leave this as a conscious
1227
## choice for the user. This also increases chances charts run on environments with little
1228
## resources, such as Minikube. If you do want to specify resources, uncomment the following
1229
## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
1230
## @param aggregator.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if aggregator.resources is set (aggregator.resources is recommended for production).
1231
## More information: https://github.com/iamguarded/charts/blob/main/iamguarded/common/templates/_resources.tpl#L15
1232
##
1233
resourcesPreset: "nano"
1234
## @param aggregator.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1235
## Example:
1236
## resources:
1237
## requests:
1238
## cpu: 2
1239
## memory: 512Mi
1240
## limits:
1241
## cpu: 3
1242
## memory: 1024Mi
1243
##
1244
resources: {}
1245
## @param aggregator.priorityClassName Fluentd Aggregator pods' priorityClassName
1246
##
1247
priorityClassName: ""
1248
## @param aggregator.schedulerName Name of the k8s scheduler (other than default)
1249
## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
1250
##
1251
schedulerName: ""
1252
## @param aggregator.topologySpreadConstraints Topology Spread Constraints for pod assignment
1253
## https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
1254
## The value is evaluated as a template
1255
##
1256
topologySpreadConstraints: []
1257
## @param aggregator.podManagementPolicy podManagementPolicy to manage scaling operation of Fluentd Aggregator pods
1258
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
1259
##
1260
podManagementPolicy: ""
1261
## @param aggregator.podAffinityPreset Aggregator Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1262
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1263
##
1264
podAffinityPreset: ""
1265
## @param aggregator.podAntiAffinityPreset Aggregator Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1266
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1267
##
1268
podAntiAffinityPreset: soft
1269
## Node affinity preset
1270
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
1271
##
1272
nodeAffinityPreset:
1273
## @param aggregator.nodeAffinityPreset.type Aggregator Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1274
##
1275
type: ""
1276
## @param aggregator.nodeAffinityPreset.key Aggregator Node label key to match Ignored if `affinity` is set.
1277
##
1278
key: ""
1279
## @param aggregator.nodeAffinityPreset.values Aggregator Node label values to match. Ignored if `affinity` is set.
1280
## E.g.
1281
## values:
1282
## - e2e-az1
1283
## - e2e-az2
1284
##
1285
values: []
1286
## @param aggregator.affinity Aggregator Affinity for pod assignment
1287
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
1288
## Note: podAffinityPreset, podAntiAffinityPreset, and nodeAffinityPreset will be ignored when it's set
1289
##
1290
affinity: {}
1291
## @param aggregator.nodeSelector Aggregator Node labels for pod assignment
1292
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1293
##
1294
nodeSelector: {}
1295
## @param aggregator.tolerations Aggregator Tolerations for pod assignment
1296
## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1297
##
1298
tolerations: []
1299
## @param aggregator.podAnnotations Pod annotations
1300
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
1301
##
1302
podAnnotations: {}
1303
## @param aggregator.podLabels Extra labels to add to Pod
1304
##
1305
podLabels: {}
1306
## Pods Service Account
1307
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
1308
##
1309
serviceAccount:
1310
## @param aggregator.serviceAccount.create Specify whether a ServiceAccount should be created
1311
##
1312
create: true
1313
## @param aggregator.serviceAccount.name The name of the ServiceAccount to create
1314
## If not set and create is true, a name is generated using the common.names.fullname template
1315
name: ""
1316
## @param aggregator.serviceAccount.annotations Additional Service Account annotations (evaluated as a template)
1317
##
1318
annotations: {}
1319
## @param aggregator.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
1320
##
1321
automountServiceAccountToken: false
1322
## Autoscaling parameters
1323
## This is not recommended in a forwarder+aggregator architecture
1324
## @param aggregator.autoscaling.enabled Create an Horizontal Pod Autoscaler
1325
## @param aggregator.autoscaling.minReplicas Minimum number of replicas for the HPA
1326
## @param aggregator.autoscaling.maxReplicas Maximum number of replicas for the HPA
1327
## @param aggregator.autoscaling.metrics [array] Metrics for the HPA to manage the scaling
1328
## @param aggregator.autoscaling.behavior HPA Behavior
1329
##
1330
autoscaling:
1331
enabled: false
1332
minReplicas: 2
1333
maxReplicas: 5
1334
metrics:
1335
- type: Resource
1336
resource:
1337
name: cpu
1338
target:
1339
type: Utilization
1340
averageUtilization: 60
1341
- type: Resource
1342
resource:
1343
name: memory
1344
target:
1345
type: Utilization
1346
averageUtilization: 60
1347
behavior: {}
1348
## Persist data to a persistent volume
1349
##
1350
persistence:
1351
## @param aggregator.persistence.enabled Enable persistence volume for the aggregator
1352
##
1353
enabled: false
1354
## @param aggregator.persistence.storageClass Persistent Volume storage class
1355
## If defined, storageClassName: <storageClass>
1356
## If set to "-", storageClassName: "", which disables dynamic provisioning
1357
## If undefined (the default) or set to null, no storageClassName spec is
1358
## set, choosing the default provisioner. (gp2 on AWS, standard on
1359
## GKE, AWS & OpenStack)
1360
##
1361
storageClass: ""
1362
## @param aggregator.persistence.accessModes Persistent Volume access modes
1363
##
1364
accessModes:
1365
- ReadWriteOnce
1366
## @param aggregator.persistence.size Persistent Volume size
1367
##
1368
size: 10Gi
1369
## @param aggregator.persistence.selector Selector to match an existing Persistent Volume (this value is evaluated as a template)
1370
## selector:
1371
## matchLabels:
1372
## app: my-app
1373
selector: {}
1374
## @param aggregator.persistence.annotations Persistent Volume Claim annotations
1375
##
1376
annotations: {}
1377
## @param aggregator.command Override default container command (useful when using custom images)
1378
##
1379
command: []
1380
## @param aggregator.args Override default container args (useful when using custom images)
1381
##
1382
args: []
1383
## @param aggregator.lifecycleHooks Additional lifecycles to add to the pods
1384
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/
1385
## e.g:
1386
## postStart:
1387
## exec:
1388
## command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"]
1389
## preStop:
1390
## exec:
1391
## command: ["/bin/sh","-c","nginx -s quit; while killall -0 nginx; do sleep 1; done"]
1392
##
1393
lifecycleHooks: {}
1394
## install-extra-gems and tmp-dir-permissions containers resource requests and limits
1395
## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1396
## We usually recommend not to specify default resources and to leave this as a conscious
1397
## choice for the user. This also increases chances charts run on environments with little
1398
## resources, such as Minikube. If you do want to specify resources, uncomment the following
1399
## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
1400
## @param aggregator.initResourcePresets Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if aggregator.resources is set (aggregator.resources is recommended for production).
1401
## More information: https://github.com/iamguarded/charts/blob/main/iamguarded/common/templates/_resources.tpl#L15
1402
##
1403
initResourcePresets: "nano"
1404
## @param aggregator.initResources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1405
## Example:
1406
## initResources:
1407
## requests:
1408
## cpu: 2
1409
## memory: 512Mi
1410
## limits:
1411
## cpu: 3
1412
## memory: 1024Mi
1413
##
1414
initResources: {}
1415
## @param aggregator.initContainers Add init containers to aggregator pods
1416
## Example
1417
##
1418
## initContainers:
1419
## - name: do-something
1420
## image: busybox
1421
## command: ['do', 'something']
1422
##
1423
initContainers: []
1424
## @param aggregator.sidecars Add sidecars to aggregator pods
1425
##
1426
## For example:
1427
## sidecars:
1428
## - name: your-image-name
1429
## image: your-image
1430
## imagePullPolicy: Always
1431
## ports:
1432
## - name: portname
1433
## containerPort: 1234
1434
##
1435
sidecars: []
1436
## @param aggregator.extraVolumes Extra volumes
1437
## Example Use Case: mount an emptyDir into /tmp to support running with readOnlyRootFileSystem
1438
## - name: tmpDir
1439
## emptyDir: {}
1440
##
1441
extraVolumes: []
1442
## @param aggregator.extraVolumeMounts Mount extra volume(s)
1443
## - name: tmpDir
1444
## mountPath: /tmp
1445
##
1446
extraVolumeMounts: []
1447
## @param aggregator.extraVolumeClaimTemplates Optionally specify extra list of additional volume claim templates for the Fluentd Aggregator pods in StatefulSet
1448
##
1449
extraVolumeClaimTemplates: []
1450
## @param aggregator.initScripts Dictionary of init scripts. Evaluated as a template.
1451
## Specify dictionary of scripts to be run at first boot
1452
## Alternatively, you can put your scripts under the files/docker-entrypoint-initdb.d directory
1453
## For example:
1454
## initScripts:
1455
## my_init_script.sh: |
1456
## #!/bin/sh
1457
## echo "Do something."
1458
##
1459
initScripts: {}
1460
## @param aggregator.initScriptsCM ConfigMap with the init scripts. Evaluated as a template.
1461
## Note: This will override initScripts
1462
##
1463
initScriptsCM: ""
1464
## @param aggregator.initScriptsSecret Secret containing `/docker-entrypoint-initdb.d` scripts to be executed at initialization time that contain sensitive data. Evaluated as a template.
1465
##
1466
initScriptsSecret: ""
1467
## Pod Disruption Budget configuration
1468
## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
1469
## @param aggregator.pdb.create Enable/disable a Pod Disruption Budget creation
1470
## @param aggregator.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
1471
## @param aggregator.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable.Defaults to `1` if both `secondary.pdb.minAvailable` and `secondary.pdb.maxUnavailable` are empty.
1472
##
1473
pdb:
1474
create: true
1475
minAvailable: ""
1476
maxUnavailable: ""
1477
## Prometheus Exporter / Metrics
1478
##
1479
metrics:
1480
## @param metrics.enabled Enable the export of Prometheus metrics
1481
##
1482
enabled: false
1483
## Prometheus Exporter service parameters
1484
##
1485
service:
1486
## @param metrics.service.type Prometheus metrics service type
1487
##
1488
type: ClusterIP
1489
## @param metrics.service.port Prometheus metrics service port
1490
##
1491
port: 24231
1492
## @param metrics.service.loadBalancerIP Load Balancer IP if the Prometheus metrics server type is `LoadBalancer`
1493
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
1494
##
1495
loadBalancerIP: ""
1496
## @param metrics.service.clusterIP Prometheus metrics service Cluster IP
1497
## e.g.:
1498
## clusterIP: None
1499
##
1500
clusterIP: ""
1501
## @param metrics.service.loadBalancerSourceRanges Prometheus metrics service Load Balancer sources
1502
## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1503
## e.g:
1504
## loadBalancerSourceRanges:
1505
## - 10.10.10.0/24
1506
##
1507
loadBalancerSourceRanges: []
1508
## @param metrics.service.externalTrafficPolicy Prometheus metrics service external traffic policy
1509
## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
1510
##
1511
externalTrafficPolicy: Cluster
1512
## @param metrics.service.annotations [object] Annotations for the Prometheus Exporter service service
1513
## If port or path annotation is provided the values will be used to in the prometheus ServiceMonitor CRD.
1514
##
1515
annotations:
1516
prometheus.io/scrape: "true"
1517
prometheus.io/port: "24231"
1518
prometheus.io/path: "/metrics"
1519
## @param metrics.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
1520
## If "ClientIP", consecutive client requests will be directed to the same Pod
1521
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
1522
##
1523
sessionAffinity: None
1524
## @param metrics.service.sessionAffinityConfig Additional settings for the sessionAffinity
1525
## sessionAffinityConfig:
1526
## clientIP:
1527
## timeoutSeconds: 300
1528
##
1529
sessionAffinityConfig: {}
1530
## Prometheus Operator ServiceMonitor configuration
1531
##
1532
serviceMonitor:
1533
## @param metrics.serviceMonitor.enabled if `true`, creates a Prometheus Operator ServiceMonitor (also requires `metrics.enabled` to be `true`)
1534
##
1535
enabled: false
1536
## @param metrics.serviceMonitor.namespace Namespace in which Prometheus is running
1537
##
1538
namespace: ""
1539
## @param metrics.serviceMonitor.interval Interval at which metrics should be scraped.
1540
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
1541
## e.g:
1542
## interval: 10s
1543
##
1544
interval: ""
1545
## @param metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
1546
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
1547
## e.g:
1548
## scrapeTimeout: 10s
1549
##
1550
scrapeTimeout: ""
1551
## @param metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
1552
##
1553
jobLabel: ""
1554
## @param metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping
1555
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
1556
##
1557
relabelings: []
1558
## @param metrics.serviceMonitor.metricRelabelings MetricRelabelConfigs to apply to samples before ingestion
1559
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
1560
##
1561
metricRelabelings: []
1562
## @param metrics.serviceMonitor.selector Prometheus instance selector labels
1563
## ref: https://github.com/iamguarded/charts/tree/main/iamguarded/prometheus-operator#prometheus-configuration
1564
## e.g:
1565
## selector:
1566
## prometheus: my-prometheus
1567
##
1568
selector: {}
1569
## @param metrics.serviceMonitor.labels ServiceMonitor extra labels
1570
##
1571
labels: {}
1572
## @param metrics.serviceMonitor.annotations ServiceMonitor annotations
1573
##
1574
annotations: {}
1575
## @param metrics.serviceMonitor.honorLabels honorLabels chooses the metric's labels on collisions with target labels
1576
##
1577
honorLabels: false
1578
## @param metrics.serviceMonitor.path path defines the path that promethues will use to pull metrics from the container
1579
##
1580
path: "/metrics"
1581
## Enable internal SSL/TLS encryption
1582
##
1583
tls:
1584
## @param tls.enabled Enable TLS/SSL encrytion for internal communications
1585
##
1586
enabled: false
1587
## @param tls.autoGenerated Generate automatically self-signed TLS certificates.
1588
##
1589
autoGenerated: false
1590
## @param tls.forwarder.existingSecret Name of the existing secret containing the TLS certificates for the Fluentd forwarder
1591
##
1592
forwarder:
1593
existingSecret: ""
1594
## @param tls.aggregator.existingSecret Name of the existing secret containing the TLS certificates for the Fluentd aggregator
1595
##
1596
aggregator:
1597
existingSecret: ""
1598

The trusted source for open source

Talk to an expert
PrivacyTerms

Product

Chainguard ContainersChainguard LibrariesChainguard VMsChainguard OS PackagesChainguard ActionsChainguard Agent SkillsIntegrationsPricing
© 2026 Chainguard, Inc. All Rights Reserved.
Chainguard® and the Chainguard logo are registered trademarks of Chainguard, Inc. in the United States and/or other countries.
The other respective trademarks mentioned on this page are owned by the respective companies and use of them does not imply any affiliation or endorsement.