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.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
26 ## - myRegistryKeySecretName
29 defaultStorageClass: ""
31 ## Security parameters
34 ## @param global.security.allowInsecureImages Allows skipping image verification
35 allowInsecureImages: false
36 ## Compatibility adaptations for Kubernetes platforms
39 ## Compatibility adaptations for 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)
44 adaptSecurityContext: auto
46## @section Common parameters
48## @param kubeVersion Force target Kubernetes version (using Helm capabilities if not set)
51## @param nameOverride String to partially override common.names.fullname template (will maintain the release name)
54## @param fullnameOverride String to fully override common.names.fullname template
57## @param commonAnnotations Annotations to add to all deployed objects
60## @param commonLabels Labels to add to all deployed objects
63## @param clusterDomain Cluster Domain
65clusterDomain: cluster.local
66## @param extraDeploy Array of extra objects to deploy with the release
69## Enable diagnostic mode in the deployment
72 ## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden)
75 ## @param diagnosticMode.command Command to override all containers in the deployment
79 ## @param diagnosticMode.args Args to override all containers in the deployment
83## @section Fluentd parameters
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
96 repository: chainguard-private/fluentd-iamguarded
98 digest: sha256:4b3cac5fc98bf183a9c360ba289659fbec7294fa08013f8f1f7c48483111f6e7
99 ## Specify a imagePullPolicy
100 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
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/
108 ## - myRegistryKeySecretName
114## @param varlog.readonly Set /var/log volume mount readOnly
118## Forwarder parameters
121 ## @param forwarder.enabled Enable forwarder daemonset
124 ## @param forwarder.daemonUser Forwarder daemon user and group (set to root by default because it reads from host paths)
127 ## @param forwarder.daemonGroup Fluentd forwarder daemon system group
130 ## @param forwarder.automountServiceAccountToken Mount Service Account token in pod
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/
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
147 fsGroupChangePolicy: Always
149 supplementalGroups: []
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
163 containerSecurityContext:
169 allowPrivilegeEscalation: false
170 readOnlyRootFilesystem: true
175 type: "RuntimeDefault"
176 ## @param forwarder.hostNetwork Enable use of host network
179 ## @param forwarder.dnsPolicy Pod-specific DNS policy
182 ## @param forwarder.terminationGracePeriodSeconds Duration in seconds the pod needs to terminate gracefully
183 ## https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/
185 terminationGracePeriodSeconds: 30
186 ## @param forwarder.extraGems List of extra gems to be installed. Can be used to install additional fluentd plugins.
189 ## @param forwarder.configFile Name of the config file that will be used by Fluentd at launch under the `/opt/iamguarded/fluentd/conf` directory
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
196 ## @param forwarder.configMapFiles [object] Files to be added to be config map. Ignored if `forwarder.configMap` is set
200 # Ignore fluentd own events
205 @include fluentd-inputs.conf
206 @include fluentd-output.conf
207 {{- if .Values.metrics.enabled }}
208 @include metrics.conf
210 fluentd-inputs.conf: |
211 # HTTP input for the liveness and readiness probes
216 # Get the logs from the containers running in the node
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
228 time_format %Y-%m-%dT%H:%M:%S.%NZ
231 # enrich with kubernetes metadata
232 {{- if or .Values.forwarder.serviceAccount.create .Values.forwarder.serviceAccount.name }}
233 <filter kubernetes.**>
234 @type kubernetes_metadata
237 fluentd-output.conf: |
238 # Throw the healthcheck to the standard output instead of forwarding it
239 <match fluentd.healthcheck>
242 {{- if .Values.aggregator.enabled }}
243 # Forward all logs to the aggregators
246 {{- if .Values.tls.enabled }}
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
253 {{- $fullName := (include "common.names.fullname" .) }}
255 {{- $domain := default "cluster.local" .Values.clusterDomain }}
256 {{- $port := .Values.aggregator.port | int }}
257 {{- range $i, $e := until (.Values.aggregator.replicaCount | int) }}
259 {{ printf "host %s-%d.%s-headless.%s.svc.%s" $fullName $i $fullName $global.Release.Namespace $domain }}
260 {{ printf "port %d" $port }}
268 path /opt/iamguarded/fluentd/logs/buffers/logs.buffer
274 # Send the logs to the standard output
280 # Prometheus Exporter Plugin
281 # input plugin that exports metrics
284 port {{ .Values.metrics.service.port }}
286 # input plugin that collects metrics from MonitorAgent
288 @type prometheus_monitor
293 # input plugin that collects metrics for output plugin
295 @type prometheus_output_monitor
300 # input plugin that collects metrics for in_tail plugin
302 @type prometheus_tail_monitor
307 ## @param forwarder.extraArgs Extra arguments for the Fluentd command line
308 ## ref: https://docs.fluentd.org/deployment/command-line-option
311 ## @param forwarder.extraEnvVars Extra environment variables to pass to the container
313 ## - name: MY_ENV_VAR
317 ## @param forwarder.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Fluentd Forwarder nodes
320 ## @param forwarder.extraEnvVarsSecret Name of existing Secret containing extra env vars for Fluentd Forwarder nodes
322 extraEnvVarsSecret: ""
323 ## @param forwarder.containerPorts [array] Ports the forwarder containers will listen on
326 ## - name: syslog-tcp
327 ## containerPort: 5140
329 ## - name: syslog-udp
330 ## containerPort: 5140
333 ## containerPort: 24224
338 ## Service parameters
341 ## @param forwarder.service.type Kubernetes service type (`ClusterIP`, `NodePort`, or `LoadBalancer`) for the forwarders
344 ## @param forwarder.service.ports [object] Array containing the forwarder service ports
349 ## targetPort: syslog-udp
354 ## targetPort: syslog-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
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
372 ## loadBalancerSourceRanges:
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
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
386 ## @param forwarder.service.annotations Provide any additional annotations which may be required
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
393 sessionAffinity: None
394 ## @param forwarder.service.sessionAffinityConfig Additional settings for the sessionAffinity
395 ## sessionAffinityConfig:
397 ## timeoutSeconds: 300
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).
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".
407 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
410 ## @param forwarder.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
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).
420 ## @param forwarder.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
422 allowExternalEgress: true
423 ## @param forwarder.networkPolicy.kubeAPIServerPorts [array] List of possible endpoints to kube-apiserver (limit to your cluster settings to increase security)
425 kubeAPIServerPorts: [443, 6443, 8443]
426 ## @param forwarder.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
436 ## - matchExpressions:
442 ## @param forwarder.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
452 ## - matchExpressions:
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
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
478 path: /fluentd.healthcheck?json=%7B%22ping%22%3A+%22pong%22%7D
480 initialDelaySeconds: 60
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
499 initialDelaySeconds: 60
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
518 path: /fluentd.healthcheck?json=%7B%22ping%22%3A+%22pong%22%7D
520 initialDelaySeconds: 5
525 ## @param forwarder.customStartupProbe Custom liveness probe for the Fluend Forwarder
527 customStartupProbe: {}
528 ## @param forwarder.customLivenessProbe Custom liveness probe for the Fluend Forwarder
530 customLivenessProbe: {}
531 ## @param forwarder.customReadinessProbe Custom rediness probe for the Fluend Forwarder
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
538 ## type: RollingUpdate
541 ## maxUnavailable: 25%
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
554 resourcesPreset: "nano"
555 ## @param forwarder.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
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/
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/
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
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
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
586 podAntiAffinityPreset: ""
587 ## Node affinity preset
588 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
591 ## @param forwarder.nodeAffinityPreset.type Forwarder Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
594 ## @param forwarder.nodeAffinityPreset.key Forwarder Node label key to match Ignored if `affinity` is set.
596 ## key: "kubernetes.io/e2e-az-name"
599 ## @param forwarder.nodeAffinityPreset.values Forwarder Node label values to match. Ignored if `affinity` is set.
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
611 ## @param forwarder.nodeSelector Forwarder Node labels for pod assignment
612 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
615 ## @param forwarder.tolerations Forwarder Tolerations for pod assignment
616 ## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
619 ## @param forwarder.podAnnotations Pod annotations
620 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
623 ## @param forwarder.podLabels Extra labels to add to Pod
626 ## Pods Service Account
627 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
630 ## @param forwarder.serviceAccount.create Specify whether a ServiceAccount should be created.
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
636 ## @param forwarder.serviceAccount.annotations Additional Service Account annotations (evaluated as a template)
639 ## @param forwarder.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
641 automountServiceAccountToken: false
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
650 ## Persist data to a persistent volume
653 ## @param forwarder.persistence.enabled Enable persistence volume for the forwarder
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.
665 path: /opt/iamguarded/fluentd/logs/buffers
666 ## @param forwarder.command Override default container command (useful when using custom images)
669 ## @param forwarder.args Override default container args (useful when using custom images)
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/
677 ## command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"]
680 ## command: ["/bin/sh","-c","nginx -s quit; while killall -0 nginx; do sleep 1; done"]
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
692 initResourcePresets: "nano"
693 ## @param forwarder.initResources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
704 ## @param forwarder.initContainers Additional init containers to add to the pods
707 ## - name: your-image-name
709 ## imagePullPolicy: Always
712 ## @param forwarder.sidecars Add sidecars to forwarder pods
716 ## - name: your-image-name
718 ## imagePullPolicy: Always
721 ## containerPort: 1234
724 ## @param forwarder.extraVolumes Extra volumes
725 ## Example Use Case: mount systemd journal volume
728 ## path: /run/log/journal/
731 ## @param forwarder.extraVolumeMounts Mount extra volume(s)
733 ## mountPath: /run/log/journal/
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
741 ## my_init_script.sh: |
743 ## echo "Do something."
746 ## @param forwarder.initScriptsCM ConfigMap with the init scripts. Evaluated as a template.
747 ## Note: This will override initScripts
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.
752 initScriptsSecret: ""
754## Aggregator parameters
757 ## @param aggregator.enabled Enable Fluentd aggregator statefulset
760 ## @param aggregator.replicaCount Number of aggregator pods to deploy in the Stateful Set
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
773 fsGroupChangePolicy: Always
775 supplementalGroups: []
777 ## @param aggregator.automountServiceAccountToken Mount Service Account token in pod
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/
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
796 containerSecurityContext:
802 allowPrivilegeEscalation: false
803 readOnlyRootFilesystem: true
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/
812 terminationGracePeriodSeconds: 30
813 ## @param aggregator.extraGems List of extra gems to be installed. Can be used to install additional fluentd plugins.
816 ## @param aggregator.configFile Name of the config file that will be used by Fluentd at launch under the `/opt/iamguarded/fluentd/conf` directory
818 configFile: fluentd.conf
819 ## @param aggregator.configMap Name of the config map that contains the Fluentd configuration files
822 ## @param aggregator.configMapFiles [object] Files to be added to be config map. Ignored if `aggregator.configMap` is set
826 # Ignore fluentd own events
831 @include fluentd-inputs.conf
832 @include fluentd-output.conf
833 {{- if .Values.metrics.enabled }}
834 @include metrics.conf
836 fluentd-inputs.conf: |
837 # TCP input to receive logs from
838 {{- if .Values.aggregator.port }}
842 port {{ .Values.aggregator.port }}
843 {{- if .Values.tls.enabled }}
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
854 # HTTP input for the liveness and readiness probes
860 fluentd-output.conf: |
861 # Throw the healthcheck to the standard output
862 <match fluentd.healthcheck>
866 # Send the logs to the standard output
871 # Prometheus Exporter Plugin
872 # input plugin that exports metrics
875 port {{ .Values.metrics.service.port }}
878 # input plugin that collects metrics from MonitorAgent
880 @type prometheus_monitor
886 # input plugin that collects metrics for output plugin
888 @type prometheus_output_monitor
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
897 ## @param aggregator.extraArgs Extra arguments for the Fluentd command line
898 ## ref: https://docs.fluentd.org/deployment/command-line-option
901 ## @param aggregator.extraEnvVars Extra environment variables to pass to the container
903 ## - name: MY_ENV_VAR
907 ## @param aggregator.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Fluentd Aggregator nodes
910 ## @param aggregator.extraEnvVarsSecret Name of existing Secret containing extra env vars for Fluentd Aggregator nodes
912 extraEnvVarsSecret: ""
913 ## @param aggregator.containerPorts [array] Ports the aggregator containers will listen on
917 # containerPort: 24222
922 ## Service parameters
925 ## @param aggregator.service.type Kubernetes service type (`ClusterIP`, `NodePort`, or `LoadBalancer`) for the aggregators
928 ## @param aggregator.service.ports [object] Array containing the aggregator service ports
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
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
946 ## loadBalancerSourceRanges:
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
955 ## @param aggregator.service.annotations Provide any additional annotations which may be required
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
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
966 sessionAffinity: None
967 ## @param aggregator.service.sessionAffinityConfig Additional settings for the sessionAffinity
968 ## sessionAffinityConfig:
970 ## timeoutSeconds: 300
972 sessionAffinityConfig: {}
973 ## @param aggregator.service.annotationsHeadless Provide any additional annotations which may be required on headless service
975 annotationsHeadless: {}
976 ## Headless service properties
979 ## @param aggregator.service.headless.annotations Annotations for the headless service.
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).
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".
989 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
992 ## @param aggregator.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
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).
1002 ## @param aggregator.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
1004 allowExternalEgress: true
1005 ## @param aggregator.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
1015 ## - matchExpressions:
1021 ## @param aggregator.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
1031 ## - matchExpressions:
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
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/
1048 ## @param aggregator.ingress.enabled Set to true to enable ingress record generation
1051 ## DEPRECATED: Use ingress.annotations instead of ingress.certManager
1052 ## certManager: false
1055 ## @param aggregator.ingress.pathType Ingress Path type. How the path matching is interpreted
1057 pathType: ImplementationSpecific
1058 ## @param aggregator.ingress.apiVersion Override API Version (automatically detected if not set)
1061 ## @param aggregator.ingress.hostname Default host for the ingress resource
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.
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
1076 ## kubernetes.io/ingress.class: nginx
1077 ## cert-manager.io/cluster-issuer: cluster-issuer-name
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
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
1088 ## - name: fluentd.local
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.
1097 ## serviceName: ssl-redirect
1098 ## servicePort: use-annotation
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
1106 ## secretName: fluentd.local-tls
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-----
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
1116 ## It is also possible to create and manage the certificates outside of this helm chart
1117 ## Please see README.md for more information
1119 ## - name: fluentd.local-tls
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/
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
1133 ## - host: example.local
1138 ## name: example-svc
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
1157 path: /fluentd.healthcheck?json=%7B%22ping%22%3A+%22pong%22%7D
1159 initialDelaySeconds: 60
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
1178 initialDelaySeconds: 60
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
1197 path: /fluentd.healthcheck?json=%7B%22ping%22%3A+%22pong%22%7D
1199 initialDelaySeconds: 5
1204 ## @param aggregator.customStartupProbe Custom liveness probe for the Fluentd Aggregator
1206 customStartupProbe: {}
1207 ## @param aggregator.customLivenessProbe Custom liveness probe for the Fluentd Aggregator
1209 customLivenessProbe: {}
1210 ## @param aggregator.customReadinessProbe Custom rediness probe for the Fluentd Aggregator
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
1217 ## type: RollingUpdate
1220 ## maxUnavailable: 25%
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
1233 resourcesPreset: "nano"
1234 ## @param aggregator.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1245 ## @param aggregator.priorityClassName Fluentd Aggregator pods' priorityClassName
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/
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
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
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
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
1268 podAntiAffinityPreset: soft
1269 ## Node affinity preset
1270 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
1273 ## @param aggregator.nodeAffinityPreset.type Aggregator Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1276 ## @param aggregator.nodeAffinityPreset.key Aggregator Node label key to match Ignored if `affinity` is set.
1279 ## @param aggregator.nodeAffinityPreset.values Aggregator Node label values to match. Ignored if `affinity` is set.
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
1291 ## @param aggregator.nodeSelector Aggregator Node labels for pod assignment
1292 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1295 ## @param aggregator.tolerations Aggregator Tolerations for pod assignment
1296 ## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1299 ## @param aggregator.podAnnotations Pod annotations
1300 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
1303 ## @param aggregator.podLabels Extra labels to add to Pod
1306 ## Pods Service Account
1307 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
1310 ## @param aggregator.serviceAccount.create Specify whether a ServiceAccount should be created
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
1316 ## @param aggregator.serviceAccount.annotations Additional Service Account annotations (evaluated as a template)
1319 ## @param aggregator.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
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
1340 averageUtilization: 60
1346 averageUtilization: 60
1348 ## Persist data to a persistent volume
1351 ## @param aggregator.persistence.enabled Enable persistence volume for the aggregator
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)
1362 ## @param aggregator.persistence.accessModes Persistent Volume access modes
1366 ## @param aggregator.persistence.size Persistent Volume size
1369 ## @param aggregator.persistence.selector Selector to match an existing Persistent Volume (this value is evaluated as a template)
1374 ## @param aggregator.persistence.annotations Persistent Volume Claim annotations
1377 ## @param aggregator.command Override default container command (useful when using custom images)
1380 ## @param aggregator.args Override default container args (useful when using custom images)
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/
1388 ## command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"]
1391 ## command: ["/bin/sh","-c","nginx -s quit; while killall -0 nginx; do sleep 1; done"]
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
1403 initResourcePresets: "nano"
1404 ## @param aggregator.initResources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1415 ## @param aggregator.initContainers Add init containers to aggregator pods
1419 ## - name: do-something
1421 ## command: ['do', 'something']
1424 ## @param aggregator.sidecars Add sidecars to aggregator pods
1428 ## - name: your-image-name
1429 ## image: your-image
1430 ## imagePullPolicy: Always
1433 ## containerPort: 1234
1436 ## @param aggregator.extraVolumes Extra volumes
1437 ## Example Use Case: mount an emptyDir into /tmp to support running with readOnlyRootFileSystem
1442 ## @param aggregator.extraVolumeMounts Mount extra volume(s)
1446 extraVolumeMounts: []
1447 ## @param aggregator.extraVolumeClaimTemplates Optionally specify extra list of additional volume claim templates for the Fluentd Aggregator pods in StatefulSet
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
1455 ## my_init_script.sh: |
1457 ## echo "Do something."
1460 ## @param aggregator.initScriptsCM ConfigMap with the init scripts. Evaluated as a template.
1461 ## Note: This will override initScripts
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.
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.
1477## Prometheus Exporter / Metrics
1480 ## @param metrics.enabled Enable the export of Prometheus metrics
1483 ## Prometheus Exporter service parameters
1486 ## @param metrics.service.type Prometheus metrics service type
1489 ## @param metrics.service.port Prometheus metrics service port
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
1496 ## @param metrics.service.clusterIP Prometheus metrics service Cluster IP
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
1504 ## loadBalancerSourceRanges:
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
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.
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
1523 sessionAffinity: None
1524 ## @param metrics.service.sessionAffinityConfig Additional settings for the sessionAffinity
1525 ## sessionAffinityConfig:
1527 ## timeoutSeconds: 300
1529 sessionAffinityConfig: {}
1530 ## Prometheus Operator ServiceMonitor configuration
1533 ## @param metrics.serviceMonitor.enabled if `true`, creates a Prometheus Operator ServiceMonitor (also requires `metrics.enabled` to be `true`)
1536 ## @param metrics.serviceMonitor.namespace Namespace in which Prometheus is running
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
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
1548 ## scrapeTimeout: 10s
1551 ## @param metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
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
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
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
1566 ## prometheus: my-prometheus
1569 ## @param metrics.serviceMonitor.labels ServiceMonitor extra labels
1572 ## @param metrics.serviceMonitor.annotations ServiceMonitor annotations
1575 ## @param metrics.serviceMonitor.honorLabels honorLabels chooses the metric's labels on collisions with target labels
1578 ## @param metrics.serviceMonitor.path path defines the path that promethues will use to pull metrics from the container
1581## Enable internal SSL/TLS encryption
1584 ## @param tls.enabled Enable TLS/SSL encrytion for internal communications
1587 ## @param tls.autoGenerated Generate automatically self-signed TLS certificates.
1589 autoGenerated: false
1590 ## @param tls.forwarder.existingSecret Name of the existing secret containing the TLS certificates for the Fluentd forwarder
1594 ## @param tls.aggregator.existingSecret Name of the existing secret containing the TLS certificates for the Fluentd aggregator