1# Default values for pyroscope.
2# This is a YAML-formatted file.
3# Declare variables to be passed into your templates.
7 # -- Enable or disable Self profile push, useful to test
8 disableSelfProfile: true
9 # -- Kubernetes cluster domain suffix for DNS discovery
10 cluster_domain: .cluster.local.
12 repository: cgr.dev/scratch-images/test-tmp/grafana-pyroscope
13 pullPolicy: IfNotPresent
14 # Allows to override the image tag, which defaults to the appVersion in the chart metadata
15 tag: 1.18.2-r15@sha256:6b84be5612bf8cbe93dfb7362b687a045d7b3aa4dbececc863936a1fbf0158b0
20 # The following environment variables are set by the Helm chart.
21 # JAEGER_AGENT_HOST: jaeger-agent.jaeger.svc.cluster.local.
23 extraCustomEnvVars: {}
24 # The following environment variables raw form.
25 # - name: MY_NODE_NAME
28 # fieldPath: spec.nodeName
30 # -- Environment variables from secrets or configmaps to add to the pods
33 dnsPolicy: ClusterFirst
39 # Specifies whether a service account should be created
41 # Annotations to add to the service account
43 # The name of the service account to use.
44 # If not set and create is true, a name is generated using the fullname template
47 # Scrapes itself see https://grafana.com/docs/pyroscope/latest/deploy-kubernetes/helm/#optional-scrape-your-own-workloads-profiles
48 profiles.grafana.com/memory.scrape: "true"
49 profiles.grafana.com/memory.port_name: http2
50 profiles.grafana.com/cpu.scrape: "true"
51 profiles.grafana.com/cpu.port_name: http2
52 profiles.grafana.com/goroutine.scrape: "true"
53 profiles.grafana.com/goroutine.port_name: http2
54 # profiles.grafana.com/block.scrape: "true"
55 # profiles.grafana.com/mutex.scrape: "true"
67 # readOnlyRootFilesystem: true
77 headlessAnnotations: {}
88 # We usually recommend not to specify default resources and to leave this as a conscious
89 # choice for the user. This also increases chances charts run on environments with little
90 # resources, such as Minikube. If you do want to specify resources, uncomment the following
91 # lines, adjust them as necessary, and remove the curly braces after 'resources'.
93 # Note that if memory consumption is higher than you would like, you can decrease the interval
94 # that profiles are written into blocks by setting `pyroscopedb.max-block-duration` in the `extraArgs`
95 # stanza. By default, it is set to 3h - override it, for example, as below:
98 # pyroscopedb.max-block-duration: 30m
109 # -- Topology Spread Constraints
110 topologySpreadConstraints: []
111 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
112 ## If you set enabled as "True", you need :
113 ## - create a pv which above 10Gi and has same namespace with pyroscope
114 ## - keep storageClassName same with below setting
123 # app.kubernetes.io/name: pyroscope
128 # subPath to use of the data volume for the metastore persistence.
131 # subPath to use of the data volume for the shared storage used as bucket replacement.
134 # - name: backup-volume
137 extraVolumeMounts: []
139 # mountPath: /var/lib/testing
141 # - name: test-volume
142 # mountPath: /var/tmp/test-volume
143 # existingClaim: test-volume
148 # Override the PodPriorityClass
149 # priorityClassName: high
151 # run specific components separately
153 # -- Allows to override Pyroscope's configuration using structured format.
155 # -- Contains Pyroscope's configuration as a string.
156 # @default -- The config depends on other values been set, details can be found in [`values.yaml`](./values.yaml)
158 {{- if .Values.minio.enabled }}
162 endpoint: "{{ include "pyroscope.fullname" . }}-minio:9000"
163 bucket_name: {{(index .Values.minio.buckets 0).name | quote }}
164 access_key_id: {{ .Values.minio.rootUser | quote }}
165 secret_access_key: {{ .Values.minio.rootPassword | quote }}
168 # -- Allows to add tenant specific overrides to the default limit configuration.
171 # ingestion_rate_mb: 1
172 # ingestion_burst_size_mb: 2
173 # -- Grafana Agent Configuration.
176 # -- (bool) Enable v1 storage layer.
178 # -- (bool) Enable v2 storage layer.
181 # -- (float) Specifies the fraction [0:1] that should be send to the v1 write path / ingester in combined mode. 0 means no traffics is sent to ingester. 1 means 100% of requests are sent to ingester.
183 # -- (float) Specifies the fraction [0:1] that should be send to the v2 write path / segment-writer in combined mode. 0 means no traffics is sent to segment-writer. 1 means 100% of requests are sent to segment-writer.
184 segmentWriterWeight: 1.0
185 # -- (bool) Specify a time stamp from when the v2 read path should serve traffic.
187 # -- (string) Specify a time stamp from when the v2 read path should serve traffic.
188 queryBackendFrom: auto
189 # -- This flag is useful for testing, it will overwrite all pods resource statements with its contents
190 overwriteResources: {}
194 # -- Deploy unified write/read services. These endpoints will can be used no matter if the helm chart is configured as single-binary or microservices
195 deployUnifiedServices: false
197 # -- (bool) Enable micro-services deployment mode. This is recommend for larger scale deployment and allow right size each aspect of Pyroscope.
199 # -- (string) Memberlist cluster label that will be used for all members of this cluster
200 clusterLabelSuffix: -micro-services
202 # Not useful to be indivually exposed
214 store-gateway.sharding-ring.replication-factor: "3"
245 terminationGracePeriodSeconds: 600
255 terminationGracePeriodSeconds: 1200
268 # The store-gateway needs not need persistent storage, but we still run it as a StatefulSet
269 # This is to avoid having blocks of data being
278 # The store gateway can be configured to wait on startup for ring stability to be reached before it becomes
279 # ready. See the `store-gateway.sharding-ring.wait-stability-min-duration` server argument for more information.
281 # Depending on this flag and the number of tenants + blocks that need to be synced on startup, pods can take
282 # some time to become ready. This value can be used to ensure Kubernetes waits long enough and reduce errors.
283 initialDelaySeconds: 60
285 store-gateway.sharding-ring.replication-factor: "3"
305 # Not useful to be indivually exposed
337 terminationGracePeriodSeconds: 600
347 terminationGracePeriodSeconds: 1200
359 terminationGracePeriodSeconds: 1200
369 # Expect 3 metastores
370 metastore.raft.bootstrap-expect-peers: 3
371 # TODO(kolesnikovae): Update defaults.
372 adaptive-placement.max-dataset-shards: 1024
373 adaptive-placement.unit-size-bytes: 131072
374 # enable cleanup of blocks beyond retention
375 metastore.index.cleanup-interval: 1m
376 metastore.snapshot-compact-on-restore: true
404# -------------------------------------
405# Configuration for `alloy` child chart
406# -------------------------------------
413 profiles.grafana.com/memory.scrape: "true"
414 profiles.grafana.com/memory.port_name: "http-metrics"
415 profiles.grafana.com/cpu.scrape: "true"
416 profiles.grafana.com/cpu.port_name: "http-metrics"
417 profiles.grafana.com/goroutine.scrape: "true"
418 profiles.grafana.com/goroutine.port_name: "http-metrics"
419 profiles.grafana.com/service_repository: 'https://github.com/grafana/alloy'
420 profiles.grafana.com/service_git_ref: 'v1.8.1'
422 stabilityLevel: "public-preview" # This needs to be set for some of our resources until verison v1.2 is released
425 name: alloy-config-pyroscope
428# -------------------------------------
429# Configuration for `grafana-agent` child chart
430# -------------------------------------
437 profiles.grafana.com/memory.scrape: "true"
438 profiles.grafana.com/memory.port_name: "http-metrics"
439 profiles.grafana.com/cpu.scrape: "true"
440 profiles.grafana.com/cpu.port_name: "http-metrics"
441 profiles.grafana.com/goroutine.scrape: "true"
442 profiles.grafana.com/goroutine.port_name: "http-metrics"
446 name: grafana-agent-config-pyroscope
449# -------------------------------------
450# Configuration for `minio` child chart
451# -------------------------------------
455 # Minio requires 2 to 16 drives for erasure code (drivesPerNode * replicas)
456 # https://docs.min.io/docs/minio-erasure-code-quickstart-guide
457 # Since we only have 1 replica, that means 2 drives must be used.
459 rootUser: grafana-pyroscope
460 rootPassword: supersecret
462 - name: grafana-pyroscope-data
475 pathType: ImplementationSpecific
476 # Additional labels to add to the ingress resource
478 # Additional annotations to add to the ingress resource
483 # - secretName: certificate
484# ServiceMonitor configuration
486 # -- If enabled, ServiceMonitor resources for Prometheus Operator are created
488 # -- Namespace selector for ServiceMonitor resources
489 namespaceSelector: {}
490 # -- Optional expressions to match on
492 # - key: prometheus.io/service-monitor
496 # -- ServiceMonitor annotations
498 # -- Additional ServiceMonitor labels
500 # -- ServiceMonitor scrape interval
502 # -- ServiceMonitor scrape timeout in Go duration format (e.g. 15s)
504 # -- ServiceMonitor relabel configs to apply to samples before scraping
505 # https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
507 # -- ServiceMonitor metric relabel configs to apply to samples before ingestion
508 # https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint
509 metricRelabelings: []
510 # --ServiceMonitor will add labels from the service to the Prometheus metric
511 # https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#servicemonitorspec
513 # -- ServiceMonitor will use http by default, but you can pick https as well
515 # -- ServiceMonitor will use these tlsConfig settings to make the health check requests