1# This file has been modified by Chainguard, Inc.
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
7# Copyright Broadcom, Inc. All Rights Reserved.
8# SPDX-License-Identifier: APACHE-2.0
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
15## @param global.imageRegistry Global Docker image registry
16## @param global.imagePullSecrets Global Docker registry secret names as an array
17## @param global.defaultStorageClass Global default StorageClass for Persistent Volume(s)
18## @param global.storageClass DEPRECATED: use global.defaultStorageClass instead
24 ## - myRegistryKeySecretName
27 defaultStorageClass: ""
29 ## Security parameters
32 ## @param global.security.allowInsecureImages Allows skipping image verification
33 allowInsecureImages: false
34 ## Compatibility adaptations for Kubernetes platforms
37 ## Compatibility adaptations for Openshift
40 ## @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)
42 adaptSecurityContext: auto
44## @section Common parameters
46## @param kubeVersion Force target Kubernetes version (using Helm capabilities if not set)
49## @param nameOverride String to partially override common.names.fullname template (will maintain the release name)
52## @param fullnameOverride String to fully override common.names.fullname template
55## @param commonAnnotations Annotations to add to all deployed objects
58## @param commonLabels Labels to add to all deployed objects
61## @param clusterDomain Cluster Domain
63clusterDomain: cluster.local
64## @param extraDeploy Array of extra objects to deploy with the release
67## Enable diagnostic mode in the deployment
70 ## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden)
73 ## @param diagnosticMode.command Command to override all containers in the deployment
77 ## @param diagnosticMode.args Args to override all containers in the deployment
81## @section Fluentd parameters
83## Iamguarded Fluentd image version
84## ref: https://hub.docker.com/r/iamguarded/fluentd/tags/
85## @param image.registry [default: REGISTRY_NAME] Fluentd image registry
86## @param image.repository [default: REPOSITORY_NAME/fluentd] Fluentd image repository
87## @skip image.tag Fluentd image tag (immutable tags are recommended)
88## @param image.pullPolicy Fluentd image pull policy
89## @param image.pullSecrets Fluentd image pull secrets
90## @param image.debug Enable image debug mode
94 repository: chainguard-private/fluentd-iamguarded
97 ## Specify a imagePullPolicy
98 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
100 pullPolicy: IfNotPresent
101 ## Optionally specify an array of imagePullSecrets.
102 ## Secrets must be manually created in the namespace.
103 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
106 ## - myRegistryKeySecretName
112## @param varlog.readonly Set /var/log volume mount readOnly
116## Forwarder parameters
119 ## @param forwarder.enabled Enable forwarder daemonset
122 ## @param forwarder.daemonUser Forwarder daemon user and group (set to root by default because it reads from host paths)
125 ## @param forwarder.daemonGroup Fluentd forwarder daemon system group
128 ## @param forwarder.automountServiceAccountToken Mount Service Account token in pod
130 automountServiceAccountToken: true
131 ## @param forwarder.hostAliases Add deployment host aliases
132 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
135 ## K8s Security Context for forwarder pods
136 ## https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
137 ## @param forwarder.podSecurityContext.enabled Enable security context for forwarder pods
138 ## @param forwarder.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
139 ## @param forwarder.podSecurityContext.sysctls Set kernel settings using the sysctl interface
140 ## @param forwarder.podSecurityContext.supplementalGroups Set filesystem extra groups
141 ## @param forwarder.podSecurityContext.fsGroup Group ID for forwarder's containers filesystem
145 fsGroupChangePolicy: Always
147 supplementalGroups: []
149 ## K8s Security Context for forwarder container
150 ## https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
151 ## @param forwarder.containerSecurityContext.enabled Enable security context for the forwarder container
152 ## @param forwarder.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
153 ## @param forwarder.containerSecurityContext.runAsUser User ID for forwarder's containers
154 ## @param forwarder.containerSecurityContext.runAsGroup Group ID for forwarder's containers
155 ## @param forwarder.containerSecurityContext.privileged Run as privileged
156 ## @param forwarder.containerSecurityContext.allowPrivilegeEscalation Allow Privilege Escalation
157 ## @param forwarder.containerSecurityContext.readOnlyRootFilesystem Require the use of a read only root file system
158 ## @param forwarder.containerSecurityContext.capabilities.drop [array] Drop capabilities for the securityContext
159 ## @param forwarder.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
161 containerSecurityContext:
167 allowPrivilegeEscalation: false
168 readOnlyRootFilesystem: true
173 type: "RuntimeDefault"
174 ## @param forwarder.hostNetwork Enable use of host network
177 ## @param forwarder.dnsPolicy Pod-specific DNS policy
180 ## @param forwarder.terminationGracePeriodSeconds Duration in seconds the pod needs to terminate gracefully
181 ## https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/
183 terminationGracePeriodSeconds: 30
184 ## @param forwarder.extraGems List of extra gems to be installed. Can be used to install additional fluentd plugins.
187 ## @param forwarder.configFile Name of the config file that will be used by Fluentd at launch under the `/opt/iamguarded/fluentd/conf` directory
189 configFile: fluentd.conf
190 ## @param forwarder.configMap Name of the config map that contains the Fluentd configuration files
191 ## If not specified, one will be created by default
194 ## @param forwarder.configMapFiles [object] Files to be added to be config map. Ignored if `forwarder.configMap` is set
198 # Ignore fluentd own events
203 @include fluentd-inputs.conf
204 @include fluentd-output.conf
205 {{- if .Values.metrics.enabled }}
206 @include metrics.conf
208 fluentd-inputs.conf: |
209 # HTTP input for the liveness and readiness probes
214 # Get the logs from the containers running in the node
217 path /var/log/containers/*.log
218 # exclude Fluentd logs
219 exclude_path /var/log/containers/*fluentd*.log
220 pos_file /opt/iamguarded/fluentd/logs/buffers/fluentd-docker.pos
226 time_format %Y-%m-%dT%H:%M:%S.%NZ
229 # enrich with kubernetes metadata
230 {{- if or .Values.forwarder.serviceAccount.create .Values.forwarder.serviceAccount.name }}
231 <filter kubernetes.**>
232 @type kubernetes_metadata
235 fluentd-output.conf: |
236 # Throw the healthcheck to the standard output instead of forwarding it
237 <match fluentd.healthcheck>
240 {{- if .Values.aggregator.enabled }}
241 # Forward all logs to the aggregators
244 {{- if .Values.tls.enabled }}
246 tls_cert_path /opt/iamguarded/fluentd/certs/out_forward/ca.crt
247 tls_client_cert_path /opt/iamguarded/fluentd/certs/out_forward/tls.crt
248 tls_client_private_key_path /opt/iamguarded/fluentd/certs/out_forward/tls.key
251 {{- $fullName := (include "common.names.fullname" .) }}
253 {{- $domain := default "cluster.local" .Values.clusterDomain }}
254 {{- $port := .Values.aggregator.port | int }}
255 {{- range $i, $e := until (.Values.aggregator.replicaCount | int) }}
257 {{ printf "host %s-%d.%s-headless.%s.svc.%s" $fullName $i $fullName $global.Release.Namespace $domain }}
258 {{ printf "port %d" $port }}
266 path /opt/iamguarded/fluentd/logs/buffers/logs.buffer
272 # Send the logs to the standard output
278 # Prometheus Exporter Plugin
279 # input plugin that exports metrics
282 port {{ .Values.metrics.service.port }}
284 # input plugin that collects metrics from MonitorAgent
286 @type prometheus_monitor
291 # input plugin that collects metrics for output plugin
293 @type prometheus_output_monitor
298 # input plugin that collects metrics for in_tail plugin
300 @type prometheus_tail_monitor
305 ## @param forwarder.extraArgs Extra arguments for the Fluentd command line
306 ## ref: https://docs.fluentd.org/deployment/command-line-option
309 ## @param forwarder.extraEnvVars Extra environment variables to pass to the container
311 ## - name: MY_ENV_VAR
315 ## @param forwarder.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Fluentd Forwarder nodes
318 ## @param forwarder.extraEnvVarsSecret Name of existing Secret containing extra env vars for Fluentd Forwarder nodes
320 extraEnvVarsSecret: ""
321 ## @param forwarder.containerPorts [array] Ports the forwarder containers will listen on
324 ## - name: syslog-tcp
325 ## containerPort: 5140
327 ## - name: syslog-udp
328 ## containerPort: 5140
331 ## containerPort: 24224
336 ## Service parameters
339 ## @param forwarder.service.type Kubernetes service type (`ClusterIP`, `NodePort`, or `LoadBalancer`) for the forwarders
342 ## @param forwarder.service.ports [object] Array containing the forwarder service ports
347 ## targetPort: syslog-udp
352 ## targetPort: syslog-tcp
363 ## @param forwarder.service.loadBalancerIP loadBalancerIP if service type is `LoadBalancer` (optional, cloud specific)
364 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
367 ## @param forwarder.service.loadBalancerSourceRanges Addresses that are allowed when service is LoadBalancer
368 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
370 ## loadBalancerSourceRanges:
373 loadBalancerSourceRanges: []
374 ## @param forwarder.service.externalTrafficPolicy Fluentd Forwarder service external traffic policy
375 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
377 externalTrafficPolicy: Cluster
378 ## @param forwarder.service.clusterIP Static clusterIP or None for headless services
379 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#choosing-your-own-ip-address
384 ## @param forwarder.service.annotations Provide any additional annotations which may be required
387 ## @param forwarder.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
388 ## If "ClientIP", consecutive client requests will be directed to the same Pod
389 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
391 sessionAffinity: None
392 ## @param forwarder.service.sessionAffinityConfig Additional settings for the sessionAffinity
393 ## sessionAffinityConfig:
395 ## timeoutSeconds: 300
397 sessionAffinityConfig: {}
398 ## @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 ## @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".
405 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
408 ## @param forwarder.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
411 ## @param forwarder.networkPolicy.allowExternal Don't require server label for connections
412 ## The Policy model to apply. When set to false, only pods with the correct
413 ## server label will have network access to the ports server is listening
414 ## on. When true, server will accept connections from any source
415 ## (with the correct destination port).
418 ## @param forwarder.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
420 allowExternalEgress: true
421 ## @param forwarder.networkPolicy.kubeAPIServerPorts [array] List of possible endpoints to kube-apiserver (limit to your cluster settings to increase security)
423 kubeAPIServerPorts: [443, 6443, 8443]
424 ## @param forwarder.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
434 ## - matchExpressions:
440 ## @param forwarder.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
450 ## - matchExpressions:
457 ## @param forwarder.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
458 ## @param forwarder.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
460 ingressNSMatchLabels: {}
461 ingressNSPodMatchLabels: {}
462 ## Configure extra options for startup probe
463 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
464 ## @param forwarder.startupProbe.enabled Enable startupProbe
465 ## @param forwarder.startupProbe.httpGet.path Request path for startupProbe
466 ## @param forwarder.startupProbe.httpGet.port Port for startupProbe
467 ## @param forwarder.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
468 ## @param forwarder.startupProbe.periodSeconds Period seconds for startupProbe
469 ## @param forwarder.startupProbe.timeoutSeconds Timeout seconds for startupProbe
470 ## @param forwarder.startupProbe.failureThreshold Failure threshold for startupProbe
471 ## @param forwarder.startupProbe.successThreshold Success threshold for startupProbe
476 path: /fluentd.healthcheck?json=%7B%22ping%22%3A+%22pong%22%7D
478 initialDelaySeconds: 60
483 ## Configure extra options for liveness probe
484 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
485 ## @param forwarder.livenessProbe.enabled Enable livenessProbe
486 ## @param forwarder.livenessProbe.tcpSocket.port Port for livenessProbe
487 ## @param forwarder.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
488 ## @param forwarder.livenessProbe.periodSeconds Period seconds for livenessProbe
489 ## @param forwarder.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
490 ## @param forwarder.livenessProbe.failureThreshold Failure threshold for livenessProbe
491 ## @param forwarder.livenessProbe.successThreshold Success threshold for livenessProbe
497 initialDelaySeconds: 60
502 ## Configure extra options for readiness probe
503 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
504 ## @param forwarder.readinessProbe.enabled Enable readinessProbe
505 ## @param forwarder.readinessProbe.httpGet.path Request path for readinessProbe
506 ## @param forwarder.readinessProbe.httpGet.port Port for readinessProbe
507 ## @param forwarder.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
508 ## @param forwarder.readinessProbe.periodSeconds Period seconds for readinessProbe
509 ## @param forwarder.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
510 ## @param forwarder.readinessProbe.failureThreshold Failure threshold for readinessProbe
511 ## @param forwarder.readinessProbe.successThreshold Success threshold for readinessProbe
516 path: /fluentd.healthcheck?json=%7B%22ping%22%3A+%22pong%22%7D
518 initialDelaySeconds: 5
523 ## @param forwarder.customStartupProbe Custom liveness probe for the Fluend Forwarder
525 customStartupProbe: {}
526 ## @param forwarder.customLivenessProbe Custom liveness probe for the Fluend Forwarder
528 customLivenessProbe: {}
529 ## @param forwarder.customReadinessProbe Custom rediness probe for the Fluend Forwarder
531 customReadinessProbe: {}
532 ## @param forwarder.updateStrategy.type Set up update strategy.
533 ## ref: https://kubernetes.io/docs/tasks/manage-daemon/update-daemon-set/#daemonset-update-strategy
536 ## type: RollingUpdate
539 ## maxUnavailable: 25%
543 ## Forwarder containers' resource requests and limits
544 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
545 ## We usually recommend not to specify default resources and to leave this as a conscious
546 ## choice for the user. This also increases chances charts run on environments with little
547 ## resources, such as Minikube. If you do want to specify resources, uncomment the following
548 ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
549 ## @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).
550 ## More information: https://github.com/iamguarded/charts/blob/main/iamguarded/common/templates/_resources.tpl#L15
552 resourcesPreset: "nano"
553 ## @param forwarder.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
564 ## @param forwarder.priorityClassName Set Priority Class Name to allow priority control over other pods
565 ## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
567 priorityClassName: ""
568 ## @param forwarder.schedulerName Name of the k8s scheduler (other than default)
569 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
572 ## @param forwarder.topologySpreadConstraints Topology Spread Constraints for pod assignment
573 ## https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
574 ## The value is evaluated as a template
576 topologySpreadConstraints: []
577 ## @param forwarder.podAffinityPreset Forwarder Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
578 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
580 podAffinityPreset: ""
581 ## @param forwarder.podAntiAffinityPreset Forwarder Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
582 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
584 podAntiAffinityPreset: ""
585 ## Node affinity preset
586 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
589 ## @param forwarder.nodeAffinityPreset.type Forwarder Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
592 ## @param forwarder.nodeAffinityPreset.key Forwarder Node label key to match Ignored if `affinity` is set.
594 ## key: "kubernetes.io/e2e-az-name"
597 ## @param forwarder.nodeAffinityPreset.values Forwarder Node label values to match. Ignored if `affinity` is set.
604 ## @param forwarder.affinity Forwarder Affinity for pod assignment
605 ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
606 ## Note: podAffinityPreset, podAntiAffinityPreset, and nodeAffinityPreset will be ignored when it's set
609 ## @param forwarder.nodeSelector Forwarder Node labels for pod assignment
610 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
613 ## @param forwarder.tolerations Forwarder Tolerations for pod assignment
614 ## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
617 ## @param forwarder.podAnnotations Pod annotations
618 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
621 ## @param forwarder.podLabels Extra labels to add to Pod
624 ## Pods Service Account
625 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
628 ## @param forwarder.serviceAccount.create Specify whether a ServiceAccount should be created.
631 ## @param forwarder.serviceAccount.name The name of the ServiceAccount to create
632 ## If not set and create is true, a name is generated using the common.names.fullname template
634 ## @param forwarder.serviceAccount.annotations Additional Service Account annotations (evaluated as a template)
637 ## @param forwarder.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
639 automountServiceAccountToken: false
641 ## ref: https://kubernetes.io/docs/admin/authorization/rbac/
642 ## @param forwarder.rbac.create Specify whether RBAC resources should be created and used, allowing the get, watch and list of pods/namespaces
643 ## @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
648 ## Persist data to a persistent volume
651 ## @param forwarder.persistence.enabled Enable persistence volume for the forwarder
654 ## @param forwarder.persistence.hostPath.path Directory from the host node's filesystem to mount as hostPath volume for persistence.
655 ## The host directory you chose is mounted into /opt/iamguarded/fluentd/logs/buffers in your Pod
656 ## Example use case: mount host directory /tmp/buffer (if the directory doesn't exist, it creates it) into forwarder pod.
663 path: /opt/iamguarded/fluentd/logs/buffers
664 ## @param forwarder.command Override default container command (useful when using custom images)
667 ## @param forwarder.args Override default container args (useful when using custom images)
670 ## @param forwarder.lifecycleHooks Additional lifecycles to add to the pods
671 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/
675 ## command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"]
678 ## command: ["/bin/sh","-c","nginx -s quit; while killall -0 nginx; do sleep 1; done"]
681 ## install-extra-gems and tmp-dir-permissions containers resource requests and limits
682 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
683 ## We usually recommend not to specify default resources and to leave this as a conscious
684 ## choice for the user. This also increases chances charts run on environments with little
685 ## resources, such as Minikube. If you do want to specify resources, uncomment the following
686 ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
687 ## @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).
688 ## More information: https://github.com/iamguarded/charts/blob/main/iamguarded/common/templates/_resources.tpl#L15
690 initResourcePresets: "nano"
691 ## @param forwarder.initResources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
702 ## @param forwarder.initContainers Additional init containers to add to the pods
705 ## - name: your-image-name
707 ## imagePullPolicy: Always
710 ## @param forwarder.sidecars Add sidecars to forwarder pods
714 ## - name: your-image-name
716 ## imagePullPolicy: Always
719 ## containerPort: 1234
722 ## @param forwarder.extraVolumes Extra volumes
723 ## Example Use Case: mount systemd journal volume
726 ## path: /run/log/journal/
729 ## @param forwarder.extraVolumeMounts Mount extra volume(s)
731 ## mountPath: /run/log/journal/
733 extraVolumeMounts: []
734 ## @param forwarder.initScripts Dictionary of init scripts. Evaluated as a template.
735 ## Specify dictionary of scripts to be run at first boot
736 ## Alternatively, you can put your scripts under the files/docker-entrypoint-initdb.d directory
739 ## my_init_script.sh: |
741 ## echo "Do something."
744 ## @param forwarder.initScriptsCM ConfigMap with the init scripts. Evaluated as a template.
745 ## Note: This will override initScripts
748 ## @param forwarder.initScriptsSecret Secret containing `/docker-entrypoint-initdb.d` scripts to be executed at initialization time that contain sensitive data. Evaluated as a template.
750 initScriptsSecret: ""
752## Aggregator parameters
755 ## @param aggregator.enabled Enable Fluentd aggregator statefulset
758 ## @param aggregator.replicaCount Number of aggregator pods to deploy in the Stateful Set
761 ## K8s Security Context for Aggregator pods
762 ## https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
763 ## @param aggregator.podSecurityContext.enabled Enable security context for aggregator pods
764 ## @param aggregator.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
765 ## @param aggregator.podSecurityContext.sysctls Set kernel settings using the sysctl interface
766 ## @param aggregator.podSecurityContext.supplementalGroups Set filesystem extra groups
767 ## @param aggregator.podSecurityContext.fsGroup Group ID for aggregator's containers filesystem
771 fsGroupChangePolicy: Always
773 supplementalGroups: []
775 ## @param aggregator.automountServiceAccountToken Mount Service Account token in pod
777 automountServiceAccountToken: false
778 ## @param aggregator.hostAliases Add deployment host aliases
779 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
782 ## K8s Security Context for Aggregator containers
783 ## https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
784 ## @param aggregator.containerSecurityContext.enabled Enable security context for the aggregator container
785 ## @param aggregator.containerSecurityContext.privileged Run as privileged
786 ## @param aggregator.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
787 ## @param aggregator.containerSecurityContext.runAsUser User ID for aggregator's containers
788 ## @param aggregator.containerSecurityContext.runAsGroup Group ID for aggregator's containers
789 ## @param aggregator.containerSecurityContext.allowPrivilegeEscalation Allow Privilege Escalation
790 ## @param aggregator.containerSecurityContext.readOnlyRootFilesystem Require the use of a read only root file system
791 ## @param aggregator.containerSecurityContext.capabilities.drop [array] Drop capabilities for the securityContext
792 ## @param aggregator.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
794 containerSecurityContext:
800 allowPrivilegeEscalation: false
801 readOnlyRootFilesystem: true
806 type: "RuntimeDefault"
807 ## @param aggregator.terminationGracePeriodSeconds Duration in seconds the pod needs to terminate gracefully
808 ## https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/
810 terminationGracePeriodSeconds: 30
811 ## @param aggregator.extraGems List of extra gems to be installed. Can be used to install additional fluentd plugins.
814 ## @param aggregator.configFile Name of the config file that will be used by Fluentd at launch under the `/opt/iamguarded/fluentd/conf` directory
816 configFile: fluentd.conf
817 ## @param aggregator.configMap Name of the config map that contains the Fluentd configuration files
820 ## @param aggregator.configMapFiles [object] Files to be added to be config map. Ignored if `aggregator.configMap` is set
824 # Ignore fluentd own events
829 @include fluentd-inputs.conf
830 @include fluentd-output.conf
831 {{- if .Values.metrics.enabled }}
832 @include metrics.conf
834 fluentd-inputs.conf: |
835 # TCP input to receive logs from
836 {{- if .Values.aggregator.port }}
840 port {{ .Values.aggregator.port }}
841 {{- if .Values.tls.enabled }}
843 ca_path /opt/iamguarded/fluentd/certs/in_forward/ca.crt
844 cert_path /opt/iamguarded/fluentd/certs/in_forward/tls.crt
845 private_key_path /opt/iamguarded/fluentd/certs/in_forward/tls.key
846 client_cert_auth true
852 # HTTP input for the liveness and readiness probes
858 fluentd-output.conf: |
859 # Throw the healthcheck to the standard output
860 <match fluentd.healthcheck>
864 # Send the logs to the standard output
869 # Prometheus Exporter Plugin
870 # input plugin that exports metrics
873 port {{ .Values.metrics.service.port }}
876 # input plugin that collects metrics from MonitorAgent
878 @type prometheus_monitor
884 # input plugin that collects metrics for output plugin
886 @type prometheus_output_monitor
891 ## @param aggregator.port Port the Aggregator container will listen for logs. Leave it blank to ignore.
892 ## You can specify other ports in the aggregator.containerPorts parameter
895 ## @param aggregator.extraArgs Extra arguments for the Fluentd command line
896 ## ref: https://docs.fluentd.org/deployment/command-line-option
899 ## @param aggregator.extraEnvVars Extra environment variables to pass to the container
901 ## - name: MY_ENV_VAR
905 ## @param aggregator.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Fluentd Aggregator nodes
908 ## @param aggregator.extraEnvVarsSecret Name of existing Secret containing extra env vars for Fluentd Aggregator nodes
910 extraEnvVarsSecret: ""
911 ## @param aggregator.containerPorts [array] Ports the aggregator containers will listen on
915 # containerPort: 24222
920 ## Service parameters
923 ## @param aggregator.service.type Kubernetes service type (`ClusterIP`, `NodePort`, or `LoadBalancer`) for the aggregators
926 ## @param aggregator.service.ports [object] Array containing the aggregator service ports
937 ## @param aggregator.service.loadBalancerIP loadBalancerIP if service type is `LoadBalancer` (optional, cloud specific)
938 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
941 ## @param aggregator.service.loadBalancerSourceRanges Addresses that are allowed when service is LoadBalancer
942 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
944 ## loadBalancerSourceRanges:
946 loadBalancerSourceRanges: []
947 ## @param aggregator.service.clusterIP Static clusterIP or None for headless services
948 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#choosing-your-own-ip-address
953 ## @param aggregator.service.annotations Provide any additional annotations which may be required
956 ## @param aggregator.service.externalTrafficPolicy Fluentd Aggregator service external traffic policy
957 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
959 externalTrafficPolicy: Cluster
960 ## @param aggregator.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
961 ## If "ClientIP", consecutive client requests will be directed to the same Pod
962 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
964 sessionAffinity: None
965 ## @param aggregator.service.sessionAffinityConfig Additional settings for the sessionAffinity
966 ## sessionAffinityConfig:
968 ## timeoutSeconds: 300
970 sessionAffinityConfig: {}
971 ## @param aggregator.service.annotationsHeadless Provide any additional annotations which may be required on headless service
973 annotationsHeadless: {}
974 ## Headless service properties
977 ## @param aggregator.service.headless.annotations Annotations for the headless service.
980 ## @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 ## @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".
987 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
990 ## @param aggregator.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
993 ## @param aggregator.networkPolicy.allowExternal Don't require server label for connections
994 ## The Policy model to apply. When set to false, only pods with the correct
995 ## server label will have network access to the ports server is listening
996 ## on. When true, server will accept connections from any source
997 ## (with the correct destination port).
1000 ## @param aggregator.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
1002 allowExternalEgress: true
1003 ## @param aggregator.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
1013 ## - matchExpressions:
1019 ## @param aggregator.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
1029 ## - matchExpressions:
1036 ## @param aggregator.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
1037 ## @param aggregator.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
1039 ingressNSMatchLabels: {}
1040 ingressNSPodMatchLabels: {}
1041 ## Configure the ingress resource that allows you to access the
1042 ## Fluentd aggregator. Set up the URL
1043 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/
1046 ## @param aggregator.ingress.enabled Set to true to enable ingress record generation
1049 ## DEPRECATED: Use ingress.annotations instead of ingress.certManager
1050 ## certManager: false
1053 ## @param aggregator.ingress.pathType Ingress Path type. How the path matching is interpreted
1055 pathType: ImplementationSpecific
1056 ## @param aggregator.ingress.apiVersion Override API Version (automatically detected if not set)
1059 ## @param aggregator.ingress.hostname Default host for the ingress resource
1061 hostname: fluentd.local
1062 ## @param aggregator.ingress.path Default path for the ingress resource
1063 ## You may need to set this to '/*' in order to use this with ALB ingress controllers.
1066 ## @param aggregator.ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
1067 ## For a full list of possible ingress annotations, please see
1068 ## ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/annotations.md
1069 ## Use this parameter to set the required annotations for cert-manager, see
1070 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
1074 ## kubernetes.io/ingress.class: nginx
1075 ## cert-manager.io/cluster-issuer: cluster-issuer-name
1078 ## @param aggregator.ingress.tls Enable TLS configuration for the hostname defined at ingress.hostname parameter
1079 ## TLS certificates will be retrieved from a TLS secret with name: {{- printf "%s-tls" .Values.aggregator.ingress.hostname | trunc 63 | trimSuffix "-" }}
1080 ## You can use the ingress.secrets parameter to create this TLS secret or rely on cert-manager to create it
1083 ## @param aggregator.ingress.extraHosts The list of additional hostnames to be covered with this ingress record.
1084 ## Most likely the hostname above will be enough, but in the event more hosts are needed, this is an array
1086 ## - name: fluentd.local
1090 ## @param aggregator.ingress.extraPaths Any additional arbitrary paths that may need to be added to the ingress under the main host.
1091 ## For example: The ALB ingress controller requires a special rule for handling SSL redirection.
1095 ## serviceName: ssl-redirect
1096 ## servicePort: use-annotation
1099 ## @param aggregator.ingress.extraTls The tls configuration for additional hostnames to be covered with this ingress record.
1100 ## see: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
1104 ## secretName: fluentd.local-tls
1107 ## @param aggregator.ingress.secrets If you're providing your own certificates, please use this to add the certificates as secrets
1108 ## key and certificate should start with -----BEGIN CERTIFICATE----- or
1109 ## -----BEGIN RSA PRIVATE KEY-----
1111 ## name should line up with a tlsSecret set further up
1112 ## If you're using cert-manager, this is unneeded, as it will create the secret for you if it is not set
1114 ## It is also possible to create and manage the certificates outside of this helm chart
1115 ## Please see README.md for more information
1117 ## - name: fluentd.local-tls
1122 ## @param aggregator.ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
1123 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
1124 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
1126 ingressClassName: ""
1127 ## @param aggregator.ingress.extraRules Additional rules to be covered with this ingress record
1128 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
1131 ## - host: example.local
1136 ## name: example-svc
1141 ## Configure extra options for startup probe
1142 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
1143 ## @param aggregator.startupProbe.enabled Enable startupProbe
1144 ## @param aggregator.startupProbe.httpGet.path Request path for startupProbe
1145 ## @param aggregator.startupProbe.httpGet.port Port for startupProbe
1146 ## @param aggregator.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
1147 ## @param aggregator.startupProbe.periodSeconds Period seconds for startupProbe
1148 ## @param aggregator.startupProbe.timeoutSeconds Timeout seconds for startupProbe
1149 ## @param aggregator.startupProbe.failureThreshold Failure threshold for startupProbe
1150 ## @param aggregator.startupProbe.successThreshold Success threshold for startupProbe
1155 path: /fluentd.healthcheck?json=%7B%22ping%22%3A+%22pong%22%7D
1157 initialDelaySeconds: 60
1162 ## Configure extra options for liveness probe
1163 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
1164 ## @param aggregator.livenessProbe.enabled Enable livenessProbe
1165 ## @param aggregator.livenessProbe.tcpSocket.port Port for livenessProbe
1166 ## @param aggregator.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
1167 ## @param aggregator.livenessProbe.periodSeconds Period seconds for livenessProbe
1168 ## @param aggregator.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
1169 ## @param aggregator.livenessProbe.failureThreshold Failure threshold for livenessProbe
1170 ## @param aggregator.livenessProbe.successThreshold Success threshold for livenessProbe
1176 initialDelaySeconds: 60
1181 ## Configure extra options for readiness probe
1182 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
1183 ## @param aggregator.readinessProbe.enabled Enable readinessProbe
1184 ## @param aggregator.readinessProbe.httpGet.path Request path for readinessProbe
1185 ## @param aggregator.readinessProbe.httpGet.port Port for readinessProbe
1186 ## @param aggregator.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
1187 ## @param aggregator.readinessProbe.periodSeconds Period seconds for readinessProbe
1188 ## @param aggregator.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
1189 ## @param aggregator.readinessProbe.failureThreshold Failure threshold for readinessProbe
1190 ## @param aggregator.readinessProbe.successThreshold Success threshold for readinessProbe
1195 path: /fluentd.healthcheck?json=%7B%22ping%22%3A+%22pong%22%7D
1197 initialDelaySeconds: 5
1202 ## @param aggregator.customStartupProbe Custom liveness probe for the Fluentd Aggregator
1204 customStartupProbe: {}
1205 ## @param aggregator.customLivenessProbe Custom liveness probe for the Fluentd Aggregator
1207 customLivenessProbe: {}
1208 ## @param aggregator.customReadinessProbe Custom rediness probe for the Fluentd Aggregator
1210 customReadinessProbe: {}
1211 ## @param aggregator.updateStrategy.type Set up update strategy.
1212 ## ref: https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#updating-statefulsets
1215 ## type: RollingUpdate
1218 ## maxUnavailable: 25%
1222 ## Aggregator containers' resource requests and limits
1223 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1224 ## We usually recommend not to specify default resources and to leave this as a conscious
1225 ## choice for the user. This also increases chances charts run on environments with little
1226 ## resources, such as Minikube. If you do want to specify resources, uncomment the following
1227 ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
1228 ## @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).
1229 ## More information: https://github.com/iamguarded/charts/blob/main/iamguarded/common/templates/_resources.tpl#L15
1231 resourcesPreset: "nano"
1232 ## @param aggregator.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1243 ## @param aggregator.priorityClassName Fluentd Aggregator pods' priorityClassName
1245 priorityClassName: ""
1246 ## @param aggregator.schedulerName Name of the k8s scheduler (other than default)
1247 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
1250 ## @param aggregator.topologySpreadConstraints Topology Spread Constraints for pod assignment
1251 ## https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
1252 ## The value is evaluated as a template
1254 topologySpreadConstraints: []
1255 ## @param aggregator.podManagementPolicy podManagementPolicy to manage scaling operation of Fluentd Aggregator pods
1256 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
1258 podManagementPolicy: ""
1259 ## @param aggregator.podAffinityPreset Aggregator Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1260 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1262 podAffinityPreset: ""
1263 ## @param aggregator.podAntiAffinityPreset Aggregator Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1264 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1266 podAntiAffinityPreset: soft
1267 ## Node affinity preset
1268 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
1271 ## @param aggregator.nodeAffinityPreset.type Aggregator Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1274 ## @param aggregator.nodeAffinityPreset.key Aggregator Node label key to match Ignored if `affinity` is set.
1277 ## @param aggregator.nodeAffinityPreset.values Aggregator Node label values to match. Ignored if `affinity` is set.
1284 ## @param aggregator.affinity Aggregator Affinity for pod assignment
1285 ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
1286 ## Note: podAffinityPreset, podAntiAffinityPreset, and nodeAffinityPreset will be ignored when it's set
1289 ## @param aggregator.nodeSelector Aggregator Node labels for pod assignment
1290 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1293 ## @param aggregator.tolerations Aggregator Tolerations for pod assignment
1294 ## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1297 ## @param aggregator.podAnnotations Pod annotations
1298 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
1301 ## @param aggregator.podLabels Extra labels to add to Pod
1304 ## Pods Service Account
1305 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
1308 ## @param aggregator.serviceAccount.create Specify whether a ServiceAccount should be created
1311 ## @param aggregator.serviceAccount.name The name of the ServiceAccount to create
1312 ## If not set and create is true, a name is generated using the common.names.fullname template
1314 ## @param aggregator.serviceAccount.annotations Additional Service Account annotations (evaluated as a template)
1317 ## @param aggregator.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
1319 automountServiceAccountToken: false
1320 ## Autoscaling parameters
1321 ## This is not recommended in a forwarder+aggregator architecture
1322 ## @param aggregator.autoscaling.enabled Create an Horizontal Pod Autoscaler
1323 ## @param aggregator.autoscaling.minReplicas Minimum number of replicas for the HPA
1324 ## @param aggregator.autoscaling.maxReplicas Maximum number of replicas for the HPA
1325 ## @param aggregator.autoscaling.metrics [array] Metrics for the HPA to manage the scaling
1326 ## @param aggregator.autoscaling.behavior HPA Behavior
1338 averageUtilization: 60
1344 averageUtilization: 60
1346 ## Persist data to a persistent volume
1349 ## @param aggregator.persistence.enabled Enable persistence volume for the aggregator
1352 ## @param aggregator.persistence.storageClass Persistent Volume storage class
1353 ## If defined, storageClassName: <storageClass>
1354 ## If set to "-", storageClassName: "", which disables dynamic provisioning
1355 ## If undefined (the default) or set to null, no storageClassName spec is
1356 ## set, choosing the default provisioner. (gp2 on AWS, standard on
1357 ## GKE, AWS & OpenStack)
1360 ## @param aggregator.persistence.accessModes Persistent Volume access modes
1364 ## @param aggregator.persistence.size Persistent Volume size
1367 ## @param aggregator.persistence.selector Selector to match an existing Persistent Volume (this value is evaluated as a template)
1372 ## @param aggregator.persistence.annotations Persistent Volume Claim annotations
1375 ## @param aggregator.command Override default container command (useful when using custom images)
1378 ## @param aggregator.args Override default container args (useful when using custom images)
1381 ## @param aggregator.lifecycleHooks Additional lifecycles to add to the pods
1382 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/
1386 ## command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"]
1389 ## command: ["/bin/sh","-c","nginx -s quit; while killall -0 nginx; do sleep 1; done"]
1392 ## install-extra-gems and tmp-dir-permissions containers resource requests and limits
1393 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1394 ## We usually recommend not to specify default resources and to leave this as a conscious
1395 ## choice for the user. This also increases chances charts run on environments with little
1396 ## resources, such as Minikube. If you do want to specify resources, uncomment the following
1397 ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
1398 ## @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).
1399 ## More information: https://github.com/iamguarded/charts/blob/main/iamguarded/common/templates/_resources.tpl#L15
1401 initResourcePresets: "nano"
1402 ## @param aggregator.initResources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1413 ## @param aggregator.initContainers Add init containers to aggregator pods
1417 ## - name: do-something
1419 ## command: ['do', 'something']
1422 ## @param aggregator.sidecars Add sidecars to aggregator pods
1426 ## - name: your-image-name
1427 ## image: your-image
1428 ## imagePullPolicy: Always
1431 ## containerPort: 1234
1434 ## @param aggregator.extraVolumes Extra volumes
1435 ## Example Use Case: mount an emptyDir into /tmp to support running with readOnlyRootFileSystem
1440 ## @param aggregator.extraVolumeMounts Mount extra volume(s)
1444 extraVolumeMounts: []
1445 ## @param aggregator.extraVolumeClaimTemplates Optionally specify extra list of additional volume claim templates for the Fluentd Aggregator pods in StatefulSet
1447 extraVolumeClaimTemplates: []
1448 ## @param aggregator.initScripts Dictionary of init scripts. Evaluated as a template.
1449 ## Specify dictionary of scripts to be run at first boot
1450 ## Alternatively, you can put your scripts under the files/docker-entrypoint-initdb.d directory
1453 ## my_init_script.sh: |
1455 ## echo "Do something."
1458 ## @param aggregator.initScriptsCM ConfigMap with the init scripts. Evaluated as a template.
1459 ## Note: This will override initScripts
1462 ## @param aggregator.initScriptsSecret Secret containing `/docker-entrypoint-initdb.d` scripts to be executed at initialization time that contain sensitive data. Evaluated as a template.
1464 initScriptsSecret: ""
1465 ## Pod Disruption Budget configuration
1466 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
1467 ## @param aggregator.pdb.create Enable/disable a Pod Disruption Budget creation
1468 ## @param aggregator.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
1469 ## @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.
1475## Prometheus Exporter / Metrics
1478 ## @param metrics.enabled Enable the export of Prometheus metrics
1481 ## Prometheus Exporter service parameters
1484 ## @param metrics.service.type Prometheus metrics service type
1487 ## @param metrics.service.port Prometheus metrics service port
1490 ## @param metrics.service.loadBalancerIP Load Balancer IP if the Prometheus metrics server type is `LoadBalancer`
1491 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
1494 ## @param metrics.service.clusterIP Prometheus metrics service Cluster IP
1499 ## @param metrics.service.loadBalancerSourceRanges Prometheus metrics service Load Balancer sources
1500 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1502 ## loadBalancerSourceRanges:
1505 loadBalancerSourceRanges: []
1506 ## @param metrics.service.externalTrafficPolicy Prometheus metrics service external traffic policy
1507 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
1509 externalTrafficPolicy: Cluster
1510 ## @param metrics.service.annotations [object] Annotations for the Prometheus Exporter service service
1511 ## If port or path annotation is provided the values will be used to in the prometheus ServiceMonitor CRD.
1514 prometheus.io/scrape: "true"
1515 prometheus.io/port: "24231"
1516 prometheus.io/path: "/metrics"
1517 ## @param metrics.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
1518 ## If "ClientIP", consecutive client requests will be directed to the same Pod
1519 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
1521 sessionAffinity: None
1522 ## @param metrics.service.sessionAffinityConfig Additional settings for the sessionAffinity
1523 ## sessionAffinityConfig:
1525 ## timeoutSeconds: 300
1527 sessionAffinityConfig: {}
1528 ## Prometheus Operator ServiceMonitor configuration
1531 ## @param metrics.serviceMonitor.enabled if `true`, creates a Prometheus Operator ServiceMonitor (also requires `metrics.enabled` to be `true`)
1534 ## @param metrics.serviceMonitor.namespace Namespace in which Prometheus is running
1537 ## @param metrics.serviceMonitor.interval Interval at which metrics should be scraped.
1538 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
1543 ## @param metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
1544 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
1546 ## scrapeTimeout: 10s
1549 ## @param metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
1552 ## @param metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping
1553 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
1556 ## @param metrics.serviceMonitor.metricRelabelings MetricRelabelConfigs to apply to samples before ingestion
1557 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
1559 metricRelabelings: []
1560 ## @param metrics.serviceMonitor.selector Prometheus instance selector labels
1561 ## ref: https://github.com/iamguarded/charts/tree/main/iamguarded/prometheus-operator#prometheus-configuration
1564 ## prometheus: my-prometheus
1567 ## @param metrics.serviceMonitor.labels ServiceMonitor extra labels
1570 ## @param metrics.serviceMonitor.annotations ServiceMonitor annotations
1573 ## @param metrics.serviceMonitor.honorLabels honorLabels chooses the metric's labels on collisions with target labels
1576 ## @param metrics.serviceMonitor.path path defines the path that promethues will use to pull metrics from the container
1579## Enable internal SSL/TLS encryption
1582 ## @param tls.enabled Enable TLS/SSL encrytion for internal communications
1585 ## @param tls.autoGenerated Generate automatically self-signed TLS certificates.
1587 autoGenerated: false
1588 ## @param tls.forwarder.existingSecret Name of the existing secret containing the TLS certificates for the Fluentd forwarder
1592 ## @param tls.aggregator.existingSecret Name of the existing secret containing the TLS certificates for the Fluentd aggregator