1# This file has been modified by Chainguard, Inc.
3# Copyright Chainguard, Inc. All Rights Reserved.
4# Chainguard, Inc. modifications are subject to the license
5# available at: https://www.chainguard.dev/legal/software-license-agreement
7# Copyright Broadcom, Inc. All Rights Reserved.
8# SPDX-License-Identifier: APACHE-2.0
10## @section Global parameters
11## Global Docker image parameters
12## Please, note that this will override the image parameters, including dependencies, configured to use the global value
13## Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass
15## @param global.imageRegistry Global Docker image registry
16## @param global.imagePullSecrets Global Docker registry secret names as an array
17## @param global.defaultStorageClass Global default StorageClass for Persistent Volume(s)
18## @param global.storageClass DEPRECATED: use global.defaultStorageClass instead
24 ## - myRegistryKeySecretName
27 defaultStorageClass: ""
29 ## Security parameters
32 ## @param global.security.allowInsecureImages Allows skipping image verification
33 allowInsecureImages: false
34 ## Compatibility adaptations for Kubernetes platforms
37 ## Compatibility adaptations for Openshift
40 ## @param global.compatibility.openshift.adaptSecurityContext Adapt the securityContext sections of the deployment to make them compatible with Openshift restricted-v2 SCC: remove runAsUser, runAsGroup and fsGroup and let the platform use their allowed default IDs. Possible values: auto (apply if the detected running cluster is Openshift), force (perform the adaptation always), disabled (do not perform adaptation)
42 adaptSecurityContext: auto
44## @section Common parameters
46## @param kubeVersion Override Kubernetes version
49## @param apiVersions Override Kubernetes API versions reported by .Capabilities
52## @param nameOverride String to partially override common.names.fullname
55## @param fullnameOverride String to fully override common.names.fullname
58## @param commonLabels Labels to add to all deployed objects
61## @param commonAnnotations Annotations to add to all deployed objects
64## @param clusterDomain Kubernetes cluster domain name
66clusterDomain: cluster.local
67## @param extraDeploy Array of extra objects to deploy with the release
70## @param namespaceOverride String to fully override common.names.namespace
73## @param usePasswordFiles Mount credentials as files instead of using environment variables
76## Enable diagnostic mode in the deployment
79 ## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden)
82 ## @param diagnosticMode.command Command to override all containers in the deployment
86 ## @param diagnosticMode.args Args to override all containers in the deployment
90## @section OpenSearch cluster Parameters
92## @param clusterName OpenSearch cluster name
95## @param containerPorts.restAPI OpenSearch REST API port
96## @param containerPorts.transport OpenSearch Transport port
101## @param plugins Comma, semi-colon or space separated list of plugins to install at initialization
104## @param snapshotRepoPath File System snapshot repository path
107## @param config Override opensearch configuration
110## @param extraConfig Append extra configuration to the opensearch node configuration
111## Use this instead of `config` to add more configuration
117## ref: https://www.open.co/guide/en/opensearch/reference/current/settings.html
120## @param extraHosts A list of external hosts which are part of this cluster
121## Example Use Case: When you have a cluster with nodes spanned across multiple K8s or namespaces
123## - datacenter2-opensearch-master-hl.namespace2.svc
124## - datacenter2-opensearch-data-hl.namespace2.svc
126## @param extraVolumes A list of volumes to be added to the pod
127## Example Use Case: mount ssl certificates when opensearch has tls enabled
132## secretName: es-certs
134## @param extraVolumeMounts A list of volume mounts to be added to the pod
140## @param initScripts Dictionary of init scripts. Evaluated as a template.
141## Specify dictionary of scripts to be run at first boot
142## Alternatively, you can put your scripts under the files/docker-entrypoint-initdb.d directory
145## my_init_script.sh: |
147## echo "Do something."
149## @param initScriptsCM ConfigMap with the init scripts. Evaluated as a template.
150## Note: This will override initScripts
153## @param initScriptsSecret Secret containing `/docker-entrypoint-initdb.d` scripts to be executed at initialization time that contain sensitive data. Evaluated as a template.
156## @param extraEnvVars Array containing extra env vars to be added to all pods (evaluated as a template)
160## value: env_var_value
163## @param extraEnvVarsCM ConfigMap containing extra env vars to be added to all pods (evaluated as a template)
166## @param extraEnvVarsSecret Secret containing extra env vars to be added to all pods (evaluated as a template)
168extraEnvVarsSecret: ""
169## @param sidecars Add additional sidecar containers to the all opensearch node pod(s)
172## - name: your-image-name
174## imagePullPolicy: Always
177## containerPort: 1234
180## @param initContainers Add additional init containers to the all opensearch node pod(s)
181## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
184## - name: your-image-name
186## imagePullPolicy: Always
187## command: ['sh', '-c', 'echo "hello world"']
190## @param useIstioLabels Use this variable to add Istio labels to all pods
193## Iamguarded OpenSearch image
194## @param image.registry [default: REGISTRY_NAME] OpenSearch image registry
195## @param image.repository [default: REPOSITORY_NAME/opensearch] OpenSearch image repository
196## @skip image.tag OpenSearch image tag (immutable tags are recommended)
197## @param image.digest OpenSearch image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
198## @param image.pullPolicy OpenSearch image pull policy
199## @param image.pullSecrets OpenSearch image pull secrets
200## @param image.debug Enable OpenSearch image debug mode
204 repository: chainguard-private/opensearch-iamguarded
207 ## Specify a imagePullPolicy
208 ## ref: http://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
210 pullPolicy: IfNotPresent
211 ## Optionally specify an array of imagePullSecrets.
212 ## Secrets must be manually created in the namespace.
213 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
216 ## - myRegistryKeySecretName
222## X-Pack security parameters
223## Note: TLS configuration is required in order to configure password authentication
226 ## @param security.enabled Enable X-Pack Security settings
229 ## @param security.adminPassword Password for 'admin' user
232 ## @param security.logstashPassword Password for Logstash
235 ## @param security.existingSecret Name of the existing secret containing the OpenSearch password and
239 ## @param security.fipsMode Configure opensearch with FIPS 140 compliant mode
240 ## Ref: https://www.open.co/guide/en/opensearch/reference/current/fips-140-compliance.html
246 ## @section OpenSearch admin parameters
247 ## @param security.tls.admin.existingSecret Existing secret containing the certificates for admin
248 ## @param security.tls.admin.certKey Key containing the crt for admin certificate (defaults to admin.crt)
249 ## @param security.tls.admin.keyKey Key containing the key for admin certificate (defaults to admin.key)
255 ## @param security.tls.restEncryption Enable SSL/TLS encryption for OpenSearch REST API.
257 restEncryption: false
258 ## @param security.tls.autoGenerated Create self-signed TLS certificates.
259 ## NOTE: If autoGenerated certs are enabled and a new node type is enabled using helm upgrade, make sure you remove previously existing OpenSearch TLS secrets.
260 ## Otherwise, the new node certs won't match the existing certs.
263 ## @param security.tls.verificationMode Verification mode for SSL communications.
264 ## Supported values: full, certificate, none.
265 ## Ref: https://www.open.co/guide/en/opensearch/reference/current/security-settings.html
267 verificationMode: "full"
268 ## TLS configuration for master nodes
271 ## @param security.tls.master.existingSecret Existing secret containing the certificates for the master nodes
272 ## @param security.tls.master.certKey Key containing the crt for master nodes certificate (defaults to tls.crt)
273 ## @param security.tls.master.keyKey Key containing the key for master nodes certificate (defaults to tls.key)
274 ## @param security.tls.master.caKey Key containing the ca for master nodes certificate (defaults to ca.crt)
280 ## TLS configuration for data nodes
283 ## @param security.tls.data.existingSecret Existing secret containing the certificates for the data nodes
284 ## @param security.tls.data.certKey Key containing the crt for data nodes certificate (defaults to tls.crt)
285 ## @param security.tls.data.keyKey Key containing the key for data nodes certificate (defaults to tls.key)
286 ## @param security.tls.data.caKey Key containing the ca for data nodes certificate (defaults to ca.crt)
292 ## TLS configuration for ingest nodes
295 ## @param security.tls.ingest.existingSecret Existing secret containing the certificates for the ingest nodes
296 ## @param security.tls.ingest.certKey Key containing the crt for ingest nodes certificate (defaults to tls.crt)
297 ## @param security.tls.ingest.keyKey Key containing the key for ingest nodes certificate (defaults to tls.key)
298 ## @param security.tls.ingest.caKey Key containing the ca for ingest nodes certificate (defaults to ca.crt)
304 ## TLS configuration for coordinating nodes
307 ## @param security.tls.coordinating.existingSecret Existing secret containing the certificates for the coordinating nodes
308 ## @param security.tls.coordinating.certKey Key containing the crt for coordinating nodes certificate (defaults to tls.crt)
309 ## @param security.tls.coordinating.keyKey Key containing the key for coordinating nodes certificate (defaults to tls.key)
310 ## @param security.tls.coordinating.caKey Key containing the ca for coordinating nodes certificate (defaults to ca.crt)
316 ## @param security.tls.keystoreFilename Name of the keystore file
318 keystoreFilename: opensearch.keystore.jks
319 ## @param security.tls.truststoreFilename Name of the truststore
321 truststoreFilename: opensearch.truststore.jks
322 ## @param security.tls.usePemCerts Use this variable if your secrets contain PEM certificates instead of JKS/PKCS12
323 ## Ignored when using autoGenerated certs.
326 ## @param security.tls.passwordsSecret Existing secret containing the Keystore and Truststore passwords, or key password if PEM certs are used
329 ## @param security.tls.keystorePassword Password to access the JKS/PKCS12 keystore or PEM key when they are password-protected.
330 ## Ignored if security.tls.passwordsSecret is provided.
333 ## @param security.tls.truststorePassword Password to access the JKS/PKCS12 truststore when they are password-protected.
334 ## Ignored if security.tls.passwordsSecret is provided.
336 truststorePassword: ""
337 ## @param security.tls.keyPassword Password to access the PEM key when they are password-protected.
338 ## Ignored if security.tls.passwordsSecret is provided.
341 ## @param security.tls.secretKeystoreKey Name of the secret key containing the Keystore password
343 secretKeystoreKey: ""
344 ## @param security.tls.secretTruststoreKey Name of the secret key containing the Truststore password
346 secretTruststoreKey: ""
347 ## @param security.tls.secretKey Name of the secret key containing the PEM key password
350 ## @param security.tls.nodesDN A comma separated list of DN for nodes
351 ## e.g. nodesDN: "O=Example CA,C=SE,UID=c-5ca04c9328c8208704310f7c2ed16414"
355 ## @param security.tls.adminDN A comma separated list of DN for admins
356 ## Note that this parameter has lower priority than extraConfig.plugins.security.authcz.admin_dn and will be overridden if both parameters are set.
358 ## Also, due to specifics of the config bootstrap script implementation, spaces will be treated as separators.
359 ## For example, "CN=admin,O=Some Organisation,L=SomeCity,C=SomeCountry" will become:
362 ## - Organisation,L=SomeCity,C=SomeCountry
364 ## To avoid this, consider using extraConfig.plugins.security.authcz.admin_dn instead.
367 adminDN: "CN=admin;CN=admin"
368## @section Traffic Exposure Parameters
370## OpenSearch service parameters
373 ## @param service.type OpenSearch service type
376 ## @param service.ports.restAPI OpenSearch service REST API port
377 ## @param service.ports.transport OpenSearch service transport port
382 ## Node ports to expose
383 ## @param service.nodePorts.restAPI Node port for REST API
384 ## @param service.nodePorts.transport Node port for REST API
385 ## NOTE: choose port between <30000-32767>
390 ## @param service.clusterIP OpenSearch service Cluster IP
395 ## @param service.loadBalancerIP OpenSearch service Load Balancer IP
396 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
399 ## @param service.loadBalancerSourceRanges OpenSearch service Load Balancer sources
400 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
402 ## loadBalancerSourceRanges:
405 loadBalancerSourceRanges: []
406 ## @param service.externalTrafficPolicy OpenSearch service external traffic policy
407 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
409 externalTrafficPolicy: Cluster
410 ## @param service.annotations Additional custom annotations for OpenSearch service
413 ## @param service.extraPorts Extra ports to expose in OpenSearch service (normally used with the `sidecars` value)
416 ## @param service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
417 ## If "ClientIP", consecutive client requests will be directed to the same Pod
418 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
420 sessionAffinity: None
421 ## @param service.sessionAffinityConfig Additional settings for the sessionAffinity
422 ## sessionAffinityConfig:
424 ## timeoutSeconds: 300
426 sessionAffinityConfig: {}
427## OpenSearch ingress parameters
428## ref: http://kubernetes.io/docs/concepts/services-networking/ingress/
431 ## @param ingress.enabled Enable ingress record generation for OpenSearch
434 ## @param ingress.pathType Ingress path type
436 pathType: ImplementationSpecific
437 ## @param ingress.apiVersion Force Ingress API version (automatically detected if not set)
440 ## @param ingress.hostname Default host for the ingress record
442 hostname: opensearch.local
443 ## @param ingress.path Default path for the ingress record
444 ## NOTE: You may need to set this to '/*' in order to use this with ALB ingress controllers
447 ## @param ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
448 ## Use this parameter to set the required annotations for cert-manager, see
449 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
452 ## kubernetes.io/ingress.class: nginx
453 ## cert-manager.io/cluster-issuer: cluster-issuer-name
456 ## @param ingress.tls Enable TLS configuration for the host defined at `ingress.hostname` parameter
457 ## TLS certificates will be retrieved from a TLS secret with name: `{{- printf "%s-tls" .Values.ingress.hostname }}`
459 ## - Use the `ingress.secrets` parameter to create this TLS secret
460 ## - Rely on cert-manager to create it by setting the corresponding annotations
461 ## - Rely on Helm to create self-signed certificates by setting `ingress.selfSigned=true`
464 ## @param ingress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
467 ## @param ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
468 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
469 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
472 ## @param ingress.extraHosts An array with additional hostname(s) to be covered with the ingress record
475 ## - name: opensearch.local
479 ## @param ingress.extraPaths An array with additional arbitrary paths that may need to be added to the ingress under the main host
484 ## serviceName: ssl-redirect
485 ## servicePort: use-annotation
488 ## @param ingress.extraTls TLS configuration for additional hostname(s) to be covered with this ingress record
489 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
493 ## - opensearch.local
494 ## secretName: opensearch.local-tls
497 ## @param ingress.secrets Custom TLS certificates as secrets
498 ## NOTE: 'key' and 'certificate' are expected in PEM format
499 ## NOTE: 'name' should line up with a 'secretName' set further up
500 ## 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
501 ## If it is not set and you're NOT using cert-manager either, self-signed certificates will be created valid for 365 days
502 ## It is also possible to create and manage the certificates outside of this helm chart
503 ## Please see README.md for more information
506 ## - name: opensearch.local-tls
508 ## -----BEGIN RSA PRIVATE KEY-----
510 ## -----END RSA PRIVATE KEY-----
512 ## -----BEGIN CERTIFICATE-----
514 ## -----END CERTIFICATE-----
517 ## @param ingress.extraRules Additional rules to be covered with this ingress record
518 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
521 ## - host: example.local
531## @section Master-eligible nodes parameters
533 ## @param master.masterOnly Deploy the OpenSearch master-eligible nodes as master-only nodes. Recommended for high-demand deployments.
536 ## @param master.replicaCount Number of master-eligible replicas to deploy
539 ## @param master.extraRoles Append extra roles to the node role
542 ## Pod Disruption Budget configuration
543 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
544 ## @param master.pdb.create Enable/disable a Pod Disruption Budget creation
545 ## @param master.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
546 ## @param master.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `master.pdb.minAvailable` and `master.pdb.maxUnavailable` are empty.
552 ## @param master.nameOverride String to partially override opensearch.master.fullname
555 ## @param master.fullnameOverride String to fully override opensearch.master.fullname
558 ## @param master.servicenameOverride String to fully override opensearch.master.servicename
559 ## DEPRECATED: Use master.service.headless.nameOverride instead
561 servicenameOverride: ""
562 ## @param master.annotations [object] Annotations for the master statefulset
565 ## @param master.updateStrategy.type Master-eligible nodes statefulset strategy type
566 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
570 ## OpenSearch resource requests and limits
571 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
572 ## We usually recommend not to specify default resources and to leave this as a conscious
573 ## choice for the user. This also increases chances charts run on environments with little
574 ## resources, such as Minikube. If you do want to specify resources, uncomment the following
575 ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
576 ## @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).
578 resourcesPreset: "medium"
579 ## @param master.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
590 ## @param master.heapSize OpenSearch master-eligible node heap size.
591 ## Note: The recommended heapSize is half of the container's memory.
592 ## If omitted, it will be automatically set.
597 ## Configure Pods Security Context
598 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
599 ## @param master.podSecurityContext.enabled Enabled master-eligible pods' Security Context
600 ## @param master.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
601 ## @param master.podSecurityContext.sysctls Set kernel settings using the sysctl interface
602 ## @param master.podSecurityContext.supplementalGroups Set filesystem extra groups
603 ## @param master.podSecurityContext.fsGroup Set master-eligible pod's Security Context fsGroup
607 fsGroupChangePolicy: Always
609 supplementalGroups: []
611 ## Configure Container Security Context
612 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
613 ## @param master.containerSecurityContext.enabled Enabled containers' Security Context
614 ## @param master.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
615 ## @param master.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
616 ## @param master.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
617 ## @param master.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
618 ## @param master.containerSecurityContext.privileged Set container's Security Context privileged
619 ## @param master.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
620 ## @param master.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
621 ## @param master.containerSecurityContext.capabilities.drop List of capabilities to be dropped
622 ## @param master.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
624 containerSecurityContext:
631 readOnlyRootFilesystem: true
632 allowPrivilegeEscalation: false
636 type: "RuntimeDefault"
637 ## @param master.automountServiceAccountToken Mount Service Account token in pod
639 automountServiceAccountToken: false
640 ## @param master.hostAliases master-eligible pods host aliases
641 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
644 ## @param master.podLabels Extra labels for master-eligible pods
645 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
648 ## @param master.podAnnotations Annotations for master-eligible pods
649 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
652 ## @param master.podAffinityPreset Pod affinity preset. Ignored if `master.affinity` is set. Allowed values: `soft` or `hard`
653 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
655 podAffinityPreset: ""
656 ## @param master.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `master.affinity` is set. Allowed values: `soft` or `hard`
657 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
659 podAntiAffinityPreset: ""
660 ## Node master.affinity preset
661 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
664 ## @param master.nodeAffinityPreset.type Node affinity preset type. Ignored if `master.affinity` is set. Allowed values: `soft` or `hard`
667 ## @param master.nodeAffinityPreset.key Node label key to match. Ignored if `master.affinity` is set
670 ## @param master.nodeAffinityPreset.values Node label values to match. Ignored if `master.affinity` is set
677 ## @param master.affinity Affinity for master-eligible pods assignment
678 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
679 ## NOTE: `master.podAffinityPreset`, `master.podAntiAffinityPreset`, and `master.nodeAffinityPreset` will be ignored when it's set
682 ## @param master.nodeSelector Node labels for master-eligible pods assignment
683 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
686 ## @param master.tolerations Tolerations for master-eligible pods assignment
687 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
690 ## @param master.priorityClassName master-eligible pods' priorityClassName
692 priorityClassName: ""
693 ## @param master.schedulerName Name of the k8s scheduler (other than default) for master-eligible pods
694 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
697 ## @param master.terminationGracePeriodSeconds In seconds, time the given to the OpenSearch Master pod needs to terminate gracefully
698 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
700 terminationGracePeriodSeconds: ""
701 ## @param master.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
702 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
704 topologySpreadConstraints: []
705 ## @param master.podManagementPolicy podManagementPolicy to manage scaling operation of OpenSearch master pods
706 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
708 podManagementPolicy: "Parallel"
709 ## Configure extra options for OpenSearch master-eligible containers' liveness, readiness and startup probes
710 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
711 ## @param master.startupProbe.enabled Enable/disable the startup probe (master nodes pod)
712 ## @param master.startupProbe.initialDelaySeconds Delay before startup probe is initiated (master nodes pod)
713 ## @param master.startupProbe.periodSeconds How often to perform the probe (master nodes pod)
714 ## @param master.startupProbe.timeoutSeconds When the probe times out (master nodes pod)
715 ## @param master.startupProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed (master nodes pod)
716 ## @param master.startupProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded
720 initialDelaySeconds: 90
725 ## @param master.livenessProbe.enabled Enable/disable the liveness probe (master-eligible nodes pod)
726 ## @param master.livenessProbe.initialDelaySeconds Delay before liveness probe is initiated (master-eligible nodes pod)
727 ## @param master.livenessProbe.periodSeconds How often to perform the probe (master-eligible nodes pod)
728 ## @param master.livenessProbe.timeoutSeconds When the probe times out (master-eligible nodes pod)
729 ## @param master.livenessProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed (master-eligible nodes pod)
730 ## @param master.livenessProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded
734 initialDelaySeconds: 180
739 ## @param master.readinessProbe.enabled Enable/disable the readiness probe (master-eligible nodes pod)
740 ## @param master.readinessProbe.initialDelaySeconds Delay before readiness probe is initiated (master-eligible nodes pod)
741 ## @param master.readinessProbe.periodSeconds How often to perform the probe (master-eligible nodes pod)
742 ## @param master.readinessProbe.timeoutSeconds When the probe times out (master-eligible nodes pod)
743 ## @param master.readinessProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed (master-eligible nodes pod)
744 ## @param master.readinessProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded
748 initialDelaySeconds: 90
753 ## @param master.customStartupProbe Override default startup probe
755 customStartupProbe: {}
756 ## @param master.customLivenessProbe Override default liveness probe
758 customLivenessProbe: {}
759 ## @param master.customReadinessProbe Override default readiness probe
761 customReadinessProbe: {}
762 ## @param master.command Override default container command (useful when using custom images)
765 ## @param master.args Override default container args (useful when using custom images)
768 ## @param master.lifecycleHooks for the master-eligible container(s) to automate configuration before or after startup
771 ## @param master.extraEnvVars Array with extra environment variables to add to master-eligible nodes
778 ## @param master.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for master-eligible nodes
781 ## @param master.extraEnvVarsSecret Name of existing Secret containing extra env vars for master-eligible nodes
783 extraEnvVarsSecret: ""
784 ## @param master.extraVolumes Optionally specify extra list of additional volumes for the master-eligible pod(s)
787 ## @param master.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the master-eligible container(s)
789 extraVolumeMounts: []
790 ## @param master.sidecars Add additional sidecar containers to the master-eligible pod(s)
793 ## - name: your-image-name
795 ## imagePullPolicy: Always
798 ## containerPort: 1234
801 ## @param master.initContainers Add additional init containers to the master-eligible pod(s)
802 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
805 ## - name: your-image-name
807 ## imagePullPolicy: Always
808 ## command: ['sh', '-c', 'echo "hello world"']
811 ## Enable persistence using Persistent Volume Claims
812 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
815 ## @param master.persistence.enabled Enable persistence using a `PersistentVolumeClaim`
818 ## @param master.persistence.storageClass Persistent Volume Storage Class
819 ## If defined, storageClassName: <storageClass>
820 ## If set to "-", storageClassName: "", which disables dynamic provisioning
821 ## If undefined (the default) or set to null, no storageClassName spec is
822 ## set, choosing the default provisioner. (gp2 on AWS, standard on
823 ## GKE, AWS & OpenStack)
826 ## @param master.persistence.existingClaim Existing Persistent Volume Claim
827 ## then accept the value as an existing Persistent Volume Claim to which
828 ## the container should be bound
831 ## @param master.persistence.existingVolume Existing Persistent Volume for use as volume match label selector to the `volumeClaimTemplate`. Ignored when `master.persistence.selector` is set.
834 ## @param master.persistence.selector Configure custom selector for existing Persistent Volume. Overwrites `master.persistence.existingVolume`
840 ## @param master.persistence.annotations Persistent Volume Claim annotations
843 ## @param master.persistence.accessModes Persistent Volume Access Modes
847 ## @param master.persistence.size Persistent Volume Size
850 ## Pods Service Account
851 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
852 ## @param master.serviceAccount.create Specifies whether a ServiceAccount should be created
853 ## @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.
854 ## @param master.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
855 ## @param master.serviceAccount.annotations Annotations for service account. Evaluated as a template. Only used if `create` is `true`.
860 automountServiceAccountToken: false
862 ## Network Policy configuration
863 ## ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
866 ## @param master.networkPolicy.enabled Enable creation of NetworkPolicy resources
869 ## @param master.networkPolicy.allowExternal The Policy model to apply
870 ## When set to false, only pods with the correct client label will have network access to the ports OpenSearch is
871 ## listening on. When true, OpenSearch will accept connections from any source (with the correct destination port).
874 ## @param master.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
876 allowExternalEgress: true
877 ## @param master.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
887 ## - matchExpressions:
894 ## @param master.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
904 ## - matchExpressions:
911 ## @param master.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
912 ## @param master.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
914 ingressNSMatchLabels: {}
915 ingressNSPodMatchLabels: {}
918 ## @param master.autoscaling.vpa.enabled Enable VPA
921 ## @param master.autoscaling.vpa.annotations Annotations for VPA resource
924 ## @param master.autoscaling.vpa.controlledResources VPA List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
926 controlledResources: []
927 ## @param master.autoscaling.vpa.maxAllowed VPA Max allowed resources for the pod
931 ## @param master.autoscaling.vpa.minAllowed VPA Min allowed resources for the pod
936 ## @param master.autoscaling.vpa.updatePolicy.updateMode Autoscaling update policy Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod
937 ## Possible values are "Off", "Initial", "Recreate", and "Auto".
941 ## @param master.autoscaling.hpa.enabled Enable HPA for APISIX Data Plane
944 ## @param master.autoscaling.hpa.minReplicas Minimum number of APISIX Data Plane replicas
947 ## @param master.autoscaling.hpa.maxReplicas Maximum number of APISIX Data Plane replicas
950 ## @param master.autoscaling.hpa.targetCPU Target CPU utilization percentage
953 ## @param master.autoscaling.hpa.targetMemory Target Memory utilization percentage
956 ## Master-eligible service parameters
959 ## Headless service properties
962 ## @param master.service.headless.annotations Annotations for the Master-eligible headless service.
965 ## @param master.service.headless.nameOverride String to fully override opensearch.master.servicename
968 ## @param master.service.headless.trafficDistribution String Traffic distribution for the master headless service
969 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution
971 trafficDistribution: "PreferClose"
972 ## Metrics configuration for master-eligible node
975 ## @param master.metrics.enabled Enable master-eligible node metrics
979 ## @param master.metrics.service.ports.metrics master-eligible node metrics service port
983 ## @param master.metrics.service.clusterIP master-eligible node metrics service Cluster IP
988 ## master-eligible node metrics service monitor configuration
991 ## @param master.metrics.serviceMonitor.enabled Create ServiceMonitor Resource for scraping metrics using PrometheusOperator
994 ## @param master.metrics.serviceMonitor.namespace Namespace which Prometheus is running in
996 ## namespace: monitoring
999 ## @param master.metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
1002 ## @param master.metrics.serviceMonitor.interval Interval at which metrics should be scraped
1003 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
1006 ## @param master.metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
1007 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
1010 ## @param master.metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping
1011 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
1014 ## @param master.metrics.serviceMonitor.metricRelabelings MetricRelabelConfigs to apply to samples before ingestion
1015 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
1017 metricRelabelings: []
1018 ## @param master.metrics.serviceMonitor.selector ServiceMonitor selector labels
1021 ## prometheus: my-prometheus
1024 ## @param master.metrics.serviceMonitor.honorLabels honorLabels chooses the metric's labels on collisions with target labels
1027 ## Rules for PrometheusRule object if enabled
1030 ## @param master.metrics.rules.enabled Enable render extra rules for PrometheusRule object
1031 ## @param master.metrics.rules.spec Rules to render into the PrometheusRule object
1032 ## @param master.metrics.rules.selector Selector for the PrometheusRule object
1033 ## @param master.metrics.rules.namespace Namespace where to create the PrometheusRule object
1034 ## @param master.metrics.rules.additionalLabels Additional lables to add to the PrometheusRule object
1039 ## - alert: ArgoAppMissing
1041 ## absent(argocd_app_info)
1044 ## severity: critical
1046 ## summary: "[ArgoCD] No reported applications"
1048 ## ArgoCD has not reported any applications data for the past 15 minutes which
1049 ## means that it must be down or not functioning properly. This needs to be
1050 ## resolved for this cloud to continue to maintain state.
1051 ## - alert: ArgoAppNotSynced
1053 ## argocd_app_info{sync_status!="Synced"} == 1
1056 ## severity: warning
1058 ## summary: "[{{`{{ $labels.name }}`}}] Application not synchronized"
1060 ## The application [{{`{{ $labels.name }}`}} has not been synchronized for over
1061 ## 12 hours which means that the state of this cloud has drifted away from the
1062 ## state inside Git.
1067 ## prometheus: kube-prometheus
1070 namespace: monitoring
1071 additionalLabels: {}
1072## @section Data-only nodes parameters
1074 ## @param data.replicaCount Number of data-only replicas to deploy
1077 ## @param data.extraRoles Append extra roles to the node role
1080 ## Pod Disruption Budget configuration
1081 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
1082 ## @param data.pdb.create Enable/disable a Pod Disruption Budget creation
1083 ## @param data.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
1084 ## @param data.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `data.pdb.minAvailable` and `data.pdb.maxUnavailable` are empty.
1090 ## @param data.nameOverride String to partially override opensearch.data.fullname
1093 ## @param data.fullnameOverride String to fully override opensearch.data.fullname
1095 fullnameOverride: ""
1096 ## @param data.servicenameOverride String to fully override opensearch.data.servicename
1097 ## DEPRECATED: Use data.service.headless.nameOverride instead
1099 servicenameOverride: ""
1100 ## @param data.annotations [object] Annotations for the data statefulset
1103 ## @param data.updateStrategy.type Data-only nodes statefulset strategy type
1104 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
1108 ## OpenSearch resource requests and limits
1109 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1110 ## @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).
1112 resourcesPreset: "medium"
1113 ## @param data.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1124 ## @param data.heapSize OpenSearch data node heap size.
1125 ## Note: The recommended heapSize is half of the container's memory.
1126 ## If omitted, it will be automatically set.
1131 ## Configure Pods Security Context
1132 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1133 ## @param data.podSecurityContext.enabled Enabled data pods' Security Context
1134 ## @param data.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
1135 ## @param data.podSecurityContext.sysctls Set kernel settings using the sysctl interface
1136 ## @param data.podSecurityContext.supplementalGroups Set filesystem extra groups
1137 ## @param data.podSecurityContext.fsGroup Set data pod's Security Context fsGroup
1141 fsGroupChangePolicy: Always
1143 supplementalGroups: []
1145 ## Configure Container Security Context
1146 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1147 ## @param data.containerSecurityContext.enabled Enabled containers' Security Context
1148 ## @param data.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1149 ## @param data.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
1150 ## @param data.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
1151 ## @param data.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
1152 ## @param data.containerSecurityContext.privileged Set container's Security Context privileged
1153 ## @param data.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
1154 ## @param data.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
1155 ## @param data.containerSecurityContext.capabilities.drop List of capabilities to be dropped
1156 ## @param data.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
1158 containerSecurityContext:
1165 readOnlyRootFilesystem: true
1166 allowPrivilegeEscalation: false
1170 type: "RuntimeDefault"
1171 ## @param data.automountServiceAccountToken Mount Service Account token in pod
1173 automountServiceAccountToken: false
1174 ## @param data.hostAliases data pods host aliases
1175 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
1178 ## @param data.podLabels Extra labels for data pods
1179 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
1182 ## @param data.podAnnotations Annotations for data pods
1183 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
1186 ## @param data.podAffinityPreset Pod affinity preset. Ignored if `data.affinity` is set. Allowed values: `soft` or `hard`
1187 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1189 podAffinityPreset: ""
1190 ## @param data.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `data.affinity` is set. Allowed values: `soft` or `hard`
1191 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1193 podAntiAffinityPreset: ""
1194 ## Node data.affinity preset
1195 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
1198 ## @param data.nodeAffinityPreset.type Node affinity preset type. Ignored if `data.affinity` is set. Allowed values: `soft` or `hard`
1201 ## @param data.nodeAffinityPreset.key Node label key to match. Ignored if `data.affinity` is set
1204 ## @param data.nodeAffinityPreset.values Node label values to match. Ignored if `data.affinity` is set
1211 ## @param data.affinity Affinity for data pods assignment
1212 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
1213 ## NOTE: `data.podAffinityPreset`, `data.podAntiAffinityPreset`, and `data.nodeAffinityPreset` will be ignored when it's set
1216 ## @param data.nodeSelector Node labels for data pods assignment
1217 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1220 ## @param data.tolerations Tolerations for data pods assignment
1221 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1224 ## @param data.priorityClassName data pods' priorityClassName
1226 priorityClassName: ""
1227 ## @param data.schedulerName Name of the k8s scheduler (other than default) for data pods
1228 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
1231 ## @param data.terminationGracePeriodSeconds In seconds, time the given to the OpenSearch data pod needs to terminate gracefully
1232 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
1234 terminationGracePeriodSeconds: ""
1235 ## @param data.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
1236 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
1238 topologySpreadConstraints: []
1239 ## @param data.podManagementPolicy podManagementPolicy to manage scaling operation of OpenSearch data pods
1240 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
1242 podManagementPolicy: "Parallel"
1243 ## Configure extra options for OpenSearch data containers' liveness, readiness and startup probes
1244 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
1245 ## @param data.startupProbe.enabled Enable/disable the startup probe (data nodes pod)
1246 ## @param data.startupProbe.initialDelaySeconds Delay before startup probe is initiated (data nodes pod)
1247 ## @param data.startupProbe.periodSeconds How often to perform the probe (data nodes pod)
1248 ## @param data.startupProbe.timeoutSeconds When the probe times out (data nodes pod)
1249 ## @param data.startupProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed (data nodes pod)
1250 ## @param data.startupProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded
1254 initialDelaySeconds: 90
1259 ## @param data.livenessProbe.enabled Enable/disable the liveness probe (data nodes pod)
1260 ## @param data.livenessProbe.initialDelaySeconds Delay before liveness probe is initiated (data nodes pod)
1261 ## @param data.livenessProbe.periodSeconds How often to perform the probe (data nodes pod)
1262 ## @param data.livenessProbe.timeoutSeconds When the probe times out (data nodes pod)
1263 ## @param data.livenessProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed (data nodes pod)
1264 ## @param data.livenessProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded
1268 initialDelaySeconds: 180
1273 ## @param data.readinessProbe.enabled Enable/disable the readiness probe (data nodes pod)
1274 ## @param data.readinessProbe.initialDelaySeconds Delay before readiness probe is initiated (data nodes pod)
1275 ## @param data.readinessProbe.periodSeconds How often to perform the probe (data nodes pod)
1276 ## @param data.readinessProbe.timeoutSeconds When the probe times out (data nodes pod)
1277 ## @param data.readinessProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed (data nodes pod)
1278 ## @param data.readinessProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded
1282 initialDelaySeconds: 90
1287 ## @param data.customStartupProbe Override default startup probe
1289 customStartupProbe: {}
1290 ## @param data.customLivenessProbe Override default liveness probe
1292 customLivenessProbe: {}
1293 ## @param data.customReadinessProbe Override default readiness probe
1295 customReadinessProbe: {}
1296 ## @param data.command Override default container command (useful when using custom images)
1299 ## @param data.args Override default container args (useful when using custom images)
1302 ## @param data.lifecycleHooks for the data container(s) to automate configuration before or after startup
1305 ## @param data.extraEnvVars Array with extra environment variables to add to data nodes
1312 ## @param data.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for data nodes
1315 ## @param data.extraEnvVarsSecret Name of existing Secret containing extra env vars for data nodes
1317 extraEnvVarsSecret: ""
1318 ## @param data.extraVolumes Optionally specify extra list of additional volumes for the data pod(s)
1321 ## @param data.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the data container(s)
1323 extraVolumeMounts: []
1324 ## @param data.sidecars Add additional sidecar containers to the data pod(s)
1327 ## - name: your-image-name
1328 ## image: your-image
1329 ## imagePullPolicy: Always
1332 ## containerPort: 1234
1335 ## @param data.initContainers Add additional init containers to the data pod(s)
1336 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
1339 ## - name: your-image-name
1340 ## image: your-image
1341 ## imagePullPolicy: Always
1342 ## command: ['sh', '-c', 'echo "hello world"']
1345 ## Enable persistence using Persistent Volume Claims
1346 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
1349 ## @param data.persistence.enabled Enable persistence using a `PersistentVolumeClaim`
1352 ## @param data.persistence.storageClass Persistent Volume Storage Class
1353 ## If defined, storageClassName: <storageClass>
1354 ## If set to "-", storageClassName: "", which disables dynamic provisioning
1355 ## If undefined (the default) or set to null, no storageClassName spec is
1356 ## set, choosing the default provisioner. (gp2 on AWS, standard on
1357 ## GKE, AWS & OpenStack)
1360 ## @param data.persistence.existingClaim Existing Persistent Volume Claim
1361 ## then accept the value as an existing Persistent Volume Claim to which
1362 ## the container should be bound
1365 ## @param data.persistence.existingVolume Existing Persistent Volume for use as volume match label selector to the `volumeClaimTemplate`. Ignored when `data.persistence.selector` is set.
1368 ## @param data.persistence.selector Configure custom selector for existing Persistent Volume. Overwrites `data.persistence.existingVolume`
1374 ## @param data.persistence.annotations Persistent Volume Claim annotations
1377 ## @param data.persistence.accessModes Persistent Volume Access Modes
1381 ## @param data.persistence.size Persistent Volume Size
1384 ## Pods Service Account
1385 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
1386 ## @param data.serviceAccount.create Specifies whether a ServiceAccount should be created
1387 ## @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.
1388 ## @param data.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
1389 ## @param data.serviceAccount.annotations Annotations for service account. Evaluated as a template. Only used if `create` is `true`.
1394 automountServiceAccountToken: false
1396 ## Network Policy configuration
1397 ## ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
1400 ## @param data.networkPolicy.enabled Enable creation of NetworkPolicy resources
1403 ## @param data.networkPolicy.allowExternal The Policy model to apply
1404 ## When set to false, only pods with the correct client label will have network access to the ports OpenSearch is
1405 ## listening on. When true, OpenSearch will accept connections from any source (with the correct destination port).
1408 ## @param data.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
1410 allowExternalEgress: true
1411 ## @param data.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
1421 ## - matchExpressions:
1428 ## @param data.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
1438 ## - matchExpressions:
1445 ## @param data.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
1446 ## @param data.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
1448 ingressNSMatchLabels: {}
1449 ingressNSPodMatchLabels: {}
1452 ## @param data.autoscaling.vpa.enabled Enable VPA
1455 ## @param data.autoscaling.vpa.annotations Annotations for VPA resource
1458 ## @param data.autoscaling.vpa.controlledResources VPA List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
1460 controlledResources: []
1461 ## @param data.autoscaling.vpa.maxAllowed VPA Max allowed resources for the pod
1465 ## @param data.autoscaling.vpa.minAllowed VPA Min allowed resources for the pod
1470 ## @param data.autoscaling.vpa.updatePolicy.updateMode Autoscaling update policy Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod
1471 ## Possible values are "Off", "Initial", "Recreate", and "Auto".
1475 ## @param data.autoscaling.hpa.enabled Enable HPA for APISIX Data Plane
1478 ## @param data.autoscaling.hpa.minReplicas Minimum number of APISIX Data Plane replicas
1481 ## @param data.autoscaling.hpa.maxReplicas Maximum number of APISIX Data Plane replicas
1484 ## @param data.autoscaling.hpa.targetCPU Target CPU utilization percentage
1487 ## @param data.autoscaling.hpa.targetMemory Target Memory utilization percentage
1490 ## Data service parameters
1493 ## Headless service properties
1496 ## @param data.service.headless.annotations Annotations for the data headless service.
1499 ## @param data.service.headless.nameOverride String to fully override opensearch.data.servicename
1502 ## @param data.service.headless.trafficDistribution String Traffic distribution for the data headless service
1503 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution
1505 trafficDistribution: "PreferClose"
1506 ## Metrics configuration for data node
1509 ## @param data.metrics.enabled Enable data node metrics
1513 ## @param data.metrics.service.ports.metrics data node metrics service port
1517 ## @param data.metrics.service.clusterIP data node metrics service Cluster IP
1522 ## data node metrics service monitor configuration
1525 ## @param data.metrics.serviceMonitor.enabled Create ServiceMonitor Resource for scraping metrics using PrometheusOperator
1528 ## @param data.metrics.serviceMonitor.namespace Namespace which Prometheus is running in
1530 ## namespace: monitoring
1533 ## @param data.metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
1536 ## @param data.metrics.serviceMonitor.interval Interval at which metrics should be scraped
1537 ## ref: https://github.com/coreos/prometheus-operator/blob/data/Documentation/api.md#endpoint
1540 ## @param data.metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
1541 ## ref: https://github.com/coreos/prometheus-operator/blob/data/Documentation/api.md#endpoint
1544 ## @param data.metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping
1545 ## ref: https://github.com/coreos/prometheus-operator/blob/data/Documentation/api.md#relabelconfig
1548 ## @param data.metrics.serviceMonitor.metricRelabelings MetricRelabelConfigs to apply to samples before ingestion
1549 ## ref: https://github.com/coreos/prometheus-operator/blob/data/Documentation/api.md#relabelconfig
1551 metricRelabelings: []
1552 ## @param data.metrics.serviceMonitor.selector ServiceMonitor selector labels
1555 ## prometheus: my-prometheus
1558 ## @param data.metrics.serviceMonitor.honorLabels honorLabels chooses the metric's labels on collisions with target labels
1561 ## Rules for PrometheusRule object if enabled
1564 ## @param data.metrics.rules.enabled Enable render extra rules for PrometheusRule object
1565 ## @param data.metrics.rules.spec Rules to render into the PrometheusRule object
1566 ## @param data.metrics.rules.selector Selector for the PrometheusRule object
1567 ## @param data.metrics.rules.namespace Namespace where to create the PrometheusRule object
1568 ## @param data.metrics.rules.additionalLabels Additional lables to add to the PrometheusRule object
1573 ## - alert: ArgoAppMissing
1575 ## absent(argocd_app_info)
1578 ## severity: critical
1580 ## summary: "[ArgoCD] No reported applications"
1582 ## ArgoCD has not reported any applications data for the past 15 minutes which
1583 ## means that it must be down or not functioning properly. This needs to be
1584 ## resolved for this cloud to continue to maintain state.
1585 ## - alert: ArgoAppNotSynced
1587 ## argocd_app_info{sync_status!="Synced"} == 1
1590 ## severity: warning
1592 ## summary: "[{{`{{ $labels.name }}`}}] Application not synchronized"
1594 ## The application [{{`{{ $labels.name }}`}} has not been synchronized for over
1595 ## 12 hours which means that the state of this cloud has drifted away from the
1596 ## state inside Git.
1601 ## prometheus: kube-prometheus
1604 namespace: monitoring
1605 additionalLabels: {}
1606## @section Coordinating-only nodes parameters
1608 ## @param coordinating.replicaCount Number of coordinating-only replicas to deploy
1611 ## @param coordinating.extraRoles Append extra roles to the node role
1612 ## NOTE: In OpenSearch, all nodes act as coordinators, coordinating-only nodes do not have any other role by default.
1615 ## Pod Disruption Budget configuration
1616 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
1617 ## @param coordinating.pdb.create Enable/disable a Pod Disruption Budget creation
1618 ## @param coordinating.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
1619 ## @param coordinating.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `coordinating.pdb.minAvailable` and `coodinating.pdb.maxUnavailable` are empty.
1625 ## @param coordinating.nameOverride String to partially override opensearch.coordinating.fullname
1628 ## @param coordinating.fullnameOverride String to fully override opensearch.coordinating.fullname
1630 fullnameOverride: ""
1631 ## @param coordinating.servicenameOverride String to fully override opensearch.coordinating.servicename
1632 ## DEPRECATED: Use coordinating.service.headless.nameOverride instead
1634 servicenameOverride: ""
1635 ## @param coordinating.annotations [object] Annotations for the coordinating-only statefulset
1638 ## @param coordinating.updateStrategy.type Coordinating-only nodes statefulset strategy type
1639 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
1643 ## OpenSearch resource requests and limits
1644 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1645 ## @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).
1647 resourcesPreset: "medium"
1648 ## @param coordinating.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1659 ## @param coordinating.heapSize OpenSearch coordinating node heap size.
1660 ## Note: The recommended heapSize is half of the container's memory.
1661 ## If omitted, it will be automatically set.
1666 ## Configure Pods Security Context
1667 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1668 ## @param coordinating.podSecurityContext.enabled Enabled coordinating-only pods' Security Context
1669 ## @param coordinating.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
1670 ## @param coordinating.podSecurityContext.sysctls Set kernel settings using the sysctl interface
1671 ## @param coordinating.podSecurityContext.supplementalGroups Set filesystem extra groups
1672 ## @param coordinating.podSecurityContext.fsGroup Set coordinating-only pod's Security Context fsGroup
1676 fsGroupChangePolicy: Always
1678 supplementalGroups: []
1680 ## Configure Container Security Context
1681 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1682 ## @param coordinating.containerSecurityContext.enabled Enabled containers' Security Context
1683 ## @param coordinating.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1684 ## @param coordinating.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
1685 ## @param coordinating.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
1686 ## @param coordinating.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
1687 ## @param coordinating.containerSecurityContext.privileged Set container's Security Context privileged
1688 ## @param coordinating.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
1689 ## @param coordinating.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
1690 ## @param coordinating.containerSecurityContext.capabilities.drop List of capabilities to be dropped
1691 ## @param coordinating.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
1693 containerSecurityContext:
1700 readOnlyRootFilesystem: true
1701 allowPrivilegeEscalation: false
1705 type: "RuntimeDefault"
1706 ## @param coordinating.automountServiceAccountToken Mount Service Account token in pod
1708 automountServiceAccountToken: false
1709 ## @param coordinating.hostAliases coordinating-only pods host aliases
1710 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
1713 ## @param coordinating.podLabels Extra labels for coordinating-only pods
1714 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
1717 ## @param coordinating.podAnnotations Annotations for coordinating-only pods
1718 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
1721 ## @param coordinating.podAffinityPreset Pod affinity preset. Ignored if `coordinating.affinity` is set. Allowed values: `soft` or `hard`
1722 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1724 podAffinityPreset: ""
1725 ## @param coordinating.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `coordinating.affinity` is set. Allowed values: `soft` or `hard`
1726 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1728 podAntiAffinityPreset: ""
1729 ## Node coordinating.affinity preset
1730 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
1733 ## @param coordinating.nodeAffinityPreset.type Node affinity preset type. Ignored if `coordinating.affinity` is set. Allowed values: `soft` or `hard`
1736 ## @param coordinating.nodeAffinityPreset.key Node label key to match. Ignored if `coordinating.affinity` is set
1739 ## @param coordinating.nodeAffinityPreset.values Node label values to match. Ignored if `coordinating.affinity` is set
1746 ## @param coordinating.affinity Affinity for coordinating-only pods assignment
1747 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
1748 ## NOTE: `coordinating.podAffinityPreset`, `coordinating.podAntiAffinityPreset`, and `coordinating.nodeAffinityPreset` will be ignored when it's set
1751 ## @param coordinating.nodeSelector Node labels for coordinating-only pods assignment
1752 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1755 ## @param coordinating.tolerations Tolerations for coordinating-only pods assignment
1756 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1759 ## @param coordinating.priorityClassName coordinating-only pods' priorityClassName
1761 priorityClassName: ""
1762 ## @param coordinating.schedulerName Name of the k8s scheduler (other than default) for coordinating-only pods
1763 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
1766 ## @param coordinating.terminationGracePeriodSeconds In seconds, time the given to the OpenSearch coordinating pod needs to terminate gracefully
1767 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
1769 terminationGracePeriodSeconds: ""
1770 ## @param coordinating.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
1771 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
1773 topologySpreadConstraints: []
1774 ## @param coordinating.podManagementPolicy podManagementPolicy to manage scaling operation of OpenSearch coordinating pods
1775 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
1777 podManagementPolicy: "Parallel"
1778 ## Configure extra options for OpenSearch coordinating-only containers' liveness, readiness and startup probes
1779 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
1780 ## @param coordinating.startupProbe.enabled Enable/disable the startup probe (coordinating-only nodes pod)
1781 ## @param coordinating.startupProbe.initialDelaySeconds Delay before startup probe is initiated (coordinating-only nodes pod)
1782 ## @param coordinating.startupProbe.periodSeconds How often to perform the probe (coordinating-only nodes pod)
1783 ## @param coordinating.startupProbe.timeoutSeconds When the probe times out (coordinating-only nodes pod)
1784 ## @param coordinating.startupProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed (coordinating-only nodes pod)
1785 ## @param coordinating.startupProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded
1789 initialDelaySeconds: 90
1794 ## @param coordinating.livenessProbe.enabled Enable/disable the liveness probe (coordinating-only nodes pod)
1795 ## @param coordinating.livenessProbe.initialDelaySeconds Delay before liveness probe is initiated (coordinating-only nodes pod)
1796 ## @param coordinating.livenessProbe.periodSeconds How often to perform the probe (coordinating-only nodes pod)
1797 ## @param coordinating.livenessProbe.timeoutSeconds When the probe times out (coordinating-only nodes pod)
1798 ## @param coordinating.livenessProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed (coordinating-only nodes pod)
1799 ## @param coordinating.livenessProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded
1803 initialDelaySeconds: 180
1808 ## @param coordinating.readinessProbe.enabled Enable/disable the readiness probe (coordinating-only nodes pod)
1809 ## @param coordinating.readinessProbe.initialDelaySeconds Delay before readiness probe is initiated (coordinating-only nodes pod)
1810 ## @param coordinating.readinessProbe.periodSeconds How often to perform the probe (coordinating-only nodes pod)
1811 ## @param coordinating.readinessProbe.timeoutSeconds When the probe times out (coordinating-only nodes pod)
1812 ## @param coordinating.readinessProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed (coordinating-only nodes pod)
1813 ## @param coordinating.readinessProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded
1817 initialDelaySeconds: 90
1822 ## @param coordinating.customStartupProbe Override default startup probe
1824 customStartupProbe: {}
1825 ## @param coordinating.customLivenessProbe Override default liveness probe
1827 customLivenessProbe: {}
1828 ## @param coordinating.customReadinessProbe Override default readiness probe
1830 customReadinessProbe: {}
1831 ## @param coordinating.command Override default container command (useful when using custom images)
1834 ## @param coordinating.args Override default container args (useful when using custom images)
1837 ## @param coordinating.lifecycleHooks for the coordinating-only container(s) to automate configuration before or after startup
1840 ## @param coordinating.extraEnvVars Array with extra environment variables to add to coordinating-only nodes
1847 ## @param coordinating.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for coordinating-only nodes
1850 ## @param coordinating.extraEnvVarsSecret Name of existing Secret containing extra env vars for coordinating-only nodes
1852 extraEnvVarsSecret: ""
1853 ## @param coordinating.extraVolumes Optionally specify extra list of additional volumes for the coordinating-only pod(s)
1856 ## @param coordinating.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the coordinating-only container(s)
1858 extraVolumeMounts: []
1859 ## @param coordinating.sidecars Add additional sidecar containers to the coordinating-only pod(s)
1862 ## - name: your-image-name
1863 ## image: your-image
1864 ## imagePullPolicy: Always
1867 ## containerPort: 1234
1870 ## @param coordinating.initContainers Add additional init containers to the coordinating-only pod(s)
1871 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
1874 ## - name: your-image-name
1875 ## image: your-image
1876 ## imagePullPolicy: Always
1877 ## command: ['sh', '-c', 'echo "hello world"']
1880 ## Pods Service Account
1881 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
1882 ## @param coordinating.serviceAccount.create Specifies whether a ServiceAccount should be created
1883 ## @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.
1884 ## @param coordinating.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
1885 ## @param coordinating.serviceAccount.annotations Annotations for service account. Evaluated as a template. Only used if `create` is `true`.
1890 automountServiceAccountToken: false
1892 ## Network Policy configuration
1893 ## ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
1896 ## @param coordinating.networkPolicy.enabled Enable creation of NetworkPolicy resources
1899 ## @param coordinating.networkPolicy.allowExternal The Policy model to apply
1900 ## When set to false, only pods with the correct client label will have network access to the ports OpenSearch is
1901 ## listening on. When true, OpenSearch will accept connections from any source (with the correct destination port).
1904 ## @param coordinating.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
1906 allowExternalEgress: true
1907 ## @param coordinating.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
1917 ## - matchExpressions:
1924 ## @param coordinating.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
1934 ## - matchExpressions:
1941 ## @param coordinating.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
1942 ## @param coordinating.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
1944 ingressNSMatchLabels: {}
1945 ingressNSPodMatchLabels: {}
1948 ## @param coordinating.autoscaling.vpa.enabled Enable VPA
1951 ## @param coordinating.autoscaling.vpa.annotations Annotations for VPA resource
1954 ## @param coordinating.autoscaling.vpa.controlledResources VPA List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
1956 controlledResources: []
1957 ## @param coordinating.autoscaling.vpa.maxAllowed VPA Max allowed resources for the pod
1961 ## @param coordinating.autoscaling.vpa.minAllowed VPA Min allowed resources for the pod
1966 ## @param coordinating.autoscaling.vpa.updatePolicy.updateMode Autoscaling update policy Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod
1967 ## Possible values are "Off", "Initial", "Recreate", and "Auto".
1971 ## @param coordinating.autoscaling.hpa.enabled Enable HPA for APISIX Data Plane
1974 ## @param coordinating.autoscaling.hpa.minReplicas Minimum number of APISIX Data Plane replicas
1977 ## @param coordinating.autoscaling.hpa.maxReplicas Maximum number of APISIX Data Plane replicas
1980 ## @param coordinating.autoscaling.hpa.targetCPU Target CPU utilization percentage
1983 ## @param coordinating.autoscaling.hpa.targetMemory Target Memory utilization percentage
1986 ## Coordinating-only service parameters
1989 ## Headless service properties
1992 ## @param coordinating.service.headless.annotations Annotations for the coordinating-only headless service.
1995 ## @param coordinating.service.headless.nameOverride String to fully override opensearch.coordinating.servicename
1998 ## @param coordinating.service.headless.trafficDistribution String Traffic distribution for the coordinating headless service
1999 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution
2001 trafficDistribution: "PreferClose"
2002 ## Metrics configuration for coordinating node
2005 ## @param coordinating.metrics.enabled Enable coordinating node metrics
2009 ## @param coordinating.metrics.service.ports.metrics coordinating node metrics service port
2013 ## @param coordinating.metrics.service.clusterIP coordinating node metrics service Cluster IP
2018 ## coordinating node metrics service monitor configuration
2021 ## @param coordinating.metrics.serviceMonitor.enabled Create ServiceMonitor Resource for scraping metrics using PrometheusOperator
2024 ## @param coordinating.metrics.serviceMonitor.namespace Namespace which Prometheus is running in
2026 ## namespace: monitoring
2029 ## @param coordinating.metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
2032 ## @param coordinating.metrics.serviceMonitor.interval Interval at which metrics should be scraped
2033 ## ref: https://github.com/coreos/prometheus-operator/blob/coordinating/Documentation/api.md#endpoint
2036 ## @param coordinating.metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
2037 ## ref: https://github.com/coreos/prometheus-operator/blob/coordinating/Documentation/api.md#endpoint
2040 ## @param coordinating.metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping
2041 ## ref: https://github.com/coreos/prometheus-operator/blob/coordinating/Documentation/api.md#relabelconfig
2044 ## @param coordinating.metrics.serviceMonitor.metricRelabelings MetricRelabelConfigs to apply to samples before ingestion
2045 ## ref: https://github.com/coreos/prometheus-operator/blob/coordinating/Documentation/api.md#relabelconfig
2047 metricRelabelings: []
2048 ## @param coordinating.metrics.serviceMonitor.selector ServiceMonitor selector labels
2051 ## prometheus: my-prometheus
2054 ## @param coordinating.metrics.serviceMonitor.honorLabels honorLabels chooses the metric's labels on collisions with target labels
2057 ## Rules for PrometheusRule object if enabled
2060 ## @param coordinating.metrics.rules.enabled Enable render extra rules for PrometheusRule object
2061 ## @param coordinating.metrics.rules.spec Rules to render into the PrometheusRule object
2062 ## @param coordinating.metrics.rules.selector Selector for the PrometheusRule object
2063 ## @param coordinating.metrics.rules.namespace Namespace where to create the PrometheusRule object
2064 ## @param coordinating.metrics.rules.additionalLabels Additional lables to add to the PrometheusRule object
2069 ## - alert: ArgoAppMissing
2071 ## absent(argocd_app_info)
2074 ## severity: critical
2076 ## summary: "[ArgoCD] No reported applications"
2078 ## ArgoCD has not reported any applications data for the past 15 minutes which
2079 ## means that it must be down or not functioning properly. This needs to be
2080 ## resolved for this cloud to continue to maintain state.
2081 ## - alert: ArgoAppNotSynced
2083 ## argocd_app_info{sync_status!="Synced"} == 1
2086 ## severity: warning
2088 ## summary: "[{{`{{ $labels.name }}`}}] Application not synchronized"
2090 ## The application [{{`{{ $labels.name }}`}} has not been synchronized for over
2091 ## 12 hours which means that the state of this cloud has drifted away from the
2092 ## state inside Git.
2097 ## prometheus: kube-prometheus
2100 namespace: monitoring
2101 additionalLabels: {}
2102## @section Ingest-only nodes parameters
2104 ## @param ingest.enabled Enable ingest nodes
2107 ## @param ingest.replicaCount Number of ingest-only replicas to deploy
2110 ## @param ingest.extraRoles Append extra roles to the node role
2113 ## Pod Disruption Budget configuration
2114 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
2115 ## @param ingest.pdb.create Enable/disable a Pod Disruption Budget creation
2116 ## @param ingest.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
2117 ## @param ingest.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `ingest.pdb.minAvailable` and `ingest.pdb.maxUnavailable` are empty.
2123 ## @param ingest.nameOverride String to partially override opensearch.ingest.fullname
2126 ## @param ingest.fullnameOverride String to fully override opensearch.ingest.fullname
2128 fullnameOverride: ""
2129 ## @param ingest.servicenameOverride String to fully override opensearch.ingest.servicename
2130 ## DEPRECATED: Use ingest.service.headless.nameOverride instead
2132 servicenameOverride: ""
2133 ## @param ingest.annotations [object] Annotations for the ingest statefulset
2136 ## @param ingest.updateStrategy.type Ingest-only nodes statefulset strategy type
2137 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
2141 ## OpenSearch resource requests and limits
2142 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2143 ## @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).
2145 resourcesPreset: "medium"
2146 ## @param ingest.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
2157 ## @param ingest.heapSize OpenSearch ingest-only node heap size.
2158 ## Note: The recommended heapSize is half of the container's memory.
2159 ## If omitted, it will be automatically set.
2164 ## Configure Pods Security Context
2165 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
2166 ## @param ingest.podSecurityContext.enabled Enabled ingest-only pods' Security Context
2167 ## @param ingest.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
2168 ## @param ingest.podSecurityContext.sysctls Set kernel settings using the sysctl interface
2169 ## @param ingest.podSecurityContext.supplementalGroups Set filesystem extra groups
2170 ## @param ingest.podSecurityContext.fsGroup Set ingest-only pod's Security Context fsGroup
2174 fsGroupChangePolicy: Always
2176 supplementalGroups: []
2178 ## Configure Container Security Context
2179 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
2180 ## @param ingest.containerSecurityContext.enabled Enabled containers' Security Context
2181 ## @param ingest.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
2182 ## @param ingest.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
2183 ## @param ingest.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
2184 ## @param ingest.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
2185 ## @param ingest.containerSecurityContext.privileged Set container's Security Context privileged
2186 ## @param ingest.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
2187 ## @param ingest.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
2188 ## @param ingest.containerSecurityContext.capabilities.drop List of capabilities to be dropped
2189 ## @param ingest.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
2191 containerSecurityContext:
2198 readOnlyRootFilesystem: true
2199 allowPrivilegeEscalation: false
2203 type: "RuntimeDefault"
2204 ## @param ingest.automountServiceAccountToken Mount Service Account token in pod
2206 automountServiceAccountToken: false
2207 ## @param ingest.hostAliases ingest-only pods host aliases
2208 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
2211 ## @param ingest.podLabels Extra labels for ingest-only pods
2212 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
2215 ## @param ingest.podAnnotations Annotations for ingest-only pods
2216 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
2219 ## @param ingest.podAffinityPreset Pod affinity preset. Ignored if `ingest.affinity` is set. Allowed values: `soft` or `hard`
2220 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
2222 podAffinityPreset: ""
2223 ## @param ingest.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `ingest.affinity` is set. Allowed values: `soft` or `hard`
2224 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
2226 podAntiAffinityPreset: ""
2227 ## Node ingest.affinity preset
2228 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
2231 ## @param ingest.nodeAffinityPreset.type Node affinity preset type. Ignored if `ingest.affinity` is set. Allowed values: `soft` or `hard`
2234 ## @param ingest.nodeAffinityPreset.key Node label key to match. Ignored if `ingest.affinity` is set
2237 ## @param ingest.nodeAffinityPreset.values Node label values to match. Ignored if `ingest.affinity` is set
2244 ## @param ingest.affinity Affinity for ingest-only pods assignment
2245 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
2246 ## NOTE: `ingest.podAffinityPreset`, `ingest.podAntiAffinityPreset`, and `ingest.nodeAffinityPreset` will be ignored when it's set
2249 ## @param ingest.nodeSelector Node labels for ingest-only pods assignment
2250 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
2253 ## @param ingest.tolerations Tolerations for ingest-only pods assignment
2254 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
2257 ## @param ingest.priorityClassName ingest-only pods' priorityClassName
2259 priorityClassName: ""
2260 ## @param ingest.schedulerName Name of the k8s scheduler (other than default) for ingest-only pods
2261 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
2264 ## @param ingest.terminationGracePeriodSeconds In seconds, time the given to the OpenSearch ingest pod needs to terminate gracefully
2265 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
2267 terminationGracePeriodSeconds: ""
2268 ## @param ingest.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
2269 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
2271 topologySpreadConstraints: []
2272 ## @param ingest.podManagementPolicy podManagementPolicy to manage scaling operation of OpenSearch ingest pods
2273 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
2275 podManagementPolicy: "Parallel"
2276 ## Configure extra options for OpenSearch ingest-only containers' liveness, readiness and startup probes
2277 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
2278 ## @param ingest.startupProbe.enabled Enable/disable the startup probe (ingest-only nodes pod)
2279 ## @param ingest.startupProbe.initialDelaySeconds Delay before startup probe is initiated (ingest-only nodes pod)
2280 ## @param ingest.startupProbe.periodSeconds How often to perform the probe (ingest-only nodes pod)
2281 ## @param ingest.startupProbe.timeoutSeconds When the probe times out (ingest-only nodes pod)
2282 ## @param ingest.startupProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed (ingest-only nodes pod)
2283 ## @param ingest.startupProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded
2287 initialDelaySeconds: 90
2292 ## @param ingest.livenessProbe.enabled Enable/disable the liveness probe (ingest-only nodes pod)
2293 ## @param ingest.livenessProbe.initialDelaySeconds Delay before liveness probe is initiated (ingest-only nodes pod)
2294 ## @param ingest.livenessProbe.periodSeconds How often to perform the probe (ingest-only nodes pod)
2295 ## @param ingest.livenessProbe.timeoutSeconds When the probe times out (ingest-only nodes pod)
2296 ## @param ingest.livenessProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed (ingest-only nodes pod)
2297 ## @param ingest.livenessProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded
2301 initialDelaySeconds: 180
2306 ## @param ingest.readinessProbe.enabled Enable/disable the readiness probe (ingest-only nodes pod)
2307 ## @param ingest.readinessProbe.initialDelaySeconds Delay before readiness probe is initiated (ingest-only nodes pod)
2308 ## @param ingest.readinessProbe.periodSeconds How often to perform the probe (ingest-only nodes pod)
2309 ## @param ingest.readinessProbe.timeoutSeconds When the probe times out (ingest-only nodes pod)
2310 ## @param ingest.readinessProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed (ingest-only nodes pod)
2311 ## @param ingest.readinessProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded
2315 initialDelaySeconds: 90
2320 ## @param ingest.customStartupProbe Override default startup probe
2322 customStartupProbe: {}
2323 ## @param ingest.customLivenessProbe Override default liveness probe
2325 customLivenessProbe: {}
2326 ## @param ingest.customReadinessProbe Override default readiness probe
2328 customReadinessProbe: {}
2329 ## @param ingest.command Override default container command (useful when using custom images)
2332 ## @param ingest.args Override default container args (useful when using custom images)
2335 ## @param ingest.lifecycleHooks for the ingest-only container(s) to automate configuration before or after startup
2338 ## @param ingest.extraEnvVars Array with extra environment variables to add to ingest-only nodes
2345 ## @param ingest.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for ingest-only nodes
2348 ## @param ingest.extraEnvVarsSecret Name of existing Secret containing extra env vars for ingest-only nodes
2350 extraEnvVarsSecret: ""
2351 ## @param ingest.extraVolumes Optionally specify extra list of additional volumes for the ingest-only pod(s)
2354 ## @param ingest.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the ingest-only container(s)
2356 extraVolumeMounts: []
2357 ## @param ingest.sidecars Add additional sidecar containers to the ingest-only pod(s)
2360 ## - name: your-image-name
2361 ## image: your-image
2362 ## imagePullPolicy: Always
2365 ## containerPort: 1234
2368 ## @param ingest.initContainers Add additional init containers to the ingest-only pod(s)
2369 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
2372 ## - name: your-image-name
2373 ## image: your-image
2374 ## imagePullPolicy: Always
2375 ## command: ['sh', '-c', 'echo "hello world"']
2378 ## Pods Service Account
2379 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
2380 ## @param ingest.serviceAccount.create Specifies whether a ServiceAccount should be created
2381 ## @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.
2382 ## @param ingest.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
2383 ## @param ingest.serviceAccount.annotations Annotations for service account. Evaluated as a template. Only used if `create` is `true`.
2388 automountServiceAccountToken: false
2390 ## Network Policy configuration
2391 ## ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
2394 ## @param ingest.networkPolicy.enabled Enable creation of NetworkPolicy resources
2397 ## @param ingest.networkPolicy.allowExternal The Policy model to apply
2398 ## When set to false, only pods with the correct client label will have network access to the ports OpenSearch is
2399 ## listening on. When true, OpenSearch will accept connections from any source (with the correct destination port).
2402 ## @param ingest.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
2404 allowExternalEgress: true
2405 ## @param ingest.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
2415 ## - matchExpressions:
2422 ## @param ingest.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
2432 ## - matchExpressions:
2439 ## @param ingest.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
2440 ## @param ingest.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
2442 ingressNSMatchLabels: {}
2443 ingressNSPodMatchLabels: {}
2446 ## @param ingest.autoscaling.vpa.enabled Enable VPA
2449 ## @param ingest.autoscaling.vpa.annotations Annotations for VPA resource
2452 ## @param ingest.autoscaling.vpa.controlledResources VPA List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
2454 controlledResources: []
2455 ## @param ingest.autoscaling.vpa.maxAllowed VPA Max allowed resources for the pod
2459 ## @param ingest.autoscaling.vpa.minAllowed VPA Min allowed resources for the pod
2464 ## @param ingest.autoscaling.vpa.updatePolicy.updateMode Autoscaling update policy Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod
2465 ## Possible values are "Off", "Initial", "Recreate", and "Auto".
2469 ## @param ingest.autoscaling.hpa.enabled Enable HPA for APISIX Data Plane
2472 ## @param ingest.autoscaling.hpa.minReplicas Minimum number of APISIX Data Plane replicas
2475 ## @param ingest.autoscaling.hpa.maxReplicas Maximum number of APISIX Data Plane replicas
2478 ## @param ingest.autoscaling.hpa.targetCPU Target CPU utilization percentage
2481 ## @param ingest.autoscaling.hpa.targetMemory Target Memory utilization percentage
2484 ## OpenSearch Ingest-only Service
2485 ## Recommended for heavy ingestion, improves performance by sending ingest traffic directly into the ingest nodes.
2486 ## NOTE: Ingest nodes will only accept index requests with an associated pipeline, any other request won't be rerouted.
2489 ## @param ingest.service.enabled Enable Ingest-only service
2492 ## @param ingest.service.type OpenSearch ingest-only service type
2495 ## @param ingest.service.ports.restAPI OpenSearch service REST API port
2496 ## @param ingest.service.ports.transport OpenSearch service transport port
2501 ## Node ports to expose
2502 ## @param ingest.service.nodePorts.restAPI Node port for REST API
2503 ## @param ingest.service.nodePorts.transport Node port for REST API
2504 ## NOTE: choose port between <30000-32767>
2509 ## @param ingest.service.clusterIP OpenSearch ingest-only service Cluster IP
2514 ## @param ingest.service.loadBalancerIP OpenSearch ingest-only service Load Balancer IP
2515 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
2518 ## @param ingest.service.loadBalancerSourceRanges OpenSearch ingest-only service Load Balancer sources
2519 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
2521 ## loadBalancerSourceRanges:
2524 loadBalancerSourceRanges: []
2525 ## @param ingest.service.externalTrafficPolicy OpenSearch ingest-only service external traffic policy
2526 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
2528 externalTrafficPolicy: Cluster
2529 ## @param ingest.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
2532 ## @param ingest.service.annotations Additional custom annotations for OpenSearch ingest-only service
2535 ## @param ingest.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
2536 ## If "ClientIP", consecutive client requests will be directed to the same Pod
2537 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
2539 sessionAffinity: None
2540 ## @param ingest.service.sessionAffinityConfig Additional settings for the sessionAffinity
2541 ## sessionAffinityConfig:
2543 ## timeoutSeconds: 300
2545 sessionAffinityConfig: {}
2546 ## Headless service properties
2549 ## @param ingest.service.headless.annotations Annotations for the ingest headless service.
2552 ## @param ingest.service.headless.nameOverride String to fully override opensearch.ingest.servicename
2555 ## @param ingest.service.headless.trafficDistribution String Traffic distribution for the ingest headless service
2556 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution
2558 trafficDistribution: "PreferClose"
2559 ## OpenSearch Ingest-only ingress parameters
2560 ## ref: http://kubernetes.io/docs/concepts/services-networking/ingress/
2563 ## @param ingest.ingress.enabled Enable ingress record generation for OpenSearch
2566 ## @param ingest.ingress.pathType Ingress path type
2568 pathType: ImplementationSpecific
2569 ## @param ingest.ingress.apiVersion Force Ingress API version (automatically detected if not set)
2572 ## @param ingest.ingress.hostname Default host for the ingress record
2574 hostname: opensearch-ingest.local
2575 ## @param ingest.ingress.path Default path for the ingress record
2576 ## NOTE: You may need to set this to '/*' in order to use this with ALB ingress controllers
2579 ## @param ingest.ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
2580 ## Use this parameter to set the required annotations for cert-manager, see
2581 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
2584 ## kubernetes.io/ingress.class: nginx
2585 ## cert-manager.io/cluster-issuer: cluster-issuer-name
2588 ## @param ingest.ingress.tls Enable TLS configuration for the host defined at `ingress.hostname` parameter
2589 ## TLS certificates will be retrieved from a TLS secret with name: `{{- printf "%s-tls" .Values.ingress.hostname }}`
2591 ## - Use the `ingress.secrets` parameter to create this TLS secret
2592 ## - Rely on cert-manager to create it by setting the corresponding annotations
2593 ## - Rely on Helm to create self-signed certificates by setting `ingress.selfSigned=true`
2596 ## @param ingest.ingress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
2599 ## @param ingest.ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
2600 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
2601 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
2603 ingressClassName: ""
2604 ## @param ingest.ingress.extraHosts An array with additional hostname(s) to be covered with the ingress record
2607 ## - name: opensearch.local
2611 ## @param ingest.ingress.extraPaths An array with additional arbitrary paths that may need to be added to the ingress under the main host
2616 ## serviceName: ssl-redirect
2617 ## servicePort: use-annotation
2620 ## @param ingest.ingress.extraTls TLS configuration for additional hostname(s) to be covered with this ingress record
2621 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
2625 ## - opensearch.local
2626 ## secretName: opensearch.local-tls
2629 ## @param ingest.ingress.secrets Custom TLS certificates as secrets
2630 ## NOTE: 'key' and 'certificate' are expected in PEM format
2631 ## NOTE: 'name' should line up with a 'secretName' set further up
2632 ## 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
2633 ## If it is not set and you're NOT using cert-manager either, self-signed certificates will be created valid for 365 days
2634 ## It is also possible to create and manage the certificates outside of this helm chart
2635 ## Please see README.md for more information
2638 ## - name: opensearch.local-tls
2640 ## -----BEGIN RSA PRIVATE KEY-----
2642 ## -----END RSA PRIVATE KEY-----
2644 ## -----BEGIN CERTIFICATE-----
2646 ## -----END CERTIFICATE-----
2649 ## @param ingest.ingress.extraRules Additional rules to be covered with this ingress record
2650 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
2653 ## - host: example.local
2658 ## name: example-svc
2663 ## Metrics configuration for ingest node
2666 ## @param ingest.metrics.enabled Enable ingest node metrics
2670 ## @param ingest.metrics.service.ports.metrics ingest node metrics service port
2674 ## @param ingest.metrics.service.clusterIP ingest node metrics service Cluster IP
2679 ## ingest node metrics service monitor configuration
2682 ## @param ingest.metrics.serviceMonitor.enabled Create ServiceMonitor Resource for scraping metrics using PrometheusOperator
2685 ## @param ingest.metrics.serviceMonitor.namespace Namespace which Prometheus is running in
2687 ## namespace: monitoring
2690 ## @param ingest.metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
2693 ## @param ingest.metrics.serviceMonitor.interval Interval at which metrics should be scraped
2694 ## ref: https://github.com/coreos/prometheus-operator/blob/ingest/Documentation/api.md#endpoint
2697 ## @param ingest.metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
2698 ## ref: https://github.com/coreos/prometheus-operator/blob/ingest/Documentation/api.md#endpoint
2701 ## @param ingest.metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping
2702 ## ref: https://github.com/coreos/prometheus-operator/blob/ingest/Documentation/api.md#relabelconfig
2705 ## @param ingest.metrics.serviceMonitor.metricRelabelings MetricRelabelConfigs to apply to samples before ingestion
2706 ## ref: https://github.com/coreos/prometheus-operator/blob/ingest/Documentation/api.md#relabelconfig
2708 metricRelabelings: []
2709 ## @param ingest.metrics.serviceMonitor.selector ServiceMonitor selector labels
2712 ## prometheus: my-prometheus
2715 ## @param ingest.metrics.serviceMonitor.honorLabels honorLabels chooses the metric's labels on collisions with target labels
2718 ## Rules for PrometheusRule object if enabled
2721 ## @param ingest.metrics.rules.enabled Enable render extra rules for PrometheusRule object
2722 ## @param ingest.metrics.rules.spec Rules to render into the PrometheusRule object
2723 ## @param ingest.metrics.rules.selector Selector for the PrometheusRule object
2724 ## @param ingest.metrics.rules.namespace Namespace where to create the PrometheusRule object
2725 ## @param ingest.metrics.rules.additionalLabels Additional lables to add to the PrometheusRule object
2730 ## - alert: ArgoAppMissing
2732 ## absent(argocd_app_info)
2735 ## severity: critical
2737 ## summary: "[ArgoCD] No reported applications"
2739 ## ArgoCD has not reported any applications data for the past 15 minutes which
2740 ## means that it must be down or not functioning properly. This needs to be
2741 ## resolved for this cloud to continue to maintain state.
2742 ## - alert: ArgoAppNotSynced
2744 ## argocd_app_info{sync_status!="Synced"} == 1
2747 ## severity: warning
2749 ## summary: "[{{`{{ $labels.name }}`}}] Application not synchronized"
2751 ## The application [{{`{{ $labels.name }}`}} has not been synchronized for over
2752 ## 12 hours which means that the state of this cloud has drifted away from the
2753 ## state inside Git.
2758 ## prometheus: kube-prometheus
2761 namespace: monitoring
2762 additionalLabels: {}
2763## @section Init Container Parameters
2765## 'volumePermissions' init container parameters
2766## Changes the owner and group of the persistent volume mount point to runAsUser:fsGroup values
2767## based on the *podSecurityContext/*containerSecurityContext parameters
2770 ## @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)
2773 ## @param volumePermissions.image.registry [default: REGISTRY_NAME] Init container volume-permissions image registry
2774 ## @param volumePermissions.image.repository [default: REPOSITORY_NAME/os-shell] Init container volume-permissions image name
2775 ## @skip volumePermissions.image.tag Init container volume-permissions image tag
2776 ## @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
2777 ## @param volumePermissions.image.pullPolicy Init container volume-permissions image pull policy
2778 ## @param volumePermissions.image.pullSecrets Init container volume-permissions image pull secrets
2782 repository: chainguard-private/os-shell-iamguarded
2785 pullPolicy: IfNotPresent
2786 ## Optionally specify an array of imagePullSecrets.
2787 ## Secrets must be manually created in the namespace.
2788 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
2791 ## - myRegistryKeySecretName
2794 ## Init container' resource requests and limits
2795 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2796 ## We usually recommend not to specify default resources and to leave this as a conscious
2797 ## choice for the user. This also increases chances charts run on environments with little
2798 ## resources, such as Minikube. If you do want to specify resources, uncomment the following
2799 ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
2800 ## @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).
2802 resourcesPreset: "nano"
2803 ## @param volumePermissions.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
2814## Kernel settings modifier image
2817 ## @param sysctlImage.enabled Enable kernel settings modifier image
2820 ## @param sysctlImage.registry [default: REGISTRY_NAME] Kernel settings modifier image registry
2821 ## @param sysctlImage.repository [default: REPOSITORY_NAME/os-shell] Kernel settings modifier image repository
2822 ## @skip sysctlImage.tag Kernel settings modifier image tag
2823 ## @param sysctlImage.digest Kernel settings modifier image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
2824 ## @param sysctlImage.pullPolicy Kernel settings modifier image pull policy
2825 ## @param sysctlImage.pullSecrets Kernel settings modifier image pull secrets
2828 repository: chainguard-private/os-shell-iamguarded
2831 ## Specify a imagePullPolicy
2832 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
2834 pullPolicy: IfNotPresent
2835 ## Optionally specify an array of imagePullSecrets.
2836 ## Secrets must be manually created in the namespace.
2837 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
2840 ## - myRegistryKeySecretName
2843 ## Init container' resource requests and limits
2844 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2845 ## We usually recommend not to specify default resources and to leave this as a conscious
2846 ## choice for the user. This also increases chances charts run on environments with little
2847 ## resources, such as Minikube. If you do want to specify resources, uncomment the following
2848 ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
2849 ## @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).
2851 resourcesPreset: "nano"
2852 ## @param sysctlImage.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
2863## @section OpenSearch Dashboards Parameters
2865 ## @param dashboards.enabled Enables OpenSearch Dashboards deployment
2868 ## Iamguarded OpenSearch Dashboards image
2869 ## @param dashboards.image.registry [default: REGISTRY_NAME] OpenSearch Dashboards image registry
2870 ## @param dashboards.image.repository [default: REPOSITORY_NAME/opensearch-dashboards] OpenSearch Dashboards image repository
2871 ## @skip dashboards.image.tag OpenSearch Dashboards image tag (immutable tags are recommended)
2872 ## @param dashboards.image.digest OpenSearch Dashboards image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
2873 ## @param dashboards.image.pullPolicy OpenSearch Dashboards image pull policy
2874 ## @param dashboards.image.pullSecrets OpenSearch Dashboards image pull secrets
2875 ## @param dashboards.image.debug Enable OpenSearch Dashboards image debug mode
2879 repository: chainguard-private/os-shell-iamguarded
2882 ## Specify a imagePullPolicy
2883 ## ref: http://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
2885 pullPolicy: IfNotPresent
2886 ## Optionally specify an array of imagePullSecrets.
2887 ## Secrets must be manually created in the namespace.
2888 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
2891 ## - myRegistryKeySecretName
2894 ## Enable debug mode
2897 ## OpenSearch Dashboards service parameters
2900 ## @param dashboards.service.type OpenSearch Dashboards service type
2903 ## @param dashboards.service.ports.http OpenSearch Dashboards service web UI port
2907 ## Node ports to expose
2908 ## @param dashboards.service.nodePorts.http Node port for web UI
2909 ## NOTE: choose port between <30000-32767>
2913 ## @param dashboards.service.clusterIP OpenSearch Dashboards service Cluster IP
2918 ## @param dashboards.service.loadBalancerIP OpenSearch Dashboards service Load Balancer IP
2919 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
2922 ## @param dashboards.service.loadBalancerSourceRanges OpenSearch Dashboards service Load Balancer sources
2923 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
2925 ## loadBalancerSourceRanges:
2928 loadBalancerSourceRanges: []
2929 ## @param dashboards.service.externalTrafficPolicy OpenSearch Dashboards service external traffic policy
2930 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
2932 externalTrafficPolicy: Cluster
2933 ## @param dashboards.service.annotations Additional custom annotations for OpenSearch Dashboards service
2936 ## @param dashboards.service.extraPorts Extra ports to expose in OpenSearch Dashboards service (normally used with the `sidecars` value)
2939 ## @param dashboards.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
2940 ## If "ClientIP", consecutive client requests will be directed to the same Pod
2941 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
2943 sessionAffinity: None
2944 ## @param dashboards.service.sessionAffinityConfig Additional settings for the sessionAffinity
2945 ## sessionAffinityConfig:
2947 ## timeoutSeconds: 300
2949 sessionAffinityConfig: {}
2950 ## @param dashboards.service.nameOverride String to fully override opensearch.dashboards.servicename
2953 ## OpenSearch Dashboards ingress parameters
2954 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/
2957 ## @param dashboards.ingress.enabled Enable ingress record generation for OpenSearch Dashboards
2960 ## @param dashboards.ingress.pathType Ingress path type
2962 pathType: ImplementationSpecific
2963 ## @param dashboards.ingress.apiVersion Force Ingress API version (automatically detected if not set)
2966 ## @param dashboards.ingress.hostname Default host for the ingress record
2968 hostname: opensearch-dashboards.local
2969 ## @param dashboards.ingress.path Default path for the ingress record
2970 ## NOTE: You may need to set this to '/*' in order to use this with ALB ingress controllers
2973 ## @param dashboards.ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
2974 ## Use this parameter to set the required annotations for cert-manager, see
2975 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
2978 ## kubernetes.io/ingress.class: nginx
2979 ## cert-manager.io/cluster-issuer: cluster-issuer-name
2982 ## @param dashboards.ingress.tls Enable TLS configuration for the host defined at `dashboards.ingress.hostname` parameter
2983 ## TLS certificates will be retrieved from a TLS secret with name: `{{- printf "%s-tls" .Values.ingress.hostname }}`
2985 ## - Use the `ingress.secrets` parameter to create this TLS secret
2986 ## - Rely on cert-manager to create it by setting the corresponding annotations
2987 ## - Rely on Helm to create self-signed certificates by setting `ingress.selfSigned=true`
2990 ## @param dashboards.ingress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
2993 ## @param dashboards.ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
2994 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
2995 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
2997 ingressClassName: ""
2998 ## @param dashboards.ingress.extraHosts An array with additional hostname(s) to be covered with the ingress record
3001 ## - name: opensearch-dashboards.local
3005 ## @param dashboards.ingress.extraPaths An array with additional arbitrary paths that may need to be added to the ingress under the main host
3010 ## serviceName: ssl-redirect
3011 ## servicePort: use-annotation
3014 ## @param dashboards.ingress.extraTls TLS configuration for additional hostname(s) to be covered with this ingress record
3015 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
3019 ## - opensearch-dashboards.local
3020 ## secretName: opensearch-dashboards.local-tls
3023 ## @param dashboards.ingress.secrets Custom TLS certificates as secrets
3024 ## NOTE: 'key' and 'certificate' are expected in PEM format
3025 ## NOTE: 'name' should line up with a 'secretName' set further up
3026 ## 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
3027 ## If it is not set, and you're NOT using cert-manager either, self-signed certificates will be created valid for 365 days
3028 ## It is also possible to create and manage the certificates outside of this helm chart
3029 ## Please see README.md for more information
3032 ## - name: opensearch-dashboards.local-tls
3034 ## -----BEGIN RSA PRIVATE KEY-----
3036 ## -----END RSA PRIVATE KEY-----
3038 ## -----BEGIN CERTIFICATE-----
3040 ## -----END CERTIFICATE-----
3043 ## @param dashboards.ingress.extraRules Additional rules to be covered with this ingress record
3044 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
3047 ## - host: example.local
3052 ## name: example-svc
3057 ## @param dashboards.containerPorts.http OpenSearch Dashboards HTTP port
3061 ## @param dashboards.password Password for OpenSearch Dashboards
3064 ## @param dashboards.replicaCount Number of data-only replicas to deploy
3067 ## Pod Disruption Budget configuration
3068 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
3069 ## @param dashboards.pdb.create Enable/disable a Pod Disruption Budget creation
3070 ## @param dashboards.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
3071 ## @param dashboards.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `dashboards.pdb.minAvailable` and `dashboards.pdb.maxUnavailable` are empty.
3077 ## @param dashboards.nameOverride String to partially override opensearch.dashboards.fullname
3080 ## @param dashboards.fullnameOverride String to fully override opensearch.dashboards.fullname
3082 fullnameOverride: ""
3083 ## @param dashboards.servicenameOverride String to fully override opensearch.dashboards.servicename
3084 ## DEPRECATED: Use dashboards.service.nameOverride instead
3086 servicenameOverride: ""
3087 ## @param dashboards.updateStrategy.type Data-only nodes statefulset strategy type
3088 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
3092 ## OpenSearch resource requests and limits
3093 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
3094 ## @param dashboards.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if dashboards.resources is set (dashboards.resources is recommended for production).
3096 resourcesPreset: "small"
3097 ## @param dashboards.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
3108 ## @param dashboards.heapSize OpenSearch data node heap size.
3109 ## Note: The recommended heapSize is half of the container's memory.
3110 ## If omitted, it will be automatically set.
3115 ## Configure Pods Security Context
3116 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
3117 ## @param dashboards.podSecurityContext.enabled Enabled data pods' Security Context
3118 ## @param dashboards.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
3119 ## @param dashboards.podSecurityContext.sysctls Set kernel settings using the sysctl interface
3120 ## @param dashboards.podSecurityContext.supplementalGroups Set filesystem extra groups
3121 ## @param dashboards.podSecurityContext.fsGroup Set dashboards pod's Security Context fsGroup
3125 fsGroupChangePolicy: Always
3127 supplementalGroups: []
3129 ## Configure Container Security Context
3130 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
3131 ## @param dashboards.containerSecurityContext.enabled Enabled containers' Security Context
3132 ## @param dashboards.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
3133 ## @param dashboards.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
3134 ## @param dashboards.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
3135 ## @param dashboards.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
3136 ## @param dashboards.containerSecurityContext.privileged Set container's Security Context privileged
3137 ## @param dashboards.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
3138 ## @param dashboards.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
3139 ## @param dashboards.containerSecurityContext.capabilities.drop List of capabilities to be dropped
3140 ## @param dashboards.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
3142 containerSecurityContext:
3149 readOnlyRootFilesystem: true
3150 allowPrivilegeEscalation: false
3154 type: "RuntimeDefault"
3155 ## @param dashboards.automountServiceAccountToken Mount Service Account token in pod
3157 automountServiceAccountToken: false
3158 ## @param dashboards.hostAliases data pods host aliases
3159 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
3162 ## @param dashboards.podLabels Extra labels for data pods
3163 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
3166 ## @param dashboards.podAnnotations Annotations for data pods
3167 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
3170 ## @param dashboards.podAffinityPreset Pod affinity preset. Ignored if `dashboards.affinity` is set. Allowed values: `soft` or `hard`
3171 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
3173 podAffinityPreset: ""
3174 ## @param dashboards.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `dashboards.affinity` is set. Allowed values: `soft` or `hard`
3175 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
3177 podAntiAffinityPreset: ""
3178 ## Node dashboards.affinity preset
3179 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
3182 ## @param dashboards.nodeAffinityPreset.type Node affinity preset type. Ignored if `dashboards.affinity` is set. Allowed values: `soft` or `hard`
3185 ## @param dashboards.nodeAffinityPreset.key Node label key to match. Ignored if `dashboards.affinity` is set
3188 ## @param dashboards.nodeAffinityPreset.values Node label values to match. Ignored if `dashboards.affinity` is set
3195 ## @param dashboards.affinity Affinity for data pods assignment
3196 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
3197 ## NOTE: `dashboards.podAffinityPreset`, `dashboards.podAntiAffinityPreset`, and `dashboards.nodeAffinityPreset` will be ignored when it's set
3200 ## @param dashboards.nodeSelector Node labels for data pods assignment
3201 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
3204 ## @param dashboards.tolerations Tolerations for data pods assignment
3205 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
3208 ## @param dashboards.priorityClassName data pods' priorityClassName
3210 priorityClassName: ""
3211 ## @param dashboards.schedulerName Name of the k8s scheduler (other than default) for data pods
3212 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
3215 ## @param dashboards.terminationGracePeriodSeconds In seconds, time the given to the OpenSearch data pod needs to terminate gracefully
3216 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
3218 terminationGracePeriodSeconds: ""
3219 ## @param dashboards.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
3220 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
3222 topologySpreadConstraints: []
3223 ## Configure extra options for OpenSearch data containers' liveness, readiness and startup probes
3224 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
3225 ## @param dashboards.startupProbe.enabled Enable/disable the startup probe (data nodes pod)
3226 ## @param dashboards.startupProbe.initialDelaySeconds Delay before startup probe is initiated (data nodes pod)
3227 ## @param dashboards.startupProbe.periodSeconds How often to perform the probe (data nodes pod)
3228 ## @param dashboards.startupProbe.timeoutSeconds When the probe times out (data nodes pod)
3229 ## @param dashboards.startupProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed (data nodes pod)
3230 ## @param dashboards.startupProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded
3234 initialDelaySeconds: 120
3239 ## @param dashboards.livenessProbe.enabled Enable/disable the liveness probe (data nodes pod)
3240 ## @param dashboards.livenessProbe.initialDelaySeconds Delay before liveness probe is initiated (data nodes pod)
3241 ## @param dashboards.livenessProbe.periodSeconds How often to perform the probe (data nodes pod)
3242 ## @param dashboards.livenessProbe.timeoutSeconds When the probe times out (data nodes pod)
3243 ## @param dashboards.livenessProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed (data nodes pod)
3244 ## @param dashboards.livenessProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded
3248 initialDelaySeconds: 180
3253 ## @param dashboards.readinessProbe.enabled Enable/disable the readiness probe (data nodes pod)
3254 ## @param dashboards.readinessProbe.initialDelaySeconds Delay before readiness probe is initiated (data nodes pod)
3255 ## @param dashboards.readinessProbe.periodSeconds How often to perform the probe (data nodes pod)
3256 ## @param dashboards.readinessProbe.timeoutSeconds When the probe times out (data nodes pod)
3257 ## @param dashboards.readinessProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed (data nodes pod)
3258 ## @param dashboards.readinessProbe.failureThreshold Minimum consecutive failures for the probe to be considered failed after having succeeded
3262 initialDelaySeconds: 120
3267 ## @param dashboards.customStartupProbe Override default startup probe
3269 customStartupProbe: {}
3270 ## @param dashboards.customLivenessProbe Override default liveness probe
3272 customLivenessProbe: {}
3273 ## @param dashboards.customReadinessProbe Override default readiness probe
3275 customReadinessProbe: {}
3276 ## @param dashboards.command Override default container command (useful when using custom images)
3279 ## @param dashboards.args Override default container args (useful when using custom images)
3282 ## @param dashboards.lifecycleHooks for the data container(s) to automate configuration before or after startup
3285 ## @param dashboards.extraEnvVars Array with extra environment variables to add to data nodes
3292 ## @param dashboards.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for data nodes
3295 ## @param dashboards.extraEnvVarsSecret Name of existing Secret containing extra env vars for data nodes
3297 extraEnvVarsSecret: ""
3298 ## @param dashboards.extraVolumes Optionally specify extra list of additional volumes for the data pod(s)
3301 ## @param dashboards.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the data container(s)
3303 extraVolumeMounts: []
3304 ## @param dashboards.sidecars Add additional sidecar containers to the data pod(s)
3307 ## - name: your-image-name
3308 ## image: your-image
3309 ## imagePullPolicy: Always
3312 ## containerPort: 1234
3315 ## @param dashboards.initContainers Add additional init containers to the data pod(s)
3316 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
3319 ## - name: your-image-name
3320 ## image: your-image
3321 ## imagePullPolicy: Always
3322 ## command: ['sh', '-c', 'echo "hello world"']
3325 ## Pods Service Account
3326 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
3327 ## @param dashboards.serviceAccount.create Specifies whether a ServiceAccount should be created
3328 ## @param dashboards.serviceAccount.name Name of the service account to use. If not set and create is true, a name is generated using the fullname template.
3329 ## @param dashboards.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
3330 ## @param dashboards.serviceAccount.annotations Annotations for service account. Evaluated as a template. Only used if `create` is `true`.
3335 automountServiceAccountToken: false
3337 ## Network Policy configuration
3338 ## ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
3341 ## @param dashboards.networkPolicy.enabled Enable creation of NetworkPolicy resources
3344 ## @param dashboards.networkPolicy.allowExternal The Policy model to apply
3345 ## When set to false, only pods with the correct client label will have network access to the ports OpenSearch is
3346 ## listening on. When true, OpenSearch will accept connections from any source (with the correct destination port).
3349 ## @param dashboards.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
3351 allowExternalEgress: true
3352 ## @param dashboards.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
3362 ## - matchExpressions:
3369 ## @param dashboards.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
3379 ## - matchExpressions:
3386 ## @param dashboards.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
3387 ## @param dashboards.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
3389 ingressNSMatchLabels: {}
3390 ingressNSPodMatchLabels: {}
3393 ## @param dashboards.autoscaling.vpa.enabled Enable VPA
3396 ## @param dashboards.autoscaling.vpa.annotations Annotations for VPA resource
3399 ## @param dashboards.autoscaling.vpa.controlledResources VPA List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
3401 controlledResources: []
3402 ## @param dashboards.autoscaling.vpa.maxAllowed VPA Max allowed resources for the pod
3406 ## @param dashboards.autoscaling.vpa.minAllowed VPA Min allowed resources for the pod
3411 ## @param dashboards.autoscaling.vpa.updatePolicy.updateMode Autoscaling update policy Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod
3412 ## Possible values are "Off", "Initial", "Recreate", and "Auto".
3416 ## @param dashboards.autoscaling.hpa.enabled Enable HPA for APISIX Data Plane
3419 ## @param dashboards.autoscaling.hpa.minReplicas Minimum number of APISIX Data Plane replicas
3422 ## @param dashboards.autoscaling.hpa.maxReplicas Maximum number of APISIX Data Plane replicas
3425 ## @param dashboards.autoscaling.hpa.targetCPU Target CPU utilization percentage
3428 ## @param dashboards.autoscaling.hpa.targetMemory Target Memory utilization percentage
3431 ## TLS configuration
3434 ## @param dashboards.tls.enabled Enable TLS for OpenSearch Dashboards webserver
3437 ## @param dashboards.tls.existingSecret Existing secret containing the certificates for OpenSearch Dashboards webserver
3440 ## @param dashboards.tls.autoGenerated Create self-signed TLS certificates.
3441 ## NOTE: If autoGenerated certs are enabled and a new node type is enabled using helm upgrade, make sure you remove previously existing TLS secrets.
3442 ## Otherwise, the new node certs won't match the existing certs.
3445 ## Enable persistence using Persistent Volume Claims
3446 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
3449 ## @param dashboards.persistence.enabled Enable persistence using Persistent Volume Claims
3452 ## @param dashboards.persistence.mountPath Path to mount the volume at.
3454 mountPath: /iamguarded/opensearch-dashboards
3455 ## @param dashboards.persistence.subPath The subdirectory of the volume to mount to, useful in dev environments and one PV for multiple services
3458 ## @param dashboards.persistence.storageClass Storage class of backing PVC
3459 ## If defined, storageClassName: <storageClass>
3460 ## If set to "-", storageClassName: "", which disables dynamic provisioning
3461 ## If undefined (the default) or set to null, no storageClassName spec is
3462 ## set, choosing the default provisioner. (gp2 on AWS, standard on
3463 ## GKE, AWS & OpenStack)
3466 ## @param dashboards.persistence.annotations Persistent Volume Claim annotations
3469 ## @param dashboards.persistence.accessModes Persistent Volume Access Modes
3473 ## @param dashboards.persistence.size Size of data volume
3476 ## @param dashboards.persistence.existingClaim The name of an existing PVC to use for persistence
3479 ## @param dashboards.persistence.selector Selector to match an existing Persistent Volume for OpenSearch data PVC
3480 ## If set, the PVC can't have a PV dynamically provisioned for it
3487 ## @param dashboards.persistence.dataSource Custom PVC data source
3490## @section OpenSearch Snapshots Parameters
3492 ## @param snapshots.enabled Enable automatic setup of repositories and snapshot policies
3495 ## @param snapshots.command Override default container command (useful when using custom images)
3498 ## Configure Container Security Context
3499 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
3500 ## @param snapshots.containerSecurityContext.enabled Enabled containers' Security Context
3501 ## @param snapshots.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
3502 ## @param snapshots.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
3503 ## @param snapshots.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
3504 ## @param snapshots.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
3505 ## @param snapshots.containerSecurityContext.privileged Set container's Security Context privileged
3506 ## @param snapshots.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
3507 ## @param snapshots.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
3508 ## @param snapshots.containerSecurityContext.capabilities.drop List of capabilities to be dropped
3509 ## @param snapshots.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
3511 containerSecurityContext:
3513 seLinuxOptions: null
3518 readOnlyRootFilesystem: true
3519 allowPrivilegeEscalation: false
3523 type: "RuntimeDefault"
3524 ## @param snapshots.fullnameOverride String to fully override opensearch.snapshots.fullname
3526 fullnameOverride: ""
3527 ## Iamguarded OpenSearch Snapshots image
3528 ## @param snapshots.image.registry [default: REGISTRY_NAME] OpenSearch Snapshots image registry
3529 ## @param snapshots.image.repository [default: REPOSITORY_NAME/os-shell] OpenSearch Snapshots image repository
3530 ## @skip snapshots.image.tag OpenSearch Snapshots image tag (immutable tags are recommended)
3531 ## @param snapshots.image.digest OpenSearch Snapshots image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
3532 ## @param snapshots.image.pullPolicy OpenSearch Snapshots image pull policy
3533 ## @param snapshots.image.pullSecrets OpenSearch Snapshots image pull secrets
3534 ## @param snapshots.image.debug Enable OpenSearch Snapshots image debug mode
3538 repository: chainguard-private/os-shell-iamguarded
3541 ## Specify a imagePullPolicy
3542 ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
3543 ## ref: http://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
3545 pullPolicy: IfNotPresent
3546 ## Optionally specify an array of imagePullSecrets.
3547 ## Secrets must be manually created in the namespace.
3548 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
3551 ## - myRegistryKeySecretName
3554 ## Enable debug mode
3557 ## @param snapshots.nameOverride String to partially override common.names.fullname
3560 ## Enable persistence using Persistent Volume Claims
3561 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
3564 ## @param snapshots.persistence.enabled Enable persistence using Persistent Volume Claims
3567 ## @param snapshots.persistence.accessModes Persistent Volume Access Modes
3571 ## @param snapshots.persistence.annotations Persistent Volume Claim annotations
3574 ## @param snapshots.persistence.dataSource Custom PVC data source
3577 ## @param snapshots.persistence.existingClaim The name of an existing PVC to use for persistence
3580 ## @param snapshots.persistence.labels Extra labels for the Persistent Volume Claim
3583 ## @param snapshots.persistence.selector Selector to match an existing Persistent Volume for OpenSearch data PVC
3584 ## If set, the PVC can't have a PV dynamically provisioned for it
3591 ## @param snapshots.persistence.size Size of data volume
3594 ## @param snapshots.persistence.storageClass Storage class of backing PVC
3595 ## If defined, storageClassName: <storageClass>
3596 ## If set to "-", storageClassName: "", which disables dynamic provisioning
3597 ## If undefined (the default) or set to null, no storageClassName spec is
3598 ## set, choosing the default provisioner. (gp2 on AWS, standard on
3599 ## GKE, AWS & OpenStack)
3602 ## @param snapshots.persistence.subPath The subdirectory of the volume to mount to, useful in dev environments and one PV for multiple services
3605 ## Configure Pods Security Context
3606 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
3607 ## @param snapshots.podSecurityContext.enabled Enabled data pods' Security Context
3608 ## @param snapshots.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
3609 ## @param snapshots.podSecurityContext.sysctls Set kernel settings using the sysctl interface
3610 ## @param snapshots.podSecurityContext.supplementalGroups Set filesystem extra groups
3611 ## @param snapshots.podSecurityContext.fsGroup Set snapshots pod's Security Context fsGroup
3615 fsGroupChangePolicy: Always
3617 supplementalGroups: []
3619 ## @param snapshots.policies [default: SNAPSHOT_POLICY_API_BODY] Each object represents a snapshot policy in YAML form, which will be converted to JSON and then passed as the HTTP body data to the OpenSearch REST API.
3620 ## NOTE: The field `snapshot_config.repository` in each policy must match a repo name in `snapshots.repositories`.
3627 expression: "0 20 * * *"
3635 expression: 0 20 * * *
3637 description: Default snapshot policy
3641 ## @param snapshots.repositories [default: SNAPSHOT_REPO_API_BODY] Each object represents a snapshot repository in YAML form, which will be converted to JSON and then passed as the HTTP body data to the OpenSearch REST API.
3642 ## NOTE: The field `settings.location` in each repo must match the snapshot repo path configured in `snapshotRepoPath`, if its `type` is `fs`.
3647 location: /snapshots
3649 ## OpenSearch resource requests and limits
3650 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
3651 ## @param snapshots.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if snapshots.resources is set (snapshots.resources is recommended for production).
3653 resourcesPreset: "nano"
3654 ## @param snapshots.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)