Merge branch 'master' into monolith-gs-restructure

jm-monolith-gs-restructure
Scott Anderson 2025-06-13 13:25:10 -06:00
commit 821dcd4063
5 changed files with 3780 additions and 76 deletions

View File

@ -61,6 +61,52 @@ directory. This new directory contains artifacts associated with the specified r
---
## 20250613-1754010 {date="2025-06-11"}
### Quickstart
```yaml
spec:
package:
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20250613-1754010
```
#### Release artifacts
- [app-instance-schema.json](/downloads/clustered-release-artifacts/20250613-1754010/app-instance-schema.json)
- [example-customer.yml](/downloads/clustered-release-artifacts/20250613-1754010/example-customer.yml)
- [InfluxDB Clustered README EULA July 2024.txt](/downloads/clustered-release-artifacts/InfluxDB%20Clustered%20README%20EULA%20July%202024.txt)
### Bug Fixes
- Remove default CPU and memory limits for the Catalog service and Prometheus.
- Add time formatting checks to reject invalid custom partitioning requests.
- Ensure that an incorrect backup is not created when `pg_dump` errs during data snapshot backups.
### Changes
#### Deployment
- Add support for Prometheus v3 when using the observability feature.
- Refresh dependencies to address security vulnerabilities and improve stability.
#### Configuration
- Change the default of `INFLUXDB_IOX_CREATE_CATALOG_BACKUP_INTERVAL` from `1h`
to `4h`.
- Introduce the following environment variables to help in cases where the
object store is large enough that the the garbage collector cannot keep up
when cleaning obsolete objects:
- `INFLUXDB_IOX_GC_PRIMARY_OBJECTSTORE_PARTITIONS`
- `INFLUXDB_IOX_GC_SECONDARY_OBJECTSTORE_PARTITIONS`
> [!Note]
> Increasing these settings will add load to the object store and should not
> be modified unnecessarily.
---
## 20250508-1719206 {date="2025-05-08"}
### Quickstart

View File

