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
19## @param global.elasticsearch.service.name Elasticsearch service name to be referenced by the Kibana subchart (ignored if kibanaEnabled=false or global.elasticsearch.service.fullname is set)
20## @param global.elasticsearch.service.fullname Full Elasticsearch service name to be referenced by the Kibana subchart (ignored if kibanaEnabled=false)
21## @param global.elasticsearch.service.ports.restAPI Elasticsearch service restAPI port to be used in the Kibana subchart (ignored if kibanaEnabled=false)
22## @param global.kibanaEnabled Whether or not to enable Kibana
28 ## - myRegistryKeySecretName
31 defaultStorageClass: ""
33 ## Security parameters
36 ## @param global.security.allowInsecureImages Allows skipping image verification
37 allowInsecureImages: false
45 ## Compatibility adaptations for Kubernetes platforms
48 ## Compatibility adaptations for Openshift
51 ## @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)
53 adaptSecurityContext: auto
55## @section Common parameters
57## @param kubeVersion Override Kubernetes version
60## @param nameOverride String to partially override common.names.fullname
63## @param fullnameOverride String to fully override common.names.fullname
66## @param commonLabels Labels to add to all deployed objects
69## @param commonAnnotations Annotations to add to all deployed objects
72## @param clusterDomain Kubernetes cluster domain name
74clusterDomain: cluster.local
75## @param extraDeploy Array of extra objects to deploy with the release
78## @param namespaceOverride String to fully override common.names.namespace
81## @param usePasswordFiles Mount credentials as files instead of using environment variables
84## Enable diagnostic mode in the deployment
87 ## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden)
90 ## @param diagnosticMode.command Command to override all containers in the deployment
94 ## @param diagnosticMode.args Args to override all containers in the deployment
98## @section Elasticsearch cluster Parameters
100## @param clusterName Elasticsearch cluster name
103## @param containerPorts.restAPI Elasticsearch REST API port
104## @param containerPorts.transport Elasticsearch Transport port
109## @param plugins Comma, semi-colon or space separated list of plugins to install at initialization
110## ref: https://github.com/iamguarded/containers/tree/main/iamguarded/elasticsearch#environment-variables
113## @param snapshotRepoPath File System snapshot repository path
114## ref: https://github.com/iamguarded/containers/tree/main/iamguarded/elasticsearch#environment-variables
117## @param config Override elasticsearch configuration
120## @param extraConfig Append extra configuration to the elasticsearch node configuration
121## Use this instead of `config` to add more configuration
127## ref: https://www.elastic.co/guide/en/elasticsearch/reference/current/settings.html
130## @param extraHosts A list of external hosts which are part of this cluster
131## Example Use Case: When you have a cluster with nodes spaned acorss multiple K8s or namespaces
133## - datacenter2-elasticsearch-master-hl.namespace2.svc
134## - datacenter2-elasticsearch-data-hl.namespace2.svc
136## @param extraVolumes A list of volumes to be added to the pod
137## Example Use Case: mount ssl certificates when elasticsearch has tls enabled
142## secretName: es-certs
144## @param extraVolumeMounts A list of volume mounts to be added to the pod
150## @param initScripts Dictionary of init scripts. Evaluated as a template.
151## Specify dictionary of scripts to be run at first boot
152## Alternatively, you can put your scripts under the files/docker-entrypoint-initdb.d directory
155## my_init_script.sh: |
157## echo "Do something."
160## @param initScriptsCM ConfigMap with the init scripts. Evaluated as a template.
161## Note: This will override initScripts
164## @param initScriptsSecret Secret containing `/docker-entrypoint-initdb.d` scripts to be executed at initialization time that contain sensitive data. Evaluated as a template.
167## @param extraEnvVars Array containing extra env vars to be added to all pods (evaluated as a template)
171## value: env_var_value
174## @param extraEnvVarsCM ConfigMap containing extra env vars to be added to all pods (evaluated as a template)
177## @param extraEnvVarsSecret Secret containing extra env vars to be added to all pods (evaluated as a template)
179extraEnvVarsSecret: ""
180## @param sidecars Add additional sidecar containers to the all elasticsearch node pod(s)
183## - name: your-image-name
185## imagePullPolicy: Always
188## containerPort: 1234
191## @param initContainers Add additional init containers to the all elasticsearch node pod(s)
192## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
195## - name: your-image-name
197## imagePullPolicy: Always
198## command: ['sh', '-c', 'echo "hello world"']
201## @param enableDefaultInitContainers enables (or disables if false) the default init containers (sysctl, volume permissions, copy plugins etc...)
203enableDefaultInitContainers: true
204## @param useIstioLabels Use this variable to add Istio labels to all pods
207## Iamguarded Elasticsearch image
208## @param image.registry [default: REGISTRY_NAME] Elasticsearch image registry
209## @param image.repository [default: REPOSITORY_NAME/elasticsearch] Elasticsearch image repository
210## @skip image.tag Elasticsearch image tag (immutable tags are recommended)
211## @param image.digest Elasticsearch image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
212## @param image.pullPolicy Elasticsearch image pull policy
213## @param image.pullSecrets Elasticsearch image pull secrets
214## @param image.debug Enable Elasticsearch image debug mode
218 repository: chainguard-private/elasticsearch-iamguarded
221 ## Specify a imagePullPolicy
222 ## ref: http://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
224 pullPolicy: IfNotPresent
225 ## Optionally specify an array of imagePullSecrets.
226 ## Secrets must be manually created in the namespace.
227 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
230 ## - myRegistryKeySecretName
236## X-Pack security parameters
237## Note: TLS configuration is required in order to configure password authentication
240 ## @param security.enabled Enable X-Pack Security settings
243 ## @param security.elasticPassword Password for 'elastic' user
244 ## Ref: https://github.com/iamguarded/containers/tree/main/iamguarded/elasticsearch#security
247 ## @param security.existingSecret Name of the existing secret containing the Elasticsearch password (expected key: `elasticsearch-password`)
251 ## @param security.fipsMode Configure elasticsearch with FIPS 140 compliant mode
252 ## Ref: https://www.elastic.co/guide/en/elasticsearch/reference/current/fips-140-compliance.html
258 ## @param security.tls.restEncryption Enable SSL/TLS encryption for Elasticsearch REST API.
261 ## @param security.tls.autoGenerated Create self-signed TLS certificates.
262 ## NOTE: If autoGenerated certs are enabled and a new node type is enabled using helm upgrade, make sure you remove previously existing Elasticsearch TLS secrets.
263 ## Otherwise, the new node certs won't match the existing certs.
266 ## @param security.tls.verificationMode Verification mode for SSL communications.
267 ## Supported values: full, certificate, none.
268 ## Ref: https://www.elastic.co/guide/en/elasticsearch/reference/current/security-settings.html
270 verificationMode: "full"
271 ## @param security.tls.master.existingSecret Existing secret containing the certificates for the master nodes
272 ## @param security.tls.data.existingSecret Existing secret containing the certificates for the data nodes
273 ## @param security.tls.ingest.existingSecret Existing secret containing the certificates for the ingest nodes
274 ## @param security.tls.coordinating.existingSecret Existing secret containing the certificates for the coordinating nodes
284 ## @param security.tls.keystoreFilename Name of the keystore file
286 keystoreFilename: elasticsearch.keystore.jks
287 ## @param security.tls.truststoreFilename Name of the truststore
289 truststoreFilename: elasticsearch.truststore.jks
290 ## @param security.tls.usePemCerts Use this variable if your secrets contain PEM certificates instead of JKS/PKCS12
291 ## Ignored when using autoGenerated certs.
294 ## @param security.tls.passwordsSecret Existing secret containing the Keystore and Truststore passwords, or key password if PEM certs are used
297 ## @param security.tls.keystorePassword Password to access the JKS/PKCS12 keystore or PEM key when they are password-protected.
298 ## Ignored if security.tls.passwordsSecret is provided.
301 ## @param security.tls.truststorePassword Password to access the JKS/PKCS12 truststore when they are password-protected.
302 ## Ignored if security.tls.passwordsSecret is provided.
304 truststorePassword: ""
305 ## @param security.tls.keyPassword Password to access the PEM key when they are password-protected.
306 ## Ignored if security.tls.passwordsSecret is provided.
309 ## @param security.tls.secretKeystoreKey Name of the secret key containing the Keystore password
311 secretKeystoreKey: ""
312 ## @param security.tls.secretTruststoreKey Name of the secret key containing the Truststore password
314 secretTruststoreKey: ""
315 ## @param security.tls.secretKey Name of the secret key containing the PEM key password
318## @section Traffic Exposure Parameters
321## Elasticsearch service parameters
324 ## @param service.type Elasticsearch service type
327 ## @param service.ports.restAPI Elasticsearch service REST API port
328 ## @param service.ports.transport Elasticsearch service transport port
333 ## Node ports to expose
334 ## @param service.nodePorts.restAPI Node port for REST API
335 ## @param service.nodePorts.transport Node port for REST API
336 ## NOTE: choose port between <30000-32767>
341 ## @param service.clusterIP Elasticsearch service Cluster IP
346 ## @param service.loadBalancerIP Elasticsearch service Load Balancer IP
347 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
350 ## @param service.loadBalancerSourceRanges Elasticsearch service Load Balancer sources
351 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
353 ## loadBalancerSourceRanges:
356 loadBalancerSourceRanges: []
357 ## @param service.externalTrafficPolicy Elasticsearch service external traffic policy
358 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
360 externalTrafficPolicy: Cluster
361 ## @param service.annotations Additional custom annotations for Elasticsearch service
364 ## @param service.extraPorts Extra ports to expose in Elasticsearch service (normally used with the `sidecars` value)
367 ## @param service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
368 ## If "ClientIP", consecutive client requests will be directed to the same Pod
369 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
371 sessionAffinity: None
372 ## @param service.sessionAffinityConfig Additional settings for the sessionAffinity
373 ## sessionAffinityConfig:
375 ## timeoutSeconds: 300
377 sessionAffinityConfig: {}
378## Elasticsearch ingress parameters
379## ref: http://kubernetes.io/docs/concepts/services-networking/ingress/
382 ## @param ingress.enabled Enable ingress record generation for Elasticsearch
385 ## @param ingress.pathType Ingress path type
387 pathType: ImplementationSpecific
388 ## @param ingress.apiVersion Force Ingress API version (automatically detected if not set)
391 ## @param ingress.hostname Default host for the ingress record
393 hostname: elasticsearch.local
394 ## @param ingress.path Default path for the ingress record
395 ## NOTE: You may need to set this to '/*' in order to use this with ALB ingress controllers
398 ## @param ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
399 ## Use this parameter to set the required annotations for cert-manager, see
400 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
403 ## kubernetes.io/ingress.class: nginx
404 ## cert-manager.io/cluster-issuer: cluster-issuer-name
407 ## @param ingress.tls Enable TLS configuration for the host defined at `ingress.hostname` parameter
408 ## TLS certificates will be retrieved from a TLS secret with name: `{{- printf "%s-tls" .Values.ingress.hostname }}`
410 ## - Use the `ingress.secrets` parameter to create this TLS secret
411 ## - Rely on cert-manager to create it by setting the corresponding annotations
412 ## - Rely on Helm to create self-signed certificates by setting `ingress.selfSigned=true`
415 ## @param ingress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
418 ## @param ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
419 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
420 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
423 ## @param ingress.extraHosts An array with additional hostname(s) to be covered with the ingress record
426 ## - name: elasticsearch.local
430 ## @param ingress.extraPaths An array with additional arbitrary paths that may need to be added to the ingress under the main host
435 ## serviceName: ssl-redirect
436 ## servicePort: use-annotation
439 ## @param ingress.extraTls TLS configuration for additional hostname(s) to be covered with this ingress record
440 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
444 ## - elasticsearch.local
445 ## secretName: elasticsearch.local-tls
448 ## @param ingress.secrets Custom TLS certificates as secrets
449 ## NOTE: 'key' and 'certificate' are expected in PEM format
450 ## NOTE: 'name' should line up with a 'secretName' set further up
451 ## If it is not set and you're using cert-manager, this is unneeded, as it will create a secret for you with valid certificates
452 ## If it is not set and you're NOT using cert-manager either, self-signed certificates will be created valid for 365 days
453 ## It is also possible to create and manage the certificates outside of this helm chart
454 ## Please see README.md for more information
457 ## - name: elasticsearch.local-tls
459 ## -----BEGIN RSA PRIVATE KEY-----
461 ## -----END RSA PRIVATE KEY-----
463 ## -----BEGIN CERTIFICATE-----
465 ## -----END CERTIFICATE-----
468 ## @param ingress.extraRules Additional rules to be covered with this ingress record
469 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
472 ## - host: example.local
482## @section Master-elegible nodes parameters
484 ## @param master.masterOnly Deploy the Elasticsearch master-elegible nodes as master-only nodes. Recommended for high-demand deployments.
487 ## @param master.replicaCount Number of master-elegible replicas to deploy
490 ## @param master.extraRoles Append extra roles to the node role
493 ## Pod Disruption Budget configuration
494 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
495 ## @param master.pdb.create Enable/disable a Pod Disruption Budget creation
496 ## @param master.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
497 ## @param master.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable
503 ## @param master.nameOverride String to partially override elasticsearch.master.fullname
506 ## @param master.fullnameOverride String to fully override elasticsearch.master.fullname
509 ## @param master.servicenameOverride String to fully override elasticsearch.master.servicename
511 servicenameOverride: ""
512 ## @param master.annotations [object] Annotations for the master statefulset
515 ## @param master.updateStrategy.type Master-elegible nodes statefulset stategy type
516 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
520 ## Elasticsearch resource requests and limits
521 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
522 ## We usually recommend not to specify default resources and to leave this as a conscious
523 ## choice for the user. This also increases chances charts run on environments with little
524 ## resources, such as Minikube. If you do want to specify resources, uncomment the following
525 ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
526 ## @param master.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if master.resources is set (master.resources is recommended for production).
527 ## More information: https://github.com/iamguarded/charts/blob/main/iamguarded/common/templates/_resources.tpl#L15
529 resourcesPreset: "small"
530 ## @param master.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
541 ## @param master.heapSize Elasticsearch master-eligible node heap size.
542 ## Note: The recommended heapSize is half of the container's memory.
543 ## If omitted, it will be automatically set.
548 ## Configure Pods Security Context
549 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
550 ## @param master.podSecurityContext.enabled Enabled master-elegible pods' Security Context
551 ## @param master.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
552 ## @param master.podSecurityContext.sysctls Set kernel settings using the sysctl interface
553 ## @param master.podSecurityContext.supplementalGroups Set filesystem extra groups
554 ## @param master.podSecurityContext.fsGroup Set master-elegible pod's Security Context fsGroup
558 fsGroupChangePolicy: Always
560 supplementalGroups: []
562 ## Configure Container Security Context
563 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
564 ## @param master.containerSecurityContext.enabled Elasticseacrh master-eligible container securityContext
565 ## @param master.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
566 ## @param master.containerSecurityContext.runAsUser User ID for the Elasticseacrh master-eligible container
567 ## @param master.containerSecurityContext.runAsGroup Group ID for the Elasticseacrh master-eligible container
568 ## @param master.containerSecurityContext.runAsNonRoot Set Elasticsearch master-eligible container's Security Context runAsNonRoot
569 ## @param master.containerSecurityContext.privileged Set Elasticsearch master-eligible container's Security Context privileged
570 ## @param master.containerSecurityContext.allowPrivilegeEscalation Set Elasticsearch master-eligible container's Security Context allowPrivilegeEscalation
571 ## @param master.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
572 ## @param master.containerSecurityContext.capabilities.drop List of capabilities to be dropped
573 ## @param master.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
575 containerSecurityContext:
582 allowPrivilegeEscalation: false
583 readOnlyRootFilesystem: true
587 type: "RuntimeDefault"
589 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
592 ## @param master.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
595 ## @param master.networkPolicy.allowExternal Don't require server label for connections
596 ## The Policy model to apply. When set to false, only pods with the correct
597 ## server label will have network access to the ports server is listening
598 ## on. When true, server will accept connections from any source
599 ## (with the correct destination port).
602 ## @param master.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
604 allowExternalEgress: true
605 ## @param master.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
615 ## - matchExpressions:
621 ## @param master.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
631 ## - matchExpressions:
638 ## @param master.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
639 ## @param master.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
641 ingressNSMatchLabels: {}
642 ingressNSPodMatchLabels: {}
643 ## @param master.automountServiceAccountToken Mount Service Account token in pod
645 automountServiceAccountToken: false
646 ## @param master.hostAliases master-elegible pods host aliases
647 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
650 ## @param master.podLabels Extra labels for master-elegible pods
651 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
654 ## @param master.podAnnotations Annotations for master-elegible pods
655 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
658 ## @param master.shareProcessNamespace Share a single process namespace between all of the containers in pod
659 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/
661 shareProcessNamespace: false
662 ## @param master.podAffinityPreset Pod affinity preset. Ignored if `master.affinity` is set. Allowed values: `soft` or `hard`
663 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
665 podAffinityPreset: ""
666 ## @param master.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `master.affinity` is set. Allowed values: `soft` or `hard`
667 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
669 podAntiAffinityPreset: ""
670 ## Node master.affinity preset
671 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
674 ## @param master.nodeAffinityPreset.type Node affinity preset type. Ignored if `master.affinity` is set. Allowed values: `soft` or `hard`
677 ## @param master.nodeAffinityPreset.key Node label key to match. Ignored if `master.affinity` is set
680 ## @param master.nodeAffinityPreset.values Node label values to match. Ignored if `master.affinity` is set
687 ## @param master.affinity Affinity for master-elegible pods assignment
688 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
689 ## NOTE: `master.podAffinityPreset`, `master.podAntiAffinityPreset`, and `master.nodeAffinityPreset` will be ignored when it's set
692 ## @param master.nodeSelector Node labels for master-elegible pods assignment
693 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
696 ## @param master.tolerations Tolerations for master-elegible pods assignment
697 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
700 ## @param master.priorityClassName master-elegible pods' priorityClassName
702 priorityClassName: ""
703 ## @param master.schedulerName Name of the k8s scheduler (other than default) for master-elegible pods
704 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
707 ## @param master.terminationGracePeriodSeconds In seconds, time the given to the Elasticsearch Master pod needs to terminate gracefully
708 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
710 terminationGracePeriodSeconds: ""
711 ## @param master.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
712 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
714 topologySpreadConstraints: []
715 ## @param master.podManagementPolicy podManagementPolicy to manage scaling operation of Elasticsearch master pods
716 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
718 podManagementPolicy: "Parallel"
719 ## Configure extra options for Elasticsearch master-elegible containers' liveness, readiness and startup probes
720 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
721 ## @param master.startupProbe.enabled Enable/disable the startup probe (master nodes pod)
722 ## @param master.startupProbe.initialDelaySeconds Delay before startup probe is initiated (master nodes pod)
723 ## @param master.startupProbe.periodSeconds How often to perform the probe (master nodes pod)
724 ## @param master.startupProbe.timeoutSeconds When the probe times out (master nodes pod)
725 ## @param master.startupProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed (master nodes pod)
726 ## @param master.startupProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded
730 initialDelaySeconds: 90
735 ## @param master.livenessProbe.enabled Enable/disable the liveness probe (master-eligible nodes pod)
736 ## @param master.livenessProbe.initialDelaySeconds Delay before liveness probe is initiated (master-eligible nodes pod)
737 ## @param master.livenessProbe.periodSeconds How often to perform the probe (master-eligible nodes pod)
738 ## @param master.livenessProbe.timeoutSeconds When the probe times out (master-eligible nodes pod)
739 ## @param master.livenessProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed (master-eligible nodes pod)
740 ## @param master.livenessProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded
744 initialDelaySeconds: 180
749 ## @param master.readinessProbe.enabled Enable/disable the readiness probe (master-eligible nodes pod)
750 ## @param master.readinessProbe.initialDelaySeconds Delay before readiness probe is initiated (master-eligible nodes pod)
751 ## @param master.readinessProbe.periodSeconds How often to perform the probe (master-eligible nodes pod)
752 ## @param master.readinessProbe.timeoutSeconds When the probe times out (master-eligible nodes pod)
753 ## @param master.readinessProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed (master-eligible nodes pod)
754 ## @param master.readinessProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded
758 initialDelaySeconds: 90
763 ## @param master.customStartupProbe Override default startup probe
765 customStartupProbe: {}
766 ## @param master.customLivenessProbe Override default liveness probe
768 customLivenessProbe: {}
769 ## @param master.customReadinessProbe Override default readiness probe
771 customReadinessProbe: {}
772 ## @param master.command Override default container command (useful when using custom images)
775 ## @param master.args Override default container args (useful when using custom images)
778 ## @param master.lifecycleHooks for the master-elegible container(s) to automate configuration before or after startup
781 ## @param master.extraEnvVars Array with extra environment variables to add to master-elegible nodes
788 ## @param master.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for master-elegible nodes
791 ## @param master.extraEnvVarsSecret Name of existing Secret containing extra env vars for master-elegible nodes
793 extraEnvVarsSecret: ""
794 ## @param master.extraVolumes Optionally specify extra list of additional volumes for the master-elegible pod(s)
797 ## @param master.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the master-elegible container(s)
799 extraVolumeMounts: []
800 ## @param master.sidecars Add additional sidecar containers to the master-elegible pod(s)
803 ## - name: your-image-name
805 ## imagePullPolicy: Always
808 ## containerPort: 1234
811 ## @param master.initContainers Add additional init containers to the master-elegible pod(s)
812 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
815 ## - name: your-image-name
817 ## imagePullPolicy: Always
818 ## command: ['sh', '-c', 'echo "hello world"']
821 ## Enable persistence using Persistent Volume Claims
822 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
825 ## @param master.persistence.enabled Enable persistence using a `PersistentVolumeClaim`
828 ## @param master.persistence.storageClass Persistent Volume Storage Class
829 ## If defined, storageClassName: <storageClass>
830 ## If set to "-", storageClassName: "", which disables dynamic provisioning
831 ## If undefined (the default) or set to null, no storageClassName spec is
832 ## set, choosing the default provisioner. (gp2 on AWS, standard on
833 ## GKE, AWS & OpenStack)
836 ## @param master.persistence.existingClaim Existing Persistent Volume Claim
837 ## then accept the value as an existing Persistent Volume Claim to which
838 ## the container should be bound
841 ## @param master.persistence.existingVolume Existing Persistent Volume for use as volume match label selector to the `volumeClaimTemplate`. Ignored when `master.persistence.selector` is set.
844 ## @param master.persistence.selector Configure custom selector for existing Persistent Volume. Overwrites `master.persistence.existingVolume`
850 ## @param master.persistence.annotations Persistent Volume Claim annotations
853 ## @param master.persistence.accessModes Persistent Volume Access Modes
857 ## @param master.persistence.size Persistent Volume Size
860 ## Master Persistent Volume Claim Retention Policy
861 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
863 persistentVolumeClaimRetentionPolicy:
864 ## @param master.persistentVolumeClaimRetentionPolicy.enabled Enable Persistent volume retention policy for Master StatefulSet
867 ## @param master.persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
870 ## @param master.persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
873 ## Pods Service Account
874 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
875 ## @param master.serviceAccount.create Specifies whether a ServiceAccount should be created
876 ## @param master.serviceAccount.name Name of the service account to use. If not set and create is true, a name is generated using the fullname template.
877 ## @param master.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
878 ## @param master.serviceAccount.annotations Annotations for service account. Evaluated as a template. Only used if `create` is `true`.
883 automountServiceAccountToken: false
885 ## Enable HorizontalPodAutoscaler for Elasticsearch Master pods
886 ## ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
887 ## @param master.autoscaling.enabled Whether enable horizontal pod autoscale
888 ## @param master.autoscaling.minReplicas Configure a minimum amount of pods
889 ## @param master.autoscaling.maxReplicas Configure a maximum amount of pods
890 ## @param master.autoscaling.targetCPU Define the CPU target to trigger the scaling actions (utilization percentage)
891 ## @param master.autoscaling.targetMemory Define the memory target to trigger the scaling actions (utilization percentage)
899## @section Data-only nodes parameters
901 ## @param data.replicaCount Number of data-only replicas to deploy
904 ## @param data.extraRoles Append extra roles to the node role
907 ## Pod Disruption Budget configuration
908 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
909 ## @param data.pdb.create Enable/disable a Pod Disruption Budget creation
910 ## @param data.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
911 ## @param data.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable
917 ## @param data.nameOverride String to partially override elasticsearch.data.fullname
920 ## @param data.fullnameOverride String to fully override elasticsearch.data.fullname
923 ## @param data.servicenameOverride String to fully override elasticsearch.data.servicename
925 servicenameOverride: ""
926 ## @param data.annotations [object] Annotations for the data statefulset
929 ## @param data.updateStrategy.type Data-only nodes statefulset stategy type
930 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
934 ## Elasticsearch resource requests and limits
935 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
936 ## @param data.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if data.resources is set (data.resources is recommended for production).
937 ## More information: https://github.com/iamguarded/charts/blob/main/iamguarded/common/templates/_resources.tpl#L15
939 resourcesPreset: "medium"
940 ## @param data.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
951 ## @param data.heapSize Elasticsearch data node heap size.
952 ## Note: The recommended heapSize is half of the container's memory.
953 ## If omitted, it will be automatically set.
958 ## Configure Pods Security Context
959 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
960 ## @param data.podSecurityContext.enabled Enabled data pods' Security Context
961 ## @param data.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
962 ## @param data.podSecurityContext.sysctls Set kernel settings using the sysctl interface
963 ## @param data.podSecurityContext.supplementalGroups Set filesystem extra groups
964 ## @param data.podSecurityContext.fsGroup Set data pod's Security Context fsGroup
968 fsGroupChangePolicy: Always
970 supplementalGroups: []
972 ## Configure Container Security Context
973 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
974 ## @param data.containerSecurityContext.enabled Elasticseacrh data container securityContext
975 ## @param data.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
976 ## @param data.containerSecurityContext.runAsUser User ID for the Elasticseacrh data container
977 ## @param data.containerSecurityContext.runAsGroup Group ID for the Elasticseacrh data container
978 ## @param data.containerSecurityContext.runAsNonRoot Set Elasticsearch data container's Security Context runAsNonRoot
979 ## @param data.containerSecurityContext.privileged Set Elasticsearch data container's Security Context privileged
980 ## @param data.containerSecurityContext.allowPrivilegeEscalation Set Elasticsearch data container's Security Context allowPrivilegeEscalation
981 ## @param data.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
982 ## @param data.containerSecurityContext.capabilities.drop List of capabilities to be dropped
983 ## @param data.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
985 containerSecurityContext:
992 allowPrivilegeEscalation: false
993 readOnlyRootFilesystem: true
997 type: "RuntimeDefault"
999 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
1002 ## @param data.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
1005 ## @param data.networkPolicy.allowExternal Don't require server label for connections
1006 ## The Policy model to apply. When set to false, only pods with the correct
1007 ## server label will have network access to the ports server is listening
1008 ## on. When true, server will accept connections from any source
1009 ## (with the correct destination port).
1012 ## @param data.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
1014 allowExternalEgress: true
1015 ## @param data.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
1025 ## - matchExpressions:
1031 ## @param data.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
1041 ## - matchExpressions:
1048 ## @param data.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
1049 ## @param data.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
1051 ingressNSMatchLabels: {}
1052 ingressNSPodMatchLabels: {}
1053 ## @param data.automountServiceAccountToken Mount Service Account token in pod
1055 automountServiceAccountToken: false
1056 ## @param data.hostAliases data pods host aliases
1057 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
1060 ## @param data.podLabels Extra labels for data pods
1061 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
1064 ## @param data.podAnnotations Annotations for data pods
1065 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
1068 ## @param data.shareProcessNamespace Share a single process namespace between all of the containers in pod
1069 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/
1071 shareProcessNamespace: false
1072 ## @param data.podAffinityPreset Pod affinity preset. Ignored if `data.affinity` is set. Allowed values: `soft` or `hard`
1073 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1075 podAffinityPreset: ""
1076 ## @param data.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `data.affinity` is set. Allowed values: `soft` or `hard`
1077 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1079 podAntiAffinityPreset: ""
1080 ## Node data.affinity preset
1081 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
1084 ## @param data.nodeAffinityPreset.type Node affinity preset type. Ignored if `data.affinity` is set. Allowed values: `soft` or `hard`
1087 ## @param data.nodeAffinityPreset.key Node label key to match. Ignored if `data.affinity` is set
1090 ## @param data.nodeAffinityPreset.values Node label values to match. Ignored if `data.affinity` is set
1097 ## @param data.affinity Affinity for data pods assignment
1098 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
1099 ## NOTE: `data.podAffinityPreset`, `data.podAntiAffinityPreset`, and `data.nodeAffinityPreset` will be ignored when it's set
1102 ## @param data.nodeSelector Node labels for data pods assignment
1103 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1106 ## @param data.tolerations Tolerations for data pods assignment
1107 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1110 ## @param data.priorityClassName data pods' priorityClassName
1112 priorityClassName: ""
1113 ## @param data.schedulerName Name of the k8s scheduler (other than default) for data pods
1114 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
1117 ## @param data.terminationGracePeriodSeconds In seconds, time the given to the Elasticsearch data pod needs to terminate gracefully
1118 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
1120 terminationGracePeriodSeconds: ""
1121 ## @param data.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
1122 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
1124 topologySpreadConstraints: []
1125 ## @param data.podManagementPolicy podManagementPolicy to manage scaling operation of Elasticsearch data pods
1126 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
1128 podManagementPolicy: "Parallel"
1129 ## Configure extra options for Elasticsearch data containers' liveness, readiness and startup probes
1130 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
1131 ## @param data.startupProbe.enabled Enable/disable the startup probe (data nodes pod)
1132 ## @param data.startupProbe.initialDelaySeconds Delay before startup probe is initiated (data nodes pod)
1133 ## @param data.startupProbe.periodSeconds How often to perform the probe (data nodes pod)
1134 ## @param data.startupProbe.timeoutSeconds When the probe times out (data nodes pod)
1135 ## @param data.startupProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed (data nodes pod)
1136 ## @param data.startupProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded
1140 initialDelaySeconds: 90
1145 ## @param data.livenessProbe.enabled Enable/disable the liveness probe (data nodes pod)
1146 ## @param data.livenessProbe.initialDelaySeconds Delay before liveness probe is initiated (data nodes pod)
1147 ## @param data.livenessProbe.periodSeconds How often to perform the probe (data nodes pod)
1148 ## @param data.livenessProbe.timeoutSeconds When the probe times out (data nodes pod)
1149 ## @param data.livenessProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed (data nodes pod)
1150 ## @param data.livenessProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded
1154 initialDelaySeconds: 180
1159 ## @param data.readinessProbe.enabled Enable/disable the readiness probe (data nodes pod)
1160 ## @param data.readinessProbe.initialDelaySeconds Delay before readiness probe is initiated (data nodes pod)
1161 ## @param data.readinessProbe.periodSeconds How often to perform the probe (data nodes pod)
1162 ## @param data.readinessProbe.timeoutSeconds When the probe times out (data nodes pod)
1163 ## @param data.readinessProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed (data nodes pod)
1164 ## @param data.readinessProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded
1168 initialDelaySeconds: 90
1173 ## @param data.customStartupProbe Override default startup probe
1175 customStartupProbe: {}
1176 ## @param data.customLivenessProbe Override default liveness probe
1178 customLivenessProbe: {}
1179 ## @param data.customReadinessProbe Override default readiness probe
1181 customReadinessProbe: {}
1182 ## @param data.command Override default container command (useful when using custom images)
1185 ## @param data.args Override default container args (useful when using custom images)
1188 ## @param data.lifecycleHooks for the data container(s) to automate configuration before or after startup
1191 ## @param data.extraEnvVars Array with extra environment variables to add to data nodes
1198 ## @param data.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for data nodes
1201 ## @param data.extraEnvVarsSecret Name of existing Secret containing extra env vars for data nodes
1203 extraEnvVarsSecret: ""
1204 ## @param data.extraVolumes Optionally specify extra list of additional volumes for the data pod(s)
1207 ## @param data.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the data container(s)
1209 extraVolumeMounts: []
1210 ## @param data.sidecars Add additional sidecar containers to the data pod(s)
1213 ## - name: your-image-name
1214 ## image: your-image
1215 ## imagePullPolicy: Always
1218 ## containerPort: 1234
1221 ## @param data.initContainers Add additional init containers to the data pod(s)
1222 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
1225 ## - name: your-image-name
1226 ## image: your-image
1227 ## imagePullPolicy: Always
1228 ## command: ['sh', '-c', 'echo "hello world"']
1231 ## Enable persistence using Persistent Volume Claims
1232 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
1235 ## @param data.persistence.enabled Enable persistence using a `PersistentVolumeClaim`
1238 ## @param data.persistence.storageClass Persistent Volume Storage Class
1239 ## If defined, storageClassName: <storageClass>
1240 ## If set to "-", storageClassName: "", which disables dynamic provisioning
1241 ## If undefined (the default) or set to null, no storageClassName spec is
1242 ## set, choosing the default provisioner. (gp2 on AWS, standard on
1243 ## GKE, AWS & OpenStack)
1246 ## @param data.persistence.existingClaim Existing Persistent Volume Claim
1247 ## then accept the value as an existing Persistent Volume Claim to which
1248 ## the container should be bound
1251 ## @param data.persistence.existingVolume Existing Persistent Volume for use as volume match label selector to the `volumeClaimTemplate`. Ignored when `data.persistence.selector` is set.
1254 ## @param data.persistence.selector Configure custom selector for existing Persistent Volume. Overwrites `data.persistence.existingVolume`
1260 ## @param data.persistence.annotations Persistent Volume Claim annotations
1263 ## @param data.persistence.accessModes Persistent Volume Access Modes
1267 ## @param data.persistence.size Persistent Volume Size
1270 ## Data Persistent Volume Claim Retention Policy
1271 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
1273 persistentVolumeClaimRetentionPolicy:
1274 ## @param data.persistentVolumeClaimRetentionPolicy.enabled Enable Persistent volume retention policy for Data StatefulSet
1277 ## @param data.persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
1280 ## @param data.persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
1283 ## Pods Service Account
1284 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
1285 ## @param data.serviceAccount.create Specifies whether a ServiceAccount should be created
1286 ## @param data.serviceAccount.name Name of the service account to use. If not set and create is true, a name is generated using the fullname template.
1287 ## @param data.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
1288 ## @param data.serviceAccount.annotations Annotations for service account. Evaluated as a template. Only used if `create` is `true`.
1293 automountServiceAccountToken: false
1295 ## Enable HorizontalPodAutoscaler for Elasticsearch data pods
1296 ## ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
1297 ## @param data.autoscaling.enabled Whether enable horizontal pod autoscale
1298 ## @param data.autoscaling.minReplicas Configure a minimum amount of pods
1299 ## @param data.autoscaling.maxReplicas Configure a maximum amount of pods
1300 ## @param data.autoscaling.targetCPU Define the CPU target to trigger the scaling actions (utilization percentage)
1301 ## @param data.autoscaling.targetMemory Define the memory target to trigger the scaling actions (utilization percentage)
1309## @section Coordinating-only nodes parameters
1311 ## @param coordinating.replicaCount Number of coordinating-only replicas to deploy
1314 ## @param coordinating.extraRoles Append extra roles to the node role
1315 ## NOTE: In Elasticsearch, all nodes act as coordinators, coordinating-only nodes do not have any other role by default.
1318 ## Pod Disruption Budget configuration
1319 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
1320 ## @param coordinating.pdb.create Enable/disable a Pod Disruption Budget creation
1321 ## @param coordinating.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
1322 ## @param coordinating.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable
1328 ## @param coordinating.nameOverride String to partially override elasticsearch.coordinating.fullname
1331 ## @param coordinating.fullnameOverride String to fully override elasticsearch.coordinating.fullname
1333 fullnameOverride: ""
1334 ## @param coordinating.servicenameOverride String to fully override elasticsearch.coordinating.servicename
1336 servicenameOverride: ""
1337 ## @param coordinating.annotations [object] Annotations for the coordinating-only statefulset
1340 ## @param coordinating.updateStrategy.type Coordinating-only nodes statefulset stategy type
1341 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
1345 ## Elasticsearch resource requests and limits
1346 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1347 ## @param coordinating.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if coordinating.resources is set (coordinating.resources is recommended for production).
1348 ## More information: https://github.com/iamguarded/charts/blob/main/iamguarded/common/templates/_resources.tpl#L15
1350 resourcesPreset: "small"
1351 ## @param coordinating.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1362 ## @param coordinating.heapSize Elasticsearch coordinating node heap size.
1363 ## Note: The recommended heapSize is half of the container's memory.
1364 ## If omitted, it will be automatically set.
1369 ## Configure Pods Security Context
1370 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1371 ## @param coordinating.podSecurityContext.enabled Enabled coordinating-only pods' Security Context
1372 ## @param coordinating.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
1373 ## @param coordinating.podSecurityContext.sysctls Set kernel settings using the sysctl interface
1374 ## @param coordinating.podSecurityContext.supplementalGroups Set filesystem extra groups
1375 ## @param coordinating.podSecurityContext.fsGroup Set coordinating-only pod's Security Context fsGroup
1379 fsGroupChangePolicy: Always
1381 supplementalGroups: []
1383 ## Configure Container Security Context
1384 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1385 ## @param coordinating.containerSecurityContext.enabled Elasticseacrh coordinating container securityContext
1386 ## @param coordinating.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1387 ## @param coordinating.containerSecurityContext.runAsUser User ID for the Elasticseacrh coordinating container
1388 ## @param coordinating.containerSecurityContext.runAsGroup Group ID for the Elasticseacrh coordinating container
1389 ## @param coordinating.containerSecurityContext.runAsNonRoot Set Elasticsearch coordinating container's Security Context runAsNonRoot
1390 ## @param coordinating.containerSecurityContext.privileged Set Elasticsearch coordinating container's Security Context privileged
1391 ## @param coordinating.containerSecurityContext.allowPrivilegeEscalation Set Elasticsearch coordinating container's Security Context allowPrivilegeEscalation
1392 ## @param coordinating.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
1393 ## @param coordinating.containerSecurityContext.capabilities.drop List of capabilities to be dropped
1394 ## @param coordinating.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
1396 containerSecurityContext:
1403 allowPrivilegeEscalation: false
1404 readOnlyRootFilesystem: true
1408 type: "RuntimeDefault"
1410 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
1413 ## @param coordinating.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
1416 ## @param coordinating.networkPolicy.allowExternal Don't require server label for connections
1417 ## The Policy model to apply. When set to false, only pods with the correct
1418 ## server label will have network access to the ports server is listening
1419 ## on. When true, server will accept connections from any source
1420 ## (with the correct destination port).
1423 ## @param coordinating.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
1425 allowExternalEgress: true
1426 ## @param coordinating.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
1436 ## - matchExpressions:
1442 ## @param coordinating.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
1452 ## - matchExpressions:
1459 ## @param coordinating.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
1460 ## @param coordinating.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
1462 ingressNSMatchLabels: {}
1463 ingressNSPodMatchLabels: {}
1464 ## @param coordinating.automountServiceAccountToken Mount Service Account token in pod
1466 automountServiceAccountToken: false
1467 ## @param coordinating.hostAliases coordinating-only pods host aliases
1468 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
1471 ## @param coordinating.podLabels Extra labels for coordinating-only pods
1472 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
1475 ## @param coordinating.podAnnotations Annotations for coordinating-only pods
1476 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
1479 ## @param coordinating.shareProcessNamespace Share a single process namespace between all of the containers in pod
1480 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/
1482 shareProcessNamespace: false
1483 ## @param coordinating.podAffinityPreset Pod affinity preset. Ignored if `coordinating.affinity` is set. Allowed values: `soft` or `hard`
1484 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1486 podAffinityPreset: ""
1487 ## @param coordinating.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `coordinating.affinity` is set. Allowed values: `soft` or `hard`
1488 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1490 podAntiAffinityPreset: ""
1491 ## Node coordinating.affinity preset
1492 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
1495 ## @param coordinating.nodeAffinityPreset.type Node affinity preset type. Ignored if `coordinating.affinity` is set. Allowed values: `soft` or `hard`
1498 ## @param coordinating.nodeAffinityPreset.key Node label key to match. Ignored if `coordinating.affinity` is set
1501 ## @param coordinating.nodeAffinityPreset.values Node label values to match. Ignored if `coordinating.affinity` is set
1508 ## @param coordinating.affinity Affinity for coordinating-only pods assignment
1509 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
1510 ## NOTE: `coordinating.podAffinityPreset`, `coordinating.podAntiAffinityPreset`, and `coordinating.nodeAffinityPreset` will be ignored when it's set
1513 ## @param coordinating.nodeSelector Node labels for coordinating-only pods assignment
1514 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1517 ## @param coordinating.tolerations Tolerations for coordinating-only pods assignment
1518 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1521 ## @param coordinating.priorityClassName coordinating-only pods' priorityClassName
1523 priorityClassName: ""
1524 ## @param coordinating.schedulerName Name of the k8s scheduler (other than default) for coordinating-only pods
1525 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
1528 ## @param coordinating.terminationGracePeriodSeconds In seconds, time the given to the Elasticsearch coordinating pod needs to terminate gracefully
1529 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
1531 terminationGracePeriodSeconds: ""
1532 ## @param coordinating.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
1533 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
1535 topologySpreadConstraints: []
1536 ## @param coordinating.podManagementPolicy podManagementPolicy to manage scaling operation of Elasticsearch coordinating pods
1537 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
1539 podManagementPolicy: "Parallel"
1540 ## Configure extra options for Elasticsearch coordinating-only containers' liveness, readiness and startup probes
1541 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
1542 ## @param coordinating.startupProbe.enabled Enable/disable the startup probe (coordinating-only nodes pod)
1543 ## @param coordinating.startupProbe.initialDelaySeconds Delay before startup probe is initiated (coordinating-only nodes pod)
1544 ## @param coordinating.startupProbe.periodSeconds How often to perform the probe (coordinating-only nodes pod)
1545 ## @param coordinating.startupProbe.timeoutSeconds When the probe times out (coordinating-only nodes pod)
1546 ## @param coordinating.startupProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed (coordinating-only nodes pod)
1547 ## @param coordinating.startupProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded
1551 initialDelaySeconds: 90
1556 ## @param coordinating.livenessProbe.enabled Enable/disable the liveness probe (coordinating-only nodes pod)
1557 ## @param coordinating.livenessProbe.initialDelaySeconds Delay before liveness probe is initiated (coordinating-only nodes pod)
1558 ## @param coordinating.livenessProbe.periodSeconds How often to perform the probe (coordinating-only nodes pod)
1559 ## @param coordinating.livenessProbe.timeoutSeconds When the probe times out (coordinating-only nodes pod)
1560 ## @param coordinating.livenessProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed (coordinating-only nodes pod)
1561 ## @param coordinating.livenessProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded
1565 initialDelaySeconds: 180
1570 ## @param coordinating.readinessProbe.enabled Enable/disable the readiness probe (coordinating-only nodes pod)
1571 ## @param coordinating.readinessProbe.initialDelaySeconds Delay before readiness probe is initiated (coordinating-only nodes pod)
1572 ## @param coordinating.readinessProbe.periodSeconds How often to perform the probe (coordinating-only nodes pod)
1573 ## @param coordinating.readinessProbe.timeoutSeconds When the probe times out (coordinating-only nodes pod)
1574 ## @param coordinating.readinessProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed (coordinating-only nodes pod)
1575 ## @param coordinating.readinessProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded
1579 initialDelaySeconds: 90
1584 ## @param coordinating.customStartupProbe Override default startup probe
1586 customStartupProbe: {}
1587 ## @param coordinating.customLivenessProbe Override default liveness probe
1589 customLivenessProbe: {}
1590 ## @param coordinating.customReadinessProbe Override default readiness probe
1592 customReadinessProbe: {}
1593 ## @param coordinating.command Override default container command (useful when using custom images)
1596 ## @param coordinating.args Override default container args (useful when using custom images)
1599 ## @param coordinating.lifecycleHooks for the coordinating-only container(s) to automate configuration before or after startup
1602 ## @param coordinating.extraEnvVars Array with extra environment variables to add to coordinating-only nodes
1609 ## @param coordinating.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for coordinating-only nodes
1612 ## @param coordinating.extraEnvVarsSecret Name of existing Secret containing extra env vars for coordinating-only nodes
1614 extraEnvVarsSecret: ""
1615 ## @param coordinating.extraVolumes Optionally specify extra list of additional volumes for the coordinating-only pod(s)
1618 ## @param coordinating.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the coordinating-only container(s)
1620 extraVolumeMounts: []
1621 ## @param coordinating.sidecars Add additional sidecar containers to the coordinating-only pod(s)
1624 ## - name: your-image-name
1625 ## image: your-image
1626 ## imagePullPolicy: Always
1629 ## containerPort: 1234
1632 ## @param coordinating.initContainers Add additional init containers to the coordinating-only pod(s)
1633 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
1636 ## - name: your-image-name
1637 ## image: your-image
1638 ## imagePullPolicy: Always
1639 ## command: ['sh', '-c', 'echo "hello world"']
1642 ## Pods Service Account
1643 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
1644 ## @param coordinating.serviceAccount.create Specifies whether a ServiceAccount should be created
1645 ## @param coordinating.serviceAccount.name Name of the service account to use. If not set and create is true, a name is generated using the fullname template.
1646 ## @param coordinating.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
1647 ## @param coordinating.serviceAccount.annotations Annotations for service account. Evaluated as a template. Only used if `create` is `true`.
1652 automountServiceAccountToken: false
1654 ## Enable HorizontalPodAutoscaler for Elasticsearch coordinating pods
1655 ## ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
1656 ## @param coordinating.autoscaling.enabled Whether enable horizontal pod autoscale
1657 ## @param coordinating.autoscaling.minReplicas Configure a minimum amount of pods
1658 ## @param coordinating.autoscaling.maxReplicas Configure a maximum amount of pods
1659 ## @param coordinating.autoscaling.targetCPU Define the CPU target to trigger the scaling actions (utilization percentage)
1660 ## @param coordinating.autoscaling.targetMemory Define the memory target to trigger the scaling actions (utilization percentage)
1668## @section Ingest-only nodes parameters
1670 ## @param ingest.enabled Enable ingest nodes
1673 ## @param ingest.replicaCount Number of ingest-only replicas to deploy
1676 ## @param ingest.extraRoles Append extra roles to the node role
1679 ## Pod Disruption Budget configuration
1680 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
1681 ## @param ingest.pdb.create Enable/disable a Pod Disruption Budget creation
1682 ## @param ingest.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
1683 ## @param ingest.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable
1689 ## @param ingest.nameOverride String to partially override elasticsearch.ingest.fullname
1692 ## @param ingest.fullnameOverride String to fully override elasticsearch.ingest.fullname
1694 fullnameOverride: ""
1695 ## @param ingest.servicenameOverride String to fully override ingest.master.servicename
1697 servicenameOverride: ""
1698 ## @param ingest.annotations [object] Annotations for the ingest statefulset
1701 ## @param ingest.containerPorts.restAPI Elasticsearch REST API port
1702 ## @param ingest.containerPorts.transport Elasticsearch Transport port
1707 ## @param ingest.updateStrategy.type Ingest-only nodes statefulset stategy type
1708 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
1712 ## Elasticsearch resource requests and limits
1713 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1714 ## @param ingest.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if ingest.resources is set (ingest.resources is recommended for production).
1715 ## More information: https://github.com/iamguarded/charts/blob/main/iamguarded/common/templates/_resources.tpl#L15
1717 resourcesPreset: "small"
1718 ## @param ingest.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1729 ## @param ingest.heapSize Elasticsearch ingest-only node heap size.
1730 ## Note: The recommended heapSize is half of the container's memory.
1731 ## If omitted, it will be automatically set.
1736 ## Configure Pods Security Context
1737 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1738 ## @param ingest.podSecurityContext.enabled Enabled ingest-only pods' Security Context
1739 ## @param ingest.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
1740 ## @param ingest.podSecurityContext.sysctls Set kernel settings using the sysctl interface
1741 ## @param ingest.podSecurityContext.supplementalGroups Set filesystem extra groups
1742 ## @param ingest.podSecurityContext.fsGroup Set ingest-only pod's Security Context fsGroup
1746 fsGroupChangePolicy: Always
1748 supplementalGroups: []
1750 ## Configure Container Security Context
1751 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1752 ## @param ingest.containerSecurityContext.enabled Elasticseacrh ingest container securityContext
1753 ## @param ingest.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1754 ## @param ingest.containerSecurityContext.runAsUser User ID for the Elasticseacrh ingest container
1755 ## @param ingest.containerSecurityContext.runAsGroup Group ID for the Elasticseacrh ingest container
1756 ## @param ingest.containerSecurityContext.runAsNonRoot Set Elasticsearch ingest container's Security Context runAsNonRoot
1757 ## @param ingest.containerSecurityContext.privileged Set Elasticsearch ingest container's Security Context privileged
1758 ## @param ingest.containerSecurityContext.allowPrivilegeEscalation Set Elasticsearch ingest container's Security Context allowPrivilegeEscalation
1759 ## @param ingest.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
1760 ## @param ingest.containerSecurityContext.capabilities.drop List of capabilities to be dropped
1761 ## @param ingest.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
1763 containerSecurityContext:
1770 allowPrivilegeEscalation: false
1771 readOnlyRootFilesystem: true
1775 type: "RuntimeDefault"
1777 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
1780 ## @param ingest.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
1783 ## @param ingest.networkPolicy.allowExternal Don't require server label for connections
1784 ## The Policy model to apply. When set to false, only pods with the correct
1785 ## server label will have network access to the ports server is listening
1786 ## on. When true, server will accept connections from any source
1787 ## (with the correct destination port).
1790 ## @param ingest.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
1792 allowExternalEgress: true
1793 ## @param ingest.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
1803 ## - matchExpressions:
1809 ## @param ingest.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
1819 ## - matchExpressions:
1826 ## @param ingest.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
1827 ## @param ingest.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
1829 ingressNSMatchLabels: {}
1830 ingressNSPodMatchLabels: {}
1831 ## @param ingest.automountServiceAccountToken Mount Service Account token in pod
1833 automountServiceAccountToken: false
1834 ## @param ingest.hostAliases ingest-only pods host aliases
1835 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
1838 ## @param ingest.podLabels Extra labels for ingest-only pods
1839 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
1842 ## @param ingest.podAnnotations Annotations for ingest-only pods
1843 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
1846 ## @param ingest.shareProcessNamespace Share a single process namespace between all of the containers in pod
1847 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/
1849 shareProcessNamespace: false
1850 ## @param ingest.podAffinityPreset Pod affinity preset. Ignored if `ingest.affinity` is set. Allowed values: `soft` or `hard`
1851 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1853 podAffinityPreset: ""
1854 ## @param ingest.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `ingest.affinity` is set. Allowed values: `soft` or `hard`
1855 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1857 podAntiAffinityPreset: ""
1858 ## Node ingest.affinity preset
1859 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
1862 ## @param ingest.nodeAffinityPreset.type Node affinity preset type. Ignored if `ingest.affinity` is set. Allowed values: `soft` or `hard`
1865 ## @param ingest.nodeAffinityPreset.key Node label key to match. Ignored if `ingest.affinity` is set
1868 ## @param ingest.nodeAffinityPreset.values Node label values to match. Ignored if `ingest.affinity` is set
1875 ## @param ingest.affinity Affinity for ingest-only pods assignment
1876 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
1877 ## NOTE: `ingest.podAffinityPreset`, `ingest.podAntiAffinityPreset`, and `ingest.nodeAffinityPreset` will be ignored when it's set
1880 ## @param ingest.nodeSelector Node labels for ingest-only pods assignment
1881 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1884 ## @param ingest.tolerations Tolerations for ingest-only pods assignment
1885 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1888 ## @param ingest.priorityClassName ingest-only pods' priorityClassName
1890 priorityClassName: ""
1891 ## @param ingest.schedulerName Name of the k8s scheduler (other than default) for ingest-only pods
1892 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
1895 ## @param ingest.terminationGracePeriodSeconds In seconds, time the given to the Elasticsearch ingest pod needs to terminate gracefully
1896 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
1898 terminationGracePeriodSeconds: ""
1899 ## @param ingest.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
1900 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
1902 topologySpreadConstraints: []
1903 ## @param ingest.podManagementPolicy podManagementPolicy to manage scaling operation of Elasticsearch ingest pods
1904 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
1906 podManagementPolicy: "Parallel"
1907 ## Configure extra options for Elasticsearch ingest-only containers' liveness, readiness and startup probes
1908 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
1909 ## @param ingest.startupProbe.enabled Enable/disable the startup probe (ingest-only nodes pod)
1910 ## @param ingest.startupProbe.initialDelaySeconds Delay before startup probe is initiated (ingest-only nodes pod)
1911 ## @param ingest.startupProbe.periodSeconds How often to perform the probe (ingest-only nodes pod)
1912 ## @param ingest.startupProbe.timeoutSeconds When the probe times out (ingest-only nodes pod)
1913 ## @param ingest.startupProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed (ingest-only nodes pod)
1914 ## @param ingest.startupProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded
1918 initialDelaySeconds: 90
1923 ## @param ingest.livenessProbe.enabled Enable/disable the liveness probe (ingest-only nodes pod)
1924 ## @param ingest.livenessProbe.initialDelaySeconds Delay before liveness probe is initiated (ingest-only nodes pod)
1925 ## @param ingest.livenessProbe.periodSeconds How often to perform the probe (ingest-only nodes pod)
1926 ## @param ingest.livenessProbe.timeoutSeconds When the probe times out (ingest-only nodes pod)
1927 ## @param ingest.livenessProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed (ingest-only nodes pod)
1928 ## @param ingest.livenessProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded
1932 initialDelaySeconds: 180
1937 ## @param ingest.readinessProbe.enabled Enable/disable the readiness probe (ingest-only nodes pod)
1938 ## @param ingest.readinessProbe.initialDelaySeconds Delay before readiness probe is initiated (ingest-only nodes pod)
1939 ## @param ingest.readinessProbe.periodSeconds How often to perform the probe (ingest-only nodes pod)
1940 ## @param ingest.readinessProbe.timeoutSeconds When the probe times out (ingest-only nodes pod)
1941 ## @param ingest.readinessProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed (ingest-only nodes pod)
1942 ## @param ingest.readinessProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded
1946 initialDelaySeconds: 90
1951 ## @param ingest.customStartupProbe Override default startup probe
1953 customStartupProbe: {}
1954 ## @param ingest.customLivenessProbe Override default liveness probe
1956 customLivenessProbe: {}
1957 ## @param ingest.customReadinessProbe Override default readiness probe
1959 customReadinessProbe: {}
1960 ## @param ingest.command Override default container command (useful when using custom images)
1963 ## @param ingest.args Override default container args (useful when using custom images)
1966 ## @param ingest.lifecycleHooks for the ingest-only container(s) to automate configuration before or after startup
1969 ## @param ingest.extraEnvVars Array with extra environment variables to add to ingest-only nodes
1976 ## @param ingest.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for ingest-only nodes
1979 ## @param ingest.extraEnvVarsSecret Name of existing Secret containing extra env vars for ingest-only nodes
1981 extraEnvVarsSecret: ""
1982 ## @param ingest.extraVolumes Optionally specify extra list of additional volumes for the ingest-only pod(s)
1985 ## @param ingest.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the ingest-only container(s)
1987 extraVolumeMounts: []
1988 ## @param ingest.sidecars Add additional sidecar containers to the ingest-only pod(s)
1991 ## - name: your-image-name
1992 ## image: your-image
1993 ## imagePullPolicy: Always
1996 ## containerPort: 1234
1999 ## @param ingest.initContainers Add additional init containers to the ingest-only pod(s)
2000 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
2003 ## - name: your-image-name
2004 ## image: your-image
2005 ## imagePullPolicy: Always
2006 ## command: ['sh', '-c', 'echo "hello world"']
2009 ## Pods Service Account
2010 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
2011 ## @param ingest.serviceAccount.create Specifies whether a ServiceAccount should be created
2012 ## @param ingest.serviceAccount.name Name of the service account to use. If not set and create is true, a name is generated using the fullname template.
2013 ## @param ingest.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
2014 ## @param ingest.serviceAccount.annotations Annotations for service account. Evaluated as a template. Only used if `create` is `true`.
2019 automountServiceAccountToken: false
2021 ## Enable HorizontalPodAutoscaler for Elasticsearch ingest-only pods
2022 ## ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
2023 ## @param ingest.autoscaling.enabled Whether enable horizontal pod autoscale
2024 ## @param ingest.autoscaling.minReplicas Configure a minimum amount of pods
2025 ## @param ingest.autoscaling.maxReplicas Configure a maximum amount of pods
2026 ## @param ingest.autoscaling.targetCPU Define the CPU target to trigger the scaling actions (utilization percentage)
2027 ## @param ingest.autoscaling.targetMemory Define the memory target to trigger the scaling actions (utilization percentage)
2035 ## Elasticsearch Ingest-only Service
2036 ## Recommended for heavy ingestion, improves performance by sending ingest traffic directly into the ingest nodes.
2037 ## NOTE: Ingest nodes will only accept index requests with an associated pipeline, any other request won't be rerouted.
2040 ## @param ingest.service.enabled Enable Ingest-only service
2043 ## @param ingest.service.type Elasticsearch ingest-only service type
2046 ## @param ingest.service.ports.restAPI Elasticsearch service REST API port
2047 ## @param ingest.service.ports.transport Elasticsearch service transport port
2052 ## Node ports to expose
2053 ## @param ingest.service.nodePorts.restAPI Node port for REST API
2054 ## @param ingest.service.nodePorts.transport Node port for REST API
2055 ## NOTE: choose port between <30000-32767>
2060 ## @param ingest.service.clusterIP Elasticsearch ingest-only service Cluster IP
2065 ## @param ingest.service.loadBalancerIP Elasticsearch ingest-only service Load Balancer IP
2066 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
2069 ## @param ingest.service.loadBalancerSourceRanges Elasticsearch ingest-only service Load Balancer sources
2070 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
2072 ## loadBalancerSourceRanges:
2075 loadBalancerSourceRanges: []
2076 ## @param ingest.service.externalTrafficPolicy Elasticsearch ingest-only service external traffic policy
2077 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
2079 externalTrafficPolicy: Cluster
2080 ## @param ingest.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
2083 ## @param ingest.service.annotations Additional custom annotations for Elasticsearch ingest-only service
2086 ## @param ingest.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
2087 ## If "ClientIP", consecutive client requests will be directed to the same Pod
2088 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
2090 sessionAffinity: None
2091 ## @param ingest.service.sessionAffinityConfig Additional settings for the sessionAffinity
2092 ## sessionAffinityConfig:
2094 ## timeoutSeconds: 300
2096 sessionAffinityConfig: {}
2097 ## Elasticsearch Ingest-only ingress parameters
2098 ## ref: http://kubernetes.io/docs/concepts/services-networking/ingress/
2101 ## @param ingest.ingress.enabled Enable ingress record generation for Elasticsearch
2104 ## @param ingest.ingress.pathType Ingress path type
2106 pathType: ImplementationSpecific
2107 ## @param ingest.ingress.apiVersion Force Ingress API version (automatically detected if not set)
2110 ## @param ingest.ingress.hostname Default host for the ingress record
2112 hostname: elasticsearch-ingest.local
2113 ## @param ingest.ingress.path Default path for the ingress record
2114 ## NOTE: You may need to set this to '/*' in order to use this with ALB ingress controllers
2117 ## @param ingest.ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
2118 ## Use this parameter to set the required annotations for cert-manager, see
2119 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
2122 ## kubernetes.io/ingress.class: nginx
2123 ## cert-manager.io/cluster-issuer: cluster-issuer-name
2126 ## @param ingest.ingress.tls Enable TLS configuration for the host defined at `ingress.hostname` parameter
2127 ## TLS certificates will be retrieved from a TLS secret with name: `{{- printf "%s-tls" .Values.ingress.hostname }}`
2129 ## - Use the `ingress.secrets` parameter to create this TLS secret
2130 ## - Rely on cert-manager to create it by setting the corresponding annotations
2131 ## - Rely on Helm to create self-signed certificates by setting `ingress.selfSigned=true`
2134 ## @param ingest.ingress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
2137 ## @param ingest.ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
2138 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
2139 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
2141 ingressClassName: ""
2142 ## @param ingest.ingress.extraHosts An array with additional hostname(s) to be covered with the ingress record
2145 ## - name: elasticsearch.local
2149 ## @param ingest.ingress.extraPaths An array with additional arbitrary paths that may need to be added to the ingress under the main host
2154 ## serviceName: ssl-redirect
2155 ## servicePort: use-annotation
2158 ## @param ingest.ingress.extraTls TLS configuration for additional hostname(s) to be covered with this ingress record
2159 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
2163 ## - elasticsearch.local
2164 ## secretName: elasticsearch.local-tls
2167 ## @param ingest.ingress.secrets Custom TLS certificates as secrets
2168 ## NOTE: 'key' and 'certificate' are expected in PEM format
2169 ## NOTE: 'name' should line up with a 'secretName' set further up
2170 ## If it is not set and you're using cert-manager, this is unneeded, as it will create a secret for you with valid certificates
2171 ## If it is not set and you're NOT using cert-manager either, self-signed certificates will be created valid for 365 days
2172 ## It is also possible to create and manage the certificates outside of this helm chart
2173 ## Please see README.md for more information
2176 ## - name: elasticsearch.local-tls
2178 ## -----BEGIN RSA PRIVATE KEY-----
2180 ## -----END RSA PRIVATE KEY-----
2182 ## -----BEGIN CERTIFICATE-----
2184 ## -----END CERTIFICATE-----
2187 ## @param ingest.ingress.extraRules Additional rules to be covered with this ingress record
2188 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
2191 ## - host: example.local
2196 ## name: example-svc
2201## @section Metrics parameters
2203## Elasticsearch Prometheus exporter configuration
2204## ref: https://hub.docker.com/r/iamguarded/elasticsearch-exporter/tags/
2207 ## @param metrics.enabled Enable prometheus exporter
2210 ## @param metrics.nameOverride Metrics pod name
2213 ## @param metrics.fullnameOverride String to fully override common.names.fullname
2215 fullnameOverride: ""
2216 ## @param metrics.image.registry [default: REGISTRY_NAME] Metrics exporter image registry
2217 ## @param metrics.image.repository [default: REPOSITORY_NAME/elasticsearch-exporter] Metrics exporter image repository
2218 ## @skip metrics.image.tag Metrics exporter image tag
2219 ## @param metrics.image.digest Metrics exporter image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
2220 ## @param metrics.image.pullPolicy Metrics exporter image pull policy
2221 ## @param metrics.image.pullSecrets Metrics exporter image pull secrets
2225 repository: chainguard-private/prometheus-elasticsearch-exporter-iamguarded
2228 pullPolicy: IfNotPresent
2229 ## Optionally specify an array of imagePullSecrets.
2230 ## Secrets must be manually created in the namespace.
2231 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
2234 ## - myRegistryKeySecretName
2237 ## @param metrics.annotations [object] Annotations for metrics
2238 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
2241 helm.sh/hook: "post-install,post-upgrade"
2242 helm.sh/hook-weight: "5"
2243 ## @param metrics.extraArgs Extra arguments to add to the default exporter command
2244 ## ref: https://github.com/justwatchcom/elasticsearch_exporter
2251 ## @param metrics.automountServiceAccountToken Mount Service Account token in pod
2253 automountServiceAccountToken: false
2254 ## @param metrics.hostAliases Add deployment host aliases
2255 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
2258 ## @param metrics.schedulerName Name of the k8s scheduler (other than default)
2259 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
2262 ## @param metrics.priorityClassName Elasticsearch metrics exporter pods' priorityClassName
2264 priorityClassName: ""
2265 ## Elasticsearch Prometheus exporter container ports
2266 ## @param metrics.containerPorts.http Metrics HTTP port
2271 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
2274 ## @param metrics.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
2277 ## @param metrics.networkPolicy.allowExternal Don't require server label for connections
2278 ## The Policy model to apply. When set to false, only pods with the correct
2279 ## server label will have network access to the ports server is listening
2280 ## on. When true, server will accept connections from any source
2281 ## (with the correct destination port).
2284 ## @param metrics.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
2286 allowExternalEgress: true
2287 ## @param metrics.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
2297 ## - matchExpressions:
2303 ## @param metrics.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
2313 ## - matchExpressions:
2320 ## @param metrics.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
2321 ## @param metrics.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
2323 ingressNSMatchLabels: {}
2324 ingressNSPodMatchLabels: {}
2325 ## Elasticsearch Prometheus exporter service type
2328 ## @param metrics.service.type Metrics exporter endpoint service type
2331 ## @param metrics.service.port Metrics exporter endpoint service port
2334 ## @param metrics.service.annotations [object] Provide any additional annotations which may be required.
2335 ## This can be used to set the LoadBalancer service type to internal only.
2336 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
2339 prometheus.io/scrape: "true"
2340 prometheus.io/port: "9114"
2341 ## @param metrics.podAffinityPreset Metrics Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
2342 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
2344 podAffinityPreset: ""
2345 ## @param metrics.podAntiAffinityPreset Metrics Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
2346 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
2348 podAntiAffinityPreset: ""
2349 ## Node affinity preset
2350 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
2351 ## @param metrics.nodeAffinityPreset.type Metrics Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
2352 ## @param metrics.nodeAffinityPreset.key Metrics Node label key to match Ignored if `affinity` is set.
2353 ## @param metrics.nodeAffinityPreset.values Metrics Node label values to match. Ignored if `affinity` is set.
2358 ## key: "kubernetes.io/e2e-az-name"
2367 ## @param metrics.affinity Metrics Affinity for pod assignment
2368 ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
2369 ## Note: podAffinityPreset, podAntiAffinityPreset, and nodeAffinityPreset will be ignored when it's set
2372 ## @param metrics.nodeSelector Metrics Node labels for pod assignment
2373 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
2376 ## @param metrics.tolerations Metrics Tolerations for pod assignment
2377 ## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
2380 ## @param metrics.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
2381 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
2383 topologySpreadConstraints: []
2384 ## Elasticsearch Prometheus exporter resource requests and limits
2385 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2386 ## We usually recommend not to specify default resources and to leave this as a conscious
2387 ## choice for the user. This also increases chances charts run on environments with little
2388 ## resources, such as Minikube. If you do want to specify resources, uncomment the following
2389 ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
2390 ## @param metrics.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if metrics.resources is set (metrics.resources is recommended for production).
2391 ## More information: https://github.com/iamguarded/charts/blob/main/iamguarded/common/templates/_resources.tpl#L15
2393 resourcesPreset: "nano"
2394 ## @param metrics.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
2405 ## Elasticsearch metrics container's liveness probe
2406 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
2407 ## @param metrics.livenessProbe.enabled Enable/disable the liveness probe (metrics pod)
2408 ## @param metrics.livenessProbe.initialDelaySeconds Delay before liveness probe is initiated (metrics pod)
2409 ## @param metrics.livenessProbe.periodSeconds How often to perform the probe (metrics pod)
2410 ## @param metrics.livenessProbe.timeoutSeconds When the probe times out (metrics pod)
2411 ## @param metrics.livenessProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded
2412 ## @param metrics.livenessProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed (metrics pod)
2416 initialDelaySeconds: 60
2421 ## Elasticsearch metrics container's readiness probe
2422 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
2423 ## @param metrics.readinessProbe.enabled Enable/disable the readiness probe (metrics pod)
2424 ## @param metrics.readinessProbe.initialDelaySeconds Delay before readiness probe is initiated (metrics pod)
2425 ## @param metrics.readinessProbe.periodSeconds How often to perform the probe (metrics pod)
2426 ## @param metrics.readinessProbe.timeoutSeconds When the probe times out (metrics pod)
2427 ## @param metrics.readinessProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded
2428 ## @param metrics.readinessProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed (metrics pod)
2432 initialDelaySeconds: 5
2437 ## Elasticsearch metrics container's startup probe
2438 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
2439 ## @param metrics.startupProbe.enabled Enable/disable the startup probe (metrics pod)
2440 ## @param metrics.startupProbe.initialDelaySeconds Delay before startup probe is initiated (metrics pod)
2441 ## @param metrics.startupProbe.periodSeconds How often to perform the probe (metrics pod)
2442 ## @param metrics.startupProbe.timeoutSeconds When the probe times out (metrics pod)
2443 ## @param metrics.startupProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded
2444 ## @param metrics.startupProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed (metrics pod)
2448 initialDelaySeconds: 5
2453 ## @param metrics.customStartupProbe Custom liveness probe for the Web component
2455 customStartupProbe: {}
2456 ## @param metrics.customLivenessProbe Custom liveness probe for the Web component
2458 customLivenessProbe: {}
2459 ## @param metrics.customReadinessProbe Custom readiness probe for the Web component
2461 customReadinessProbe: {}
2462 ## @param metrics.podAnnotations [object] Metrics exporter pod Annotation and Labels
2463 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
2466 prometheus.io/scrape: "true"
2467 prometheus.io/port: "9114"
2468 ## @param metrics.podLabels Extra labels to add to Pod
2471 ## Configure Pods Security Context
2472 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
2473 ## @param metrics.podSecurityContext.enabled Enabled Elasticsearch metrics exporter pods' Security Context
2474 ## @param metrics.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
2475 ## @param metrics.podSecurityContext.sysctls Set kernel settings using the sysctl interface
2476 ## @param metrics.podSecurityContext.supplementalGroups Set filesystem extra groups
2477 ## @param metrics.podSecurityContext.fsGroup Set Elasticsearch metrics exporter pod's Security Context fsGroup
2481 fsGroupChangePolicy: Always
2483 supplementalGroups: []
2485 ## Configure Container Security Context
2486 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
2487 ## @param metrics.containerSecurityContext.enabled Elasticseacrh exporter container securityContext
2488 ## @param metrics.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
2489 ## @param metrics.containerSecurityContext.runAsUser User ID for the Elasticseacrh exporter container
2490 ## @param metrics.containerSecurityContext.runAsGroup Group ID for the Elasticseacrh exporter container
2491 ## @param metrics.containerSecurityContext.runAsNonRoot Set Elasticsearch exporter container's Security Context runAsNonRoot
2492 ## @param metrics.containerSecurityContext.privileged Set Elasticsearch exporter container's Security Context privileged
2493 ## @param metrics.containerSecurityContext.allowPrivilegeEscalation Set Elasticsearch exporter container's Security Context allowPrivilegeEscalation
2494 ## @param metrics.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
2495 ## @param metrics.containerSecurityContext.capabilities.drop List of capabilities to be dropped
2496 ## @param metrics.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
2498 containerSecurityContext:
2505 allowPrivilegeEscalation: false
2506 readOnlyRootFilesystem: true
2510 type: "RuntimeDefault"
2511 ## @param metrics.command Override default container command (useful when using custom images)
2514 ## @param metrics.args Override default container args (useful when using custom images)
2517 ## @param metrics.extraEnvVars Array with extra environment variables to add to Elasticsearch metrics exporter nodes
2524 ## @param metrics.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Elasticsearch metrics exporter nodes
2527 ## @param metrics.extraEnvVarsSecret Name of existing Secret containing extra env vars for Elasticsearch metrics exporter nodes
2529 extraEnvVarsSecret: ""
2530 ## @param metrics.extraVolumes Optionally specify extra list of additional volumes for the Elasticsearch metrics exporter pod(s)
2533 ## @param metrics.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Elasticsearch metrics exporter container(s)
2535 extraVolumeMounts: []
2536 ## @param metrics.sidecars Add additional sidecar containers to the Elasticsearch metrics exporter pod(s)
2539 ## - name: your-image-name
2540 ## image: your-image
2541 ## imagePullPolicy: Always
2544 ## containerPort: 1234
2547 ## @param metrics.initContainers Add additional init containers to the Elasticsearch metrics exporter pod(s)
2548 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
2551 ## - name: your-image-name
2552 ## image: your-image
2553 ## imagePullPolicy: Always
2554 ## command: ['sh', '-c', 'echo "hello world"']
2557 ## Pods Service Account
2558 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
2559 ## @param metrics.serviceAccount.create Specifies whether a ServiceAccount should be created
2560 ## @param metrics.serviceAccount.name Name of the service account to use. If not set and create is true, a name is generated using the fullname template.
2561 ## @param metrics.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
2562 ## @param metrics.serviceAccount.annotations Annotations for service account. Evaluated as a template. Only used if `create` is `true`.
2567 automountServiceAccountToken: false
2569 ## Prometheus Operator ServiceMonitor configuration
2572 ## @param metrics.serviceMonitor.enabled Create ServiceMonitor Resource for scraping metrics using PrometheusOperator
2575 ## @param metrics.serviceMonitor.namespace Namespace which Prometheus is running in
2577 ## namespace: monitoring
2580 ## @param metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
2583 ## @param metrics.serviceMonitor.interval Interval at which metrics should be scraped
2584 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
2587 ## @param metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
2588 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
2591 ## @param metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping
2592 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
2595 ## @param metrics.serviceMonitor.metricRelabelings MetricRelabelConfigs to apply to samples before ingestion
2596 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
2598 metricRelabelings: []
2599 ## @param metrics.serviceMonitor.selector ServiceMonitor selector labels
2600 ## ref: https://github.com/iamguarded/charts/tree/main/iamguarded/prometheus-operator#prometheus-configuration
2603 ## prometheus: my-prometheus
2606 ## @param metrics.serviceMonitor.labels Extra labels for the ServiceMonitor
2609 ## @param metrics.serviceMonitor.honorLabels honorLabels chooses the metric's labels on collisions with target labels
2612 ## Prometheus Operator PrometheusRule configuration
2615 ## @param metrics.prometheusRule.enabled Creates a Prometheus Operator PrometheusRule (also requires `metrics.enabled` to be `true` and `metrics.prometheusRule.rules`)
2618 ## @param metrics.prometheusRule.namespace Namespace for the PrometheusRule Resource (defaults to the Release Namespace)
2621 ## @param metrics.prometheusRule.additionalLabels Additional labels that can be used so PrometheusRule will be discovered by Prometheus
2623 additionalLabels: {}
2624 ## @param metrics.prometheusRule.rules Prometheus Rule definitions
2625 # - alert: es cluster error
2627 # summary: "es cluster error"
2628 # description: "es cluster error, cluster state {{`{{`}} $labels.color {{`}}`}}"
2629 # expr: elasticsearch_cluster_health_status{color="red"} ==1 or elasticsearch_cluster_health_status{color="yellow"} ==1
2632 # severity: critical
2636## @section Init Container Parameters
2638## 'volumePermissions' init container parameters
2639## Changes the owner and group of the persistent volume mount point to runAsUser:fsGroup values
2640## based on the *podSecurityContext/*containerSecurityContext parameters
2643 ## @param volumePermissions.enabled Enable init container that changes volume permissions in the data directory (for cases where the default k8s `runAsUser` and `fsUser` values do not work)
2646 ## @param volumePermissions.image.registry [default: REGISTRY_NAME] Init container volume-permissions image registry
2647 ## @param volumePermissions.image.repository [default: REPOSITORY_NAME/os-shell] Init container volume-permissions image name
2648 ## @skip volumePermissions.image.tag Init container volume-permissions image tag
2649 ## @param volumePermissions.image.digest Init container volume-permissions image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
2650 ## @param volumePermissions.image.pullPolicy Init container volume-permissions image pull policy
2651 ## @param volumePermissions.image.pullSecrets Init container volume-permissions image pull secrets
2655 repository: chainguard-private/os-shell-iamguarded
2658 pullPolicy: IfNotPresent
2659 ## Optionally specify an array of imagePullSecrets.
2660 ## Secrets must be manually created in the namespace.
2661 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
2664 ## - myRegistryKeySecretName
2667 ## Init container' resource requests and limits
2668 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2669 ## We usually recommend not to specify default resources and to leave this as a conscious
2670 ## choice for the user. This also increases chances charts run on environments with little
2671 ## resources, such as Minikube. If you do want to specify resources, uncomment the following
2672 ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
2673 ## @param volumePermissions.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if volumePermissions.resources is set (volumePermissions.resources is recommended for production).
2674 ## More information: https://github.com/iamguarded/charts/blob/main/iamguarded/common/templates/_resources.tpl#L15
2676 resourcesPreset: "nano"
2677 ## @param volumePermissions.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
2688## Kernel settings modifier image
2691 ## @param sysctlImage.enabled Enable kernel settings modifier image
2694 ## @param sysctlImage.registry [default: REGISTRY_NAME] Kernel settings modifier image registry
2695 ## @param sysctlImage.repository [default: REPOSITORY_NAME/os-shell] Kernel settings modifier image repository
2696 ## @skip sysctlImage.tag Kernel settings modifier image tag
2697 ## @param sysctlImage.digest Kernel settings modifier image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
2698 ## @param sysctlImage.pullPolicy Kernel settings modifier image pull policy
2699 ## @param sysctlImage.pullSecrets Kernel settings modifier image pull secrets
2702 repository: chainguard-private/os-shell-iamguarded
2705 ## Specify a imagePullPolicy
2706 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
2708 pullPolicy: IfNotPresent
2709 ## Optionally specify an array of imagePullSecrets.
2710 ## Secrets must be manually created in the namespace.
2711 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
2714 ## - myRegistryKeySecretName
2717 ## Init container' resource requests and limits
2718 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2719 ## We usually recommend not to specify default resources and to leave this as a conscious
2720 ## choice for the user. This also increases chances charts run on environments with little
2721 ## resources, such as Minikube. If you do want to specify resources, uncomment the following
2722 ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
2723 ## @param sysctlImage.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if sysctlImage.resources is set (sysctlImage.resources is recommended for production).
2724 ## More information: https://github.com/iamguarded/charts/blob/main/iamguarded/common/templates/_resources.tpl#L15
2726 resourcesPreset: "nano"
2727 ## @param sysctlImage.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
2738## @section Kibana Parameters
2740## Bundled Kibana parameters
2741## @param kibana.elasticsearch.hosts [array] Array containing hostnames for the ES instances. Used to generate the URL
2742## @param kibana.elasticsearch.port Port to connect Kibana and ES instance. Used to generate the URL
2747 - '{{ include "elasticsearch.service.name" . }}'
2748 port: '{{ include "elasticsearch.service.ports.restAPI" . }}'
2751 repository: chainguard-private/kibana-iamguarded
2757 repository: chainguard-private/os-shell-iamguarded