2 # -- Overrides the Docker registry globally for all images
4 # To help compatibility with other charts which use global.imagePullSecrets.
5 # Allow either an array of {name: pullSecret} maps (k8s-style), or an array of strings (more common helm-style).
19 ## Use an existing ClusterRole/Role (depending on rbac.namespaced false/true)
20 # useExistingRole: name-of-some-role
21 # useExistingClusterRole: name-of-some-clusterRole
25 # Only has an effect if namespaced: true is set
31 extraClusterRoleRules: []
39 ## ServiceAccount labels.
41 ## Service account annotations. Can be templated.
43 # eks.amazonaws.com/role-arn: arn:aws:iam::123456789000:role/iam-role-name-here
45 ## autoMount is deprecated in favor of automountServiceAccountToken
47 automountServiceAccountToken: false
49## Create a headless service for the deployment
51## Should the service account be auto mounted on the pod
52automountServiceAccountToken: true
53## Create HorizontalPodAutoscaler object for deployment type
62## See `kubectl explain poddisruptionbudget.spec` for more
63## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
64podDisruptionBudget: {}
68# unhealthyPodEvictionPolicy: IfHealthyBudget
70## See `kubectl explain deployment.spec.strategy` for more
71## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
74## The maximum time in seconds for a Deployment to make progress before it is considered to be failed.
75## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#progress-deadline-seconds
76progressDeadlineSeconds: null
85 initialDelaySeconds: 60
88## Use an alternate scheduler, e.g. "stork".
89## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
91# schedulerName: "default-scheduler"
93 # -- The Docker registry
95 # -- Docker image repository
96 repository: scratch-images/test-tmp/grafana
97 # Overrides the Grafana image tag whose default is the chart appVersion
99 sha: sha256:45b543d66d58a7fb9bd6fa808ba611d50d26182ec87ba361a2fdb7714ae525f3
100 pullPolicy: IfNotPresent
101 ## Optionally specify an array of imagePullSecrets.
102 ## Secrets must be manually created in the namespace.
103 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
107 # - myRegistrKeySecretName
110 ## The type of Helm hook used to run this test. Defaults to test.
111 ## ref: https://helm.sh/docs/topics/charts_hooks/#the-available-hooks
115 # -- The Docker registry
117 repository: bats/bats
119 imagePullPolicy: IfNotPresent
121 containerSecurityContext: {}
129# dns configuration for pod
145containerSecurityContext:
146 allowPrivilegeEscalation: false
153# Enable creating the grafana configmap
155# Extra configmaps to mount in grafana pods
156# Values are templated.
157extraConfigmapMounts: []
158# - name: certs-configmap
159# mountPath: /etc/grafana/ssl/
160# subPath: certificates.crt # (optional)
161# configMap: certs-configmap
165extraEmptyDirMounts: []
166# - name: provisioning-notifiers
167# mountPath: /etc/grafana/provisioning/notifiers
169# Shadow `/usr/share/grafana/data/plugins-bundled` with an emptyDir so plugins
170# listed under `plugins:` install cleanly into `/var/lib/grafana/plugins` instead
171# of failing on the read-only bundled directory shipped in the Grafana image.
172# Required for plugins moved out of core in Grafana 13 (e.g. `elasticsearch`,
173# `cloudwatch`) when listed in `plugins:`. Side effect: any bundled plugin not
174# explicitly listed in `plugins:` will not be available.
175shadowBundledPlugins: false
176# Apply extra labels to common labels.
178## Assign a PriorityClassName to pods if set
180downloadDashboardsImage:
181 # -- The Docker registry
183 repository: scratch-images/test-tmp/curl
185 sha: sha256:888d941ac2f9eb5f04d002cefc7d0199eb775ce1db8e143b32db014c4379f9be
186 pullPolicy: IfNotPresent
192 allowPrivilegeEscalation: false
201 # name: configmap-name
206## ConfigMap Annotations
207# configMapAnnotations: {}
208# argocd.argoproj.io/sync-options: Replace=true
213gossipPortName: gossip
214## Deployment annotations
217## Expose the grafana service to be accessed from outside the cluster (LoadBalancer service).
218## or access it from within the cluster (ClusterIP service). Set the service type and the port to serve it.
219## ref: http://kubernetes.io/docs/user-guide/services/
224 # Set the ip family policy to configure dual-stack see [Configure dual-stack](https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services)
226 # Sets the families that should be supported and the order in which they should be applied to ClusterIP as well. Can be IPv4 and/or IPv6.
229 loadBalancerClass: ""
230 loadBalancerSourceRanges: []
233 # targetPort: 4181 To be used with a proxy extraContainer
234 ## Service annotations. Can be templated.
238 # Adds the appProtocol field to the service. This allows to work with istio protocol selection. Ex: "http" or "tcp"
241 # trafficDistribution allows specifying how traffic is distributed to Service endpoints.
242 # Valid values: "" (default - standard load balancing),"PreferSameZone" (K8s 1.34+), "PreferSameNode" (K8s 1.35+), "PreferClose" (deprecated, use PreferSameZone),
243 trafficDistribution: ""
245 ## If true, a ServiceMonitor CR is created for a prometheus operator
246 ## https://github.com/coreos/prometheus-operator
250 # namespace: monitoring (defaults to use the namespace this chart is deployed to)
252 # Set these to override the Prometheus global scrape interval/timeout.
258 metricRelabelings: []
266# overrides pod.spec.hostAliases in the grafana deployment's pods
274 # ingressClassName: nginx
275 # Values can be templated
277 # kubernetes.io/ingress.class: nginx
278 # kubernetes.io/tls-acme: "true"
283 - chart-example.local
284 ## Extra paths to prepend to every host configuration. This is useful when working with annotation based services.
292 # name: use-annotation
295 # - secretName: chart-example-tls
297 # - chart-example.local
298# -- BETA: Configure the gateway routes for the chart here.
299# More routes can be added by adding a dictionary key like the 'main' route.
300# Be aware that this is an early beta of this feature,
301# kube-prometheus-stack does not guarantee this works and is subject to change.
302# Being BETA this can/will change in the future without notice, do not use unless you want to take that risk
303# [[ref]](https://gateway-api.sigs.k8s.io/references/spec/#gateway.networking.k8s.io%2fv1alpha2)
306 # -- Enables or disables the route
308 # -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2
309 apiVersion: gateway.networking.k8s.io/v1
310 # -- Set the route kind
311 # Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
316 # - my-filter.example.com
324 ## Timeouts define the timeouts that can be configured for an HTTP request.
325 ## Ref. https://gateway-api.sigs.k8s.io/api-types/httproute/#timeouts-optional
330 ## SessionPersistence defines and configures session persistence for the route rule.
331 ## Ref. https://gateway-api.sigs.k8s.io/geps/gep-1619/
332 sessionPersistence: {}
333 # sessionName: grafana-session
335 # absoluteTimeout: 48h
337 # lifetimeType: Permanent
339 ## Filters define the filters that are applied to requests that match this rule.
341 ## Additional custom rules that can be added to the route
343 ## httpsRedirect adds a filter for redirecting to https (HTTP 301 Moved Permanently).
344 ## To redirect HTTP traffic to HTTPS, you need to have a Gateway with both HTTP and HTTPS listeners.
345 ## Matches and filters do not take effect if enabled.
346 ## Ref. https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/
356## Node labels for pod assignment
357## ref: https://kubernetes.io/docs/user-guide/node-selection/
360## Tolerations for pod assignment
361## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
364## Affinity for pod assignment (evaluated as template)
365## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
368## Topology Spread Constraints
369## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
371topologySpreadConstraints: []
372## Additional init containers (evaluated as template)
373## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
375extraInitContainers: []
376## Enable an Specify container in extraContainers. This is meant to allow adding an authentication proxy to a grafana pod
380# image: quay.io/gambol99/keycloak-proxy:latest
385# - -github-org=<ORG_NAME>
388# - -http-address=http://0.0.0.0:4181
389# - -upstream-url=http://127.0.0.1:3000
394## Volumes that can be used in init containers that will not be mounted to deployment pods
395extraContainerVolumes: []
396# - name: volume-from-secret
398# secretName: secret-to-mount
399# - name: empty-dir-volume
402## Enable persistence using Persistent Volume Claims
403## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
408 # storageClassName: default
409 ## (Optional) Use this to bind the claim to an existing PersistentVolume (PV) by name.
416 - kubernetes.io/pvc-protection
418 ## Sub-directory of the PV to mount. Can be templated.
420 ## Name of an existing PVC. Can be templated.
422 ## Extra labels to apply to a PVC.
424 disableWarning: false
425 ## If persistence is not enabled, this allows to mount the
426 ## local storage in-memory to improve performance
430 ## The maximum usage on memory medium EmptyDir would be
431 ## the minimum value between the SizeLimit specified
432 ## here and the sum of memory limits of all containers in a pod
435 ## If 'lookupVolumeName' is set to true, Helm will attempt to retrieve
436 ## the current value of 'spec.volumeName' and incorporate it into the template.
437 lookupVolumeName: true
439 ## If false, data ownership will not be reset at startup
440 ## This allows the grafana-server to be run with an arbitrary user
443 ## initChownData container image
446 # -- The Docker registry
448 repository: scratch-images/test-tmp/busybox
449 tag: glibc-1.37.0-r59
450 sha: sha256:3d75d364b9babfe8405009051d15fd6280b36bb65a6a7d5eed09ee70987116a7
451 pullPolicy: IfNotPresent
452 ## initChownData resource requests and limits
453 ## Ref: http://kubernetes.io/docs/user-guide/compute-resources/
463 readOnlyRootFilesystem: false
474# Administrator credentials when not using an existing secret (see below)
476# adminPassword: strongpassword
478# Use an existing secret for the admin user.
480 ## Name of the secret. Can be templated.
483 passwordKey: admin-password
484## Define command to be executed at startup by grafana container
485## Needed if using `vault-env` to manage secrets (ref: https://banzaicloud.com/blog/inject-secrets-into-pods-vault/)
486## Default is "run.sh" as defined in grafana's Dockerfile
491## Optionally define args if command is used
492## Needed if using `hashicorp/envconsul` to manage secrets
493## By default no arguments are set
499## Extra environment variables that will be pass onto deployment pods
501## to provide grafana with access to CloudWatch on AWS EKS:
502## 1. create an iam role of type "Web identity" with provider oidc.eks.* (note the provider for later)
503## 2. edit the "Trust relationships" of the role, add a line inside the StringEquals clause using the
504## same oidc eks provider as noted before (same as the existing line)
505## also, replace NAMESPACE and prometheus-operator-grafana with the service account namespace and name
507## "oidc.eks.us-east-1.amazonaws.com/id/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:sub": "system:serviceaccount:NAMESPACE:prometheus-operator-grafana",
509## 3. attach a policy to the role, you can use a built in policy called CloudWatchReadOnlyAccess
510## 4. use the following env: (replace 123456789000 and iam-role-name-here with your aws account number and role name)
513## AWS_ROLE_ARN: arn:aws:iam::123456789000:role/iam-role-name-here
514## AWS_WEB_IDENTITY_TOKEN_FILE: /var/run/secrets/eks.amazonaws.com/serviceaccount/token
515## AWS_REGION: us-east-1
517## 5. uncomment the EKS section in extraSecretMounts: below
518## 6. uncomment the annotation section in the serviceAccount: above
519## make sure to replace arn:aws:iam::123456789000:role/iam-role-name-here with your role arn
521## "valueFrom" environment variable references that will be added to deployment pods. Name is templated.
522## ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#envvarsource-v1-core
523## Renders in container spec as:
528## <value rendered as YAML>
532# name: configmap-name
535## The name of a secret in the same kubernetes namespace which contain values to be added to the environment
536## This can be useful for auth tokens, etc. Value is templated.
538## Sensible environment variables that will be rendered as new secret object
539## This can be useful for auth tokens, etc.
540## If the secret values contains "{{", they'll need to be properly escaped so that they are not interpreted by Helm
541## ref: https://helm.sh/docs/howto/charts_tips_and_tricks/#using-the-tpl-function
543## The names of secrets in the same kubernetes namespace which contain values to be added to the environment
544## Each entry should contain a name key, and can optionally specify whether the secret must be defined with an optional key.
547## - name: secret-name
551## The names of configmaps in the same kubernetes namespace which contain values to be added to the environment
552## Each entry should contain a name key, and can optionally specify whether the configmap must be defined with an optional key.
554## ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#configmapenvsource-v1-core
556## - name: configmap-name
560# Inject Kubernetes services as environment variables.
561# See https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/#environment-variables
562enableServiceLinks: true
563## Additional grafana server secret mounts
564# Defines additional mounts with secrets. Secrets must be manually created in the namespace.
566# - name: secret-files
567# mountPath: /etc/secrets
568# secretName: grafana-secret-files
573# for AWS EKS (cloudwatch) use the following (see also instruction in env: above)
574# - name: aws-iam-token
575# mountPath: /var/run/secrets/eks.amazonaws.com/serviceaccount
580# - serviceAccountToken:
581# audience: sts.amazonaws.com
582# expirationSeconds: 86400
585# for CSI e.g. Azure Key Vault use the following
586# - name: secrets-store-inline
587# mountPath: /run/secrets/vault.azure.com
590# driver: secrets-store.csi.k8s.io
593# secretProviderClass: "akv-grafana-spc"
594# nodePublishSecretRef: # Only required when using service principal mode
595# name: grafana-akv-creds # Only required when using service principal mode
597## Additional grafana server volume mounts
598# Defines additional volume mounts.
600# - name: extra-volume-0
601# mountPath: /mnt/volume0
603# - name: extra-volume-1
604# mountPath: /mnt/volume1
606# - name: grafana-secrets
607# mountPath: /mnt/volume2
609## Additional Grafana server volumes
611# - name: extra-volume-0
612# existingClaim: volume-claim
613# - name: extra-volume-1
617# - name: grafana-secrets
619# driver: secrets-store.csi.k8s.io
622# secretProviderClass: "grafana-env-spc"
624## Container Lifecycle Hooks. Execute a specific bash command or make an HTTP request
630## Pass the plugins you want installed as a list.
633# - digrich-bubblechart-panel
634# - grafana-clock-panel
635## You can also use other plugin download URL, as long as they are valid zip files,
636## and specify the name of the plugin as prefix, with an version. Like this:
637# - marcusolsson-json-datasource@1.3.24@https://grafana.com/api/plugins/marcusolsson-json-datasource/versions/1.3.24/download
639## Configure grafana datasources
640## ref: http://docs.grafana.org/administration/provisioning/#datasources
648# url: http://prometheus-prometheus-server
658# defaultRegion: us-east-1
659# deleteDatasources: []
662## Configure grafana alerting (can be templated)
663## ref: https://docs.grafana.com/alerting/set-up/provision-alerting-resources/file-provisioning/
676# name: '{{ .Chart.Name }}_my_rule_group'
677# folder: my_first_folder
681# title: my_first_rule
685# datasourceUid: '-100'
705# maxDataPoints: 43200
708# dashboardUid: my_dashboard
710# noDataState: Alerting
713# some_key: some_value
733# {{ `{{ include "default.message" . }}` }}
739# name: my_first_template
742# {{ define "my_first_template" }}
743# Custom notification message
752# # refer to https://prometheus.io/docs/alerting/latest/configuration/#time_interval-0
755## Configure notifiers
756## ref: http://docs.grafana.org/administration/provisioning/#alert-notification-channels
761# - name: email-notifier
770# addresses: an_email_address@example.com
773## Configure grafana dashboard providers
774## ref: http://docs.grafana.org/administration/provisioning/#dashboards
776## `path` must be /var/lib/grafana/dashboards/<provider_name>
778dashboardProviders: {}
779# dashboardproviders.yaml:
786# disableDeletion: false
789# path: /var/lib/grafana/dashboards/default
791## Configure how curl fetches remote dashboards. The beginning dash is required.
792## NOTE: This sets the default short flags for all dashboards, but these
793## defaults can be overridden individually for each dashboard by setting
794## curlOptions. See the example dashboards section below.
797## -k - allow insecure (eg: non-TLS) connections
799## See the curl documentation for additional options
801defaultCurlOptions: "-skf"
802## Configure grafana dashboard to import
803## NOTE: To use dashboards you must also enable/configure dashboardProviders
804## ref: https://grafana.com/dashboards
806## dashboards per provider, use provider name as key.
807## For dashboards downloaded via gnetId or url, the optional "title" key overrides
808## the dashboard title in the downloaded JSON so the UI displays your custom title.
816# file: dashboards/custom-dashboard.json
818# title: My Custom Dashboard Title # optional; overrides the dashboard title in the downloaded JSON
821# datasource: Prometheus
823# url: https://example.com/repository/test.json
826# local-dashboard-base64:
827# url: https://example.com/repository/test-b64.json
830# local-dashboard-gitlab:
831# url: https://example.com/repository/test-gitlab.json
833# local-dashboard-bitbucket:
834# url: https://example.com/repository/test-bitbucket.json
836# local-dashboard-azure:
837# url: https://example.com/repository/test-azure.json
841## Reference to external ConfigMap per provider. Use provider name as key and ConfigMap name as value.
842## A provider dashboards must be defined either by external ConfigMaps or in values.yaml, not in both.
843## ConfigMap data example:
846## example-dashboard.json: |
849dashboardsConfigMaps: {}
852## Grafana's primary configuration
853## NOTE: values in map will be converted to ini format
854## ref: http://docs.grafana.org/installation/configuration/
858 data: /var/lib/grafana/
859 logs: /var/log/grafana
860 plugins: /var/lib/grafana/plugins
861 provisioning: /etc/grafana/provisioning
863 check_for_updates: true
867 domain: "{{ if (and .Values.ingress.enabled .Values.ingress.hosts) }}{{ tpl (.Values.ingress.hosts | first) . }}{{ else if (and .Values.route.main.enabled .Values.route.main.hostnames) }}{{ tpl (.Values.route.main.hostnames | first) . }}{{ else }}''{{ end }}"
869 index_path: /var/lib/grafana-search/bleve
870 ## grafana Authentication can be enabled with the following values on grafana.ini
872 # The full public facing url you use in browser, used for redirects and emails
874 # https://grafana.com/docs/grafana/latest/auth/github/#enable-github-in-grafana
877 # allow_sign_up: false
878 # scopes: user:email,read:org
879 # auth_url: https://github.com/login/oauth/authorize
880 # token_url: https://github.com/login/oauth/access_token
881 # api_url: https://api.github.com/user
883 # allowed_organizations:
886## LDAP Authentication can be enabled with the following values on grafana.ini
887## NOTE: Grafana will fail to start if the value for ldap.toml is invalid
891# config_file: /etc/grafana/ldap.toml
892## Grafana's alerting configuration
895# rule_version_record_limit: "5"
897## Grafana's LDAP configuration
898## Templated by the template in _helpers.tpl
899## NOTE: To enable the grafana.ini must be configured with auth.ldap.enabled
900## ref: http://docs.grafana.org/installation/configuration/#auth-ldap
901## ref: http://docs.grafana.org/installation/ldap/#configuration
904 # `existingSecret` is a reference to an existing secret containing the ldap configuration
905 # for Grafana in a key `ldap-toml`.
907 # `config` is the content of `ldap.toml` that will be stored in the created secret
910 # verbose_logging = true
912# host = "my-ldap-server"
916# ssl_skip_verify = false
917# bind_dn = "uid=%s,ou=users,dc=myorg,dc=com"
919# When process namespace sharing is enabled, processes in a container are visible to all other containers in the same pod
920# This parameter is added because the ldap reload api is not working https://grafana.com/docs/grafana/latest/developers/http_api/admin/#reload-ldap-configuration
921# To allow an extraContainer to restart the Grafana container
922shareProcessNamespace: false
923## Grafana's SMTP configuration
924## NOTE: To enable, grafana.ini must be configured with smtp.enabled
925## ref: http://docs.grafana.org/installation/configuration/#smtp
927 # `existingSecret` is a reference to an existing secret containing the smtp configuration
931 passwordKey: "password"
932## Sidecars that collect the configmaps with specified label and stores the included files them into the respective folders
933## Requires at least Grafana 5 to work and can't be used together with parameters dashboardProviders, datasources and dashboards
936 # -- The Docker registry
938 repository: scratch-images/test-tmp/k8s-sidecar
940 sha: sha256:81d3b67647dbc60d9d4341d5cde3bbde4097f768b075793f45afebf9c776103d
941 imagePullPolicy: IfNotPresent
950 allowPrivilegeEscalation: false
956 # skipTlsVerify Set to true to skip tls verification for kube api calls
957 # skipTlsVerify: true
958 enableUniqueFilenames: false
961 # Log level default for all sidecars. Can be one of: DEBUG, INFO, WARN, ERROR, CRITICAL. Defaults to INFO
965 # Additional environment variables for the alerts sidecar
967 ## "valueFrom" environment variable references that will be added to deployment pods. Name is templated.
968 ## ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#envvarsource-v1-core
969 ## Renders in container spec as:
974 ## <value rendered as YAML>
978 # name: configmap-name
980 # Do not reprocess already processed unchanged resources on k8s API reconnect.
981 # ignoreAlreadyProcessed: true
982 # label that the configmaps with alert are marked with (can be templated)
984 # value of label that the configmaps with alert are set to (can be templated)
986 # Log level. Can be one of: DEBUG, INFO, WARN, ERROR, CRITICAL.
988 # If specified, the sidecar will search for alert config-maps inside this namespace.
989 # Otherwise the namespace in which the sidecar is running will be used.
990 # It's also possible to specify ALL to search in all namespaces
991 searchNamespace: null
992 # Method to use to detect ConfigMap changes. With WATCH the sidecar will do a WATCH requests, with SLEEP it will list all ConfigMaps, then sleep for 60 seconds.
994 # search in configmap, secret or both
997 # resourceName: comma separated list of resource names to be fetched/checked by this sidecar.
998 # per default all resources of the type defined in {{ .Values.sidecar.alerts.resource }} will be checked.
999 # This e.g. allows stricter RBAC rules which are limited to the resources meant for the sidecars.
1000 # resourceName: "secret/alerts-1,configmap/alerts-0"
1003 # watchServerTimeout: request to the server, asking it to cleanly close the connection after that.
1004 # defaults to 60sec; much higher values like 3600 seconds (1h) are feasible for non-Azure K8S
1005 # watchServerTimeout: 3600
1007 # watchClientTimeout: is a client-side timeout, configuring your local socket.
1008 # If you have a network outage dropping all packets with no RST/FIN,
1009 # this is how long your client waits before realizing & dropping the connection.
1010 # defaults to 66sec (sic!)
1011 # watchClientTimeout: 60
1013 # maxTotalRetries: Total number of retries to allow for any http request.
1014 # Takes precedence over other counts. Applies to all requests to reloadURL and k8s api requests.
1015 # Set to 0 to fail on the first retry.
1016 # maxTotalRetries: 5
1018 # maxConnectRetries: How many connection-related errors to retry on for any http request.
1019 # These are errors raised before the request is sent to the remote server, which we assume has not triggered the server to process the request.
1020 # Applies to all requests to reloadURL and k8s api requests.
1021 # Set to 0 to fail on the first retry of this type.
1022 # maxConnectRetries: 10
1024 # maxReadRetries: How many times to retry on read errors for any http request
1025 # These errors are raised after the request was sent to the server, so the request may have side-effects.
1026 # Applies to all requests to reloadURL and k8s api requests.
1027 # Set to 0 to fail on the first retry of this type.
1030 # Endpoint to send request to reload alerts
1031 reloadURL: "http://localhost:3000/api/admin/provisioning/alerting/reload"
1032 # Absolute path to a script to execute after a configmap got reloaded.
1033 # It runs before calls to REQ_URI. If the file is not executable it will be passed to sh.
1034 # Otherwise, it's executed as is. Shebangs known to work are #!/bin/sh and #!/usr/bin/env python
1037 # This is needed if skipReload is true, to load any alerts defined at startup time.
1038 # Deploy the alert sidecar as an initContainer.
1040 # Use native sidecar https://kubernetes.io/docs/concepts/workloads/pods/sidecar-containers/
1041 # restartPolicy: Always
1042 # # only applies to native sidecars
1047 # initialDelaySeconds: 5
1049 # failureThreshold: 60 # 5 minutes
1050 # Additional alerts sidecar volume mounts
1052 # Sets the size limit of the alert sidecar emptyDir volume
1056 # Additional environment variables for the dashboards sidecar
1058 ## "valueFrom" environment variable references that will be added to deployment pods. Name is templated.
1059 ## ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#envvarsource-v1-core
1060 ## Renders in container spec as:
1065 ## <value rendered as YAML>
1069 # name: configmap-name
1071 # Do not reprocess already processed unchanged resources on k8s API reconnect.
1072 # ignoreAlreadyProcessed: true
1074 # label that the configmaps with dashboards are marked with (can be templated)
1075 label: grafana_dashboard
1076 # value of label that the configmaps with dashboards are set to (can be templated)
1078 # Log level. Can be one of: DEBUG, INFO, WARN, ERROR, CRITICAL.
1080 # folder in the pod that should hold the collected dashboards (unless `defaultFolderName` is set)
1081 folder: /tmp/dashboards
1082 # The default folder name, it will create a subfolder under the `folder` and put dashboards in there instead
1083 defaultFolderName: null
1084 # Namespaces list. If specified, the sidecar will search for config-maps/secrets inside these namespaces.
1085 # Otherwise the namespace in which the sidecar is running will be used.
1086 # It's also possible to specify ALL to search in all namespaces.
1087 searchNamespace: null
1088 # Method to use to detect ConfigMap changes. With WATCH the sidecar will do a WATCH requests, with SLEEP it will list all ConfigMaps, then sleep for 60 seconds.
1090 # search in configmap, secret or both
1092 # If specified, the sidecar will look for annotation with this name to create folder and put graph here.
1093 # You can use this parameter together with `provider.foldersFromFilesStructure`to annotate configmaps and create folder structure.
1094 folderAnnotation: null
1096 # resourceName: comma separated list of resource names to be fetched/checked by this sidecar.
1097 # per default all resources of the type defined in {{ .Values.sidecar.dashboards.resource }} will be checked.
1098 # This e.g. allows stricter RBAC rules which are limited to the resources meant for the sidecars.
1099 # resourceName: "secret/dashboards-0,configmap/dashboards-1"
1102 # maxTotalRetries: Total number of retries to allow for any http request.
1103 # Takes precedence over other counts. Applies to all requests to reloadURL and k8s api requests.
1104 # Set to 0 to fail on the first retry.
1105 # maxTotalRetries: 5
1107 # maxConnectRetries: How many connection-related errors to retry on for any http request.
1108 # These are errors raised before the request is sent to the remote server, which we assume has not triggered the server to process the request.
1109 # Applies to all requests to reloadURL and k8s api requests.
1110 # Set to 0 to fail on the first retry of this type.
1111 # maxConnectRetries: 10
1113 # maxReadRetries: How many times to retry on read errors for any http request
1114 # These errors are raised after the request was sent to the server, so the request may have side-effects.
1115 # Applies to all requests to reloadURL and k8s api requests.
1116 # Set to 0 to fail on the first retry of this type.
1119 # Endpoint to send request to reload alerts
1120 reloadURL: "http://localhost:3000/api/admin/provisioning/dashboards/reload"
1121 # Absolute path to a script to execute after a configmap got reloaded.
1122 # It runs before calls to REQ_URI. If the file is not executable it will be passed to sh.
1123 # Otherwise, it's executed as is. Shebangs known to work are #!/bin/sh and #!/usr/bin/env python
1126 # This is needed if skipReload is true, to load any dashboards defined at startup time.
1127 # Deploy the dashboard sidecar as an initContainer.
1128 initDashboards: false
1129 # Use native sidecar https://kubernetes.io/docs/concepts/workloads/pods/sidecar-containers/
1130 # restartPolicy: Always
1131 # # only applies to native sidecars
1136 # initialDelaySeconds: 5
1138 # failureThreshold: 60 # 5 minutes
1139 # watchServerTimeout: request to the server, asking it to cleanly close the connection after that.
1140 # defaults to 60sec; much higher values like 3600 seconds (1h) are feasible for non-Azure K8S
1141 # watchServerTimeout: 3600
1143 # watchClientTimeout: is a client-side timeout, configuring your local socket.
1144 # If you have a network outage dropping all packets with no RST/FIN,
1145 # this is how long your client waits before realizing & dropping the connection.
1146 # defaults to 66sec (sic!)
1147 # watchClientTimeout: 60
1149 # provider configuration that lets grafana manage the dashboards
1151 # name of the provider, should be unique
1152 name: sidecarProvider
1153 # orgid as configured in grafana
1155 # folder in which the dashboards should be imported in grafana
1157 # <string> folder UID. will be automatically generated if not specified
1159 # type of the provider
1161 # disableDelete to activate a import-only behaviour
1162 disableDelete: false
1163 # allow updating provisioned dashboards from the UI
1164 allowUiUpdates: false
1165 # allow Grafana to replicate dashboard structure from filesystem
1166 foldersFromFilesStructure: false
1167 # Additional dashboards sidecar volume mounts
1169 # Sets the size limit of the dashboard sidecar emptyDir volume
1173 # Additional environment variables for the datasourcessidecar
1175 ## "valueFrom" environment variable references that will be added to deployment pods. Name is templated.
1176 ## ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#envvarsource-v1-core
1177 ## Renders in container spec as:
1182 ## <value rendered as YAML>
1186 # name: configmap-name
1188 # Do not reprocess already processed unchanged resources on k8s API reconnect.
1189 # ignoreAlreadyProcessed: true
1190 # label that the configmaps with datasources are marked with (can be templated)
1191 label: grafana_datasource
1192 # value of label that the configmaps with datasources are set to (can be templated)
1194 # Log level. Can be one of: DEBUG, INFO, WARN, ERROR, CRITICAL.
1196 # If specified, the sidecar will search for datasource config-maps inside this namespace.
1197 # Otherwise the namespace in which the sidecar is running will be used.
1198 # It's also possible to specify ALL to search in all namespaces
1199 searchNamespace: null
1200 # Method to use to detect ConfigMap changes. With WATCH the sidecar will do a WATCH requests, with SLEEP it will list all ConfigMaps, then sleep for 60 seconds.
1202 # search in configmap, secret or both
1205 # resourceName: comma separated list of resource names to be fetched/checked by this sidecar.
1206 # per default all resources of the type defined in {{ .Values.sidecar.datasources.resource }} will be checked.
1207 # This e.g. allows stricter RBAC rules which are limited to the resources meant for the sidecars.
1208 # resourceName: "secret/datasources-0,configmap/datasources-15"
1211 # watchServerTimeout: request to the server, asking it to cleanly close the connection after that.
1212 # defaults to 60sec; much higher values like 3600 seconds (1h) are feasible for non-Azure K8S
1213 # watchServerTimeout: 3600
1215 # watchClientTimeout: is a client-side timeout, configuring your local socket.
1216 # If you have a network outage dropping all packets with no RST/FIN,
1217 # this is how long your client waits before realizing & dropping the connection.
1218 # defaults to 66sec (sic!)
1219 # watchClientTimeout: 60
1221 # maxTotalRetries: Total number of retries to allow for any http request.
1222 # Takes precedence over other counts. Applies to all requests to reloadURL and k8s api requests.
1223 # Set to 0 to fail on the first retry.
1224 # maxTotalRetries: 5
1226 # maxConnectRetries: How many connection-related errors to retry on for any http request.
1227 # These are errors raised before the request is sent to the remote server, which we assume has not triggered the server to process the request.
1228 # Applies to all requests to reloadURL and k8s api requests.
1229 # Set to 0 to fail on the first retry of this type.
1230 # maxConnectRetries: 10
1232 # maxReadRetries: How many times to retry on read errors for any http request
1233 # These errors are raised after the request was sent to the server, so the request may have side-effects.
1234 # Applies to all requests to reloadURL and k8s api requests.
1235 # Set to 0 to fail on the first retry of this type.
1238 # Endpoint to send request to reload datasources
1239 reloadURL: "http://localhost:3000/api/admin/provisioning/datasources/reload"
1240 # Absolute path to a script to execute after a configmap got reloaded.
1241 # It runs before calls to REQ_URI. If the file is not executable it will be passed to sh.
1242 # Otherwise, it's executed as is. Shebangs known to work are #!/bin/sh and #!/usr/bin/env python
1245 # This is needed if skipReload is true, to load any datasources defined at startup time.
1246 # Deploy the datasources sidecar as an initContainer.
1247 initDatasources: false
1248 # Use native sidecar https://kubernetes.io/docs/concepts/workloads/pods/sidecar-containers/
1249 # restartPolicy: Always
1250 # # only applies to native sidecars
1255 # initialDelaySeconds: 5
1257 # failureThreshold: 60 # 5 minutes
1258 # Additional datasources sidecar volume mounts
1260 # Sets the size limit of the datasource sidecar emptyDir volume
1264 # Additional environment variables for the plugins sidecar
1266 # Do not reprocess already processed unchanged resources on k8s API reconnect.
1267 # ignoreAlreadyProcessed: true
1268 # label that the configmaps with plugins are marked with (can be templated)
1269 label: grafana_plugin
1270 # value of label that the configmaps with plugins are set to (can be templated)
1272 # Log level. Can be one of: DEBUG, INFO, WARN, ERROR, CRITICAL.
1274 # If specified, the sidecar will search for plugin config-maps inside this namespace.
1275 # Otherwise the namespace in which the sidecar is running will be used.
1276 # It's also possible to specify ALL to search in all namespaces
1277 searchNamespace: null
1278 # Method to use to detect ConfigMap changes. With WATCH the sidecar will do a WATCH requests, with SLEEP it will list all ConfigMaps, then sleep for 60 seconds.
1280 # search in configmap, secret or both
1283 # resourceName: comma separated list of resource names to be fetched/checked by this sidecar.
1284 # per default all resources of the type defined in {{ .Values.sidecar.plugins.resource }} will be checked.
1285 # This e.g. allows stricter RBAC rules which are limited to the resources meant for the sidecars.
1286 # resourceName: "secret/plugins-0,configmap/plugins-1"
1289 # watchServerTimeout: request to the server, asking it to cleanly close the connection after that.
1290 # defaults to 60sec; much higher values like 3600 seconds (1h) are feasible for non-Azure K8S
1291 # watchServerTimeout: 3600
1293 # watchClientTimeout: is a client-side timeout, configuring your local socket.
1294 # If you have a network outage dropping all packets with no RST/FIN,
1295 # this is how long your client waits before realizing & dropping the connection.
1296 # defaults to 66sec (sic!)
1297 # watchClientTimeout: 60
1299 # maxTotalRetries: Total number of retries to allow for any http request.
1300 # Takes precedence over other counts. Applies to all requests to reloadURL and k8s api requests.
1301 # Set to 0 to fail on the first retry.
1302 # maxTotalRetries: 5
1304 # maxConnectRetries: How many connection-related errors to retry on for any http request.
1305 # These are errors raised before the request is sent to the remote server, which we assume has not triggered the server to process the request.
1306 # Applies to all requests to reloadURL and k8s api requests.
1307 # Set to 0 to fail on the first retry of this type.
1308 # maxConnectRetries: 10
1310 # maxReadRetries: How many times to retry on read errors for any http request
1311 # These errors are raised after the request was sent to the server, so the request may have side-effects.
1312 # Applies to all requests to reloadURL and k8s api requests.
1313 # Set to 0 to fail on the first retry of this type.
1316 # Endpoint to send request to reload plugins
1317 reloadURL: "http://localhost:3000/api/admin/provisioning/plugins/reload"
1318 # Absolute path to a script to execute after a configmap got reloaded.
1319 # It runs before calls to REQ_URI. If the file is not executable it will be passed to sh.
1320 # Otherwise, it's executed as is. Shebangs known to work are #!/bin/sh and #!/usr/bin/env python
1323 # Deploy the datasource sidecar as an initContainer in addition to a container.
1324 # This is needed if skipReload is true, to load any plugins defined at startup time.
1326 # Additional plugins sidecar volume mounts
1328 # Sets the size limit of the plugin sidecar emptyDir volume
1332 # Additional environment variables for the notifierssidecar
1334 # Do not reprocess already processed unchanged resources on k8s API reconnect.
1335 # ignoreAlreadyProcessed: true
1336 # label that the configmaps with notifiers are marked with (can be templated)
1337 label: grafana_notifier
1338 # value of label that the configmaps with notifiers are set to (can be templated)
1340 # Log level. Can be one of: DEBUG, INFO, WARN, ERROR, CRITICAL.
1342 # If specified, the sidecar will search for notifier config-maps inside this namespace.
1343 # Otherwise the namespace in which the sidecar is running will be used.
1344 # It's also possible to specify ALL to search in all namespaces
1345 searchNamespace: null
1346 # Method to use to detect ConfigMap changes. With WATCH the sidecar will do a WATCH requests, with SLEEP it will list all ConfigMaps, then sleep for 60 seconds.
1348 # search in configmap, secret or both
1351 # resourceName: comma separated list of resource names to be fetched/checked by this sidecar.
1352 # per default all resources of the type defined in {{ .Values.sidecar.notifiers.resource }} will be checked.
1353 # This e.g. allows stricter RBAC rules which are limited to the resources meant for the sidecars.
1354 # resourceName: "secret/notifiers-2,configmap/notifiers-1"
1357 # watchServerTimeout: request to the server, asking it to cleanly close the connection after that.
1358 # defaults to 60sec; much higher values like 3600 seconds (1h) are feasible for non-Azure K8S
1359 # watchServerTimeout: 3600
1361 # watchClientTimeout: is a client-side timeout, configuring your local socket.
1362 # If you have a network outage dropping all packets with no RST/FIN,
1363 # this is how long your client waits before realizing & dropping the connection.
1364 # defaults to 66sec (sic!)
1365 # watchClientTimeout: 60
1367 # maxTotalRetries: Total number of retries to allow for any http request.
1368 # Takes precedence over other counts. Applies to all requests to reloadURL and k8s api requests.
1369 # Set to 0 to fail on the first retry.
1370 # maxTotalRetries: 5
1372 # maxConnectRetries: How many connection-related errors to retry on for any http request.
1373 # These are errors raised before the request is sent to the remote server, which we assume has not triggered the server to process the request.
1374 # Applies to all requests to reloadURL and k8s api requests.
1375 # Set to 0 to fail on the first retry of this type.
1376 # maxConnectRetries: 10
1378 # maxReadRetries: How many times to retry on read errors for any http request
1379 # These errors are raised after the request was sent to the server, so the request may have side-effects.
1380 # Applies to all requests to reloadURL and k8s api requests.
1381 # Set to 0 to fail on the first retry of this type.
1384 # Endpoint to send request to reload notifiers
1385 reloadURL: "http://localhost:3000/api/admin/provisioning/notifications/reload"
1386 # Absolute path to a script to execute after a configmap got reloaded.
1387 # It runs before calls to REQ_URI. If the file is not executable it will be passed to sh.
1388 # Otherwise, it's executed as is. Shebangs known to work are #!/bin/sh and #!/usr/bin/env python
1391 # Deploy the notifier sidecar as an initContainer in addition to a container.
1392 # This is needed if skipReload is true, to load any notifiers defined at startup time.
1393 initNotifiers: false
1394 # Use native sidecar https://kubernetes.io/docs/concepts/workloads/pods/sidecar-containers/
1395 # restartPolicy: Always
1396 # # only applies to native sidecars
1401 # initialDelaySeconds: 5
1403 # failureThreshold: 60 # 5 minutes
1404 # Additional notifiers sidecar volume mounts
1406 # Sets the size limit of the notifier sidecar emptyDir volume
1408## Override the deployment namespace
1410namespaceOverride: ""
1411## Number of old ReplicaSets to retain
1413revisionHistoryLimit: 10
1414## Add a separate remote image renderer deployment/service
1416 deploymentStrategy: {}
1417 ## The maximum time in seconds for the image renderer Deployment to make progress before it is
1418 ## considered to be failed.
1419 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#progress-deadline-seconds
1420 progressDeadlineSeconds: null
1421 # Enable the image-renderer deployment & service
1431 # The url of remote image renderer if it is not in the same namespace with the grafana instance
1433 # The callback url of grafana instances if it is not in the same namespace with the remote image renderer
1434 renderingCallbackURL: ""
1435 # Token used for authentication between Grafana and the remote image renderer.
1437 # Use an existing secret for the image renderer token. Must contain a key named "token".
1440 # -- The Docker registry
1442 # image-renderer Image repository
1443 repository: scratch-images/test-tmp/grafana-image-renderer
1444 # image-renderer Image tag
1446 # image-renderer Image sha (optional)
1447 sha: sha256:e3cbcdf11756d974c6eab9580d197416b45ecf33c0b7e4e1c18747c9ddc8dc05
1448 # image-renderer Image pull secrets (optional)
1450 # image-renderer ImagePullPolicy
1460 # extra environment variables
1462 HTTP_HOST: "0.0.0.0"
1463 # Fixes "Error: Failed to launch the browser process!\nchrome_crashpad_handler: --database is required"
1464 XDG_CONFIG_HOME: /tmp/.chromium
1465 XDG_CACHE_HOME: /tmp/.chromium
1466 # RENDERING_ARGS: --no-sandbox,--disable-gpu,--window-size=1280x758
1467 # RENDERING_MODE: clustered
1468 # IGNORE_HTTPS_ERRORS: true
1469 ## "valueFrom" environment variable references that will be added to deployment pods. Name is templated.
1470 ## ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#envvarsource-v1-core
1471 ## Renders in container spec as:
1476 ## <value rendered as YAML>
1480 # name: configmap-name
1483 # image-renderer deployment serviceAccount
1484 serviceAccountName: ""
1485 automountServiceAccountToken: false
1486 # image-renderer deployment hostUsers
1488 # image-renderer deployment securityContext
1490 # image-renderer deployment container securityContext
1491 containerSecurityContext:
1493 type: RuntimeDefault
1496 allowPrivilegeEscalation: false
1497 readOnlyRootFilesystem: true
1498 ## image-renderer pod annotation
1500 # image-renderer deployment Host Aliases
1502 # image-renderer deployment priority class
1503 priorityClassName: ''
1504 # Path to the healthcheck endpoint. On Image Renderer v5.0.0 or newer, this is '/healthz'. Older versions use '/'.
1505 healthcheckPath: '/healthz'
1507 # Enable the image-renderer service
1509 # image-renderer service port name
1511 # image-renderer service port used by both service and deployment
1514 # Adds the appProtocol field to the image-renderer service. This allows to work with istio protocol selection. Ex: "http" or "tcp"
1517 ## If true, a ServiceMonitor CRD is created for a prometheus operator
1518 ## https://github.com/coreos/prometheus-operator
1522 # namespace: monitoring (defaults to use the namespace this chart is deployed to)
1524 # Set these to override the Prometheus global scrape interval/timeout.
1526 # scrapeTimeout: 30s
1530 # See: https://doc.crds.dev/github.com/prometheus-operator/kube-prometheus/monitoring.coreos.com/ServiceMonitor/v1@v0.11.0#spec-targetLabels
1534 # If https is enabled in Grafana, this needs to be set as 'https' to correctly configure the callback used in Grafana
1535 grafanaProtocol: http
1536 # In case a sub_path is used this needs to be added to the image renderer callback
1538 # name of the image-renderer port on the pod
1540 # number of image-renderer replica sets to keep
1541 revisionHistoryLimit: 10
1543 # Enable a NetworkPolicy to limit inbound traffic to only the created grafana pods
1545 # Enable a NetworkPolicy to limit outbound traffic to only the created grafana pods
1547 # Allow additional services to access image-renderer (eg. Prometheus operator when ServiceMonitor is enabled)
1548 extraIngressSelectors: []
1556 ## Node labels for pod assignment
1557 ## ref: https://kubernetes.io/docs/user-guide/node-selection/
1560 ## Tolerations for pod assignment
1561 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1564 ## Affinity for pod assignment (evaluated as template)
1565 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
1568 ## Use an alternate scheduler, e.g. "stork".
1569 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
1571 # schedulerName: "default-scheduler"
1573 # Extra configmaps to mount in image-renderer pods
1574 extraConfigmapMounts: []
1575 # Extra secrets to mount in image-renderer pods
1576 extraSecretMounts: []
1577 # Extra volumes to mount in image-renderer pods
1578 extraVolumeMounts: []
1579 # Extra volumes for image-renderer pods
1582 # -- networkPolicy.enabled Enable creation of NetworkPolicy resources. Only Ingress traffic is filtered for now.
1584 # --networkPolicy.allowExternal Don't require client label for connections
1585 # The Policy model to apply. When set to false, only pods with the correct
1586 # client label will have network access to grafana port defined.
1587 # When true, grafana will accept connections from any source
1588 # (with the correct destination port).
1591 # -- networkPolicy.ingress When true enables the creation
1592 # an ingress network policy
1594 # -- networkPolicy.explicitNamespacesSelector A Kubernetes LabelSelector to explicitly select namespaces from which traffic could be allowed
1595 # If explicitNamespacesSelector is missing or set to {}, only client Pods that are in the networkPolicy's namespace
1596 # and that match other criteria, the ones that have the good label, can reach the grafana.
1597 # But sometimes, we want the grafana to be accessible to clients from other namespaces, in this case, we can use this
1598 # LabelSelector to select these namespaces, note that the networkPolicy's namespace should also be explicitly added.
1604 # explicitNamespacesSelector:
1608 # - {key: role, operator: In, values: [frontend]}
1610 explicitNamespacesSelector: {}
1611 # -- networkPolicy.explicitIpBlocks List of CIDR blocks allowed as ingress sources.
1612 # Each entry must be a valid CIDR notation string (e.g. 10.0.0.0/8).
1613 # When defined, the specified CIDR ranges are added to the ingress `from` rules
1614 # using `ipBlock` entries and complement the other configured ingress sources.
1625 explicitIpBlocks: []
1627 # -- networkPolicy.egress.enabled When enabled, an egress network policy will be
1628 # created allowing grafana to connect to external data sources from kubernetes cluster.
1630 # -- networkPolicy.egress.blockDNSResolution When enabled, DNS resolution will be blocked
1631 # for all pods in the grafana namespace.
1632 blockDNSResolution: false
1633 # -- networkPolicy.egress.ports Add individual ports to be allowed by the egress
1635 # Add ports to the egress by specifying - port: <port number>
1640 # -- networkPolicy.egress.to Allow egress traffic to specific destinations
1642 # -- destinations to the egress by specifying - ipBlock: <CIDR>
1645 # - namespaceSelector:
1647 # - {key: role, operator: In, values: [grafana]}
1648# Enable backward compatibility of kubernetes where version below 1.13 doesn't have the enableServiceLinks option
1649enableKubeBackwardCompatibility: false
1650useStatefulSet: false
1651# extraObjects could be utilized to add dynamic manifests via values
1655# - apiVersion: kubernetes-client.io/v1
1656# kind: ExternalSecret
1658# name: grafana-secrets-{{ .Release.Name }}
1660# backendType: gcpSecretsManager
1662# - key: grafana-admin-password
1663# name: adminPassword
1664# Alternatively, you can use strings, which lets you use additional templating features:
1667# apiVersion: kubernetes-client.io/v1
1668# kind: ExternalSecret
1670# name: grafana-secrets-{{ .Release.Name }}
1672# backendType: gcpSecretsManager
1674# - key: grafana-admin-password
1675# name: {{ include "some-other-template" }}
1677# assertNoLeakedSecrets is a helper function defined in _helpers.tpl that checks if secret
1678# values are not exposed in the rendered grafana.ini configmap. It is enabled by default.
1680# To pass values into grafana.ini without exposing them in a configmap, use variable expansion:
1681# https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/#variable-expansion
1683# Alternatively, if you wish to allow secret values to be exposed in the rendered grafana.ini configmap,
1684# you can disable this check by setting assertNoLeakedSecrets to false.
1685assertNoLeakedSecrets: true
1686# updateMode options are:
1687# Off: n the Off update mode, the VPA recommender still analyzes resource usage and generates recommendations, but these recommendations are not automatically applied to Pods. The recommendations are only stored in the VPA object's .status field.
1688# Initial: In Initial mode, VPA only sets resource requests when Pods are first created. It does not update resources for already running Pods, even if recommendations change over time. The recommendations apply only during Pod creation.
1689# Recreate: In Recreate mode, VPA actively manages Pod resources by evicting Pods when their current resource requests differ significantly from recommendations. When a Pod is evicted, the workload controller (managing a Deployment, StatefulSet, etc) creates a replacement Pod, and the VPA admission controller applies the updated resource requests to the new Pod.
1690# InPlaceOrRecreate: In Recreate mode, VPA actively manages Pod resources by evicting Pods when their current resource requests differ significantly from recommendations. When a Pod is evicted, the workload controller (managing a Deployment, StatefulSet, etc) creates a replacement Pod, and the VPA admission controller applies the updated resource requests to the new Pod.
1691# Auto (deprecated): The Auto update mode is deprecated since VPA version 1.4.0. Use Recreate for eviction-based updates, or InPlaceOrRecreate for in-place updates with eviction fallback.
1692verticalPodAutoscaler:
1695 controlledResources:
1698 # Default safety bounds