From e9903651348d1f94e1ab9830aa78229e90773fcf Mon Sep 17 00:00:00 2001 From: "botty-mcbottington[bot]" <168950816+botty-mcbottington[bot]@users.noreply.github.com> Date: Sun, 6 Sep 2026 18:24:33 +0000 Subject: [PATCH] chore(deps): update helm release kube-prometheus-stack to v89 --- docs/examples/src/charts/charts.k | 2 +- .../monitoring_coreos_com_v1_alertmanager.k | 13 +- .../v1/monitoring_coreos_com_v1_pod_monitor.k | 19 +- .../api/v1/monitoring_coreos_com_v1_probe.k | 18 +- .../v1/monitoring_coreos_com_v1_prometheus.k | 130 +- ...monitoring_coreos_com_v1_service_monitor.k | 28 +- .../monitoring_coreos_com_v1_thanos_ruler.k | 14 +- ..._coreos_com_v1alpha1_alertmanager_config.k | 47 +- ...ing_coreos_com_v1alpha1_prometheus_agent.k | 103 +- ...toring_coreos_com_v1alpha1_scrape_config.k | 45 +- .../src/charts/kube_prometheus_stack/chart.k | 4 +- .../kube_prometheus_stack/values.schema.json | 1198 +++++++++++++++-- .../kube_prometheus_stack/values.schema.k | 953 ++++++++++++- 13 files changed, 2379 insertions(+), 195 deletions(-) diff --git a/docs/examples/src/charts/charts.k b/docs/examples/src/charts/charts.k index fd98c0e7..b0a040f7 100644 --- a/docs/examples/src/charts/charts.k +++ b/docs/examples/src/charts/charts.k @@ -29,7 +29,7 @@ charts: helm.Charts = { crdPaths = ["**/crds/crds/*.yaml"] repoURL = "https://prometheus-community.github.io/helm-charts" schemaGenerator = "AUTO" - targetRevision = "86.2.2" + targetRevision = "89.2.3" } simple_chart: { chart = "simple-chart" diff --git a/docs/examples/src/charts/kube_prometheus_stack/api/v1/monitoring_coreos_com_v1_alertmanager.k b/docs/examples/src/charts/kube_prometheus_stack/api/v1/monitoring_coreos_com_v1_alertmanager.k index 12ef79d7..a038b610 100644 --- a/docs/examples/src/charts/kube_prometheus_stack/api/v1/monitoring_coreos_com_v1_alertmanager.k +++ b/docs/examples/src/charts/kube_prometheus_stack/api/v1/monitoring_coreos_com_v1_alertmanager.k @@ -1641,7 +1641,7 @@ schema MonitoringCoreosComV1AlertmanagerSpecAlertmanagerConfigurationGlobalHTTPC check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1AlertmanagerSpecAlertmanagerConfigurationGlobalHTTPConfigOauth2ClientID: r""" @@ -4253,7 +4253,6 @@ schema MonitoringCoreosComV1AlertmanagerSpecContainersItems0SecurityContext: procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. - This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows. readOnlyRootFilesystem : bool, default is Undefined, optional Whether this container has a read-only root filesystem. @@ -5814,7 +5813,6 @@ schema MonitoringCoreosComV1AlertmanagerSpecInitContainersItems0SecurityContext: procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. - This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows. readOnlyRootFilesystem : bool, default is Undefined, optional Whether this container has a read-only root filesystem. @@ -8506,7 +8504,7 @@ schema MonitoringCoreosComV1AlertmanagerSpecVolumesItems0Image: A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. - The volume will be mounted read-only (ro) and non-executable files (noexec). + The volume will be mounted read-only (ro). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33. The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type. @@ -8661,8 +8659,7 @@ schema MonitoringCoreosComV1AlertmanagerSpecVolumesItems0PortworxVolume: r""" portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type - are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate - is on. + are redirected to the pxd.portworx.com CSI driver. Attributes ---------- @@ -9451,6 +9448,10 @@ schema MonitoringCoreosComV1AlertmanagerSpecWeb: timeout?: int tlsConfig?: MonitoringCoreosComV1AlertmanagerSpecWebTLSConfig + check: + getConcurrency >= 0 if getConcurrency not in [None, Undefined] + timeout >= 0 if timeout not in [None, Undefined] + schema MonitoringCoreosComV1AlertmanagerSpecWebHTTPConfig: r""" httpConfig defines HTTP parameters for web server. diff --git a/docs/examples/src/charts/kube_prometheus_stack/api/v1/monitoring_coreos_com_v1_pod_monitor.k b/docs/examples/src/charts/kube_prometheus_stack/api/v1/monitoring_coreos_com_v1_pod_monitor.k index 3d47ff34..f350154d 100644 --- a/docs/examples/src/charts/kube_prometheus_stack/api/v1/monitoring_coreos_com_v1_pod_monitor.k +++ b/docs/examples/src/charts/kube_prometheus_stack/api/v1/monitoring_coreos_com_v1_pod_monitor.k @@ -163,8 +163,15 @@ schema MonitoringCoreosComV1PodMonitorSpec: check: _regex_match(str(bodySizeLimit), r"(^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$") if bodySizeLimit + keepDroppedTargets >= 0 if keepDroppedTargets not in [None, Undefined] + labelLimit >= 0 if labelLimit not in [None, Undefined] + labelNameLengthLimit >= 0 if labelNameLengthLimit not in [None, Undefined] + labelValueLengthLimit >= 0 if labelValueLengthLimit not in [None, Undefined] + nativeHistogramBucketLimit >= 0 if nativeHistogramBucketLimit not in [None, Undefined] _regex_match(str(nativeHistogramMinBucketFactor), r"^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$") if nativeHistogramMinBucketFactor + sampleLimit >= 0 if sampleLimit not in [None, Undefined] len(scrapeClass) >= 1 if scrapeClass + targetLimit >= 0 if targetLimit not in [None, Undefined] schema MonitoringCoreosComV1PodMonitorSpecAttachMetadata: r""" @@ -181,6 +188,10 @@ schema MonitoringCoreosComV1PodMonitorSpecAttachMetadata: The Prometheus service account must have the `list` and `watch` permissions on the `Nodes` objects. + + Node metadata labels are not automatically added to scraped metrics. They are + exposed as `__meta_kubernetes_node_*` labels and can be copied to timeseries + with relabeling configuration. """ node?: bool @@ -535,6 +546,9 @@ schema MonitoringCoreosComV1PodMonitorSpecPodMetricsEndpointsItems0MetricRelabel sourceLabels?: [str] targetLabel?: str + check: + modulus >= 0 if modulus not in [None, Undefined] + schema MonitoringCoreosComV1PodMonitorSpecPodMetricsEndpointsItems0Oauth2: r""" oauth2 defines the OAuth2 settings used by the client. @@ -591,7 +605,7 @@ schema MonitoringCoreosComV1PodMonitorSpecPodMetricsEndpointsItems0Oauth2: check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1PodMonitorSpecPodMetricsEndpointsItems0Oauth2ClientID: r""" @@ -940,6 +954,9 @@ schema MonitoringCoreosComV1PodMonitorSpecPodMetricsEndpointsItems0RelabelingsIt sourceLabels?: [str] targetLabel?: str + check: + modulus >= 0 if modulus not in [None, Undefined] + schema MonitoringCoreosComV1PodMonitorSpecPodMetricsEndpointsItems0TLSConfig: r""" tlsConfig defines the TLS configuration used by the client. diff --git a/docs/examples/src/charts/kube_prometheus_stack/api/v1/monitoring_coreos_com_v1_probe.k b/docs/examples/src/charts/kube_prometheus_stack/api/v1/monitoring_coreos_com_v1_probe.k index 1600e57d..ad0ac00e 100644 --- a/docs/examples/src/charts/kube_prometheus_stack/api/v1/monitoring_coreos_com_v1_probe.k +++ b/docs/examples/src/charts/kube_prometheus_stack/api/v1/monitoring_coreos_com_v1_probe.k @@ -167,10 +167,17 @@ schema MonitoringCoreosComV1ProbeSpec: check: _regex_match(str(interval), r"^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$") if interval + keepDroppedTargets >= 0 if keepDroppedTargets not in [None, Undefined] + labelLimit >= 0 if labelLimit not in [None, Undefined] + labelNameLengthLimit >= 0 if labelNameLengthLimit not in [None, Undefined] + labelValueLengthLimit >= 0 if labelValueLengthLimit not in [None, Undefined] + nativeHistogramBucketLimit >= 0 if nativeHistogramBucketLimit not in [None, Undefined] _regex_match(str(nativeHistogramMinBucketFactor), r"^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$") if nativeHistogramMinBucketFactor len(params) >= 1 if params + sampleLimit >= 0 if sampleLimit not in [None, Undefined] len(scrapeClass) >= 1 if scrapeClass _regex_match(str(scrapeTimeout), r"^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$") if scrapeTimeout + targetLimit >= 0 if targetLimit not in [None, Undefined] schema MonitoringCoreosComV1ProbeSpecAuthorization: r""" @@ -356,6 +363,9 @@ schema MonitoringCoreosComV1ProbeSpecMetricRelabelingsItems0: sourceLabels?: [str] targetLabel?: str + check: + modulus >= 0 if modulus not in [None, Undefined] + schema MonitoringCoreosComV1ProbeSpecOauth2: r""" oauth2 defines the OAuth2 settings used by the client. @@ -412,7 +422,7 @@ schema MonitoringCoreosComV1ProbeSpecOauth2: check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1ProbeSpecOauth2ClientID: r""" @@ -1054,6 +1064,9 @@ schema MonitoringCoreosComV1ProbeSpecTargetsIngressRelabelingConfigsItems0: sourceLabels?: [str] targetLabel?: str + check: + modulus >= 0 if modulus not in [None, Undefined] + schema MonitoringCoreosComV1ProbeSpecTargetsIngressSelector: r""" selector to select the Ingress objects. @@ -1165,6 +1178,9 @@ schema MonitoringCoreosComV1ProbeSpecTargetsStaticConfigRelabelingConfigsItems0: sourceLabels?: [str] targetLabel?: str + check: + modulus >= 0 if modulus not in [None, Undefined] + schema MonitoringCoreosComV1ProbeStatus: r""" status defines the status subresource. It is under active development and is updated only when the diff --git a/docs/examples/src/charts/kube_prometheus_stack/api/v1/monitoring_coreos_com_v1_prometheus.k b/docs/examples/src/charts/kube_prometheus_stack/api/v1/monitoring_coreos_com_v1_prometheus.k index 07a6267a..08381dde 100644 --- a/docs/examples/src/charts/kube_prometheus_stack/api/v1/monitoring_coreos_com_v1_prometheus.k +++ b/docs/examples/src/charts/kube_prometheus_stack/api/v1/monitoring_coreos_com_v1_prometheus.k @@ -118,8 +118,15 @@ schema MonitoringCoreosComV1PrometheusSpec: It requires Prometheus >= v3.4.0. disableCompaction : bool, default is Undefined, optional disableCompaction when true, the Prometheus compaction is disabled. - When `spec.thanos.objectStorageConfig` or `spec.objectStorageConfigFile` are defined, the operator automatically - disables block compaction to avoid race conditions during block uploads (as the Thanos documentation recommends). + + When `spec.thanos.objectStorageConfig` or `spec.thanos.objectStorageConfigFile` are defined, the operator's + default handling depends on the Prometheus and Thanos sidecar versions: + - With Prometheus < v3.9.0 or a Thanos sidecar < v0.41.0, block compaction is disabled to avoid race + conditions during block uploads (as the Thanos documentation recommends). + - With Prometheus >= v3.9.0 and a Thanos sidecar >= v0.41.0, local compaction is kept enabled and coordinated + with the sidecar through the shipper meta file (`--storage.tsdb.delay-compact-file.path`), so blocks are only + compacted after they have been uploaded. + Setting this field to true always disables local compaction regardless of the versions. dnsConfig : MonitoringCoreosComV1PrometheusSpecDNSConfig, default is Undefined, optional dns config dnsPolicy : str, default is Undefined, optional @@ -603,7 +610,7 @@ schema MonitoringCoreosComV1PrometheusSpec: shard retention policy shardingStrategy : MonitoringCoreosComV1PrometheusSpecShardingStrategy, default is Undefined, optional sharding strategy - shards : int, default is Undefined, optional + shards : int, default is 1, optional shards defines the number of shards to distribute the scraped targets onto. `spec.replicas` multiplied by `spec.shards` is the total number of Pods @@ -630,6 +637,8 @@ schema MonitoringCoreosComV1PrometheusSpec: You can also disable sharding on a specific target by setting the `__tmp_disable_sharding` label with relabeling configuration. When the label value isn't empty, all Prometheus shards will scrape the target. + + Default: 1 storage : MonitoringCoreosComV1PrometheusSpecStorage, default is Undefined, optional storage tag : str, default is Undefined, optional @@ -793,7 +802,7 @@ schema MonitoringCoreosComV1PrometheusSpec: sha?: str shardRetentionPolicy?: MonitoringCoreosComV1PrometheusSpecShardRetentionPolicy shardingStrategy?: MonitoringCoreosComV1PrometheusSpecShardingStrategy - shards?: int + shards?: int = 1 storage?: MonitoringCoreosComV1PrometheusSpecStorage tag?: str targetLimit?: int @@ -814,18 +823,30 @@ schema MonitoringCoreosComV1PrometheusSpec: _regex_match(str(bodySizeLimit), r"(^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$") if bodySizeLimit all enableFeatures in enableFeatures {len(enableFeatures) >= 1 if enableFeatures not in [None, Undefined]} if enableFeatures _regex_match(str(enforcedBodySizeLimit), r"(^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$") if enforcedBodySizeLimit + enforcedKeepDroppedTargets >= 0 if enforcedKeepDroppedTargets not in [None, Undefined] + enforcedLabelLimit >= 0 if enforcedLabelLimit not in [None, Undefined] + enforcedLabelNameLengthLimit >= 0 if enforcedLabelNameLengthLimit not in [None, Undefined] + enforcedLabelValueLengthLimit >= 0 if enforcedLabelValueLengthLimit not in [None, Undefined] + enforcedSampleLimit >= 0 if enforcedSampleLimit not in [None, Undefined] + enforcedTargetLimit >= 0 if enforcedTargetLimit not in [None, Undefined] _regex_match(str(evaluationInterval), r"^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$") if evaluationInterval + keepDroppedTargets >= 0 if keepDroppedTargets not in [None, Undefined] + labelLimit >= 0 if labelLimit not in [None, Undefined] + labelNameLengthLimit >= 0 if labelNameLengthLimit not in [None, Undefined] + labelValueLengthLimit >= 0 if labelValueLengthLimit not in [None, Undefined] maximumStartupDurationSeconds >= 60 if maximumStartupDurationSeconds not in [None, Undefined] minReadySeconds >= 0 if minReadySeconds not in [None, Undefined] len(remoteWriteReceiverMessageVersions) >= 1 if remoteWriteReceiverMessageVersions _regex_match(str(retention), r"^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$") if retention _regex_match(str(retentionSize), r"(^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$") if retentionSize _regex_match(str(ruleQueryOffset), r"^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$") if ruleQueryOffset + sampleLimit >= 0 if sampleLimit not in [None, Undefined] len(schedulerName) >= 1 if schedulerName len(scrapeFailureLogFile) >= 1 if scrapeFailureLogFile _regex_match(str(scrapeInterval), r"^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$") if scrapeInterval _regex_match(str(scrapeTimeout), r"^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$") if scrapeTimeout len(serviceName) >= 1 if serviceName + targetLimit >= 0 if targetLimit not in [None, Undefined] terminationGracePeriodSeconds >= 0 if terminationGracePeriodSeconds not in [None, Undefined] schema MonitoringCoreosComV1PrometheusSpecAdditionalAlertManagerConfigs: @@ -1928,6 +1949,9 @@ schema MonitoringCoreosComV1PrometheusSpecAlertingAlertmanagersItems0AlertRelabe sourceLabels?: [str] targetLabel?: str + check: + modulus >= 0 if modulus not in [None, Undefined] + schema MonitoringCoreosComV1PrometheusSpecAlertingAlertmanagersItems0Authorization: r""" authorization section for Alertmanager. @@ -2103,6 +2127,9 @@ schema MonitoringCoreosComV1PrometheusSpecAlertingAlertmanagersItems0Relabelings sourceLabels?: [str] targetLabel?: str + check: + modulus >= 0 if modulus not in [None, Undefined] + schema MonitoringCoreosComV1PrometheusSpecAlertingAlertmanagersItems0Sigv4: r""" sigv4 defines AWS's Signature Verification 4 for the URL. @@ -3860,7 +3887,6 @@ schema MonitoringCoreosComV1PrometheusSpecContainersItems0SecurityContext: procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. - This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows. readOnlyRootFilesystem : bool, default is Undefined, optional Whether this container has a read-only root filesystem. @@ -5464,7 +5490,6 @@ schema MonitoringCoreosComV1PrometheusSpecInitContainersItems0SecurityContext: procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. - This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows. readOnlyRootFilesystem : bool, default is Undefined, optional Whether this container has a read-only root filesystem. @@ -5872,6 +5897,22 @@ schema MonitoringCoreosComV1PrometheusSpecOtlp: resource attributes to the `target_info` metric, on top of converting them into the `instance` and `job` labels. It requires Prometheus >= v3.1.0. + labelNamePreserveMultipleUnderscores : bool, default is Undefined, optional + labelNamePreserveMultipleUnderscores enables preserving of multiple consecutive underscores in label names when translation_strategy uses + underscore escaping. + When true (default), multiple consecutive underscores are preserved during label name sanitization. + + Notice: This one has no impact if `nameEscapingScheme` is `AllowUTF8`. + + It requires Prometheus >= v3.8.0. + labelNameUnderscoreSanitization : bool, default is Undefined, optional + labelNameUnderscoreSanitization controls whether to enable prepending of 'key_' to labels starting with '_'. + Reserved labels starting with '__' are not modified. + This is only relevant when translation_strategy uses underscore escaping (e.g., "UnderscoreEscapingWithSuffixes" or "UnderscoreEscapingWithoutSuffixes"). + + Notice: This one has no impact if `nameEscapingScheme` is `AllowUTF8`. + + It requires Prometheus >= v3.8.0. promoteAllResourceAttributes : bool, default is Undefined, optional promoteAllResourceAttributes promotes all resource attributes to metric labels except the ones defined in `ignoreResourceAttributes`. @@ -5892,6 +5933,8 @@ schema MonitoringCoreosComV1PrometheusSpecOtlp: convertHistogramsToNHCB?: bool ignoreResourceAttributes?: [str] keepIdentifyingResourceAttributes?: bool + labelNamePreserveMultipleUnderscores?: bool + labelNameUnderscoreSanitization?: bool promoteAllResourceAttributes?: bool promoteResourceAttributes?: [str] promoteScopeMetadata?: bool @@ -6260,6 +6303,8 @@ schema MonitoringCoreosComV1PrometheusSpecRemoteReadItems0: tls config url : str, default is Undefined, required url defines the URL of the endpoint to query from. + + It must use the HTTP or HTTPS scheme. """ authorization?: MonitoringCoreosComV1PrometheusSpecRemoteReadItems0Authorization basicAuth?: MonitoringCoreosComV1PrometheusSpecRemoteReadItems0BasicAuth @@ -6283,6 +6328,7 @@ schema MonitoringCoreosComV1PrometheusSpecRemoteReadItems0: check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl _regex_match(str(remoteTimeout), r"^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$") if remoteTimeout + _regex_match(str(url), r"^(http|https)://.+$") schema MonitoringCoreosComV1PrometheusSpecRemoteReadItems0Authorization: r""" @@ -6449,7 +6495,7 @@ schema MonitoringCoreosComV1PrometheusSpecRemoteReadItems0Oauth2: check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1PrometheusSpecRemoteReadItems0Oauth2ClientID: r""" @@ -7337,6 +7383,8 @@ schema MonitoringCoreosComV1PrometheusSpecRemoteWriteItems0MetadataConfig: It requires Prometheus >= v2.29.0. send : bool, default is Undefined, optional send defines whether metric metadata is sent to the remote storage or not. + + The setting is ignored when Remote Write message's version 2.0 is used. sendInterval : str, default is Undefined, optional sendInterval defines how frequently metric metadata is sent to the remote storage. """ @@ -7404,7 +7452,7 @@ schema MonitoringCoreosComV1PrometheusSpecRemoteWriteItems0Oauth2: check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1PrometheusSpecRemoteWriteItems0Oauth2ClientID: r""" @@ -8066,6 +8114,9 @@ schema MonitoringCoreosComV1PrometheusSpecRemoteWriteItems0WriteRelabelConfigsIt sourceLabels?: [str] targetLabel?: str + check: + modulus >= 0 if modulus not in [None, Undefined] + schema MonitoringCoreosComV1PrometheusSpecResources: r""" resources defines the resources requests and limits of the 'prometheus' container. @@ -8319,6 +8370,10 @@ schema MonitoringCoreosComV1PrometheusSpecScrapeClassesItems0AttachMetadata: The Prometheus service account must have the `list` and `watch` permissions on the `Nodes` objects. + + Node metadata labels are not automatically added to scraped metrics. They are + exposed as `__meta_kubernetes_node_*` labels and can be copied to timeseries + with relabeling configuration. """ node?: bool @@ -8415,6 +8470,9 @@ schema MonitoringCoreosComV1PrometheusSpecScrapeClassesItems0MetricRelabelingsIt sourceLabels?: [str] targetLabel?: str + check: + modulus >= 0 if modulus not in [None, Undefined] + schema MonitoringCoreosComV1PrometheusSpecScrapeClassesItems0RelabelingsItems0: r""" RelabelConfig allows dynamic rewriting of the label set for targets, alerts, @@ -8464,6 +8522,9 @@ schema MonitoringCoreosComV1PrometheusSpecScrapeClassesItems0RelabelingsItems0: sourceLabels?: [str] targetLabel?: str + check: + modulus >= 0 if modulus not in [None, Undefined] + schema MonitoringCoreosComV1PrometheusSpecScrapeClassesItems0TLSConfig: r""" tlsConfig defines the TLS settings to use for the scrape. When the @@ -9071,11 +9132,8 @@ schema MonitoringCoreosComV1PrometheusSpecServiceMonitorSelectorMatchExpressions schema MonitoringCoreosComV1PrometheusSpecShardRetentionPolicy: r""" shardRetentionPolicy defines the retention policy for the Prometheus shards. - (Alpha) Using this field requires the 'PrometheusShardRetentionPolicy' feature gate to be enabled. - The final goals for this feature can be seen at https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/proposals/202310-shard-autoscaling.md#graceful-scale-down-of-prometheus-servers, - however, the feature is not yet fully implemented in this PR. The limitation being: - * Retention duration is not settable, for now, shards are retained forever. + (Beta) Using this mode requires the `PrometheusShardRetentionPolicy` feature gate (enabled by default). Attributes ---------- @@ -10781,6 +10839,8 @@ schema MonitoringCoreosComV1PrometheusSpecTsdb: Attributes ---------- + chunkEncoding : MonitoringCoreosComV1PrometheusSpecTsdbChunkEncoding, default is Undefined, optional + chunk encoding outOfOrderTimeWindow : str, default is Undefined, optional outOfOrderTimeWindow defines how old an out-of-order/out-of-bounds sample can be with respect to the TSDB max time. @@ -10792,11 +10852,52 @@ schema MonitoringCoreosComV1PrometheusSpecTsdb: in a breaking way. It requires Prometheus >= v2.39.0 or PrometheusAgent >= v2.54.0. + staleSeriesCompactionThreshold : int | str, default is Undefined, optional + staleSeriesCompactionThreshold configures the trigger point for compacting + stale series from memory into persistent blocks and removing those stale + series from memory. + + The threshold is a number between 0.0 and 1.0. It represents the ratio of + stale series in memory to the total series in memory. The stale series + compaction is triggered when this ratio crosses the configured threshold. + It may not trigger the stale series compaction if the usual head compaction + is about to happen soon. + + If set to 0, stale series compaction is disabled. + + It requires Prometheus >= v3.10.0. """ + chunkEncoding?: MonitoringCoreosComV1PrometheusSpecTsdbChunkEncoding outOfOrderTimeWindow?: str + staleSeriesCompactionThreshold?: int | str check: _regex_match(str(outOfOrderTimeWindow), r"^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$") if outOfOrderTimeWindow + _regex_match(str(staleSeriesCompactionThreshold), r"^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$") if staleSeriesCompactionThreshold + +schema MonitoringCoreosComV1PrometheusSpecTsdbChunkEncoding: + r""" + chunkEncoding configures per-chunk-type encoding overrides. + + It requires Prometheus >= v3.13.0. + + Notice: Setting "Xor" is incompatible with --enable-feature=st-storage + (XOR chunks do not store start timestamps). + + Attributes + ---------- + floats : str, default is Undefined, optional + floats selects the encoding used for float chunks. + Valid values are "Xor" and "Xor2". + + Notice: + * Setting "Xor" is incompatible with --enable-feature=st-storage + (XOR chunks do not store start timestamps). + * Setting "Xor2" automatically adds the `xor2-encoding` feature flag. + + It requires Prometheus >= v3.13.0. + """ + floats?: "Xor" | "Xor2" schema MonitoringCoreosComV1PrometheusSpecUpdateStrategy: r""" @@ -11865,7 +11966,7 @@ schema MonitoringCoreosComV1PrometheusSpecVolumesItems0Image: A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. - The volume will be mounted read-only (ro) and non-executable files (noexec). + The volume will be mounted read-only (ro). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33. The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type. @@ -12020,8 +12121,7 @@ schema MonitoringCoreosComV1PrometheusSpecVolumesItems0PortworxVolume: r""" portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type - are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate - is on. + are redirected to the pxd.portworx.com CSI driver. Attributes ---------- diff --git a/docs/examples/src/charts/kube_prometheus_stack/api/v1/monitoring_coreos_com_v1_service_monitor.k b/docs/examples/src/charts/kube_prometheus_stack/api/v1/monitoring_coreos_com_v1_service_monitor.k index 36ace44a..1a2f9bd9 100644 --- a/docs/examples/src/charts/kube_prometheus_stack/api/v1/monitoring_coreos_com_v1_service_monitor.k +++ b/docs/examples/src/charts/kube_prometheus_stack/api/v1/monitoring_coreos_com_v1_service_monitor.k @@ -178,8 +178,15 @@ schema MonitoringCoreosComV1ServiceMonitorSpec: check: _regex_match(str(bodySizeLimit), r"(^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$") if bodySizeLimit + keepDroppedTargets >= 0 if keepDroppedTargets not in [None, Undefined] + labelLimit >= 0 if labelLimit not in [None, Undefined] + labelNameLengthLimit >= 0 if labelNameLengthLimit not in [None, Undefined] + labelValueLengthLimit >= 0 if labelValueLengthLimit not in [None, Undefined] + nativeHistogramBucketLimit >= 0 if nativeHistogramBucketLimit not in [None, Undefined] _regex_match(str(nativeHistogramMinBucketFactor), r"^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$") if nativeHistogramMinBucketFactor + sampleLimit >= 0 if sampleLimit not in [None, Undefined] len(scrapeClass) >= 1 if scrapeClass + targetLimit >= 0 if targetLimit not in [None, Undefined] schema MonitoringCoreosComV1ServiceMonitorSpecAttachMetadata: r""" @@ -196,6 +203,10 @@ schema MonitoringCoreosComV1ServiceMonitorSpecAttachMetadata: The Prometheus service account must have the `list` and `watch` permissions on the `Nodes` objects. + + Node metadata labels are not automatically added to scraped metrics. They are + exposed as `__meta_kubernetes_node_*` labels and can be copied to timeseries + with relabeling configuration. """ node?: bool @@ -256,7 +267,8 @@ schema MonitoringCoreosComV1ServiceMonitorSpecEndpointsItems0: If empty, Prometheus uses the default value (e.g. `/metrics`). port : str, default is Undefined, optional - port defines the name of the Service port which this endpoint refers to. + port defines the name of the Service port which this endpoint refers to + (e.g. `.spec.ports[].name`). It takes precedence over `targetPort`. proxyConnectHeader : {str:[MonitoringCoreosComV1ServiceMonitorSpecEndpointsItems0ProxyConnectHeaderItems0]}, default is Undefined, optional @@ -288,8 +300,10 @@ schema MonitoringCoreosComV1ServiceMonitorSpecEndpointsItems0: than the target's scrape interval value in which the latter is used. The value cannot be greater than the scrape interval otherwise the operator will reject the resource. targetPort : int | str, default is Undefined, optional - targetPort defines the name or number of the target port of the `Pod` object behind the - Service. The port must be specified with the container's port property. + targetPort defines the name or number of a container port on Pods selected + by the Service. + If a name, it matches against `.spec.containers[].ports[].name` of the Pods. + If a number, it matches against `.spec.containers[].ports[].containerPort` of the Pods. tlsConfig : MonitoringCoreosComV1ServiceMonitorSpecEndpointsItems0TLSConfig, default is Undefined, optional tls config trackTimestampsStaleness : bool, default is Undefined, optional @@ -514,6 +528,9 @@ schema MonitoringCoreosComV1ServiceMonitorSpecEndpointsItems0MetricRelabelingsIt sourceLabels?: [str] targetLabel?: str + check: + modulus >= 0 if modulus not in [None, Undefined] + schema MonitoringCoreosComV1ServiceMonitorSpecEndpointsItems0Oauth2: r""" oauth2 defines the OAuth2 settings used by the client. @@ -570,7 +587,7 @@ schema MonitoringCoreosComV1ServiceMonitorSpecEndpointsItems0Oauth2: check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1ServiceMonitorSpecEndpointsItems0Oauth2ClientID: r""" @@ -919,6 +936,9 @@ schema MonitoringCoreosComV1ServiceMonitorSpecEndpointsItems0RelabelingsItems0: sourceLabels?: [str] targetLabel?: str + check: + modulus >= 0 if modulus not in [None, Undefined] + schema MonitoringCoreosComV1ServiceMonitorSpecEndpointsItems0TLSConfig: r""" tlsConfig defines TLS configuration used by the client. diff --git a/docs/examples/src/charts/kube_prometheus_stack/api/v1/monitoring_coreos_com_v1_thanos_ruler.k b/docs/examples/src/charts/kube_prometheus_stack/api/v1/monitoring_coreos_com_v1_thanos_ruler.k index f362bf8e..a4989d34 100644 --- a/docs/examples/src/charts/kube_prometheus_stack/api/v1/monitoring_coreos_com_v1_thanos_ruler.k +++ b/docs/examples/src/charts/kube_prometheus_stack/api/v1/monitoring_coreos_com_v1_thanos_ruler.k @@ -2390,7 +2390,6 @@ schema MonitoringCoreosComV1ThanosRulerSpecContainersItems0SecurityContext: procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. - This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows. readOnlyRootFilesystem : bool, default is Undefined, optional Whether this container has a read-only root filesystem. @@ -4185,7 +4184,6 @@ schema MonitoringCoreosComV1ThanosRulerSpecInitContainersItems0SecurityContext: procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. - This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows. readOnlyRootFilesystem : bool, default is Undefined, optional Whether this container has a read-only root filesystem. @@ -5089,6 +5087,8 @@ schema MonitoringCoreosComV1ThanosRulerSpecRemoteWriteItems0MetadataConfig: It requires Prometheus >= v2.29.0. send : bool, default is Undefined, optional send defines whether metric metadata is sent to the remote storage or not. + + The setting is ignored when Remote Write message's version 2.0 is used. sendInterval : str, default is Undefined, optional sendInterval defines how frequently metric metadata is sent to the remote storage. """ @@ -5156,7 +5156,7 @@ schema MonitoringCoreosComV1ThanosRulerSpecRemoteWriteItems0Oauth2: check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1ThanosRulerSpecRemoteWriteItems0Oauth2ClientID: r""" @@ -5818,6 +5818,9 @@ schema MonitoringCoreosComV1ThanosRulerSpecRemoteWriteItems0WriteRelabelConfigsI sourceLabels?: [str] targetLabel?: str + check: + modulus >= 0 if modulus not in [None, Undefined] + schema MonitoringCoreosComV1ThanosRulerSpecResources: r""" resources defines the resource requirements for single Pods. @@ -8154,7 +8157,7 @@ schema MonitoringCoreosComV1ThanosRulerSpecVolumesItems0Image: A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. - The volume will be mounted read-only (ro) and non-executable files (noexec). + The volume will be mounted read-only (ro). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33. The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type. @@ -8309,8 +8312,7 @@ schema MonitoringCoreosComV1ThanosRulerSpecVolumesItems0PortworxVolume: r""" portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type - are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate - is on. + are redirected to the pxd.portworx.com CSI driver. Attributes ---------- diff --git a/docs/examples/src/charts/kube_prometheus_stack/api/v1alpha1/monitoring_coreos_com_v1alpha1_alertmanager_config.k b/docs/examples/src/charts/kube_prometheus_stack/api/v1alpha1/monitoring_coreos_com_v1alpha1_alertmanager_config.k index a9b4d7b1..e652bd28 100644 --- a/docs/examples/src/charts/kube_prometheus_stack/api/v1alpha1/monitoring_coreos_com_v1alpha1_alertmanager_config.k +++ b/docs/examples/src/charts/kube_prometheus_stack/api/v1alpha1/monitoring_coreos_com_v1alpha1_alertmanager_config.k @@ -583,7 +583,7 @@ schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0DiscordCo check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0DiscordConfigsItems0HTTPConfigOauth2ClientID: r""" @@ -1657,7 +1657,7 @@ schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0MsteamsCo check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0MsteamsConfigsItems0HTTPConfigOauth2ClientID: r""" @@ -2421,7 +2421,7 @@ schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0Msteamsv2 check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0Msteamsv2ConfigsItems0HTTPConfigOauth2ClientID: r""" @@ -3275,7 +3275,7 @@ schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0OpsgenieC check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0OpsgenieConfigsItems0HTTPConfigOauth2ClientID: r""" @@ -4110,7 +4110,7 @@ schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0Pagerduty check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0PagerdutyConfigsItems0HTTPConfigOauth2ClientID: r""" @@ -5003,7 +5003,7 @@ schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0PushoverC check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0PushoverConfigsItems0HTTPConfigOauth2ClientID: r""" @@ -5901,7 +5901,7 @@ schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0Rocketcha check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0RocketchatConfigsItems0HTTPConfigOauth2ClientID: r""" @@ -6485,6 +6485,10 @@ schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0SlackConf title defines the title text displayed in the Slack message attachment. titleLink : str, default is Undefined, optional titleLink defines the URL that the title will link to when clicked. + updateMessage : bool, default is Undefined, optional + updateMessage enables updating existing Slack messages instead of creating new ones + when alert state changes. Please note that Webhook URLs do not support updates. + It requires Alertmanager >= v0.32.0. username : str, default is Undefined, optional username defines the slack bot user name. """ @@ -6511,6 +6515,7 @@ schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0SlackConf timeout?: str title?: str titleLink?: str + updateMessage?: bool username?: str check: @@ -6901,7 +6906,7 @@ schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0SlackConf check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0SlackConfigsItems0HTTPConfigOauth2ClientID: r""" @@ -7407,6 +7412,12 @@ schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0SnsConfig topicARN : str, default is Undefined, optional topicARN defines the SNS topic ARN, e.g. arn:aws:sns:us-east-2:698519295917:My-Topic. If you don't specify this value, you must specify a value for the PhoneNumber or TargetARN. + useAWSHTTPClient : bool, default is Undefined, optional + useAWSHTTPClient forces the AWS SDK's BuildableClient instead of + alertmanager's tracing-wrapped HTTP client. Auto-enabled when AWS_CA_BUNDLE + is set; set explicitly when configuring ca_bundle via shared AWS config. + + It requires Alertmanager >= 0.33.0. """ apiURL?: str attributes?: {str:str} @@ -7418,6 +7429,7 @@ schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0SnsConfig subject?: str targetARN?: str topicARN?: str + useAWSHTTPClient?: bool check: len(message) >= 1 if message @@ -7664,7 +7676,7 @@ schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0SnsConfig check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0SnsConfigsItems0HTTPConfigOauth2ClientID: r""" @@ -8534,7 +8546,7 @@ schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0TelegramC check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0TelegramConfigsItems0HTTPConfigOauth2ClientID: r""" @@ -9343,7 +9355,7 @@ schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0Victorops check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0VictoropsConfigsItems0HTTPConfigOauth2ClientID: r""" @@ -10082,7 +10094,7 @@ schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0WebexConf check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0WebexConfigsItems0HTTPConfigOauth2ClientID: r""" @@ -10566,6 +10578,11 @@ schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0WebhookCo maxAlerts : int, default is Undefined, optional maxAlerts defines the maximum number of alerts to be sent per webhook message. When 0, all alerts are included in the webhook payload. + payload : str, default is Undefined, optional + payload define custom payload to be sent to the webhook endpoint. + This is an advanced configuration option that allows you + to define a custom payload using Go templates. + It requires Alertmanager >= v0.32.0. sendResolved : bool, default is Undefined, optional sendResolved defines whether or not to notify about resolved alerts. timeout : str, default is Undefined, optional @@ -10580,6 +10597,7 @@ schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0WebhookCo """ httpConfig?: MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0WebhookConfigsItems0HTTPConfig maxAlerts?: int + payload?: str sendResolved?: bool timeout?: str url?: str @@ -10587,6 +10605,7 @@ schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0WebhookCo check: maxAlerts >= 0 if maxAlerts not in [None, Undefined] + len(payload) >= 1 if payload _regex_match(str(timeout), r"^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$") if timeout schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0WebhookConfigsItems0HTTPConfig: @@ -10827,7 +10846,7 @@ schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0WebhookCo check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0WebhookConfigsItems0HTTPConfigOauth2ClientID: r""" @@ -11646,7 +11665,7 @@ schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0WechatCon check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1alpha1AlertmanagerConfigSpecReceiversItems0WechatConfigsItems0HTTPConfigOauth2ClientID: r""" diff --git a/docs/examples/src/charts/kube_prometheus_stack/api/v1alpha1/monitoring_coreos_com_v1alpha1_prometheus_agent.k b/docs/examples/src/charts/kube_prometheus_stack/api/v1alpha1/monitoring_coreos_com_v1alpha1_prometheus_agent.k index d38d77b8..c3ce0131 100644 --- a/docs/examples/src/charts/kube_prometheus_stack/api/v1alpha1/monitoring_coreos_com_v1alpha1_prometheus_agent.k +++ b/docs/examples/src/charts/kube_prometheus_stack/api/v1alpha1/monitoring_coreos_com_v1alpha1_prometheus_agent.k @@ -531,7 +531,7 @@ schema MonitoringCoreosComV1alpha1PrometheusAgentSpec: See https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#stable-network-id for more details. shardingStrategy : MonitoringCoreosComV1alpha1PrometheusAgentSpecShardingStrategy, default is Undefined, optional sharding strategy - shards : int, default is Undefined, optional + shards : int, default is 1, optional shards defines the number of shards to distribute the scraped targets onto. `spec.replicas` multiplied by `spec.shards` is the total number of Pods @@ -558,6 +558,8 @@ schema MonitoringCoreosComV1alpha1PrometheusAgentSpec: You can also disable sharding on a specific target by setting the `__tmp_disable_sharding` label with relabeling configuration. When the label value isn't empty, all Prometheus shards will scrape the target. + + Default: 1 storage : MonitoringCoreosComV1alpha1PrometheusAgentSpecStorage, default is Undefined, optional storage targetLimit : int, default is Undefined, optional @@ -697,7 +699,7 @@ schema MonitoringCoreosComV1alpha1PrometheusAgentSpec: serviceMonitorSelector?: MonitoringCoreosComV1alpha1PrometheusAgentSpecServiceMonitorSelector serviceName?: str shardingStrategy?: MonitoringCoreosComV1alpha1PrometheusAgentSpecShardingStrategy - shards?: int + shards?: int = 1 storage?: MonitoringCoreosComV1alpha1PrometheusAgentSpecStorage targetLimit?: int terminationGracePeriodSeconds?: int @@ -716,14 +718,26 @@ schema MonitoringCoreosComV1alpha1PrometheusAgentSpec: _regex_match(str(bodySizeLimit), r"(^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$") if bodySizeLimit all enableFeatures in enableFeatures {len(enableFeatures) >= 1 if enableFeatures not in [None, Undefined]} if enableFeatures _regex_match(str(enforcedBodySizeLimit), r"(^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$") if enforcedBodySizeLimit + enforcedKeepDroppedTargets >= 0 if enforcedKeepDroppedTargets not in [None, Undefined] + enforcedLabelLimit >= 0 if enforcedLabelLimit not in [None, Undefined] + enforcedLabelNameLengthLimit >= 0 if enforcedLabelNameLengthLimit not in [None, Undefined] + enforcedLabelValueLengthLimit >= 0 if enforcedLabelValueLengthLimit not in [None, Undefined] + enforcedSampleLimit >= 0 if enforcedSampleLimit not in [None, Undefined] + enforcedTargetLimit >= 0 if enforcedTargetLimit not in [None, Undefined] + keepDroppedTargets >= 0 if keepDroppedTargets not in [None, Undefined] + labelLimit >= 0 if labelLimit not in [None, Undefined] + labelNameLengthLimit >= 0 if labelNameLengthLimit not in [None, Undefined] + labelValueLengthLimit >= 0 if labelValueLengthLimit not in [None, Undefined] maximumStartupDurationSeconds >= 60 if maximumStartupDurationSeconds not in [None, Undefined] minReadySeconds >= 0 if minReadySeconds not in [None, Undefined] len(remoteWriteReceiverMessageVersions) >= 1 if remoteWriteReceiverMessageVersions + sampleLimit >= 0 if sampleLimit not in [None, Undefined] len(schedulerName) >= 1 if schedulerName len(scrapeFailureLogFile) >= 1 if scrapeFailureLogFile _regex_match(str(scrapeInterval), r"^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$") if scrapeInterval _regex_match(str(scrapeTimeout), r"^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$") if scrapeTimeout len(serviceName) >= 1 if serviceName + targetLimit >= 0 if targetLimit not in [None, Undefined] terminationGracePeriodSeconds >= 0 if terminationGracePeriodSeconds not in [None, Undefined] schema MonitoringCoreosComV1alpha1PrometheusAgentSpecAdditionalArgsItems0: @@ -3095,7 +3109,6 @@ schema MonitoringCoreosComV1alpha1PrometheusAgentSpecContainersItems0SecurityCon procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. - This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows. readOnlyRootFilesystem : bool, default is Undefined, optional Whether this container has a read-only root filesystem. @@ -4681,7 +4694,6 @@ schema MonitoringCoreosComV1alpha1PrometheusAgentSpecInitContainersItems0Securit procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. - This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows. readOnlyRootFilesystem : bool, default is Undefined, optional Whether this container has a read-only root filesystem. @@ -5089,6 +5101,22 @@ schema MonitoringCoreosComV1alpha1PrometheusAgentSpecOtlp: resource attributes to the `target_info` metric, on top of converting them into the `instance` and `job` labels. It requires Prometheus >= v3.1.0. + labelNamePreserveMultipleUnderscores : bool, default is Undefined, optional + labelNamePreserveMultipleUnderscores enables preserving of multiple consecutive underscores in label names when translation_strategy uses + underscore escaping. + When true (default), multiple consecutive underscores are preserved during label name sanitization. + + Notice: This one has no impact if `nameEscapingScheme` is `AllowUTF8`. + + It requires Prometheus >= v3.8.0. + labelNameUnderscoreSanitization : bool, default is Undefined, optional + labelNameUnderscoreSanitization controls whether to enable prepending of 'key_' to labels starting with '_'. + Reserved labels starting with '__' are not modified. + This is only relevant when translation_strategy uses underscore escaping (e.g., "UnderscoreEscapingWithSuffixes" or "UnderscoreEscapingWithoutSuffixes"). + + Notice: This one has no impact if `nameEscapingScheme` is `AllowUTF8`. + + It requires Prometheus >= v3.8.0. promoteAllResourceAttributes : bool, default is Undefined, optional promoteAllResourceAttributes promotes all resource attributes to metric labels except the ones defined in `ignoreResourceAttributes`. @@ -5109,6 +5137,8 @@ schema MonitoringCoreosComV1alpha1PrometheusAgentSpecOtlp: convertHistogramsToNHCB?: bool ignoreResourceAttributes?: [str] keepIdentifyingResourceAttributes?: bool + labelNamePreserveMultipleUnderscores?: bool + labelNameUnderscoreSanitization?: bool promoteAllResourceAttributes?: bool promoteResourceAttributes?: [str] promoteScopeMetadata?: bool @@ -5774,6 +5804,8 @@ schema MonitoringCoreosComV1alpha1PrometheusAgentSpecRemoteWriteItems0MetadataCo It requires Prometheus >= v2.29.0. send : bool, default is Undefined, optional send defines whether metric metadata is sent to the remote storage or not. + + The setting is ignored when Remote Write message's version 2.0 is used. sendInterval : str, default is Undefined, optional sendInterval defines how frequently metric metadata is sent to the remote storage. """ @@ -5841,7 +5873,7 @@ schema MonitoringCoreosComV1alpha1PrometheusAgentSpecRemoteWriteItems0Oauth2: check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1alpha1PrometheusAgentSpecRemoteWriteItems0Oauth2ClientID: r""" @@ -6503,6 +6535,9 @@ schema MonitoringCoreosComV1alpha1PrometheusAgentSpecRemoteWriteItems0WriteRelab sourceLabels?: [str] targetLabel?: str + check: + modulus >= 0 if modulus not in [None, Undefined] + schema MonitoringCoreosComV1alpha1PrometheusAgentSpecResources: r""" resources defines the resources requests and limits of the 'prometheus' container. @@ -6637,6 +6672,10 @@ schema MonitoringCoreosComV1alpha1PrometheusAgentSpecScrapeClassesItems0AttachMe The Prometheus service account must have the `list` and `watch` permissions on the `Nodes` objects. + + Node metadata labels are not automatically added to scraped metrics. They are + exposed as `__meta_kubernetes_node_*` labels and can be copied to timeseries + with relabeling configuration. """ node?: bool @@ -6733,6 +6772,9 @@ schema MonitoringCoreosComV1alpha1PrometheusAgentSpecScrapeClassesItems0MetricRe sourceLabels?: [str] targetLabel?: str + check: + modulus >= 0 if modulus not in [None, Undefined] + schema MonitoringCoreosComV1alpha1PrometheusAgentSpecScrapeClassesItems0RelabelingsItems0: r""" RelabelConfig allows dynamic rewriting of the label set for targets, alerts, @@ -6782,6 +6824,9 @@ schema MonitoringCoreosComV1alpha1PrometheusAgentSpecScrapeClassesItems0Relabeli sourceLabels?: [str] targetLabel?: str + check: + modulus >= 0 if modulus not in [None, Undefined] + schema MonitoringCoreosComV1alpha1PrometheusAgentSpecScrapeClassesItems0TLSConfig: r""" tlsConfig defines the TLS settings to use for the scrape. When the @@ -8536,6 +8581,8 @@ schema MonitoringCoreosComV1alpha1PrometheusAgentSpecTsdb: Attributes ---------- + chunkEncoding : MonitoringCoreosComV1alpha1PrometheusAgentSpecTsdbChunkEncoding, default is Undefined, optional + chunk encoding outOfOrderTimeWindow : str, default is Undefined, optional outOfOrderTimeWindow defines how old an out-of-order/out-of-bounds sample can be with respect to the TSDB max time. @@ -8547,11 +8594,52 @@ schema MonitoringCoreosComV1alpha1PrometheusAgentSpecTsdb: in a breaking way. It requires Prometheus >= v2.39.0 or PrometheusAgent >= v2.54.0. + staleSeriesCompactionThreshold : int | str, default is Undefined, optional + staleSeriesCompactionThreshold configures the trigger point for compacting + stale series from memory into persistent blocks and removing those stale + series from memory. + + The threshold is a number between 0.0 and 1.0. It represents the ratio of + stale series in memory to the total series in memory. The stale series + compaction is triggered when this ratio crosses the configured threshold. + It may not trigger the stale series compaction if the usual head compaction + is about to happen soon. + + If set to 0, stale series compaction is disabled. + + It requires Prometheus >= v3.10.0. """ + chunkEncoding?: MonitoringCoreosComV1alpha1PrometheusAgentSpecTsdbChunkEncoding outOfOrderTimeWindow?: str + staleSeriesCompactionThreshold?: int | str check: _regex_match(str(outOfOrderTimeWindow), r"^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$") if outOfOrderTimeWindow + _regex_match(str(staleSeriesCompactionThreshold), r"^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$") if staleSeriesCompactionThreshold + +schema MonitoringCoreosComV1alpha1PrometheusAgentSpecTsdbChunkEncoding: + r""" + chunkEncoding configures per-chunk-type encoding overrides. + + It requires Prometheus >= v3.13.0. + + Notice: Setting "Xor" is incompatible with --enable-feature=st-storage + (XOR chunks do not store start timestamps). + + Attributes + ---------- + floats : str, default is Undefined, optional + floats selects the encoding used for float chunks. + Valid values are "Xor" and "Xor2". + + Notice: + * Setting "Xor" is incompatible with --enable-feature=st-storage + (XOR chunks do not store start timestamps). + * Setting "Xor2" automatically adds the `xor2-encoding` feature flag. + + It requires Prometheus >= v3.13.0. + """ + floats?: "Xor" | "Xor2" schema MonitoringCoreosComV1alpha1PrometheusAgentSpecUpdateStrategy: r""" @@ -9620,7 +9708,7 @@ schema MonitoringCoreosComV1alpha1PrometheusAgentSpecVolumesItems0Image: A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. - The volume will be mounted read-only (ro) and non-executable files (noexec). + The volume will be mounted read-only (ro). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33. The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type. @@ -9775,8 +9863,7 @@ schema MonitoringCoreosComV1alpha1PrometheusAgentSpecVolumesItems0PortworxVolume r""" portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type - are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate - is on. + are redirected to the pxd.portworx.com CSI driver. Attributes ---------- diff --git a/docs/examples/src/charts/kube_prometheus_stack/api/v1alpha1/monitoring_coreos_com_v1alpha1_scrape_config.k b/docs/examples/src/charts/kube_prometheus_stack/api/v1alpha1/monitoring_coreos_com_v1alpha1_scrape_config.k index 3b5b0bb6..8a4ac7c4 100644 --- a/docs/examples/src/charts/kube_prometheus_stack/api/v1alpha1/monitoring_coreos_com_v1alpha1_scrape_config.k +++ b/docs/examples/src/charts/kube_prometheus_stack/api/v1alpha1/monitoring_coreos_com_v1alpha1_scrape_config.k @@ -285,15 +285,22 @@ schema MonitoringCoreosComV1alpha1ScrapeConfigSpec: check: _regex_match(str(bodySizeLimit), r"(^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$") if bodySizeLimit len(jobName) >= 1 if jobName + keepDroppedTargets >= 0 if keepDroppedTargets not in [None, Undefined] + labelLimit >= 0 if labelLimit not in [None, Undefined] + labelNameLengthLimit >= 0 if labelNameLengthLimit not in [None, Undefined] + labelValueLengthLimit >= 0 if labelValueLengthLimit not in [None, Undefined] len(metricRelabelings) >= 1 if metricRelabelings len(metricsPath) >= 1 if metricsPath + nativeHistogramBucketLimit >= 0 if nativeHistogramBucketLimit not in [None, Undefined] _regex_match(str(nativeHistogramMinBucketFactor), r"^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$") if nativeHistogramMinBucketFactor _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl len(relabelings) >= 1 if relabelings + sampleLimit >= 0 if sampleLimit not in [None, Undefined] len(scrapeClass) >= 1 if scrapeClass _regex_match(str(scrapeInterval), r"^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$") if scrapeInterval len(scrapeProtocols) >= 1 if scrapeProtocols _regex_match(str(scrapeTimeout), r"^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$") if scrapeTimeout + targetLimit >= 0 if targetLimit not in [None, Undefined] schema MonitoringCoreosComV1alpha1ScrapeConfigSpecAuthorization: r""" @@ -605,7 +612,7 @@ schema MonitoringCoreosComV1alpha1ScrapeConfigSpecAzureSDConfigsItems0Oauth2: check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1alpha1ScrapeConfigSpecAzureSDConfigsItems0Oauth2ClientID: r""" @@ -1411,7 +1418,7 @@ schema MonitoringCoreosComV1alpha1ScrapeConfigSpecConsulSDConfigsItems0Oauth2: check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1alpha1ScrapeConfigSpecConsulSDConfigsItems0Oauth2ClientID: r""" @@ -2092,7 +2099,7 @@ schema MonitoringCoreosComV1alpha1ScrapeConfigSpecDigitalOceanSDConfigsItems0Oau check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1alpha1ScrapeConfigSpecDigitalOceanSDConfigsItems0Oauth2ClientID: r""" @@ -2817,7 +2824,7 @@ schema MonitoringCoreosComV1alpha1ScrapeConfigSpecDockerSDConfigsItems0Oauth2: check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1alpha1ScrapeConfigSpecDockerSDConfigsItems0Oauth2ClientID: r""" @@ -3541,7 +3548,7 @@ schema MonitoringCoreosComV1alpha1ScrapeConfigSpecDockerSwarmSDConfigsItems0Oaut check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1alpha1ScrapeConfigSpecDockerSwarmSDConfigsItems0Oauth2ClientID: r""" @@ -4566,7 +4573,7 @@ schema MonitoringCoreosComV1alpha1ScrapeConfigSpecEurekaSDConfigsItems0Oauth2: check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1alpha1ScrapeConfigSpecEurekaSDConfigsItems0Oauth2ClientID: r""" @@ -5330,7 +5337,7 @@ schema MonitoringCoreosComV1alpha1ScrapeConfigSpecHTTPSDConfigsItems0Oauth2: check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1alpha1ScrapeConfigSpecHTTPSDConfigsItems0Oauth2ClientID: r""" @@ -6025,7 +6032,7 @@ schema MonitoringCoreosComV1alpha1ScrapeConfigSpecHetznerSDConfigsItems0Oauth2: check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1alpha1ScrapeConfigSpecHetznerSDConfigsItems0Oauth2ClientID: r""" @@ -6653,7 +6660,7 @@ schema MonitoringCoreosComV1alpha1ScrapeConfigSpecIonosSDConfigsItems0Oauth2: check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1alpha1ScrapeConfigSpecIonosSDConfigsItems0Oauth2ClientID: r""" @@ -7384,7 +7391,7 @@ schema MonitoringCoreosComV1alpha1ScrapeConfigSpecKubernetesSDConfigsItems0Oauth check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1alpha1ScrapeConfigSpecKubernetesSDConfigsItems0Oauth2ClientID: r""" @@ -8102,7 +8109,7 @@ schema MonitoringCoreosComV1alpha1ScrapeConfigSpecKumaSDConfigsItems0Oauth2: check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1alpha1ScrapeConfigSpecKumaSDConfigsItems0Oauth2ClientID: r""" @@ -8829,7 +8836,7 @@ schema MonitoringCoreosComV1alpha1ScrapeConfigSpecLightSailSDConfigsItems0Oauth2 check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1alpha1ScrapeConfigSpecLightSailSDConfigsItems0Oauth2ClientID: r""" @@ -9482,7 +9489,7 @@ schema MonitoringCoreosComV1alpha1ScrapeConfigSpecLinodeSDConfigsItems0Oauth2: check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1alpha1ScrapeConfigSpecLinodeSDConfigsItems0Oauth2ClientID: r""" @@ -10002,6 +10009,9 @@ schema MonitoringCoreosComV1alpha1ScrapeConfigSpecMetricRelabelingsItems0: sourceLabels?: [str] targetLabel?: str + check: + modulus >= 0 if modulus not in [None, Undefined] + schema MonitoringCoreosComV1alpha1ScrapeConfigSpecNomadSDConfigsItems0: r""" NomadSDConfig configurations allow retrieving scrape targets from Nomad's Service API. @@ -10236,7 +10246,7 @@ schema MonitoringCoreosComV1alpha1ScrapeConfigSpecNomadSDConfigsItems0Oauth2: check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1alpha1ScrapeConfigSpecNomadSDConfigsItems0Oauth2ClientID: r""" @@ -10759,7 +10769,7 @@ schema MonitoringCoreosComV1alpha1ScrapeConfigSpecOauth2: check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1alpha1ScrapeConfigSpecOauth2ClientID: r""" @@ -11688,7 +11698,7 @@ schema MonitoringCoreosComV1alpha1ScrapeConfigSpecPuppetDBSDConfigsItems0Oauth2: check: _regex_match(str(proxyUrl), r"^(http|https|socks5)://.+$") if proxyUrl - len(tokenUrl) >= 1 + _regex_match(str(tokenUrl), r"^(http|https)://.+$") schema MonitoringCoreosComV1alpha1ScrapeConfigSpecPuppetDBSDConfigsItems0Oauth2ClientID: r""" @@ -12208,6 +12218,9 @@ schema MonitoringCoreosComV1alpha1ScrapeConfigSpecRelabelingsItems0: sourceLabels?: [str] targetLabel?: str + check: + modulus >= 0 if modulus not in [None, Undefined] + schema MonitoringCoreosComV1alpha1ScrapeConfigSpecScalewaySDConfigsItems0: r""" ScalewaySDConfig configurations allow retrieving scrape targets from Scaleway instances and baremetal services. diff --git a/docs/examples/src/charts/kube_prometheus_stack/chart.k b/docs/examples/src/charts/kube_prometheus_stack/chart.k index 0e2c26fe..fb52fe48 100644 --- a/docs/examples/src/charts/kube_prometheus_stack/chart.k +++ b/docs/examples/src/charts/kube_prometheus_stack/chart.k @@ -14,10 +14,10 @@ schema Chart(helm.Chart): values : Values | any, optional chart : str, required, default is "kube-prometheus-stack" repoURL : str, required, default is "https://prometheus-community.github.io/helm-charts" - targetRevision : str, optional, default is "86.2.2" + targetRevision : str, optional, default is "89.2.3" """ values?: Values | any chart: str = "kube-prometheus-stack" repoURL: str = "https://prometheus-community.github.io/helm-charts" - targetRevision?: str = "86.2.2" + targetRevision?: str = "89.2.3" diff --git a/docs/examples/src/charts/kube_prometheus_stack/values.schema.json b/docs/examples/src/charts/kube_prometheus_stack/values.schema.json index b5014ab7..e9183f48 100644 --- a/docs/examples/src/charts/kube_prometheus_stack/values.schema.json +++ b/docs/examples/src/charts/kube_prometheus_stack/values.schema.json @@ -182,6 +182,13 @@ "title": "clusterPushpullInterval", "type": "string" }, + "clusterTLS": { + "additionalProperties": true, + "description": "# ClusterTLS defines the mutual TLS configuration for the Alertmanager cluster's gossip protocol.\n# Requires Alertmanager \u003e= v0.24.0.\n# ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ClusterTLSConfig", + "required": [], + "title": "clusterTLS", + "type": "object" + }, "configMaps": { "description": "# ConfigMaps is a list of ConfigMaps in the same namespace as the Alertmanager object, which shall be mounted into the Alertmanager Pods.\n# The ConfigMaps are mounted into /etc/alertmanager/configmaps/.\n#", "items": { @@ -214,6 +221,13 @@ "title": "dnsPolicy", "type": "string" }, + "enableServiceLinks": { + "default": "~", + "description": "# EnableServiceLinks indicates whether information about services should be injected into the\n# pod's environment variables. Uses the operator/Kubernetes default when left unset (~).", + "required": [], + "title": "enableServiceLinks", + "type": "null" + }, "externalUrl": { "default": "", "description": "# The external URL the Alertmanager instances will be available under. This is necessary to generate correct URLs. This is necessary if Alertmanager is not served from root of a DNS name. string false\n#", @@ -228,6 +242,15 @@ "title": "forceEnableClusterMode", "type": "boolean" }, + "hostAliases": { + "description": "# Pods' hostAliases configuration\n# ref: https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/", + "items": { + "required": [] + }, + "required": [], + "title": "hostAliases", + "type": "array" + }, "hostNetwork": { "default": false, "description": "# Enable hostNetwork for Alertmanager.", @@ -271,7 +294,7 @@ "type": "string" }, "tag": { - "default": "v0.32.2", + "default": "v0.34.0", "required": [], "title": "tag", "type": "string" @@ -290,6 +313,13 @@ "title": "initContainers", "type": "array" }, + "limits": { + "additionalProperties": true, + "description": "# Limits defines the Alertmanager limits command line flags. Requires Alertmanager \u003e= v0.28.0.\n# ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.AlertmanagerLimitsSpec", + "required": [], + "title": "limits", + "type": "object" + }, "listenLocal": { "default": false, "description": "# ListenLocal makes the Alertmanager server listen on loopback, so that it does not bind against the Pod IP.\n# Note this is only for the Alertmanager UI, not the gossip communication.\n#", @@ -409,6 +439,13 @@ "title": "routePrefix", "type": "string" }, + "schedulerName": { + "default": "", + "description": "# Set the scheduler name to use for the Alertmanager pods.", + "required": [], + "title": "schedulerName", + "type": "string" + }, "scheme": { "default": "", "description": "# scheme: HTTP scheme to use. Can be used with `tlsConfig` for example if using istio mTLS.", @@ -1190,6 +1227,13 @@ "required": [], "title": "sessionPersistence", "type": "object" + }, + "timeouts": { + "additionalProperties": true, + "description": "# Timeouts for the generated HTTPRoute backend rule.\n# Requires Gateway API CRDs and a controller that support HTTPRoute timeouts.", + "required": [], + "title": "timeouts", + "type": "object" } }, "required": [], @@ -1201,6 +1245,149 @@ "title": "route", "type": "object" }, + "routePerReplica": { + "additionalProperties": true, + "description": "# Configuration for creating a Gateway API route that will map to each Alertmanager replica service\n# alertmanager.servicePerReplica must be enabled\n#", + "properties": { + "main": { + "additionalProperties": true, + "properties": { + "additionalRules": { + "description": "# Additional custom rules that can be added to the route", + "items": { + "required": [] + }, + "required": [], + "title": "additionalRules", + "type": "array" + }, + "annotations": { + "additionalProperties": true, + "required": [], + "title": "annotations", + "type": "object" + }, + "apiVersion": { + "default": "gateway.networking.k8s.io/v1", + "description": "Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2", + "required": [], + "title": "apiVersion", + "type": "string" + }, + "enabled": { + "default": false, + "description": "Enables or disables the routePerReplica", + "required": [], + "title": "enabled", + "type": "boolean" + }, + "filters": { + "description": "# Filters define the filters that are applied to requests that match this rule.", + "items": { + "required": [] + }, + "required": [], + "title": "filters", + "type": "array" + }, + "hostDomain": { + "default": "", + "description": "# Domain that will be used for the per replica route", + "required": [], + "title": "hostDomain", + "type": "string" + }, + "hostPrefix": { + "default": "", + "description": "# Final form of the hostname for each per replica route is\n# {{ routePerReplica.hostPrefix }}-{{ $replicaNumber }}.{{ routePerReplica.hostDomain }}\n#\n# Prefix for the per replica route that will have `-$replicaNumber` appended to the end", + "required": [], + "title": "hostPrefix", + "type": "string" + }, + "httpsRedirect": { + "default": false, + "description": "create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects)\n# Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect.\n# matches, filters and additionalRules will be ignored if this is set to true.", + "required": [], + "title": "httpsRedirect", + "type": "boolean" + }, + "kind": { + "default": "HTTPRoute", + "description": "Set the route kind\nValid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute", + "required": [], + "title": "kind", + "type": "string" + }, + "labels": { + "additionalProperties": true, + "required": [], + "title": "labels", + "type": "object" + }, + "matches": { + "items": { + "additionalProperties": true, + "properties": { + "path": { + "additionalProperties": true, + "properties": { + "type": { + "default": "PathPrefix", + "required": [], + "title": "type", + "type": "string" + }, + "value": { + "default": "/", + "required": [], + "title": "value", + "type": "string" + } + }, + "required": [], + "title": "path", + "type": "object" + } + }, + "required": [], + "type": "object" + }, + "required": [], + "title": "matches", + "type": "array" + }, + "parentRefs": { + "items": { + "required": [] + }, + "required": [], + "title": "parentRefs", + "type": "array" + }, + "sessionPersistence": { + "additionalProperties": true, + "description": "# Session persistence configuration for the route rule.", + "required": [], + "title": "sessionPersistence", + "type": "object" + }, + "timeouts": { + "additionalProperties": true, + "description": "# Timeouts for the generated HTTPRoute backend rule.\n# Requires Gateway API CRDs and a controller that support HTTPRoute timeouts.", + "required": [], + "title": "timeouts", + "type": "object" + } + }, + "required": [], + "title": "main", + "type": "object" + } + }, + "required": [], + "title": "routePerReplica", + "type": "object" + }, "secret": { "additionalProperties": true, "description": "# Configuration for Alertmanager secret\n#", @@ -1691,6 +1878,21 @@ "title": "assertNoLeakedSecrets", "type": "boolean" }, + "authFilter": { + "additionalProperties": true, + "description": "Enable kube-state-metrics native request authn/authz on the metrics endpoints\nvia the `--auth-filter` flag, as an alternative to running kube-rbac-proxy.\nWhen enabled, the `create` permissions on `tokenreviews` and\n`subjectaccessreviews` required by the filter are added to the (Cluster)Role\nautomatically. Scrapers must authenticate; see the chart README and the\nkube-state-metrics docs on protecting metrics endpoints.", + "properties": { + "enabled": { + "default": false, + "required": [], + "title": "enabled", + "type": "boolean" + } + }, + "required": [], + "title": "authFilter", + "type": "object" + }, "automountServiceAccountToken": { "default": true, "description": "If false then the user will opt out of automounting API credentials.", @@ -1766,7 +1968,7 @@ "type": "boolean" }, "collectors": { - "description": "Available collectors for kube-state-metrics.\nBy default, all available resources are enabled, comment out to disable.", + "description": "Collectors enabled by default. Comment out entries to disable them.\nAdditional opt-in collectors are listed below.", "items": { "required": [], "type": "string" @@ -1775,6 +1977,24 @@ "title": "collectors", "type": "array" }, + "collectorsExclude": { + "description": "collectorsExclude / collectorsExtra tweak the default `collectors` list above\nwithout redefining it. Both operate on `.Values.collectors` (not on KSM's\nbuilt-in defaults): with `collectors: []` there is nothing to layer onto and\n`collectorsExtra` becomes the entire --resources list.\ncollectorsExclude removes entries from the list:", + "items": { + "required": [] + }, + "required": [], + "title": "collectorsExclude", + "type": "array" + }, + "collectorsExtra": { + "description": "- pods\ncollectorsExtra appends entries after exclusion (deduplicated):", + "items": { + "required": [] + }, + "required": [], + "title": "collectorsExtra", + "type": "array" + }, "commonLabels": { "additionalProperties": true, "description": "# Labels to apply to all resources\n#", @@ -2161,7 +2381,8 @@ "type": "array" }, "forceConflicts": { - "default": false, + "default": true, + "description": "# Force apply the CRDs, taking ownership from the manager that installed them (e.g. helm).\n# Required for the job to actually upgrade CRDs whose schema/version changed.", "required": [], "title": "forceConflicts", "type": "boolean" @@ -2420,6 +2641,116 @@ "config": { "additionalProperties": true, "description": "Definition of the CustomResourceStateMetrics. Add (Cluster)Role permissions to list/watch the resources defined in the config to rbac.extraRules.", + "properties": { + "spec": { + "additionalProperties": true, + "properties": { + "resources": { + "items": { + "additionalProperties": true, + "properties": { + "groupVersionKind": { + "additionalProperties": true, + "properties": { + "group": { + "required": [], + "title": "group", + "type": "string" + }, + "kind": { + "required": [], + "title": "kind", + "type": "string" + }, + "version": { + "required": [], + "title": "version", + "type": "string" + } + }, + "required": [], + "title": "groupVersionKind", + "type": "object" + }, + "metricNamePrefix": { + "required": [], + "title": "metricNamePrefix", + "type": "string" + }, + "metrics": { + "items": { + "additionalProperties": true, + "properties": { + "each": { + "additionalProperties": true, + "properties": { + "info": { + "additionalProperties": true, + "properties": { + "labelsFromPath": { + "additionalProperties": true, + "properties": { + "name": { + "items": { + "required": [], + "type": "string" + }, + "required": [], + "title": "name", + "type": "array" + } + }, + "required": [], + "title": "labelsFromPath", + "type": "object" + } + }, + "required": [], + "title": "info", + "type": "object" + }, + "type": { + "required": [], + "title": "type", + "type": "string" + } + }, + "required": [], + "title": "each", + "type": "object" + }, + "help": { + "required": [], + "title": "help", + "type": "string" + }, + "name": { + "required": [], + "title": "name", + "type": "string" + } + }, + "required": [], + "type": "object" + }, + "required": [], + "title": "metrics", + "type": "array" + } + }, + "required": [], + "type": "object" + }, + "required": [], + "title": "resources", + "type": "array" + } + }, + "required": [], + "title": "spec", + "type": "object" + } + }, "required": [], "title": "config", "type": "object" @@ -2520,7 +2851,7 @@ }, "additionalRuleAnnotations": { "additionalProperties": true, - "description": "# Additional annotations for PrometheusRule alerts", + "description": "# Additional annotations for specific PrometheusRule alerts by alert name", "required": [], "title": "additionalRuleAnnotations", "type": "object" @@ -3261,6 +3592,13 @@ "title": "defaultRules", "type": "object" }, + "defaultShellOptions": { + "default": "eufo pipefail", + "description": "# Configure shell options for downloading dashboards. The beginning dash is added automatically.\n# Add `x` to enable command tracing. This can expose sensitive values in logs.\n#", + "required": [], + "title": "defaultShellOptions", + "type": "string" + }, "deploymentStrategy": { "additionalProperties": true, "description": "# See `kubectl explain deployment.spec.strategy` for more\n# ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy", @@ -3397,7 +3735,7 @@ "type": "string" }, "tag": { - "default": "8.20.0", + "default": "8.22.0", "required": [], "title": "tag", "type": "string" @@ -3482,7 +3820,8 @@ "extraArgs": { "description": "# Additional container arguments\n#", "items": { - "required": [] + "required": [], + "type": "string" }, "required": [], "title": "extraArgs", @@ -3653,6 +3992,29 @@ "title": "global", "type": "object" }, + "goMemLimit": { + "additionalProperties": true, + "description": "# Configure the GOMEMLIMIT environment variable.\n# When enabled and resources.limits.memory is set, GOMEMLIMIT is injected\n# as a computed value (factor × memory limit) unless the user has already\n# defined GOMEMLIMIT via env or envValueFrom.", + "properties": { + "enabled": { + "default": true, + "description": "Enable automatic GOMEMLIMIT injection.", + "required": [], + "title": "enabled", + "type": "boolean" + }, + "factor": { + "default": 0.9, + "description": "Fraction of resources.limits.memory to use as GOMEMLIMIT (e.g. 0.9 = 90 %).", + "required": [], + "title": "factor", + "type": "number" + } + }, + "required": [], + "title": "goMemLimit", + "type": "object" + }, "gossipPortName": { "default": "gossip", "required": [], @@ -4023,6 +4385,7 @@ }, "multicluster": { "additionalProperties": true, + "description": "# Annotation the sidecar reads to decide in which Grafana folder a dashboard\n# is stored. Requires `provider.foldersFromFilesStructure` to be enabled.\n# ref: https://github.com/grafana/helm-charts/tree/main/charts/grafana#sidecar-for-dashboards\n#\nfolderAnnotation: grafana_folder", "properties": { "etcd": { "additionalProperties": true, @@ -6526,7 +6889,7 @@ "type": "string" }, "tag": { - "default": "v0.22.0", + "default": "v0.22.1", "required": [], "title": "tag", "type": "string" @@ -6536,6 +6899,13 @@ "title": "image", "type": "object" }, + "listenHost": { + "default": ":", + "description": "Host/interface prefix for --secure-listen-address (for example \":\" or \"$(POD_IP):\")", + "required": [], + "title": "listenHost", + "type": "string" + }, "port": { "default": 8100, "description": "Specify the port used for the Node exporter container (upstream port)", @@ -6777,11 +7147,51 @@ "title": "relabelings", "type": "array" }, - "sampleLimit": { - "default": 0, - "description": "# SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.\n#", - "required": [], - "title": "sampleLimit", + "resource": { + "additionalProperties": true, + "properties": { + "enabled": { + "default": false, + "description": "# Enable scraping /metrics/resource from kube-scheduler\n# https://kubernetes.io/docs/concepts/cluster-administration/system-metrics/#kube-scheduler-metrics", + "required": [], + "title": "enabled", + "type": "boolean" + }, + "interval": { + "default": "", + "description": "# Scrape interval. If not set, the Prometheus default scrape interval is used.\n#", + "required": [], + "title": "interval", + "type": "string" + }, + "metricRelabelings": { + "description": "# MetricRelabelConfigs to apply to samples after scraping, but before ingestion.\n# ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig\n#", + "items": { + "required": [] + }, + "required": [], + "title": "metricRelabelings", + "type": "array" + }, + "relabelings": { + "description": "# RelabelConfigs to apply to samples before scraping\n# ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig\n#", + "items": { + "required": [] + }, + "required": [], + "title": "relabelings", + "type": "array" + } + }, + "required": [], + "title": "resource", + "type": "object" + }, + "sampleLimit": { + "default": 0, + "description": "# SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.\n#", + "required": [], + "title": "sampleLimit", "type": "integer" }, "selector": { @@ -7351,6 +7761,65 @@ "title": "lifecycleHooks", "type": "object" }, + "listenerSet": { + "additionalProperties": true, + "description": "BETA: Configure Gateway API ListenerSet resources for the chart here.\nListenerSet allows attaching additional listeners to an existing Gateway.\nMore listener sets can be added by adding a dictionary key like the 'main' entry.\nBeing BETA this can/will change in the future without notice, do not use unless you want to take that risk\n[[ref]](https://gateway-api.sigs.k8s.io/reference/api-spec/main/spec/#listenerset)", + "properties": { + "main": { + "additionalProperties": true, + "properties": { + "annotations": { + "additionalProperties": true, + "required": [], + "title": "annotations", + "type": "object" + }, + "apiVersion": { + "default": "gateway.networking.k8s.io/v1", + "description": "Set the ListenerSet apiVersion, e.g. gateway.networking.k8s.io/v1", + "required": [], + "title": "apiVersion", + "type": "string" + }, + "enabled": { + "default": false, + "description": "Enables or disables the listener set", + "required": [], + "title": "enabled", + "type": "boolean" + }, + "labels": { + "additionalProperties": true, + "required": [], + "title": "labels", + "type": "object" + }, + "listeners": { + "description": "List of listeners to attach to the parent Gateway", + "items": { + "required": [] + }, + "required": [], + "title": "listeners", + "type": "array" + }, + "parentRef": { + "additionalProperties": true, + "description": "Reference to the parent Gateway this ListenerSet attaches to", + "required": [], + "title": "parentRef", + "type": "object" + } + }, + "required": [], + "title": "main", + "type": "object" + } + }, + "required": [], + "title": "listenerSet", + "type": "object" + }, "livenessProbe": { "additionalProperties": true, "description": "# Liveness probe\n#", @@ -7562,13 +8031,6 @@ "title": "explicitNamespacesSelector", "type": "object" }, - "flavor": { - "default": "kubernetes", - "description": "networkPolicy.flavor -- Flavor of the network policy to use.\nCan be:\n* kubernetes for networking.k8s.io/v1/NetworkPolicy\n* cilium for cilium.io/v2/CiliumNetworkPolicy", - "required": [], - "title": "flavor", - "type": "string" - }, "ingress": { "default": true, "description": "networkPolicy.allowExternal Don't require client label for connections\nThe Policy model to apply. When set to false, only pods with the correct\nclient label will have network access to grafana port defined.\nWhen true, grafana will accept connections from any source\n(with the correct destination port).\n", @@ -7842,6 +8304,13 @@ "title": "lookupVolumeName", "type": "boolean" }, + "persistentVolumeClaimRetentionPolicy": { + "additionalProperties": true, + "description": "# Configure StatefulSet persistent volume claim retention policy.\n# This is ignored when Grafana is configured to use a Deployment with a PVC.\n# By default, Kubernetes uses Retain for both whenDeleted and whenScaled.", + "required": [], + "title": "persistentVolumeClaimRetentionPolicy", + "type": "object" + }, "size": { "default": "10Gi", "required": [], @@ -8146,6 +8615,13 @@ "properties": { "additionalLabels": { "additionalProperties": true, + "properties": { + "release": { + "required": [], + "title": "release", + "type": "string" + } + }, "required": [], "title": "additionalLabels", "type": "object" @@ -8235,7 +8711,30 @@ }, "metricRelabelings": { "items": { - "required": [] + "additionalProperties": true, + "properties": { + "action": { + "required": [], + "title": "action", + "type": "string" + }, + "regex": { + "required": [], + "title": "regex", + "type": "string" + }, + "sourceLabels": { + "items": { + "required": [], + "type": "string" + }, + "required": [], + "title": "sourceLabels", + "type": "array" + } + }, + "required": [], + "type": "object" }, "required": [], "title": "metricRelabelings", @@ -8249,7 +8748,25 @@ }, "relabelings": { "items": { - "required": [] + "additionalProperties": true, + "properties": { + "sourceLabels": { + "items": { + "required": [], + "type": "string" + }, + "required": [], + "title": "sourceLabels", + "type": "array" + }, + "targetLabel": { + "required": [], + "title": "targetLabel", + "type": "string" + } + }, + "required": [], + "type": "object" }, "required": [], "title": "relabelings", @@ -8470,7 +8987,8 @@ "targetLabels": { "description": "List of target labels to add to node exporter metrics\nhttps://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor", "items": { - "required": [] + "required": [], + "type": "string" }, "required": [], "title": "targetLabels", @@ -8933,6 +9451,13 @@ "title": "automountServiceAccountToken", "type": "boolean" }, + "bodySizeLimit": { + "default": "", + "description": "# BodySizeLimit defines a global limit on the size of uncompressed response body that will be accepted. Example: 100MB.", + "required": [], + "title": "bodySizeLimit", + "type": "string" + }, "configMaps": { "description": "# ConfigMaps is a list of ConfigMaps in the same namespace as the Prometheus object, which shall be mounted into the Prometheus Pods.\n# The ConfigMaps are mounted into /etc/prometheus/configmaps/.\n#", "items": { @@ -9016,6 +9541,20 @@ "title": "enableRemoteWriteReceiver", "type": "boolean" }, + "enableServiceLinks": { + "default": "~", + "description": "# EnableServiceLinks indicates whether information about services should be injected into the pod's environment\n# variables. Uses the operator/Kubernetes default when left unset (~).", + "required": [], + "title": "enableServiceLinks", + "type": "null" + }, + "enforcedBodySizeLimit": { + "default": "", + "description": "# EnforcedBodySizeLimit defines the maximum size of uncompressed response body that will be accepted, overriding any\n# value set per ServiceMonitor/PodMonitor. Example: 100MB. Empty means no limit.", + "required": [], + "title": "enforcedBodySizeLimit", + "type": "string" + }, "enforcedKeepDroppedTargets": { "default": 0, "description": "EnforcedKeepDroppedTargetsLimit defines on the number of targets dropped by relabeling that will be kept in memory.\nThe value overrides any spec.keepDroppedTargets set by ServiceMonitor, PodMonitor, Probe objects unless spec.keepDroppedTargets\nis greater than zero and less than spec.enforcedKeepDroppedTargets. 0 means no limit.", @@ -9161,7 +9700,7 @@ "type": "string" }, "tag": { - "default": "v3.12.0-distroless", + "default": "v3.14.0-distroless", "required": [], "title": "tag", "type": "string" @@ -9180,6 +9719,34 @@ "title": "initContainers", "type": "array" }, + "keepDroppedTargets": { + "default": 0, + "description": "# Per-scrape limit on the number of targets dropped by relabeling that will be kept in memory. 0 means no limit.", + "required": [], + "title": "keepDroppedTargets", + "type": "integer" + }, + "labelLimit": { + "default": 0, + "description": "# Per-scrape limit on number of labels that will be accepted for a sample. 0 means no limit.", + "required": [], + "title": "labelLimit", + "type": "integer" + }, + "labelNameLengthLimit": { + "default": 0, + "description": "# Per-scrape limit on length of labels name that will be accepted for a sample. 0 means no limit.", + "required": [], + "title": "labelNameLengthLimit", + "type": "integer" + }, + "labelValueLengthLimit": { + "default": 0, + "description": "# Per-scrape limit on length of labels value that will be accepted for a sample. 0 means no limit.", + "required": [], + "title": "labelValueLengthLimit", + "type": "integer" + }, "listenLocal": { "default": false, "description": "# ListenLocal makes the Prometheus server listen on loopback, so that it does not bind against the Pod IP.\n#", @@ -9215,6 +9782,13 @@ "title": "minReadySeconds", "type": "integer" }, + "nameEscapingScheme": { + "default": "", + "description": "# Specifies the character escaping scheme applied to metric and label names.\n# Supported values are: AllowUTF8, Underscores, Dots, Values", + "required": [], + "title": "nameEscapingScheme", + "type": "string" + }, "nameValidationScheme": { "default": "", "description": "# Specifies the validation scheme for metric and label names.\n# Supported values are: Legacy, UTF8", @@ -9394,6 +9968,13 @@ "title": "queryLogFile", "type": "boolean" }, + "reloadStrategy": { + "default": "", + "description": "# Defines the strategy used to reload the Prometheus configuration.\n# Supported values are: HTTP, ProcessSignal", + "required": [], + "title": "reloadStrategy", + "type": "string" + }, "remoteRead": { "description": "# The remote_read spec configuration for Prometheus.\n# ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#remotereadspec", "items": { @@ -9419,6 +10000,15 @@ "title": "remoteWriteDashboards", "type": "boolean" }, + "remoteWriteReceiverMessageVersions": { + "description": "# List of the protobuf message versions to accept when receiving the remote writes. Example: [V1.0, V2.0].", + "items": { + "required": [] + }, + "required": [], + "title": "remoteWriteReceiverMessageVersions", + "type": "array" + }, "replicaExternalLabelName": { "default": "", "description": "# Name of the external label used to denote replica name\n#", @@ -9475,6 +10065,13 @@ "title": "ruleNamespaceSelector", "type": "object" }, + "ruleQueryOffset": { + "default": "", + "description": "# Defines the offset the rule evaluation timestamp of the rule evaluation queries is shifted backwards.\n# ref: https://github.com/prometheus-community/helm-charts/issues/5843", + "required": [], + "title": "ruleQueryOffset", + "type": "string" + }, "ruleSelector": { "additionalProperties": true, "description": "# PrometheusRules to be selected for target discovery.\n# If {}, select all PrometheusRules\n#", @@ -9489,6 +10086,13 @@ "title": "ruleSelectorNilUsesHelmValues", "type": "boolean" }, + "runtime": { + "additionalProperties": true, + "description": "# RuntimeConfig configures the values for the Prometheus process behavior.", + "required": [], + "title": "runtime", + "type": "object" + }, "sampleLimit": { "default": false, "description": "Use to set global sample_limit for Prometheus. This act as default SampleLimit for ServiceMonitor or/and PodMonitor.\nSet to 'false' to disable global sample_limit. or set to a number to override the default value.", @@ -9496,6 +10100,13 @@ "title": "sampleLimit", "type": "boolean" }, + "schedulerName": { + "default": "", + "description": "# Set the scheduler name to use for the Prometheus pods.", + "required": [], + "title": "schedulerName", + "type": "string" + }, "scrapeClasses": { "description": "# List of scrape classes to expose to scraping objects such as\n# PodMonitors, ServiceMonitors, Probes and ScrapeConfigs.\n#", "items": { @@ -9661,9 +10272,23 @@ "title": "serviceName", "type": "null" }, + "shardRetentionPolicy": { + "additionalProperties": true, + "description": "# Defines the retention policy for the resources of stale shards after a scale-down.\n# ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ShardRetentionPolicy", + "required": [], + "title": "shardRetentionPolicy", + "type": "object" + }, + "shardingStrategy": { + "additionalProperties": true, + "description": "# Defines the sharding strategy applied by the operator.\n# ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ShardingStrategy", + "required": [], + "title": "shardingStrategy", + "type": "object" + }, "shards": { "default": 1, - "description": "# EXPERIMENTAL: Number of shards to distribute targets onto.\n# Number of replicas multiplied by shards is the total number of Pods created.\n# Note that scaling down shards will not reshard data onto remaining instances, it must be manually moved.\n# Increasing shards will not reshard data either but it will continue to be available from the same instances.\n# To query globally use Thanos sidecar and Thanos querier or remote write data to a central location.\n# Sharding is done on the content of the `__address__` target meta-label.\n#", + "description": "# EXPERIMENTAL: Number of shards to distribute targets onto.\n# Number of replicas multiplied by shards is the total number of Pods created.\n# Note that scaling down shards will not reshard data onto remaining instances, it must be manually moved.\n# Increasing shards will not reshard data either but it will continue to be available from the same instances.\n# To query globally use Thanos sidecar and Thanos querier or remote write data to a central location.\n# Sharding is done on the content of the `__address__` target meta-label.\n# Set shards to null to omit spec.shards from the Prometheus custom resource (the operator then\n# defaults to 1 shard). Omitting the field lets an external autoscaler such as an HPA or a KEDA\n# ScaledObject own spec.shards through the /scale subresource without Helm reverting it.\n#", "required": [], "title": "shards", "type": "integer" @@ -9675,6 +10300,13 @@ "title": "storageSpec", "type": "object" }, + "targetLimit": { + "default": 0, + "description": "# TargetLimit defines a global limit on the number of scraped targets. 0 means no limit.", + "required": [], + "title": "targetLimit", + "type": "integer" + }, "terminationGracePeriodSeconds": { "default": "~", "description": "# Duration in seconds the pod needs to terminate gracefully.\n# ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination", @@ -9721,68 +10353,206 @@ "outOfOrderTimeWindow": { "default": "0s", "required": [], - "title": "outOfOrderTimeWindow", - "type": "string" + "title": "outOfOrderTimeWindow", + "type": "string" + } + }, + "required": [], + "title": "tsdb", + "type": "object" + }, + "updateStrategy": { + "additionalProperties": true, + "description": "# Update strategy for the StatefulSet.\n# ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies", + "required": [], + "title": "updateStrategy", + "type": "object" + }, + "version": { + "default": "", + "description": "# Sets version of Prometheus overriding the Prometheus version as derived\n# from the image tag. Useful in cases where the tag does not follow semver v2.", + "required": [], + "title": "version", + "type": "string" + }, + "volumeMounts": { + "description": "Additional VolumeMounts on the output StatefulSet definition.", + "items": { + "required": [] + }, + "required": [], + "title": "volumeMounts", + "type": "array" + }, + "volumes": { + "description": "Additional volumes on the output StatefulSet definition.", + "items": { + "required": [] + }, + "required": [], + "title": "volumes", + "type": "array" + }, + "walCompression": { + "default": true, + "description": "# Enable compression of the write-ahead log using Snappy.\n#", + "required": [], + "title": "walCompression", + "type": "boolean" + }, + "web": { + "additionalProperties": true, + "description": "# WebTLSConfig defines the TLS parameters for HTTPS\n# ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#webtlsconfig", + "required": [], + "title": "web", + "type": "object" + } + }, + "required": [], + "title": "prometheusSpec", + "type": "object" + }, + "route": { + "additionalProperties": true, + "description": "BETA: Configure the gateway routes for the chart here.\nMore routes can be added by adding a dictionary key like the 'main' route.\nBe aware that this is an early beta of this feature,\nkube-prometheus-stack does not guarantee this works and is subject to change.\nBeing BETA this can/will change in the future without notice, do not use unless you want to take that risk\n[[ref]](https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io%2fv1alpha2)", + "properties": { + "main": { + "additionalProperties": true, + "properties": { + "additionalRules": { + "description": "# Additional custom rules that can be added to the route", + "items": { + "required": [] + }, + "required": [], + "title": "additionalRules", + "type": "array" + }, + "annotations": { + "additionalProperties": true, + "required": [], + "title": "annotations", + "type": "object" + }, + "apiVersion": { + "default": "gateway.networking.k8s.io/v1", + "description": "Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2", + "required": [], + "title": "apiVersion", + "type": "string" + }, + "enabled": { + "default": false, + "description": "Enables or disables the route", + "required": [], + "title": "enabled", + "type": "boolean" + }, + "filters": { + "description": "# Filters define the filters that are applied to requests that match this rule.", + "items": { + "required": [] + }, + "required": [], + "title": "filters", + "type": "array" + }, + "hostnames": { + "items": { + "required": [] + }, + "required": [], + "title": "hostnames", + "type": "array" + }, + "httpsRedirect": { + "default": false, + "description": "create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects)\n# Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect.\n# matches, filters and additionalRules will be ignored if this is set to true. Be are", + "required": [], + "title": "httpsRedirect", + "type": "boolean" + }, + "kind": { + "default": "HTTPRoute", + "description": "Set the route kind\nValid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute", + "required": [], + "title": "kind", + "type": "string" + }, + "labels": { + "additionalProperties": true, + "required": [], + "title": "labels", + "type": "object" + }, + "matches": { + "items": { + "additionalProperties": true, + "properties": { + "path": { + "additionalProperties": true, + "properties": { + "type": { + "default": "PathPrefix", + "required": [], + "title": "type", + "type": "string" + }, + "value": { + "default": "/", + "required": [], + "title": "value", + "type": "string" + } + }, + "required": [], + "title": "path", + "type": "object" + } + }, + "required": [], + "type": "object" + }, + "required": [], + "title": "matches", + "type": "array" + }, + "parentRefs": { + "description": "- my-filter.example.com", + "items": { + "required": [] + }, + "required": [], + "title": "parentRefs", + "type": "array" + }, + "sessionPersistence": { + "additionalProperties": true, + "description": "# Session persistence configuration for the route rule.", + "required": [], + "title": "sessionPersistence", + "type": "object" + }, + "timeouts": { + "additionalProperties": true, + "description": "# Timeouts for the generated HTTPRoute backend rule.\n# Requires Gateway API CRDs and a controller that support HTTPRoute timeouts.", + "required": [], + "title": "timeouts", + "type": "object" } }, "required": [], - "title": "tsdb", - "type": "object" - }, - "updateStrategy": { - "additionalProperties": true, - "description": "# Update strategy for the StatefulSet.\n# ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies", - "required": [], - "title": "updateStrategy", - "type": "object" - }, - "version": { - "default": "", - "description": "# Sets version of Prometheus overriding the Prometheus version as derived\n# from the image tag. Useful in cases where the tag does not follow semver v2.", - "required": [], - "title": "version", - "type": "string" - }, - "volumeMounts": { - "description": "Additional VolumeMounts on the output StatefulSet definition.", - "items": { - "required": [] - }, - "required": [], - "title": "volumeMounts", - "type": "array" - }, - "volumes": { - "description": "Additional volumes on the output StatefulSet definition.", - "items": { - "required": [] - }, - "required": [], - "title": "volumes", - "type": "array" - }, - "walCompression": { - "default": true, - "description": "# Enable compression of the write-ahead log using Snappy.\n#", - "required": [], - "title": "walCompression", - "type": "boolean" - }, - "web": { - "additionalProperties": true, - "description": "# WebTLSConfig defines the TLS parameters for HTTPS\n# ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#webtlsconfig", - "required": [], - "title": "web", + "title": "main", "type": "object" } }, "required": [], - "title": "prometheusSpec", + "title": "route", "type": "object" }, - "route": { + "routePerReplica": { "additionalProperties": true, - "description": "BETA: Configure the gateway routes for the chart here.\nMore routes can be added by adding a dictionary key like the 'main' route.\nBe aware that this is an early beta of this feature,\nkube-prometheus-stack does not guarantee this works and is subject to change.\nBeing BETA this can/will change in the future without notice, do not use unless you want to take that risk\n[[ref]](https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io%2fv1alpha2)", + "description": "# Configuration for creating a Gateway API route that will map to each Prometheus replica service\n# prometheus.servicePerReplica must be enabled\n#", "properties": { "main": { "additionalProperties": true, @@ -9811,7 +10581,7 @@ }, "enabled": { "default": false, - "description": "Enables or disables the route", + "description": "Enables or disables the routePerReplica", "required": [], "title": "enabled", "type": "boolean" @@ -9825,17 +10595,23 @@ "title": "filters", "type": "array" }, - "hostnames": { - "items": { - "required": [] - }, + "hostDomain": { + "default": "", + "description": "# Domain that will be used for the per replica route", "required": [], - "title": "hostnames", - "type": "array" + "title": "hostDomain", + "type": "string" + }, + "hostPrefix": { + "default": "", + "description": "# Final form of the hostname for each per replica route is\n# {{ routePerReplica.hostPrefix }}-{{ $replicaNumber }}.{{ routePerReplica.hostDomain }}\n#\n# Prefix for the per replica route that will have `-$replicaNumber` appended to the end", + "required": [], + "title": "hostPrefix", + "type": "string" }, "httpsRedirect": { "default": false, - "description": "create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects)\n# Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect.\n# matches, filters and additionalRules will be ignored if this is set to true. Be are", + "description": "create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects)\n# Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect.\n# matches, filters and additionalRules will be ignored if this is set to true.", "required": [], "title": "httpsRedirect", "type": "boolean" @@ -9886,7 +10662,6 @@ "type": "array" }, "parentRefs": { - "description": "- my-filter.example.com", "items": { "required": [] }, @@ -9900,6 +10675,13 @@ "required": [], "title": "sessionPersistence", "type": "object" + }, + "timeouts": { + "additionalProperties": true, + "description": "# Timeouts for the generated HTTPRoute backend rule.\n# Requires Gateway API CRDs and a controller that support HTTPRoute timeouts.", + "required": [], + "title": "timeouts", + "type": "object" } }, "required": [], @@ -9908,7 +10690,7 @@ } }, "required": [], - "title": "route", + "title": "routePerReplica", "type": "object" }, "scrapeconfig": { @@ -11981,7 +12763,7 @@ "type": "string" }, "tag": { - "default": "1.8.3", + "default": "1.8.8", "required": [], "title": "tag", "type": "string" @@ -12322,6 +13104,13 @@ "title": "extraVolumes", "type": "array" }, + "featureGates": { + "additionalProperties": true, + "description": "# Feature gates to enable/disable operator features, rendered as --feature-gates=\u003ckey\u003e=\u003cvalue\u003e.\n# See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/feature-gates.md\n# Example:\n# featureGates:\n# PrometheusAgentDaemonSet: true\n# StatusForConfigurationResources: true", + "required": [], + "title": "featureGates", + "type": "object" + }, "fullnameOverride": { "default": "", "description": "# Use '{{ template \"kube-prometheus-stack.fullname\" . }}-operator' by default", @@ -13029,7 +13818,7 @@ "type": "string" }, "tag": { - "default": "v0.41.0", + "default": "v0.42.4", "required": [], "title": "tag", "type": "string" @@ -13160,6 +13949,15 @@ "rbac": { "additionalProperties": true, "properties": { + "clusterRoleSelectors": { + "description": "Aggregate ClusterRoles using label selectors (only applies when useClusterRole: true).\nWhen set, this ClusterRole aggregates matching ClusterRoles instead of defining rules\ndirectly, so the built-in collector rules above are NOT included. Make sure the\naggregated ClusterRoles grant the permissions kube-state-metrics needs.\nref: https://kubernetes.io/docs/reference/access-authn-authz/rbac/#aggregated-clusterroles\nExample:\nclusterRoleSelectors:\n - matchLabels:\n rbac.example.com/aggregate-to-monitoring: \"true\"", + "items": { + "required": [] + }, + "required": [], + "title": "clusterRoleSelectors", + "type": "array" + }, "create": { "default": true, "description": "# If true, create \u0026 use RBAC resources\n#", @@ -13167,6 +13965,21 @@ "title": "create", "type": "boolean" }, + "customResourceState": { + "additionalProperties": true, + "description": "Set to false only when the customresourcedefinitions list/watch permission is\ngranted to the ServiceAccount by other means (e.g. a cluster-scoped ClusterRole\nmanaged outside this chart). kube-state-metrics always needs it for\ncustomResourceState; this only controls whether the chart creates the rule.", + "properties": { + "createClusterRoleRules": { + "default": true, + "required": [], + "title": "createClusterRoleRules", + "type": "boolean" + } + }, + "required": [], + "title": "customResourceState", + "type": "object" + }, "extraClusterRoleRules": { "description": "- apiGroups: []\n resources: []\n verbs: []", "items": { @@ -14390,7 +15203,7 @@ "type": "string" }, "tag": { - "default": "2.7.3", + "default": "2.11.2", "required": [], "title": "tag", "type": "string" @@ -14878,7 +15691,7 @@ "type": "string" }, "tag": { - "default": "1.13.0", + "default": "1.14.0", "required": [], "title": "tag", "type": "string" @@ -15158,6 +15971,13 @@ "required": [], "title": "sessionPersistence", "type": "object" + }, + "timeouts": { + "additionalProperties": true, + "description": "# Timeouts for the generated HTTPRoute backend rule.\n# Requires Gateway API CRDs and a controller that support HTTPRoute timeouts.", + "required": [], + "title": "timeouts", + "type": "object" } }, "required": [], @@ -15486,6 +16306,36 @@ "title": "alertDropLabels", "type": "array" }, + "alertRelabelConfigFile": { + "default": "", + "description": "# Path to an alert relabel configuration file on disk. Takes precedence over alertRelabelConfigs.", + "required": [], + "title": "alertRelabelConfigFile", + "type": "string" + }, + "alertRelabelConfigs": { + "additionalProperties": true, + "description": "# Configures alert relabeling for Thanos Ruler. Maps to the alert.relabel-config CLI argument.", + "properties": { + "existingSecret": { + "additionalProperties": true, + "description": "use existing secret, if configured, alertRelabelConfigs.secret will not be used", + "required": [], + "title": "existingSecret", + "type": "object" + }, + "secret": { + "additionalProperties": true, + "description": "name: \"\"\nkey: \"\"\nrender alertRelabelConfigs secret data and configure it to be used by Thanos Ruler custom resource, ignored when alertRelabelConfigs.existingSecret is set", + "required": [], + "title": "secret", + "type": "object" + } + }, + "required": [], + "title": "alertRelabelConfigs", + "type": "object" + }, "alertmanagersConfig": { "additionalProperties": true, "description": "# AlertmanagerConfig define configuration for connecting to alertmanager.\n# Only available with Thanos v0.10.0 and higher. Maps to the alertmanagers.config Thanos Ruler arg.", @@ -15518,6 +16368,43 @@ "title": "containers", "type": "array" }, + "dnsConfig": { + "additionalProperties": true, + "description": "# Defines the DNS configuration for the pods.", + "required": [], + "title": "dnsConfig", + "type": "object" + }, + "dnsPolicy": { + "default": "", + "description": "# Defines the DNS policy for the pods.", + "required": [], + "title": "dnsPolicy", + "type": "string" + }, + "enableFeatures": { + "description": "# EnableFeatures API enables access to Thanos Ruler disabled features.", + "items": { + "required": [] + }, + "required": [], + "title": "enableFeatures", + "type": "array" + }, + "enableServiceLinks": { + "default": "~", + "description": "# EnableServiceLinks indicates whether information about services should be injected into the\n# pod's environment variables. Uses the operator/Kubernetes default when left unset (~).", + "required": [], + "title": "enableServiceLinks", + "type": "null" + }, + "enforcedNamespaceLabel": { + "default": "", + "description": "# EnforcedNamespaceLabel enforces adding a namespace label of origin for each alert and metric.", + "required": [], + "title": "enforcedNamespaceLabel", + "type": "string" + }, "evaluationInterval": { "default": "", "description": "# Interval between consecutive evaluations.\n#", @@ -15525,6 +16412,15 @@ "title": "evaluationInterval", "type": "string" }, + "excludedFromEnforcement": { + "description": "# List of references to PrometheusRule objects to be excluded from enforcement (requires enforcedNamespaceLabel).\n# Can be a list of objects, or a string that is passed through tpl.", + "items": { + "required": [] + }, + "required": [], + "title": "excludedFromEnforcement", + "type": "array" + }, "externalPrefix": { "default": "", "description": "# The external URL the Thanos Ruler instances will be available under. This is necessary to generate correct URLs. This is necessary if Thanos Ruler is not served from root of a DNS name. string false\n#", @@ -15548,6 +16444,22 @@ "title": "extraEnv", "type": "array" }, + "grpcServerTlsConfig": { + "additionalProperties": true, + "description": "# Configures the gRPC server TLS for Thanos Ruler.\n# ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.TLSConfig", + "required": [], + "title": "grpcServerTlsConfig", + "type": "object" + }, + "hostAliases": { + "description": "# Pods' hostAliases configuration\n# ref: https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/", + "items": { + "required": [] + }, + "required": [], + "title": "hostAliases", + "type": "array" + }, "hostUsers": { "default": "~", "description": "# Use the host's user namespace for ThanosRuler pods.\n# ref: https://kubernetes.io/docs/tasks/configure-pod-container/user-namespaces/", @@ -15578,7 +16490,7 @@ "type": "string" }, "tag": { - "default": "v0.41.0", + "default": "v0.42.4", "required": [], "title": "tag", "type": "string" @@ -15588,6 +16500,13 @@ "title": "image", "type": "object" }, + "imagePullPolicy": { + "default": "", + "description": "# Image pull policy for the Thanos Ruler container.", + "required": [], + "title": "imagePullPolicy", + "type": "string" + }, "initContainers": { "description": "# InitContainers allows injecting additional initContainers. This is meant to allow doing some changes\n# (permissions, dir tree) on mounted volumes before starting prometheus", "items": { @@ -15625,6 +16544,13 @@ "title": "logLevel", "type": "string" }, + "minReadySeconds": { + "default": "~", + "description": "# Minimum number of seconds for which a newly created pod should be ready without any of its\n# containers crashing/restarting for it to be considered available.", + "required": [], + "title": "minReadySeconds", + "type": "null" + }, "nodeSelector": { "additionalProperties": true, "description": "# Define which Nodes the Pods are scheduled on.\n# ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector\n#", @@ -15655,6 +16581,13 @@ "title": "objectStorageConfig", "type": "object" }, + "objectStorageConfigFile": { + "default": "", + "description": "# Path to an object storage configuration file on disk. Takes precedence over objectStorageConfig.", + "required": [], + "title": "objectStorageConfigFile", + "type": "string" + }, "paused": { "default": false, "description": "# If set to true all actions on the underlying managed objects are not going to be performed, except for delete actions.\n#", @@ -15736,6 +16669,15 @@ "title": "queryEndpoints", "type": "array" }, + "remoteWrite": { + "description": "# Defines the list of remote write configurations. When not empty, the Thanos Ruler operates in stateless mode.\n# ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.RemoteWriteSpec", + "items": { + "required": [] + }, + "required": [], + "title": "remoteWrite", + "type": "array" + }, "replicas": { "default": 1, "description": "# Size is the expected size of the thanosRuler cluster. The controller will eventually make the size of the\n# running cluster equal to the expected size.", @@ -15743,6 +16685,13 @@ "title": "replicas", "type": "integer" }, + "resendDelay": { + "default": "", + "description": "# Minimum amount of time to wait before resending an alert to Alertmanager.", + "required": [], + "title": "resendDelay", + "type": "string" + }, "resources": { "additionalProperties": true, "description": "# Define resources requests and limits for single Pods.\n# ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\n#", @@ -15764,6 +16713,20 @@ "title": "routePrefix", "type": "string" }, + "ruleConcurrentEval": { + "default": "~", + "description": "# Number of concurrent rule evaluations.", + "required": [], + "title": "ruleConcurrentEval", + "type": "null" + }, + "ruleGracePeriod": { + "default": "", + "description": "# Minimum duration between alert and restored \"for\" state. Maintained only for alerts with a configured \"for\"\n# time greater than the grace period.", + "required": [], + "title": "ruleGracePeriod", + "type": "string" + }, "ruleNamespaceSelector": { "additionalProperties": true, "description": "# Namespaces to be selected for PrometheusRules discovery.\n# If nil, select own namespace. Namespaces to be selected for ServiceMonitor discovery.\n# See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#namespaceselector for usage\n#", @@ -15771,6 +16734,20 @@ "title": "ruleNamespaceSelector", "type": "object" }, + "ruleOutageTolerance": { + "default": "", + "description": "# Maximum time to tolerate outage for restoring \"for\" state of alert.", + "required": [], + "title": "ruleOutageTolerance", + "type": "string" + }, + "ruleQueryOffset": { + "default": "", + "description": "# The default rule group's query offset duration to shift the evaluation time of rules backwards.\n# ref: https://github.com/prometheus-community/helm-charts/issues/5843", + "required": [], + "title": "ruleQueryOffset", + "type": "string" + }, "ruleSelector": { "additionalProperties": true, "description": "# PrometheusRules to be selected for target discovery.\n# If {}, select all PrometheusRules\n#", @@ -15871,6 +16848,36 @@ "title": "topologySpreadConstraints", "type": "array" }, + "tracingConfig": { + "additionalProperties": true, + "description": "# Configures tracing for Thanos Ruler. Maps to the tracing.config CLI argument.", + "properties": { + "existingSecret": { + "additionalProperties": true, + "description": "use existing secret, if configured, tracingConfig.secret will not be used", + "required": [], + "title": "existingSecret", + "type": "object" + }, + "secret": { + "additionalProperties": true, + "description": "name: \"\"\nkey: \"\"\nrender tracingConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when tracingConfig.existingSecret is set", + "required": [], + "title": "secret", + "type": "object" + } + }, + "required": [], + "title": "tracingConfig", + "type": "object" + }, + "tracingConfigFile": { + "default": "", + "description": "# Path to a tracing configuration file on disk (e.g. mounted through a volume). Takes precedence over tracingConfig.", + "required": [], + "title": "tracingConfigFile", + "type": "string" + }, "updateStrategy": { "additionalProperties": true, "description": "# Update strategy for the StatefulSet.\n# ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies", @@ -15878,6 +16885,13 @@ "title": "updateStrategy", "type": "object" }, + "version": { + "default": "", + "description": "# Version of Thanos Ruler to deploy. Overrides the version derived from the image tag when set.", + "required": [], + "title": "version", + "type": "string" + }, "volumeMounts": { "description": "Additional VolumeMounts on the output StatefulSet definition.", "items": { @@ -16177,4 +17191,4 @@ }, "required": [], "type": "object" -} +} \ No newline at end of file diff --git a/docs/examples/src/charts/kube_prometheus_stack/values.schema.k b/docs/examples/src/charts/kube_prometheus_stack/values.schema.k index 9756147a..715a42fc 100644 --- a/docs/examples/src/charts/kube_prometheus_stack/values.schema.k +++ b/docs/examples/src/charts/kube_prometheus_stack/values.schema.k @@ -38,6 +38,13 @@ schema Values: Alternatively, if you wish to allow secret values to be exposed in the rendered grafana.ini configmap, you can disable this check by setting assertNoLeakedSecrets to false. + authFilter : ValuesAuthFilter, optional + Enable kube-state-metrics native request authn/authz on the metrics endpoints + via the `--auth-filter` flag, as an alternative to running kube-rbac-proxy. + When enabled, the `create` permissions on `tokenreviews` and + `subjectaccessreviews` required by the filter are added to the (Cluster)Role + automatically. Scrapers must authenticate; see the chart README and the + kube-state-metrics docs on protecting metrics endpoints. automountServiceAccountToken : bool, optional, default is True If false then the user will opt out of automounting API credentials. autoscaling : ValuesAutoscaling, optional @@ -52,8 +59,17 @@ schema Values: # Setting to true produces cleaner resource names, but requires a data migration because the name of the persistent volume changes. Therefore this should only be set once on initial installation. # collectors : [str], optional - Available collectors for kube-state-metrics. - By default, all available resources are enabled, comment out to disable. + Collectors enabled by default. Comment out entries to disable them. + Additional opt-in collectors are listed below. + collectorsExclude : [any], optional + collectorsExclude / collectorsExtra tweak the default `collectors` list above + without redefining it. Both operate on `.Values.collectors` (not on KSM's + built-in defaults): with `collectors: []` there is nothing to layer onto and + `collectorsExtra` becomes the entire --resources list. + collectorsExclude removes entries from the list: + collectorsExtra : [any], optional + - pods + collectorsExtra appends entries after exclusion (deduplicated): commonLabels : ValuesCommonLabels, optional # Labels to apply to all resources # @@ -126,6 +142,10 @@ schema Values: defaultRules : ValuesDefaultRules, optional # Create default rules for monitoring the cluster # + defaultShellOptions : str, optional, default is "eufo pipefail" + # Configure shell options for downloading dashboards. The beginning dash is added automatically. + # Add `x` to enable command tracing. This can expose sensitive values in logs. + # deploymentStrategy : ValuesDeploymentStrategy, optional # See `kubectl explain deployment.spec.strategy` for more # ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy @@ -175,7 +195,7 @@ schema Values: # - name: # valueFrom: # - extraArgs : [any], optional + extraArgs : [str], optional # Additional container arguments # extraConfigmapMounts : [any], optional @@ -213,6 +233,11 @@ schema Values: # global : ValuesGlobal, optional # + goMemLimit : ValuesGoMemLimit, optional + # Configure the GOMEMLIMIT environment variable. + # When enabled and resources.limits.memory is set, GOMEMLIMIT is injected + # as a computed value (factor × memory limit) unless the user has already + # defined GOMEMLIMIT via env or envValueFrom. gossipPortName : str, optional, default is "gossip" grafana : ValuesGrafana, optional # Using default values from https://github.com/grafana-community/helm-charts/blob/main/charts/grafana/values.yaml @@ -304,6 +329,12 @@ schema Values: # ref: http://docs.grafana.org/installation/ldap/#configuration lifecycleHooks : ValuesLifecycleHooks, optional # Container Lifecycle Hooks. Execute a specific bash command or make an HTTP request + listenerSet : ValuesListenerSet, optional + BETA: Configure Gateway API ListenerSet resources for the chart here. + ListenerSet allows attaching additional listeners to an existing Gateway. + More listener sets can be added by adding a dictionary key like the 'main' entry. + Being BETA this can/will change in the future without notice, do not use unless you want to take that risk + [[ref]](https://gateway-api.sigs.k8s.io/reference/api-spec/main/spec/#listenerset) livenessProbe : ValuesLivenessProbe, optional # Liveness probe # @@ -507,11 +538,14 @@ schema Values: alertmanager?: ValuesAlertmanager annotations?: ValuesAnnotations assertNoLeakedSecrets?: bool + authFilter?: ValuesAuthFilter automountServiceAccountToken?: bool autoscaling?: ValuesAutoscaling autosharding?: ValuesAutosharding cleanPrometheusOperatorObjectNames?: bool collectors?: [str] + collectorsExclude?: [any] + collectorsExtra?: [any] commonLabels?: ValuesCommonLabels config?: str configmaps?: [any] @@ -530,6 +564,7 @@ schema Values: datasources?: ValuesDatasources defaultCurlOptions?: str defaultRules?: ValuesDefaultRules + defaultShellOptions?: str deploymentStrategy?: ValuesDeploymentStrategy dnsConfig?: ValuesDnsConfig dnsPolicy?: str @@ -544,7 +579,7 @@ schema Values: envFromSecrets?: [any] envRenderSecret?: ValuesEnvRenderSecret envValueFrom?: ValuesEnvValueFrom - extraArgs?: [any] + extraArgs?: [str] extraConfigmapMounts?: [any] extraContainerVolumes?: [any] extraContainers?: str @@ -560,6 +595,7 @@ schema Values: extraVolumes?: [any] fullnameOverride?: str global?: ValuesGlobal + goMemLimit?: ValuesGoMemLimit gossipPortName?: str grafana?: ValuesGrafana "grafana.ini"?: ValuesGrafanaIni @@ -595,6 +631,7 @@ schema Values: labels?: ValuesLabels ldap?: ValuesLdap lifecycleHooks?: ValuesLifecycleHooks + listenerSet?: ValuesListenerSet livenessProbe?: ValuesLivenessProbe metricAllowlist?: [any] metricAnnotationsAllowList?: [any] @@ -758,6 +795,10 @@ schema ValuesAlertmanager: kube-prometheus-stack does not guarantee this works and is subject to change. Being BETA this can/will change in the future without notice, do not use unless you want to take that risk [[ref]](https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io%2fv1alpha2) + routePerReplica : ValuesAlertmanagerRoutePerReplica, optional + # Configuration for creating a Gateway API route that will map to each Alertmanager replica service + # alertmanager.servicePerReplica must be enabled + # secret : ValuesAlertmanagerSecret, optional # Configuration for Alertmanager secret # @@ -819,6 +860,7 @@ schema ValuesAlertmanager: networkPolicy?: ValuesAlertmanagerNetworkPolicy podDisruptionBudget?: ValuesAlertmanagerPodDisruptionBudget route?: ValuesAlertmanagerRoute + routePerReplica?: ValuesAlertmanagerRoutePerReplica secret?: ValuesAlertmanagerSecret service?: ValuesAlertmanagerService serviceAccount?: ValuesAlertmanagerServiceAccount @@ -888,6 +930,10 @@ schema ValuesAlertmanagerAlertmanagerSpec: clusterPushpullInterval : str, optional, default is "" # clusterPushpullInterval determines interval between pushpull attempts. # Needs to be specified as GoDuration, a time duration that can be parsed by Go's time.ParseDuration() (e.g. 45ms, 30s, 1m, 1h20m15s) + clusterTLS : ValuesAlertmanagerAlertmanagerSpecClusterTls, optional + # ClusterTLS defines the mutual TLS configuration for the Alertmanager cluster's gossip protocol. + # Requires Alertmanager >= v0.24.0. + # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ClusterTLSConfig configMaps : [any], optional # ConfigMaps is a list of ConfigMaps in the same namespace as the Alertmanager object, which shall be mounted into the Alertmanager Pods. # The ConfigMaps are mounted into /etc/alertmanager/configmaps/. @@ -901,12 +947,18 @@ schema ValuesAlertmanagerAlertmanagerSpec: dnsPolicy : str, optional, default is "" # DNS policy for Alertmanager. # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#dnspolicystring-alias + enableServiceLinks : any, optional, default is "~" + # EnableServiceLinks indicates whether information about services should be injected into the + # pod's environment variables. Uses the operator/Kubernetes default when left unset (~). externalUrl : any, optional, default is "" # The external URL the Alertmanager instances will be available under. This is necessary to generate correct URLs. This is necessary if Alertmanager is not served from root of a DNS name. string false # forceEnableClusterMode : bool, optional, default is False # ForceEnableClusterMode ensures Alertmanager does not deactivate the cluster mode when running with a single replica. # Use case is e.g. spanning an Alertmanager cluster across Kubernetes clusters with a single replica in each. + hostAliases : [any], optional + # Pods' hostAliases configuration + # ref: https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/ hostNetwork : bool, optional, default is False # Enable hostNetwork for Alertmanager. hostUsers : any, optional, default is "~" @@ -918,6 +970,9 @@ schema ValuesAlertmanagerAlertmanagerSpec: initContainers : [any], optional # InitContainers allows injecting additional initContainers. This is meant to allow doing some changes # (permissions, dir tree) on mounted volumes before starting prometheus + limits : ValuesAlertmanagerAlertmanagerSpecLimits, optional + # Limits defines the Alertmanager limits command line flags. Requires Alertmanager >= v0.28.0. + # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.AlertmanagerLimitsSpec listenLocal : bool, optional, default is False # ListenLocal makes the Alertmanager server listen on loopback, so that it does not bind against the Pod IP. # Note this is only for the Alertmanager UI, not the gossip communication. @@ -983,6 +1038,8 @@ schema ValuesAlertmanagerAlertmanagerSpec: # The route prefix Alertmanager registers HTTP handlers for. This is useful, if using ExternalURL and a proxy is rewriting HTTP routes of a request, and the actual ExternalURL is still true, # but the server serves requests under a different route prefix. For example for use with kubectl proxy. # + schedulerName : str, optional, default is "" + # Set the scheduler name to use for the Alertmanager pods. scheme : str, optional, default is "" # scheme: HTTP scheme to use. Can be used with `tlsConfig` for example if using istio mTLS. secrets : [any], optional @@ -1045,16 +1102,20 @@ schema ValuesAlertmanagerAlertmanagerSpec: clusterLabel?: str clusterPeerTimeout?: str clusterPushpullInterval?: str + clusterTLS?: ValuesAlertmanagerAlertmanagerSpecClusterTls configMaps?: [any] containers?: [any] dnsConfig?: ValuesAlertmanagerAlertmanagerSpecDnsConfig dnsPolicy?: str + enableServiceLinks?: any externalUrl?: any forceEnableClusterMode?: bool + hostAliases?: [any] hostNetwork?: bool hostUsers?: any image?: ValuesAlertmanagerAlertmanagerSpecImage initContainers?: [any] + limits?: ValuesAlertmanagerAlertmanagerSpecLimits listenLocal?: bool logFormat?: str logLevel?: str @@ -1072,6 +1133,7 @@ schema ValuesAlertmanagerAlertmanagerSpec: resources?: ValuesAlertmanagerAlertmanagerSpecResources retention?: str routePrefix?: str + schedulerName?: str scheme?: str secrets?: [any] securityContext?: ValuesAlertmanagerAlertmanagerSpecSecurityContext @@ -1129,6 +1191,14 @@ schema ValuesAlertmanagerAlertmanagerSpecAlertmanagerConfiguration: """ [...str]: any +schema ValuesAlertmanagerAlertmanagerSpecClusterTls: + r""" + # ClusterTLS defines the mutual TLS configuration for the Alertmanager cluster's gossip protocol. + # Requires Alertmanager >= v0.24.0. + # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ClusterTLSConfig + """ + [...str]: any + schema ValuesAlertmanagerAlertmanagerSpecDnsConfig: r""" # DNS configuration for Alertmanager. @@ -1147,7 +1217,7 @@ schema ValuesAlertmanagerAlertmanagerSpecImage: registry : str, optional, default is "quay.io" repository : str, optional, default is "prometheus/alertmanager" sha : str, optional, default is "" - tag : str, optional, default is "v0.32.2" + tag : str, optional, default is "v0.34.0" """ [...str]: any pullPolicy?: str @@ -1156,6 +1226,13 @@ schema ValuesAlertmanagerAlertmanagerSpecImage: sha?: str tag?: str +schema ValuesAlertmanagerAlertmanagerSpecLimits: + r""" + # Limits defines the Alertmanager limits command line flags. Requires Alertmanager >= v0.28.0. + # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.AlertmanagerLimitsSpec + """ + [...str]: any + schema ValuesAlertmanagerAlertmanagerSpecNodeSelector: r""" # Define which Nodes the Pods are scheduled on. @@ -1656,6 +1733,9 @@ schema ValuesAlertmanagerRouteMain: - my-filter.example.com sessionPersistence : ValuesAlertmanagerRouteMainSessionPersistence, optional # Session persistence configuration for the route rule. + timeouts : ValuesAlertmanagerRouteMainTimeouts, optional + # Timeouts for the generated HTTPRoute backend rule. + # Requires Gateway API CRDs and a controller that support HTTPRoute timeouts. """ [...str]: any additionalRules?: [any] @@ -1670,6 +1750,7 @@ schema ValuesAlertmanagerRouteMain: matches?: [ValuesAlertmanagerRouteMainMatchesItems0] parentRefs?: [any] sessionPersistence?: ValuesAlertmanagerRouteMainSessionPersistence + timeouts?: ValuesAlertmanagerRouteMainTimeouts schema ValuesAlertmanagerRouteMainAnnotations: r""" @@ -1713,6 +1794,129 @@ schema ValuesAlertmanagerRouteMainSessionPersistence: """ [...str]: any +schema ValuesAlertmanagerRouteMainTimeouts: + r""" + # Timeouts for the generated HTTPRoute backend rule. + # Requires Gateway API CRDs and a controller that support HTTPRoute timeouts. + """ + [...str]: any + +schema ValuesAlertmanagerRoutePerReplica: + r""" + # Configuration for creating a Gateway API route that will map to each Alertmanager replica service + # alertmanager.servicePerReplica must be enabled + # + + Attributes + ---------- + main : ValuesAlertmanagerRoutePerReplicaMain, optional + """ + [...str]: any + main?: ValuesAlertmanagerRoutePerReplicaMain + +schema ValuesAlertmanagerRoutePerReplicaMain: + r""" + ValuesAlertmanagerRoutePerReplicaMain + + Attributes + ---------- + additionalRules : [any], optional + # Additional custom rules that can be added to the route + annotations : ValuesAlertmanagerRoutePerReplicaMainAnnotations, optional + apiVersion : str, optional, default is "gateway.networking.k8s.io/v1" + Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2 + enabled : bool, optional, default is False + Enables or disables the routePerReplica + filters : [any], optional + # Filters define the filters that are applied to requests that match this rule. + hostDomain : str, optional, default is "" + # Domain that will be used for the per replica route + hostPrefix : str, optional, default is "" + # Final form of the hostname for each per replica route is + # {{ routePerReplica.hostPrefix }}-{{ $replicaNumber }}.{{ routePerReplica.hostDomain }} + # + # Prefix for the per replica route that will have `-$replicaNumber` appended to the end + httpsRedirect : bool, optional, default is False + create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects) + # Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect. + # matches, filters and additionalRules will be ignored if this is set to true. + kind : str, optional, default is "HTTPRoute" + Set the route kind + Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute + labels : ValuesAlertmanagerRoutePerReplicaMainLabels, optional + matches : [ValuesAlertmanagerRoutePerReplicaMainMatchesItems0], optional + parentRefs : [any], optional + sessionPersistence : ValuesAlertmanagerRoutePerReplicaMainSessionPersistence, optional + # Session persistence configuration for the route rule. + timeouts : ValuesAlertmanagerRoutePerReplicaMainTimeouts, optional + # Timeouts for the generated HTTPRoute backend rule. + # Requires Gateway API CRDs and a controller that support HTTPRoute timeouts. + """ + [...str]: any + additionalRules?: [any] + annotations?: ValuesAlertmanagerRoutePerReplicaMainAnnotations + apiVersion?: str + enabled?: bool + filters?: [any] + hostDomain?: str + hostPrefix?: str + httpsRedirect?: bool + kind?: str + labels?: ValuesAlertmanagerRoutePerReplicaMainLabels + matches?: [ValuesAlertmanagerRoutePerReplicaMainMatchesItems0] + parentRefs?: [any] + sessionPersistence?: ValuesAlertmanagerRoutePerReplicaMainSessionPersistence + timeouts?: ValuesAlertmanagerRoutePerReplicaMainTimeouts + +schema ValuesAlertmanagerRoutePerReplicaMainAnnotations: + r""" + ValuesAlertmanagerRoutePerReplicaMainAnnotations + """ + [...str]: any + +schema ValuesAlertmanagerRoutePerReplicaMainLabels: + r""" + ValuesAlertmanagerRoutePerReplicaMainLabels + """ + [...str]: any + +schema ValuesAlertmanagerRoutePerReplicaMainMatchesItems0: + r""" + ValuesAlertmanagerRoutePerReplicaMainMatchesItems0 + + Attributes + ---------- + path : ValuesAlertmanagerRoutePerReplicaMainMatchesItems0Path, optional + """ + [...str]: any + path?: ValuesAlertmanagerRoutePerReplicaMainMatchesItems0Path + +schema ValuesAlertmanagerRoutePerReplicaMainMatchesItems0Path: + r""" + ValuesAlertmanagerRoutePerReplicaMainMatchesItems0Path + + Attributes + ---------- + $type : str, optional, default is "PathPrefix" + value : str, optional, default is "/" + """ + [...str]: any + $type?: str + value?: str + +schema ValuesAlertmanagerRoutePerReplicaMainSessionPersistence: + r""" + # Session persistence configuration for the route rule. + """ + [...str]: any + +schema ValuesAlertmanagerRoutePerReplicaMainTimeouts: + r""" + # Timeouts for the generated HTTPRoute backend rule. + # Requires Gateway API CRDs and a controller that support HTTPRoute timeouts. + """ + [...str]: any + schema ValuesAlertmanagerSecret: r""" # Configuration for Alertmanager secret @@ -2074,6 +2278,22 @@ schema ValuesAnnotations: """ [...str]: any +schema ValuesAuthFilter: + r""" + Enable kube-state-metrics native request authn/authz on the metrics endpoints + via the `--auth-filter` flag, as an alternative to running kube-rbac-proxy. + When enabled, the `create` permissions on `tokenreviews` and + `subjectaccessreviews` required by the filter are added to the (Cluster)Role + automatically. Scrapers must authenticate; see the chart README and the + kube-state-metrics docs on protecting metrics endpoints. + + Attributes + ---------- + enabled : bool, optional, default is False + """ + [...str]: any + enabled?: bool + schema ValuesAutoscaling: r""" # Create HorizontalPodAutoscaler object for deployment type @@ -2346,7 +2566,9 @@ schema ValuesCrdsUpgradeJob: extraVolumes : [any], optional # Additional volumes # - forceConflicts : bool, optional, default is False + forceConflicts : bool, optional, default is True + # Force apply the CRDs, taking ownership from the manager that installed them (e.g. helm). + # Required for the job to actually upgrade CRDs whose schema/version changed. image : ValuesCrdsUpgradeJobImage, optional labels : ValuesCrdsUpgradeJobLabels, optional ## Labels to add to the upgrade-crd job @@ -2640,8 +2862,104 @@ schema ValuesCustomResourceState: schema ValuesCustomResourceStateConfig: r""" Definition of the CustomResourceStateMetrics. Add (Cluster)Role permissions to list/watch the resources defined in the config to rbac.extraRules. + + Attributes + ---------- + spec : ValuesCustomResourceStateConfigSpec, optional """ [...str]: any + spec?: ValuesCustomResourceStateConfigSpec + +schema ValuesCustomResourceStateConfigSpec: + r""" + ValuesCustomResourceStateConfigSpec + + Attributes + ---------- + resources : [ValuesCustomResourceStateConfigSpecResourcesItems0], optional + """ + [...str]: any + resources?: [ValuesCustomResourceStateConfigSpecResourcesItems0] + +schema ValuesCustomResourceStateConfigSpecResourcesItems0: + r""" + ValuesCustomResourceStateConfigSpecResourcesItems0 + + Attributes + ---------- + groupVersionKind : ValuesCustomResourceStateConfigSpecResourcesItems0GroupVersionKind, optional + metricNamePrefix : str, optional + metrics : [ValuesCustomResourceStateConfigSpecResourcesItems0MetricsItems0], optional + """ + [...str]: any + groupVersionKind?: ValuesCustomResourceStateConfigSpecResourcesItems0GroupVersionKind + metricNamePrefix?: str + metrics?: [ValuesCustomResourceStateConfigSpecResourcesItems0MetricsItems0] + +schema ValuesCustomResourceStateConfigSpecResourcesItems0GroupVersionKind: + r""" + ValuesCustomResourceStateConfigSpecResourcesItems0GroupVersionKind + + Attributes + ---------- + group : str, optional + kind : str, optional + version : str, optional + """ + [...str]: any + group?: str + kind?: str + version?: str + +schema ValuesCustomResourceStateConfigSpecResourcesItems0MetricsItems0: + r""" + ValuesCustomResourceStateConfigSpecResourcesItems0MetricsItems0 + + Attributes + ---------- + each : ValuesCustomResourceStateConfigSpecResourcesItems0MetricsItems0Each, optional + help : str, optional + name : str, optional + """ + [...str]: any + each?: ValuesCustomResourceStateConfigSpecResourcesItems0MetricsItems0Each + help?: str + name?: str + +schema ValuesCustomResourceStateConfigSpecResourcesItems0MetricsItems0Each: + r""" + ValuesCustomResourceStateConfigSpecResourcesItems0MetricsItems0Each + + Attributes + ---------- + info : ValuesCustomResourceStateConfigSpecResourcesItems0MetricsItems0EachInfo, optional + $type : str, optional + """ + [...str]: any + info?: ValuesCustomResourceStateConfigSpecResourcesItems0MetricsItems0EachInfo + $type?: str + +schema ValuesCustomResourceStateConfigSpecResourcesItems0MetricsItems0EachInfo: + r""" + ValuesCustomResourceStateConfigSpecResourcesItems0MetricsItems0EachInfo + + Attributes + ---------- + labelsFromPath : ValuesCustomResourceStateConfigSpecResourcesItems0MetricsItems0EachInfoLabelsFromPath, optional + """ + [...str]: any + labelsFromPath?: ValuesCustomResourceStateConfigSpecResourcesItems0MetricsItems0EachInfoLabelsFromPath + +schema ValuesCustomResourceStateConfigSpecResourcesItems0MetricsItems0EachInfoLabelsFromPath: + r""" + ValuesCustomResourceStateConfigSpecResourcesItems0MetricsItems0EachInfoLabelsFromPath + + Attributes + ---------- + name : [str], optional + """ + [...str]: any + name?: [str] schema ValuesCustomRules: r""" @@ -2709,7 +3027,7 @@ schema ValuesDefaultRules: ---------- additionalAggregationLabels : [any], optional additionalRuleAnnotations : ValuesDefaultRulesAdditionalRuleAnnotations, optional - # Additional annotations for PrometheusRule alerts + # Additional annotations for specific PrometheusRule alerts by alert name additionalRuleGroupAnnotations : ValuesDefaultRulesAdditionalRuleGroupAnnotations, optional # Additional annotations for specific PrometheusRule alert groups additionalRuleGroupLabels : ValuesDefaultRulesAdditionalRuleGroupLabels, optional @@ -2760,7 +3078,7 @@ schema ValuesDefaultRules: schema ValuesDefaultRulesAdditionalRuleAnnotations: r""" - # Additional annotations for PrometheusRule alerts + # Additional annotations for specific PrometheusRule alerts by alert name """ [...str]: any @@ -3493,7 +3811,7 @@ schema ValuesDownloadDashboardsImage: The Docker registry repository : str, optional, default is "curlimages/curl" sha : str, optional, default is "" - tag : str, optional, default is "8.20.0" + tag : str, optional, default is "8.22.0" """ [...str]: any pullPolicy?: str @@ -3614,6 +3932,24 @@ schema ValuesGlobalRbac: create?: bool createAggregateClusterRoles?: bool +schema ValuesGoMemLimit: + r""" + # Configure the GOMEMLIMIT environment variable. + # When enabled and resources.limits.memory is set, GOMEMLIMIT is injected + # as a computed value (factor × memory limit) unless the user has already + # defined GOMEMLIMIT via env or envValueFrom. + + Attributes + ---------- + enabled : bool, optional, default is True + Enable automatic GOMEMLIMIT injection. + factor : float, optional, default is 0.9 + Fraction of resources.limits.memory to use as GOMEMLIMIT (e.g. 0.9 = 90 %). + """ + [...str]: any + enabled?: bool + factor?: float + schema ValuesGrafana: r""" # Using default values from https://github.com/grafana-community/helm-charts/blob/main/charts/grafana/values.yaml @@ -4053,6 +4389,11 @@ schema ValuesGrafanaSidecarDashboards: label : str, optional, default is "grafana_dashboard" labelValue : str, optional, default is "1" multicluster : ValuesGrafanaSidecarDashboardsMulticluster, optional + # Annotation the sidecar reads to decide in which Grafana folder a dashboard + # is stored. Requires `provider.foldersFromFilesStructure` to be enabled. + # ref: https://github.com/grafana/helm-charts/tree/main/charts/grafana#sidecar-for-dashboards + # + folderAnnotation: grafana_folder provider : ValuesGrafanaSidecarDashboardsProvider, optional searchNamespace : str, optional, default is "ALL" Allow discovery in all namespaces for dashboards @@ -4076,7 +4417,11 @@ schema ValuesGrafanaSidecarDashboardsAnnotations: schema ValuesGrafanaSidecarDashboardsMulticluster: r""" - ValuesGrafanaSidecarDashboardsMulticluster + # Annotation the sidecar reads to decide in which Grafana folder a dashboard + # is stored. Requires `provider.foldersFromFilesStructure` to be enabled. + # ref: https://github.com/grafana/helm-charts/tree/main/charts/grafana#sidecar-for-dashboards + # + folderAnnotation: grafana_folder Attributes ---------- @@ -5633,6 +5978,8 @@ schema ValuesKubeRbacproxy: to allow the pod probes working properly with kubeRBACProxy enabled. image : ValuesKubeRbacproxyImage, optional VARIABLE: value + listenHost : str, optional, default is ":" + Host/interface prefix for --secure-listen-address (for example ":" or "$(POD_IP):") port : int, optional, default is 8100 Specify the port used for the Node exporter container (upstream port) portName : str, optional, default is "http" @@ -5659,6 +6006,7 @@ schema ValuesKubeRbacproxy: extraVolumeMounts?: [any] ignoreProbePaths?: bool image?: ValuesKubeRbacproxyImage + listenHost?: str port?: int portName?: str proxyEndpointsPort?: int @@ -5710,7 +6058,7 @@ schema ValuesKubeRbacproxyImage: registry : str, optional, default is "quay.io" repository : str, optional, default is "brancz/kube-rbac-proxy" sha : str, optional, default is "" - tag : str, optional, default is "v0.22.0" + tag : str, optional, default is "v0.22.1" """ [...str]: any pullPolicy?: str @@ -5846,6 +6194,7 @@ schema ValuesKubeSchedulerServiceMonitor: # RelabelConfigs to apply to samples before scraping # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig # + resource : ValuesKubeSchedulerServiceMonitorResource, optional sampleLimit : int, optional, default is 0 # SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. # @@ -5873,6 +6222,7 @@ schema ValuesKubeSchedulerServiceMonitor: port?: str proxyUrl?: str relabelings?: [any] + resource?: ValuesKubeSchedulerServiceMonitorResource sampleLimit?: int selector?: ValuesKubeSchedulerServiceMonitorSelector serverName?: any @@ -5886,6 +6236,33 @@ schema ValuesKubeSchedulerServiceMonitorAdditionalLabels: """ [...str]: any +schema ValuesKubeSchedulerServiceMonitorResource: + r""" + ValuesKubeSchedulerServiceMonitorResource + + Attributes + ---------- + enabled : bool, optional, default is False + # Enable scraping /metrics/resource from kube-scheduler + # https://kubernetes.io/docs/concepts/cluster-administration/system-metrics/#kube-scheduler-metrics + interval : str, optional, default is "" + # Scrape interval. If not set, the Prometheus default scrape interval is used. + # + metricRelabelings : [any], optional + # MetricRelabelConfigs to apply to samples after scraping, but before ingestion. + # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig + # + relabelings : [any], optional + # RelabelConfigs to apply to samples before scraping + # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig + # + """ + [...str]: any + enabled?: bool + interval?: str + metricRelabelings?: [any] + relabelings?: [any] + schema ValuesKubeSchedulerServiceMonitorSelector: r""" ValuesKubeSchedulerServiceMonitorSelector @@ -6288,6 +6665,64 @@ schema ValuesLifecycleHooks: """ [...str]: any +schema ValuesListenerSet: + r""" + BETA: Configure Gateway API ListenerSet resources for the chart here. + ListenerSet allows attaching additional listeners to an existing Gateway. + More listener sets can be added by adding a dictionary key like the 'main' entry. + Being BETA this can/will change in the future without notice, do not use unless you want to take that risk + [[ref]](https://gateway-api.sigs.k8s.io/reference/api-spec/main/spec/#listenerset) + + Attributes + ---------- + main : ValuesListenerSetMain, optional + """ + [...str]: any + main?: ValuesListenerSetMain + +schema ValuesListenerSetMain: + r""" + ValuesListenerSetMain + + Attributes + ---------- + annotations : ValuesListenerSetMainAnnotations, optional + apiVersion : str, optional, default is "gateway.networking.k8s.io/v1" + Set the ListenerSet apiVersion, e.g. gateway.networking.k8s.io/v1 + enabled : bool, optional, default is False + Enables or disables the listener set + labels : ValuesListenerSetMainLabels, optional + listeners : [any], optional + List of listeners to attach to the parent Gateway + parentRef : ValuesListenerSetMainParentRef, optional + Reference to the parent Gateway this ListenerSet attaches to + """ + [...str]: any + annotations?: ValuesListenerSetMainAnnotations + apiVersion?: str + enabled?: bool + labels?: ValuesListenerSetMainLabels + listeners?: [any] + parentRef?: ValuesListenerSetMainParentRef + +schema ValuesListenerSetMainAnnotations: + r""" + ValuesListenerSetMainAnnotations + """ + [...str]: any + +schema ValuesListenerSetMainLabels: + r""" + ValuesListenerSetMainLabels + """ + [...str]: any + +schema ValuesListenerSetMainParentRef: + r""" + Reference to the parent Gateway this ListenerSet attaches to + """ + [...str]: any + schema ValuesLivenessProbe: r""" # Liveness probe @@ -6373,11 +6808,6 @@ schema ValuesNetworkPolicy: matchExpressions: - {key: role, operator: In, values: [frontend]} ``` - flavor : str, optional, default is "kubernetes" - networkPolicy.flavor -- Flavor of the network policy to use. - Can be: - * kubernetes for networking.k8s.io/v1/NetworkPolicy - * cilium for cilium.io/v2/CiliumNetworkPolicy ingress : bool, optional, default is True networkPolicy.allowExternal Don't require client label for connections The Policy model to apply. When set to false, only pods with the correct @@ -6392,7 +6822,6 @@ schema ValuesNetworkPolicy: enabled?: bool explicitIpBlocks?: [any] explicitNamespacesSelector?: ValuesNetworkPolicyExplicitNamespacesSelector - flavor?: str ingress?: bool schema ValuesNetworkPolicyEgress: @@ -6626,6 +7055,10 @@ schema ValuesPersistence: lookupVolumeName : bool, optional, default is True # If 'lookupVolumeName' is set to true, Helm will attempt to retrieve # the current value of 'spec.volumeName' and incorporate it into the template. + persistentVolumeClaimRetentionPolicy : ValuesPersistencePersistentVolumeClaimRetentionPolicy, optional + # Configure StatefulSet persistent volume claim retention policy. + # This is ignored when Grafana is configured to use a Deployment with a PVC. + # By default, Kubernetes uses Retain for both whenDeleted and whenScaled. size : str, optional, default is "10Gi" $type : str, optional, default is "pvc" volumeName : str, optional, default is "" @@ -6640,6 +7073,7 @@ schema ValuesPersistence: finalizers?: [str] inMemory?: ValuesPersistenceInMemory lookupVolumeName?: bool + persistentVolumeClaimRetentionPolicy?: ValuesPersistencePersistentVolumeClaimRetentionPolicy size?: str $type?: str volumeName?: str @@ -6668,6 +7102,14 @@ schema ValuesPersistenceInMemory: [...str]: any enabled?: bool +schema ValuesPersistencePersistentVolumeClaimRetentionPolicy: + r""" + # Configure StatefulSet persistent volume claim retention policy. + # This is ignored when Grafana is configured to use a Deployment with a PVC. + # By default, Kubernetes uses Retain for both whenDeleted and whenScaled. + """ + [...str]: any + schema ValuesPodAnnotations: r""" Annotations to be added to windows exporter pods @@ -6754,6 +7196,10 @@ schema ValuesPrometheus: kube-prometheus-stack does not guarantee this works and is subject to change. Being BETA this can/will change in the future without notice, do not use unless you want to take that risk [[ref]](https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io%2fv1alpha2) + routePerReplica : ValuesPrometheusRoutePerReplica, optional + # Configuration for creating a Gateway API route that will map to each Prometheus replica service + # prometheus.servicePerReplica must be enabled + # scrapeconfig : ValuesPrometheusScrapeconfig, optional # Create a scrapeConfig resource for scraping the kube-state-metrics service. Use this instead of serviceMonitor # to have more instances of kube-state-metrics safety. @@ -6804,6 +7250,7 @@ schema ValuesPrometheus: podMonitor?: ValuesPrometheusPodMonitor prometheusSpec?: ValuesPrometheusPrometheusSpec route?: ValuesPrometheusRoute + routePerReplica?: ValuesPrometheusRoutePerReplica scrapeconfig?: ValuesPrometheusScrapeconfig service?: ValuesPrometheusService serviceAccount?: ValuesPrometheusServiceAccount @@ -7022,7 +7469,7 @@ schema ValuesPrometheusMonitor: selectorOverride : ValuesPrometheusMonitorSelectorOverride, optional # Override serviceMonitor selector # - targetLabels : [any], optional + targetLabels : [str], optional List of target labels to add to node exporter metrics https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#servicemonitor targetLimit : int, optional, default is 0 @@ -7055,15 +7502,20 @@ schema ValuesPrometheusMonitor: scheme?: str scrapeTimeout?: str selectorOverride?: ValuesPrometheusMonitorSelectorOverride - targetLabels?: [any] + targetLabels?: [str] targetLimit?: int tlsConfig?: ValuesPrometheusMonitorTlsConfig schema ValuesPrometheusMonitorAdditionalLabels: r""" ValuesPrometheusMonitorAdditionalLabels + + Attributes + ---------- + release : str, optional """ [...str]: any + release?: str schema ValuesPrometheusMonitorAnnotations: r""" @@ -7105,9 +7557,9 @@ schema ValuesPrometheusMonitorHttp: # Whether to enable HTTP2 for servicemonitor honorLabels : bool, optional, default is False interval : str, optional, default is "" - metricRelabelings : [any], optional + metricRelabelings : [ValuesPrometheusMonitorHttpMetricRelabelingsItems0], optional proxyUrl : str, optional, default is "" - relabelings : [any], optional + relabelings : [ValuesPrometheusMonitorHttpRelabelingsItems0], optional scheme : str, optional, default is "" scrapeTimeout : str, optional, default is "" tlsConfig : ValuesPrometheusMonitorHttpTlsConfig, optional @@ -7120,9 +7572,9 @@ schema ValuesPrometheusMonitorHttp: enableHttp2?: bool honorLabels?: bool interval?: str - metricRelabelings?: [any] + metricRelabelings?: [ValuesPrometheusMonitorHttpMetricRelabelingsItems0] proxyUrl?: str - relabelings?: [any] + relabelings?: [ValuesPrometheusMonitorHttpRelabelingsItems0] scheme?: str scrapeTimeout?: str tlsConfig?: ValuesPrometheusMonitorHttpTlsConfig @@ -7135,6 +7587,34 @@ schema ValuesPrometheusMonitorHttpBearerTokenSecret: """ [...str]: any +schema ValuesPrometheusMonitorHttpMetricRelabelingsItems0: + r""" + ValuesPrometheusMonitorHttpMetricRelabelingsItems0 + + Attributes + ---------- + action : str, optional + regex : str, optional + sourceLabels : [str], optional + """ + [...str]: any + action?: str + regex?: str + sourceLabels?: [str] + +schema ValuesPrometheusMonitorHttpRelabelingsItems0: + r""" + ValuesPrometheusMonitorHttpRelabelingsItems0 + + Attributes + ---------- + sourceLabels : [str], optional + targetLabel : str, optional + """ + [...str]: any + sourceLabels?: [str] + targetLabel?: str + schema ValuesPrometheusMonitorHttpTlsConfig: r""" name: secret-name @@ -7470,6 +7950,13 @@ schema ValuesPrometheusOperator: extraVolumes : [any], optional # Additional volumes # + featureGates : ValuesPrometheusOperatorFeatureGates, optional + # Feature gates to enable/disable operator features, rendered as --feature-gates==. + # See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/feature-gates.md + # Example: + # featureGates: + # PrometheusAgentDaemonSet: true + # StatusForConfigurationResources: true fullnameOverride : str, optional, default is "" # Use '{{ template "kube-prometheus-stack.fullname" . }}-operator' by default hostNetwork : bool, optional, default is False @@ -7596,6 +8083,7 @@ schema ValuesPrometheusOperator: extraArgs?: [any] extraVolumeMounts?: [any] extraVolumes?: [any] + featureGates?: ValuesPrometheusOperatorFeatureGates fullnameOverride?: str hostNetwork?: bool hostUsers?: any @@ -8347,7 +8835,7 @@ schema ValuesPrometheusOperatorAdmissionWebhooksPatchImage: registry : str, optional, default is "ghcr.io" repository : str, optional, default is "jkroepke/kube-webhook-certgen" sha : str, optional, default is "" - tag : str, optional, default is "1.8.3" + tag : str, optional, default is "1.8.8" """ [...str]: any pullPolicy?: str @@ -8553,6 +9041,17 @@ schema ValuesPrometheusOperatorEnv: [...str]: any GOGC?: str +schema ValuesPrometheusOperatorFeatureGates: + r""" + # Feature gates to enable/disable operator features, rendered as --feature-gates==. + # See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/feature-gates.md + # Example: + # featureGates: + # PrometheusAgentDaemonSet: true + # StatusForConfigurationResources: true + """ + [...str]: any + schema ValuesPrometheusOperatorImage: r""" # Prometheus-operator image @@ -8985,7 +9484,7 @@ schema ValuesPrometheusOperatorThanosImage: registry : str, optional, default is "quay.io" repository : str, optional, default is "thanos/thanos" sha : str, optional, default is "" - tag : str, optional, default is "v0.41.0" + tag : str, optional, default is "v0.42.4" """ [...str]: any registry?: str @@ -9361,6 +9860,8 @@ schema ValuesPrometheusPrometheusSpec: # If the field isn't set, the operator mounts the service account token by default. # Warning: be aware that by default, Prometheus requires the service account token for Kubernetes service discovery, # It is possible to use strategic merge patch to project the service account token into the 'prometheus' container. + bodySizeLimit : str, optional, default is "" + # BodySizeLimit defines a global limit on the size of uncompressed response body that will be accepted. Example: 100MB. configMaps : [any], optional # ConfigMaps is a list of ConfigMaps in the same namespace as the Prometheus object, which shall be mounted into the Prometheus Pods. # The ConfigMaps are mounted into /etc/prometheus/configmaps/. @@ -9397,6 +9898,12 @@ schema ValuesPrometheusPrometheusSpec: enableRemoteWriteReceiver : bool, optional, default is False # enable --web.enable-remote-write-receiver flag on prometheus-server # + enableServiceLinks : any, optional, default is "~" + # EnableServiceLinks indicates whether information about services should be injected into the pod's environment + # variables. Uses the operator/Kubernetes default when left unset (~). + enforcedBodySizeLimit : str, optional, default is "" + # EnforcedBodySizeLimit defines the maximum size of uncompressed response body that will be accepted, overriding any + # value set per ServiceMonitor/PodMonitor. Example: 100MB. Empty means no limit. enforcedKeepDroppedTargets : int, optional, default is 0 EnforcedKeepDroppedTargetsLimit defines on the number of targets dropped by relabeling that will be kept in memory. The value overrides any spec.keepDroppedTargets set by ServiceMonitor, PodMonitor, Probe objects unless spec.keepDroppedTargets @@ -9465,6 +9972,14 @@ schema ValuesPrometheusPrometheusSpec: initContainers : [any], optional # InitContainers allows injecting additional initContainers. This is meant to allow doing some changes # (permissions, dir tree) on mounted volumes before starting prometheus + keepDroppedTargets : int, optional, default is 0 + # Per-scrape limit on the number of targets dropped by relabeling that will be kept in memory. 0 means no limit. + labelLimit : int, optional, default is 0 + # Per-scrape limit on number of labels that will be accepted for a sample. 0 means no limit. + labelNameLengthLimit : int, optional, default is 0 + # Per-scrape limit on length of labels name that will be accepted for a sample. 0 means no limit. + labelValueLengthLimit : int, optional, default is 0 + # Per-scrape limit on length of labels value that will be accepted for a sample. 0 means no limit. listenLocal : bool, optional, default is False # ListenLocal makes the Prometheus server listen on loopback, so that it does not bind against the Pod IP. # @@ -9483,6 +9998,9 @@ schema ValuesPrometheusPrometheusSpec: minReadySeconds : int, optional, default is 0 # Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to # be considered available. Defaults to 0 (pod will be considered available as soon as it is ready). + nameEscapingScheme : str, optional, default is "" + # Specifies the character escaping scheme applied to metric and label names. + # Supported values are: AllowUTF8, Underscores, Dots, Values nameValidationScheme : str, optional, default is "" # Specifies the validation scheme for metric and label names. # Supported values are: Legacy, UTF8 @@ -9574,6 +10092,9 @@ schema ValuesPrometheusPrometheusSpec: # and can be persisted using an attached volume. Alternatively, the location can be set to a stdout location such # as /dev/stdout to log querie information to the default Prometheus log stream. This is only available in versions # of Prometheus >= 2.16.0. For more details, see the Prometheus docs (https://prometheus.io/docs/guides/query-log/) + reloadStrategy : str, optional, default is "" + # Defines the strategy used to reload the Prometheus configuration. + # Supported values are: HTTP, ProcessSignal remoteRead : [any], optional # The remote_read spec configuration for Prometheus. # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#remotereadspec @@ -9582,6 +10103,8 @@ schema ValuesPrometheusPrometheusSpec: # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#remotewritespec remoteWriteDashboards : bool, optional, default is False # Enable/Disable Grafana dashboards provisioning for prometheus remote write feature + remoteWriteReceiverMessageVersions : [any], optional + # List of the protobuf message versions to accept when receiving the remote writes. Example: [V1.0, V2.0]. replicaExternalLabelName : str, optional, default is "" # Name of the external label used to denote replica name # @@ -9607,6 +10130,9 @@ schema ValuesPrometheusPrometheusSpec: # ruleNamespaceSelector : ValuesPrometheusPrometheusSpecRuleNamespaceSelector, optional # If nil, select own namespace. Namespaces to be selected for PrometheusRules discovery. + ruleQueryOffset : str, optional, default is "" + # Defines the offset the rule evaluation timestamp of the rule evaluation queries is shifted backwards. + # ref: https://github.com/prometheus-community/helm-charts/issues/5843 ruleSelector : ValuesPrometheusPrometheusSpecRuleSelector, optional # PrometheusRules to be selected for target discovery. # If {}, select all PrometheusRules @@ -9616,9 +10142,13 @@ schema ValuesPrometheusPrometheusSpec: # prometheus resource to be created with selectors based on values in the helm deployment, # which will also match the PrometheusRule resources created # + runtime : ValuesPrometheusPrometheusSpecRuntime, optional + # RuntimeConfig configures the values for the Prometheus process behavior. sampleLimit : bool, optional, default is False Use to set global sample_limit for Prometheus. This act as default SampleLimit for ServiceMonitor or/and PodMonitor. Set to 'false' to disable global sample_limit. or set to a number to override the default value. + schedulerName : str, optional, default is "" + # Set the scheduler name to use for the Prometheus pods. scrapeClasses : [any], optional # List of scrape classes to expose to scraping objects such as # PodMonitors, ServiceMonitors, Probes and ScrapeConfigs. @@ -9691,6 +10221,12 @@ schema ValuesPrometheusPrometheusSpec: # serviceName : any, optional, default is "" # + shardRetentionPolicy : ValuesPrometheusPrometheusSpecShardRetentionPolicy, optional + # Defines the retention policy for the resources of stale shards after a scale-down. + # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ShardRetentionPolicy + shardingStrategy : ValuesPrometheusPrometheusSpecShardingStrategy, optional + # Defines the sharding strategy applied by the operator. + # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ShardingStrategy shards : int, optional, default is 1 # EXPERIMENTAL: Number of shards to distribute targets onto. # Number of replicas multiplied by shards is the total number of Pods created. @@ -9698,11 +10234,16 @@ schema ValuesPrometheusPrometheusSpec: # Increasing shards will not reshard data either but it will continue to be available from the same instances. # To query globally use Thanos sidecar and Thanos querier or remote write data to a central location. # Sharding is done on the content of the `__address__` target meta-label. + # Set shards to null to omit spec.shards from the Prometheus custom resource (the operator then + # defaults to 1 shard). Omitting the field lets an external autoscaler such as an HPA or a KEDA + # ScaledObject own spec.shards through the /scale subresource without Helm reverting it. # storageSpec : ValuesPrometheusPrometheusSpecStorageSpec, optional # Prometheus StorageSpec for persistent data # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/storage.md # + targetLimit : int, optional, default is 0 + # TargetLimit defines a global limit on the number of scraped targets. 0 means no limit. terminationGracePeriodSeconds : any, optional, default is "~" # Duration in seconds the pod needs to terminate gracefully. # ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination @@ -9762,6 +10303,7 @@ schema ValuesPrometheusPrometheusSpec: apiserverConfig?: ValuesPrometheusPrometheusSpecApiserverConfig arbitraryFSAccessThroughSMs?: bool automountServiceAccountToken?: bool + bodySizeLimit?: str configMaps?: [any] containers?: [any] convertClassicHistogramsToNHCB?: bool @@ -9773,6 +10315,8 @@ schema ValuesPrometheusPrometheusSpec: enableFeatures?: [any] enableOTLPReceiver?: bool enableRemoteWriteReceiver?: bool + enableServiceLinks?: any + enforcedBodySizeLimit?: str enforcedKeepDroppedTargets?: int enforcedLabelLimit?: bool enforcedLabelNameLengthLimit?: bool @@ -9791,11 +10335,16 @@ schema ValuesPrometheusPrometheusSpec: ignoreNamespaceSelectors?: bool image?: ValuesPrometheusPrometheusSpecImage initContainers?: [any] + keepDroppedTargets?: int + labelLimit?: int + labelNameLengthLimit?: int + labelValueLengthLimit?: int listenLocal?: bool logFormat?: str logLevel?: str maximumStartupDurationSeconds?: int minReadySeconds?: int + nameEscapingScheme?: str nameValidationScheme?: str nodeSelector?: ValuesPrometheusPrometheusSpecNodeSelector otlp?: ValuesPrometheusPrometheusSpecOtlp @@ -9821,9 +10370,11 @@ schema ValuesPrometheusPrometheusSpec: prometheusRulesExcludedFromEnforce?: [any] query?: ValuesPrometheusPrometheusSpecQuery queryLogFile?: bool + reloadStrategy?: str remoteRead?: [any] remoteWrite?: [any] remoteWriteDashboards?: bool + remoteWriteReceiverMessageVersions?: [any] replicaExternalLabelName?: str replicaExternalLabelNameClear?: bool replicas?: int @@ -9832,9 +10383,12 @@ schema ValuesPrometheusPrometheusSpec: retentionSize?: str routePrefix?: str ruleNamespaceSelector?: ValuesPrometheusPrometheusSpecRuleNamespaceSelector + ruleQueryOffset?: str ruleSelector?: ValuesPrometheusPrometheusSpecRuleSelector ruleSelectorNilUsesHelmValues?: bool + runtime?: ValuesPrometheusPrometheusSpecRuntime sampleLimit?: bool + schedulerName?: str scrapeClasses?: [any] scrapeClassicHistograms?: bool scrapeConfigNamespaceSelector?: ValuesPrometheusPrometheusSpecScrapeConfigNamespaceSelector @@ -9852,8 +10406,11 @@ schema ValuesPrometheusPrometheusSpec: serviceMonitorSelector?: ValuesPrometheusPrometheusSpecServiceMonitorSelector serviceMonitorSelectorNilUsesHelmValues?: bool serviceName?: any + shardRetentionPolicy?: ValuesPrometheusPrometheusSpecShardRetentionPolicy + shardingStrategy?: ValuesPrometheusPrometheusSpecShardingStrategy shards?: int storageSpec?: ValuesPrometheusPrometheusSpecStorageSpec + targetLimit?: int terminationGracePeriodSeconds?: any thanos?: ValuesPrometheusPrometheusSpecThanos tolerations?: [any] @@ -9954,7 +10511,7 @@ schema ValuesPrometheusPrometheusSpecImage: registry : str, optional, default is "quay.io" repository : str, optional, default is "prometheus/prometheus" sha : str, optional, default is "" - tag : str, optional, default is "v3.12.0-distroless" + tag : str, optional, default is "v3.14.0-distroless" """ [...str]: any pullPolicy?: str @@ -10054,6 +10611,12 @@ schema ValuesPrometheusPrometheusSpecRuleSelector: """ [...str]: any +schema ValuesPrometheusPrometheusSpecRuntime: + r""" + # RuntimeConfig configures the values for the Prometheus process behavior. + """ + [...str]: any + schema ValuesPrometheusPrometheusSpecScrapeConfigNamespaceSelector: r""" # If nil, select own namespace. Namespaces to be selected for scrapeConfig discovery. @@ -10117,6 +10680,20 @@ schema ValuesPrometheusPrometheusSpecServiceMonitorSelector: """ [...str]: any +schema ValuesPrometheusPrometheusSpecShardRetentionPolicy: + r""" + # Defines the retention policy for the resources of stale shards after a scale-down. + # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ShardRetentionPolicy + """ + [...str]: any + +schema ValuesPrometheusPrometheusSpecShardingStrategy: + r""" + # Defines the sharding strategy applied by the operator. + # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.ShardingStrategy + """ + [...str]: any + schema ValuesPrometheusPrometheusSpecStorageSpec: r""" # Prometheus StorageSpec for persistent data @@ -10213,6 +10790,9 @@ schema ValuesPrometheusRouteMain: - my-filter.example.com sessionPersistence : ValuesPrometheusRouteMainSessionPersistence, optional # Session persistence configuration for the route rule. + timeouts : ValuesPrometheusRouteMainTimeouts, optional + # Timeouts for the generated HTTPRoute backend rule. + # Requires Gateway API CRDs and a controller that support HTTPRoute timeouts. """ [...str]: any additionalRules?: [any] @@ -10227,6 +10807,7 @@ schema ValuesPrometheusRouteMain: matches?: [ValuesPrometheusRouteMainMatchesItems0] parentRefs?: [any] sessionPersistence?: ValuesPrometheusRouteMainSessionPersistence + timeouts?: ValuesPrometheusRouteMainTimeouts schema ValuesPrometheusRouteMainAnnotations: r""" @@ -10270,6 +10851,129 @@ schema ValuesPrometheusRouteMainSessionPersistence: """ [...str]: any +schema ValuesPrometheusRouteMainTimeouts: + r""" + # Timeouts for the generated HTTPRoute backend rule. + # Requires Gateway API CRDs and a controller that support HTTPRoute timeouts. + """ + [...str]: any + +schema ValuesPrometheusRoutePerReplica: + r""" + # Configuration for creating a Gateway API route that will map to each Prometheus replica service + # prometheus.servicePerReplica must be enabled + # + + Attributes + ---------- + main : ValuesPrometheusRoutePerReplicaMain, optional + """ + [...str]: any + main?: ValuesPrometheusRoutePerReplicaMain + +schema ValuesPrometheusRoutePerReplicaMain: + r""" + ValuesPrometheusRoutePerReplicaMain + + Attributes + ---------- + additionalRules : [any], optional + # Additional custom rules that can be added to the route + annotations : ValuesPrometheusRoutePerReplicaMainAnnotations, optional + apiVersion : str, optional, default is "gateway.networking.k8s.io/v1" + Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1alpha2 + enabled : bool, optional, default is False + Enables or disables the routePerReplica + filters : [any], optional + # Filters define the filters that are applied to requests that match this rule. + hostDomain : str, optional, default is "" + # Domain that will be used for the per replica route + hostPrefix : str, optional, default is "" + # Final form of the hostname for each per replica route is + # {{ routePerReplica.hostPrefix }}-{{ $replicaNumber }}.{{ routePerReplica.hostDomain }} + # + # Prefix for the per replica route that will have `-$replicaNumber` appended to the end + httpsRedirect : bool, optional, default is False + create http route for redirect (https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects) + # Take care that you only enable this on the http listener of the gateway to avoid an infinite redirect. + # matches, filters and additionalRules will be ignored if this is set to true. + kind : str, optional, default is "HTTPRoute" + Set the route kind + Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute + labels : ValuesPrometheusRoutePerReplicaMainLabels, optional + matches : [ValuesPrometheusRoutePerReplicaMainMatchesItems0], optional + parentRefs : [any], optional + sessionPersistence : ValuesPrometheusRoutePerReplicaMainSessionPersistence, optional + # Session persistence configuration for the route rule. + timeouts : ValuesPrometheusRoutePerReplicaMainTimeouts, optional + # Timeouts for the generated HTTPRoute backend rule. + # Requires Gateway API CRDs and a controller that support HTTPRoute timeouts. + """ + [...str]: any + additionalRules?: [any] + annotations?: ValuesPrometheusRoutePerReplicaMainAnnotations + apiVersion?: str + enabled?: bool + filters?: [any] + hostDomain?: str + hostPrefix?: str + httpsRedirect?: bool + kind?: str + labels?: ValuesPrometheusRoutePerReplicaMainLabels + matches?: [ValuesPrometheusRoutePerReplicaMainMatchesItems0] + parentRefs?: [any] + sessionPersistence?: ValuesPrometheusRoutePerReplicaMainSessionPersistence + timeouts?: ValuesPrometheusRoutePerReplicaMainTimeouts + +schema ValuesPrometheusRoutePerReplicaMainAnnotations: + r""" + ValuesPrometheusRoutePerReplicaMainAnnotations + """ + [...str]: any + +schema ValuesPrometheusRoutePerReplicaMainLabels: + r""" + ValuesPrometheusRoutePerReplicaMainLabels + """ + [...str]: any + +schema ValuesPrometheusRoutePerReplicaMainMatchesItems0: + r""" + ValuesPrometheusRoutePerReplicaMainMatchesItems0 + + Attributes + ---------- + path : ValuesPrometheusRoutePerReplicaMainMatchesItems0Path, optional + """ + [...str]: any + path?: ValuesPrometheusRoutePerReplicaMainMatchesItems0Path + +schema ValuesPrometheusRoutePerReplicaMainMatchesItems0Path: + r""" + ValuesPrometheusRoutePerReplicaMainMatchesItems0Path + + Attributes + ---------- + $type : str, optional, default is "PathPrefix" + value : str, optional, default is "/" + """ + [...str]: any + $type?: str + value?: str + +schema ValuesPrometheusRoutePerReplicaMainSessionPersistence: + r""" + # Session persistence configuration for the route rule. + """ + [...str]: any + +schema ValuesPrometheusRoutePerReplicaMainTimeouts: + r""" + # Timeouts for the generated HTTPRoute backend rule. + # Requires Gateway API CRDs and a controller that support HTTPRoute timeouts. + """ + [...str]: any + schema ValuesPrometheusScrapeconfig: r""" # Create a scrapeConfig resource for scraping the kube-state-metrics service. Use this instead of serviceMonitor @@ -11009,9 +11713,24 @@ schema ValuesRbac: Attributes ---------- + clusterRoleSelectors : [any], optional + Aggregate ClusterRoles using label selectors (only applies when useClusterRole: true). + When set, this ClusterRole aggregates matching ClusterRoles instead of defining rules + directly, so the built-in collector rules above are NOT included. Make sure the + aggregated ClusterRoles grant the permissions kube-state-metrics needs. + ref: https://kubernetes.io/docs/reference/access-authn-authz/rbac/#aggregated-clusterroles + Example: + clusterRoleSelectors: + - matchLabels: + rbac.example.com/aggregate-to-monitoring: "true" create : bool, optional, default is True # If true, create & use RBAC resources # + customResourceState : ValuesRbacCustomResourceState, optional + Set to false only when the customresourcedefinitions list/watch permission is + granted to the ServiceAccount by other means (e.g. a cluster-scoped ClusterRole + managed outside this chart). kube-state-metrics always needs it for + customResourceState; this only controls whether the chart creates the rule. extraClusterRoleRules : [any], optional - apiGroups: [] resources: [] @@ -11035,7 +11754,9 @@ schema ValuesRbac: If set to false - Run without Cluteradmin privs needed - ONLY works if namespace is also set (if useExistingRole is set this name is used as ClusterRole or Role to bind to) """ [...str]: any + clusterRoleSelectors?: [any] create?: bool + customResourceState?: ValuesRbacCustomResourceState extraClusterRoleRules?: [any] extraRoleRules?: [any] extraRules?: [any] @@ -11045,6 +11766,20 @@ schema ValuesRbac: pspUseAppArmor?: bool useClusterRole?: bool +schema ValuesRbacCustomResourceState: + r""" + Set to false only when the customresourcedefinitions list/watch permission is + granted to the ServiceAccount by other means (e.g. a cluster-scoped ClusterRole + managed outside this chart). kube-state-metrics always needs it for + customResourceState; this only controls whether the chart creates the rule. + + Attributes + ---------- + createClusterRoleRules : bool, optional, default is True + """ + [...str]: any + createClusterRoleRules?: bool + schema ValuesReadinessProbe: r""" # Readiness probe @@ -12007,7 +12742,7 @@ schema ValuesSidecarImage: The Docker registry repository : str, optional, default is "kiwigrid/k8s-sidecar" sha : str, optional, default is "" - tag : str, optional, default is "2.7.3" + tag : str, optional, default is "2.11.2" """ [...str]: any registry?: str @@ -12398,7 +13133,7 @@ schema ValuesTestFrameworkImage: registry : str, optional, default is "docker.io" The Docker registry repository : str, optional, default is "bats/bats" - tag : str, optional, default is "1.13.0" + tag : str, optional, default is "1.14.0" """ [...str]: any registry?: str @@ -12614,6 +13349,9 @@ schema ValuesThanosRulerRouteMain: - my-filter.example.com sessionPersistence : ValuesThanosRulerRouteMainSessionPersistence, optional # Session persistence configuration for the route rule. + timeouts : ValuesThanosRulerRouteMainTimeouts, optional + # Timeouts for the generated HTTPRoute backend rule. + # Requires Gateway API CRDs and a controller that support HTTPRoute timeouts. """ [...str]: any additionalRules?: [any] @@ -12628,6 +13366,7 @@ schema ValuesThanosRulerRouteMain: matches?: [ValuesThanosRulerRouteMainMatchesItems0] parentRefs?: [any] sessionPersistence?: ValuesThanosRulerRouteMainSessionPersistence + timeouts?: ValuesThanosRulerRouteMainTimeouts schema ValuesThanosRulerRouteMainAnnotations: r""" @@ -12671,6 +13410,13 @@ schema ValuesThanosRulerRouteMainSessionPersistence: """ [...str]: any +schema ValuesThanosRulerRouteMainTimeouts: + r""" + # Timeouts for the generated HTTPRoute backend rule. + # Requires Gateway API CRDs and a controller that support HTTPRoute timeouts. + """ + [...str]: any + schema ValuesThanosRulerService: r""" # Configuration for ThanosRuler service @@ -12878,15 +13624,33 @@ schema ValuesThanosRulerThanosRulerSpec: alertDropLabels : [any], optional # Labels by name to drop before sending to alertmanager # Maps to the --alert.label-drop flag of thanos ruler. + alertRelabelConfigFile : str, optional, default is "" + # Path to an alert relabel configuration file on disk. Takes precedence over alertRelabelConfigs. + alertRelabelConfigs : ValuesThanosRulerThanosRulerSpecAlertRelabelConfigs, optional + # Configures alert relabeling for Thanos Ruler. Maps to the alert.relabel-config CLI argument. alertmanagersConfig : ValuesThanosRulerThanosRulerSpecAlertmanagersConfig, optional # AlertmanagerConfig define configuration for connecting to alertmanager. # Only available with Thanos v0.10.0 and higher. Maps to the alertmanagers.config Thanos Ruler arg. containers : [any], optional # Containers allows injecting additional containers. This is meant to allow adding an authentication proxy to an ThanosRuler pod. # + dnsConfig : ValuesThanosRulerThanosRulerSpecDnsConfig, optional + # Defines the DNS configuration for the pods. + dnsPolicy : str, optional, default is "" + # Defines the DNS policy for the pods. + enableFeatures : [any], optional + # EnableFeatures API enables access to Thanos Ruler disabled features. + enableServiceLinks : any, optional, default is "~" + # EnableServiceLinks indicates whether information about services should be injected into the + # pod's environment variables. Uses the operator/Kubernetes default when left unset (~). + enforcedNamespaceLabel : str, optional, default is "" + # EnforcedNamespaceLabel enforces adding a namespace label of origin for each alert and metric. evaluationInterval : str, optional, default is "" # Interval between consecutive evaluations. # + excludedFromEnforcement : [any], optional + # List of references to PrometheusRule objects to be excluded from enforcement (requires enforcedNamespaceLabel). + # Can be a list of objects, or a string that is passed through tpl. externalPrefix : any, optional, default is "" # The external URL the Thanos Ruler instances will be available under. This is necessary to generate correct URLs. This is necessary if Thanos Ruler is not served from root of a DNS name. string false # @@ -12897,12 +13661,20 @@ schema ValuesThanosRulerThanosRulerSpec: # Additional environment variables to set on the ThanosRuler container. # This is rendered through the Prometheus Operator strategic merge patch. # + grpcServerTlsConfig : ValuesThanosRulerThanosRulerSpecGrpcServerTlsConfig, optional + # Configures the gRPC server TLS for Thanos Ruler. + # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.TLSConfig + hostAliases : [any], optional + # Pods' hostAliases configuration + # ref: https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/ hostUsers : any, optional, default is "~" # Use the host's user namespace for ThanosRuler pods. # ref: https://kubernetes.io/docs/tasks/configure-pod-container/user-namespaces/ image : ValuesThanosRulerThanosRulerSpecImage, optional # Image of ThanosRuler # + imagePullPolicy : str, optional, default is "" + # Image pull policy for the Thanos Ruler container. initContainers : [any], optional # InitContainers allows injecting additional initContainers. This is meant to allow doing some changes # (permissions, dir tree) on mounted volumes before starting prometheus @@ -12920,12 +13692,17 @@ schema ValuesThanosRulerThanosRulerSpec: logLevel : str, optional, default is "info" # Log level for ThanosRuler to be configured with. # + minReadySeconds : any, optional, default is "~" + # Minimum number of seconds for which a newly created pod should be ready without any of its + # containers crashing/restarting for it to be considered available. nodeSelector : ValuesThanosRulerThanosRulerSpecNodeSelector, optional # Define which Nodes the Pods are scheduled on. # ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector # objectStorageConfig : ValuesThanosRulerThanosRulerSpecObjectStorageConfig, optional # ObjectStorageConfig configures object storage in Thanos + objectStorageConfigFile : str, optional, default is "" + # Path to an object storage configuration file on disk. Takes precedence over objectStorageConfig. paused : bool, optional, default is False # If set to true all actions on the underlying managed objects are not going to be performed, except for delete actions. # @@ -12958,9 +13735,14 @@ schema ValuesThanosRulerThanosRulerSpec: queryEndpoints : [any], optional # QueryEndpoints defines Thanos querier endpoints from which to query metrics. # Maps to the --query flag of thanos ruler. + remoteWrite : [any], optional + # Defines the list of remote write configurations. When not empty, the Thanos Ruler operates in stateless mode. + # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.RemoteWriteSpec replicas : int, optional, default is 1 # Size is the expected size of the thanosRuler cluster. The controller will eventually make the size of the # running cluster equal to the expected size. + resendDelay : str, optional, default is "" + # Minimum amount of time to wait before resending an alert to Alertmanager. resources : ValuesThanosRulerThanosRulerSpecResources, optional # Define resources requests and limits for single Pods. # ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ @@ -12973,11 +13755,21 @@ schema ValuesThanosRulerThanosRulerSpec: # The route prefix ThanosRuler registers HTTP handlers for. This is useful, if using ExternalURL and a proxy is rewriting HTTP routes of a request, and the actual ExternalURL is still true, # but the server serves requests under a different route prefix. For example for use with kubectl proxy. # + ruleConcurrentEval : any, optional, default is "~" + # Number of concurrent rule evaluations. + ruleGracePeriod : str, optional, default is "" + # Minimum duration between alert and restored "for" state. Maintained only for alerts with a configured "for" + # time greater than the grace period. ruleNamespaceSelector : ValuesThanosRulerThanosRulerSpecRuleNamespaceSelector, optional # Namespaces to be selected for PrometheusRules discovery. # If nil, select own namespace. Namespaces to be selected for ServiceMonitor discovery. # See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#namespaceselector for usage # + ruleOutageTolerance : str, optional, default is "" + # Maximum time to tolerate outage for restoring "for" state of alert. + ruleQueryOffset : str, optional, default is "" + # The default rule group's query offset duration to shift the evaluation time of rules backwards. + # ref: https://github.com/prometheus-community/helm-charts/issues/5843 ruleSelector : ValuesThanosRulerThanosRulerSpecRuleSelector, optional # PrometheusRules to be selected for target discovery. # If {}, select all PrometheusRules @@ -13009,9 +13801,15 @@ schema ValuesThanosRulerThanosRulerSpec: # If specified, the pod's topology spread constraints. # ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/ # + tracingConfig : ValuesThanosRulerThanosRulerSpecTracingConfig, optional + # Configures tracing for Thanos Ruler. Maps to the tracing.config CLI argument. + tracingConfigFile : str, optional, default is "" + # Path to a tracing configuration file on disk (e.g. mounted through a volume). Takes precedence over tracingConfig. updateStrategy : ValuesThanosRulerThanosRulerSpecUpdateStrategy, optional # Update strategy for the StatefulSet. # ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies + version : str, optional, default is "" + # Version of Thanos Ruler to deploy. Overrides the version derived from the image tag when set. volumeMounts : [any], optional Additional VolumeMounts on the output StatefulSet definition. volumes : [any], optional @@ -13026,21 +13824,34 @@ schema ValuesThanosRulerThanosRulerSpec: additionalConfigString?: str affinity?: ValuesThanosRulerThanosRulerSpecAffinity alertDropLabels?: [any] + alertRelabelConfigFile?: str + alertRelabelConfigs?: ValuesThanosRulerThanosRulerSpecAlertRelabelConfigs alertmanagersConfig?: ValuesThanosRulerThanosRulerSpecAlertmanagersConfig containers?: [any] + dnsConfig?: ValuesThanosRulerThanosRulerSpecDnsConfig + dnsPolicy?: str + enableFeatures?: [any] + enableServiceLinks?: any + enforcedNamespaceLabel?: str evaluationInterval?: str + excludedFromEnforcement?: [any] externalPrefix?: any externalPrefixNilUsesHelmValues?: bool extraEnv?: [any] + grpcServerTlsConfig?: ValuesThanosRulerThanosRulerSpecGrpcServerTlsConfig + hostAliases?: [any] hostUsers?: any image?: ValuesThanosRulerThanosRulerSpecImage + imagePullPolicy?: str initContainers?: [any] labels?: ValuesThanosRulerThanosRulerSpecLabels listenLocal?: bool logFormat?: str logLevel?: str + minReadySeconds?: any nodeSelector?: ValuesThanosRulerThanosRulerSpecNodeSelector objectStorageConfig?: ValuesThanosRulerThanosRulerSpecObjectStorageConfig + objectStorageConfigFile?: str paused?: bool podAntiAffinity?: str podAntiAffinityTopologyKey?: str @@ -13050,11 +13861,17 @@ schema ValuesThanosRulerThanosRulerSpec: priorityClassName?: str queryConfig?: ValuesThanosRulerThanosRulerSpecQueryConfig queryEndpoints?: [any] + remoteWrite?: [any] replicas?: int + resendDelay?: str resources?: ValuesThanosRulerThanosRulerSpecResources retention?: str routePrefix?: str + ruleConcurrentEval?: any + ruleGracePeriod?: str ruleNamespaceSelector?: ValuesThanosRulerThanosRulerSpecRuleNamespaceSelector + ruleOutageTolerance?: str + ruleQueryOffset?: str ruleSelector?: ValuesThanosRulerThanosRulerSpecRuleSelector ruleSelectorNilUsesHelmValues?: bool securityContext?: ValuesThanosRulerThanosRulerSpecSecurityContext @@ -13063,7 +13880,10 @@ schema ValuesThanosRulerThanosRulerSpec: terminationGracePeriodSeconds?: any tolerations?: [any] topologySpreadConstraints?: [any] + tracingConfig?: ValuesThanosRulerThanosRulerSpecTracingConfig + tracingConfigFile?: str updateStrategy?: ValuesThanosRulerThanosRulerSpecUpdateStrategy + version?: str volumeMounts?: [any] volumes?: [any] web?: ValuesThanosRulerThanosRulerSpecWeb @@ -13082,6 +13902,37 @@ schema ValuesThanosRulerThanosRulerSpecAffinity: """ [...str]: any +schema ValuesThanosRulerThanosRulerSpecAlertRelabelConfigs: + r""" + # Configures alert relabeling for Thanos Ruler. Maps to the alert.relabel-config CLI argument. + + Attributes + ---------- + existingSecret : ValuesThanosRulerThanosRulerSpecAlertRelabelConfigsExistingSecret, optional + use existing secret, if configured, alertRelabelConfigs.secret will not be used + secret : ValuesThanosRulerThanosRulerSpecAlertRelabelConfigsSecret, optional + name: "" + key: "" + render alertRelabelConfigs secret data and configure it to be used by Thanos Ruler custom resource, ignored when alertRelabelConfigs.existingSecret is set + """ + [...str]: any + existingSecret?: ValuesThanosRulerThanosRulerSpecAlertRelabelConfigsExistingSecret + secret?: ValuesThanosRulerThanosRulerSpecAlertRelabelConfigsSecret + +schema ValuesThanosRulerThanosRulerSpecAlertRelabelConfigsExistingSecret: + r""" + use existing secret, if configured, alertRelabelConfigs.secret will not be used + """ + [...str]: any + +schema ValuesThanosRulerThanosRulerSpecAlertRelabelConfigsSecret: + r""" + name: "" + key: "" + render alertRelabelConfigs secret data and configure it to be used by Thanos Ruler custom resource, ignored when alertRelabelConfigs.existingSecret is set + """ + [...str]: any + schema ValuesThanosRulerThanosRulerSpecAlertmanagersConfig: r""" # AlertmanagerConfig define configuration for connecting to alertmanager. @@ -13116,6 +13967,19 @@ schema ValuesThanosRulerThanosRulerSpecAlertmanagersConfigSecret: """ [...str]: any +schema ValuesThanosRulerThanosRulerSpecDnsConfig: + r""" + # Defines the DNS configuration for the pods. + """ + [...str]: any + +schema ValuesThanosRulerThanosRulerSpecGrpcServerTlsConfig: + r""" + # Configures the gRPC server TLS for Thanos Ruler. + # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#monitoring.coreos.com/v1.TLSConfig + """ + [...str]: any + schema ValuesThanosRulerThanosRulerSpecImage: r""" # Image of ThanosRuler @@ -13126,7 +13990,7 @@ schema ValuesThanosRulerThanosRulerSpecImage: registry : str, optional, default is "quay.io" repository : str, optional, default is "thanos/thanos" sha : str, optional, default is "" - tag : str, optional, default is "v0.41.0" + tag : str, optional, default is "v0.42.4" """ [...str]: any registry?: str @@ -13291,6 +14155,37 @@ schema ValuesThanosRulerThanosRulerSpecStorage: """ [...str]: any +schema ValuesThanosRulerThanosRulerSpecTracingConfig: + r""" + # Configures tracing for Thanos Ruler. Maps to the tracing.config CLI argument. + + Attributes + ---------- + existingSecret : ValuesThanosRulerThanosRulerSpecTracingConfigExistingSecret, optional + use existing secret, if configured, tracingConfig.secret will not be used + secret : ValuesThanosRulerThanosRulerSpecTracingConfigSecret, optional + name: "" + key: "" + render tracingConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when tracingConfig.existingSecret is set + """ + [...str]: any + existingSecret?: ValuesThanosRulerThanosRulerSpecTracingConfigExistingSecret + secret?: ValuesThanosRulerThanosRulerSpecTracingConfigSecret + +schema ValuesThanosRulerThanosRulerSpecTracingConfigExistingSecret: + r""" + use existing secret, if configured, tracingConfig.secret will not be used + """ + [...str]: any + +schema ValuesThanosRulerThanosRulerSpecTracingConfigSecret: + r""" + name: "" + key: "" + render tracingConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when tracingConfig.existingSecret is set + """ + [...str]: any + schema ValuesThanosRulerThanosRulerSpecUpdateStrategy: r""" # Update strategy for the StatefulSet.