@ -19,20 +19,18 @@ Pass configuration options to the `influxdb serve` server using either command
options or environment variables. Command options take precedence over
environment variables.
##### Example influxdb3 serve command options
##### Example `influxdb3 serve` command options
<!--pytest.mark.skip-->
```sh
influxdb3 serve \
--node-id node0 \
--cluster-id cluster0 \
--license-email example@email.com \
--object-store file \
--data-dir ~/.influxdb3 \
--node-id NODE_ID \
--cluster-id my-cluster-01 \
--log-filter info \
--max-http-request-size 20971520 \
--aws-allow-http
--log-filter info
```
##### Example environment variables
@ -43,10 +41,7 @@ influxdb3 serve \
export INFLUXDB3_ENTERPRISE_LICENSE_EMAIL=example@email.com
export INFLUXDB3_OBJECT_STORE=file
export INFLUXDB3_DB_DIR=~/.influxdb3
export INFLUXDB3_WRITER_IDENTIFIER_PREFIX=my-host
export LOG_FILTER=info
export INFLUXDB3_MAX_HTTP_REQUEST_SIZE=20971520
export AWS_ALLOW_HTTP=true
influxdb3 serve
```
@ -60,8 +55,13 @@ influxdb3 serve
- [license-file](#license-file)
- [mode](#mode)
- [node-id](#node-id)
- [node-id-from-env](#node-id-from-env)
- [object-store](#object-store)
- [query-file-limit](#query-file-limit)
- [tls-key](#tls-key)
- [tls-cert](#tls-cert)
- [tls-minimum-versions](#tls-minimum-version)
- [without-auth](#without-auth)
- [disable-authz](#disable-authz)
- [AWS](#aws)
- [aws-access-key-id](#aws-access-key-id)
- [aws-secret-access-key](#aws-secret-access-key)
@ -121,9 +121,6 @@ influxdb3 serve
- [wal-snapshot-size](#wal-snapshot-size)
- [wal-max-write-buffer-size](#wal-max-write-buffer-size)
- [snapshotted-wal-files-to-keep](#snapshotted-wal-files-to-keep)
- [Replication](#replication)
- [read-from-node-ids](#read-from-node-ids)
- [replication-interval](#replication-interval)
- [Compaction](#compaction)
- [compaction-row-limit](#compaction-row-limit)
- [compaction-max-num-files-per-plan](#compaction-max-num-files-per-plan)
@ -135,11 +132,14 @@ influxdb3 serve
- [parquet-mem-cache-size](#parquet-mem-cache-size)
- [parquet-mem-cache-prune-percentage](#parquet-mem-cache-prune-percentage)
- [parquet-mem-cache-prune-interval](#parquet-mem-cache-prune-interval)
- [disable-parquet-mem-cache](#disable-parquet-mem-cache)
- [parquet-mem-cache-query-path-duration](#parquet-mem-cache-query-path-duration)
- [disable-parquet-mem-cache](#disable-parquet-mem-cache)
- [last-cache-eviction-interval](#last-cache-eviction-interval)
- [last-value-cache-disable-from-history](#last-value-cache-disable-from-history)
- [distinct-cache-eviction-interval](#distinct-cache-eviction-interval)
- [Processing engine](#processing-engine)
- [distinct-value-cache-disable-from-history](#distinct-value-cache-disable-from-history)
- [query-file-limit](#query-file-limit)
- [Processing Engine](#processing-engine)
- [plugin-dir](#plugin-dir)
- [virtual-env-location](#virtual-env-location)
- [package-manager](#package-manager)
@ -164,7 +164,7 @@ This value must be different than the [`--node-id`](#node-id) value.
| influxdb3 serve option | Environment variable |
| :--------------------- | :--------------------------------- |
| `--cluster-id` | `INFLUXDB3_ENTERPRISE_my-cluster-01` |
| `--cluster-id` | `INFLUXDB3_ENTERPRISE_CLUSTER_ID` |
---
@ -235,6 +235,25 @@ configuration--for example, the same bucket.
| :--------------------- | :--------------------------------- |
| `--node-id` | `INFLUXDB3_NODE_IDENTIFIER_PREFIX` |
#### node-id-from-env
Specifies the node identifier used as a prefix in all object store file paths.
Takes the name of an environment variable as an argument and uses the value of that environment variable as the node identifier.
This option cannot be used with the `--node-id` option.
| influxdb3 serve option | Environment variable |
| :--------------------- | :----------------------------------- |
| `--node-id-from-env` | `INFLUXDB3_NODE_IDENTIFIER_FROM_ENV` |
##### Example using --node-id-from-env
```bash
export DATABASE_NODE=node0 && influxdb3 serve \
--node-id-from-env DATABASE_NODE \
--cluster-id cluster0 \
--object-store file \
--data-dir ~/.influxdb3/data
---
#### object-store
@ -255,26 +274,50 @@ This option supports the following values:
---
#### query-file-limit
#### tls-key
Limits the number of Parquet files a query can access.
If a query attempts to read more than this limit, InfluxDB returns an error.
The path to a key file for TLS to be enabled.
**Default:** `432`
| influxdb3 serve option | Environment variable |
| :--------------------- | :--------------------- |
| `--tls-key` | `INFLUXDB3_TLS_KEY` |
You can increase this limit to allow more files to be queried, but be aware of
the following side-effects:
---
- Degraded query performance for queries that read more Parquet files
- Increased memory usage
- Your system potentially killing the `influxdb3` process due to Out-of-Memory
(OOM) errors
- If using object storage to store data, many GET requests to access the data
(as many as 2 requests per file)
#### tls-cert
The path to a cert file for TLS to be enabled.
| influxdb3 serve option | Environment variable |
| :--------------------- | :--------------------- |
| `--tls-cert` | `INFLUXDB3_TLS_CERT` |
---
#### tls-minimum-version
The minimum version for TLS.
Valid values are `tls-1.2` or `tls-1.3`.
Default is `tls-1.2`.
| influxdb3 serve option | Environment variable |
| :---------------------- | :----------------------- |
| `--tls-minimum-version` | `INFLUXDB3_TLS_MINIMUM_VERSION` |
---
#### without-auth
Disables authentication for all server actions (CLI commands and API requests).
The server processes all requests without requiring tokens or authentication.
---
#### disable-authz
Optionally disable authz by passing in a comma separated list of resources.
Valid values are `health`, `ping`, and `metrics`.
| influxdb3 serve option | Environment variable |
| :--------------------- | :--------------------------- |
| `--query-file-limit` | `INFLUXDB3_QUERY_FILE_LIMIT` |
---
@ -935,35 +978,6 @@ they are deleted when the number of snapshotted WAL files exceeds this number.
---
### Replication
- [read-from-node-ids](#read-from-node-ids)
- [replication-interval](#replication-interval)
#### read-from-node-ids
Specifies a comma-separated list of writer identifier prefixes (`node-id`s) to
read WAL files from. [env: =]
| influxdb3 serve option | Environment variable |
| :--------------------- | :------------------------------ |
| `--read-from-node-ids` | `INFLUXDB3_ENTERPRISE_READ_FROM_WRITER_IDS` |
---
#### replication-interval
Defines the interval at which each replica specified in the
`read-from-node-ids` option is replicated.
**Default:** `250ms`
| influxdb3 serve option | Environment variable |
| :----------------------- | :------------------------------------------ |
| `--replication-interval` | `INFLUXDB3_ENTERPRISE_REPLICATION_INTERVAL` |
---
### Compaction
- [compaction-row-limit](#compaction-row-limit)
@ -1114,6 +1128,28 @@ Sets the interval to check if the in-memory Parquet cache needs to be pruned.
---
#### parquet-mem-cache-query-path-duration
A [duration](/influxdb3/enterprise/reference/glossary/#duration) that specifies
the time window for caching recent Parquet files in memory. Default is `5h`.
Only files containing data with a timestamp between `now` and `now - duration`
are cached when accessed during queries--for example, with the default `5h` setting:
- Current time: `2024-06-10 15:00:00`
- Cache window: Last 5 hours (`2024-06-10 10:00:00` to now)
If a query requests data from `2024-06-09` (old) and `2024-06-10 14:00` (recent):
- **Cached**: Parquet files with data from `2024-06-10 14:00` (within 5-hour window)
- **Not cached**: Parquet files with data from `2024-06-09` (outside 5-hour window)
| influxdb3 serve option | Environment variable |
| :---------------------------- | :------------------------------------ |
| `--parquet-mem-cache-query-path-duration` | `INFLUXDB3_PARQUET_MEM_CACHE_QUERY_PATH_DURATION` |
---
#### disable-parquet-mem-cache
Disables the in-memory Parquet cache. By default, the cache is enabled.
@ -1124,19 +1160,6 @@ Disables the in-memory Parquet cache. By default, the cache is enabled.
---
#### parquet-mem-cache-query-path-duration
Specifies the duration to check if Parquet files pulled in query path
require caching, expressed as a human-readable duration (starting from _now_)--for example: `5h`, `3d`.
**Default:** `5h`
| influxdb3 serve option | Environment variable |
| :---------------------------- | :------------------------------------ |
| `--parquet-mem-cache-query-path-duration` | `INFLUXDB3_PARQUET_MEM_CACHE_QUERY_PATH_DURATION` |
---
#### last-cache-eviction-interval
Specifies the interval to evict expired entries from the Last-N-Value cache,
@ -1150,6 +1173,17 @@ expressed as a human-readable duration--for example: `20s`, `1m`, `1h`.
---
#### last-value-cache-disable-from-history
Disables populating the last-N-value cache from historical data.
If disabled, the cache is still populated with data from the write-ahead log (WAL).
| influxdb3 serve option | Environment variable |
| :---------------------------------------- | :------------------------------------------------ |
| `--last-value-cache-disable-from-history` | `INFLUXDB3_LAST_VALUE_CACHE_DISABLE_FROM_HISTORY` |
---
#### distinct-cache-eviction-interval
Specifies the interval to evict expired entries from the distinct value cache,
@ -1163,7 +1197,28 @@ expressed as a human-readable duration--for example: `20s`, `1m`, `1h`.
---
### Processing engine
#### distinct-value-cache-disable-from-history
Disables populating the distinct value cache from historical data.
If disabled, the cache is still populated with data from the write-ahead log (WAL).
| influxdb3 serve option | Environment variable |
| :-------------------------------------------- | :---------------------------------------------------- |
| `--distinct-value-cache-disable-from-history` | `INFLUXDB3_DISTINCT_VALUE_CACHE_DISABLE_FROM_HISTORY` |
---
#### query-file-limit
Limits the number of Parquet files a query can access.
If a query attempts to read more than this limit, {{% product-name %}} returns an error.
| influxdb3 serve option | Environment variable |
| :--------------------- | :--------------------------- |
| `--query-file-limit` | `INFLUXDB3_QUERY_FILE_LIMIT` |
---
### Processing Engine
- [plugin-dir](#plugin-dir)
- [virtual-env-location](#virtual-env-location)
@ -1186,7 +1241,7 @@ engine uses.
| influxdb3 serve option | Environment variable |
| :----------------------- | :--------------------- |
| `--virtual-env-location` | `VIRTUAL_ENV_LOCATION` |
| `--virtual-env-location` | `VIRTUAL_ENV` |
---

View File

@ -62,7 +62,9 @@
<li><a class="reddit" href="https://reddit.com/r/influxdb" target="_blank">InfluxDB Subreddit</a></li>
</ul>
{{ if not (in $supportBlacklist $product) }}
<p><strong>Customers with an annual or support contract</strong> can <a href="https://support.influxdata.com/">contact InfluxData Support</a>.</p>
<p><strong>Customers with an annual or support contract</strong> can <a href="https://support.influxdata.com/">contact InfluxData Support</a>.
<strong>Customers using a trial license</strong> can email trial@influxdata.com for assistance.</p>
{{ end }}
</div>
<div class="actions">

View File

@ -0,0 +1,342 @@
# yaml-language-server: $schema=app-instance-schema.json
apiVersion: kubecfg.dev/v1alpha1
kind: AppInstance
metadata:
name: influxdb
namespace: influxdb
spec:
# One or more secrets that are used to pull the images from an authenticated registry.
# This will either be the secret provided to you, if using our registry, or a secret for your own registry
# if self-hosting the images.
imagePullSecrets:
- name: <name of the secret>
package:
# The version of the clustered package that will be used.
# This determines the version of all of the individual components.
# When a new version of the product is released, this version should be updated and any
# new config options should be updated below.
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:20250613-1754010
apiVersion: influxdata.com/v1alpha1
spec:
# # Provides a way to pass down hosting environment specific configuration, such as an role ARN when using EKS IRSA.
# # This section contains three multually-exclusive "blocks". Uncomment the block named after the hosting environment
# # you run: "aws", "openshift" or "gke".
# hostingEnvironment:
# # # Uncomment this block if you're running in EKS.
# # aws:
# # eksRoleArn: 'arn:aws:iam::111111111111:role/your-influxdb-clustered-role'
# #
# # # Uncomment this block if you're running inside OpenShift.
# # # Note: there are currently no OpenShift-specific parameters. You have to pass an empty object
# # # as a marker that you're choosing OpenShift as hosting environment.
# # openshift: {}
# #
# # # Uncomment this block if you're running in GKE:
# # gke:
# # # Authenticate to Google Cloud services via workload identity, this
# # # annotates the 'iox' ServiceAccount with the role name you specify.
# # # NOTE: This setting just enables GKE specific authentication mechanism,
# # # You still need to enable `spec.objectStore.google` below if you want to use GCS.
# # workloadIdentity:
# # # Google Service Account name to use for the workload identity.
# # serviceAccountEmail: <service-account>@<project-name>.iam.gserviceaccount.com
catalog:
# A postgresql style DSN that points at a postgresql compatible database.
# eg: postgres://[user[:password]@][netloc][:port][/dbname][?param1=value1&...]
dsn:
valueFrom:
secretKeyRef:
name: <your secret name here>
key: <the key in the secret that contains the dsn>
# images:
# # This can be used to override a specific image name with its FQIN
# # (Fully Qualified Image Name) for testing. eg.
# overrides:
# - name: influxdb2-artifacts/iox/iox
# newFQIN: mycompany/test-iox-build:aninformativetag
#
# # Set this variable to the prefix of your internal registry. This will be prefixed to all expected images.
# # eg. us-docker.pkg.dev/iox:latest => registry.mycompany.io/us-docker.pkg.dev/iox:latest
# registryOverride: <the domain name portion of your registry (registry.mycompany.io in the example above)>
objectStore:
# Bucket that the parquet files will be stored in
bucket: <bucket name>
# Uncomment one of the following (s3, azure)
# to enable the configuration of your object store
s3:
# URL for S3 Compatible object store
endpoint: <S3 url>
# Set to true to allow communication over HTTP (instead of HTTPS)
allowHttp: "false"
# S3 Access Key
# This can also be provided as a valueFrom: secretKeyRef:
accessKey:
value: <your access key>
# S3 Secret Key
# This can also be provided as a valueFrom: secretKeyRef:
secretKey:
value: <your secret>
# This value is required for AWS S3, it may or may not be required for other providers.
region: <region>
# azure:
# Azure Blob Storage Access Key
# This can also be provided as a valueFrom: secretKeyRef:
# accessKey:
# value: <your access key>
# Azure Blob Storage Account
# This can also be provided as a valueFrom: secretKeyRef:
# account:
# value: <your access key>
# There are two main ways you can access a Google:
#
# a) GKE Workload Identity: configure workload identity in the top level `hostingEnvironment.gke` section.
# b) Explicit service account secret (JSON) file: use the `serviceAccountSecret` field here
#
# If you pick (a) you may not need to uncomment anything else in this section,
# but you still need to tell influxdb that you intend to use Google Cloud Storage.
# so you need to specify an empty object. Uncomment the following line:
#
# google: {}
#
#
# If you pick (b), uncomment the following block:
#
# google:
# # If you're authenticating to Google Cloud service using a Service Account credentials file, as opposed
# # as to use workload identity (see above) you need to provide a reference to a k8s secret containing the credentials file.
# serviceAccountSecret:
# # Kubernetes Secret name containing the credentials for a Google IAM Service Account.
# name: <secret name>
# # The key within the Secret containing the credentials.
# key: <key name>
# Parameters to tune observability configuration, such as Prometheus ServiceMonitor's.
observability: {}
# retention: 12h
# serviceMonitor:
# interval: 10s
# scrapeTimeout: 30s
# Ingester pods have a volume attached.
ingesterStorage:
# (Optional) Set the storage class. This will differ based on the K8s environment and desired storage characteristics.
# If not set, the default storage class will be used.
# storageClassName: <storage-class>
# Set the storage size (minimum 2Gi recommended)
storage: <storage-size>
# Monitoring pods have a volume attached.
monitoringStorage:
# (Optional) Set the storage class. This will differ based on the K8s environment and desired storage characteristics.
# If not set, the default storage class will be used.
# storageClassName: <storage-class>
# Set the storage size (minimum 10Gi recommended)
storage: <storage-size>
# Uncomment the follow block if using our provided Ingress.
#
# We currently only support the ingress NGINX ingress controller: https://github.com/kubernetes/ingress-nginx
#
# ingress:
# hosts:
# # This is the host on which you will access Influxdb 3.0, for both reads and writes
# - <influxdb-host>
# (Optional)
# The name of the Kubernetes Secret containing a TLS certificate, this should exist in the same namespace as the Clustered installation.
# If you are using cert-manager, enter a name for the Secret it should create.
# tlsSecretName: <secret-name>
# http:
# # Usually you have only one ingress controller installed in a given cluster.
# # In case you have more than one, you have to specify the "class name" of the ingress controller you want to use
# className: nginx
# grpc:
# # Usually you have only one ingress controller installed in a given cluster.
# # In case you have more than one, you have to specify the "class name" of the ingress controller you want to use
# className: nginx
#
# Enables specifying which 'type' of Ingress to use, alongside whether to place additional annotations
# onto those objects, this is useful for third party software in your environment, such as cert-manager.
# template:
# apiVersion: 'route.openshift.io/v1'
# kind: 'Route'
# metadata:
# annotations:
# 'example-annotation': 'annotation-value'
# Enables specifying customizations for the various components in InfluxDB 3.0.
# components:
# # router:
# # template:
# # containers:
# # iox:
# # env:
# # INFLUXDB_IOX_MAX_HTTP_REQUESTS: "5000"
# # nodeSelector:
# # disktype: ssd
# # tolerations:
# # - effect: NoSchedule
# # key: example
# # operator: Exists
# # Common customizations for all components go in a pseudo-component called "common"
# # common:
# # template:
# # # Metadata contains custom annotations (and labels) to be added to a component. E.g.:
# # metadata:
# # annotations:
# # telegraf.influxdata.com/class: "foo"
# Example of setting nodeAffinity for the querier component to ensure it runs on nodes with specific labels
# components:
# # querier:
# # template:
# # affinity:
# # nodeAffinity:
# # requiredDuringSchedulingIgnoredDuringExecution:
# # Node must have these labels to be considered for scheduling
# # nodeSelectorTerms:
# # - matchExpressions:
# # - key: required
# # operator: In
# # values:
# # - ssd
# # preferredDuringSchedulingIgnoredDuringExecution:
# # Scheduler will prefer nodes with these labels but they're not required
# # - weight: 1
# # preference:
# # matchExpressions:
# # - key: preferred
# # operator: In
# # values:
# # - postgres
# Example of setting podAntiAffinity for the querier component to ensure it runs on nodes with specific labels
# components:
# # querier:
# # template:
# # affinity:
# # podAntiAffinity:
# # requiredDuringSchedulingIgnoredDuringExecution:
# # Ensures that the pod will not be scheduled on a node if another pod matching the labelSelector is already running there
# # - labelSelector:
# # matchExpressions:
# # - key: app
# # operator: In
# # values:
# # - querier
# # topologyKey: "kubernetes.io/hostname"
# # preferredDuringSchedulingIgnoredDuringExecution:
# # Scheduler will prefer not to schedule pods together but may do so if necessary
# # - weight: 1
# # podAffinityTerm:
# # labelSelector:
# # matchExpressions:
# # - key: app
# # operator: In
# # values:
# # - querier
# # topologyKey: "kubernetes.io/hostname"
# Uncomment the following block to tune the various pods for their cpu/memory/replicas based on workload needs.
# Only uncomment the specific resources you want to change, anything uncommented will use the package default.
# (You can read more about k8s resources and limits in https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits)
#
# resources:
# # The ingester handles data being written
# ingester:
# requests:
# cpu: <cpu amount>
# memory: <ram amount>
# replicas: <num replicas> # The default for ingesters is 3 to increase availability
#
# # optionally you can specify the resource limits which improves isolation.
# # (see https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits)
# # limits:
# # cpu: <cpu amount>
# # memory: <ram amount>
# # The compactor reorganizes old data to improve query and storage efficiency.
# compactor:
# requests:
# cpu: <cpu amount>
# memory: <ram amount>
# replicas: <num replicas> # the default is 1
# # The querier handles querying data.
# querier:
# requests:
# cpu: <cpu amount>
# memory: <ram amount>
# replicas: <num replicas> # the default is 3
# # The router performs some api routing.
# router:
# requests:
# cpu: <cpu amount>
# memory: <ram amount>
# replicas: <num replicas> # the default is 3
admin:
# The list of users to grant access to Clustered via influxctl
users:
# First name of user
- firstName: <first-name>
# Last name of user
lastName: <last-name>
# Email of user
email: <email>
# The ID that the configured Identity Provider uses for the user in oauth flows
id: <id>
# Optional list of user groups to assign to the user, rather than the default groups. The following groups are currently supported: Admin, Auditor, Member
userGroups:
- <group-name>
# The dsn for the postgres compatible database (note this is the same as defined above)
dsn:
valueFrom:
secretKeyRef:
name: <secret name>
key: <dsn key>
# The identity provider to be used e.g. "keycloak", "auth0", "azure", etc
# Note for Azure Active Directory it must be exactly "azure"
identityProvider: <identity-provider>
# The JWKS endpoint provided by the Identity Provider
jwksEndpoint: <endpoint>
# # This (optional) section controls how InfluxDB issues outbound requests to other services
# egress:
# # If you're using a custom CA you will need to specify the full custom CA bundle here.
# #
# # NOTE: the custom CA is currently only honoured for outbound requests used to obtain
# # the JWT public keys from your identiy provider (see `jwksEndpoint`).
# customCertificates:
# valueFrom:
# configMapKeyRef:
# key: ca.pem
# name: custom-ca
# We also include the ability to enable some features that are not yet ready for general availability
# or for which we don't yet have a proper place to turn on an optional feature in the configuration file.
# To turn on these you should include the name of the feature flag in the `featureFlag` array.
#
# featureFlags:
# # Uncomment to install a Grafana deployment.
# # Depends on one of the prometheus features being deployed.
# # - grafana
# # The following 2 flags should be uncommented for k8s API 1.21 support.
# # Note that this is an experimental configuration.
# # - noMinReadySeconds
# # - noGrpcProbes