diff --git a/Makefile b/Makefile
index e9d0e55371..8382d58ecf 100644
--- a/Makefile
+++ b/Makefile
@@ -165,13 +165,17 @@ test: manifests generate fmt vet envtest ## Run tests.
lint: golangci-lint ## Run golangci-lint linter
cd api && $(GOLANGCI_LINT) run operator/... & P1=$$!; \
$(GOLANGCI_LINT) run & P2=$$!; \
- wait $$P1; wait $$P2
+ wait $$P1; S1=$$?; \
+ wait $$P2; S2=$$?; \
+ [ $$S1 -eq 0 ] && [ $$S2 -eq 0 ]
.PHONY: lint-fix
lint-fix: golangci-lint ## Run golangci-lint linter and perform fixes
cd api && $(GOLANGCI_LINT) run --fix operator/... & P1=$$!; \
$(GOLANGCI_LINT) run --fix & P2=$$!; \
- wait $$P1; wait $$P2
+ wait $$P1; S1=$$?; \
+ wait $$P2; S2=$$?; \
+ [ $$S1 -eq 0 ] && [ $$S2 -eq 0 ]
##@ Build
@@ -357,7 +361,7 @@ COSIGN_BIN ?= $(LOCALBIN)/cosign-$(COSIGN_VERSION)
## Tool Versions
KUSTOMIZE_VERSION ?= v5.8.1
CONTROLLER_TOOLS_VERSION ?= v0.22.0
-ENVTEST_VERSION ?= release-0.23
+ENVTEST_VERSION ?= release-0.24
GOLANGCI_LINT_VERSION ?= v2.13.2
CODEGENERATOR_VERSION ?= v0.37.0
OLM_VERSION ?= 0.46.0
diff --git a/api/go.mod b/api/go.mod
index 6d9e8ac8be..7bc627df92 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -2,7 +2,7 @@ module github.com/VictoriaMetrics/operator/api
// NOTE: modify go version only if it's really needed
// and api package is no longer compatible with previous go versions.
-go 1.26.6
+go 1.27.0
require (
github.com/VictoriaMetrics/VictoriaMetrics v1.151.0
diff --git a/api/operator/v1/common.go b/api/operator/v1/common.go
index 5abd8f6a0a..2645ef4ba5 100644
--- a/api/operator/v1/common.go
+++ b/api/operator/v1/common.go
@@ -1,7 +1,7 @@
package v1
import (
- "encoding/json"
+ "encoding/json/v2"
"fmt"
"net/url"
"strconv"
diff --git a/api/operator/v1/vlagent_types.go b/api/operator/v1/vlagent_types.go
index 27e83fd6f3..1e1dd3f829 100644
--- a/api/operator/v1/vlagent_types.go
+++ b/api/operator/v1/vlagent_types.go
@@ -1,7 +1,8 @@
package v1
import (
- "encoding/json"
+ "encoding/json/jsontext"
+ "encoding/json/v2"
"fmt"
"strings"
@@ -108,7 +109,7 @@ type VLAgentSpec struct {
// Configures vertical pod autoscaling.
// +optional
VPA *vmv1beta1.EmbeddedVPA `json:"vpa,omitempty"`
- vmv1beta1.CommonAppsParams `json:",inline,omitempty"`
+ vmv1beta1.CommonAppsParams `json:",inline"`
}
type VLAgentK8sCollector struct {
@@ -380,7 +381,7 @@ func (cr *VLAgent) UnmarshalJSON(src []byte) error {
type pcr VLAgent
type shadow struct {
*pcr
- Spec json.RawMessage `json:"spec"`
+ Spec jsontext.Value `json:"spec"`
}
s := shadow{pcr: (*pcr)(cr)}
if err := json.Unmarshal(src, &s); err != nil {
diff --git a/api/operator/v1/vlcluster_types.go b/api/operator/v1/vlcluster_types.go
index c6d3ea4699..b4444f264e 100644
--- a/api/operator/v1/vlcluster_types.go
+++ b/api/operator/v1/vlcluster_types.go
@@ -17,7 +17,8 @@ limitations under the License.
package v1
import (
- "encoding/json"
+ "encoding/json/jsontext"
+ "encoding/json/v2"
"fmt"
"strings"
@@ -701,7 +702,7 @@ func (cr *VLCluster) UnmarshalJSON(src []byte) error {
type pcr VLCluster
type shadow struct {
*pcr
- Spec json.RawMessage `json:"spec"`
+ Spec jsontext.Value `json:"spec"`
}
s := shadow{pcr: (*pcr)(cr)}
if err := json.Unmarshal(src, &s); err != nil {
diff --git a/api/operator/v1/vlsingle_types.go b/api/operator/v1/vlsingle_types.go
index 12925e14f1..bc6da90357 100644
--- a/api/operator/v1/vlsingle_types.go
+++ b/api/operator/v1/vlsingle_types.go
@@ -17,7 +17,8 @@ limitations under the License.
package v1
import (
- "encoding/json"
+ "encoding/json/jsontext"
+ "encoding/json/v2"
"fmt"
"strings"
@@ -41,7 +42,7 @@ type VLSingleSpec struct {
// created by operator for the given CustomResource
ManagedMetadata *vmv1beta1.ManagedObjectsMetadata `json:"managedMetadata,omitempty"`
- vmv1beta1.CommonAppsParams `json:",inline,omitempty"`
+ vmv1beta1.CommonAppsParams `json:",inline"`
// LogLevel for VictoriaLogs to be configured with.
// +optional
@@ -183,7 +184,7 @@ func (cr *VLSingle) UnmarshalJSON(src []byte) error {
type pcr VLSingle
type shadow struct {
*pcr
- Spec json.RawMessage `json:"spec"`
+ Spec jsontext.Value `json:"spec"`
}
s := shadow{pcr: (*pcr)(cr)}
if err := json.Unmarshal(src, &s); err != nil {
diff --git a/api/operator/v1/vmanomaly_types.go b/api/operator/v1/vmanomaly_types.go
index a7b8a6b807..31a5d13c2d 100644
--- a/api/operator/v1/vmanomaly_types.go
+++ b/api/operator/v1/vmanomaly_types.go
@@ -17,7 +17,8 @@ limitations under the License.
package v1
import (
- "encoding/json"
+ "encoding/json/jsontext"
+ "encoding/json/v2"
"fmt"
"path"
"strings"
@@ -135,7 +136,7 @@ type VMAnomalySpec struct {
// +optional
// +notes={available_from: "v0.73.0"}
UseLegacyNaming bool `json:"useLegacyNaming,omitempty"`
- vmv1beta1.CommonAppsParams `json:",inline,omitempty"`
+ vmv1beta1.CommonAppsParams `json:",inline"`
}
// VMAnomalyWritersSpec defines writer configuration for VMAnomaly
@@ -166,7 +167,7 @@ type VMAnomalyWritersSpec struct {
// +kubebuilder:validation:Minimum=0
MetricPrefixCacheMaxEntries *int `json:"metricPrefixCacheMaxEntries,omitempty" yaml:"metric_prefix_cache_max_entries,omitempty"`
// +optional
- VMAnomalyHTTPClientSpec `json:",inline,omitempty" yaml:",inline,omitempty"`
+ VMAnomalyHTTPClientSpec `json:",inline" yaml:",inline,omitempty"`
}
// VMAnomalyVMWriterMetricFormatSpec defines the desired state of VMAnomalyVMWriterMetricFormat
@@ -381,7 +382,7 @@ func (cr *VMAnomaly) UnmarshalJSON(src []byte) error {
type pcr VMAnomaly
type shadow struct {
*pcr
- Spec json.RawMessage `json:"spec"`
+ Spec jsontext.Value `json:"spec"`
}
s := shadow{pcr: (*pcr)(cr)}
if err := json.Unmarshal(src, &s); err != nil {
diff --git a/api/operator/v1/vtagent_types.go b/api/operator/v1/vtagent_types.go
index 000a8b226b..679845db62 100644
--- a/api/operator/v1/vtagent_types.go
+++ b/api/operator/v1/vtagent_types.go
@@ -17,7 +17,8 @@ limitations under the License.
package v1
import (
- "encoding/json"
+ "encoding/json/jsontext"
+ "encoding/json/v2"
"fmt"
"strings"
@@ -108,7 +109,7 @@ type VTAgentSpec struct {
// Configures vertical pod autoscaling.
// +optional
VPA *vmv1beta1.EmbeddedVPA `json:"vpa,omitempty"`
- vmv1beta1.CommonAppsParams `json:",inline,omitempty"`
+ vmv1beta1.CommonAppsParams `json:",inline"`
}
// Validate performs syntax validation
@@ -324,7 +325,7 @@ func (cr *VTAgent) UnmarshalJSON(src []byte) error {
type pcr VTAgent
type shadow struct {
*pcr
- Spec json.RawMessage `json:"spec"`
+ Spec jsontext.Value `json:"spec"`
}
s := shadow{pcr: (*pcr)(cr)}
if err := json.Unmarshal(src, &s); err != nil {
diff --git a/api/operator/v1/vtcluster_types.go b/api/operator/v1/vtcluster_types.go
index 5b07ff25fc..29dd3e26ea 100644
--- a/api/operator/v1/vtcluster_types.go
+++ b/api/operator/v1/vtcluster_types.go
@@ -17,7 +17,8 @@ limitations under the License.
package v1
import (
- "encoding/json"
+ "encoding/json/jsontext"
+ "encoding/json/v2"
"fmt"
"strings"
@@ -614,7 +615,7 @@ func (cr *VTCluster) UnmarshalJSON(src []byte) error {
type pcr VTCluster
type shadow struct {
*pcr
- Spec json.RawMessage `json:"spec"`
+ Spec jsontext.Value `json:"spec"`
}
s := shadow{pcr: (*pcr)(cr)}
if err := json.Unmarshal(src, &s); err != nil {
diff --git a/api/operator/v1/vtsingle_types.go b/api/operator/v1/vtsingle_types.go
index a7b018db4f..330a074bf6 100644
--- a/api/operator/v1/vtsingle_types.go
+++ b/api/operator/v1/vtsingle_types.go
@@ -17,7 +17,8 @@ limitations under the License.
package v1
import (
- "encoding/json"
+ "encoding/json/jsontext"
+ "encoding/json/v2"
"fmt"
"strings"
@@ -41,7 +42,7 @@ type VTSingleSpec struct {
// created by operator for the given CustomResource
ManagedMetadata *vmv1beta1.ManagedObjectsMetadata `json:"managedMetadata,omitempty"`
- vmv1beta1.CommonAppsParams `json:",inline,omitempty"`
+ vmv1beta1.CommonAppsParams `json:",inline"`
// LogLevel for VictoriaTraces to be configured with.
// +optional
@@ -176,7 +177,7 @@ func (cr *VTSingle) UnmarshalJSON(src []byte) error {
type pcr VTSingle
type shadow struct {
*pcr
- Spec json.RawMessage `json:"spec"`
+ Spec jsontext.Value `json:"spec"`
}
s := shadow{pcr: (*pcr)(cr)}
if err := json.Unmarshal(src, &s); err != nil {
diff --git a/api/operator/v1alpha1/vldistributed_types.go b/api/operator/v1alpha1/vldistributed_types.go
index dfacd325a4..0e6b2bf292 100644
--- a/api/operator/v1alpha1/vldistributed_types.go
+++ b/api/operator/v1alpha1/vldistributed_types.go
@@ -17,7 +17,8 @@ limitations under the License.
package v1alpha1
import (
- "encoding/json"
+ "encoding/json/jsontext"
+ "encoding/json/v2"
"fmt"
"strings"
@@ -263,7 +264,7 @@ type VLDistributedZoneAgentSpec struct {
// +optional
VPA *vmv1beta1.EmbeddedVPA `json:"vpa,omitempty"`
- vmv1beta1.CommonAppsParams `json:",inline,omitempty"`
+ vmv1beta1.CommonAppsParams `json:",inline"`
}
// ToVLAgentSpec converts VLDistributedZoneAgentSpec to vmv1.VLAgentSpec via JSON round-trip.
@@ -454,7 +455,7 @@ func (cr *VLDistributed) UnmarshalJSON(src []byte) error {
type pcr VLDistributed
type shadow struct {
*pcr
- Spec json.RawMessage `json:"spec"`
+ Spec jsontext.Value `json:"spec"`
}
s := shadow{pcr: (*pcr)(cr)}
if err := json.Unmarshal(src, &s); err != nil {
diff --git a/api/operator/v1alpha1/vmdistributed_types.go b/api/operator/v1alpha1/vmdistributed_types.go
index 369f077afe..d0b7afe223 100644
--- a/api/operator/v1alpha1/vmdistributed_types.go
+++ b/api/operator/v1alpha1/vmdistributed_types.go
@@ -17,7 +17,8 @@ limitations under the License.
package v1alpha1
import (
- "encoding/json"
+ "encoding/json/jsontext"
+ "encoding/json/v2"
"fmt"
"strings"
@@ -283,7 +284,7 @@ type VMDistributedZoneAgentSpec struct {
// +optional
HPA *vmv1beta1.EmbeddedHPA `json:"hpa,omitempty"`
- vmv1beta1.CommonAppsParams `json:",inline,omitempty"`
+ vmv1beta1.CommonAppsParams `json:",inline"`
}
func (s *VMDistributedZoneAgentSpec) ToVMAgentSpec() (*vmv1beta1.VMAgentSpec, error) {
@@ -490,7 +491,7 @@ func (cr *VMDistributed) UnmarshalJSON(src []byte) error {
type pcr VMDistributed
type shadow struct {
*pcr
- Spec json.RawMessage `json:"spec"`
+ Spec jsontext.Value `json:"spec"`
}
s := shadow{pcr: (*pcr)(cr)}
if err := json.Unmarshal(src, &s); err != nil {
diff --git a/api/operator/v1beta1/case_ignore_test.go b/api/operator/v1beta1/case_ignore_test.go
new file mode 100644
index 0000000000..d510c1321d
--- /dev/null
+++ b/api/operator/v1beta1/case_ignore_test.go
@@ -0,0 +1,174 @@
+package v1beta1
+
+import (
+ "encoding/json/v2"
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+)
+
+// TestScrapeConfigCaseIgnore verifies that both snake_case and camelCase field
+// names are accepted for scrape config types, thanks to the json "case:ignore"
+// tag option processed via jsonv2.Unmarshal in each CRD's UnmarshalJSON.
+func TestScrapeConfigCaseIgnore(t *testing.T) {
+ t.Run("VMNodeScrape camelCase scrape params", func(t *testing.T) {
+ src := `{
+ "apiVersion": "operator.victoriametrics.com/v1beta1",
+ "kind": "VMNodeScrape",
+ "metadata": {"name": "test"},
+ "spec": {
+ "scrapeInterval": "30s",
+ "scrapeTimeout": "10s",
+ "honorLabels": true,
+ "honorTimestamps": false,
+ "path": "/metrics"
+ }
+ }`
+ var ns VMNodeScrape
+ assert.NoError(t, json.Unmarshal([]byte(src), &ns))
+ assert.Empty(t, ns.Status.ParsingSpecError)
+ assert.Equal(t, "30s", ns.Spec.ScrapeInterval)
+ assert.Equal(t, "10s", ns.Spec.ScrapeTimeout)
+ assert.Equal(t, true, ns.Spec.HonorLabels)
+ assert.Equal(t, false, *ns.Spec.HonorTimestamps)
+ })
+
+ t.Run("VMNodeScrape snake_case scrape params (canonical, regression)", func(t *testing.T) {
+ src := `{
+ "apiVersion": "operator.victoriametrics.com/v1beta1",
+ "kind": "VMNodeScrape",
+ "metadata": {"name": "test"},
+ "spec": {
+ "scrape_interval": "60s",
+ "honorLabels": false
+ }
+ }`
+ var ns VMNodeScrape
+ assert.NoError(t, json.Unmarshal([]byte(src), &ns))
+ assert.Empty(t, ns.Status.ParsingSpecError)
+ assert.Equal(t, "60s", ns.Spec.ScrapeInterval)
+ assert.Equal(t, false, ns.Spec.HonorLabels)
+ })
+
+ t.Run("VMServiceScrape camelCase endpoint auth fields", func(t *testing.T) {
+ src := `{
+ "apiVersion": "operator.victoriametrics.com/v1beta1",
+ "kind": "VMServiceScrape",
+ "metadata": {"name": "test"},
+ "spec": {
+ "endpoints": [
+ {
+ "port": "metrics",
+ "scrapeInterval": "15s",
+ "scrapeTimeout": "5s",
+ "honorLabels": true,
+ "bearerTokenFile": "/var/run/secrets/token",
+ "tlsConfig": {
+ "insecureSkipVerify": true
+ }
+ }
+ ],
+ "selector": {}
+ }
+ }`
+ var ss VMServiceScrape
+ assert.NoError(t, json.Unmarshal([]byte(src), &ss))
+ assert.Empty(t, ss.Status.ParsingSpecError)
+ ep := ss.Spec.Endpoints[0]
+ assert.Equal(t, "15s", ep.ScrapeInterval)
+ assert.Equal(t, "5s", ep.ScrapeTimeout)
+ assert.Equal(t, true, ep.HonorLabels)
+ assert.Equal(t, "/var/run/secrets/token", ep.BearerTokenFile)
+ assert.Equal(t, true, ep.TLSConfig.InsecureSkipVerify)
+ })
+
+ t.Run("mixed snake_case and camelCase in endpoint", func(t *testing.T) {
+ src := `{
+ "apiVersion": "operator.victoriametrics.com/v1beta1",
+ "kind": "VMNodeScrape",
+ "metadata": {"name": "test"},
+ "spec": {
+ "scrape_interval": "30s",
+ "scrapeTimeout": "10s",
+ "honorLabels": true
+ }
+ }`
+ var ns VMNodeScrape
+ assert.NoError(t, json.Unmarshal([]byte(src), &ns))
+ assert.Empty(t, ns.Status.ParsingSpecError)
+ assert.Equal(t, "30s", ns.Spec.ScrapeInterval)
+ assert.Equal(t, "10s", ns.Spec.ScrapeTimeout)
+ assert.Equal(t, true, ns.Spec.HonorLabels)
+ })
+}
+
+// TestCommonAppsParamsHostAliasesCompat verifies that the snake_case host_aliases
+// field is still accepted alongside hostAliases (build.PodTemplateAddCommonParams
+// applies the documented priority between the two).
+func TestCommonAppsParamsHostAliasesCompat(t *testing.T) {
+ t.Run("host_aliases decodes into HostAliasesUnderScore", func(t *testing.T) {
+ src := `{
+ "apiVersion": "operator.victoriametrics.com/v1beta1",
+ "kind": "VMSingle",
+ "metadata": {"name": "test"},
+ "spec": {
+ "host_aliases": [
+ {"ip": "1.2.3.4", "hostnames": ["my.host"]}
+ ]
+ }
+ }`
+ var vs VMSingle
+ assert.NoError(t, json.Unmarshal([]byte(src), &vs))
+ assert.Empty(t, vs.Status.ParsingSpecError)
+ assert.Empty(t, vs.Spec.HostAliases)
+ assert.Len(t, vs.Spec.HostAliasesUnderScore, 1)
+ assert.Equal(t, "1.2.3.4", vs.Spec.HostAliasesUnderScore[0].IP)
+ assert.Equal(t, []string{"my.host"}, vs.Spec.HostAliasesUnderScore[0].Hostnames)
+ })
+
+ t.Run("hostAliases (camelCase canonical) still works", func(t *testing.T) {
+ src := `{
+ "apiVersion": "operator.victoriametrics.com/v1beta1",
+ "kind": "VMSingle",
+ "metadata": {"name": "test"},
+ "spec": {
+ "hostAliases": [
+ {"ip": "5.6.7.8", "hostnames": ["other.host"]}
+ ]
+ }
+ }`
+ var vs VMSingle
+ assert.NoError(t, json.Unmarshal([]byte(src), &vs))
+ assert.Empty(t, vs.Status.ParsingSpecError)
+ assert.Len(t, vs.Spec.HostAliases, 1)
+ assert.Equal(t, "5.6.7.8", vs.Spec.CommonAppsParams.HostAliases[0].IP)
+ })
+}
+
+// TestRelabelConfigSourceTargetLabelCaseIgnore verifies that the original Prometheus
+// relabel_config spelling (source_labels, target_label) is accepted alongside
+// sourceLabels/targetLabel: case:ignore folds away case, dashes, and underscores, so
+// no extra handling is needed in RelabelConfig.UnmarshalJSON for this.
+func TestRelabelConfigSourceTargetLabelCaseIgnore(t *testing.T) {
+ t.Run("source_labels/target_label accepted", func(t *testing.T) {
+ var rc RelabelConfig
+ src := `{"source_labels": ["__address__"], "target_label": "address"}`
+ assert.NoError(t, json.Unmarshal([]byte(src), &rc))
+ assert.Equal(t, []string{"__address__"}, rc.SourceLabels)
+ assert.Equal(t, "address", rc.TargetLabel)
+ })
+
+ t.Run("sourceLabels/targetLabel (camelCase canonical) still works", func(t *testing.T) {
+ var rc RelabelConfig
+ src := `{"sourceLabels": ["__address__"], "targetLabel": "address"}`
+ assert.NoError(t, json.Unmarshal([]byte(src), &rc))
+ assert.Equal(t, []string{"__address__"}, rc.SourceLabels)
+ assert.Equal(t, "address", rc.TargetLabel)
+ })
+
+ t.Run("setting both spellings at once is rejected as ambiguous", func(t *testing.T) {
+ var rc RelabelConfig
+ src := `{"sourceLabels": ["__new__"], "source_labels": ["__old__"]}`
+ assert.Error(t, json.Unmarshal([]byte(src), &rc))
+ })
+}
diff --git a/api/operator/v1beta1/common_scrapeparams.go b/api/operator/v1beta1/common_scrapeparams.go
index 2ff93a711f..6abb64ee95 100644
--- a/api/operator/v1beta1/common_scrapeparams.go
+++ b/api/operator/v1beta1/common_scrapeparams.go
@@ -1,7 +1,7 @@
package v1beta1
import (
- "encoding/json"
+ "encoding/json/v2"
"fmt"
"reflect"
"strings"
@@ -34,7 +34,7 @@ type ScrapeClass struct {
// When the scrape object defines its own configuration, it takes
// precedence over the scrape class configuration.
// +optional
- AttachMetadata *AttachMetadata `json:"attachMetadata,omitempty"`
+ AttachMetadata *AttachMetadata `json:"attachMetadata,omitempty,case:ignore"`
}
// AttachMetadata configures metadata attachment
@@ -51,28 +51,29 @@ type AttachMetadata struct {
// VMScrapeParams defines scrape target configuration that compatible only with VictoriaMetrics scrapers
// VMAgent and VMSingle
+// +kubebuilder:pruning:PreserveUnknownFields
type VMScrapeParams struct {
// DisableCompression
// +optional
- DisableCompression *bool `json:"disable_compression,omitempty"`
+ DisableCompression *bool `json:"disable_compression,omitempty,case:ignore"`
// disable_keepalive allows disabling HTTP keep-alive when scraping targets.
// By default, HTTP keep-alive is enabled, so TCP connections to scrape targets
// could be reused.
// See https://docs.victoriametrics.com/victoriametrics/vmagent/#scrape_config-enhancements
// +optional
- DisableKeepAlive *bool `json:"disable_keep_alive,omitempty"`
+ DisableKeepAlive *bool `json:"disable_keep_alive,omitempty,case:ignore"`
// +optional
- DisableStaleMarkers *bool `json:"no_stale_markers,omitempty"`
+ DisableStaleMarkers *bool `json:"no_stale_markers,omitempty,case:ignore"`
// +optional
- StreamParse *bool `json:"stream_parse,omitempty"`
+ StreamParse *bool `json:"stream_parse,omitempty,case:ignore"`
// +optional
- ScrapeAlignInterval *string `json:"scrape_align_interval,omitempty"`
+ ScrapeAlignInterval *string `json:"scrape_align_interval,omitempty,case:ignore"`
// +optional
- ScrapeOffset *string `json:"scrape_offset,omitempty"`
+ ScrapeOffset *string `json:"scrape_offset,omitempty,case:ignore"`
// ProxyClientConfig configures proxy auth settings for scraping
// See feature description https://docs.victoriametrics.com/victoriametrics/vmagent/#scraping-targets-via-a-proxy
// +optional
- ProxyClientConfig *ProxyClientConfig `json:"proxy_client_config,omitempty"`
+ ProxyClientConfig *ProxyClientConfig `json:"proxy_client_config,omitempty,case:ignore"`
// Headers allows sending custom headers to scrape targets
// must be in of semicolon separated header with it's value
// eg:
@@ -83,27 +84,28 @@ type VMScrapeParams struct {
}
// ProxyClientConfig represent proxy client config
+// +kubebuilder:pruning:PreserveUnknownFields
type ProxyClientConfig struct {
// OAuth2 defines auth configuration
// +optional
OAuth2 *OAuth2 `json:"oauth2,omitempty"`
// BasicAuth allows proxy to authenticate over basic authentication
// +optional
- BasicAuth *BasicAuth `json:"basic_auth,omitempty"`
+ BasicAuth *BasicAuth `json:"basic_auth,omitempty,case:ignore"`
// Secret to mount to read bearer token for scraping targets proxy auth. The secret
// needs to be in the same namespace as the scrape object and accessible by
// the victoria-metrics operator.
// +optional
// +nullable
- BearerToken *corev1.SecretKeySelector `json:"bearer_token,omitempty"`
+ BearerToken *corev1.SecretKeySelector `json:"bearer_token,omitempty,case:ignore"`
// BearerTokenFile defines file to read bearer token from for proxy auth.
// +optional
- BearerTokenFile string `json:"bearer_token_file,omitempty"`
+ BearerTokenFile string `json:"bearer_token_file,omitempty,case:ignore"`
// TLSConfig configuration to use when scraping the endpoint
// +optional
// +kubebuilder:validation:Schemaless
// +kubebuilder:pruning:PreserveUnknownFields
- TLSConfig *TLSConfig `json:"tls_config,omitempty"`
+ TLSConfig *TLSConfig `json:"tls_config,omitempty,case:ignore"`
// Authorization with http header Authorization
// +optional
Authorization *Authorization `json:"authorization,omitempty"`
@@ -134,39 +136,40 @@ func (c *ProxyClientConfig) validateArbitraryFSAccess() error {
}
// OAuth2 defines OAuth2 configuration
+// +kubebuilder:pruning:PreserveUnknownFields
type OAuth2 struct {
// The secret or configmap containing the OAuth2 client id
// +required
- ClientID SecretOrConfigMap `json:"client_id" yaml:"client_id,omitempty"`
+ ClientID SecretOrConfigMap `json:"client_id,case:ignore" yaml:"client_id,omitempty"`
// The secret containing the OAuth2 client secret
// +optional
- ClientSecret *corev1.SecretKeySelector `json:"client_secret,omitempty" yaml:"client_secret,omitempty"`
+ ClientSecret *corev1.SecretKeySelector `json:"client_secret,omitempty,case:ignore" yaml:"client_secret,omitempty"`
// ClientSecretFile defines path for client secret file.
// +optional
- ClientSecretFile string `json:"client_secret_file,omitempty" yaml:"client_secret_file,omitempty"`
+ ClientSecretFile string `json:"client_secret_file,omitempty,case:ignore" yaml:"client_secret_file,omitempty"`
// The URL to fetch the token from
// +kubebuilder:validation:MinLength=1
// +required
- TokenURL string `json:"token_url" yaml:"token_url"`
+ TokenURL string `json:"token_url,case:ignore" yaml:"token_url"`
// OAuth2 scopes used for the token request
// +optional
Scopes []string `json:"scopes,omitempty"`
// Parameters to append to the token URL
// +optional
- EndpointParams map[string]string `json:"endpoint_params,omitempty" yaml:"endpoint_params"`
+ EndpointParams map[string]string `json:"endpoint_params,omitempty,case:ignore" yaml:"endpoint_params"`
// The proxy URL for token_url connection
// Is only supported by Scrape objects family
// +optional
// +notes={available_from: "v0.55.0"}
- ProxyURL string `json:"proxy_url,omitempty"`
+ ProxyURL string `json:"proxy_url,omitempty,case:ignore"`
// TLSConfig for token_url connection
// Is only supported by Scrape objects family
// +optional
// +kubebuilder:validation:Schemaless
// +kubebuilder:pruning:PreserveUnknownFields
// +notes={available_from: "v0.55.0"}
- TLSConfig *TLSConfig `json:"tls_config,omitempty"`
+ TLSConfig *TLSConfig `json:"tls_config,omitempty,case:ignore"`
}
func (o *OAuth2) validate() error {
@@ -201,7 +204,7 @@ type Authorization struct {
Credentials *corev1.SecretKeySelector `json:"credentials,omitempty"`
// File with value for authorization
// +optional
- CredentialsFile string `json:"credentialsFile,omitempty" yaml:"credentials_file,omitempty"`
+ CredentialsFile string `json:"credentialsFile,omitempty,case:ignore" yaml:"credentials_file,omitempty"`
}
func (ac *Authorization) validate() error {
@@ -222,32 +225,20 @@ func (ac *Authorization) validate() error {
// RelabelConfig allows dynamic rewriting of the label set
// More info: https://docs.victoriametrics.com/victoriametrics/#relabeling
// +k8s:openapi-gen=true
+// +kubebuilder:pruning:PreserveUnknownFields
type RelabelConfig struct {
- // UnderScoreSourceLabels - additional form of source labels source_labels
- // for compatibility with original relabel config.
- // if set both sourceLabels and source_labels, sourceLabels has priority.
- // for details https://github.com/VictoriaMetrics/operator/issues/131
- // +optional
- UnderScoreSourceLabels []string `json:"source_labels,omitempty" yaml:"source_labels,omitempty"`
- // UnderScoreTargetLabel - additional form of target label - target_label
- // for compatibility with original relabel config.
- // if set both targetLabel and target_label, targetLabel has priority.
- // for details https://github.com/VictoriaMetrics/operator/issues/131
- // +optional
- UnderScoreTargetLabel string `json:"target_label,omitempty" yaml:"target_label,omitempty"`
-
// The source labels select values from existing labels. Their content is concatenated
// using the configured separator and matched against the configured regular expression
// for the replace, keep, and drop actions.
// +optional
- SourceLabels []string `json:"sourceLabels,omitempty" yaml:"-"`
+ SourceLabels []string `json:"sourceLabels,omitempty,case:ignore" yaml:"source_labels,omitempty"`
// Separator placed between concatenated source label values. default is ';'.
// +optional
Separator *string `json:"separator,omitempty" yaml:"separator,omitempty"`
// Label to which the resulting value is written in a replace action.
// It is mandatory for replace actions. Regex capture groups are available.
// +optional
- TargetLabel string `json:"targetLabel,omitempty" yaml:"-"`
+ TargetLabel string `json:"targetLabel,omitempty,case:ignore" yaml:"target_label,omitempty"`
// Regular expression against which the extracted value is matched. Default is '(.*)'
// victoriaMetrics supports multiline regex joined with |
// https://docs.victoriametrics.com/victoriametrics/vmagent/#relabeling-enhancements
@@ -278,26 +269,14 @@ type RelabelConfig struct {
Labels map[string]string `json:"labels,omitempty" yaml:"labels,omitempty"`
}
-// UnmarshalJSON implements interface
-// handles cases for snake and camel cases of json tags
+// UnmarshalJSON implements json.Unmarshaler.
+// Both snake_case (source_labels, target_label) and camelCase (sourceLabels, targetLabel)
+// field names are accepted, thanks to the case:ignore json tag option.
func (rc *RelabelConfig) UnmarshalJSON(src []byte) error {
type rcfg RelabelConfig
- if err := json.Unmarshal(src, (*rcfg)(rc)); err != nil {
+ if err := json.Unmarshal(src, (*rcfg)(rc), json.MatchCaseInsensitiveNames(true)); err != nil {
return fmt.Errorf("cannot parse relabelConfig: %w", err)
}
-
- if len(rc.SourceLabels) == 0 && len(rc.UnderScoreSourceLabels) > 0 {
- rc.SourceLabels = append(rc.SourceLabels, rc.UnderScoreSourceLabels...)
- }
- if len(rc.UnderScoreSourceLabels) == 0 && len(rc.SourceLabels) > 0 {
- rc.UnderScoreSourceLabels = append(rc.UnderScoreSourceLabels, rc.SourceLabels...)
- }
- if rc.TargetLabel == "" && rc.UnderScoreTargetLabel != "" {
- rc.TargetLabel = rc.UnderScoreTargetLabel
- }
- if rc.UnderScoreTargetLabel == "" && rc.TargetLabel != "" {
- rc.UnderScoreTargetLabel = rc.TargetLabel
- }
return nil
}
@@ -310,6 +289,7 @@ func (rc *RelabelConfig) IsEmpty() bool {
}
// EndpointScrapeParams defines common configuration params for all scrape endpoint targets
+// +kubebuilder:pruning:PreserveUnknownFields
type EndpointScrapeParams struct {
// HTTP path to scrape for metrics.
// +optional
@@ -323,39 +303,39 @@ type EndpointScrapeParams struct {
Params map[string][]string `json:"params,omitempty"`
// FollowRedirects controls redirects for scraping.
// +optional
- FollowRedirects *bool `json:"follow_redirects,omitempty"`
+ FollowRedirects *bool `json:"follow_redirects,omitempty,case:ignore"`
// SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
// +optional
- SampleLimit int `json:"sampleLimit,omitempty"`
+ SampleLimit int `json:"sampleLimit,omitempty,case:ignore"`
// SeriesLimit defines per-scrape limit on number of unique time series
// a single target can expose during all the scrapes on the time window of 24h.
// +optional
- SeriesLimit int `json:"seriesLimit,omitempty"`
+ SeriesLimit int `json:"seriesLimit,omitempty,case:ignore"`
// Interval at which metrics should be scraped
// +optional
Interval string `json:"interval,omitempty"`
// ScrapeInterval is the same as Interval and has priority over it.
// one of scrape_interval or interval can be used
// +optional
- ScrapeInterval string `json:"scrape_interval,omitempty"`
+ ScrapeInterval string `json:"scrape_interval,omitempty,case:ignore"`
// Timeout after which the scrape is ended
// +optional
- ScrapeTimeout string `json:"scrapeTimeout,omitempty"`
+ ScrapeTimeout string `json:"scrapeTimeout,omitempty,case:ignore"`
// ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint.
// +optional
- ProxyURL *string `json:"proxyURL,omitempty"`
+ ProxyURL *string `json:"proxyURL,omitempty,case:ignore"`
// HonorLabels chooses the metric's labels on collisions with target labels.
// +optional
- HonorLabels bool `json:"honorLabels,omitempty"`
+ HonorLabels bool `json:"honorLabels,omitempty,case:ignore"`
// HonorTimestamps controls whether vmagent or vmsingle respects the timestamps present in scraped data.
// +optional
- HonorTimestamps *bool `json:"honorTimestamps,omitempty"`
+ HonorTimestamps *bool `json:"honorTimestamps,omitempty,case:ignore"`
// MaxScrapeSize defines a maximum size of scraped data for a job
// +optional
- MaxScrapeSize string `json:"max_scrape_size,omitempty"`
+ MaxScrapeSize string `json:"max_scrape_size,omitempty,case:ignore"`
// VMScrapeParams defines VictoriaMetrics specific scrape parameters
// +optional
- VMScrapeParams *VMScrapeParams `json:"vm_scrape_params,omitempty"`
+ VMScrapeParams *VMScrapeParams `json:"vm_scrape_params,omitempty,case:ignore"`
EndpointAuth `json:",inline"`
}
@@ -372,25 +352,26 @@ func (p *EndpointScrapeParams) ValidateArbitraryFSAccess() error {
}
// EndpointAuth defines target endpoint authorization options for scrapping
+// +kubebuilder:pruning:PreserveUnknownFields
type EndpointAuth struct {
// OAuth2 defines auth configuration
// +optional
OAuth2 *OAuth2 `json:"oauth2,omitempty"`
// TLSConfig configuration to use when scraping the endpoint
// +optional
- TLSConfig *TLSConfig `json:"tlsConfig,omitempty"`
+ TLSConfig *TLSConfig `json:"tlsConfig,omitempty,case:ignore"`
// File to read bearer token for scraping targets.
// +optional
- BearerTokenFile string `json:"bearerTokenFile,omitempty"`
+ BearerTokenFile string `json:"bearerTokenFile,omitempty,case:ignore"`
// Secret to mount to read bearer token for scraping targets. The secret
// needs to be in the same namespace as the scrape object and accessible by
// the victoria-metrics operator.
// +optional
// +nullable
- BearerTokenSecret *corev1.SecretKeySelector `json:"bearerTokenSecret,omitempty"`
+ BearerTokenSecret *corev1.SecretKeySelector `json:"bearerTokenSecret,omitempty,case:ignore"`
// BasicAuth allow an endpoint to authenticate over basic authentication
// +optional
- BasicAuth *BasicAuth `json:"basicAuth,omitempty"`
+ BasicAuth *BasicAuth `json:"basicAuth,omitempty,case:ignore"`
// Authorization with http header Authorization
// +optional
Authorization *Authorization `json:"authorization,omitempty"`
@@ -432,13 +413,14 @@ func (a *EndpointAuth) validateArbitraryFSAccess() error {
}
// EndpointRelabelings defines service discovery and metrics relabeling configuration for endpoints
+// +kubebuilder:pruning:PreserveUnknownFields
type EndpointRelabelings struct {
// MetricRelabelConfigs to apply to samples after scrapping.
// +optional
- MetricRelabelConfigs []*RelabelConfig `json:"metricRelabelConfigs,omitempty"`
+ MetricRelabelConfigs []*RelabelConfig `json:"metricRelabelConfigs,omitempty,case:ignore"`
// RelabelConfigs to apply to samples during service discovery.
// +optional
- RelabelConfigs []*RelabelConfig `json:"relabelConfigs,omitempty"`
+ RelabelConfigs []*RelabelConfig `json:"relabelConfigs,omitempty,case:ignore"`
}
func (r *EndpointRelabelings) validate() error {
@@ -452,136 +434,138 @@ func (r *EndpointRelabelings) validate() error {
}
// CommonScrapeSecurityEnforcements defines security configuration for endpoint scrapping
+// +kubebuilder:pruning:PreserveUnknownFields
type CommonScrapeSecurityEnforcements struct {
// OverrideHonorLabels if set to true overrides all user configured honor_labels.
// If HonorLabels is set in scrape objects to true, this overrides honor_labels to false.
// +optional
- OverrideHonorLabels bool `json:"overrideHonorLabels,omitempty"`
+ OverrideHonorLabels bool `json:"overrideHonorLabels,omitempty,case:ignore"`
// OverrideHonorTimestamps allows to globally enforce honoring timestamps in all scrape configs.
// +optional
- OverrideHonorTimestamps bool `json:"overrideHonorTimestamps,omitempty"`
+ OverrideHonorTimestamps bool `json:"overrideHonorTimestamps,omitempty,case:ignore"`
// IgnoreNamespaceSelectors if set to true will ignore NamespaceSelector settings from
// scrape objects, and they will only discover endpoints
// within their current namespace. Defaults to false.
// +optional
- IgnoreNamespaceSelectors bool `json:"ignoreNamespaceSelectors,omitempty"`
+ IgnoreNamespaceSelectors bool `json:"ignoreNamespaceSelectors,omitempty,case:ignore"`
// EnforcedNamespaceLabel enforces adding a namespace label of origin for each alert
// and metric that is user created. The label value will always be the namespace of the object that is
// being created.
// +optional
- EnforcedNamespaceLabel string `json:"enforcedNamespaceLabel,omitempty"`
+ EnforcedNamespaceLabel string `json:"enforcedNamespaceLabel,omitempty,case:ignore"`
// ArbitraryFSAccessThroughSMs configures whether configuration
// based on EndpointAuth can access arbitrary files on the file system
// of the VMAgent or VMSingle container e.g. bearer token files, basic auth, tls certs
// +optional
- ArbitraryFSAccessThroughSMs ArbitraryFSAccessThroughSMsConfig `json:"arbitraryFSAccessThroughSMs,omitempty"`
+ ArbitraryFSAccessThroughSMs ArbitraryFSAccessThroughSMsConfig `json:"arbitraryFSAccessThroughSMs,omitempty,case:ignore"`
}
+// +kubebuilder:pruning:PreserveUnknownFields
type CommonScrapeParams struct {
// GlobalScrapeMetricRelabelConfigs is a global metric relabel configuration, which is applied to each scrape job.
// +optional
- GlobalScrapeMetricRelabelConfigs []*RelabelConfig `json:"globalScrapeMetricRelabelConfigs,omitempty"`
+ GlobalScrapeMetricRelabelConfigs []*RelabelConfig `json:"globalScrapeMetricRelabelConfigs,omitempty,case:ignore"`
// GlobalScrapeRelabelConfigs is a global relabel configuration, which is applied to each samples of each scrape job during service discovery.
// +optional
- GlobalScrapeRelabelConfigs []*RelabelConfig `json:"globalScrapeRelabelConfigs,omitempty"`
+ GlobalScrapeRelabelConfigs []*RelabelConfig `json:"globalScrapeRelabelConfigs,omitempty,case:ignore"`
// ScrapeInterval defines how often scrape targets by default
// +optional
// +kubebuilder:validation:Pattern:="[0-9]+(ms|s|m|h)"
- ScrapeInterval string `json:"scrapeInterval,omitempty"`
+ ScrapeInterval string `json:"scrapeInterval,omitempty,case:ignore"`
// ScrapeTimeout defines global timeout for targets scrape
// +optional
// +kubebuilder:validation:Pattern:="[0-9]+(ms|s|m|h)"
- ScrapeTimeout string `json:"scrapeTimeout,omitempty"`
+ ScrapeTimeout string `json:"scrapeTimeout,omitempty,case:ignore"`
// SampleLimit defines global per target limit of scraped samples
// +optional
- SampleLimit int `json:"sampleLimit,omitempty"`
+ SampleLimit int `json:"sampleLimit,omitempty,case:ignore"`
// SelectAllByDefault changes default behavior for empty CRD selectors, such ServiceScrapeSelector.
// with selectAllByDefault: true and empty serviceScrapeSelector and ServiceScrapeNamespaceSelector
// Operator selects all exist serviceScrapes
// with selectAllByDefault: false - selects nothing
// +optional
- SelectAllByDefault bool `json:"selectAllByDefault,omitempty"`
+ SelectAllByDefault bool `json:"selectAllByDefault,omitempty,case:ignore"`
// ServiceScrapeSelector defines ServiceScrapes to be selected for target discovery.
// Works in combination with NamespaceSelector.
// NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
// Selector nil - only objects at NamespaceSelector namespaces.
// If both nil - behaviour controlled by selectAllByDefault
// +optional
- ServiceScrapeSelector *metav1.LabelSelector `json:"serviceScrapeSelector,omitempty"`
+ ServiceScrapeSelector *metav1.LabelSelector `json:"serviceScrapeSelector,omitempty,case:ignore"`
// ServiceScrapeNamespaceSelector Namespaces to be selected for VMServiceScrape discovery.
// Works in combination with Selector.
// NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
// Selector nil - only objects at NamespaceSelector namespaces.
// If both nil - behaviour controlled by selectAllByDefault
// +optional
- ServiceScrapeNamespaceSelector *metav1.LabelSelector `json:"serviceScrapeNamespaceSelector,omitempty"`
+ ServiceScrapeNamespaceSelector *metav1.LabelSelector `json:"serviceScrapeNamespaceSelector,omitempty,case:ignore"`
// PodScrapeSelector defines PodScrapes to be selected for target discovery.
// Works in combination with NamespaceSelector.
// NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
// Selector nil - only objects at NamespaceSelector namespaces.
// If both nil - behaviour controlled by selectAllByDefault
// +optional
- PodScrapeSelector *metav1.LabelSelector `json:"podScrapeSelector,omitempty"`
+ PodScrapeSelector *metav1.LabelSelector `json:"podScrapeSelector,omitempty,case:ignore"`
// PodScrapeNamespaceSelector defines Namespaces to be selected for VMPodScrape discovery.
// Works in combination with Selector.
// NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
// Selector nil - only objects at NamespaceSelector namespaces.
// If both nil - behaviour controlled by selectAllByDefault
// +optional
- PodScrapeNamespaceSelector *metav1.LabelSelector `json:"podScrapeNamespaceSelector,omitempty"`
+ PodScrapeNamespaceSelector *metav1.LabelSelector `json:"podScrapeNamespaceSelector,omitempty,case:ignore"`
// ProbeSelector defines VMProbe to be selected for target probing.
// Works in combination with NamespaceSelector.
// NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
// Selector nil - only objects at NamespaceSelector namespaces.
// If both nil - behaviour controlled by selectAllByDefault
// +optional
- ProbeSelector *metav1.LabelSelector `json:"probeSelector,omitempty"`
+ ProbeSelector *metav1.LabelSelector `json:"probeSelector,omitempty,case:ignore"`
// ProbeNamespaceSelector defines Namespaces to be selected for VMProbe discovery.
// Works in combination with Selector.
// NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
// Selector nil - only objects at NamespaceSelector namespaces.
// If both nil - behaviour controlled by selectAllByDefault
// +optional
- ProbeNamespaceSelector *metav1.LabelSelector `json:"probeNamespaceSelector,omitempty"`
+ ProbeNamespaceSelector *metav1.LabelSelector `json:"probeNamespaceSelector,omitempty,case:ignore"`
// NodeScrapeSelector defines VMNodeScrape to be selected for scraping.
// Works in combination with NamespaceSelector.
// NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
// Selector nil - only objects at NamespaceSelector namespaces.
// If both nil - behaviour controlled by selectAllByDefault
// +optional
- NodeScrapeSelector *metav1.LabelSelector `json:"nodeScrapeSelector,omitempty"`
+ NodeScrapeSelector *metav1.LabelSelector `json:"nodeScrapeSelector,omitempty,case:ignore"`
// NodeScrapeNamespaceSelector defines Namespaces to be selected for VMNodeScrape discovery.
// Works in combination with Selector.
// NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
// Selector nil - only objects at NamespaceSelector namespaces.
// If both nil - behaviour controlled by selectAllByDefault
// +optional
- NodeScrapeNamespaceSelector *metav1.LabelSelector `json:"nodeScrapeNamespaceSelector,omitempty"`
+ NodeScrapeNamespaceSelector *metav1.LabelSelector `json:"nodeScrapeNamespaceSelector,omitempty,case:ignore"`
// StaticScrapeSelector defines VMStaticScrape to be selected for target discovery.
// Works in combination with NamespaceSelector.
// If both nil - match everything.
// NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
// Selector nil - only objects at NamespaceSelector namespaces.
// +optional
- StaticScrapeSelector *metav1.LabelSelector `json:"staticScrapeSelector,omitempty"`
+ StaticScrapeSelector *metav1.LabelSelector `json:"staticScrapeSelector,omitempty,case:ignore"`
// StaticScrapeNamespaceSelector defines Namespaces to be selected for VMStaticScrape discovery.
// Works in combination with NamespaceSelector.
// NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
// Selector nil - only objects at NamespaceSelector namespaces.
// If both nil - behaviour controlled by selectAllByDefault
// +optional
- StaticScrapeNamespaceSelector *metav1.LabelSelector `json:"staticScrapeNamespaceSelector,omitempty"`
+ StaticScrapeNamespaceSelector *metav1.LabelSelector `json:"staticScrapeNamespaceSelector,omitempty,case:ignore"`
// ScrapeConfigSelector defines VMScrapeConfig to be selected for target discovery.
// Works in combination with NamespaceSelector.
// +optional
- ScrapeConfigSelector *metav1.LabelSelector `json:"scrapeConfigSelector,omitempty"`
+ ScrapeConfigSelector *metav1.LabelSelector `json:"scrapeConfigSelector,omitempty,case:ignore"`
// ScrapeConfigNamespaceSelector defines Namespaces to be selected for VMScrapeConfig discovery.
// Works in combination with Selector.
// NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
// Selector nil - only objects at NamespaceSelector namespaces.
// If both nil - behaviour controlled by selectAllByDefault
// +optional
- ScrapeConfigNamespaceSelector *metav1.LabelSelector `json:"scrapeConfigNamespaceSelector,omitempty"`
+ ScrapeConfigNamespaceSelector *metav1.LabelSelector `json:"scrapeConfigNamespaceSelector,omitempty,case:ignore"`
// InlineScrapeConfig As scrape configs are appended, the user is responsible to make sure it
// is valid. Note that using this feature may expose the possibility to
// break upgrades of VMAgent or VMSingle. It is advised to review VMAgent or VMSingle release
@@ -593,77 +577,77 @@ type CommonScrapeParams struct {
// static_configs:
// - targets: ["localhost:9090"]
// +optional
- InlineScrapeConfig string `json:"inlineScrapeConfig,omitempty"`
+ InlineScrapeConfig string `json:"inlineScrapeConfig,omitempty,case:ignore"`
// AdditionalScrapeConfigs As scrape configs are appended, the user is responsible to make sure it
// is valid. Note that using this feature may expose the possibility to
// break upgrades of VMAgent or VMSingle. It is advised to review VMAgent or VMSingle release
// notes to ensure that no incompatible scrape configs are going to break
// VMAgent or VMSingle after the upgrade.
// +optional
- AdditionalScrapeConfigs *corev1.SecretKeySelector `json:"additionalScrapeConfigs,omitempty"`
+ AdditionalScrapeConfigs *corev1.SecretKeySelector `json:"additionalScrapeConfigs,omitempty,case:ignore"`
// ServiceScrapeRelabelTemplate defines relabel config, that will be added to each VMServiceScrape.
// it's useful for adding specific labels to all targets
// +optional
- ServiceScrapeRelabelTemplate []*RelabelConfig `json:"serviceScrapeRelabelTemplate,omitempty"`
+ ServiceScrapeRelabelTemplate []*RelabelConfig `json:"serviceScrapeRelabelTemplate,omitempty,case:ignore"`
// PodScrapeRelabelTemplate defines relabel config, that will be added to each VMPodScrape.
// it's useful for adding specific labels to all targets
// +optional
- PodScrapeRelabelTemplate []*RelabelConfig `json:"podScrapeRelabelTemplate,omitempty"`
+ PodScrapeRelabelTemplate []*RelabelConfig `json:"podScrapeRelabelTemplate,omitempty,case:ignore"`
// NodeScrapeRelabelTemplate defines relabel config, that will be added to each VMNodeScrape.
// it's useful for adding specific labels to all targets
// +optional
- NodeScrapeRelabelTemplate []*RelabelConfig `json:"nodeScrapeRelabelTemplate,omitempty"`
+ NodeScrapeRelabelTemplate []*RelabelConfig `json:"nodeScrapeRelabelTemplate,omitempty,case:ignore"`
// StaticScrapeRelabelTemplate defines relabel config, that will be added to each VMStaticScrape.
// it's useful for adding specific labels to all targets
// +optional
- StaticScrapeRelabelTemplate []*RelabelConfig `json:"staticScrapeRelabelTemplate,omitempty"`
+ StaticScrapeRelabelTemplate []*RelabelConfig `json:"staticScrapeRelabelTemplate,omitempty,case:ignore"`
// ProbeScrapeRelabelTemplate defines relabel config, that will be added to each VMProbeScrape.
// it's useful for adding specific labels to all targets
// +optional
- ProbeScrapeRelabelTemplate []*RelabelConfig `json:"probeScrapeRelabelTemplate,omitempty"`
+ ProbeScrapeRelabelTemplate []*RelabelConfig `json:"probeScrapeRelabelTemplate,omitempty,case:ignore"`
// ScrapeConfigRelabelTemplate defines relabel config, that will be added to each VMScrapeConfig.
// it's useful for adding specific labels to all targets
// +optional
- ScrapeConfigRelabelTemplate []*RelabelConfig `json:"scrapeConfigRelabelTemplate,omitempty"`
+ ScrapeConfigRelabelTemplate []*RelabelConfig `json:"scrapeConfigRelabelTemplate,omitempty,case:ignore"`
// MinScrapeInterval allows limiting minimal scrape interval for VMServiceScrape, VMPodScrape and other scrapes
// If interval is lower than defined limit, `minScrapeInterval` will be used.
- MinScrapeInterval *string `json:"minScrapeInterval,omitempty"`
+ MinScrapeInterval *string `json:"minScrapeInterval,omitempty,case:ignore"`
// ScrapeClasses defines the list of scrape classes to expose to scraping objects such as
// PodScrapes, ServiceScrapes, Probes and ScrapeConfigs.
// +listType=map
// +listMapKey=name
// +optional
- ScrapeClasses []ScrapeClass `json:"scrapeClasses,omitempty"`
+ ScrapeClasses []ScrapeClass `json:"scrapeClasses,omitempty,case:ignore"`
// MaxScrapeInterval allows limiting maximum scrape interval for VMServiceScrape, VMPodScrape and other scrapes
// If interval is higher than defined limit, `maxScrapeInterval` will be used.
- MaxScrapeInterval *string `json:"maxScrapeInterval,omitempty"`
+ MaxScrapeInterval *string `json:"maxScrapeInterval,omitempty,case:ignore"`
// VMAgentExternalLabelName Name of vmAgent external label used to denote vmAgent instance
// name. Defaults to the value of `prometheus`. External label will
// _not_ be added when value is set to empty string (`""`).
// +notes={deprecated_in: "v0.67.0", removed_in: "v0.69.0", replacements: {externalLabelName}}
// +optional
- VMAgentExternalLabelName *string `json:"vmAgentExternalLabelName,omitempty"`
+ VMAgentExternalLabelName *string `json:"vmAgentExternalLabelName,omitempty,case:ignore"`
// ExternalLabelName Name of external label used to denote scraping agent instance
// name. Defaults to the value of `prometheus`. External label will
// _not_ be added when value is set to empty string (`""`).
// +optional
- ExternalLabelName *string `json:"externalLabelName,omitempty"`
+ ExternalLabelName *string `json:"externalLabelName,omitempty,case:ignore"`
// ExternalLabels The labels to add to any time series scraped by vmagent or vmsingle.
// it doesn't affect metrics ingested directly by push API's
// +optional
- ExternalLabels map[string]string `json:"externalLabels,omitempty"`
+ ExternalLabels map[string]string `json:"externalLabels,omitempty,case:ignore"`
// IngestOnlyMode switches vmagent or vmsingle into unmanaged mode
// it disables any config generation for scraping
// Currently it prevents vmagent or vmsingle from managing tls and auth options for remote write
// +optional
- IngestOnlyMode *bool `json:"ingestOnlyMode,omitempty"`
+ IngestOnlyMode *bool `json:"ingestOnlyMode,omitempty,case:ignore"`
// EnableKubernetesAPISelectors instructs vmagent or vmsingle to use CRD scrape objects spec.selectors for
// Kubernetes API list and watch requests.
// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#list-and-watch-filtering
// It could be useful to reduce Kubernetes API server resource usage for serving less than 100 CRD scrape objects in total.
// +optional
- EnableKubernetesAPISelectors bool `json:"enableKubernetesAPISelectors,omitempty"`
- CommonScrapeSecurityEnforcements `json:",inline,omitempty"`
+ EnableKubernetesAPISelectors bool `json:"enableKubernetesAPISelectors,omitempty,case:ignore"`
+ CommonScrapeSecurityEnforcements `json:",inline"`
}
func (cr *CommonScrapeParams) externalLabelName() string {
diff --git a/api/operator/v1beta1/vlogs_types.go b/api/operator/v1beta1/vlogs_types.go
index 38bd094d5d..09e67b1b7e 100644
--- a/api/operator/v1beta1/vlogs_types.go
+++ b/api/operator/v1beta1/vlogs_types.go
@@ -17,7 +17,8 @@ limitations under the License.
package v1beta1
import (
- "encoding/json"
+ "encoding/json/jsontext"
+ "encoding/json/v2"
"fmt"
"strings"
@@ -41,7 +42,7 @@ type VLogsSpec struct {
// created by operator for the given CustomResource
ManagedMetadata *ManagedObjectsMetadata `json:"managedMetadata,omitempty"`
- CommonAppsParams `json:",inline,omitempty"`
+ CommonAppsParams `json:",inline"`
// LogLevel for VictoriaLogs to be configured with.
// +optional
@@ -181,7 +182,7 @@ func (cr *VLogs) UnmarshalJSON(src []byte) error {
type pcr VLogs
type shadow struct {
*pcr
- Spec json.RawMessage `json:"spec"`
+ Spec jsontext.Value `json:"spec"`
}
s := shadow{pcr: (*pcr)(cr)}
if err := json.Unmarshal(src, &s); err != nil {
diff --git a/api/operator/v1beta1/vmagent_types.go b/api/operator/v1beta1/vmagent_types.go
index 8c2e295266..77036fa3c6 100644
--- a/api/operator/v1beta1/vmagent_types.go
+++ b/api/operator/v1beta1/vmagent_types.go
@@ -1,7 +1,8 @@
package v1beta1
import (
- "encoding/json"
+ "encoding/json/jsontext"
+ "encoding/json/v2"
"fmt"
"strings"
@@ -149,10 +150,10 @@ type VMAgentSpec struct {
// +optional
VPA *EmbeddedVPA `json:"vpa,omitempty"`
- CommonRelabelParams `json:",inline,omitempty"`
- CommonScrapeParams `json:",inline,omitempty"`
- CommonConfigReloaderParams `json:",inline,omitempty"`
- CommonAppsParams `json:",inline,omitempty"`
+ CommonRelabelParams `json:",inline"`
+ CommonScrapeParams `json:",inline"`
+ CommonConfigReloaderParams `json:",inline"`
+ CommonAppsParams `json:",inline"`
}
func (cr *VMAgent) Validate() error {
@@ -310,7 +311,7 @@ func (cr *VMAgent) UnmarshalJSON(src []byte) error {
type pcr VMAgent
type shadow struct {
*pcr
- Spec json.RawMessage `json:"spec"`
+ Spec jsontext.Value `json:"spec"`
}
s := shadow{pcr: (*pcr)(cr)}
if err := json.Unmarshal(src, &s); err != nil {
diff --git a/api/operator/v1beta1/vmalert_types.go b/api/operator/v1beta1/vmalert_types.go
index e1c2b94cdb..a85e2ca861 100644
--- a/api/operator/v1beta1/vmalert_types.go
+++ b/api/operator/v1beta1/vmalert_types.go
@@ -1,7 +1,8 @@
package v1beta1
import (
- "encoding/json"
+ "encoding/json/jsontext"
+ "encoding/json/v2"
"fmt"
"net/url"
"strings"
@@ -165,8 +166,8 @@ type VMAlertSpec struct {
// +optional
ComponentVersion string `json:"componentVersion,omitempty"`
- CommonConfigReloaderParams `json:",inline,omitempty"`
- CommonAppsParams `json:",inline,omitempty"`
+ CommonConfigReloaderParams `json:",inline"`
+ CommonAppsParams `json:",inline"`
}
// GetReloadURL implements reloadable interface
@@ -194,7 +195,7 @@ func (cr *VMAlert) UnmarshalJSON(src []byte) error {
type pcr VMAlert
type shadow struct {
*pcr
- Spec json.RawMessage `json:"spec"`
+ Spec jsontext.Value `json:"spec"`
}
s := shadow{pcr: (*pcr)(cr)}
if err := json.Unmarshal(src, &s); err != nil {
@@ -214,7 +215,7 @@ type VMAlertDatasourceSpec struct {
// Victoria Metrics or VMSelect url. Required parameter. E.g. http://127.0.0.1:8428
URL string `json:"url"`
// HTTPAuth generic auth methods
- HTTPAuth `json:",inline,omitempty"`
+ HTTPAuth `json:",inline"`
}
// VMAlertNotifierSpec defines the notifier url for sending information about alerts
@@ -229,7 +230,7 @@ type VMAlertNotifierSpec struct {
// +optional
Selector *DiscoverySelector `json:"selector,omitempty"`
- HTTPAuth `json:",inline,omitempty"`
+ HTTPAuth `json:",inline"`
}
func (ns *VMAlertNotifierSpec) validate() error {
@@ -256,7 +257,7 @@ type VMAlertRemoteReadSpec struct {
// +optional
Lookback *string `json:"lookback,omitempty"`
- HTTPAuth `json:",inline,omitempty"`
+ HTTPAuth `json:",inline"`
}
// VMAlertRemoteWriteSpec defines the remote storage configuration for VmAlert
@@ -278,7 +279,7 @@ type VMAlertRemoteWriteSpec struct {
// +optional
MaxQueueSize *int32 `json:"maxQueueSize,omitempty"`
// HTTPAuth generic auth methods
- HTTPAuth `json:",inline,omitempty"`
+ HTTPAuth `json:",inline"`
}
// VMAlertStatus defines the observed state of VMAlert
diff --git a/api/operator/v1beta1/vmalertmanager_types.go b/api/operator/v1beta1/vmalertmanager_types.go
index bbe5b34273..ca0d1f5ba6 100644
--- a/api/operator/v1beta1/vmalertmanager_types.go
+++ b/api/operator/v1beta1/vmalertmanager_types.go
@@ -1,7 +1,8 @@
package v1beta1
import (
- "encoding/json"
+ "encoding/json/jsontext"
+ "encoding/json/v2"
"fmt"
"net/url"
"path"
@@ -230,8 +231,8 @@ type VMAlertmanagerSpec struct {
// +optional
VPA *EmbeddedVPA `json:"vpa,omitempty"`
- CommonConfigReloaderParams `json:",inline,omitempty"`
- CommonAppsParams `json:",inline,omitempty"`
+ CommonConfigReloaderParams `json:",inline"`
+ CommonAppsParams `json:",inline"`
}
// GetReloadURL implements reloadable interface
@@ -300,7 +301,7 @@ func (cr *VMAlertmanager) UnmarshalJSON(src []byte) error {
type pcr VMAlertmanager
type shadow struct {
*pcr
- Spec json.RawMessage `json:"spec"`
+ Spec jsontext.Value `json:"spec"`
}
s := shadow{pcr: (*pcr)(cr)}
if err := json.Unmarshal(src, &s); err != nil {
diff --git a/api/operator/v1beta1/vmalertmanagerconfig_test.go b/api/operator/v1beta1/vmalertmanagerconfig_test.go
deleted file mode 100644
index d540e8940a..0000000000
--- a/api/operator/v1beta1/vmalertmanagerconfig_test.go
+++ /dev/null
@@ -1 +0,0 @@
-package v1beta1
diff --git a/api/operator/v1beta1/vmalertmanagerconfig_types.go b/api/operator/v1beta1/vmalertmanagerconfig_types.go
index c253255b73..87b2e28786 100644
--- a/api/operator/v1beta1/vmalertmanagerconfig_types.go
+++ b/api/operator/v1beta1/vmalertmanagerconfig_types.go
@@ -17,9 +17,9 @@ limitations under the License.
package v1beta1
import (
- "bytes"
"context"
- "encoding/json"
+ "encoding/json/jsontext"
+ "encoding/json/v2"
"fmt"
"html/template"
"log/slog"
@@ -42,6 +42,7 @@ import (
"k8s.io/apimachinery/pkg/util/sets"
)
+// +kubebuilder:pruning:PreserveUnknownFields
// VMAlertmanagerConfigSpec defines configuration for VMAlertmanagerConfig
// it must reference only locally defined objects
type VMAlertmanagerConfigSpec struct {
@@ -54,13 +55,14 @@ type VMAlertmanagerConfigSpec struct {
// InhibitRules will only apply for alerts matching
// the resource's namespace.
// +optional
- InhibitRules []InhibitRule `json:"inhibit_rules,omitempty" yaml:"inhibit_rules,omitempty"`
+ InhibitRules []InhibitRule `json:"inhibit_rules,omitempty,case:ignore" yaml:"inhibit_rules,omitempty"`
// TimeIntervals defines named interval for active/mute notifications interval
// See https://prometheus.io/docs/alerting/latest/configuration/#time_interval
// +optional
- TimeIntervals []TimeIntervals `json:"time_intervals,omitempty" yaml:"time_intervals,omitempty"`
+ TimeIntervals []TimeIntervals `json:"time_intervals,omitempty,case:ignore" yaml:"time_intervals,omitempty"`
}
+// +kubebuilder:pruning:PreserveUnknownFields
// TimeIntervals for alerts
type TimeIntervals struct {
// Name of interval
@@ -68,9 +70,10 @@ type TimeIntervals struct {
Name string `json:"name,omitempty"`
// TimeIntervals interval configuration
// +required
- TimeIntervals []TimeInterval `json:"time_intervals" yaml:"time_intervals"`
+ TimeIntervals []TimeInterval `json:"time_intervals,case:ignore" yaml:"time_intervals"`
}
+// +kubebuilder:pruning:PreserveUnknownFields
// TimeInterval defines intervals of time
type TimeInterval struct {
// Times defines time range for mute
@@ -82,7 +85,7 @@ type TimeInterval struct {
// DayOfMonth defines list of numerical days in the month. Days begin at 1. Negative values are also accepted.
// for example, ['1:5', '-3:-1']
// +optional
- DaysOfMonth []string `json:"days_of_month,omitempty" yaml:"days_of_month,omitempty"`
+ DaysOfMonth []string `json:"days_of_month,omitempty,case:ignore" yaml:"days_of_month,omitempty"`
// Months defines list of calendar months identified by a case-insensitive name (e.g. ‘January’) or numeric 1.
// For example, ['1:3', 'may:august', 'december']
// +optional
@@ -96,14 +99,15 @@ type TimeInterval struct {
Location string `json:"location,omitempty"`
}
+// +kubebuilder:pruning:PreserveUnknownFields
// TimeRange ranges inclusive of the starting time and exclusive of the end time
type TimeRange struct {
// StartTime for example HH:MM
// +required
- StartTime string `json:"start_time" yaml:"start_time"`
+ StartTime string `json:"start_time,case:ignore" yaml:"start_time"`
// EndTime for example HH:MM
// +required
- EndTime string `json:"end_time" yaml:"end_time"`
+ EndTime string `json:"end_time,case:ignore" yaml:"end_time"`
}
// GetStatusMetadata implements reconcile.objectWithStatus interface
@@ -269,7 +273,7 @@ type VMAlertmanagerConfigStatus struct {
// ObservedGeneration defines current generation picked by operator for the
// reconcile
StatusMetadata `json:",inline"`
- LastErrorParentAlertmanagerName string `json:"lastErrorParentAlertmanagerName,omitempty"`
+ LastErrorParentAlertmanagerName string `json:"lastErrorParentAlertmanagerName,omitempty,case:ignore"`
// ParsingSpecError contents error with context if operator was failed to parse json object from kubernetes api server
ParsingSpecError string `json:"-" yaml:"-"`
}
@@ -299,6 +303,7 @@ type VMAlertmanagerConfigList struct {
Items []VMAlertmanagerConfig `json:"items"`
}
+// +kubebuilder:pruning:PreserveUnknownFields
// Route defines a node in the routing tree.
type Route struct {
// Name of the receiver for this route.
@@ -306,19 +311,19 @@ type Route struct {
Receiver string `json:"receiver"`
// List of labels to group by.
// +optional
- GroupBy []string `json:"group_by,omitempty"`
+ GroupBy []string `json:"group_by,omitempty,case:ignore"`
// How long to wait before sending the initial notification.
// +kubebuilder:validation:Pattern:="[0-9]+(ms|s|m|h)"
// +optional
- GroupWait string `json:"group_wait,omitempty"`
+ GroupWait string `json:"group_wait,omitempty,case:ignore"`
// How long to wait before sending an updated notification.
// +kubebuilder:validation:Pattern:="[0-9]+(ms|s|m|h)"
// +optional
- GroupInterval string `json:"group_interval,omitempty"`
+ GroupInterval string `json:"group_interval,omitempty,case:ignore"`
// How long to wait before repeating the last notification.
// +kubebuilder:validation:Pattern:="[0-9]+(ms|s|m|h)"
// +optional
- RepeatInterval string `json:"repeat_interval,omitempty"`
+ RepeatInterval string `json:"repeat_interval,omitempty,case:ignore"`
// List of matchers that the alert’s labels should match. For the first
// level route, the operator adds a namespace: "CRD_NS" matcher.
// https://prometheus.io/docs/alerting/latest/configuration/#matcher
@@ -339,11 +344,11 @@ type Route struct {
RawRoutes []apiextensionsv1.JSON `json:"routes,omitempty" yaml:"routes,omitempty"`
// MuteTimeIntervals is a list of interval names that will mute matched alert
// +optional
- MuteTimeIntervals []string `json:"mute_time_intervals,omitempty" yaml:"mute_time_intervals,omitempty"`
+ MuteTimeIntervals []string `json:"mute_time_intervals,omitempty,case:ignore" yaml:"mute_time_intervals,omitempty"`
// ActiveTimeIntervals Times when the route should be active
// These must match the name at time_intervals
// +optional
- ActiveTimeIntervals []string `json:"active_time_intervals,omitempty" yaml:"active_time_intervals,omitempty"`
+ ActiveTimeIntervals []string `json:"active_time_intervals,omitempty,case:ignore" yaml:"active_time_intervals,omitempty"`
}
// SubRoute alias for Route, its needed to proper use json parsing with raw input
@@ -364,9 +369,7 @@ func parseNestedRoutes(src *Route) error {
return fmt.Errorf("unexpected empty route")
}
var subRoute Route
- decoder := json.NewDecoder(bytes.NewReader(nestedRoute.Raw))
- decoder.DisallowUnknownFields()
- if err := decoder.Decode(&subRoute); err != nil {
+ if err := UnmarshalSpecStrict(nestedRoute.Raw, &subRoute); err != nil {
return fmt.Errorf("cannot parse json value=%s for nested route: %w", string(nestedRoute.Raw), err)
}
if err := parseNestedRoutes(&subRoute); err != nil {
@@ -383,7 +386,7 @@ func (cr *VMAlertmanagerConfig) UnmarshalJSON(src []byte) error {
type pcr VMAlertmanagerConfig
type shadow struct {
*pcr
- Spec json.RawMessage `json:"spec"`
+ Spec jsontext.Value `json:"spec"`
}
s := shadow{pcr: (*pcr)(cr)}
if err := json.Unmarshal(src, &s); err != nil {
@@ -402,6 +405,7 @@ func (cr *VMAlertmanagerConfig) UnmarshalJSON(src []byte) error {
return nil
}
+// +kubebuilder:pruning:PreserveUnknownFields
// InhibitRule defines an inhibition rule that allows to mute alerts when other
// alerts are already firing.
// Note, it doesn't support deprecated alertmanager config options.
@@ -410,11 +414,11 @@ type InhibitRule struct {
// TargetMatchers defines a list of matchers that have to be fulfilled by the target
// alerts to be muted.
// +optional
- TargetMatchers []string `json:"target_matchers,omitempty"`
+ TargetMatchers []string `json:"target_matchers,omitempty,case:ignore"`
// SourceMatchers defines a list of matchers for which one or more alerts have
// to exist for the inhibition to take effect.
// +optional
- SourceMatchers []string `json:"source_matchers,omitempty"`
+ SourceMatchers []string `json:"source_matchers,omitempty,case:ignore"`
// Labels that must have an equal value in the source and target alert for
// the inhibition to take effect.
@@ -422,6 +426,7 @@ type InhibitRule struct {
Equal []string `json:"equal,omitempty"`
}
+// +kubebuilder:pruning:PreserveUnknownFields
// Receiver defines one or more notification integrations.
type Receiver struct {
// Name of the receiver. Must be unique across all items from the list.
@@ -430,86 +435,87 @@ type Receiver struct {
Name string `json:"name"`
// EmailConfigs defines email notification configurations.
// +optional
- EmailConfigs []EmailConfig `json:"email_configs,omitempty" yaml:"email_configs,omitempty"`
+ EmailConfigs []EmailConfig `json:"email_configs,omitempty,case:ignore" yaml:"email_configs,omitempty"`
// PagerDutyConfigs defines pager duty notification configurations.
// +optional
- PagerDutyConfigs []PagerDutyConfig `json:"pagerduty_configs,omitempty" yaml:"pagerduty_configs,omitempty"`
+ PagerDutyConfigs []PagerDutyConfig `json:"pagerduty_configs,omitempty,case:ignore" yaml:"pagerduty_configs,omitempty"`
// PushoverConfigs defines push over notification configurations.
// +optional
- PushoverConfigs []PushoverConfig `json:"pushover_configs,omitempty" yaml:"pushover_configs,omitempty"`
+ PushoverConfigs []PushoverConfig `json:"pushover_configs,omitempty,case:ignore" yaml:"pushover_configs,omitempty"`
// SlackConfigs defines slack notification configurations.
// +optional
- SlackConfigs []SlackConfig `json:"slack_configs,omitempty" yaml:"slack_configs,omitempty"`
+ SlackConfigs []SlackConfig `json:"slack_configs,omitempty,case:ignore" yaml:"slack_configs,omitempty"`
// OpsGenieConfigs defines ops genie notification configurations.
// +optional
- OpsGenieConfigs []OpsGenieConfig `json:"opsgenie_configs,omitempty" yaml:"opsgenie_configs,omitempty"`
+ OpsGenieConfigs []OpsGenieConfig `json:"opsgenie_configs,omitempty,case:ignore" yaml:"opsgenie_configs,omitempty"`
// WebhookConfigs defines webhook notification configurations.
// +optional
- WebhookConfigs []WebhookConfig `json:"webhook_configs,omitempty" yaml:"webhook_configs,omitempty"`
+ WebhookConfigs []WebhookConfig `json:"webhook_configs,omitempty,case:ignore" yaml:"webhook_configs,omitempty"`
// MattermostConfigs defines Mattermost notification configurations.
// +optional
- MattermostConfigs []MattermostConfig `json:"mattermost_configs,omitempty" yaml:"mattermost_configs,omitempty"`
+ MattermostConfigs []MattermostConfig `json:"mattermost_configs,omitempty,case:ignore" yaml:"mattermost_configs,omitempty"`
// VictorOpsConfigs defines victor ops notification configurations.
// +optional
- VictorOpsConfigs []VictorOpsConfig `json:"victorops_configs,omitempty" yaml:"victorops_configs,omitempty"`
+ VictorOpsConfigs []VictorOpsConfig `json:"victorops_configs,omitempty,case:ignore" yaml:"victorops_configs,omitempty"`
// WechatConfigs defines wechat notification configurations.
// +optional
- WechatConfigs []WechatConfig `json:"wechat_configs,omitempty" yaml:"wechat_configs,omitempty"`
+ WechatConfigs []WechatConfig `json:"wechat_configs,omitempty,case:ignore" yaml:"wechat_configs,omitempty"`
// +optional
- TelegramConfigs []TelegramConfig `json:"telegram_configs,omitempty" yaml:"telegram_configs,omitempty"`
+ TelegramConfigs []TelegramConfig `json:"telegram_configs,omitempty,case:ignore" yaml:"telegram_configs,omitempty"`
// +optional
- MSTeamsConfigs []MSTeamsConfig `json:"msteams_configs,omitempty" yaml:"msteams_configs,omitempty"`
+ MSTeamsConfigs []MSTeamsConfig `json:"msteams_configs,omitempty,case:ignore" yaml:"msteams_configs,omitempty"`
// +optional
- DiscordConfigs []DiscordConfig `json:"discord_configs,omitempty" yaml:"discord_configs,omitempty"`
+ DiscordConfigs []DiscordConfig `json:"discord_configs,omitempty,case:ignore" yaml:"discord_configs,omitempty"`
// +optional
- SNSConfigs []SNSConfig `json:"sns_configs,omitempty" yaml:"sns_configs,omitempty"`
+ SNSConfigs []SNSConfig `json:"sns_configs,omitempty,case:ignore" yaml:"sns_configs,omitempty"`
// +optional
- WebexConfigs []WebexConfig `json:"webex_configs,omitempty" yaml:"webex_configs,omitempty"`
+ WebexConfigs []WebexConfig `json:"webex_configs,omitempty,case:ignore" yaml:"webex_configs,omitempty"`
// +optional
// +notes={available_from: "v0.55.0"}
- JiraConfigs []JiraConfig `json:"jira_configs,omitempty" yaml:"jira_configs,omitempty"`
+ JiraConfigs []JiraConfig `json:"jira_configs,omitempty,case:ignore" yaml:"jira_configs,omitempty"`
// +optional
// +notes={available_from: "v0.66.0"}
- IncidentioConfigs []IncidentioConfig `json:"incidentio_configs,omitempty" yaml:"incidentio_configs,omitempty"`
+ IncidentioConfigs []IncidentioConfig `json:"incidentio_configs,omitempty,case:ignore" yaml:"incidentio_configs,omitempty"`
// +optional
// +notes={available_from: "v0.55.0"}
- RocketchatConfigs []RocketchatConfig `json:"rocketchat_configs,omitempty" yaml:"rocketchat_configs,omitempty"`
+ RocketchatConfigs []RocketchatConfig `json:"rocketchat_configs,omitempty,case:ignore" yaml:"rocketchat_configs,omitempty"`
// +optional
// +notes={available_from: "v0.55.0"}
- MSTeamsV2Configs []MSTeamsV2Config `json:"msteamsv2_configs,omitempty" yaml:"msteamsv2_configs,omitempty"`
+ MSTeamsV2Configs []MSTeamsV2Config `json:"msteamsv2_configs,omitempty,case:ignore" yaml:"msteamsv2_configs,omitempty"`
}
+// +kubebuilder:pruning:PreserveUnknownFields
// TelegramConfig configures notification via telegram
// https://prometheus.io/docs/alerting/latest/configuration/#telegram_config
type TelegramConfig struct {
// SendResolved controls notify about resolved alerts.
// +optional
- SendResolved *bool `json:"send_resolved,omitempty" yaml:"send_resolved,omitempty"`
+ SendResolved *bool `json:"send_resolved,omitempty,case:ignore" yaml:"send_resolved,omitempty"`
// APIUrl the Telegram API URL i.e. https://api.telegram.org.
// +optional
- APIUrl string `json:"api_url,omitempty" yaml:"api_url,omitempty"`
+ APIUrl string `json:"api_url,omitempty,case:ignore" yaml:"api_url,omitempty"`
// BotToken token for the bot
// https://core.telegram.org/bots/api
- BotToken *corev1.SecretKeySelector `json:"bot_token" yaml:"bot_token"`
+ BotToken *corev1.SecretKeySelector `json:"bot_token,case:ignore" yaml:"bot_token"`
// ChatID is ID of the chat where to send the messages.
- ChatID int `json:"chat_id" yaml:"chat_id"`
+ ChatID int `json:"chat_id,case:ignore" yaml:"chat_id"`
// MessageThreadID defines ID of the message thread where to send the messages.
// +optional
- MessageThreadID int `json:"message_thread_id,omitempty"`
+ MessageThreadID int `json:"message_thread_id,omitempty,case:ignore"`
// Message is templated message
// +optional
Message string `json:"message,omitempty"`
// DisableNotifications
// +optional
- DisableNotifications *bool `json:"disable_notifications,omitempty" yaml:"disable_notifications,omitempty"`
+ DisableNotifications *bool `json:"disable_notifications,omitempty,case:ignore" yaml:"disable_notifications,omitempty"`
// ParseMode for telegram message,
// supported values are MarkdownV2, Markdown, Markdown and empty string for plain text.
// +optional
- ParseMode string `json:"parse_mode,omitempty" yaml:"parse_mode"`
+ ParseMode string `json:"parse_mode,omitempty,case:ignore" yaml:"parse_mode"`
// HTTP client configuration.
// +optional
- HTTPConfig *HTTPConfig `json:"http_config,omitempty" yaml:"http_config,omitempty"`
+ HTTPConfig *HTTPConfig `json:"http_config,omitempty,case:ignore" yaml:"http_config,omitempty"`
}
func (c *TelegramConfig) validate() error {
@@ -531,12 +537,13 @@ func (c *TelegramConfig) validate() error {
return nil
}
+// +kubebuilder:pruning:PreserveUnknownFields
// WebhookConfig configures notifications via a generic receiver supporting the webhook payload.
// See https://prometheus.io/docs/alerting/latest/configuration/#webhook_config
type WebhookConfig struct {
// SendResolved controls notify about resolved alerts.
// +optional
- SendResolved *bool `json:"send_resolved,omitempty" yaml:"send_resolved,omitempty"`
+ SendResolved *bool `json:"send_resolved,omitempty,case:ignore" yaml:"send_resolved,omitempty"`
// URL to send requests to,
// one of `urlSecret` and `url` must be defined.
// +optional
@@ -545,14 +552,14 @@ type WebhookConfig struct {
// It must contain the webhook URL.
// one of `urlSecret` and `url` must be defined.
// +optional
- URLSecret *corev1.SecretKeySelector `json:"url_secret,omitempty" yaml:"url_secret,omitempty"`
+ URLSecret *corev1.SecretKeySelector `json:"url_secret,omitempty,case:ignore" yaml:"url_secret,omitempty"`
// HTTP client configuration.
// +optional
- HTTPConfig *HTTPConfig `json:"http_config,omitempty" yaml:"http_config,omitempty"`
+ HTTPConfig *HTTPConfig `json:"http_config,omitempty,case:ignore" yaml:"http_config,omitempty"`
// Maximum number of alerts to be sent per webhook message. When 0, all alerts are included.
// +optional
// +kubebuilder:validation:Minimum=0
- MaxAlerts int32 `json:"max_alerts,omitempty" yaml:"max_alerts,omitempty"`
+ MaxAlerts int32 `json:"max_alerts,omitempty,case:ignore" yaml:"max_alerts,omitempty"`
// Timeout is the maximum time allowed to invoke the webhook
// available since v0.28.0 alertmanager version
// +kubebuilder:validation:Pattern:="^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$"
@@ -578,40 +585,41 @@ func (c *WebhookConfig) validate() error {
return nil
}
+// +kubebuilder:pruning:PreserveUnknownFields
// WechatConfig configures notifications via Wechat.
// See https://prometheus.io/docs/alerting/latest/configuration/#wechat_config
type WechatConfig struct {
// SendResolved controls notify about resolved alerts.
// +optional
- SendResolved *bool `json:"send_resolved,omitempty" yaml:"send_resolved,omitempty"`
+ SendResolved *bool `json:"send_resolved,omitempty,case:ignore" yaml:"send_resolved,omitempty"`
// The secret's key that contains the WeChat API key.
// The secret needs to be in the same namespace as the AlertmanagerConfig
// fallback to global alertmanager setting if empty
// +optional
- APISecret *corev1.SecretKeySelector `json:"api_secret,omitempty" yaml:"api_secret,omitempty"`
+ APISecret *corev1.SecretKeySelector `json:"api_secret,omitempty,case:ignore" yaml:"api_secret,omitempty"`
// The WeChat API URL.
// fallback to global alertmanager setting if empty
// +optional
- APIURL string `json:"api_url,omitempty" yaml:"api_url,omitempty"`
+ APIURL string `json:"api_url,omitempty,case:ignore" yaml:"api_url,omitempty"`
// The corp id for authentication.
// fallback to global alertmanager setting if empty
// +optional
- CorpID string `json:"corp_id,omitempty" yaml:"corp_id,omitempty"`
+ CorpID string `json:"corp_id,omitempty,case:ignore" yaml:"corp_id,omitempty"`
// +optional
- AgentID string `json:"agent_id,omitempty" yaml:"agent_id,omitempty"`
+ AgentID string `json:"agent_id,omitempty,case:ignore" yaml:"agent_id,omitempty"`
// +optional
- ToUser string `json:"to_user,omitempty" yaml:"to_user,omitempty"`
+ ToUser string `json:"to_user,omitempty,case:ignore" yaml:"to_user,omitempty"`
// +optional
- ToParty string `json:"to_party,omitempty" yaml:"to_party,omitempty"`
+ ToParty string `json:"to_party,omitempty,case:ignore" yaml:"to_party,omitempty"`
// +optional
- ToTag string `json:"to_tag,omitempty" yaml:"to_tag,omitempty"`
+ ToTag string `json:"to_tag,omitempty,case:ignore" yaml:"to_tag,omitempty"`
// API request data as defined by the WeChat API.
Message string `json:"message,omitempty"`
// +optional
- MessageType string `json:"message_type,omitempty" yaml:"message_type,omitempty"`
+ MessageType string `json:"message_type,omitempty,case:ignore" yaml:"message_type,omitempty"`
// HTTP client configuration.
// +optional
- HTTPConfig *HTTPConfig `json:"http_config,omitempty" yaml:"http_config,omitempty"`
+ HTTPConfig *HTTPConfig `json:"http_config,omitempty,case:ignore" yaml:"http_config,omitempty"`
}
func (c *WechatConfig) validate() error {
@@ -626,11 +634,12 @@ func (c *WechatConfig) validate() error {
return nil
}
+// +kubebuilder:pruning:PreserveUnknownFields
// EmailConfig configures notifications via Email.
type EmailConfig struct {
// SendResolved controls notify about resolved alerts.
// +optional
- SendResolved *bool `json:"send_resolved,omitempty" yaml:"send_resolved,omitempty"`
+ SendResolved *bool `json:"send_resolved,omitempty,case:ignore" yaml:"send_resolved,omitempty"`
// The email address to send notifications to.
// +optional
To string `json:"to,omitempty"`
@@ -647,17 +656,17 @@ type EmailConfig struct {
Smarthost string `json:"smarthost,omitempty"`
// The username to use for authentication.
// +optional
- AuthUsername string `json:"auth_username,omitempty" yaml:"auth_username,omitempty"`
+ AuthUsername string `json:"auth_username,omitempty,case:ignore" yaml:"auth_username,omitempty"`
// AuthPassword defines secret name and key at CRD namespace.
// +optional
- AuthPassword *corev1.SecretKeySelector `json:"auth_password,omitempty" yaml:"auth_password,omitempty"`
+ AuthPassword *corev1.SecretKeySelector `json:"auth_password,omitempty,case:ignore" yaml:"auth_password,omitempty"`
// AuthSecret defines secret name and key at CRD namespace.
// It must contain the CRAM-MD5 secret.
// +optional
- AuthSecret *corev1.SecretKeySelector `json:"auth_secret,omitempty" yaml:"auth_secret,omitempty"`
+ AuthSecret *corev1.SecretKeySelector `json:"auth_secret,omitempty,case:ignore" yaml:"auth_secret,omitempty"`
// The identity to use for authentication.
// +optional
- AuthIdentity string `json:"auth_identity,omitempty" yaml:"auth_identity,omitempty"`
+ AuthIdentity string `json:"auth_identity,omitempty,case:ignore" yaml:"auth_identity,omitempty"`
// Further headers email header key/value pairs. Overrides any headers
// previously set by the notification implementation.
Headers map[string]string `json:"headers,omitempty" yaml:"headers,omitempty"`
@@ -670,10 +679,10 @@ type EmailConfig struct {
// The SMTP TLS requirement.
// Note that Go does not support unencrypted connections to remote SMTP endpoints.
// +optional
- RequireTLS *bool `json:"require_tls,omitempty" yaml:"require_tls,omitempty"`
+ RequireTLS *bool `json:"require_tls,omitempty,case:ignore" yaml:"require_tls,omitempty"`
// TLS configuration
// +optional
- TLSConfig *TLSConfig `json:"tls_config,omitempty" yaml:"tls_config,omitempty"`
+ TLSConfig *TLSConfig `json:"tls_config,omitempty,case:ignore" yaml:"tls_config,omitempty"`
}
func (c *EmailConfig) validate() error {
@@ -717,41 +726,42 @@ func (c *EmailConfig) validateArbitraryFSAccess() error {
return nil
}
+// +kubebuilder:pruning:PreserveUnknownFields
// VictorOpsConfig configures notifications via VictorOps.
// See https://prometheus.io/docs/alerting/latest/configuration/#victorops_config
type VictorOpsConfig struct {
// SendResolved controls notify about resolved alerts.
// +optional
- SendResolved *bool `json:"send_resolved,omitempty" yaml:"send_resolved,omitempty"`
+ SendResolved *bool `json:"send_resolved,omitempty,case:ignore" yaml:"send_resolved,omitempty"`
// The secret's key that contains the API key to use when talking to the VictorOps API.
// It must be at them same namespace as CRD
// fallback to global setting if empty
// +optional
- APIKey *corev1.SecretKeySelector `json:"api_key,omitempty" yaml:"api_key,omitempty"`
+ APIKey *corev1.SecretKeySelector `json:"api_key,omitempty,case:ignore" yaml:"api_key,omitempty"`
// The VictorOps API URL.
// +optional
- APIURL string `json:"api_url,omitempty" yaml:"api_url,omitempty"`
+ APIURL string `json:"api_url,omitempty,case:ignore" yaml:"api_url,omitempty"`
// A key used to map the alert to a team.
- RoutingKey string `json:"routing_key" yaml:"routing_key"`
+ RoutingKey string `json:"routing_key,case:ignore" yaml:"routing_key"`
// Describes the behavior of the alert (CRITICAL, WARNING, INFO).
// +optional
- MessageType string `json:"message_type,omitempty" yaml:"message_type,omitempty"`
+ MessageType string `json:"message_type,omitempty,case:ignore" yaml:"message_type,omitempty"`
// Contains summary of the alerted problem.
// +optional
- EntityDisplayName string `json:"entity_display_name,omitempty" yaml:"entity_display_name,omitempty"`
+ EntityDisplayName string `json:"entity_display_name,omitempty,case:ignore" yaml:"entity_display_name,omitempty"`
// Contains long explanation of the alerted problem.
// +optional
- StateMessage string `json:"state_message,omitempty" yaml:"state_message,omitempty"`
+ StateMessage string `json:"state_message,omitempty,case:ignore" yaml:"state_message,omitempty"`
// The monitoring tool the state message is from.
// +optional
- MonitoringTool string `json:"monitoring_tool,omitempty" yaml:"monitoring_tool,omitempty"`
+ MonitoringTool string `json:"monitoring_tool,omitempty,case:ignore" yaml:"monitoring_tool,omitempty"`
// The HTTP client's configuration.
// +optional
- HTTPConfig *HTTPConfig `json:"http_config,omitempty" yaml:"http_config,omitempty"`
+ HTTPConfig *HTTPConfig `json:"http_config,omitempty,case:ignore" yaml:"http_config,omitempty"`
// Adds optional custom fields
// https://github.com/prometheus/alertmanager/blob/v0.24.0/config/notifiers.go#L537
// +optional
- CustomFields map[string]string `json:"custom_fields,omitempty" yaml:"custom_fields,omitempty"`
+ CustomFields map[string]string `json:"custom_fields,omitempty,case:ignore" yaml:"custom_fields,omitempty"`
}
func (c *VictorOpsConfig) validate() error {
@@ -784,15 +794,16 @@ func (c *VictorOpsConfig) validate() error {
return nil
}
+// +kubebuilder:pruning:PreserveUnknownFields
// PushoverConfig configures notifications via Pushover.
// See https://prometheus.io/docs/alerting/latest/configuration/#pushover_config
type PushoverConfig struct {
// SendResolved controls notify about resolved alerts.
// +optional
- SendResolved *bool `json:"send_resolved,omitempty" yaml:"send_resolved,omitempty"`
+ SendResolved *bool `json:"send_resolved,omitempty,case:ignore" yaml:"send_resolved,omitempty"`
// The secret's key that contains the recipient user’s user key.
// It must be at them same namespace as CRD
- UserKey *corev1.SecretKeySelector `json:"user_key,omitempty" yaml:"user_key,omitempty"`
+ UserKey *corev1.SecretKeySelector `json:"user_key,omitempty,case:ignore" yaml:"user_key,omitempty"`
// The secret's key that contains the registered application’s API token, see https://pushover.net/apps.
// It must be at them same namespace as CRD
Token *corev1.SecretKeySelector `json:"token,omitempty"`
@@ -807,7 +818,7 @@ type PushoverConfig struct {
URL string `json:"url,omitempty"`
// A title for supplementary URL, otherwise just the URL is shown
// +optional
- URLTitle string `json:"url_title,omitempty" yaml:"url_title,omitempty"`
+ URLTitle string `json:"url_title,omitempty,case:ignore" yaml:"url_title,omitempty"`
// The name of one of the sounds supported by device clients to override the user's default sound choice
// +optional
Sound string `json:"sound,omitempty"`
@@ -827,7 +838,7 @@ type PushoverConfig struct {
HTML bool `json:"html,omitempty"`
// HTTP client configuration.
// +optional
- HTTPConfig *HTTPConfig `json:"http_config,omitempty" yaml:"http_config,omitempty"`
+ HTTPConfig *HTTPConfig `json:"http_config,omitempty,case:ignore" yaml:"http_config,omitempty"`
}
func (c *PushoverConfig) validate() error {
@@ -843,17 +854,18 @@ func (c *PushoverConfig) validate() error {
return nil
}
+// +kubebuilder:pruning:PreserveUnknownFields
// SlackConfig configures notifications via Slack.
// See https://prometheus.io/docs/alerting/latest/configuration/#slack_config
type SlackConfig struct {
// SendResolved controls notify about resolved alerts.
// +optional
- SendResolved *bool `json:"send_resolved,omitempty" yaml:"send_resolved,omitempty"`
+ SendResolved *bool `json:"send_resolved,omitempty,case:ignore" yaml:"send_resolved,omitempty"`
// The secret's key that contains the Slack webhook URL.
// It must be at them same namespace as CRD
// fallback to global setting if empty
// +optional
- APIURL *corev1.SecretKeySelector `json:"api_url,omitempty" yaml:"api_url,omitempty"`
+ APIURL *corev1.SecretKeySelector `json:"api_url,omitempty,case:ignore" yaml:"api_url,omitempty"`
// The channel or user to send notifications to.
// +optional
Channel string `json:"channel,omitempty"`
@@ -864,7 +876,7 @@ type SlackConfig struct {
// +optional
Title string `json:"title,omitempty"`
// +optional
- TitleLink string `json:"title_link,omitempty" yaml:"title_link,omitempty"`
+ TitleLink string `json:"title_link,omitempty,case:ignore" yaml:"title_link,omitempty"`
// +optional
Pretext string `json:"pretext,omitempty"`
// +optional
@@ -873,25 +885,25 @@ type SlackConfig struct {
// +optional
Fields []SlackField `json:"fields,omitempty"`
// +optional
- ShortFields bool `json:"short_fields,omitempty" yaml:"short_fields,omitempty"`
+ ShortFields bool `json:"short_fields,omitempty,case:ignore" yaml:"short_fields,omitempty"`
// +optional
Footer string `json:"footer,omitempty"`
// +optional
Fallback string `json:"fallback,omitempty"`
// +optional
- CallbackID string `json:"callback_id,omitempty" yaml:"callback_id,omitempty"`
+ CallbackID string `json:"callback_id,omitempty,case:ignore" yaml:"callback_id,omitempty"`
// +optional
- IconEmoji string `json:"icon_emoji,omitempty" yaml:"icon_emoji,omitempty"`
+ IconEmoji string `json:"icon_emoji,omitempty,case:ignore" yaml:"icon_emoji,omitempty"`
// +optional
- IconURL string `json:"icon_url,omitempty" yaml:"icon_url,omitempty"`
+ IconURL string `json:"icon_url,omitempty,case:ignore" yaml:"icon_url,omitempty"`
// +optional
- ImageURL string `json:"image_url,omitempty" yaml:"image_url,omitempty"`
+ ImageURL string `json:"image_url,omitempty,case:ignore" yaml:"image_url,omitempty"`
// +optional
- ThumbURL string `json:"thumb_url,omitempty" yaml:"thumb_url,omitempty"`
+ ThumbURL string `json:"thumb_url,omitempty,case:ignore" yaml:"thumb_url,omitempty"`
// +optional
- LinkNames bool `json:"link_names,omitempty" yaml:"link_names,omitempty"`
+ LinkNames bool `json:"link_names,omitempty,case:ignore" yaml:"link_names,omitempty"`
// +optional
- MrkdwnIn []string `json:"mrkdwn_in,omitempty" yaml:"mrkdwn_in,omitempty"`
+ MrkdwnIn []string `json:"mrkdwn_in,omitempty,case:ignore" yaml:"mrkdwn_in,omitempty"`
// A list of Slack actions that are sent with each notification.
// +optional
Actions []SlackAction `json:"actions,omitempty"`
@@ -899,10 +911,10 @@ type SlackConfig struct {
// Requires Slack Bot API and chat:write scope.
// Available since alertmanager v0.32.0.
// +optional
- UpdateMessage *bool `json:"update_message,omitempty" yaml:"update_message,omitempty"`
+ UpdateMessage *bool `json:"update_message,omitempty,case:ignore" yaml:"update_message,omitempty"`
// HTTP client configuration.
// +optional
- HTTPConfig *HTTPConfig `json:"http_config,omitempty" yaml:"http_config,omitempty"`
+ HTTPConfig *HTTPConfig `json:"http_config,omitempty,case:ignore" yaml:"http_config,omitempty"`
}
func (c *SlackConfig) validate() error {
@@ -934,6 +946,7 @@ func (c *SlackConfig) validate() error {
return nil
}
+// +kubebuilder:pruning:PreserveUnknownFields
// SlackField configures a single Slack field that is sent with each notification.
// See https://docs.slack.dev/legacy/legacy-messaging/legacy-secondary-message-attachments/#field_objects for more information.
type SlackField struct {
@@ -951,6 +964,7 @@ type SlackField struct {
// notification.
// See https://docs.slack.dev/legacy/legacy-messaging/legacy-interactive-message-field-guide/#action_fields and
// https://api.slack.com/docs/message-buttons for more information.
+// +kubebuilder:pruning:PreserveUnknownFields
type SlackAction struct {
// +kubebuilder:validation:MinLength=1
// +required
@@ -975,6 +989,7 @@ type SlackAction struct {
// click one more time.
// See https://api.slack.com/docs/interactive-message-field-guide#confirmation_fields
// for more information.
+// +kubebuilder:pruning:PreserveUnknownFields
type SlackConfirmationField struct {
// +kubebuilder:validation:MinLength=1
// +required
@@ -982,25 +997,26 @@ type SlackConfirmationField struct {
// +optional
Title string `json:"title,omitempty"`
// +optional
- OkText string `json:"ok_text,omitempty" yaml:"ok_text,omitempty"`
+ OkText string `json:"ok_text,omitempty,case:ignore" yaml:"ok_text,omitempty"`
// +optional
- DismissText string `json:"dismiss_text,omitempty" yaml:"dismiss_text,omitempty"`
+ DismissText string `json:"dismiss_text,omitempty,case:ignore" yaml:"dismiss_text,omitempty"`
}
+// +kubebuilder:pruning:PreserveUnknownFields
// OpsGenieConfig configures notifications via OpsGenie.
// See https://prometheus.io/docs/alerting/latest/configuration/#opsgenie_config
type OpsGenieConfig struct {
// SendResolved controls notify about resolved alerts.
// +optional
- SendResolved *bool `json:"send_resolved,omitempty" yaml:"send_resolved,omitempty"`
+ SendResolved *bool `json:"send_resolved,omitempty,case:ignore" yaml:"send_resolved,omitempty"`
// The secret's key that contains the OpsGenie API key.
// It must be at them same namespace as CRD
// fallback to global setting if empty
// +optional
- APIKey *corev1.SecretKeySelector `json:"api_key,omitempty" yaml:"api_key,omitempty"`
+ APIKey *corev1.SecretKeySelector `json:"api_key,omitempty,case:ignore" yaml:"api_key,omitempty"`
// The URL to send OpsGenie API requests to.
// +optional
- APIURL string `json:"apiURL,omitempty" yaml:"apiURL,omitempty"`
+ APIURL string `json:"apiURL,omitempty,case:ignore" yaml:"apiURL,omitempty"`
// Alert text limited to 130 characters.
// +optional
Message string `json:"message,omitempty"`
@@ -1031,10 +1047,10 @@ type OpsGenieConfig struct {
Actions string `json:"actions,omitempty"`
// Whether to update message and description of the alert in OpsGenie if it already exists
// By default, the alert is never updated in OpsGenie, the new message only appears in activity log.
- UpdateAlerts bool `json:"update_alerts,omitempty" yaml:"update_alerts,omitempty"`
+ UpdateAlerts bool `json:"update_alerts,omitempty,case:ignore" yaml:"update_alerts,omitempty"`
// HTTP client configuration.
// +optional
- HTTPConfig *HTTPConfig `json:"http_config,omitempty" yaml:"http_config,omitempty"`
+ HTTPConfig *HTTPConfig `json:"http_config,omitempty,case:ignore" yaml:"http_config,omitempty"`
}
func (c *OpsGenieConfig) validate() error {
@@ -1061,6 +1077,7 @@ func (c *OpsGenieConfig) validate() error {
// OpsGenieConfigResponder defines a responder to an incident.
// One of `id`, `name` or `username` has to be defined.
+// +kubebuilder:pruning:PreserveUnknownFields
type OpsGenieConfigResponder struct {
// ID of the responder.
// +optional
@@ -1077,23 +1094,24 @@ type OpsGenieConfigResponder struct {
Type string `json:"type"`
}
+// +kubebuilder:pruning:PreserveUnknownFields
// PagerDutyConfig configures notifications via PagerDuty.
// See https://prometheus.io/docs/alerting/latest/configuration/#pagerduty_config
type PagerDutyConfig struct {
// SendResolved controls notify about resolved alerts.
// +optional
- SendResolved *bool `json:"send_resolved,omitempty" yaml:"send_resolved,omitempty"`
+ SendResolved *bool `json:"send_resolved,omitempty,case:ignore" yaml:"send_resolved,omitempty"`
// The secret's key that contains the PagerDuty integration key (when using
// Events API v2). Either this field or `serviceKey` needs to be defined.
// It must be at them same namespace as CRD
// +optional
- RoutingKey *corev1.SecretKeySelector `json:"routing_key,omitempty" yaml:"routing_key,omitempty"`
+ RoutingKey *corev1.SecretKeySelector `json:"routing_key,omitempty,case:ignore" yaml:"routing_key,omitempty"`
// The secret's key that contains the PagerDuty service key (when using
// integration type "Prometheus"). Either this field or `routingKey` needs to
// be defined.
// It must be at them same namespace as CRD
// +optional
- ServiceKey *corev1.SecretKeySelector `json:"service_key,omitempty" yaml:"service_key,omitempty"`
+ ServiceKey *corev1.SecretKeySelector `json:"service_key,omitempty,case:ignore" yaml:"service_key,omitempty"`
// The URL to send requests to.
// +optional
URL string `json:"url,omitempty"`
@@ -1102,7 +1120,7 @@ type PagerDutyConfig struct {
Client string `json:"client,omitempty"`
// Backlink to the sender of notification.
// +optional
- ClientURL string `json:"client_url,omitempty" yaml:"client_url,omitempty"`
+ ClientURL string `json:"client_url,omitempty,case:ignore" yaml:"client_url,omitempty"`
// Images to attach to the incident.
// +optional
Images []ImageConfig `json:"images,omitempty"`
@@ -1129,7 +1147,7 @@ type PagerDutyConfig struct {
Details map[string]string `json:"details,omitempty"`
// HTTP client configuration.
// +optional
- HTTPConfig *HTTPConfig `json:"http_config,omitempty" yaml:"http_config,omitempty"`
+ HTTPConfig *HTTPConfig `json:"http_config,omitempty,case:ignore" yaml:"http_config,omitempty"`
}
func (c *PagerDutyConfig) validate() error {
@@ -1153,6 +1171,7 @@ func (c *PagerDutyConfig) validate() error {
// ImageConfig is used to attach images to the incident.
// See https://developer.pagerduty.com/docs/send-alert-event#the-images-property
// for more information.
+// +kubebuilder:pruning:PreserveUnknownFields
type ImageConfig struct {
// +optional
Href string `json:"href,omitempty"`
@@ -1164,24 +1183,26 @@ type ImageConfig struct {
// LinkConfig is used to attach text links to the incident.
// See https://developer.pagerduty.com/docs/send-alert-event#the-links-property
// for more information.
+// +kubebuilder:pruning:PreserveUnknownFields
type LinkConfig struct {
Href string `json:"href"`
Text string `json:"text,omitempty"`
}
+// +kubebuilder:pruning:PreserveUnknownFields
type MSTeamsConfig struct {
// SendResolved controls notify about resolved alerts.
// +optional
- SendResolved *bool `json:"send_resolved,omitempty" yaml:"send_resolved,omitempty"`
+ SendResolved *bool `json:"send_resolved,omitempty,case:ignore" yaml:"send_resolved,omitempty"`
// The incoming webhook URL
// one of `urlSecret` and `url` must be defined.
// +optional
- URL *string `json:"webhook_url,omitempty" yaml:"webhook_url,omitempty"`
+ URL *string `json:"webhook_url,omitempty,case:ignore" yaml:"webhook_url,omitempty"`
// URLSecret defines secret name and key at the CRD namespace.
// It must contain the webhook URL.
// one of `urlSecret` and `url` must be defined.
// +optional
- URLSecret *corev1.SecretKeySelector `json:"webhook_url_secret,omitempty" yaml:"webhook_url_secret,omitempty"`
+ URLSecret *corev1.SecretKeySelector `json:"webhook_url_secret,omitempty,case:ignore" yaml:"webhook_url_secret,omitempty"`
// The title of the teams notification.
// +optional
Title string `json:"title,omitempty"`
@@ -1190,7 +1211,7 @@ type MSTeamsConfig struct {
Text string `json:"text,omitempty"`
// HTTP client configuration.
// +optional
- HTTPConfig *HTTPConfig `json:"http_config,omitempty" yaml:"http_config,omitempty"`
+ HTTPConfig *HTTPConfig `json:"http_config,omitempty,case:ignore" yaml:"http_config,omitempty"`
}
func (c *MSTeamsConfig) validate() error {
@@ -1211,19 +1232,20 @@ func (c *MSTeamsConfig) validate() error {
return nil
}
+// +kubebuilder:pruning:PreserveUnknownFields
type DiscordConfig struct {
// SendResolved controls notify about resolved alerts.
// +optional
- SendResolved *bool `json:"send_resolved,omitempty" yaml:"send_resolved,omitempty"`
+ SendResolved *bool `json:"send_resolved,omitempty,case:ignore" yaml:"send_resolved,omitempty"`
// The discord webhook URL
// one of `urlSecret` and `url` must be defined.
// +optional
- URL *string `json:"webhook_url,omitempty" yaml:"webhook_url,omitempty"`
+ URL *string `json:"webhook_url,omitempty,case:ignore" yaml:"webhook_url,omitempty"`
// URLSecret defines secret name and key at the CRD namespace.
// It must contain the webhook URL.
// one of `urlSecret` and `url` must be defined.
// +optional
- URLSecret *corev1.SecretKeySelector `json:"webhook_url_secret,omitempty" yaml:"webhook_url_secret,omitempty"`
+ URLSecret *corev1.SecretKeySelector `json:"webhook_url_secret,omitempty,case:ignore" yaml:"webhook_url_secret,omitempty"`
// The message title template
// +optional
Title string `json:"title,omitempty"`
@@ -1232,7 +1254,7 @@ type DiscordConfig struct {
Message string `json:"message,omitempty"`
// HTTP client configuration.
// +optional
- HTTPConfig *HTTPConfig `json:"http_config,omitempty" yaml:"http_config,omitempty"`
+ HTTPConfig *HTTPConfig `json:"http_config,omitempty,case:ignore" yaml:"http_config,omitempty"`
// Content defines message content template
// Available from alertmanager v0.28.0
// +kubebuilder:validation:MaxLength:=2000
@@ -1248,7 +1270,7 @@ type DiscordConfig struct {
// Available from alertmanager v0.28.0
// +optional
// +notes={available_from: "v0.55.0"}
- AvatarURL string `json:"avatar_url,omitempty" yaml:"avatar_url,omitempty"`
+ AvatarURL string `json:"avatar_url,omitempty,case:ignore" yaml:"avatar_url,omitempty"`
}
func (c *DiscordConfig) validate() error {
@@ -1269,28 +1291,29 @@ func (c *DiscordConfig) validate() error {
return nil
}
+// +kubebuilder:pruning:PreserveUnknownFields
type SNSConfig struct {
// SendResolved controls notify about resolved alerts.
// +optional
- SendResolved *bool `json:"send_resolved,omitempty" yaml:"send_resolved,omitempty"`
+ SendResolved *bool `json:"send_resolved,omitempty,case:ignore" yaml:"send_resolved,omitempty"`
// The api URL
// +optional
- URL string `json:"api_url,omitempty" yaml:"api_url,omitempty"`
+ URL string `json:"api_url,omitempty,case:ignore" yaml:"api_url,omitempty"`
// Configure the AWS Signature Verification 4 signing process
Sigv4 *Sigv4Config `json:"sigv4,omitempty"`
// SNS topic ARN, either specify this, phone_number or target_arn
// +optional
- TopicArn string `json:"topic_arn,omitempty" yaml:"topic_arn,omitempty"`
+ TopicArn string `json:"topic_arn,omitempty,case:ignore" yaml:"topic_arn,omitempty"`
// The subject line if message is delivered to an email endpoint.
// +optional
Subject string `json:"subject,omitempty"`
// Phone number if message is delivered via SMS
// Specify this, topic_arn or target_arn
- PhoneNumber string `json:"phone_number,omitempty" yaml:"phone_number,omitempty"`
+ PhoneNumber string `json:"phone_number,omitempty,case:ignore" yaml:"phone_number,omitempty"`
// Mobile platform endpoint ARN if message is delivered via mobile notifications
// Specify this, topic_arn or phone_number
// +optional
- TargetArn string `json:"target_arn,omitempty" yaml:"target_arn,omitempty"`
+ TargetArn string `json:"target_arn,omitempty,case:ignore" yaml:"target_arn,omitempty"`
// The message content of the SNS notification.
// +optional
Message string `json:"message,omitempty"`
@@ -1299,7 +1322,7 @@ type SNSConfig struct {
Attributes map[string]string `json:"attributes,omitempty"`
// HTTP client configuration.
// +optional
- HTTPConfig *HTTPConfig `json:"http_config,omitempty" yaml:"http_config,omitempty"`
+ HTTPConfig *HTTPConfig `json:"http_config,omitempty,case:ignore" yaml:"http_config,omitempty"`
}
func (c *SNSConfig) validate() error {
@@ -1312,6 +1335,7 @@ func (c *SNSConfig) validate() error {
return nil
}
+// +kubebuilder:pruning:PreserveUnknownFields
type Sigv4Config struct {
// AWS region, if blank the region from the default credentials chain is used
// +optional
@@ -1319,37 +1343,38 @@ type Sigv4Config struct {
// The AWS API keys. Both access_key and secret_key must be supplied or both must be blank.
// If blank the environment variables `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` are used.
// +optional
- AccessKey string `json:"access_key,omitempty" yaml:"access_key,omitempty"`
+ AccessKey string `json:"access_key,omitempty,case:ignore" yaml:"access_key,omitempty"`
// secret key selector to get the keys from a Kubernetes Secret
// +optional
- AccessKeySelector *corev1.SecretKeySelector `json:"access_key_selector,omitempty" yaml:"access_key_selector,omitempty"`
+ AccessKeySelector *corev1.SecretKeySelector `json:"access_key_selector,omitempty,case:ignore" yaml:"access_key_selector,omitempty"`
// secret key selector to get the keys from a Kubernetes Secret
// +optional
- SecretKey *corev1.SecretKeySelector `json:"secret_key_selector,omitempty" yaml:"secret_key_selector,omitempty"`
+ SecretKey *corev1.SecretKeySelector `json:"secret_key_selector,omitempty,case:ignore" yaml:"secret_key_selector,omitempty"`
// Named AWS profile used to authenticate
// +optional
Profile string `json:"profile,omitempty"`
// AWS Role ARN, an alternative to using AWS API keys
// +optional
- RoleArn string `json:"role_arn,omitempty" yaml:"role_arn,omitempty"`
+ RoleArn string `json:"role_arn,omitempty,case:ignore" yaml:"role_arn,omitempty"`
}
+// +kubebuilder:pruning:PreserveUnknownFields
type WebexConfig struct {
// SendResolved controls notify about resolved alerts.
// +optional
- SendResolved *bool `json:"send_resolved,omitempty" yaml:"send_resolved,omitempty"`
+ SendResolved *bool `json:"send_resolved,omitempty,case:ignore" yaml:"send_resolved,omitempty"`
// The Webex Teams API URL, i.e. https://webexapis.com/v1/messages
// +optional
- URL *string `json:"api_url,omitempty" yaml:"api_url,omitempty"`
+ URL *string `json:"api_url,omitempty,case:ignore" yaml:"api_url,omitempty"`
// The ID of the Webex Teams room where to send the messages
// +required
- RoomId string `json:"room_id,omitempty" yaml:"room_id,omitempty"`
+ RoomId string `json:"room_id,omitempty,case:ignore" yaml:"room_id,omitempty"`
// The message body template
// +optional
Message string `json:"message,omitempty"`
// HTTP client configuration. You must use this configuration to supply the bot token as part of the HTTP `Authorization` header.
// +optional
- HTTPConfig *HTTPConfig `json:"http_config,omitempty" yaml:"http_config,omitempty"`
+ HTTPConfig *HTTPConfig `json:"http_config,omitempty,case:ignore" yaml:"http_config,omitempty"`
}
func (c *WebexConfig) validate() error {
@@ -1372,16 +1397,18 @@ func (c *WebexConfig) validate() error {
// JiraConfig represent alertmanager's jira_config entry
// https://prometheus.io/docs/alerting/latest/configuration/#jira_config
-// Available from v0.28.0 alertmanager version
+// available from v0.55.0 operator version
+// and v0.28.0 alertmanager version
+// +kubebuilder:pruning:PreserveUnknownFields
type JiraConfig struct {
// SendResolved controls notify about resolved alerts.
// +optional
- SendResolved *bool `json:"send_resolved,omitempty" yaml:"send_resolved,omitempty"`
+ SendResolved *bool `json:"send_resolved,omitempty,case:ignore" yaml:"send_resolved,omitempty"`
// The URL to send API requests to. The full API path must be included.
// Example: https://company.atlassian.net/rest/api/2/
// +optional
- APIURL *string `json:"api_url,omitempty" yaml:"api_url,omitempty"`
+ APIURL *string `json:"api_url,omitempty,case:ignore" yaml:"api_url,omitempty"`
// The project key where issues are created
Project string `json:"project" yaml:"project"`
@@ -1397,29 +1424,29 @@ type JiraConfig struct {
Priority string `json:"priority,omitempty" yaml:"priority,omitempty"`
// Type of the issue (e.g. Bug)
- IssueType string `json:"issue_type" yaml:"issue_type"`
+ IssueType string `json:"issue_type,case:ignore" yaml:"issue_type"`
// Name of the workflow transition to resolve an issue.
// The target status must have the category "done".
- ReopenTransition string `json:"reopen_transition,omitempty" yaml:"reopen_transition,omitempty"`
+ ReopenTransition string `json:"reopen_transition,omitempty,case:ignore" yaml:"reopen_transition,omitempty"`
// Name of the workflow transition to reopen an issue.
// The target status should not have the category "done".
- ResolveTransition string `json:"resolve_transition,omitempty" yaml:"resolve_transition,omitempty"`
+ ResolveTransition string `json:"resolve_transition,omitempty,case:ignore" yaml:"resolve_transition,omitempty"`
// If reopen_transition is defined, ignore issues with that resolution.
- WontFixResolution string `json:"wont_fix_resolution,omitempty" yaml:"wont_fix_resolution,omitempty"`
+ WontFixResolution string `json:"wont_fix_resolution,omitempty,case:ignore" yaml:"wont_fix_resolution,omitempty"`
// If reopen_transition is defined, reopen the issue when it is not older than this value (rounded down to the nearest minute).
// The resolutiondate field is used to determine the age of the issue.
// +kubebuilder:validation:Pattern:="^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$"
// +optional
- ReopenDuration string `json:"reopen_duration,omitempty" yaml:"reopen_duration,omitempty"`
+ ReopenDuration string `json:"reopen_duration,omitempty,case:ignore" yaml:"reopen_duration,omitempty"`
// Other issue and custom fields.
// Jira issue field can have multiple types.
// Depends on the field type, the values must be provided differently.
// See https://developer.atlassian.com/server/jira/platform/jira-rest-api-examples/#setting-custom-field-data-for-other-field-types for further examples.
// +optional
- Fields map[string]apiextensionsv1.JSON `json:"custom_fields,omitempty" yaml:"fields,omitempty"`
+ Fields map[string]apiextensionsv1.JSON `json:"custom_fields,omitempty,case:ignore" yaml:"fields,omitempty"`
// The HTTP client's configuration. You must use this configuration to supply the personal access token (PAT) as part of the HTTP `Authorization` header.
// For Jira Cloud, use basic_auth with the email address as the username and the PAT as the password.
@@ -1427,7 +1454,7 @@ type JiraConfig struct {
// +optional
// +kubebuilder:validation:Schemaless
// +kubebuilder:pruning:PreserveUnknownFields
- HTTPConfig *HTTPConfig `json:"http_config,omitempty" yaml:"http_config,omitempty"`
+ HTTPConfig *HTTPConfig `json:"http_config,omitempty,case:ignore" yaml:"http_config,omitempty"`
}
func (c *JiraConfig) validate() error {
@@ -1450,11 +1477,13 @@ func (c *JiraConfig) validate() error {
// IncidentioConfig configures notifications via incident.io.
// https://prometheus.io/docs/alerting/latest/configuration/#incidentio_config
-// Available from v0.29.0 alertmanager version
+// available from v0.66.0 operator version
+// and v0.29.0 alertmanager version
+// +kubebuilder:pruning:PreserveUnknownFields
type IncidentioConfig struct {
// SendResolved controls notify about resolved alerts.
// +optional
- SendResolved *bool `json:"send_resolved,omitempty" yaml:"send_resolved,omitempty"`
+ SendResolved *bool `json:"send_resolved,omitempty,case:ignore" yaml:"send_resolved,omitempty"`
// The URL to send the incident.io alert. This would typically be provided by the
// incident.io team when setting up an alert source.
// Mutually exclusive with URLFile.
@@ -1467,21 +1496,21 @@ type IncidentioConfig struct {
// AlertSourceToken is used to authenticate with incident.io.
// Mutually exclusive with AlertSourceTokenFile.
// +optional
- AlertSourceToken *corev1.SecretKeySelector `yaml:"alert_source_token,omitempty" json:"alert_source_token,omitempty"`
+ AlertSourceToken *corev1.SecretKeySelector `yaml:"alert_source_token,omitempty" json:"alert_source_token,omitempty,case:ignore"`
// AlertSourceTokenFile defines the path to a file that contains the alert source token.
// Mutually exclusive with AlertSourceToken.
// +optional
AlertSourceTokenFile string `json:"alert_source_token_file,omitempty" yaml:"alert_source_token_file,omitempty"`
// MaxAlerts defines maximum number of alerts to be sent per incident.io message.
// +optional
- MaxAlerts int `json:"max_alerts,omitempty" yaml:"max_alerts,omitempty"`
+ MaxAlerts int `json:"max_alerts,omitempty,case:ignore" yaml:"max_alerts,omitempty"`
// Timeout is the maximum time allowed to invoke incident.io
// +optional
Timeout string `json:"timeout,omitempty" yaml:"timeout,omitempty"`
// +optional
// +kubebuilder:validation:Schemaless
// +kubebuilder:pruning:PreserveUnknownFields
- HTTPConfig *HTTPConfig `json:"http_config,omitempty" yaml:"http_config,omitempty"`
+ HTTPConfig *HTTPConfig `json:"http_config,omitempty,case:ignore" yaml:"http_config,omitempty"`
}
func (c *IncidentioConfig) validate() error {
@@ -1511,18 +1540,20 @@ func (c *IncidentioConfig) validateArbitraryFSAccess() error {
// RocketchatConfig configures notifications via Rocketchat.
// https://prometheus.io/docs/alerting/latest/configuration/#rocketchat_config
-// Available from v0.28.0 alertmanager version
+// available from v0.55.0 operator version
+// and v0.28.0 alertmanager version
+// +kubebuilder:pruning:PreserveUnknownFields
type RocketchatConfig struct {
// SendResolved controls notify about resolved alerts.
// +optional
- SendResolved *bool `json:"send_resolved,omitempty" yaml:"send_resolved,omitempty"`
+ SendResolved *bool `json:"send_resolved,omitempty,case:ignore" yaml:"send_resolved,omitempty"`
// +optional
- APIURL *string `json:"api_url,omitempty" yaml:"api_url,omitempty"`
+ APIURL *string `json:"api_url,omitempty,case:ignore" yaml:"api_url,omitempty"`
// The sender token and token_id
// See https://docs.rocket.chat/docs/manage-personal-access-tokens
// +optional
- TokenID *corev1.SecretKeySelector `yaml:"token_id,omitempty" json:"token_id,omitempty"`
+ TokenID *corev1.SecretKeySelector `yaml:"token_id,omitempty" json:"token_id,omitempty,case:ignore"`
// +optional
Token *corev1.SecretKeySelector `yaml:"token,omitempty" json:"token,omitempty"`
@@ -1534,29 +1565,29 @@ type RocketchatConfig struct {
// +optional
Title string `json:"title,omitempty" yaml:"title,omitempty"`
// +optional
- TitleLink string `json:"title_link,omitempty" yaml:"title_link,omitempty"`
+ TitleLink string `json:"title_link,omitempty,case:ignore" yaml:"title_link,omitempty"`
// +optional
Text string `json:"text,omitempty" yaml:"text,omitempty"`
// +optional
Fields []RocketchatAttachmentField `json:"fields,omitempty" yaml:"fields,omitempty"`
// +optional
- ShortFields bool `json:"short_fields,omitempty" yaml:"short_fields,omitempty"`
+ ShortFields bool `json:"short_fields,omitempty,case:ignore" yaml:"short_fields,omitempty"`
// +optional
Emoji string `json:"emoji,omitempty" yaml:"emoji,omitempty"`
// +optional
- IconURL string `json:"icon_url,omitempty" yaml:"icon_url,omitempty"`
+ IconURL string `json:"icon_url,omitempty,case:ignore" yaml:"icon_url,omitempty"`
// +optional
- ImageURL string `json:"image_url,omitempty" yaml:"image_url,omitempty"`
+ ImageURL string `json:"image_url,omitempty,case:ignore" yaml:"image_url,omitempty"`
// +optional
- ThumbURL string `json:"thumb_url,omitempty" yaml:"thumb_url,omitempty"`
+ ThumbURL string `json:"thumb_url,omitempty,case:ignore" yaml:"thumb_url,omitempty"`
// +optional
- LinkNames bool `json:"link_names,omitempty" yaml:"link_names"`
+ LinkNames bool `json:"link_names,omitempty,case:ignore" yaml:"link_names"`
// +optional
Actions []RocketchatAttachmentAction `json:"actions,omitempty" yaml:"actions,omitempty"`
// +optional
// +kubebuilder:validation:Schemaless
// +kubebuilder:pruning:PreserveUnknownFields
- HTTPConfig *HTTPConfig `json:"http_config,omitempty" yaml:"http_config,omitempty"`
+ HTTPConfig *HTTPConfig `json:"http_config,omitempty,case:ignore" yaml:"http_config,omitempty"`
}
func (c *RocketchatConfig) validate() error {
@@ -1573,6 +1604,7 @@ func (c *RocketchatConfig) validate() error {
// RocketchatAttachmentField defines API fields
// https://developer.rocket.chat/apidocs/post-message
+// +kubebuilder:pruning:PreserveUnknownFields
type RocketchatAttachmentField struct {
// +optional
Short *bool `json:"short"`
@@ -1584,6 +1616,7 @@ type RocketchatAttachmentField struct {
// RocketchatAttachmentAction defines message attachments
// https://github.com/RocketChat/Rocket.Chat.Go.SDK/blob/master/models/message.go
+// +kubebuilder:pruning:PreserveUnknownFields
type RocketchatAttachmentAction struct {
// +optional
Type string `json:"type,omitempty"`
@@ -1597,21 +1630,23 @@ type RocketchatAttachmentAction struct {
// MSTeamsV2Config sends notifications using the new message format with adaptive cards as required by flows.
// https://support.microsoft.com/en-gb/office/create-incoming-webhooks-with-workflows-for-microsoft-teams-8ae491c7-0394-4861-ba59-055e33f75498
-// Available from v0.28.0 alertmanager version
+// available from v0.55.0 operator version
+// and v0.28.0 alertmanager version
+// +kubebuilder:pruning:PreserveUnknownFields
type MSTeamsV2Config struct {
// SendResolved controls notify about resolved alerts.
// +optional
- SendResolved *bool `json:"send_resolved,omitempty" yaml:"send_resolved,omitempty"`
+ SendResolved *bool `json:"send_resolved,omitempty,case:ignore" yaml:"send_resolved,omitempty"`
// The incoming webhook URL
// one of `urlSecret` and `url` must be defined.
// +optional
- URL *string `json:"webhook_url,omitempty" yaml:"webhook_url,omitempty"`
+ URL *string `json:"webhook_url,omitempty,case:ignore" yaml:"webhook_url,omitempty"`
// URLSecret defines secret name and key at the CRD namespace.
// It must contain the webhook URL.
// one of `webhook_url` or `webhook_url_secret` must be defined.
// +optional
- URLSecret *corev1.SecretKeySelector `json:"webhook_url_secret,omitempty" yaml:"webhook_url_secret,omitempty"`
+ URLSecret *corev1.SecretKeySelector `json:"webhook_url_secret,omitempty,case:ignore" yaml:"webhook_url_secret,omitempty"`
// Message title template.
// +optional
@@ -1623,7 +1658,7 @@ type MSTeamsV2Config struct {
// +optional
// +kubebuilder:validation:Schemaless
// +kubebuilder:pruning:PreserveUnknownFields
- HTTPConfig *HTTPConfig `json:"http_config,omitempty" yaml:"http_config,omitempty"`
+ HTTPConfig *HTTPConfig `json:"http_config,omitempty,case:ignore" yaml:"http_config,omitempty"`
}
func (c *MSTeamsV2Config) validate() error {
@@ -1645,10 +1680,11 @@ func (c *MSTeamsV2Config) validate() error {
}
// MattermostConfig configures notifications via Mattermost.
+// +kubebuilder:pruning:PreserveUnknownFields
type MattermostConfig struct {
// SendResolved controls notify about resolved alerts.
// +optional
- SendResolved *bool `json:"send_resolved,omitempty" yaml:"send_resolved,omitempty"`
+ SendResolved *bool `json:"send_resolved,omitempty,case:ignore" yaml:"send_resolved,omitempty"`
// Username overrides the username the message posts as
// +optional
Username string `json:"username,omitempty" yaml:"username,omitempty"`
@@ -1659,10 +1695,10 @@ type MattermostConfig struct {
Text string `json:"text"`
// IconURL overrides the profile picture the message posts with.
// +optional
- IconURL string `json:"icon_url,omitempty" yaml:"icon_url,omitempty"`
+ IconURL string `json:"icon_url,omitempty,case:ignore" yaml:"icon_url,omitempty"`
// IconEmoji overrides the profile picture and icon_url parameter.
// +optional
- IconEmoji string `json:"icon_emoji,omitempty" yaml:"icon_emoji,omitempty"`
+ IconEmoji string `json:"icon_emoji,omitempty,case:ignore" yaml:"icon_emoji,omitempty"`
// URL to send requests to,
// one of `urlSecret` and `url` must be defined.
// +optional
@@ -1671,7 +1707,7 @@ type MattermostConfig struct {
// It must contain the Mattermost URL.
// one of `urlSecret` and `url` must be defined.
// +optional
- URLSecret *corev1.SecretKeySelector `json:"url_secret,omitempty" yaml:"url_secret,omitempty"`
+ URLSecret *corev1.SecretKeySelector `json:"url_secret,omitempty,case:ignore" yaml:"url_secret,omitempty"`
// Attachments defines richer formatting options
// +optional
Attachments []*MattermostAttachment `json:"attachments,omitempty" yaml:"attachments,omitempty"`
@@ -1682,7 +1718,7 @@ type MattermostConfig struct {
// +optional
// +kubebuilder:validation:Schemaless
// +kubebuilder:pruning:PreserveUnknownFields
- HTTPConfig *HTTPConfig `json:"http_config,omitempty" yaml:"http_config,omitempty"`
+ HTTPConfig *HTTPConfig `json:"http_config,omitempty,case:ignore" yaml:"http_config,omitempty"`
}
func (c *MattermostConfig) validate() error {
@@ -1698,55 +1734,60 @@ func (c *MattermostConfig) validate() error {
return nil
}
+// +kubebuilder:pruning:PreserveUnknownFields
type MattermostAttachment struct {
Fallback string `json:"fallback,omitempty" yaml:"fallback,omitempty"`
Color string `json:"color,omitempty" yaml:"color,omitempty"`
Pretext string `json:"pretext,omitempty" yaml:"pretext,omitempty"`
Text string `json:"text,omitempty" yaml:"text,omitempty"`
- AuthorName string `json:"author_name,omitempty" yaml:"author_name,omitempty"`
- AuthorLink string `json:"author_link,omitempty" yaml:"author_link,omitempty"`
- AuthorIcon string `json:"author_icon,omitempty" yaml:"author_icon,omitempty"`
+ AuthorName string `json:"author_name,omitempty,case:ignore" yaml:"author_name,omitempty"`
+ AuthorLink string `json:"author_link,omitempty,case:ignore" yaml:"author_link,omitempty"`
+ AuthorIcon string `json:"author_icon,omitempty,case:ignore" yaml:"author_icon,omitempty"`
Title string `json:"title,omitempty" yaml:"title,omitempty"`
- TitleLink string `json:"title_link,omitempty" yaml:"title_link,omitempty"`
+ TitleLink string `json:"title_link,omitempty,case:ignore" yaml:"title_link,omitempty"`
Fields []MattermostField `json:"fields,omitempty" yaml:"fields,omitempty"`
- ThumbURL string `json:"thumb_url,omitempty" yaml:"thumb_url,omitempty"`
+ ThumbURL string `json:"thumb_url,omitempty,case:ignore" yaml:"thumb_url,omitempty"`
Footer string `json:"footer,omitempty" yaml:"footer,omitempty"`
- FooterIcon string `json:"footer_icon,omitempty" yaml:"footer_icon,omitempty"`
- ImageURL string `json:"image_url,omitempty" yaml:"image_url,omitempty"`
+ FooterIcon string `json:"footer_icon,omitempty,case:ignore" yaml:"footer_icon,omitempty"`
+ ImageURL string `json:"image_url,omitempty,case:ignore" yaml:"image_url,omitempty"`
}
+// +kubebuilder:pruning:PreserveUnknownFields
type MattermostField struct {
Title string `json:"title,omitempty" yaml:"title,omitempty"`
Value string `json:"value,omitempty" yaml:"value,omitempty"`
Short bool `json:"short,omitempty" yaml:"short,omitempty"`
}
+// +kubebuilder:pruning:PreserveUnknownFields
type MattermostProps struct {
Card *string `json:"card,omitempty" yaml:"card,omitempty"`
}
+// +kubebuilder:pruning:PreserveUnknownFields
type MattermostPriority struct {
Priority string `json:"priority,omitempty" yaml:"priority,omitempty"`
- RequestedAck *bool `json:"requested_ack,omitempty" yaml:"requested_ack,omitempty"`
- PersistentNotifications *bool `json:"persistent_notifications,omitempty" yaml:"persistent_notifications,omitempty"`
+ RequestedAck *bool `json:"requested_ack,omitempty,case:ignore" yaml:"requested_ack,omitempty"`
+ PersistentNotifications *bool `json:"persistent_notifications,omitempty,case:ignore" yaml:"persistent_notifications,omitempty"`
}
+// +kubebuilder:pruning:PreserveUnknownFields
// HTTPConfig defines a client HTTP configuration for VMAlertmanagerConfig objects
// See https://prometheus.io/docs/alerting/latest/configuration/#http_config
type HTTPConfig struct {
// BasicAuth for the client.
// +optional
- BasicAuth *BasicAuth `json:"basic_auth,omitempty" yaml:"basic_auth,omitempty"`
+ BasicAuth *BasicAuth `json:"basic_auth,omitempty,case:ignore" yaml:"basic_auth,omitempty"`
// The secret's key that contains the bearer token
// It must be at them same namespace as CRD
// +optional
- BearerTokenSecret *corev1.SecretKeySelector `json:"bearer_token_secret,omitempty" yaml:"bearer_token_secret,omitempty"`
+ BearerTokenSecret *corev1.SecretKeySelector `json:"bearer_token_secret,omitempty,case:ignore" yaml:"bearer_token_secret,omitempty"`
// BearerTokenFile defines filename for bearer token, it must be mounted to pod.
// +optional
- BearerTokenFile string `json:"bearer_token_file,omitempty" yaml:"bearer_token_file,omitempty"`
+ BearerTokenFile string `json:"bearer_token_file,omitempty,case:ignore" yaml:"bearer_token_file,omitempty"`
// TLS configuration for the client.
// +optional
- TLSConfig *TLSConfig `json:"tls_config,omitempty" yaml:"tls_config,omitempty"`
+ TLSConfig *TLSConfig `json:"tls_config,omitempty,case:ignore" yaml:"tls_config,omitempty"`
// Authorization header configuration for the client.
// This is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+.
// +optional
@@ -1756,7 +1797,7 @@ type HTTPConfig struct {
OAuth2 *OAuth2 `json:"oauth2,omitempty"`
// FollowRedirects controls redirects for scraping.
// +optional
- FollowRedirects *bool `json:"follow_redirects,omitempty"`
+ FollowRedirects *bool `json:"follow_redirects,omitempty,case:ignore"`
// HTTPHeaders defines custom HTTP headers to be sent along with each request.
// Only supported starting from Alertmanager v0.28.0; ignored by older versions.
// +optional
@@ -1849,35 +1890,29 @@ func (c *HTTPConfig) validateArbitraryFSAccess() error {
return nil
}
+// +kubebuilder:pruning:PreserveUnknownFields
// ProxyConfig defines proxy configs
type ProxyConfig struct {
// ProxyUrl defines the HTTP proxy server to use.
// +kubebuilder:validation:Pattern:="^(http|https|socks5)://.+$"
// +optional
- ProxyURL string `json:"proxyURL,omitempty" yaml:"proxy_url,omitempty"`
+ ProxyURL string `json:"proxyURL,omitempty,case:ignore" yaml:"proxy_url,omitempty"`
// NoProxy defines a comma-separated string that can contain IPs, CIDR notation, domain names that should be excluded from proxying.
// IP and domain names can contain port numbers.
// +optional
- NoProxy string `json:"noProxy,omitempty" yaml:"no_proxy,omitempty"`
+ NoProxy string `json:"noProxy,omitempty,case:ignore" yaml:"no_proxy,omitempty"`
// ProxyFromEnvironment defines whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).
// +optional
- ProxyFromEnvironment bool `json:"proxyFromEnvironment,omitempty" yaml:"proxy_from_environment,omitempty"`
+ ProxyFromEnvironment bool `json:"proxyFromEnvironment,omitempty,case:ignore" yaml:"proxy_from_environment,omitempty"`
// ProxyConnectHeader optionally specifies headers to send to proxies during CONNECT requests.
// +optional
- ProxyConnectHeader map[string][]corev1.SecretKeySelector `json:"proxyConnectHeader,omitempty" yaml:"proxy_connect_header,omitempty"`
+ ProxyConnectHeader map[string][]corev1.SecretKeySelector `json:"proxyConnectHeader,omitempty,case:ignore" yaml:"proxy_connect_header,omitempty"`
}
// UnmarshalJSON implements json.Unmarshaller interface
func (c *HTTPConfig) UnmarshalJSON(data []byte) error {
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
-
type pc HTTPConfig
- if err := decoder.Decode((*pc)(c)); err != nil {
- return err
- }
-
- return nil
+ return UnmarshalSpecStrict(data, (*pc)(c))
}
func (c *HTTPConfig) validate() error {
diff --git a/api/operator/v1beta1/vmalertmanagerconfig_types_test.go b/api/operator/v1beta1/vmalertmanagerconfig_types_test.go
index c14e4b3f96..6fe5ceb8f0 100644
--- a/api/operator/v1beta1/vmalertmanagerconfig_types_test.go
+++ b/api/operator/v1beta1/vmalertmanagerconfig_types_test.go
@@ -1,11 +1,12 @@
package v1beta1
import (
- "encoding/json"
+ "encoding/json/v2"
"strings"
"testing"
"github.com/stretchr/testify/assert"
+ corev1 "k8s.io/api/core/v1"
)
func TestValidateVMAlertmanagerConfigFail(t *testing.T) {
@@ -58,7 +59,7 @@ func TestValidateVMAlertmanagerConfigFail(t *testing.T) {
}
}
}
-`, `unknown field "match"`)
+`, `unknown object member name "match"`)
f(`{
"apiVersion": "v1",
"kind": "VMAlertmanagerConfig",
@@ -381,7 +382,7 @@ func TestValidateVMAlertmanagerConfigFail(t *testing.T) {
}
},
"tls_config": {
- "insecure_skip_verify": true
+ "verify_certificate": true
}
},
"title": "some",
@@ -395,7 +396,7 @@ func TestValidateVMAlertmanagerConfigFail(t *testing.T) {
"receiver": "teams"
}
}
-}`, `unknown field "insecure_skip_verify"`)
+}`, `unknown object member name "verify_certificate"`)
}
func TestValidateVMAlertmanagerConfigOk(t *testing.T) {
@@ -1042,3 +1043,262 @@ func TestHTTPConfig_ValidateArbitraryFSAccess(t *testing.T) {
},
}, true)
}
+
+// TestVMAlertmanagerConfigCaseIgnore verifies that both snake_case and camelCase
+// field names are accepted when unmarshalling VMAlertmanagerConfig, thanks to the
+// json "case:ignore" tag option processed by encoding/json/v2.
+func TestVMAlertmanagerConfigCaseIgnore(t *testing.T) {
+ unmarshal := func(t *testing.T, src string) VMAlertmanagerConfig {
+ t.Helper()
+ var amc VMAlertmanagerConfig
+ assert.NoError(t, json.Unmarshal([]byte(src), &amc))
+ assert.Empty(t, amc.Status.ParsingSpecError)
+ return amc
+ }
+
+ t.Run("spec top-level fields camelCase", func(t *testing.T) {
+ amc := unmarshal(t, `{
+ "apiVersion": "operator.victoriametrics.com/v1beta1",
+ "kind": "VMAlertmanagerConfig",
+ "metadata": {"name": "test"},
+ "spec": {
+ "receivers": [{"name": "recv"}],
+ "inhibitRules": [
+ {
+ "targetMatchers": ["env=prod"],
+ "sourceMatchers": ["env=dev"],
+ "equal": ["alertname"]
+ }
+ ],
+ "timeIntervals": [
+ {
+ "name": "workhours",
+ "timeIntervals": [
+ {
+ "daysOfMonth": ["1:5"],
+ "times": [{"startTime": "09:00", "endTime": "17:00"}]
+ }
+ ]
+ }
+ ],
+ "route": {"receiver": "recv"}
+ }
+ }`)
+ assert.Len(t, amc.Spec.InhibitRules, 1)
+ assert.Equal(t, []string{"env=prod"}, amc.Spec.InhibitRules[0].TargetMatchers)
+ assert.Equal(t, []string{"env=dev"}, amc.Spec.InhibitRules[0].SourceMatchers)
+ assert.Len(t, amc.Spec.TimeIntervals, 1)
+ assert.Equal(t, "workhours", amc.Spec.TimeIntervals[0].Name)
+ ti := amc.Spec.TimeIntervals[0].TimeIntervals[0]
+ assert.Equal(t, []string{"1:5"}, ti.DaysOfMonth)
+ assert.Equal(t, "09:00", ti.Times[0].StartTime)
+ assert.Equal(t, "17:00", ti.Times[0].EndTime)
+ })
+
+ t.Run("route camelCase fields", func(t *testing.T) {
+ amc := unmarshal(t, `{
+ "apiVersion": "operator.victoriametrics.com/v1beta1",
+ "kind": "VMAlertmanagerConfig",
+ "metadata": {"name": "test"},
+ "spec": {
+ "receivers": [{"name": "recv"}, {"name": "recv2"}],
+ "timeIntervals": [{"name": "quiet", "timeIntervals": [{"weekdays": ["saturday", "sunday"]}]}],
+ "route": {
+ "receiver": "recv",
+ "groupBy": ["alertname", "cluster"],
+ "groupWait": "30s",
+ "groupInterval": "5m",
+ "repeatInterval": "12h",
+ "muteTimeIntervals": ["quiet"],
+ "activeTimeIntervals": ["quiet"],
+ "routes": [{"receiver": "recv2"}]
+ }
+ }
+ }`)
+ r := amc.Spec.Route
+ assert.Equal(t, []string{"alertname", "cluster"}, r.GroupBy)
+ assert.Equal(t, "30s", r.GroupWait)
+ assert.Equal(t, "5m", r.GroupInterval)
+ assert.Equal(t, "12h", r.RepeatInterval)
+ assert.Equal(t, []string{"quiet"}, r.MuteTimeIntervals)
+ assert.Equal(t, []string{"quiet"}, r.ActiveTimeIntervals)
+ })
+
+ t.Run("nested route camelCase fields", func(t *testing.T) {
+ amc := unmarshal(t, `{
+ "apiVersion": "operator.victoriametrics.com/v1beta1",
+ "kind": "VMAlertmanagerConfig",
+ "metadata": {"name": "test"},
+ "spec": {
+ "receivers": [{"name": "recv"}],
+ "route": {
+ "receiver": "recv",
+ "routes": [
+ {
+ "receiver": "recv",
+ "groupWait": "10s",
+ "groupInterval": "2m",
+ "matchers": ["env=prod"]
+ }
+ ]
+ }
+ }
+ }`)
+ assert.Len(t, amc.Spec.Route.Routes, 1)
+ sub := amc.Spec.Route.Routes[0]
+ assert.Equal(t, "10s", sub.GroupWait)
+ assert.Equal(t, "2m", sub.GroupInterval)
+ })
+
+ t.Run("receiver list fields camelCase", func(t *testing.T) {
+ amc := unmarshal(t, `{
+ "apiVersion": "operator.victoriametrics.com/v1beta1",
+ "kind": "VMAlertmanagerConfig",
+ "metadata": {"name": "test"},
+ "spec": {
+ "receivers": [
+ {
+ "name": "recv",
+ "webhookConfigs": [
+ {
+ "url": "http://example.com/hook",
+ "sendResolved": true,
+ "maxAlerts": 5
+ }
+ ],
+ "telegramConfigs": [
+ {
+ "botToken": {"name": "secret", "key": "token"},
+ "chatId": 12345,
+ "sendResolved": false
+ }
+ ]
+ }
+ ],
+ "route": {"receiver": "recv"}
+ }
+ }`)
+ recv := amc.Spec.Receivers[0]
+ assert.Len(t, recv.WebhookConfigs, 1)
+ wh := recv.WebhookConfigs[0]
+ assert.Equal(t, "http://example.com/hook", *wh.URL)
+ assert.Equal(t, true, *wh.SendResolved)
+ assert.Equal(t, int32(5), wh.MaxAlerts)
+
+ assert.Len(t, recv.TelegramConfigs, 1)
+ tg := recv.TelegramConfigs[0]
+ assert.Equal(t, corev1.SecretKeySelector{LocalObjectReference: corev1.LocalObjectReference{Name: "secret"}, Key: "token"}, *tg.BotToken)
+ assert.Equal(t, 12345, tg.ChatID)
+ assert.Equal(t, false, *tg.SendResolved)
+ })
+
+ t.Run("http_config camelCase fields", func(t *testing.T) {
+ amc := unmarshal(t, `{
+ "apiVersion": "operator.victoriametrics.com/v1beta1",
+ "kind": "VMAlertmanagerConfig",
+ "metadata": {"name": "test"},
+ "spec": {
+ "receivers": [
+ {
+ "name": "recv",
+ "webhookConfigs": [
+ {
+ "url": "http://example.com/hook",
+ "httpConfig": {
+ "bearerTokenSecret": {"name": "secret", "key": "token"},
+ "followRedirects": false,
+ "tlsConfig": {
+ "insecureSkipVerify": true,
+ "serverName": "example.com"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "route": {"receiver": "recv"}
+ }
+ }`)
+ hc := amc.Spec.Receivers[0].WebhookConfigs[0].HTTPConfig
+ assert.Equal(t, "secret", hc.BearerTokenSecret.Name)
+ assert.Equal(t, "token", hc.BearerTokenSecret.Key)
+ assert.Equal(t, false, *hc.FollowRedirects)
+ assert.Equal(t, true, hc.TLSConfig.InsecureSkipVerify)
+ assert.Equal(t, "example.com", hc.TLSConfig.ServerName)
+ })
+
+ t.Run("ProxyConfig snake_case for camelCase canonical fields", func(t *testing.T) {
+ amc := unmarshal(t, `{
+ "apiVersion": "operator.victoriametrics.com/v1beta1",
+ "kind": "VMAlertmanagerConfig",
+ "metadata": {"name": "test"},
+ "spec": {
+ "receivers": [
+ {
+ "name": "recv",
+ "webhookConfigs": [
+ {
+ "url": "http://example.com/hook",
+ "httpConfig": {
+ "proxy_url": "http://proxy:3128",
+ "no_proxy": "localhost,127.0.0.1"
+ }
+ }
+ ]
+ }
+ ],
+ "route": {"receiver": "recv"}
+ }
+ }`)
+ hc := amc.Spec.Receivers[0].WebhookConfigs[0].HTTPConfig
+ assert.Equal(t, "http://proxy:3128", hc.ProxyURL)
+ assert.Equal(t, "localhost,127.0.0.1", hc.NoProxy)
+ })
+
+ t.Run("snake_case canonical fields still work (regression)", func(t *testing.T) {
+ amc := unmarshal(t, `{
+ "apiVersion": "operator.victoriametrics.com/v1beta1",
+ "kind": "VMAlertmanagerConfig",
+ "metadata": {"name": "test"},
+ "spec": {
+ "receivers": [{"name": "recv"}],
+ "inhibit_rules": [
+ {
+ "target_matchers": ["env=prod"],
+ "source_matchers": ["env=dev"]
+ }
+ ],
+ "route": {
+ "receiver": "recv",
+ "group_by": ["alertname"],
+ "group_wait": "30s",
+ "group_interval": "5m",
+ "repeat_interval": "12h"
+ }
+ }
+ }`)
+ assert.Len(t, amc.Spec.InhibitRules, 1)
+ assert.Equal(t, "30s", amc.Spec.Route.GroupWait)
+ assert.Equal(t, []string{"alertname"}, amc.Spec.Route.GroupBy)
+ })
+
+ t.Run("mixed snake_case and camelCase in same object", func(t *testing.T) {
+ amc := unmarshal(t, `{
+ "apiVersion": "operator.victoriametrics.com/v1beta1",
+ "kind": "VMAlertmanagerConfig",
+ "metadata": {"name": "test"},
+ "spec": {
+ "receivers": [{"name": "recv"}],
+ "route": {
+ "receiver": "recv",
+ "group_wait": "30s",
+ "groupInterval": "5m",
+ "repeat_interval": "12h"
+ }
+ }
+ }`)
+ assert.Equal(t, "30s", amc.Spec.Route.GroupWait)
+ assert.Equal(t, "5m", amc.Spec.Route.GroupInterval)
+ assert.Equal(t, "12h", amc.Spec.Route.RepeatInterval)
+ })
+}
diff --git a/api/operator/v1beta1/vmauth_types.go b/api/operator/v1beta1/vmauth_types.go
index dbdf9e90e6..507c465a30 100644
--- a/api/operator/v1beta1/vmauth_types.go
+++ b/api/operator/v1beta1/vmauth_types.go
@@ -1,7 +1,8 @@
package v1beta1
import (
- "encoding/json"
+ "encoding/json/jsontext"
+ "encoding/json/v2"
"fmt"
"net/url"
"regexp"
@@ -141,8 +142,8 @@ type VMAuthSpec struct {
// +notes={available_from: "v0.74.0"}
WaitForConfigReload *bool `json:"waitForConfigReload,omitempty"`
- CommonConfigReloaderParams `json:",inline,omitempty" yaml:",inline"`
- CommonAppsParams `json:",inline,omitempty" yaml:",inline"`
+ CommonConfigReloaderParams `json:",inline" yaml:",inline"`
+ CommonAppsParams `json:",inline" yaml:",inline"`
// InternalListenPort instructs vmauth to serve internal routes at given port
// available from v1.111.0 vmauth version
// related doc https://docs.victoriametrics.com/victoriametrics/vmauth/#security
@@ -247,7 +248,7 @@ type UnauthorizedAccessConfigURLMap struct {
// +kubebuilder:pruning:PreserveUnknownFields
URLPrefix StringOrArray `json:"url_prefix,omitempty" yaml:"url_prefix,omitempty"`
- URLMapCommon `json:",omitempty" yaml:",inline"`
+ URLMapCommon `json:",inline" yaml:",inline"`
}
// Validate performs syntax logic validation
@@ -625,7 +626,7 @@ func (cr *VMAuth) UnmarshalJSON(src []byte) error {
type pcr VMAuth
type shadow struct {
*pcr
- Spec json.RawMessage `json:"spec"`
+ Spec jsontext.Value `json:"spec"`
}
s := shadow{pcr: (*pcr)(cr)}
if err := json.Unmarshal(src, &s); err != nil {
diff --git a/api/operator/v1beta1/vmcluster_types.go b/api/operator/v1beta1/vmcluster_types.go
index a9758d4388..83a683ec90 100644
--- a/api/operator/v1beta1/vmcluster_types.go
+++ b/api/operator/v1beta1/vmcluster_types.go
@@ -1,7 +1,8 @@
package v1beta1
import (
- "encoding/json"
+ "encoding/json/jsontext"
+ "encoding/json/v2"
"fmt"
"regexp"
"strings"
@@ -284,7 +285,7 @@ func (cr *VMCluster) UnmarshalJSON(src []byte) error {
type pcr VMCluster
type shadow struct {
*pcr
- Spec json.RawMessage `json:"spec"`
+ Spec jsontext.Value `json:"spec"`
}
s := shadow{pcr: (*pcr)(cr)}
if err := json.Unmarshal(src, &s); err != nil {
diff --git a/api/operator/v1beta1/vmextra_types.go b/api/operator/v1beta1/vmextra_types.go
index d9d4a2bcb3..5b0f6f5fe9 100644
--- a/api/operator/v1beta1/vmextra_types.go
+++ b/api/operator/v1beta1/vmextra_types.go
@@ -1,8 +1,8 @@
package v1beta1
import (
- "bytes"
- "encoding/json"
+ "encoding/json/jsontext"
+ "encoding/json/v2"
"fmt"
"net/url"
"path"
@@ -332,7 +332,7 @@ type HTTPAuth struct {
// +optional
TLSConfig *TLSConfig `json:"tlsConfig,omitempty"`
// +optional
- *BearerAuth `json:",inline,omitempty"`
+ *BearerAuth `json:",inline"`
// Headers allow configuring custom http headers
// Must be in form of semicolon separated header with value
// e.g.
@@ -1059,7 +1059,7 @@ func (m *StringOrArray) UnmarshalJSON(data []byte) error {
*m = match
return nil
default:
- return &json.UnmarshalTypeError{Value: string(data), Type: rawType}
+ return &json.SemanticError{JSONValue: jsontext.Value(data), GoType: rawType}
}
}
@@ -1177,32 +1177,29 @@ func (c *TLSConfig) appendForbiddenProperties(props []string) []string {
return props
}
-// UnmarshalSpecStrict decodes spec JSON into v and rejects unknown fields.
-// A lenient pass runs first so real parse errors (type mismatches, syntax)
-// are returned before unknown-field errors can hide them.
-func UnmarshalSpecStrict(data []byte, v any) error {
- if err := json.Unmarshal(data, v); err != nil {
- return err
- }
- d := json.NewDecoder(bytes.NewReader(data))
- d.DisallowUnknownFields()
- return d.Decode(v)
-}
-
// HasUnknownFields reports whether a ParsingSpecError was caused by unknown spec fields.
// Webhook ValidateUpdate uses this to allow updates to CRs that contain fields unknown to
// the current operator version (e.g. after a downgrade), while ValidateCreate still rejects them.
func HasUnknownFields(parsingSpecErr string) bool {
- return strings.Contains(parsingSpecErr, "json: unknown field")
+ return strings.Contains(parsingSpecErr, "unknown object member name") || strings.Contains(parsingSpecErr, "json: unknown field")
+}
+
+// UnmarshalSpecStrict unmarshals src into spec using case-insensitive field name matching. It
+// first attempts a lenient parse (case-insensitive only, unknown members allowed) so a genuine
+// type/syntax error is returned before a stricter "unknown member" error could mask it, then
+// re-parses with unknown members rejected so those are still reported when nothing more
+// fundamental is wrong.
+func UnmarshalSpecStrict(src []byte, spec any) error {
+ if err := json.Unmarshal(src, spec, json.MatchCaseInsensitiveNames(true)); err != nil {
+ return err
+ }
+ return json.Unmarshal(src, spec, json.MatchCaseInsensitiveNames(true), json.RejectUnknownMembers(true))
}
// UnmarshalJSON implements json.Unmarshaller interface
func (c *TLSConfig) UnmarshalJSON(data []byte) error {
- decoder := json.NewDecoder(bytes.NewReader(data))
- decoder.DisallowUnknownFields()
-
type pc TLSConfig
- if err := decoder.Decode((*pc)(c)); err != nil {
+ if err := UnmarshalSpecStrict(data, (*pc)(c)); err != nil {
return err
}
diff --git a/api/operator/v1beta1/vmextra_types_test.go b/api/operator/v1beta1/vmextra_types_test.go
index c90ee705b6..f4efcff960 100644
--- a/api/operator/v1beta1/vmextra_types_test.go
+++ b/api/operator/v1beta1/vmextra_types_test.go
@@ -1,7 +1,7 @@
package v1beta1
import (
- "encoding/json"
+ "encoding/json/v2"
"fmt"
"testing"
@@ -91,9 +91,10 @@ func TestStringOrArrayMarshal(t *testing.T) {
assert.Equal(t, expected, string(got))
}
- f(&StringOrArray{"1", "2", "3"}, json.Marshal, `["1","2","3"]`)
- f(&StringOrArray{"1"}, json.Marshal, `"1"`)
- f(&StringOrArray{}, json.Marshal, `""`)
+ jsonMarshal := func(v any) ([]byte, error) { return json.Marshal(v) }
+ f(&StringOrArray{"1", "2", "3"}, jsonMarshal, `["1","2","3"]`)
+ f(&StringOrArray{"1"}, jsonMarshal, `"1"`)
+ f(&StringOrArray{}, jsonMarshal, `""`)
f(&StringOrArray{"1", "2", "3"}, yaml.Marshal, `- "1"
- "2"
- "3"
@@ -112,9 +113,10 @@ func TestStringOrArrayUnMarshal(t *testing.T) {
assert.NoError(t, unmarshalF([]byte(src), &got))
assert.Equal(t, expected, got)
}
- f(`["1","2","3"]`, json.Unmarshal, StringOrArray{"1", "2", "3"})
- f(`"1"`, json.Unmarshal, StringOrArray{"1"})
- f(`""`, json.Unmarshal, StringOrArray{""})
+ jsonUnmarshal := func(data []byte, v any) error { return json.Unmarshal(data, v) }
+ f(`["1","2","3"]`, jsonUnmarshal, StringOrArray{"1", "2", "3"})
+ f(`"1"`, jsonUnmarshal, StringOrArray{"1"})
+ f(`""`, jsonUnmarshal, StringOrArray{""})
f(`- "1"
- "2"
- "3"
diff --git a/api/operator/v1beta1/vmnodescrape_types.go b/api/operator/v1beta1/vmnodescrape_types.go
index bfa253aac2..50cd02db06 100644
--- a/api/operator/v1beta1/vmnodescrape_types.go
+++ b/api/operator/v1beta1/vmnodescrape_types.go
@@ -1,7 +1,8 @@
package v1beta1
import (
- "encoding/json"
+ "encoding/json/jsontext"
+ "encoding/json/v2"
"fmt"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -87,7 +88,7 @@ func (cr *VMNodeScrape) UnmarshalJSON(src []byte) error {
type pcr VMNodeScrape
type shadow struct {
*pcr
- Spec json.RawMessage `json:"spec"`
+ Spec jsontext.Value `json:"spec"`
}
s := shadow{pcr: (*pcr)(cr)}
if err := json.Unmarshal(src, &s); err != nil {
diff --git a/api/operator/v1beta1/vmpodscrape_types.go b/api/operator/v1beta1/vmpodscrape_types.go
index 3ff05f8b1c..a0c49efec6 100644
--- a/api/operator/v1beta1/vmpodscrape_types.go
+++ b/api/operator/v1beta1/vmpodscrape_types.go
@@ -1,7 +1,8 @@
package v1beta1
import (
- "encoding/json"
+ "encoding/json/jsontext"
+ "encoding/json/v2"
"fmt"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -152,7 +153,7 @@ func (cr *VMPodScrape) UnmarshalJSON(src []byte) error {
type pcr VMPodScrape
type shadow struct {
*pcr
- Spec json.RawMessage `json:"spec"`
+ Spec jsontext.Value `json:"spec"`
}
s := shadow{pcr: (*pcr)(cr)}
if err := json.Unmarshal(src, &s); err != nil {
diff --git a/api/operator/v1beta1/vmprobe_types.go b/api/operator/v1beta1/vmprobe_types.go
index a82a54a6f7..8db6f58ee8 100644
--- a/api/operator/v1beta1/vmprobe_types.go
+++ b/api/operator/v1beta1/vmprobe_types.go
@@ -17,7 +17,8 @@ limitations under the License.
package v1beta1
import (
- "encoding/json"
+ "encoding/json/jsontext"
+ "encoding/json/v2"
"fmt"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -167,7 +168,7 @@ func (cr *VMProbe) UnmarshalJSON(src []byte) error {
type pcr VMProbe
type shadow struct {
*pcr
- Spec json.RawMessage `json:"spec"`
+ Spec jsontext.Value `json:"spec"`
}
s := shadow{pcr: (*pcr)(cr)}
if err := json.Unmarshal(src, &s); err != nil {
diff --git a/api/operator/v1beta1/vmrule_types.go b/api/operator/v1beta1/vmrule_types.go
index 90fff90476..042d3c08fa 100644
--- a/api/operator/v1beta1/vmrule_types.go
+++ b/api/operator/v1beta1/vmrule_types.go
@@ -1,7 +1,8 @@
package v1beta1
import (
- "encoding/json"
+ "encoding/json/jsontext"
+ "encoding/json/v2"
"fmt"
"net/url"
"strconv"
@@ -253,7 +254,7 @@ func (cr *VMRule) UnmarshalJSON(src []byte) error {
type pcr VMRule
type shadow struct {
*pcr
- Spec json.RawMessage `json:"spec"`
+ Spec jsontext.Value `json:"spec"`
}
s := shadow{pcr: (*pcr)(cr)}
if err := json.Unmarshal(src, &s); err != nil {
diff --git a/api/operator/v1beta1/vmrule_types_test.go b/api/operator/v1beta1/vmrule_types_test.go
index 4acec267c7..bf893f28e9 100644
--- a/api/operator/v1beta1/vmrule_types_test.go
+++ b/api/operator/v1beta1/vmrule_types_test.go
@@ -1,7 +1,7 @@
package v1beta1
import (
- "encoding/json"
+ "encoding/json/v2"
"reflect"
"strings"
"testing"
diff --git a/api/operator/v1beta1/vmscrapeconfig_types.go b/api/operator/v1beta1/vmscrapeconfig_types.go
index 51417dfb0d..c44ca938e8 100644
--- a/api/operator/v1beta1/vmscrapeconfig_types.go
+++ b/api/operator/v1beta1/vmscrapeconfig_types.go
@@ -16,7 +16,8 @@ limitations under the License.
package v1beta1
import (
- "encoding/json"
+ "encoding/json/jsontext"
+ "encoding/json/v2"
"fmt"
corev1 "k8s.io/api/core/v1"
@@ -790,7 +791,7 @@ func (cr *VMScrapeConfig) UnmarshalJSON(src []byte) error {
type pcr VMScrapeConfig
type shadow struct {
*pcr
- Spec json.RawMessage `json:"spec"`
+ Spec jsontext.Value `json:"spec"`
}
s := shadow{pcr: (*pcr)(cr)}
if err := json.Unmarshal(src, &s); err != nil {
diff --git a/api/operator/v1beta1/vmservicescrape_types.go b/api/operator/v1beta1/vmservicescrape_types.go
index 39f00a5b3b..6866d1fc0d 100644
--- a/api/operator/v1beta1/vmservicescrape_types.go
+++ b/api/operator/v1beta1/vmservicescrape_types.go
@@ -1,7 +1,8 @@
package v1beta1
import (
- "encoding/json"
+ "encoding/json/jsontext"
+ "encoding/json/v2"
"fmt"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -174,7 +175,7 @@ func (cr *VMServiceScrape) UnmarshalJSON(src []byte) error {
type pcr VMServiceScrape
type shadow struct {
*pcr
- Spec json.RawMessage `json:"spec"`
+ Spec jsontext.Value `json:"spec"`
}
s := shadow{pcr: (*pcr)(cr)}
if err := json.Unmarshal(src, &s); err != nil {
diff --git a/api/operator/v1beta1/vmsingle_types.go b/api/operator/v1beta1/vmsingle_types.go
index 15ea3d12d2..29e99dadbf 100644
--- a/api/operator/v1beta1/vmsingle_types.go
+++ b/api/operator/v1beta1/vmsingle_types.go
@@ -1,7 +1,8 @@
package v1beta1
import (
- "encoding/json"
+ "encoding/json/jsontext"
+ "encoding/json/v2"
"fmt"
"strings"
@@ -116,9 +117,9 @@ type VMSingleSpec struct {
// NetworkPolicy defines network access rules for pods created by this CR.
// +optional
NetworkPolicy *EmbeddedNetworkPolicy `json:"networkPolicy,omitempty"`
- CommonRelabelParams `json:",inline,omitempty"`
- CommonScrapeParams `json:",inline,omitempty"`
- CommonConfigReloaderParams `json:",inline,omitempty"`
+ CommonRelabelParams `json:",inline"`
+ CommonScrapeParams `json:",inline"`
+ CommonConfigReloaderParams `json:",inline"`
CommonAppsParams `json:",inline"`
}
@@ -239,7 +240,7 @@ func (cr *VMSingle) UnmarshalJSON(src []byte) error {
type pcr VMSingle
type shadow struct {
*pcr
- Spec json.RawMessage `json:"spec"`
+ Spec jsontext.Value `json:"spec"`
}
s := shadow{pcr: (*pcr)(cr)}
if err := json.Unmarshal(src, &s); err != nil {
diff --git a/api/operator/v1beta1/vmstaticscrape_types.go b/api/operator/v1beta1/vmstaticscrape_types.go
index 7ee0be6481..62d3464535 100644
--- a/api/operator/v1beta1/vmstaticscrape_types.go
+++ b/api/operator/v1beta1/vmstaticscrape_types.go
@@ -1,7 +1,8 @@
package v1beta1
import (
- "encoding/json"
+ "encoding/json/jsontext"
+ "encoding/json/v2"
"fmt"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -93,7 +94,7 @@ func (cr *VMStaticScrape) UnmarshalJSON(src []byte) error {
type pcr VMStaticScrape
type shadow struct {
*pcr
- Spec json.RawMessage `json:"spec"`
+ Spec jsontext.Value `json:"spec"`
}
s := shadow{pcr: (*pcr)(cr)}
if err := json.Unmarshal(src, &s); err != nil {
diff --git a/api/operator/v1beta1/vmuser_types.go b/api/operator/v1beta1/vmuser_types.go
index 16ee822f2d..9d4a556d0b 100644
--- a/api/operator/v1beta1/vmuser_types.go
+++ b/api/operator/v1beta1/vmuser_types.go
@@ -1,7 +1,8 @@
package v1beta1
import (
- "encoding/json"
+ "encoding/json/jsontext"
+ "encoding/json/v2"
"fmt"
"strings"
@@ -136,7 +137,7 @@ type TargetRef struct {
Paths []string `json:"paths,omitempty"`
Hosts []string `json:"hosts,omitempty"`
- URLMapCommon `json:",omitempty"`
+ URLMapCommon `json:",inline"`
// TargetPathSuffix allows to add some suffix to the target path
// It allows to hide tenant configuration from user with crd as ref.
@@ -386,7 +387,7 @@ func (cr *VMUser) UnmarshalJSON(src []byte) error {
type pcr VMUser
type shadow struct {
*pcr
- Spec json.RawMessage `json:"spec"`
+ Spec jsontext.Value `json:"spec"`
}
s := shadow{pcr: (*pcr)(cr)}
if err := json.Unmarshal(src, &s); err != nil {
diff --git a/api/operator/v1beta1/zz_generated.deepcopy.go b/api/operator/v1beta1/zz_generated.deepcopy.go
index cbd6afb1e9..821f2383bc 100644
--- a/api/operator/v1beta1/zz_generated.deepcopy.go
+++ b/api/operator/v1beta1/zz_generated.deepcopy.go
@@ -3231,11 +3231,6 @@ func (in *Receiver) DeepCopy() *Receiver {
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *RelabelConfig) DeepCopyInto(out *RelabelConfig) {
*out = *in
- if in.UnderScoreSourceLabels != nil {
- in, out := &in.UnderScoreSourceLabels, &out.UnderScoreSourceLabels
- *out = make([]string, len(*in))
- copy(*out, *in)
- }
if in.SourceLabels != nil {
in, out := &in.SourceLabels, &out.SourceLabels
*out = make([]string, len(*in))
diff --git a/cmd/config-reloader/k8s_watch.go b/cmd/config-reloader/k8s_watch.go
index 7beb63b57c..3b52e60ae1 100644
--- a/cmd/config-reloader/k8s_watch.go
+++ b/cmd/config-reloader/k8s_watch.go
@@ -34,7 +34,7 @@ type syncEvent struct {
obj *corev1.Secret
}
-func newKubernetesWatcher(ctx context.Context, secretName, namespace string) (*k8sWatcher, error) {
+func newKubernetesWatcher(secretName, namespace string) (*k8sWatcher, error) {
lr := clientcmd.NewDefaultClientConfigLoadingRules()
cfg := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(lr, &clientcmd.ConfigOverrides{})
@@ -47,7 +47,7 @@ func newKubernetesWatcher(ctx context.Context, secretName, namespace string) (*k
return nil, fmt.Errorf("cannot start watch for secret: %w", err)
}
inf := cache.NewSharedIndexInformer(&cache.ListWatch{
- ListWithContextFunc: func(_ context.Context, options metav1.ListOptions) (runtime.Object, error) {
+ ListWithContextFunc: func(ctx context.Context, options metav1.ListOptions) (runtime.Object, error) {
var s corev1.SecretList
listOpts := &client.ListOptions{
Namespace: namespace,
@@ -61,7 +61,7 @@ func newKubernetesWatcher(ctx context.Context, secretName, namespace string) (*k
return &s, nil
},
- WatchFuncWithContext: func(_ context.Context, options metav1.ListOptions) (watch.Interface, error) {
+ WatchFuncWithContext: func(ctx context.Context, options metav1.ListOptions) (watch.Interface, error) {
listOpts := &client.ListOptions{
Namespace: namespace,
FieldSelector: fields.OneTermEqualSelector("metadata.name", secretName),
diff --git a/cmd/config-reloader/main.go b/cmd/config-reloader/main.go
index 1a8fdde21c..4c4d04f2bb 100644
--- a/cmd/config-reloader/main.go
+++ b/cmd/config-reloader/main.go
@@ -104,7 +104,7 @@ func main() {
r := reloader{
c: buildHTTPClient(),
}
- configWatcher, err := newConfigWatcher(ctx)
+ configWatcher, err := newConfigWatcher()
if err != nil {
logger.Fatalf("cannot create configWatcher: %s", err)
}
@@ -352,7 +352,7 @@ func (ew *emptyWatcher) start(_ context.Context, _ chan struct{}) {}
func (ew *emptyWatcher) close() {}
-func newConfigWatcher(ctx context.Context) (watcher, error) {
+func newConfigWatcher() (watcher, error) {
var w watcher
if *configFileName == "" && *configSecretName == "" {
logger.Infof("direct config watch not needed, both configFileName and configSecretName is empty")
@@ -383,7 +383,7 @@ func newConfigWatcher(ctx context.Context) (watcher, error) {
namespace := secretNamespaced[:idx]
secretName := secretNamespaced[idx+1:]
logger.Infof("starting watch for secret: %s at namespace: %s", secretName, namespace)
- kw, err := newKubernetesWatcher(ctx, secretName, namespace)
+ kw, err := newKubernetesWatcher(secretName, namespace)
if err != nil {
return nil, fmt.Errorf("cannot create kubernetes watcher: %w", err)
}
diff --git a/config/crd/overlay/crd.descriptionless.yaml b/config/crd/overlay/crd.descriptionless.yaml
index d089ae1a44..7fbb648d19 100644
--- a/config/crd/overlay/crd.descriptionless.yaml
+++ b/config/crd/overlay/crd.descriptionless.yaml
@@ -9908,19 +9908,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
globalScrapeRelabelConfigs:
items:
@@ -9944,19 +9939,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
host_aliases:
items:
@@ -10383,19 +10373,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
inlineScrapeConfig:
type: string
@@ -10699,19 +10684,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
nodeScrapeSelector:
properties:
@@ -10839,19 +10819,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
podScrapeSelector:
properties:
@@ -10934,19 +10909,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
probeSelector:
properties:
@@ -11089,19 +11059,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
maxDiskUsage:
x-kubernetes-preserve-unknown-fields: true
@@ -11170,6 +11135,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
type: string
queues:
@@ -11256,19 +11222,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
interval:
type: string
@@ -11300,19 +11261,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
outputs:
items:
@@ -11616,19 +11572,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
name:
minLength: 1
@@ -11698,6 +11649,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
relabelConfigs:
items:
properties:
@@ -11720,19 +11672,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
tlsConfig:
properties:
@@ -11821,6 +11768,7 @@ spec:
required:
- name
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
x-kubernetes-list-map-keys:
- name
@@ -11873,19 +11821,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
scrapeConfigSelector:
properties:
@@ -11978,19 +11921,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
serviceScrapeSelector:
properties:
@@ -12331,19 +12269,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
staticScrapeSelector:
properties:
@@ -12449,19 +12382,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
interval:
type: string
@@ -12493,19 +12421,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
outputs:
items:
@@ -12743,6 +12666,7 @@ spec:
required:
- remoteWrite
type: object
+ x-kubernetes-preserve-unknown-fields: true
status:
properties:
conditions:
@@ -12866,6 +12790,7 @@ spec:
type: string
type: array
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
receivers:
items:
@@ -13043,6 +12968,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyConnectHeader:
additionalProperties:
items:
@@ -13150,6 +13076,7 @@ spec:
type: string
type: object
type: object
+ x-kubernetes-preserve-unknown-fields: true
message:
type: string
send_resolved:
@@ -13174,6 +13101,7 @@ spec:
type: object
x-kubernetes-map-type: atomic
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
email_configs:
items:
@@ -13313,6 +13241,7 @@ spec:
to:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
incidentio_configs:
items:
@@ -13345,6 +13274,7 @@ spec:
url_file:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
jira_configs:
items:
@@ -13386,6 +13316,7 @@ spec:
- issue_type
- project
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
mattermost_configs:
items:
@@ -13413,6 +13344,7 @@ spec:
value:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
footer:
type: string
@@ -13431,6 +13363,7 @@ spec:
title_link:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
channel:
type: string
@@ -13449,11 +13382,13 @@ spec:
requested_ack:
type: boolean
type: object
+ x-kubernetes-preserve-unknown-fields: true
props:
properties:
card:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
send_resolved:
type: boolean
text:
@@ -13478,6 +13413,7 @@ spec:
required:
- text
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
msteams_configs:
items:
@@ -13647,6 +13583,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyConnectHeader:
additionalProperties:
items:
@@ -13754,6 +13691,7 @@ spec:
type: string
type: object
type: object
+ x-kubernetes-preserve-unknown-fields: true
send_resolved:
type: boolean
text:
@@ -13776,6 +13714,7 @@ spec:
type: object
x-kubernetes-map-type: atomic
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
msteamsv2_configs:
items:
@@ -13804,6 +13743,7 @@ spec:
type: object
x-kubernetes-map-type: atomic
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
name:
minLength: 1
@@ -13860,6 +13800,7 @@ spec:
required:
- type
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
send_resolved:
type: boolean
@@ -13870,6 +13811,7 @@ spec:
update_alerts:
type: boolean
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
pagerduty_configs:
items:
@@ -13905,6 +13847,7 @@ spec:
required:
- source
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
links:
items:
@@ -13916,6 +13859,7 @@ spec:
required:
- href
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
routing_key:
properties:
@@ -13950,6 +13894,7 @@ spec:
url:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
pushover_configs:
items:
@@ -14004,6 +13949,7 @@ spec:
type: object
x-kubernetes-map-type: atomic
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
rocketchat_configs:
items:
@@ -14020,6 +13966,7 @@ spec:
url:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
api_url:
type: string
@@ -14039,6 +13986,7 @@ spec:
value:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
http_config:
x-kubernetes-preserve-unknown-fields: true
@@ -14087,6 +14035,7 @@ spec:
type: object
x-kubernetes-map-type: atomic
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
slack_configs:
items:
@@ -14108,6 +14057,7 @@ spec:
required:
- text
type: object
+ x-kubernetes-preserve-unknown-fields: true
name:
type: string
style:
@@ -14126,6 +14076,7 @@ spec:
- text
- type
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
api_url:
properties:
@@ -14163,6 +14114,7 @@ spec:
- title
- value
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
footer:
type: string
@@ -14200,6 +14152,7 @@ spec:
username:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
sns_configs:
items:
@@ -14375,6 +14328,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyConnectHeader:
additionalProperties:
items:
@@ -14482,6 +14436,7 @@ spec:
type: string
type: object
type: object
+ x-kubernetes-preserve-unknown-fields: true
message:
type: string
phone_number:
@@ -14525,6 +14480,7 @@ spec:
type: object
x-kubernetes-map-type: atomic
type: object
+ x-kubernetes-preserve-unknown-fields: true
subject:
type: string
target_arn:
@@ -14532,6 +14488,7 @@ spec:
topic_arn:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
telegram_configs:
items:
@@ -14570,6 +14527,7 @@ spec:
- bot_token
- chat_id
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
victorops_configs:
items:
@@ -14760,6 +14718,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyConnectHeader:
additionalProperties:
items:
@@ -14867,6 +14826,7 @@ spec:
type: string
type: object
type: object
+ x-kubernetes-preserve-unknown-fields: true
message_type:
type: string
monitoring_tool:
@@ -14880,6 +14840,7 @@ spec:
required:
- routing_key
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
webex_configs:
items:
@@ -15051,6 +15012,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyConnectHeader:
additionalProperties:
items:
@@ -15158,6 +15120,7 @@ spec:
type: string
type: object
type: object
+ x-kubernetes-preserve-unknown-fields: true
message:
type: string
room_id:
@@ -15167,6 +15130,7 @@ spec:
required:
- room_id
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
webhook_configs:
items:
@@ -15199,6 +15163,7 @@ spec:
type: object
x-kubernetes-map-type: atomic
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
wechat_configs:
items:
@@ -15387,6 +15352,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyConnectHeader:
additionalProperties:
items:
@@ -15494,6 +15460,7 @@ spec:
type: string
type: object
type: object
+ x-kubernetes-preserve-unknown-fields: true
message:
type: string
message_type:
@@ -15507,10 +15474,12 @@ spec:
to_user:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
required:
- name
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
route:
properties:
@@ -15550,6 +15519,7 @@ spec:
required:
- receiver
type: object
+ x-kubernetes-preserve-unknown-fields: true
time_intervals:
items:
properties:
@@ -15579,6 +15549,7 @@ spec:
- end_time
- start_time
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
weekdays:
items:
@@ -15589,13 +15560,16 @@ spec:
type: string
type: array
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
required:
- name
- time_intervals
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
type: object
+ x-kubernetes-preserve-unknown-fields: true
status:
properties:
conditions:
@@ -30357,19 +30331,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
oauth2:
properties:
@@ -30436,6 +30405,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
params:
additionalProperties:
items:
@@ -30470,19 +30440,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
sampleLimit:
type: integer
@@ -30761,9 +30726,11 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
scrape_align_interval:
type: string
scrape_offset:
@@ -30771,7 +30738,9 @@ spec:
stream_parse:
type: boolean
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
status:
properties:
conditions:
@@ -30994,19 +30963,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
oauth2:
properties:
@@ -31073,6 +31037,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
params:
additionalProperties:
items:
@@ -31112,19 +31077,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
sampleLimit:
type: integer
@@ -31376,9 +31336,11 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
scrape_align_interval:
type: string
scrape_offset:
@@ -31386,7 +31348,9 @@ spec:
stream_parse:
type: boolean
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
podTargetLabels:
items:
@@ -31621,19 +31585,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
module:
type: string
@@ -31702,6 +31661,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
params:
additionalProperties:
items:
@@ -31764,19 +31724,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
role:
enum:
@@ -31846,19 +31801,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
role:
enum:
@@ -31923,19 +31873,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
targets:
items:
@@ -31972,19 +31917,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
targets:
items:
@@ -32224,9 +32164,11 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
scrape_align_interval:
type: string
scrape_offset:
@@ -32234,6 +32176,7 @@ spec:
stream_parse:
type: boolean
type: object
+ x-kubernetes-preserve-unknown-fields: true
vmProberSpec:
properties:
path:
@@ -32251,6 +32194,7 @@ spec:
required:
- vmProberSpec
type: object
+ x-kubernetes-preserve-unknown-fields: true
status:
properties:
conditions:
@@ -32683,6 +32627,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
port:
format: int32
type: integer
@@ -32820,9 +32765,11 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
type: string
resourceGroup:
@@ -33094,6 +33041,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxy_client_config:
properties:
authorization:
@@ -33228,9 +33176,11 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
type: string
scheme:
@@ -33482,6 +33432,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
partition:
type: string
proxy_client_config:
@@ -33618,9 +33569,11 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
type: string
scheme:
@@ -33865,6 +33818,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
port:
format: int32
type: integer
@@ -34002,9 +33956,11 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
type: string
server:
@@ -34259,6 +34215,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
port:
format: int32
type: integer
@@ -34396,9 +34353,11 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
type: string
tlsConfig:
@@ -34625,6 +34584,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
port:
format: int32
type: integer
@@ -34762,9 +34722,11 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
type: string
role:
@@ -35035,6 +34997,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxy_client_config:
properties:
authorization:
@@ -35169,9 +35132,11 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
type: string
server:
@@ -35417,6 +35382,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
port:
format: int32
type: integer
@@ -35554,9 +35520,11 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
type: string
role:
@@ -35779,6 +35747,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxy_client_config:
properties:
authorization:
@@ -35913,9 +35882,11 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
type: string
tlsConfig:
@@ -36151,6 +36122,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxy_client_config:
properties:
authorization:
@@ -36285,9 +36257,11 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
type: string
role:
@@ -36533,6 +36507,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxy_client_config:
properties:
authorization:
@@ -36667,9 +36642,11 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
type: string
server:
@@ -36884,6 +36861,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxy_client_config:
properties:
authorization:
@@ -37018,9 +36996,11 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
type: string
servers:
@@ -37141,19 +37121,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
nomadSDConfigs:
items:
@@ -37280,6 +37255,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxy_client_config:
properties:
authorization:
@@ -37414,9 +37390,11 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
type: string
region:
@@ -37579,6 +37557,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
openstackSDConfigs:
items:
properties:
@@ -37891,6 +37870,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxy_client_config:
properties:
authorization:
@@ -38025,9 +38005,11 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
type: string
service:
@@ -38261,6 +38243,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
port:
format: int32
type: integer
@@ -38398,9 +38381,11 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
type: string
query:
@@ -38518,19 +38503,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
sampleLimit:
type: integer
@@ -38793,9 +38773,11 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
scrape_align_interval:
type: string
scrape_offset:
@@ -38803,6 +38785,7 @@ spec:
stream_parse:
type: boolean
type: object
+ x-kubernetes-preserve-unknown-fields: true
vultrSDConfigs:
items:
properties:
@@ -38932,6 +38915,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
port:
format: int32
type: integer
@@ -39069,9 +39053,11 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
type: string
region:
@@ -39279,6 +39265,7 @@ spec:
type: object
type: array
type: object
+ x-kubernetes-preserve-unknown-fields: true
status:
properties:
conditions:
@@ -39495,19 +39482,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
oauth2:
properties:
@@ -39574,6 +39556,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
params:
additionalProperties:
items:
@@ -39608,19 +39591,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
sampleLimit:
type: integer
@@ -39872,9 +39850,11 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
scrape_align_interval:
type: string
scrape_offset:
@@ -39882,7 +39862,9 @@ spec:
stream_parse:
type: boolean
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
jobLabel:
type: string
@@ -40375,19 +40357,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
globalScrapeRelabelConfigs:
items:
@@ -40411,19 +40388,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
host_aliases:
items:
@@ -40506,19 +40478,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
inlineScrapeConfig:
type: string
@@ -40822,19 +40789,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
nodeScrapeSelector:
properties:
@@ -40933,19 +40895,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
podScrapeSelector:
properties:
@@ -41028,19 +40985,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
probeSelector:
properties:
@@ -41256,19 +41208,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
name:
minLength: 1
@@ -41338,6 +41285,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
relabelConfigs:
items:
properties:
@@ -41360,19 +41308,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
tlsConfig:
properties:
@@ -41461,6 +41404,7 @@ spec:
required:
- name
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
x-kubernetes-list-map-keys:
- name
@@ -41513,19 +41457,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
scrapeConfigSelector:
properties:
@@ -41618,19 +41557,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
serviceScrapeSelector:
properties:
@@ -41735,19 +41669,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
staticScrapeSelector:
properties:
@@ -41956,19 +41885,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
interval:
type: string
@@ -42000,19 +41924,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
outputs:
items:
@@ -42486,6 +42405,7 @@ spec:
type: object
type: object
type: object
+ x-kubernetes-preserve-unknown-fields: true
status:
properties:
conditions:
@@ -42695,19 +42615,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
oauth2:
properties:
@@ -42774,6 +42689,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
params:
additionalProperties:
items:
@@ -42806,19 +42722,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
sampleLimit:
type: integer
@@ -43070,9 +42981,11 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
scrape_align_interval:
type: string
scrape_offset:
@@ -43080,9 +42993,11 @@ spec:
stream_parse:
type: boolean
type: object
+ x-kubernetes-preserve-unknown-fields: true
required:
- targets
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
required:
- targetEndpoints
@@ -44702,19 +44617,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
oauth2:
properties:
@@ -44781,6 +44691,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
params:
additionalProperties:
items:
@@ -44815,19 +44726,14 @@ spec:
type: string
separator:
type: string
- source_labels:
- items:
- type: string
- type: array
sourceLabels:
items:
type: string
type: array
- target_label:
- type: string
targetLabel:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
sampleLimit:
type: integer
@@ -45079,9 +44985,11 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
scrape_align_interval:
type: string
scrape_offset:
@@ -45089,7 +44997,9 @@ spec:
stream_parse:
type: boolean
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
jobLabel:
type: string
diff --git a/config/crd/overlay/crd.yaml b/config/crd/overlay/crd.yaml
index 01463fb896..db2a880726 100644
--- a/config/crd/overlay/crd.yaml
+++ b/config/crd/overlay/crd.yaml
@@ -20020,15 +20020,6 @@ spec:
description: Separator placed between concatenated source label
values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -20037,19 +20028,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
globalScrapeRelabelConfigs:
description: GlobalScrapeRelabelConfigs is a global relabel configuration,
@@ -20098,15 +20083,6 @@ spec:
description: Separator placed between concatenated source label
values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -20115,19 +20091,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
host_aliases:
description: |-
@@ -20914,15 +20884,6 @@ spec:
description: Separator placed between concatenated source label
values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -20931,19 +20892,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
inlineScrapeConfig:
description: |-
@@ -21564,15 +21519,6 @@ spec:
description: Separator placed between concatenated source label
values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -21581,19 +21527,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
nodeScrapeSelector:
description: |-
@@ -21858,15 +21798,6 @@ spec:
description: Separator placed between concatenated source label
values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -21875,19 +21806,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
podScrapeSelector:
description: |-
@@ -22051,15 +21976,6 @@ spec:
description: Separator placed between concatenated source label
values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -22068,19 +21984,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
probeSelector:
description: |-
@@ -22366,15 +22276,6 @@ spec:
description: Separator placed between concatenated source
label values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -22383,19 +22284,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
maxDiskUsage:
description: |-
@@ -22516,6 +22411,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
description: 'ProxyURL for -remoteWrite.url. Supported proxies:
http, https, socks5. Example: socks5://proxy:1234'
@@ -22691,15 +22587,6 @@ spec:
description: Separator placed between concatenated
source label values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -22708,19 +22595,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
interval:
description: Interval is the interval between aggregations.
@@ -22788,15 +22669,6 @@ spec:
description: Separator placed between concatenated
source label values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -22805,19 +22677,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
outputs:
description: |-
@@ -23427,15 +23293,6 @@ spec:
description: Separator placed between concatenated source
label values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -23444,19 +23301,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
name:
description: name of the scrape class.
@@ -23576,6 +23427,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
relabelConfigs:
description: RelabelConfigs to apply to samples during service
discovery.
@@ -23622,15 +23474,6 @@ spec:
description: Separator placed between concatenated source
label values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -23639,19 +23482,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
tlsConfig:
description: TLSConfig configuration to use when scraping the
@@ -23814,6 +23651,7 @@ spec:
required:
- name
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
x-kubernetes-list-map-keys:
- name
@@ -23916,15 +23754,6 @@ spec:
description: Separator placed between concatenated source label
values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -23933,19 +23762,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
scrapeConfigSelector:
description: |-
@@ -24126,15 +23949,6 @@ spec:
description: Separator placed between concatenated source label
values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -24143,19 +23957,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
serviceScrapeSelector:
description: |-
@@ -24920,15 +24728,6 @@ spec:
description: Separator placed between concatenated source label
values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -24937,19 +24736,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
staticScrapeSelector:
description: |-
@@ -25159,15 +24952,6 @@ spec:
description: Separator placed between concatenated
source label values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -25176,19 +24960,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
interval:
description: Interval is the interval between aggregations.
@@ -25255,15 +25033,6 @@ spec:
description: Separator placed between concatenated
source label values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -25272,19 +25041,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
outputs:
description: |-
@@ -25765,6 +25528,7 @@ spec:
required:
- remoteWrite
type: object
+ x-kubernetes-preserve-unknown-fields: true
status:
description: VMAgentStatus defines the observed state of VMAgent
properties:
@@ -25954,6 +25718,7 @@ spec:
type: string
type: array
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
receivers:
description: Receivers defines alert receivers
@@ -26289,6 +26054,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyConnectHeader:
additionalProperties:
items:
@@ -26493,6 +26259,7 @@ spec:
type: string
type: object
type: object
+ x-kubernetes-preserve-unknown-fields: true
message:
description: The message body template
type: string
@@ -26541,6 +26308,7 @@ spec:
type: object
x-kubernetes-map-type: atomic
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
email_configs:
description: EmailConfigs defines email notification configurations.
@@ -26802,13 +26570,15 @@ spec:
description: The email address to send notifications to.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
incidentio_configs:
items:
description: |-
IncidentioConfig configures notifications via incident.io.
https://prometheus.io/docs/alerting/latest/configuration/#incidentio_config
- Available from v0.29.0 alertmanager version
+ available from v0.66.0 operator version
+ and v0.29.0 alertmanager version
properties:
alert_source_token:
description: |-
@@ -26867,13 +26637,15 @@ spec:
Mutually exclusive with URL.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
jira_configs:
items:
description: |-
JiraConfig represent alertmanager's jira_config entry
https://prometheus.io/docs/alerting/latest/configuration/#jira_config
- Available from v0.28.0 alertmanager version
+ available from v0.55.0 operator version
+ and v0.28.0 alertmanager version
properties:
api_url:
description: |-
@@ -26943,6 +26715,7 @@ spec:
- issue_type
- project
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
mattermost_configs:
description: MattermostConfigs defines Mattermost notification
@@ -26975,6 +26748,7 @@ spec:
value:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
footer:
type: string
@@ -26993,6 +26767,7 @@ spec:
title_link:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
channel:
description: Channel overrides the channel the message
@@ -27017,11 +26792,13 @@ spec:
requested_ack:
type: boolean
type: object
+ x-kubernetes-preserve-unknown-fields: true
props:
properties:
card:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
send_resolved:
description: SendResolved controls notify about resolved
alerts.
@@ -27069,6 +26846,7 @@ spec:
required:
- text
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
msteams_configs:
items:
@@ -27388,6 +27166,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyConnectHeader:
additionalProperties:
items:
@@ -27592,6 +27371,7 @@ spec:
type: string
type: object
type: object
+ x-kubernetes-preserve-unknown-fields: true
send_resolved:
description: SendResolved controls notify about resolved
alerts.
@@ -27635,13 +27415,15 @@ spec:
type: object
x-kubernetes-map-type: atomic
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
msteamsv2_configs:
items:
description: |-
MSTeamsV2Config sends notifications using the new message format with adaptive cards as required by flows.
https://support.microsoft.com/en-gb/office/create-incoming-webhooks-with-workflows-for-microsoft-teams-8ae491c7-0394-4861-ba59-055e33f75498
- Available from v0.28.0 alertmanager version
+ available from v0.55.0 operator version
+ and v0.28.0 alertmanager version
properties:
http_config:
x-kubernetes-preserve-unknown-fields: true
@@ -27688,6 +27470,7 @@ spec:
type: object
x-kubernetes-map-type: atomic
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
name:
description: Name of the receiver. Must be unique across all
@@ -27786,6 +27569,7 @@ spec:
required:
- type
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
send_resolved:
description: SendResolved controls notify about resolved
@@ -27804,6 +27588,7 @@ spec:
By default, the alert is never updated in OpsGenie, the new message only appears in activity log.
type: boolean
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
pagerduty_configs:
description: PagerDutyConfigs defines pager duty notification
@@ -27859,6 +27644,7 @@ spec:
required:
- source
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
links:
description: Links to attach to the incident.
@@ -27875,6 +27661,7 @@ spec:
required:
- href
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
routing_key:
description: |-
@@ -27942,6 +27729,7 @@ spec:
description: The URL to send requests to.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
pushover_configs:
description: PushoverConfigs defines push over notification
@@ -28047,13 +27835,15 @@ spec:
type: object
x-kubernetes-map-type: atomic
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
rocketchat_configs:
items:
description: |-
RocketchatConfig configures notifications via Rocketchat.
https://prometheus.io/docs/alerting/latest/configuration/#rocketchat_config
- Available from v0.28.0 alertmanager version
+ available from v0.55.0 operator version
+ and v0.28.0 alertmanager version
properties:
actions:
items:
@@ -28070,6 +27860,7 @@ spec:
url:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
api_url:
type: string
@@ -28094,6 +27885,7 @@ spec:
value:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
http_config:
x-kubernetes-preserve-unknown-fields: true
@@ -28168,6 +27960,7 @@ spec:
type: object
x-kubernetes-map-type: atomic
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
slack_configs:
description: SlackConfigs defines slack notification configurations.
@@ -28206,6 +27999,7 @@ spec:
required:
- text
type: object
+ x-kubernetes-preserve-unknown-fields: true
name:
type: string
style:
@@ -28224,6 +28018,7 @@ spec:
- text
- type
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
api_url:
description: |-
@@ -28282,6 +28077,7 @@ spec:
- title
- value
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
footer:
type: string
@@ -28326,6 +28122,7 @@ spec:
username:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
sns_configs:
items:
@@ -28653,6 +28450,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyConnectHeader:
additionalProperties:
items:
@@ -28857,6 +28655,7 @@ spec:
type: string
type: object
type: object
+ x-kubernetes-preserve-unknown-fields: true
message:
description: The message content of the SNS notification.
type: string
@@ -28940,6 +28739,7 @@ spec:
type: object
x-kubernetes-map-type: atomic
type: object
+ x-kubernetes-preserve-unknown-fields: true
subject:
description: The subject line if message is delivered
to an email endpoint.
@@ -28954,6 +28754,7 @@ spec:
or target_arn
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
telegram_configs:
items:
@@ -29021,6 +28822,7 @@ spec:
- bot_token
- chat_id
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
victorops_configs:
description: VictorOpsConfigs defines victor ops notification
@@ -29385,6 +29187,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyConnectHeader:
additionalProperties:
items:
@@ -29589,6 +29392,7 @@ spec:
type: string
type: object
type: object
+ x-kubernetes-preserve-unknown-fields: true
message_type:
description: Describes the behavior of the alert (CRITICAL,
WARNING, INFO).
@@ -29611,6 +29415,7 @@ spec:
required:
- routing_key
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
webex_configs:
items:
@@ -29935,6 +29740,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyConnectHeader:
additionalProperties:
items:
@@ -30139,6 +29945,7 @@ spec:
type: string
type: object
type: object
+ x-kubernetes-preserve-unknown-fields: true
message:
description: The message body template
type: string
@@ -30153,6 +29960,7 @@ spec:
required:
- room_id
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
webhook_configs:
description: WebhookConfigs defines webhook notification configurations.
@@ -30214,6 +30022,7 @@ spec:
type: object
x-kubernetes-map-type: atomic
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
wechat_configs:
description: WechatConfigs defines wechat notification configurations.
@@ -30576,6 +30385,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyConnectHeader:
additionalProperties:
items:
@@ -30780,6 +30590,7 @@ spec:
type: string
type: object
type: object
+ x-kubernetes-preserve-unknown-fields: true
message:
description: API request data as defined by the WeChat
API.
@@ -30797,10 +30608,12 @@ spec:
to_user:
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
required:
- name
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
route:
description: Route definition for alertmanager, may include nested
@@ -30862,6 +30675,7 @@ spec:
required:
- receiver
type: object
+ x-kubernetes-preserve-unknown-fields: true
time_intervals:
description: |-
TimeIntervals defines named interval for active/mute notifications interval
@@ -30911,6 +30725,7 @@ spec:
- end_time
- start_time
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
weekdays:
description: Weekdays defines list of days of the week,
@@ -30926,13 +30741,16 @@ spec:
type: string
type: array
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
required:
- name
- time_intervals
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
type: object
+ x-kubernetes-preserve-unknown-fields: true
status:
description: VMAlertmanagerConfigStatus defines the observed state of
VMAlertmanagerConfig
@@ -60508,15 +60326,6 @@ spec:
description: Separator placed between concatenated source label
values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -60525,19 +60334,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
oauth2:
description: OAuth2 defines auth configuration
@@ -60651,6 +60454,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
params:
additionalProperties:
items:
@@ -60713,15 +60517,6 @@ spec:
description: Separator placed between concatenated source label
values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -60730,19 +60525,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
sampleLimit:
description: SampleLimit defines per-scrape limit on number of scraped
@@ -61250,11 +61039,13 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
description: TLSConfig configuration to use when scraping
the endpoint
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
scrape_align_interval:
type: string
scrape_offset:
@@ -61262,7 +61053,9 @@ spec:
stream_parse:
type: boolean
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
status:
description: ScrapeObjectStatus defines the observed state of ScrapeObjects
properties:
@@ -61652,15 +61445,6 @@ spec:
description: Separator placed between concatenated source
label values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -61669,19 +61453,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
oauth2:
description: OAuth2 defines auth configuration
@@ -61797,6 +61575,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
params:
additionalProperties:
items:
@@ -61867,15 +61646,6 @@ spec:
description: Separator placed between concatenated source
label values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -61884,19 +61654,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
sampleLimit:
description: SampleLimit defines per-scrape limit on number
@@ -62365,11 +62129,13 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
description: TLSConfig configuration to use when scraping
the endpoint
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
scrape_align_interval:
type: string
scrape_offset:
@@ -62377,7 +62143,9 @@ spec:
stream_parse:
type: boolean
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
podTargetLabels:
description: PodTargetLabels transfers labels on the Kubernetes Pod
@@ -62776,15 +62544,6 @@ spec:
description: Separator placed between concatenated source label
values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -62793,19 +62552,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
module:
description: |-
@@ -62925,6 +62678,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
params:
additionalProperties:
items:
@@ -63035,15 +62789,6 @@ spec:
description: Separator placed between concatenated source
label values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -63052,19 +62797,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
role:
description: Role defines k8s role name
@@ -63188,15 +62927,6 @@ spec:
description: Separator placed between concatenated
source label values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -63205,19 +62935,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
role:
description: Role defines k8s role name
@@ -63331,15 +63055,6 @@ spec:
description: Separator placed between concatenated source
label values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -63348,19 +63063,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
targets:
description: Targets is a list of URLs to probe using the
@@ -63427,15 +63136,6 @@ spec:
description: Separator placed between concatenated source
label values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -63444,19 +63144,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
targets:
description: Targets is a list of URLs to probe using the
@@ -63894,11 +63588,13 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
description: TLSConfig configuration to use when scraping
the endpoint
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
scrape_align_interval:
type: string
scrape_offset:
@@ -63906,6 +63602,7 @@ spec:
stream_parse:
type: boolean
type: object
+ x-kubernetes-preserve-unknown-fields: true
vmProberSpec:
description: |-
Specification for the prober to use for probing targets.
@@ -63933,6 +63630,7 @@ spec:
required:
- vmProberSpec
type: object
+ x-kubernetes-preserve-unknown-fields: true
status:
description: ScrapeObjectStatus defines the observed state of ScrapeObjects
properties:
@@ -64654,6 +64352,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
port:
description: |-
The port to scrape metrics from. If using the public IP address, this must
@@ -64910,11 +64609,13 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
description: TLSConfig configuration to use when scraping
the endpoint
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
description: ProxyURL eg http://proxyserver:2195 Directs scrapes
to proxy through this endpoint.
@@ -65417,6 +65118,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxy_client_config:
description: |-
ProxyClientConfig configures proxy auth settings for scraping
@@ -65667,11 +65369,13 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
description: TLSConfig configuration to use when scraping
the endpoint
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
description: ProxyURL eg http://proxyserver:2195 Directs scrapes
to proxy through this endpoint.
@@ -66128,6 +65832,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
partition:
description: Admin Partitions are only supported in Consul Enterprise.
type: string
@@ -66381,11 +66086,13 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
description: TLSConfig configuration to use when scraping
the endpoint
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
description: ProxyURL eg http://proxyserver:2195 Directs scrapes
to proxy through this endpoint.
@@ -66828,6 +66535,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
port:
description: The port to scrape metrics from.
format: int32
@@ -67082,11 +66790,13 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
description: TLSConfig configuration to use when scraping
the endpoint
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
description: ProxyURL eg http://proxyserver:2195 Directs scrapes
to proxy through this endpoint.
@@ -67542,6 +67252,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
port:
description: Port to scrape metrics from, when containers expose
multiple ports.
@@ -67797,11 +67508,13 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
description: TLSConfig configuration to use when scraping
the endpoint
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
description: ProxyURL eg http://proxyserver:2195 Directs scrapes
to proxy through this endpoint.
@@ -68210,6 +67923,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
port:
description: Port to scrape metrics from, when containers expose
multiple ports.
@@ -68465,11 +68179,13 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
description: TLSConfig configuration to use when scraping
the endpoint
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
description: ProxyURL eg http://proxyserver:2195 Directs scrapes
to proxy through this endpoint.
@@ -68957,6 +68673,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxy_client_config:
description: |-
ProxyClientConfig configures proxy auth settings for scraping
@@ -69207,11 +68924,13 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
description: TLSConfig configuration to use when scraping
the endpoint
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
description: ProxyURL eg http://proxyserver:2195 Directs scrapes
to proxy through this endpoint.
@@ -69665,6 +69384,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
port:
description: Port is an optional port to scrape metrics from
format: int32
@@ -69919,11 +69639,13 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
description: TLSConfig configuration to use when scraping
the endpoint
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
description: ProxyURL eg http://proxyserver:2195 Directs scrapes
to proxy through this endpoint.
@@ -70327,6 +70049,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxy_client_config:
description: |-
ProxyClientConfig configures proxy auth settings for scraping
@@ -70577,11 +70300,13 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
description: TLSConfig configuration to use when scraping
the endpoint
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
description: ProxyURL eg http://proxyserver:2195 Directs scrapes
to proxy through this endpoint.
@@ -71015,6 +70740,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxy_client_config:
description: |-
ProxyClientConfig configures proxy auth settings for scraping
@@ -71265,11 +70991,13 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
description: TLSConfig configuration to use when scraping
the endpoint
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
description: ProxyURL eg http://proxyserver:2195 Directs scrapes
to proxy through this endpoint.
@@ -71698,6 +71426,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxy_client_config:
description: |-
ProxyClientConfig configures proxy auth settings for scraping
@@ -71948,11 +71677,13 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
description: TLSConfig configuration to use when scraping
the endpoint
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
description: ProxyURL eg http://proxyserver:2195 Directs scrapes
to proxy through this endpoint.
@@ -72344,6 +72075,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxy_client_config:
description: |-
ProxyClientConfig configures proxy auth settings for scraping
@@ -72594,11 +72326,13 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
description: TLSConfig configuration to use when scraping
the endpoint
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
description: ProxyURL eg http://proxyserver:2195 Directs scrapes
to proxy through this endpoint.
@@ -72820,15 +72554,6 @@ spec:
description: Separator placed between concatenated source label
values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -72837,19 +72562,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
nomadSDConfigs:
description: NomadSDConfigs defines a list of Nomad service discovery
@@ -73080,6 +72799,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxy_client_config:
description: |-
ProxyClientConfig configures proxy auth settings for scraping
@@ -73330,11 +73050,13 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
description: TLSConfig configuration to use when scraping
the endpoint
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
description: ProxyURL eg http://proxyserver:2195 Directs scrapes
to proxy through this endpoint.
@@ -73625,6 +73347,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
openstackSDConfigs:
description: OpenStackSDConfigs defines a list of OpenStack service
discovery configurations.
@@ -74199,6 +73922,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxy_client_config:
description: |-
ProxyClientConfig configures proxy auth settings for scraping
@@ -74449,11 +74173,13 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
description: TLSConfig configuration to use when scraping
the endpoint
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
description: ProxyURL eg http://proxyserver:2195 Directs scrapes
to proxy through this endpoint.
@@ -74869,6 +74595,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
port:
description: Port defines port to scrape metrics from
format: int32
@@ -75123,11 +74850,13 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
description: TLSConfig configuration to use when scraping
the endpoint
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
description: ProxyURL eg http://proxyserver:2195 Directs scrapes
to proxy through this endpoint.
@@ -75346,15 +75075,6 @@ spec:
description: Separator placed between concatenated source label
values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -75363,19 +75083,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
sampleLimit:
description: SampleLimit defines per-scrape limit on number of scraped
@@ -75853,11 +75567,13 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
description: TLSConfig configuration to use when scraping
the endpoint
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
scrape_align_interval:
type: string
scrape_offset:
@@ -75865,6 +75581,7 @@ spec:
stream_parse:
type: boolean
type: object
+ x-kubernetes-preserve-unknown-fields: true
vultrSDConfigs:
description: VultrSDConfigs defines a list of Vultr service discovery
configurations.
@@ -76102,6 +75819,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
port:
description: Port is an optional port to scrape metrics from.
format: int32
@@ -76356,11 +76074,13 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
description: TLSConfig configuration to use when scraping
the endpoint
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
proxyURL:
description: ProxyURL eg http://proxyserver:2195 Directs scrapes
to proxy through this endpoint.
@@ -76740,6 +76460,7 @@ spec:
type: object
type: array
type: object
+ x-kubernetes-preserve-unknown-fields: true
status:
description: ScrapeObjectStatus defines the observed state of ScrapeObjects
properties:
@@ -77118,15 +76839,6 @@ spec:
description: Separator placed between concatenated source
label values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -77135,19 +76847,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
oauth2:
description: OAuth2 defines auth configuration
@@ -77263,6 +76969,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
params:
additionalProperties:
items:
@@ -77326,15 +77033,6 @@ spec:
description: Separator placed between concatenated source
label values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -77343,19 +77041,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
sampleLimit:
description: SampleLimit defines per-scrape limit on number
@@ -77824,11 +77516,13 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
description: TLSConfig configuration to use when scraping
the endpoint
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
scrape_align_interval:
type: string
scrape_offset:
@@ -77836,7 +77530,9 @@ spec:
stream_parse:
type: boolean
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
jobLabel:
description: The label to use to retrieve the job name from.
@@ -78745,15 +78441,6 @@ spec:
description: Separator placed between concatenated source label
values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -78762,19 +78449,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
globalScrapeRelabelConfigs:
description: GlobalScrapeRelabelConfigs is a global relabel configuration,
@@ -78823,15 +78504,6 @@ spec:
description: Separator placed between concatenated source label
values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -78840,19 +78512,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
host_aliases:
description: |-
@@ -79018,15 +78684,6 @@ spec:
description: Separator placed between concatenated source label
values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -79035,19 +78692,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
inlineScrapeConfig:
description: |-
@@ -79667,15 +79318,6 @@ spec:
description: Separator placed between concatenated source label
values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -79684,19 +79326,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
nodeScrapeSelector:
description: |-
@@ -79899,15 +79535,6 @@ spec:
description: Separator placed between concatenated source label
values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -79916,19 +79543,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
podScrapeSelector:
description: |-
@@ -80092,15 +79713,6 @@ spec:
description: Separator placed between concatenated source label
values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -80109,19 +79721,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
probeSelector:
description: |-
@@ -80546,15 +80152,6 @@ spec:
description: Separator placed between concatenated source
label values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -80563,19 +80160,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
name:
description: name of the scrape class.
@@ -80695,6 +80286,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
relabelConfigs:
description: RelabelConfigs to apply to samples during service
discovery.
@@ -80741,15 +80333,6 @@ spec:
description: Separator placed between concatenated source
label values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -80758,19 +80341,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
tlsConfig:
description: TLSConfig configuration to use when scraping the
@@ -80933,6 +80510,7 @@ spec:
required:
- name
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
x-kubernetes-list-map-keys:
- name
@@ -81035,15 +80613,6 @@ spec:
description: Separator placed between concatenated source label
values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -81052,19 +80621,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
scrapeConfigSelector:
description: |-
@@ -81245,15 +80808,6 @@ spec:
description: Separator placed between concatenated source label
values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -81262,19 +80816,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
serviceScrapeSelector:
description: |-
@@ -81483,15 +81031,6 @@ spec:
description: Separator placed between concatenated source label
values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -81500,19 +81039,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
staticScrapeSelector:
description: |-
@@ -81957,15 +81490,6 @@ spec:
description: Separator placed between concatenated
source label values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -81974,19 +81498,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
interval:
description: Interval is the interval between aggregations.
@@ -82053,15 +81571,6 @@ spec:
description: Separator placed between concatenated
source label values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -82070,19 +81579,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
outputs:
description: |-
@@ -83029,6 +82532,7 @@ spec:
type: object
type: object
type: object
+ x-kubernetes-preserve-unknown-fields: true
status:
description: VMSingleStatus defines the observed state of VMSingle
properties:
@@ -83382,15 +82886,6 @@ spec:
description: Separator placed between concatenated source
label values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -83399,19 +82894,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
oauth2:
description: OAuth2 defines auth configuration
@@ -83527,6 +83016,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
params:
additionalProperties:
items:
@@ -83587,15 +83077,6 @@ spec:
description: Separator placed between concatenated source
label values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -83604,19 +83085,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
sampleLimit:
description: SampleLimit defines per-scrape limit on number
@@ -84083,11 +83558,13 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
description: TLSConfig configuration to use when scraping
the endpoint
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
scrape_align_interval:
type: string
scrape_offset:
@@ -84095,9 +83572,11 @@ spec:
stream_parse:
type: boolean
type: object
+ x-kubernetes-preserve-unknown-fields: true
required:
- targets
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
required:
- targetEndpoints
@@ -87167,15 +86646,6 @@ spec:
description: Separator placed between concatenated
source label values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -87184,19 +86654,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
oauth2:
description: OAuth2 defines auth configuration
@@ -87314,6 +86778,7 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
params:
additionalProperties:
items:
@@ -87377,15 +86842,6 @@ spec:
description: Separator placed between concatenated
source label values. default is ';'.
type: string
- source_labels:
- description: |-
- UnderScoreSourceLabels - additional form of source labels source_labels
- for compatibility with original relabel config.
- if set both sourceLabels and source_labels, sourceLabels has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- items:
- type: string
- type: array
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is concatenated
@@ -87394,19 +86850,13 @@ spec:
items:
type: string
type: array
- target_label:
- description: |-
- UnderScoreTargetLabel - additional form of target label - target_label
- for compatibility with original relabel config.
- if set both targetLabel and target_label, targetLabel has priority.
- for details https://github.com/VictoriaMetrics/operator/issues/131
- type: string
targetLabel:
description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
type: string
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
sampleLimit:
description: SampleLimit defines per-scrape limit on number
@@ -87881,11 +87331,13 @@ spec:
- client_id
- token_url
type: object
+ x-kubernetes-preserve-unknown-fields: true
tls_config:
description: TLSConfig configuration to use when
scraping the endpoint
x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
scrape_align_interval:
type: string
scrape_offset:
@@ -87893,7 +87345,9 @@ spec:
stream_parse:
type: boolean
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: object
+ x-kubernetes-preserve-unknown-fields: true
type: array
jobLabel:
description: The label to use to retrieve the job name from.
diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md
index b1323c8676..da46d7de7e 100644
--- a/docs/CHANGELOG.md
+++ b/docs/CHANGELOG.md
@@ -25,6 +25,7 @@ aliases:
* FEATURE: [vtagent](https://docs.victoriametrics.com/operator/resources/vtagent/), [vtsingle](https://docs.victoriametrics.com/operator/resources/vtsingle/), [vtcluster](https://docs.victoriametrics.com/operator/resources/vtcluster/): add `grpcSpec` field (`spec.insert.grpcSpec` for `VTCluster`) to accept OTLP trace spans over gRPC in addition to HTTP, with optional TLS via `tlsConfig`. See [#2510](https://github.com/VictoriaMetrics/operator/pull/2510).
* FEATURE: [vlagent](https://docs.victoriametrics.com/operator/resources/vlagent/), [vlsingle](https://docs.victoriametrics.com/operator/resources/vlsingle/), [vlcluster](https://docs.victoriametrics.com/operator/resources/vlcluster/): add `cipherSuites` and `minVersion` fields to syslog listener `tlsConfig`. See [#2510](https://github.com/VictoriaMetrics/operator/pull/2510).
* FEATURE: [vlsingle](https://docs.victoriametrics.com/operator/resources/vlsingle/), [vtsingle](https://docs.victoriametrics.com/operator/resources/vtsingle/): add `removePvcAfterDelete` field to support PVC cleanup after deletion. See [#2545](https://github.com/VictoriaMetrics/operator/pull/2545).
+* FEATURE: [vmoperator](https://docs.victoriametrics.com/operator/): CRD fields now accept both `snake_case` and `camelCase` naming. For example, `group_wait` and `groupWait` are interchangeable in `VMAlertmanagerConfig`, and `scrape_interval` / `scrapeInterval` in scrape CRDs. This makes it easier to copy-paste native VictoriaMetrics or Alertmanager YAML configs into operator CRDs without reformatting. See [#1146](https://github.com/VictoriaMetrics/operator/issues/1146).
* BUGFIX: [vmagent](https://docs.victoriametrics.com/operator/resources/vmagent/), [vmanomaly](https://docs.victoriametrics.com/operator/resources/vmanomaly/): default `spec.shardCount` to `0` at the CRD schema level, fixing `VerticalPodAutoscaler`'s `/scale` subresource lookups failing with `the spec replicas field ".spec.shardCount" does not exist` whenever sharding wasn't configured (the common case). See [#2473](https://github.com/VictoriaMetrics/operator/issues/2473).
* BUGFIX: [vmoperator](https://docs.victoriametrics.com/operator/): set default values for each possible `level` label of `operator_log_messages_total` metric. See [#2477](https://github.com/VictoriaMetrics/operator/issues/2477).
diff --git a/docs/api.md b/docs/api.md
index 5e1002b3fc..0ddc527c03 100644
--- a/docs/api.md
+++ b/docs/api.md
@@ -1888,7 +1888,7 @@ Appears in: [APIServerConfig (v1beta1)](#v1beta1-apiserverconfig), [AzureSDConfi
| Field | Description |
| --- | --- |
| credentials#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Required)_
Reference to the secret with value for authorization |
-| credentialsFile#
_string_ | _(Optional)_
File with value for authorization |
+| credentialsFile _(or credentials_file)_ #
_string_ | _(Optional)_
File with value for authorization |
| type#
_string_ | _(Optional)_
Type of authorization, default to bearer |
#### AzureSDConfig {#v1beta1-azuresdconfig}
@@ -2066,45 +2066,45 @@ Appears in: [VMAgentSpec (v1beta1)](#v1beta1-vmagentspec), [VMSingleSpec (v1beta
| Field | Description |
| --- | --- |
-| additionalScrapeConfigs#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
AdditionalScrapeConfigs As scrape configs are appended, the user is responsible to make sure it
is valid. Note that using this feature may expose the possibility to
break upgrades of VMAgent or VMSingle. It is advised to review VMAgent or VMSingle release
notes to ensure that no incompatible scrape configs are going to break
VMAgent or VMSingle after the upgrade. |
-| arbitraryFSAccessThroughSMs#
_[ArbitraryFSAccessThroughSMsConfig (v1beta1)](#v1beta1-arbitraryfsaccessthroughsmsconfig)_ | _(Optional)_
ArbitraryFSAccessThroughSMs configures whether configuration
based on EndpointAuth can access arbitrary files on the file system
of the VMAgent or VMSingle container e.g. bearer token files, basic auth, tls certs |
-| enableKubernetesAPISelectors#
_boolean_ | _(Optional)_
EnableKubernetesAPISelectors instructs vmagent or vmsingle to use CRD scrape objects spec.selectors for
Kubernetes API list and watch requests.
https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#list-and-watch-filtering
It could be useful to reduce Kubernetes API server resource usage for serving less than 100 CRD scrape objects in total. |
-| enforcedNamespaceLabel#
_string_ | _(Optional)_
EnforcedNamespaceLabel enforces adding a namespace label of origin for each alert
and metric that is user created. The label value will always be the namespace of the object that is
being created. |
-| externalLabelName#
_string_ | _(Optional)_
ExternalLabelName Name of external label used to denote scraping agent instance
name. Defaults to the value of `prometheus`. External label will
_not_ be added when value is set to empty string (`""`). |
-| externalLabels#
_object (keys:string, values:string)_ | _(Optional)_
ExternalLabels The labels to add to any time series scraped by vmagent or vmsingle.
it doesn't affect metrics ingested directly by push API's |
-| globalScrapeMetricRelabelConfigs#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
GlobalScrapeMetricRelabelConfigs is a global metric relabel configuration, which is applied to each scrape job. |
-| globalScrapeRelabelConfigs#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
GlobalScrapeRelabelConfigs is a global relabel configuration, which is applied to each samples of each scrape job during service discovery. |
-| ignoreNamespaceSelectors#
_boolean_ | _(Optional)_
IgnoreNamespaceSelectors if set to true will ignore NamespaceSelector settings from
scrape objects, and they will only discover endpoints
within their current namespace. Defaults to false. |
-| ingestOnlyMode#
_boolean_ | _(Optional)_
IngestOnlyMode switches vmagent or vmsingle into unmanaged mode
it disables any config generation for scraping
Currently it prevents vmagent or vmsingle from managing tls and auth options for remote write |
-| inlineScrapeConfig#
_string_ | _(Optional)_
InlineScrapeConfig As scrape configs are appended, the user is responsible to make sure it
is valid. Note that using this feature may expose the possibility to
break upgrades of VMAgent or VMSingle. It is advised to review VMAgent or VMSingle release
notes to ensure that no incompatible scrape configs are going to break
VMAgent or VMSingle after the upgrade.
it should be defined as single yaml file.
inlineScrapeConfig: \|
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"] |
-| maxScrapeInterval#
_string_ | _(Required)_
MaxScrapeInterval allows limiting maximum scrape interval for VMServiceScrape, VMPodScrape and other scrapes
If interval is higher than defined limit, `maxScrapeInterval` will be used. |
-| minScrapeInterval#
_string_ | _(Required)_
MinScrapeInterval allows limiting minimal scrape interval for VMServiceScrape, VMPodScrape and other scrapes
If interval is lower than defined limit, `minScrapeInterval` will be used. |
-| nodeScrapeNamespaceSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
NodeScrapeNamespaceSelector defines Namespaces to be selected for VMNodeScrape discovery.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
-| nodeScrapeRelabelTemplate#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
NodeScrapeRelabelTemplate defines relabel config, that will be added to each VMNodeScrape.
it's useful for adding specific labels to all targets |
-| nodeScrapeSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
NodeScrapeSelector defines VMNodeScrape to be selected for scraping.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
-| overrideHonorLabels#
_boolean_ | _(Optional)_
OverrideHonorLabels if set to true overrides all user configured honor_labels.
If HonorLabels is set in scrape objects to true, this overrides honor_labels to false. |
-| overrideHonorTimestamps#
_boolean_ | _(Optional)_
OverrideHonorTimestamps allows to globally enforce honoring timestamps in all scrape configs. |
-| podScrapeNamespaceSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
PodScrapeNamespaceSelector defines Namespaces to be selected for VMPodScrape discovery.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
-| podScrapeRelabelTemplate#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
PodScrapeRelabelTemplate defines relabel config, that will be added to each VMPodScrape.
it's useful for adding specific labels to all targets |
-| podScrapeSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
PodScrapeSelector defines PodScrapes to be selected for target discovery.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
-| probeNamespaceSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ProbeNamespaceSelector defines Namespaces to be selected for VMProbe discovery.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
-| probeScrapeRelabelTemplate#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
ProbeScrapeRelabelTemplate defines relabel config, that will be added to each VMProbeScrape.
it's useful for adding specific labels to all targets |
-| probeSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ProbeSelector defines VMProbe to be selected for target probing.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
-| sampleLimit#
_integer_ | _(Optional)_
SampleLimit defines global per target limit of scraped samples |
-| scrapeClasses#
_[ScrapeClass (v1beta1)](#v1beta1-scrapeclass) array_ | _(Optional)_
ScrapeClasses defines the list of scrape classes to expose to scraping objects such as
PodScrapes, ServiceScrapes, Probes and ScrapeConfigs. |
-| scrapeConfigNamespaceSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ScrapeConfigNamespaceSelector defines Namespaces to be selected for VMScrapeConfig discovery.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
-| scrapeConfigRelabelTemplate#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
ScrapeConfigRelabelTemplate defines relabel config, that will be added to each VMScrapeConfig.
it's useful for adding specific labels to all targets |
-| scrapeConfigSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ScrapeConfigSelector defines VMScrapeConfig to be selected for target discovery.
Works in combination with NamespaceSelector. |
-| scrapeInterval#
_string_ | _(Optional)_
ScrapeInterval defines how often scrape targets by default |
-| scrapeTimeout#
_string_ | _(Optional)_
ScrapeTimeout defines global timeout for targets scrape |
-| selectAllByDefault#
_boolean_ | _(Optional)_
SelectAllByDefault changes default behavior for empty CRD selectors, such ServiceScrapeSelector.
with selectAllByDefault: true and empty serviceScrapeSelector and ServiceScrapeNamespaceSelector
Operator selects all exist serviceScrapes
with selectAllByDefault: false - selects nothing |
-| serviceScrapeNamespaceSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ServiceScrapeNamespaceSelector Namespaces to be selected for VMServiceScrape discovery.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
-| serviceScrapeRelabelTemplate#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
ServiceScrapeRelabelTemplate defines relabel config, that will be added to each VMServiceScrape.
it's useful for adding specific labels to all targets |
-| serviceScrapeSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ServiceScrapeSelector defines ServiceScrapes to be selected for target discovery.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
-| staticScrapeNamespaceSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
StaticScrapeNamespaceSelector defines Namespaces to be selected for VMStaticScrape discovery.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
-| staticScrapeRelabelTemplate#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
StaticScrapeRelabelTemplate defines relabel config, that will be added to each VMStaticScrape.
it's useful for adding specific labels to all targets |
-| staticScrapeSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
StaticScrapeSelector defines VMStaticScrape to be selected for target discovery.
Works in combination with NamespaceSelector.
If both nil - match everything.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces. |
-| vmAgentExternalLabelName#
_string_ | _(Optional)_
VMAgentExternalLabelName Name of vmAgent external label used to denote vmAgent instance
name. Defaults to the value of `prometheus`. External label will
_not_ be added when value is set to empty string (`""`).
Deprecated: since version v0.67.0 will be removed in v0.69.0 use externalLabelName instead
|
+| additionalScrapeConfigs _(or additional_scrape_configs)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
AdditionalScrapeConfigs As scrape configs are appended, the user is responsible to make sure it
is valid. Note that using this feature may expose the possibility to
break upgrades of VMAgent or VMSingle. It is advised to review VMAgent or VMSingle release
notes to ensure that no incompatible scrape configs are going to break
VMAgent or VMSingle after the upgrade. |
+| arbitraryFSAccessThroughSMs _(or arbitrary_fs_access_through_s_ms)_ #
_[ArbitraryFSAccessThroughSMsConfig (v1beta1)](#v1beta1-arbitraryfsaccessthroughsmsconfig)_ | _(Optional)_
ArbitraryFSAccessThroughSMs configures whether configuration
based on EndpointAuth can access arbitrary files on the file system
of the VMAgent or VMSingle container e.g. bearer token files, basic auth, tls certs |
+| enableKubernetesAPISelectors _(or enable_kubernetes_api_selectors)_ #
_boolean_ | _(Optional)_
EnableKubernetesAPISelectors instructs vmagent or vmsingle to use CRD scrape objects spec.selectors for
Kubernetes API list and watch requests.
https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#list-and-watch-filtering
It could be useful to reduce Kubernetes API server resource usage for serving less than 100 CRD scrape objects in total. |
+| enforcedNamespaceLabel _(or enforced_namespace_label)_ #
_string_ | _(Optional)_
EnforcedNamespaceLabel enforces adding a namespace label of origin for each alert
and metric that is user created. The label value will always be the namespace of the object that is
being created. |
+| externalLabelName _(or external_label_name)_ #
_string_ | _(Optional)_
ExternalLabelName Name of external label used to denote scraping agent instance
name. Defaults to the value of `prometheus`. External label will
_not_ be added when value is set to empty string (`""`). |
+| externalLabels _(or external_labels)_ #
_object (keys:string, values:string)_ | _(Optional)_
ExternalLabels The labels to add to any time series scraped by vmagent or vmsingle.
it doesn't affect metrics ingested directly by push API's |
+| globalScrapeMetricRelabelConfigs _(or global_scrape_metric_relabel_configs)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
GlobalScrapeMetricRelabelConfigs is a global metric relabel configuration, which is applied to each scrape job. |
+| globalScrapeRelabelConfigs _(or global_scrape_relabel_configs)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
GlobalScrapeRelabelConfigs is a global relabel configuration, which is applied to each samples of each scrape job during service discovery. |
+| ignoreNamespaceSelectors _(or ignore_namespace_selectors)_ #
_boolean_ | _(Optional)_
IgnoreNamespaceSelectors if set to true will ignore NamespaceSelector settings from
scrape objects, and they will only discover endpoints
within their current namespace. Defaults to false. |
+| ingestOnlyMode _(or ingest_only_mode)_ #
_boolean_ | _(Optional)_
IngestOnlyMode switches vmagent or vmsingle into unmanaged mode
it disables any config generation for scraping
Currently it prevents vmagent or vmsingle from managing tls and auth options for remote write |
+| inlineScrapeConfig _(or inline_scrape_config)_ #
_string_ | _(Optional)_
InlineScrapeConfig As scrape configs are appended, the user is responsible to make sure it
is valid. Note that using this feature may expose the possibility to
break upgrades of VMAgent or VMSingle. It is advised to review VMAgent or VMSingle release
notes to ensure that no incompatible scrape configs are going to break
VMAgent or VMSingle after the upgrade.
it should be defined as single yaml file.
inlineScrapeConfig: \|
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"] |
+| maxScrapeInterval _(or max_scrape_interval)_ #
_string_ | _(Required)_
MaxScrapeInterval allows limiting maximum scrape interval for VMServiceScrape, VMPodScrape and other scrapes
If interval is higher than defined limit, `maxScrapeInterval` will be used. |
+| minScrapeInterval _(or min_scrape_interval)_ #
_string_ | _(Required)_
MinScrapeInterval allows limiting minimal scrape interval for VMServiceScrape, VMPodScrape and other scrapes
If interval is lower than defined limit, `minScrapeInterval` will be used. |
+| nodeScrapeNamespaceSelector _(or node_scrape_namespace_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
NodeScrapeNamespaceSelector defines Namespaces to be selected for VMNodeScrape discovery.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
+| nodeScrapeRelabelTemplate _(or node_scrape_relabel_template)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
NodeScrapeRelabelTemplate defines relabel config, that will be added to each VMNodeScrape.
it's useful for adding specific labels to all targets |
+| nodeScrapeSelector _(or node_scrape_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
NodeScrapeSelector defines VMNodeScrape to be selected for scraping.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
+| overrideHonorLabels _(or override_honor_labels)_ #
_boolean_ | _(Optional)_
OverrideHonorLabels if set to true overrides all user configured honor_labels.
If HonorLabels is set in scrape objects to true, this overrides honor_labels to false. |
+| overrideHonorTimestamps _(or override_honor_timestamps)_ #
_boolean_ | _(Optional)_
OverrideHonorTimestamps allows to globally enforce honoring timestamps in all scrape configs. |
+| podScrapeNamespaceSelector _(or pod_scrape_namespace_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
PodScrapeNamespaceSelector defines Namespaces to be selected for VMPodScrape discovery.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
+| podScrapeRelabelTemplate _(or pod_scrape_relabel_template)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
PodScrapeRelabelTemplate defines relabel config, that will be added to each VMPodScrape.
it's useful for adding specific labels to all targets |
+| podScrapeSelector _(or pod_scrape_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
PodScrapeSelector defines PodScrapes to be selected for target discovery.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
+| probeNamespaceSelector _(or probe_namespace_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ProbeNamespaceSelector defines Namespaces to be selected for VMProbe discovery.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
+| probeScrapeRelabelTemplate _(or probe_scrape_relabel_template)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
ProbeScrapeRelabelTemplate defines relabel config, that will be added to each VMProbeScrape.
it's useful for adding specific labels to all targets |
+| probeSelector _(or probe_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ProbeSelector defines VMProbe to be selected for target probing.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
+| sampleLimit _(or sample_limit)_ #
_integer_ | _(Optional)_
SampleLimit defines global per target limit of scraped samples |
+| scrapeClasses _(or scrape_classes)_ #
_[ScrapeClass (v1beta1)](#v1beta1-scrapeclass) array_ | _(Optional)_
ScrapeClasses defines the list of scrape classes to expose to scraping objects such as
PodScrapes, ServiceScrapes, Probes and ScrapeConfigs. |
+| scrapeConfigNamespaceSelector _(or scrape_config_namespace_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ScrapeConfigNamespaceSelector defines Namespaces to be selected for VMScrapeConfig discovery.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
+| scrapeConfigRelabelTemplate _(or scrape_config_relabel_template)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
ScrapeConfigRelabelTemplate defines relabel config, that will be added to each VMScrapeConfig.
it's useful for adding specific labels to all targets |
+| scrapeConfigSelector _(or scrape_config_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ScrapeConfigSelector defines VMScrapeConfig to be selected for target discovery.
Works in combination with NamespaceSelector. |
+| scrapeInterval _(or scrape_interval)_ #
_string_ | _(Optional)_
ScrapeInterval defines how often scrape targets by default |
+| scrapeTimeout _(or scrape_timeout)_ #
_string_ | _(Optional)_
ScrapeTimeout defines global timeout for targets scrape |
+| selectAllByDefault _(or select_all_by_default)_ #
_boolean_ | _(Optional)_
SelectAllByDefault changes default behavior for empty CRD selectors, such ServiceScrapeSelector.
with selectAllByDefault: true and empty serviceScrapeSelector and ServiceScrapeNamespaceSelector
Operator selects all exist serviceScrapes
with selectAllByDefault: false - selects nothing |
+| serviceScrapeNamespaceSelector _(or service_scrape_namespace_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ServiceScrapeNamespaceSelector Namespaces to be selected for VMServiceScrape discovery.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
+| serviceScrapeRelabelTemplate _(or service_scrape_relabel_template)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
ServiceScrapeRelabelTemplate defines relabel config, that will be added to each VMServiceScrape.
it's useful for adding specific labels to all targets |
+| serviceScrapeSelector _(or service_scrape_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ServiceScrapeSelector defines ServiceScrapes to be selected for target discovery.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
+| staticScrapeNamespaceSelector _(or static_scrape_namespace_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
StaticScrapeNamespaceSelector defines Namespaces to be selected for VMStaticScrape discovery.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
+| staticScrapeRelabelTemplate _(or static_scrape_relabel_template)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
StaticScrapeRelabelTemplate defines relabel config, that will be added to each VMStaticScrape.
it's useful for adding specific labels to all targets |
+| staticScrapeSelector _(or static_scrape_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
StaticScrapeSelector defines VMStaticScrape to be selected for target discovery.
Works in combination with NamespaceSelector.
If both nil - match everything.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces. |
+| vmAgentExternalLabelName _(or vm_agent_external_label_name)_ #
_string_ | _(Optional)_
VMAgentExternalLabelName Name of vmAgent external label used to denote vmAgent instance
name. Defaults to the value of `prometheus`. External label will
_not_ be added when value is set to empty string (`""`).
Deprecated: since version v0.67.0 will be removed in v0.69.0 use externalLabelName instead
|
#### CommonScrapeSecurityEnforcements {#v1beta1-commonscrapesecurityenforcements}
@@ -2115,11 +2115,11 @@ Appears in: [CommonScrapeParams (v1beta1)](#v1beta1-commonscrapeparams), [VMAgen
| Field | Description |
| --- | --- |
-| arbitraryFSAccessThroughSMs#
_[ArbitraryFSAccessThroughSMsConfig (v1beta1)](#v1beta1-arbitraryfsaccessthroughsmsconfig)_ | _(Optional)_
ArbitraryFSAccessThroughSMs configures whether configuration
based on EndpointAuth can access arbitrary files on the file system
of the VMAgent or VMSingle container e.g. bearer token files, basic auth, tls certs |
-| enforcedNamespaceLabel#
_string_ | _(Optional)_
EnforcedNamespaceLabel enforces adding a namespace label of origin for each alert
and metric that is user created. The label value will always be the namespace of the object that is
being created. |
-| ignoreNamespaceSelectors#
_boolean_ | _(Optional)_
IgnoreNamespaceSelectors if set to true will ignore NamespaceSelector settings from
scrape objects, and they will only discover endpoints
within their current namespace. Defaults to false. |
-| overrideHonorLabels#
_boolean_ | _(Optional)_
OverrideHonorLabels if set to true overrides all user configured honor_labels.
If HonorLabels is set in scrape objects to true, this overrides honor_labels to false. |
-| overrideHonorTimestamps#
_boolean_ | _(Optional)_
OverrideHonorTimestamps allows to globally enforce honoring timestamps in all scrape configs. |
+| arbitraryFSAccessThroughSMs _(or arbitrary_fs_access_through_s_ms)_ #
_[ArbitraryFSAccessThroughSMsConfig (v1beta1)](#v1beta1-arbitraryfsaccessthroughsmsconfig)_ | _(Optional)_
ArbitraryFSAccessThroughSMs configures whether configuration
based on EndpointAuth can access arbitrary files on the file system
of the VMAgent or VMSingle container e.g. bearer token files, basic auth, tls certs |
+| enforcedNamespaceLabel _(or enforced_namespace_label)_ #
_string_ | _(Optional)_
EnforcedNamespaceLabel enforces adding a namespace label of origin for each alert
and metric that is user created. The label value will always be the namespace of the object that is
being created. |
+| ignoreNamespaceSelectors _(or ignore_namespace_selectors)_ #
_boolean_ | _(Optional)_
IgnoreNamespaceSelectors if set to true will ignore NamespaceSelector settings from
scrape objects, and they will only discover endpoints
within their current namespace. Defaults to false. |
+| overrideHonorLabels _(or override_honor_labels)_ #
_boolean_ | _(Optional)_
OverrideHonorLabels if set to true overrides all user configured honor_labels.
If HonorLabels is set in scrape objects to true, this overrides honor_labels to false. |
+| overrideHonorTimestamps _(or override_honor_timestamps)_ #
_boolean_ | _(Optional)_
OverrideHonorTimestamps allows to globally enforce honoring timestamps in all scrape configs. |
#### ConfigMapKeyReference {#v1beta1-configmapkeyreference}
@@ -2247,15 +2247,15 @@ Appears in: [Receiver (v1beta1)](#v1beta1-receiver)
| Field | Description |
| --- | --- |
-| avatar_url#
_string_ | _(Optional)_
AvatarURL defines message avatar URL
Available from alertmanager v0.28.0
Available from: v0.55.0 |
+| avatar_url _(or avatarUrl)_ #
_string_ | _(Optional)_
AvatarURL defines message avatar URL
Available from alertmanager v0.28.0
Available from: v0.55.0 |
| content#
_string_ | _(Optional)_
Content defines message content template
Available from alertmanager v0.28.0
Available from: v0.55.0 |
-| http_config#
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
HTTP client configuration. |
+| http_config _(or httpConfig)_ #
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
HTTP client configuration. |
| message#
_string_ | _(Optional)_
The message body template |
-| send_resolved#
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
+| send_resolved _(or sendResolved)_ #
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
| title#
_string_ | _(Optional)_
The message title template |
| username#
_string_ | _(Optional)_
Username defines message username
Available from alertmanager v0.28.0
Available from: v0.55.0 |
-| webhook_url#
_string_ | _(Optional)_
The discord webhook URL
one of `urlSecret` and `url` must be defined. |
-| webhook_url_secret#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
URLSecret defines secret name and key at the CRD namespace.
It must contain the webhook URL.
one of `urlSecret` and `url` must be defined. |
+| webhook_url _(or webhookUrl)_ #
_string_ | _(Optional)_
The discord webhook URL
one of `urlSecret` and `url` must be defined. |
+| webhook_url_secret _(or webhookUrlSecret)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
URLSecret defines secret name and key at the CRD namespace.
It must contain the webhook URL.
one of `urlSecret` and `url` must be defined. |
#### DiscoverySelector {#v1beta1-discoveryselector}
@@ -2405,19 +2405,19 @@ Appears in: [Receiver (v1beta1)](#v1beta1-receiver)
| Field | Description |
| --- | --- |
-| auth_identity#
_string_ | _(Optional)_
The identity to use for authentication. |
-| auth_password#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
AuthPassword defines secret name and key at CRD namespace. |
-| auth_secret#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
AuthSecret defines secret name and key at CRD namespace.
It must contain the CRAM-MD5 secret. |
-| auth_username#
_string_ | _(Optional)_
The username to use for authentication. |
+| auth_identity _(or authIdentity)_ #
_string_ | _(Optional)_
The identity to use for authentication. |
+| auth_password _(or authPassword)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
AuthPassword defines secret name and key at CRD namespace. |
+| auth_secret _(or authSecret)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
AuthSecret defines secret name and key at CRD namespace.
It must contain the CRAM-MD5 secret. |
+| auth_username _(or authUsername)_ #
_string_ | _(Optional)_
The username to use for authentication. |
| from#
_string_ | _(Optional)_
The sender address.
fallback to global setting if empty |
| headers
_object (keys:string, values:string)_ | _(Required)_
Further headers email header key/value pairs. Overrides any headers
previously set by the notification implementation. |
| hello#
_string_ | _(Optional)_
The hostname to identify to the SMTP server. |
| html#
_string_ | _(Optional)_
The HTML body of the email notification. |
-| require_tls#
_boolean_ | _(Optional)_
The SMTP TLS requirement.
Note that Go does not support unencrypted connections to remote SMTP endpoints. |
-| send_resolved#
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
+| require_tls _(or requireTls)_ #
_boolean_ | _(Optional)_
The SMTP TLS requirement.
Note that Go does not support unencrypted connections to remote SMTP endpoints. |
+| send_resolved _(or sendResolved)_ #
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
| smarthost#
_string_ | _(Optional)_
The SMTP host through which emails are sent.
fallback to global setting if empty |
| text#
_string_ | _(Optional)_
The text body of the email notification. |
-| tls_config#
_[TLSConfig (v1beta1)](#v1beta1-tlsconfig)_ | _(Optional)_
TLS configuration |
+| tls_config _(or tlsConfig)_ #
_[TLSConfig (v1beta1)](#v1beta1-tlsconfig)_ | _(Optional)_
TLS configuration |
| to#
_string_ | _(Optional)_
The email address to send notifications to. |
#### EmbeddedHPA {#v1beta1-embeddedhpa}
@@ -2550,29 +2550,29 @@ Appears in: [VMServiceScrapeSpec (v1beta1)](#v1beta1-vmservicescrapespec)
| --- | --- |
| attach_metadata#
_[AttachMetadata (v1beta1)](#v1beta1-attachmetadata)_ | _(Optional)_
AttachMetadata configures metadata attaching from service discovery |
| authorization#
_[Authorization (v1beta1)](#v1beta1-authorization)_ | _(Optional)_
Authorization with http header Authorization |
-| basicAuth#
_[BasicAuth (v1beta1)](#v1beta1-basicauth)_ | _(Optional)_
BasicAuth allow an endpoint to authenticate over basic authentication |
-| bearerTokenFile#
_string_ | _(Optional)_
File to read bearer token for scraping targets. |
-| bearerTokenSecret#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
Secret to mount to read bearer token for scraping targets. The secret
needs to be in the same namespace as the scrape object and accessible by
the victoria-metrics operator. |
-| follow_redirects#
_boolean_ | _(Optional)_
FollowRedirects controls redirects for scraping. |
-| honorLabels#
_boolean_ | _(Optional)_
HonorLabels chooses the metric's labels on collisions with target labels. |
-| honorTimestamps#
_boolean_ | _(Optional)_
HonorTimestamps controls whether vmagent or vmsingle respects the timestamps present in scraped data. |
+| basicAuth _(or basic_auth)_ #
_[BasicAuth (v1beta1)](#v1beta1-basicauth)_ | _(Optional)_
BasicAuth allow an endpoint to authenticate over basic authentication |
+| bearerTokenFile _(or bearer_token_file)_ #
_string_ | _(Optional)_
File to read bearer token for scraping targets. |
+| bearerTokenSecret _(or bearer_token_secret)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
Secret to mount to read bearer token for scraping targets. The secret
needs to be in the same namespace as the scrape object and accessible by
the victoria-metrics operator. |
+| follow_redirects _(or followRedirects)_ #
_boolean_ | _(Optional)_
FollowRedirects controls redirects for scraping. |
+| honorLabels _(or honor_labels)_ #
_boolean_ | _(Optional)_
HonorLabels chooses the metric's labels on collisions with target labels. |
+| honorTimestamps _(or honor_timestamps)_ #
_boolean_ | _(Optional)_
HonorTimestamps controls whether vmagent or vmsingle respects the timestamps present in scraped data. |
| interval#
_string_ | _(Optional)_
Interval at which metrics should be scraped |
-| max_scrape_size#
_string_ | _(Optional)_
MaxScrapeSize defines a maximum size of scraped data for a job |
-| metricRelabelConfigs#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
MetricRelabelConfigs to apply to samples after scrapping. |
+| max_scrape_size _(or maxScrapeSize)_ #
_string_ | _(Optional)_
MaxScrapeSize defines a maximum size of scraped data for a job |
+| metricRelabelConfigs _(or metric_relabel_configs)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
MetricRelabelConfigs to apply to samples after scrapping. |
| oauth2#
_[OAuth2 (v1beta1)](#v1beta1-oauth2)_ | _(Optional)_
OAuth2 defines auth configuration |
| params#
_object (keys:string, values:string array)_ | _(Optional)_
Optional HTTP URL parameters |
| path#
_string_ | _(Optional)_
HTTP path to scrape for metrics. |
| port#
_string_ | _(Optional)_
Name of the port exposed at Service. |
-| proxyURL#
_string_ | _(Optional)_
ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. |
-| relabelConfigs#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
RelabelConfigs to apply to samples during service discovery. |
-| sampleLimit#
_integer_ | _(Optional)_
SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. |
+| proxyURL _(or proxy_url)_ #
_string_ | _(Optional)_
ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. |
+| relabelConfigs _(or relabel_configs)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
RelabelConfigs to apply to samples during service discovery. |
+| sampleLimit _(or sample_limit)_ #
_integer_ | _(Optional)_
SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. |
| scheme#
_string_ | _(Optional)_
HTTP scheme to use for scraping. |
-| scrapeTimeout#
_string_ | _(Optional)_
Timeout after which the scrape is ended |
-| scrape_interval#
_string_ | _(Optional)_
ScrapeInterval is the same as Interval and has priority over it.
one of scrape_interval or interval can be used |
-| seriesLimit#
_integer_ | _(Optional)_
SeriesLimit defines per-scrape limit on number of unique time series
a single target can expose during all the scrapes on the time window of 24h. |
+| scrapeTimeout _(or scrape_timeout)_ #
_string_ | _(Optional)_
Timeout after which the scrape is ended |
+| scrape_interval _(or scrapeInterval)_ #
_string_ | _(Optional)_
ScrapeInterval is the same as Interval and has priority over it.
one of scrape_interval or interval can be used |
+| seriesLimit _(or series_limit)_ #
_integer_ | _(Optional)_
SeriesLimit defines per-scrape limit on number of unique time series
a single target can expose during all the scrapes on the time window of 24h. |
| targetPort#
_[IntOrString (intstr)](#intstr-intorstring)_ | _(Optional)_
TargetPort
Name or number of the pod port this endpoint refers to. Mutually exclusive with port. |
-| tlsConfig#
_[TLSConfig (v1beta1)](#v1beta1-tlsconfig)_ | _(Optional)_
TLSConfig configuration to use when scraping the endpoint |
-| vm_scrape_params#
_[VMScrapeParams (v1beta1)](#v1beta1-vmscrapeparams)_ | _(Optional)_
VMScrapeParams defines VictoriaMetrics specific scrape parameters |
+| tlsConfig _(or tls_config)_ #
_[TLSConfig (v1beta1)](#v1beta1-tlsconfig)_ | _(Optional)_
TLSConfig configuration to use when scraping the endpoint |
+| vm_scrape_params _(or vmScrapeParams)_ #
_[VMScrapeParams (v1beta1)](#v1beta1-vmscrapeparams)_ | _(Optional)_
VMScrapeParams defines VictoriaMetrics specific scrape parameters |
#### EndpointAuth {#v1beta1-endpointauth}
@@ -2584,11 +2584,11 @@ Appears in: [Endpoint (v1beta1)](#v1beta1-endpoint), [EndpointScrapeParams (v1be
| Field | Description |
| --- | --- |
| authorization#
_[Authorization (v1beta1)](#v1beta1-authorization)_ | _(Optional)_
Authorization with http header Authorization |
-| basicAuth#
_[BasicAuth (v1beta1)](#v1beta1-basicauth)_ | _(Optional)_
BasicAuth allow an endpoint to authenticate over basic authentication |
-| bearerTokenFile#
_string_ | _(Optional)_
File to read bearer token for scraping targets. |
-| bearerTokenSecret#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
Secret to mount to read bearer token for scraping targets. The secret
needs to be in the same namespace as the scrape object and accessible by
the victoria-metrics operator. |
+| basicAuth _(or basic_auth)_ #
_[BasicAuth (v1beta1)](#v1beta1-basicauth)_ | _(Optional)_
BasicAuth allow an endpoint to authenticate over basic authentication |
+| bearerTokenFile _(or bearer_token_file)_ #
_string_ | _(Optional)_
File to read bearer token for scraping targets. |
+| bearerTokenSecret _(or bearer_token_secret)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
Secret to mount to read bearer token for scraping targets. The secret
needs to be in the same namespace as the scrape object and accessible by
the victoria-metrics operator. |
| oauth2#
_[OAuth2 (v1beta1)](#v1beta1-oauth2)_ | _(Optional)_
OAuth2 defines auth configuration |
-| tlsConfig#
_[TLSConfig (v1beta1)](#v1beta1-tlsconfig)_ | _(Optional)_
TLSConfig configuration to use when scraping the endpoint |
+| tlsConfig _(or tls_config)_ #
_[TLSConfig (v1beta1)](#v1beta1-tlsconfig)_ | _(Optional)_
TLSConfig configuration to use when scraping the endpoint |
#### EndpointRelabelings {#v1beta1-endpointrelabelings}
@@ -2599,8 +2599,8 @@ Appears in: [Endpoint (v1beta1)](#v1beta1-endpoint), [PodMetricsEndpoint (v1beta
| Field | Description |
| --- | --- |
-| metricRelabelConfigs#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
MetricRelabelConfigs to apply to samples after scrapping. |
-| relabelConfigs#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
RelabelConfigs to apply to samples during service discovery. |
+| metricRelabelConfigs _(or metric_relabel_configs)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
MetricRelabelConfigs to apply to samples after scrapping. |
+| relabelConfigs _(or relabel_configs)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
RelabelConfigs to apply to samples during service discovery. |
#### EndpointScrapeParams {#v1beta1-endpointscrapeparams}
@@ -2612,25 +2612,25 @@ Appears in: [Endpoint (v1beta1)](#v1beta1-endpoint), [PodMetricsEndpoint (v1beta
| Field | Description |
| --- | --- |
| authorization#
_[Authorization (v1beta1)](#v1beta1-authorization)_ | _(Optional)_
Authorization with http header Authorization |
-| basicAuth#
_[BasicAuth (v1beta1)](#v1beta1-basicauth)_ | _(Optional)_
BasicAuth allow an endpoint to authenticate over basic authentication |
-| bearerTokenFile#
_string_ | _(Optional)_
File to read bearer token for scraping targets. |
-| bearerTokenSecret#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
Secret to mount to read bearer token for scraping targets. The secret
needs to be in the same namespace as the scrape object and accessible by
the victoria-metrics operator. |
-| follow_redirects#
_boolean_ | _(Optional)_
FollowRedirects controls redirects for scraping. |
-| honorLabels#
_boolean_ | _(Optional)_
HonorLabels chooses the metric's labels on collisions with target labels. |
-| honorTimestamps#
_boolean_ | _(Optional)_
HonorTimestamps controls whether vmagent or vmsingle respects the timestamps present in scraped data. |
+| basicAuth _(or basic_auth)_ #
_[BasicAuth (v1beta1)](#v1beta1-basicauth)_ | _(Optional)_
BasicAuth allow an endpoint to authenticate over basic authentication |
+| bearerTokenFile _(or bearer_token_file)_ #
_string_ | _(Optional)_
File to read bearer token for scraping targets. |
+| bearerTokenSecret _(or bearer_token_secret)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
Secret to mount to read bearer token for scraping targets. The secret
needs to be in the same namespace as the scrape object and accessible by
the victoria-metrics operator. |
+| follow_redirects _(or followRedirects)_ #
_boolean_ | _(Optional)_
FollowRedirects controls redirects for scraping. |
+| honorLabels _(or honor_labels)_ #
_boolean_ | _(Optional)_
HonorLabels chooses the metric's labels on collisions with target labels. |
+| honorTimestamps _(or honor_timestamps)_ #
_boolean_ | _(Optional)_
HonorTimestamps controls whether vmagent or vmsingle respects the timestamps present in scraped data. |
| interval#
_string_ | _(Optional)_
Interval at which metrics should be scraped |
-| max_scrape_size#
_string_ | _(Optional)_
MaxScrapeSize defines a maximum size of scraped data for a job |
+| max_scrape_size _(or maxScrapeSize)_ #
_string_ | _(Optional)_
MaxScrapeSize defines a maximum size of scraped data for a job |
| oauth2#
_[OAuth2 (v1beta1)](#v1beta1-oauth2)_ | _(Optional)_
OAuth2 defines auth configuration |
| params#
_object (keys:string, values:string array)_ | _(Optional)_
Optional HTTP URL parameters |
| path#
_string_ | _(Optional)_
HTTP path to scrape for metrics. |
-| proxyURL#
_string_ | _(Optional)_
ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. |
-| sampleLimit#
_integer_ | _(Optional)_
SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. |
+| proxyURL _(or proxy_url)_ #
_string_ | _(Optional)_
ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. |
+| sampleLimit _(or sample_limit)_ #
_integer_ | _(Optional)_
SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. |
| scheme#
_string_ | _(Optional)_
HTTP scheme to use for scraping. |
-| scrapeTimeout#
_string_ | _(Optional)_
Timeout after which the scrape is ended |
-| scrape_interval#
_string_ | _(Optional)_
ScrapeInterval is the same as Interval and has priority over it.
one of scrape_interval or interval can be used |
-| seriesLimit#
_integer_ | _(Optional)_
SeriesLimit defines per-scrape limit on number of unique time series
a single target can expose during all the scrapes on the time window of 24h. |
-| tlsConfig#
_[TLSConfig (v1beta1)](#v1beta1-tlsconfig)_ | _(Optional)_
TLSConfig configuration to use when scraping the endpoint |
-| vm_scrape_params#
_[VMScrapeParams (v1beta1)](#v1beta1-vmscrapeparams)_ | _(Optional)_
VMScrapeParams defines VictoriaMetrics specific scrape parameters |
+| scrapeTimeout _(or scrape_timeout)_ #
_string_ | _(Optional)_
Timeout after which the scrape is ended |
+| scrape_interval _(or scrapeInterval)_ #
_string_ | _(Optional)_
ScrapeInterval is the same as Interval and has priority over it.
one of scrape_interval or interval can be used |
+| seriesLimit _(or series_limit)_ #
_integer_ | _(Optional)_
SeriesLimit defines per-scrape limit on number of unique time series
a single target can expose during all the scrapes on the time window of 24h. |
+| tlsConfig _(or tls_config)_ #
_[TLSConfig (v1beta1)](#v1beta1-tlsconfig)_ | _(Optional)_
TLSConfig configuration to use when scraping the endpoint |
+| vm_scrape_params _(or vmScrapeParams)_ #
_[VMScrapeParams (v1beta1)](#v1beta1-vmscrapeparams)_ | _(Optional)_
VMScrapeParams defines VictoriaMetrics specific scrape parameters |
#### EurekaSDConfig {#v1beta1-eurekasdconfig}
@@ -2722,17 +2722,17 @@ Appears in: [DiscordConfig (v1beta1)](#v1beta1-discordconfig), [IncidentioConfig
| Field | Description |
| --- | --- |
| authorization#
_[Authorization (v1beta1)](#v1beta1-authorization)_ | _(Optional)_
Authorization header configuration for the client.
This is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+. |
-| basic_auth#
_[BasicAuth (v1beta1)](#v1beta1-basicauth)_ | _(Optional)_
BasicAuth for the client. |
-| bearer_token_file#
_string_ | _(Optional)_
BearerTokenFile defines filename for bearer token, it must be mounted to pod. |
-| bearer_token_secret#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
The secret's key that contains the bearer token
It must be at them same namespace as CRD |
-| follow_redirects#
_boolean_ | _(Optional)_
FollowRedirects controls redirects for scraping. |
+| basic_auth _(or basicAuth)_ #
_[BasicAuth (v1beta1)](#v1beta1-basicauth)_ | _(Optional)_
BasicAuth for the client. |
+| bearer_token_file _(or bearerTokenFile)_ #
_string_ | _(Optional)_
BearerTokenFile defines filename for bearer token, it must be mounted to pod. |
+| bearer_token_secret _(or bearerTokenSecret)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
The secret's key that contains the bearer token
It must be at them same namespace as CRD |
+| follow_redirects _(or followRedirects)_ #
_boolean_ | _(Optional)_
FollowRedirects controls redirects for scraping. |
| http_headers
_object (keys:string, values:[HTTPHeaderConfig (v1beta1)](#v1beta1-httpheaderconfig))_ | _(Optional)_
HTTPHeaders defines custom HTTP headers to be sent along with each request.
Only supported starting from Alertmanager v0.28.0; ignored by older versions.
Available from: v0.75.0 |
-| noProxy#
_string_ | _(Optional)_
NoProxy defines a comma-separated string that can contain IPs, CIDR notation, domain names that should be excluded from proxying.
IP and domain names can contain port numbers. |
+| noProxy _(or no_proxy)_ #
_string_ | _(Optional)_
NoProxy defines a comma-separated string that can contain IPs, CIDR notation, domain names that should be excluded from proxying.
IP and domain names can contain port numbers. |
| oauth2#
_[OAuth2 (v1beta1)](#v1beta1-oauth2)_ | _(Optional)_
OAuth2 client credentials used to fetch a token for the targets. |
-| proxyConnectHeader
_object (keys:string, values:[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#secretkeyselector-v1-core))_ | _(Optional)_
ProxyConnectHeader optionally specifies headers to send to proxies during CONNECT requests. |
-| proxyFromEnvironment#
_boolean_ | _(Optional)_
ProxyFromEnvironment defines whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). |
-| proxyURL#
_string_ | _(Optional)_
ProxyUrl defines the HTTP proxy server to use. |
-| tls_config#
_[TLSConfig (v1beta1)](#v1beta1-tlsconfig)_ | _(Optional)_
TLS configuration for the client. |
+| proxyConnectHeader _(or proxy_connect_header)_
_object (keys:string, values:[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#secretkeyselector-v1-core))_ | _(Optional)_
ProxyConnectHeader optionally specifies headers to send to proxies during CONNECT requests. |
+| proxyFromEnvironment _(or proxy_from_environment)_ #
_boolean_ | _(Optional)_
ProxyFromEnvironment defines whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). |
+| proxyURL _(or proxy_url)_ #
_string_ | _(Optional)_
ProxyUrl defines the HTTP proxy server to use. |
+| tls_config _(or tlsConfig)_ #
_[TLSConfig (v1beta1)](#v1beta1-tlsconfig)_ | _(Optional)_
TLS configuration for the client. |
#### HTTPHeaderConfig {#v1beta1-httpheaderconfig}
@@ -2838,17 +2838,18 @@ Appears in: [PagerDutyConfig (v1beta1)](#v1beta1-pagerdutyconfig)
IncidentioConfig configures notifications via incident.io.
https://prometheus.io/docs/alerting/latest/configuration/#incidentio_config
-Available from v0.29.0 alertmanager version
+available from v0.66.0 operator version
+and v0.29.0 alertmanager version
Appears in: [Receiver (v1beta1)](#v1beta1-receiver)
| Field | Description |
| --- | --- |
-| alert_source_token#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
AlertSourceToken is used to authenticate with incident.io.
Mutually exclusive with AlertSourceTokenFile. |
+| alert_source_token _(or alertSourceToken)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
AlertSourceToken is used to authenticate with incident.io.
Mutually exclusive with AlertSourceTokenFile. |
| alert_source_token_file#
_string_ | _(Optional)_
AlertSourceTokenFile defines the path to a file that contains the alert source token.
Mutually exclusive with AlertSourceToken. |
-| http_config#
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
|
-| max_alerts#
_integer_ | _(Optional)_
MaxAlerts defines maximum number of alerts to be sent per incident.io message. |
-| send_resolved#
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
+| http_config _(or httpConfig)_ #
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
|
+| max_alerts _(or maxAlerts)_ #
_integer_ | _(Optional)_
MaxAlerts defines maximum number of alerts to be sent per incident.io message. |
+| send_resolved _(or sendResolved)_ #
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
| timeout#
_string_ | _(Optional)_
Timeout is the maximum time allowed to invoke incident.io |
| url#
_string_ | _(Optional)_
The URL to send the incident.io alert. This would typically be provided by the
incident.io team when setting up an alert source.
Mutually exclusive with URLFile. |
| url_file#
_string_ | _(Optional)_
URLFile defines the path to a file that holds the incident.io alert URL.
Mutually exclusive with URL. |
@@ -2866,8 +2867,8 @@ Appears in: [VMAlertmanagerConfigSpec (v1beta1)](#v1beta1-vmalertmanagerconfigsp
| Field | Description |
| --- | --- |
| equal#
_string array_ | _(Optional)_
Labels that must have an equal value in the source and target alert for
the inhibition to take effect. |
-| source_matchers#
_string array_ | _(Optional)_
SourceMatchers defines a list of matchers for which one or more alerts have
to exist for the inhibition to take effect. |
-| target_matchers#
_string array_ | _(Optional)_
TargetMatchers defines a list of matchers that have to be fulfilled by the target
alerts to be muted. |
+| source_matchers _(or sourceMatchers)_ #
_string array_ | _(Optional)_
SourceMatchers defines a list of matchers for which one or more alerts have
to exist for the inhibition to take effect. |
+| target_matchers _(or targetMatchers)_ #
_string array_ | _(Optional)_
TargetMatchers defines a list of matchers that have to be fulfilled by the target
alerts to be muted. |
#### InsertPorts {#v1beta1-insertports}
@@ -2886,26 +2887,27 @@ Appears in: [VMAgentSpec (v1beta1)](#v1beta1-vmagentspec), [VMInsert (v1beta1)](
JiraConfig represent alertmanager's jira_config entry
https://prometheus.io/docs/alerting/latest/configuration/#jira_config
-Available from v0.28.0 alertmanager version
+available from v0.55.0 operator version
+and v0.28.0 alertmanager version
Appears in: [Receiver (v1beta1)](#v1beta1-receiver)
| Field | Description |
| --- | --- |
-| api_url#
_string_ | _(Optional)_
The URL to send API requests to. The full API path must be included.
Example: https://company.atlassian.net/rest/api/2/ |
-| custom_fields#
_object (keys:string, values:[JSON (v1)](#v1-json))_ | _(Optional)_
Other issue and custom fields.
Jira issue field can have multiple types.
Depends on the field type, the values must be provided differently.
See https://developer.atlassian.com/server/jira/platform/jira-rest-api-examples/#setting-custom-field-data-for-other-field-types for further examples. |
+| api_url _(or apiUrl)_ #
_string_ | _(Optional)_
The URL to send API requests to. The full API path must be included.
Example: https://company.atlassian.net/rest/api/2/ |
+| custom_fields _(or customFields)_ #
_object (keys:string, values:[JSON (v1)](#v1-json))_ | _(Optional)_
Other issue and custom fields.
Jira issue field can have multiple types.
Depends on the field type, the values must be provided differently.
See https://developer.atlassian.com/server/jira/platform/jira-rest-api-examples/#setting-custom-field-data-for-other-field-types for further examples. |
| description#
_string_ | _(Optional)_
Issue description template. |
-| http_config#
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
The HTTP client's configuration. You must use this configuration to supply the personal access token (PAT) as part of the HTTP `Authorization` header.
For Jira Cloud, use basic_auth with the email address as the username and the PAT as the password.
For Jira Data Center, use the 'authorization' field with 'credentials: '. |
-| issue_type#
_string_ | _(Required)_
Type of the issue (e.g. Bug) |
+| http_config _(or httpConfig)_ #
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
The HTTP client's configuration. You must use this configuration to supply the personal access token (PAT) as part of the HTTP `Authorization` header.
For Jira Cloud, use basic_auth with the email address as the username and the PAT as the password.
For Jira Data Center, use the 'authorization' field with 'credentials: '. |
+| issue_type _(or issueType)_ #
_string_ | _(Required)_
Type of the issue (e.g. Bug) |
| labels#
_string array_ | _(Required)_
Labels to be added to the issue |
| priority#
_string_ | _(Required)_
Priority of the issue |
| project#
_string_ | _(Required)_
The project key where issues are created |
-| reopen_duration#
_string_ | _(Optional)_
If reopen_transition is defined, reopen the issue when it is not older than this value (rounded down to the nearest minute).
The resolutiondate field is used to determine the age of the issue. |
-| reopen_transition#
_string_ | _(Required)_
Name of the workflow transition to resolve an issue.
The target status must have the category "done". |
-| resolve_transition#
_string_ | _(Required)_
Name of the workflow transition to reopen an issue.
The target status should not have the category "done". |
-| send_resolved#
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
+| reopen_duration _(or reopenDuration)_ #
_string_ | _(Optional)_
If reopen_transition is defined, reopen the issue when it is not older than this value (rounded down to the nearest minute).
The resolutiondate field is used to determine the age of the issue. |
+| reopen_transition _(or reopenTransition)_ #
_string_ | _(Required)_
Name of the workflow transition to resolve an issue.
The target status must have the category "done". |
+| resolve_transition _(or resolveTransition)_ #
_string_ | _(Required)_
Name of the workflow transition to reopen an issue.
The target status should not have the category "done". |
+| send_resolved _(or sendResolved)_ #
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
| summary#
_string_ | _(Optional)_
Issue summary template |
-| wont_fix_resolution#
_string_ | _(Required)_
If reopen_transition is defined, ignore issues with that resolution. |
+| wont_fix_resolution _(or wontFixResolution)_ #
_string_ | _(Required)_
If reopen_transition is defined, ignore issues with that resolution. |
#### K8SSelectorConfig {#v1beta1-k8sselectorconfig}
@@ -3000,30 +3002,31 @@ Appears in: [Receiver (v1beta1)](#v1beta1-receiver)
| Field | Description |
| --- | --- |
-| http_config#
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
HTTP client configuration. |
-| send_resolved#
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
+| http_config _(or httpConfig)_ #
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
HTTP client configuration. |
+| send_resolved _(or sendResolved)_ #
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
| text#
_string_ | _(Optional)_
The text body of the teams notification. |
| title#
_string_ | _(Optional)_
The title of the teams notification. |
-| webhook_url#
_string_ | _(Optional)_
The incoming webhook URL
one of `urlSecret` and `url` must be defined. |
-| webhook_url_secret#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
URLSecret defines secret name and key at the CRD namespace.
It must contain the webhook URL.
one of `urlSecret` and `url` must be defined. |
+| webhook_url _(or webhookUrl)_ #
_string_ | _(Optional)_
The incoming webhook URL
one of `urlSecret` and `url` must be defined. |
+| webhook_url_secret _(or webhookUrlSecret)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
URLSecret defines secret name and key at the CRD namespace.
It must contain the webhook URL.
one of `urlSecret` and `url` must be defined. |
#### MSTeamsV2Config {#v1beta1-msteamsv2config}
MSTeamsV2Config sends notifications using the new message format with adaptive cards as required by flows.
https://support.microsoft.com/en-gb/office/create-incoming-webhooks-with-workflows-for-microsoft-teams-8ae491c7-0394-4861-ba59-055e33f75498
-Available from v0.28.0 alertmanager version
+available from v0.55.0 operator version
+and v0.28.0 alertmanager version
Appears in: [Receiver (v1beta1)](#v1beta1-receiver)
| Field | Description |
| --- | --- |
-| http_config#
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
|
-| send_resolved#
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
+| http_config _(or httpConfig)_ #
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
|
+| send_resolved _(or sendResolved)_ #
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
| text#
_string_ | _(Optional)_
Message body template. |
| title#
_string_ | _(Optional)_
Message title template. |
-| webhook_url#
_string_ | _(Optional)_
The incoming webhook URL
one of `urlSecret` and `url` must be defined. |
-| webhook_url_secret#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
URLSecret defines secret name and key at the CRD namespace.
It must contain the webhook URL.
one of `webhook_url` or `webhook_url_secret` must be defined. |
+| webhook_url _(or webhookUrl)_ #
_string_ | _(Optional)_
The incoming webhook URL
one of `urlSecret` and `url` must be defined. |
+| webhook_url_secret _(or webhookUrlSecret)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
URLSecret defines secret name and key at the CRD namespace.
It must contain the webhook URL.
one of `webhook_url` or `webhook_url_secret` must be defined. |
#### ManagedObjectsMetadata {#v1beta1-managedobjectsmetadata}
@@ -3063,20 +3066,20 @@ Appears in: [MattermostConfig (v1beta1)](#v1beta1-mattermostconfig)
| Field | Description |
| --- | --- |
-| author_icon#
_string_ | _(Required)_
|
-| author_link#
_string_ | _(Required)_
|
-| author_name#
_string_ | _(Required)_
|
+| author_icon _(or authorIcon)_ #
_string_ | _(Required)_
|
+| author_link _(or authorLink)_ #
_string_ | _(Required)_
|
+| author_name _(or authorName)_ #
_string_ | _(Required)_
|
| color#
_string_ | _(Required)_
|
| fallback#
_string_ | _(Required)_
|
| fields#
_[MattermostField (v1beta1)](#v1beta1-mattermostfield) array_ | _(Required)_
|
| footer
_string_ | _(Required)_
|
-| footer_icon
_string_ | _(Required)_
|
-| image_url#
_string_ | _(Required)_
|
+| footer_icon _(or footerIcon)_
_string_ | _(Required)_
|
+| image_url _(or imageUrl)_ #
_string_ | _(Required)_
|
| pretext#
_string_ | _(Required)_
|
| text#
_string_ | _(Required)_
|
-| thumb_url#
_string_ | _(Required)_
|
+| thumb_url _(or thumbUrl)_ #
_string_ | _(Required)_
|
| title#
_string_ | _(Required)_
|
-| title_link#
_string_ | _(Required)_
|
+| title_link _(or titleLink)_ #
_string_ | _(Required)_
|
#### MattermostConfig {#v1beta1-mattermostconfig}
@@ -3089,15 +3092,15 @@ Appears in: [Receiver (v1beta1)](#v1beta1-receiver)
| --- | --- |
| attachments#
_[MattermostAttachment (v1beta1)](#v1beta1-mattermostattachment) array_ | _(Optional)_
Attachments defines richer formatting options |
| channel#
_string_ | _(Optional)_
Channel overrides the channel the message posts in. |
-| http_config#
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
|
-| icon_emoji#
_string_ | _(Optional)_
IconEmoji overrides the profile picture and icon_url parameter. |
-| icon_url#
_string_ | _(Optional)_
IconURL overrides the profile picture the message posts with. |
+| http_config _(or httpConfig)_ #
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
|
+| icon_emoji _(or iconEmoji)_ #
_string_ | _(Optional)_
IconEmoji overrides the profile picture and icon_url parameter. |
+| icon_url _(or iconUrl)_ #
_string_ | _(Optional)_
IconURL overrides the profile picture the message posts with. |
| priority#
_[MattermostPriority (v1beta1)](#v1beta1-mattermostpriority)_ | _(Optional)_
|
| props#
_[MattermostProps (v1beta1)](#v1beta1-mattermostprops)_ | _(Optional)_
|
-| send_resolved#
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
+| send_resolved _(or sendResolved)_ #
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
| text#
_string_ | _(Required)_
Text defines markdown-formatted message to display in the post. |
| url#
_string_ | _(Optional)_
URL to send requests to,
one of `urlSecret` and `url` must be defined. |
-| url_secret#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
URLSecret defines secret name and key at the CRD namespace.
It must contain the Mattermost URL.
one of `urlSecret` and `url` must be defined. |
+| url_secret _(or urlSecret)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
URLSecret defines secret name and key at the CRD namespace.
It must contain the Mattermost URL.
one of `urlSecret` and `url` must be defined. |
| username#
_string_ | _(Optional)_
Username overrides the username the message posts as |
#### MattermostField {#v1beta1-mattermostfield}
@@ -3118,9 +3121,9 @@ Appears in: [MattermostConfig (v1beta1)](#v1beta1-mattermostconfig)
| Field | Description |
| --- | --- |
-| persistent_notifications#
_boolean_ | _(Required)_
|
+| persistent_notifications _(or persistentNotifications)_ #
_boolean_ | _(Required)_
|
| priority#
_string_ | _(Required)_
|
-| requested_ack#
_boolean_ | _(Required)_
|
+| requested_ack _(or requestedAck)_ #
_boolean_ | _(Required)_
|
#### MattermostProps {#v1beta1-mattermostprops}
@@ -3201,14 +3204,14 @@ Appears in: [AzureSDConfig (v1beta1)](#v1beta1-azuresdconfig), [ConsulAgentSDCon
| Field | Description |
| --- | --- |
-| client_id#
_[SecretOrConfigMap (v1beta1)](#v1beta1-secretorconfigmap)_ | _(Required)_
The secret or configmap containing the OAuth2 client id |
-| client_secret#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
The secret containing the OAuth2 client secret |
-| client_secret_file#
_string_ | _(Optional)_
ClientSecretFile defines path for client secret file. |
-| endpoint_params#
_object (keys:string, values:string)_ | _(Optional)_
Parameters to append to the token URL |
-| proxy_url#
_string_ | _(Optional)_
The proxy URL for token_url connection
Is only supported by Scrape objects family
Available from: v0.55.0 |
+| client_id _(or clientId)_ #
_[SecretOrConfigMap (v1beta1)](#v1beta1-secretorconfigmap)_ | _(Required)_
The secret or configmap containing the OAuth2 client id |
+| client_secret _(or clientSecret)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
The secret containing the OAuth2 client secret |
+| client_secret_file _(or clientSecretFile)_ #
_string_ | _(Optional)_
ClientSecretFile defines path for client secret file. |
+| endpoint_params _(or endpointParams)_ #
_object (keys:string, values:string)_ | _(Optional)_
Parameters to append to the token URL |
+| proxy_url _(or proxyUrl)_ #
_string_ | _(Optional)_
The proxy URL for token_url connection
Is only supported by Scrape objects family
Available from: v0.55.0 |
| scopes#
_string array_ | _(Optional)_
OAuth2 scopes used for the token request |
-| tls_config#
_[TLSConfig (v1beta1)](#v1beta1-tlsconfig)_ | _(Optional)_
TLSConfig for token_url connection
Is only supported by Scrape objects family
Available from: v0.55.0 |
-| token_url#
_string_ | _(Required)_
The URL to fetch the token from |
+| tls_config _(or tlsConfig)_ #
_[TLSConfig (v1beta1)](#v1beta1-tlsconfig)_ | _(Optional)_
TLSConfig for token_url connection
Is only supported by Scrape objects family
Available from: v0.55.0 |
+| token_url _(or tokenUrl)_ #
_string_ | _(Required)_
The URL to fetch the token from |
#### OVHCloudSDConfig {#v1beta1-ovhcloudsdconfig}
@@ -3272,20 +3275,20 @@ Appears in: [Receiver (v1beta1)](#v1beta1-receiver)
| Field | Description |
| --- | --- |
| actions#
_string_ | _(Required)_
Comma separated list of actions that will be available for the alert. |
-| apiURL#
_string_ | _(Optional)_
The URL to send OpsGenie API requests to. |
-| api_key#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
The secret's key that contains the OpsGenie API key.
It must be at them same namespace as CRD
fallback to global setting if empty |
+| apiURL _(or api_url)_ #
_string_ | _(Optional)_
The URL to send OpsGenie API requests to. |
+| api_key _(or apiKey)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
The secret's key that contains the OpsGenie API key.
It must be at them same namespace as CRD
fallback to global setting if empty |
| description#
_string_ | _(Optional)_
Description of the incident. |
| details#
_object (keys:string, values:string)_ | _(Optional)_
A set of arbitrary key/value pairs that provide further detail about the incident. |
| entity#
_string_ | _(Required)_
Optional field that can be used to specify which domain alert is related to. |
-| http_config#
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
HTTP client configuration. |
+| http_config _(or httpConfig)_ #
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
HTTP client configuration. |
| message#
_string_ | _(Optional)_
Alert text limited to 130 characters. |
| note#
_string_ | _(Optional)_
Additional alert note. |
| priority#
_string_ | _(Optional)_
Priority level of alert. Possible values are P1, P2, P3, P4, and P5. |
| responders#
_[OpsGenieConfigResponder (v1beta1)](#v1beta1-opsgenieconfigresponder) array_ | _(Optional)_
List of responders responsible for notifications. |
-| send_resolved#
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
+| send_resolved _(or sendResolved)_ #
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
| source#
_string_ | _(Optional)_
Backlink to the sender of the notification. |
| tags#
_string_ | _(Optional)_
Comma separated list of tags attached to the notifications. |
-| update_alerts#
_boolean_ | _(Required)_
Whether to update message and description of the alert in OpsGenie if it already exists
By default, the alert is never updated in OpsGenie, the new message only appears in activity log. |
+| update_alerts _(or updateAlerts)_ #
_boolean_ | _(Required)_
Whether to update message and description of the alert in OpsGenie if it already exists
By default, the alert is never updated in OpsGenie, the new message only appears in activity log. |
#### OpsGenieConfigResponder {#v1beta1-opsgenieconfigresponder}
@@ -3314,17 +3317,17 @@ Appears in: [Receiver (v1beta1)](#v1beta1-receiver)
| --- | --- |
| class
_string_ | _(Optional)_
The class/type of the event. |
| client
_string_ | _(Optional)_
Client identification. |
-| client_url
_string_ | _(Optional)_
Backlink to the sender of notification. |
+| client_url _(or clientUrl)_
_string_ | _(Optional)_
Backlink to the sender of notification. |
| component
_string_ | _(Optional)_
The part or component of the affected system that is broken. |
| description
_string_ | _(Optional)_
Description of the incident. |
| details
_object (keys:string, values:string)_ | _(Optional)_
Arbitrary key/value pairs that provide further detail about the incident. |
| group
_string_ | _(Optional)_
A cluster or grouping of sources. |
-| http_config
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
HTTP client configuration. |
+| http_config _(or httpConfig)_
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
HTTP client configuration. |
| images
_[ImageConfig (v1beta1)](#v1beta1-imageconfig) array_ | _(Optional)_
Images to attach to the incident. |
| links
_[LinkConfig (v1beta1)](#v1beta1-linkconfig) array_ | _(Optional)_
Links to attach to the incident. |
-| routing_key
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
The secret's key that contains the PagerDuty integration key (when using
Events API v2). Either this field or `serviceKey` needs to be defined.
It must be at them same namespace as CRD |
-| send_resolved
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
-| service_key
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
The secret's key that contains the PagerDuty service key (when using
integration type "Prometheus"). Either this field or `routingKey` needs to
be defined.
It must be at them same namespace as CRD |
+| routing_key _(or routingKey)_
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
The secret's key that contains the PagerDuty integration key (when using
Events API v2). Either this field or `serviceKey` needs to be defined.
It must be at them same namespace as CRD |
+| send_resolved _(or sendResolved)_
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
+| service_key _(or serviceKey)_
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
The secret's key that contains the PagerDuty service key (when using
integration type "Prometheus"). Either this field or `routingKey` needs to
be defined.
It must be at them same namespace as CRD |
| severity
_string_ | _(Optional)_
Severity of the incident. |
| url
_string_ | _(Optional)_
The URL to send requests to. |
@@ -3339,31 +3342,31 @@ Appears in: [VMPodScrapeSpec (v1beta1)](#v1beta1-vmpodscrapespec)
| --- | --- |
| attach_metadata#
_[AttachMetadata (v1beta1)](#v1beta1-attachmetadata)_ | _(Optional)_
AttachMetadata configures metadata attaching from service discovery |
| authorization#
_[Authorization (v1beta1)](#v1beta1-authorization)_ | _(Optional)_
Authorization with http header Authorization |
-| basicAuth#
_[BasicAuth (v1beta1)](#v1beta1-basicauth)_ | _(Optional)_
BasicAuth allow an endpoint to authenticate over basic authentication |
-| bearerTokenFile#
_string_ | _(Optional)_
File to read bearer token for scraping targets. |
-| bearerTokenSecret#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
Secret to mount to read bearer token for scraping targets. The secret
needs to be in the same namespace as the scrape object and accessible by
the victoria-metrics operator. |
+| basicAuth _(or basic_auth)_ #
_[BasicAuth (v1beta1)](#v1beta1-basicauth)_ | _(Optional)_
BasicAuth allow an endpoint to authenticate over basic authentication |
+| bearerTokenFile _(or bearer_token_file)_ #
_string_ | _(Optional)_
File to read bearer token for scraping targets. |
+| bearerTokenSecret _(or bearer_token_secret)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
Secret to mount to read bearer token for scraping targets. The secret
needs to be in the same namespace as the scrape object and accessible by
the victoria-metrics operator. |
| filterRunning#
_boolean_ | _(Optional)_
FilterRunning applies filter with pod status == running
it prevents from scrapping metrics at failed or succeed state pods.
enabled by default |
-| follow_redirects#
_boolean_ | _(Optional)_
FollowRedirects controls redirects for scraping. |
-| honorLabels#
_boolean_ | _(Optional)_
HonorLabels chooses the metric's labels on collisions with target labels. |
-| honorTimestamps#
_boolean_ | _(Optional)_
HonorTimestamps controls whether vmagent or vmsingle respects the timestamps present in scraped data. |
+| follow_redirects _(or followRedirects)_ #
_boolean_ | _(Optional)_
FollowRedirects controls redirects for scraping. |
+| honorLabels _(or honor_labels)_ #
_boolean_ | _(Optional)_
HonorLabels chooses the metric's labels on collisions with target labels. |
+| honorTimestamps _(or honor_timestamps)_ #
_boolean_ | _(Optional)_
HonorTimestamps controls whether vmagent or vmsingle respects the timestamps present in scraped data. |
| interval#
_string_ | _(Optional)_
Interval at which metrics should be scraped |
-| max_scrape_size#
_string_ | _(Optional)_
MaxScrapeSize defines a maximum size of scraped data for a job |
-| metricRelabelConfigs#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
MetricRelabelConfigs to apply to samples after scrapping. |
+| max_scrape_size _(or maxScrapeSize)_ #
_string_ | _(Optional)_
MaxScrapeSize defines a maximum size of scraped data for a job |
+| metricRelabelConfigs _(or metric_relabel_configs)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
MetricRelabelConfigs to apply to samples after scrapping. |
| oauth2#
_[OAuth2 (v1beta1)](#v1beta1-oauth2)_ | _(Optional)_
OAuth2 defines auth configuration |
| params#
_object (keys:string, values:string array)_ | _(Optional)_
Optional HTTP URL parameters |
| path#
_string_ | _(Optional)_
HTTP path to scrape for metrics. |
| port#
_string_ | _(Optional)_
Name of the port exposed at Pod. |
| portNumber#
_integer_ | _(Optional)_
PortNumber defines the `Pod` port number which exposes the endpoint. |
-| proxyURL#
_string_ | _(Optional)_
ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. |
-| relabelConfigs#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
RelabelConfigs to apply to samples during service discovery. |
-| sampleLimit#
_integer_ | _(Optional)_
SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. |
+| proxyURL _(or proxy_url)_ #
_string_ | _(Optional)_
ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. |
+| relabelConfigs _(or relabel_configs)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
RelabelConfigs to apply to samples during service discovery. |
+| sampleLimit _(or sample_limit)_ #
_integer_ | _(Optional)_
SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. |
| scheme#
_string_ | _(Optional)_
HTTP scheme to use for scraping. |
-| scrapeTimeout#
_string_ | _(Optional)_
Timeout after which the scrape is ended |
-| scrape_interval#
_string_ | _(Optional)_
ScrapeInterval is the same as Interval and has priority over it.
one of scrape_interval or interval can be used |
-| seriesLimit#
_integer_ | _(Optional)_
SeriesLimit defines per-scrape limit on number of unique time series
a single target can expose during all the scrapes on the time window of 24h. |
+| scrapeTimeout _(or scrape_timeout)_ #
_string_ | _(Optional)_
Timeout after which the scrape is ended |
+| scrape_interval _(or scrapeInterval)_ #
_string_ | _(Optional)_
ScrapeInterval is the same as Interval and has priority over it.
one of scrape_interval or interval can be used |
+| seriesLimit _(or series_limit)_ #
_integer_ | _(Optional)_
SeriesLimit defines per-scrape limit on number of unique time series
a single target can expose during all the scrapes on the time window of 24h. |
| targetPort#
_[IntOrString (intstr)](#intstr-intorstring)_ | _(Optional)_
TargetPort defines name or number of the pod port this endpoint refers to.
Mutually exclusive with Port and PortNumber. |
-| tlsConfig#
_[TLSConfig (v1beta1)](#v1beta1-tlsconfig)_ | _(Optional)_
TLSConfig configuration to use when scraping the endpoint |
-| vm_scrape_params#
_[VMScrapeParams (v1beta1)](#v1beta1-vmscrapeparams)_ | _(Optional)_
VMScrapeParams defines VictoriaMetrics specific scrape parameters |
+| tlsConfig _(or tls_config)_ #
_[TLSConfig (v1beta1)](#v1beta1-tlsconfig)_ | _(Optional)_
TLSConfig configuration to use when scraping the endpoint |
+| vm_scrape_params _(or vmScrapeParams)_ #
_[VMScrapeParams (v1beta1)](#v1beta1-vmscrapeparams)_ | _(Optional)_
VMScrapeParams defines VictoriaMetrics specific scrape parameters |
#### ProxyClientConfig {#v1beta1-proxyclientconfig}
@@ -3375,11 +3378,11 @@ Appears in: [AzureSDConfig (v1beta1)](#v1beta1-azuresdconfig), [ConsulAgentSDCon
| Field | Description |
| --- | --- |
| authorization#
_[Authorization (v1beta1)](#v1beta1-authorization)_ | _(Optional)_
Authorization with http header Authorization |
-| basic_auth#
_[BasicAuth (v1beta1)](#v1beta1-basicauth)_ | _(Optional)_
BasicAuth allows proxy to authenticate over basic authentication |
-| bearer_token#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
Secret to mount to read bearer token for scraping targets proxy auth. The secret
needs to be in the same namespace as the scrape object and accessible by
the victoria-metrics operator. |
-| bearer_token_file#
_string_ | _(Optional)_
BearerTokenFile defines file to read bearer token from for proxy auth. |
+| basic_auth _(or basicAuth)_ #
_[BasicAuth (v1beta1)](#v1beta1-basicauth)_ | _(Optional)_
BasicAuth allows proxy to authenticate over basic authentication |
+| bearer_token _(or bearerToken)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
Secret to mount to read bearer token for scraping targets proxy auth. The secret
needs to be in the same namespace as the scrape object and accessible by
the victoria-metrics operator. |
+| bearer_token_file _(or bearerTokenFile)_ #
_string_ | _(Optional)_
BearerTokenFile defines file to read bearer token from for proxy auth. |
| oauth2#
_[OAuth2 (v1beta1)](#v1beta1-oauth2)_ | _(Optional)_
OAuth2 defines auth configuration |
-| tls_config#
_[TLSConfig (v1beta1)](#v1beta1-tlsconfig)_ | _(Optional)_
TLSConfig configuration to use when scraping the endpoint |
+| tls_config _(or tlsConfig)_ #
_[TLSConfig (v1beta1)](#v1beta1-tlsconfig)_ | _(Optional)_
TLSConfig configuration to use when scraping the endpoint |
#### ProxyConfig {#v1beta1-proxyconfig}
@@ -3390,10 +3393,10 @@ Appears in: [HTTPConfig (v1beta1)](#v1beta1-httpconfig)
| Field | Description |
| --- | --- |
-| noProxy#
_string_ | _(Optional)_
NoProxy defines a comma-separated string that can contain IPs, CIDR notation, domain names that should be excluded from proxying.
IP and domain names can contain port numbers. |
-| proxyConnectHeader
_object (keys:string, values:[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#secretkeyselector-v1-core))_ | _(Optional)_
ProxyConnectHeader optionally specifies headers to send to proxies during CONNECT requests. |
-| proxyFromEnvironment#
_boolean_ | _(Optional)_
ProxyFromEnvironment defines whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). |
-| proxyURL#
_string_ | _(Optional)_
ProxyUrl defines the HTTP proxy server to use. |
+| noProxy _(or no_proxy)_ #
_string_ | _(Optional)_
NoProxy defines a comma-separated string that can contain IPs, CIDR notation, domain names that should be excluded from proxying.
IP and domain names can contain port numbers. |
+| proxyConnectHeader _(or proxy_connect_header)_
_object (keys:string, values:[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#secretkeyselector-v1-core))_ | _(Optional)_
ProxyConnectHeader optionally specifies headers to send to proxies during CONNECT requests. |
+| proxyFromEnvironment _(or proxy_from_environment)_ #
_boolean_ | _(Optional)_
ProxyFromEnvironment defines whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY). |
+| proxyURL _(or proxy_url)_ #
_string_ | _(Optional)_
ProxyUrl defines the HTTP proxy server to use. |
#### PuppetDBSDConfig {#v1beta1-puppetdbsdconfig}
@@ -3429,17 +3432,17 @@ Appears in: [Receiver (v1beta1)](#v1beta1-receiver)
| --- | --- |
| expire#
_string_ | _(Optional)_
How long your notification will continue to be retried for, unless the user
acknowledges the notification. |
| html#
_boolean_ | _(Optional)_
Whether notification message is HTML or plain text. |
-| http_config#
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
HTTP client configuration. |
+| http_config _(or httpConfig)_ #
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
HTTP client configuration. |
| message#
_string_ | _(Optional)_
Notification message. |
| priority#
_string_ | _(Optional)_
Priority, see https://pushover.net/api#priority |
| retry#
_string_ | _(Optional)_
How often the Pushover servers will send the same notification to the user.
Must be at least 30 seconds. |
-| send_resolved#
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
+| send_resolved _(or sendResolved)_ #
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
| sound#
_string_ | _(Optional)_
The name of one of the sounds supported by device clients to override the user's default sound choice |
| title#
_string_ | _(Optional)_
Notification title. |
| token#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Required)_
The secret's key that contains the registered application’s API token, see https://pushover.net/apps.
It must be at them same namespace as CRD |
| url#
_string_ | _(Optional)_
A supplementary URL shown alongside the message. |
-| url_title#
_string_ | _(Optional)_
A title for supplementary URL, otherwise just the URL is shown |
-| user_key#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Required)_
The secret's key that contains the recipient user’s user key.
It must be at them same namespace as CRD |
+| url_title _(or urlTitle)_ #
_string_ | _(Optional)_
A title for supplementary URL, otherwise just the URL is shown |
+| user_key _(or userKey)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Required)_
The secret's key that contains the recipient user’s user key.
It must be at them same namespace as CRD |
#### QueryArg {#v1beta1-queryarg}
@@ -3462,25 +3465,25 @@ Appears in: [VMAlertmanagerConfigSpec (v1beta1)](#v1beta1-vmalertmanagerconfigsp
| Field | Description |
| --- | --- |
-| discord_configs#
_[DiscordConfig (v1beta1)](#v1beta1-discordconfig) array_ | _(Optional)_
|
-| email_configs#
_[EmailConfig (v1beta1)](#v1beta1-emailconfig) array_ | _(Optional)_
EmailConfigs defines email notification configurations. |
-| incidentio_configs#
_[IncidentioConfig (v1beta1)](#v1beta1-incidentioconfig) array_ | _(Optional)_
Available from: v0.66.0 |
-| jira_configs#
_[JiraConfig (v1beta1)](#v1beta1-jiraconfig) array_ | _(Optional)_
Available from: v0.55.0 |
-| mattermost_configs#
_[MattermostConfig (v1beta1)](#v1beta1-mattermostconfig) array_ | _(Optional)_
MattermostConfigs defines Mattermost notification configurations. |
-| msteams_configs#
_[MSTeamsConfig (v1beta1)](#v1beta1-msteamsconfig) array_ | _(Optional)_
|
-| msteamsv2_configs#
_[MSTeamsV2Config (v1beta1)](#v1beta1-msteamsv2config) array_ | _(Optional)_
Available from: v0.55.0 |
+| discord_configs _(or discordConfigs)_ #
_[DiscordConfig (v1beta1)](#v1beta1-discordconfig) array_ | _(Optional)_
|
+| email_configs _(or emailConfigs)_ #
_[EmailConfig (v1beta1)](#v1beta1-emailconfig) array_ | _(Optional)_
EmailConfigs defines email notification configurations. |
+| incidentio_configs _(or incidentioConfigs)_ #
_[IncidentioConfig (v1beta1)](#v1beta1-incidentioconfig) array_ | _(Optional)_
Available from: v0.66.0 |
+| jira_configs _(or jiraConfigs)_ #
_[JiraConfig (v1beta1)](#v1beta1-jiraconfig) array_ | _(Optional)_
Available from: v0.55.0 |
+| mattermost_configs _(or mattermostConfigs)_ #
_[MattermostConfig (v1beta1)](#v1beta1-mattermostconfig) array_ | _(Optional)_
MattermostConfigs defines Mattermost notification configurations. |
+| msteams_configs _(or msteamsConfigs)_ #
_[MSTeamsConfig (v1beta1)](#v1beta1-msteamsconfig) array_ | _(Optional)_
|
+| msteamsv2_configs _(or msteamsv2Configs)_ #
_[MSTeamsV2Config (v1beta1)](#v1beta1-msteamsv2config) array_ | _(Optional)_
Available from: v0.55.0 |
| name#
_string_ | _(Required)_
Name of the receiver. Must be unique across all items from the list. |
-| opsgenie_configs#
_[OpsGenieConfig (v1beta1)](#v1beta1-opsgenieconfig) array_ | _(Optional)_
OpsGenieConfigs defines ops genie notification configurations. |
-| pagerduty_configs
_[PagerDutyConfig (v1beta1)](#v1beta1-pagerdutyconfig) array_ | _(Optional)_
PagerDutyConfigs defines pager duty notification configurations. |
-| pushover_configs#
_[PushoverConfig (v1beta1)](#v1beta1-pushoverconfig) array_ | _(Optional)_
PushoverConfigs defines push over notification configurations. |
-| rocketchat_configs#
_[RocketchatConfig (v1beta1)](#v1beta1-rocketchatconfig) array_ | _(Optional)_
Available from: v0.55.0 |
-| slack_configs#
_[SlackConfig (v1beta1)](#v1beta1-slackconfig) array_ | _(Optional)_
SlackConfigs defines slack notification configurations. |
-| sns_configs#
_[SNSConfig (v1beta1)](#v1beta1-snsconfig) array_ | _(Optional)_
|
-| telegram_configs#
_[TelegramConfig (v1beta1)](#v1beta1-telegramconfig) array_ | _(Optional)_
|
-| victorops_configs#
_[VictorOpsConfig (v1beta1)](#v1beta1-victoropsconfig) array_ | _(Optional)_
VictorOpsConfigs defines victor ops notification configurations. |
-| webex_configs#
_[WebexConfig (v1beta1)](#v1beta1-webexconfig) array_ | _(Optional)_
|
-| webhook_configs#
_[WebhookConfig (v1beta1)](#v1beta1-webhookconfig) array_ | _(Optional)_
WebhookConfigs defines webhook notification configurations. |
-| wechat_configs#
_[WechatConfig (v1beta1)](#v1beta1-wechatconfig) array_ | _(Optional)_
WechatConfigs defines wechat notification configurations. |
+| opsgenie_configs _(or opsgenieConfigs)_ #
_[OpsGenieConfig (v1beta1)](#v1beta1-opsgenieconfig) array_ | _(Optional)_
OpsGenieConfigs defines ops genie notification configurations. |
+| pagerduty_configs _(or pagerdutyConfigs)_
_[PagerDutyConfig (v1beta1)](#v1beta1-pagerdutyconfig) array_ | _(Optional)_
PagerDutyConfigs defines pager duty notification configurations. |
+| pushover_configs _(or pushoverConfigs)_ #
_[PushoverConfig (v1beta1)](#v1beta1-pushoverconfig) array_ | _(Optional)_
PushoverConfigs defines push over notification configurations. |
+| rocketchat_configs _(or rocketchatConfigs)_ #
_[RocketchatConfig (v1beta1)](#v1beta1-rocketchatconfig) array_ | _(Optional)_
Available from: v0.55.0 |
+| slack_configs _(or slackConfigs)_ #
_[SlackConfig (v1beta1)](#v1beta1-slackconfig) array_ | _(Optional)_
SlackConfigs defines slack notification configurations. |
+| sns_configs _(or snsConfigs)_ #
_[SNSConfig (v1beta1)](#v1beta1-snsconfig) array_ | _(Optional)_
|
+| telegram_configs _(or telegramConfigs)_ #
_[TelegramConfig (v1beta1)](#v1beta1-telegramconfig) array_ | _(Optional)_
|
+| victorops_configs _(or victoropsConfigs)_ #
_[VictorOpsConfig (v1beta1)](#v1beta1-victoropsconfig) array_ | _(Optional)_
VictorOpsConfigs defines victor ops notification configurations. |
+| webex_configs _(or webexConfigs)_ #
_[WebexConfig (v1beta1)](#v1beta1-webexconfig) array_ | _(Optional)_
|
+| webhook_configs _(or webhookConfigs)_ #
_[WebhookConfig (v1beta1)](#v1beta1-webhookconfig) array_ | _(Optional)_
WebhookConfigs defines webhook notification configurations. |
+| wechat_configs _(or wechatConfigs)_ #
_[WechatConfig (v1beta1)](#v1beta1-wechatconfig) array_ | _(Optional)_
WechatConfigs defines wechat notification configurations. |
#### RelabelConfig {#v1beta1-relabelconfig}
@@ -3500,10 +3503,8 @@ Appears in: [CommonRelabelParams (v1beta1)](#v1beta1-commonrelabelparams), [Comm
| regex#
_[StringOrArray (v1beta1)](#v1beta1-stringorarray)_ | _(Optional)_
Regular expression against which the extracted value is matched. Default is '(.*)'
victoriaMetrics supports multiline regex joined with \|
https://docs.victoriametrics.com/victoriametrics/vmagent/#relabeling-enhancements |
| replacement#
_string_ | _(Optional)_
Replacement value against which a regex replace is performed if the
regular expression matches. Regex capture groups are available. Default is '$1' |
| separator#
_string_ | _(Optional)_
Separator placed between concatenated source label values. default is ';'. |
-| sourceLabels#
_string array_ | _(Optional)_
The source labels select values from existing labels. Their content is concatenated
using the configured separator and matched against the configured regular expression
for the replace, keep, and drop actions. |
-| source_labels#
_string array_ | _(Optional)_
UnderScoreSourceLabels - additional form of source labels source_labels
for compatibility with original relabel config.
if set both sourceLabels and source_labels, sourceLabels has priority.
for details https://github.com/VictoriaMetrics/operator/issues/131 |
-| targetLabel#
_string_ | _(Optional)_
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available. |
-| target_label#
_string_ | _(Optional)_
UnderScoreTargetLabel - additional form of target label - target_label
for compatibility with original relabel config.
if set both targetLabel and target_label, targetLabel has priority.
for details https://github.com/VictoriaMetrics/operator/issues/131 |
+| sourceLabels _(or source_labels)_ #
_string array_ | _(Optional)_
The source labels select values from existing labels. Their content is concatenated
using the configured separator and matched against the configured regular expression
for the replace, keep, and drop actions. |
+| targetLabel _(or target_label)_ #
_string_ | _(Optional)_
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available. |
#### RetentionFilter {#v1beta1-retentionfilter}
@@ -3569,30 +3570,31 @@ Appears in: [RocketchatConfig (v1beta1)](#v1beta1-rocketchatconfig)
RocketchatConfig configures notifications via Rocketchat.
https://prometheus.io/docs/alerting/latest/configuration/#rocketchat_config
-Available from v0.28.0 alertmanager version
+available from v0.55.0 operator version
+and v0.28.0 alertmanager version
Appears in: [Receiver (v1beta1)](#v1beta1-receiver)
| Field | Description |
| --- | --- |
| actions#
_[RocketchatAttachmentAction (v1beta1)](#v1beta1-rocketchatattachmentaction) array_ | _(Optional)_
|
-| api_url#
_string_ | _(Optional)_
|
+| api_url _(or apiUrl)_ #
_string_ | _(Optional)_
|
| channel#
_string_ | _(Optional)_
RocketChat channel override, (like #other-channel or @username). |
| color#
_string_ | _(Optional)_
|
| emoji#
_string_ | _(Optional)_
|
| fields#
_[RocketchatAttachmentField (v1beta1)](#v1beta1-rocketchatattachmentfield) array_ | _(Optional)_
|
-| http_config#
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
|
-| icon_url#
_string_ | _(Optional)_
|
-| image_url#
_string_ | _(Optional)_
|
-| link_names#
_boolean_ | _(Optional)_
|
-| send_resolved#
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
-| short_fields#
_boolean_ | _(Optional)_
|
+| http_config _(or httpConfig)_ #
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
|
+| icon_url _(or iconUrl)_ #
_string_ | _(Optional)_
|
+| image_url _(or imageUrl)_ #
_string_ | _(Optional)_
|
+| link_names _(or linkNames)_ #
_boolean_ | _(Optional)_
|
+| send_resolved _(or sendResolved)_ #
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
+| short_fields _(or shortFields)_ #
_boolean_ | _(Optional)_
|
| text#
_string_ | _(Optional)_
|
-| thumb_url#
_string_ | _(Optional)_
|
+| thumb_url _(or thumbUrl)_ #
_string_ | _(Optional)_
|
| title#
_string_ | _(Optional)_
|
-| title_link#
_string_ | _(Optional)_
|
+| title_link _(or titleLink)_ #
_string_ | _(Optional)_
|
| token#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
|
-| token_id#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
The sender token and token_id
See https://docs.rocket.chat/docs/manage-personal-access-tokens |
+| token_id _(or tokenId)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
The sender token and token_id
See https://docs.rocket.chat/docs/manage-personal-access-tokens |
#### Route {#v1beta1-route}
@@ -3603,15 +3605,15 @@ Appears in: [VMAlertmanagerConfigSpec (v1beta1)](#v1beta1-vmalertmanagerconfigsp
| Field | Description |
| --- | --- |
-| active_time_intervals#
_string array_ | _(Optional)_
ActiveTimeIntervals Times when the route should be active
These must match the name at time_intervals |
+| active_time_intervals _(or activeTimeIntervals)_ #
_string array_ | _(Optional)_
ActiveTimeIntervals Times when the route should be active
These must match the name at time_intervals |
| continue#
_boolean_ | _(Optional)_
Continue indicating whether an alert should continue matching subsequent
sibling nodes. It will always be true for the first-level route if disableRouteContinueEnforce for vmalertmanager not set. |
-| group_by#
_string array_ | _(Optional)_
List of labels to group by. |
-| group_interval#
_string_ | _(Optional)_
How long to wait before sending an updated notification. |
-| group_wait#
_string_ | _(Optional)_
How long to wait before sending the initial notification. |
+| group_by _(or groupBy)_ #
_string array_ | _(Optional)_
List of labels to group by. |
+| group_interval _(or groupInterval)_ #
_string_ | _(Optional)_
How long to wait before sending an updated notification. |
+| group_wait _(or groupWait)_ #
_string_ | _(Optional)_
How long to wait before sending the initial notification. |
| matchers#
_string array_ | _(Optional)_
List of matchers that the alert’s labels should match. For the first
level route, the operator adds a namespace: "CRD_NS" matcher.
https://prometheus.io/docs/alerting/latest/configuration/#matcher |
-| mute_time_intervals#
_string array_ | _(Optional)_
MuteTimeIntervals is a list of interval names that will mute matched alert |
+| mute_time_intervals _(or muteTimeIntervals)_ #
_string array_ | _(Optional)_
MuteTimeIntervals is a list of interval names that will mute matched alert |
| receiver#
_string_ | _(Required)_
Name of the receiver for this route. |
-| repeat_interval#
_string_ | _(Optional)_
How long to wait before repeating the last notification. |
+| repeat_interval _(or repeatInterval)_ #
_string_ | _(Optional)_
How long to wait before repeating the last notification. |
| routes#
_[JSON (v1)](#v1-json) array_ | _(Optional)_
Child routes.
https://prometheus.io/docs/alerting/latest/configuration/#route |
#### Rule {#v1beta1-rule}
@@ -3664,16 +3666,16 @@ Appears in: [Receiver (v1beta1)](#v1beta1-receiver)
| Field | Description |
| --- | --- |
-| api_url#
_string_ | _(Optional)_
The api URL |
+| api_url _(or apiUrl)_ #
_string_ | _(Optional)_
The api URL |
| attributes#
_object (keys:string, values:string)_ | _(Optional)_
SNS message attributes |
-| http_config#
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
HTTP client configuration. |
+| http_config _(or httpConfig)_ #
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
HTTP client configuration. |
| message#
_string_ | _(Optional)_
The message content of the SNS notification. |
-| phone_number#
_string_ | _(Required)_
Phone number if message is delivered via SMS
Specify this, topic_arn or target_arn |
-| send_resolved#
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
+| phone_number _(or phoneNumber)_ #
_string_ | _(Required)_
Phone number if message is delivered via SMS
Specify this, topic_arn or target_arn |
+| send_resolved _(or sendResolved)_ #
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
| sigv4#
_[Sigv4Config (v1beta1)](#v1beta1-sigv4config)_ | _(Required)_
Configure the AWS Signature Verification 4 signing process |
| subject#
_string_ | _(Optional)_
The subject line if message is delivered to an email endpoint. |
-| target_arn#
_string_ | _(Optional)_
Mobile platform endpoint ARN if message is delivered via mobile notifications
Specify this, topic_arn or phone_number |
-| topic_arn#
_string_ | _(Optional)_
SNS topic ARN, either specify this, phone_number or target_arn |
+| target_arn _(or targetArn)_ #
_string_ | _(Optional)_
Mobile platform endpoint ARN if message is delivered via mobile notifications
Specify this, topic_arn or phone_number |
+| topic_arn _(or topicArn)_ #
_string_ | _(Optional)_
SNS topic ARN, either specify this, phone_number or target_arn |
#### ScrapeClass {#v1beta1-scrapeclass}
@@ -3682,17 +3684,17 @@ Appears in: [CommonScrapeParams (v1beta1)](#v1beta1-commonscrapeparams), [VMAgen
| Field | Description |
| --- | --- |
-| attachMetadata#
_[AttachMetadata (v1beta1)](#v1beta1-attachmetadata)_ | _(Optional)_
AttachMetadata defines additional metadata to the discovered targets.
When the scrape object defines its own configuration, it takes
precedence over the scrape class configuration. |
+| attachMetadata _(or attach_metadata)_ #
_[AttachMetadata (v1beta1)](#v1beta1-attachmetadata)_ | _(Optional)_
AttachMetadata defines additional metadata to the discovered targets.
When the scrape object defines its own configuration, it takes
precedence over the scrape class configuration. |
| authorization#
_[Authorization (v1beta1)](#v1beta1-authorization)_ | _(Optional)_
Authorization with http header Authorization |
-| basicAuth#
_[BasicAuth (v1beta1)](#v1beta1-basicauth)_ | _(Optional)_
BasicAuth allow an endpoint to authenticate over basic authentication |
-| bearerTokenFile#
_string_ | _(Optional)_
File to read bearer token for scraping targets. |
-| bearerTokenSecret#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
Secret to mount to read bearer token for scraping targets. The secret
needs to be in the same namespace as the scrape object and accessible by
the victoria-metrics operator. |
+| basicAuth _(or basic_auth)_ #
_[BasicAuth (v1beta1)](#v1beta1-basicauth)_ | _(Optional)_
BasicAuth allow an endpoint to authenticate over basic authentication |
+| bearerTokenFile _(or bearer_token_file)_ #
_string_ | _(Optional)_
File to read bearer token for scraping targets. |
+| bearerTokenSecret _(or bearer_token_secret)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
Secret to mount to read bearer token for scraping targets. The secret
needs to be in the same namespace as the scrape object and accessible by
the victoria-metrics operator. |
| default#
_boolean_ | _(Optional)_
default defines that the scrape applies to all scrape objects that
don't configure an explicit scrape class name.
Only one scrape class can be set as the default. |
-| metricRelabelConfigs#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
MetricRelabelConfigs to apply to samples after scrapping. |
+| metricRelabelConfigs _(or metric_relabel_configs)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
MetricRelabelConfigs to apply to samples after scrapping. |
| name#
_string_ | _(Required)_
name of the scrape class. |
| oauth2#
_[OAuth2 (v1beta1)](#v1beta1-oauth2)_ | _(Optional)_
OAuth2 defines auth configuration |
-| relabelConfigs#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
RelabelConfigs to apply to samples during service discovery. |
-| tlsConfig#
_[TLSConfig (v1beta1)](#v1beta1-tlsconfig)_ | _(Optional)_
TLSConfig configuration to use when scraping the endpoint |
+| relabelConfigs _(or relabel_configs)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
RelabelConfigs to apply to samples during service discovery. |
+| tlsConfig _(or tls_config)_ #
_[TLSConfig (v1beta1)](#v1beta1-tlsconfig)_ | _(Optional)_
TLSConfig configuration to use when scraping the endpoint |
#### SecretOrConfigMap {#v1beta1-secretorconfigmap}
@@ -3721,12 +3723,12 @@ Appears in: [SNSConfig (v1beta1)](#v1beta1-snsconfig)
| Field | Description |
| --- | --- |
-| access_key#
_string_ | _(Optional)_
The AWS API keys. Both access_key and secret_key must be supplied or both must be blank.
If blank the environment variables `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` are used. |
-| access_key_selector#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
secret key selector to get the keys from a Kubernetes Secret |
+| access_key _(or accessKey)_ #
_string_ | _(Optional)_
The AWS API keys. Both access_key and secret_key must be supplied or both must be blank.
If blank the environment variables `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` are used. |
+| access_key_selector _(or accessKeySelector)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
secret key selector to get the keys from a Kubernetes Secret |
| profile#
_string_ | _(Optional)_
Named AWS profile used to authenticate |
| region#
_string_ | _(Optional)_
AWS region, if blank the region from the default credentials chain is used |
-| role_arn#
_string_ | _(Optional)_
AWS Role ARN, an alternative to using AWS API keys |
-| secret_key_selector#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
secret key selector to get the keys from a Kubernetes Secret |
+| role_arn _(or roleArn)_ #
_string_ | _(Optional)_
AWS Role ARN, an alternative to using AWS API keys |
+| secret_key_selector _(or secretKeySelector)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
secret key selector to get the keys from a Kubernetes Secret |
#### SlackAction {#v1beta1-slackaction}
@@ -3759,27 +3761,27 @@ Appears in: [Receiver (v1beta1)](#v1beta1-receiver)
| Field | Description |
| --- | --- |
| actions#
_[SlackAction (v1beta1)](#v1beta1-slackaction) array_ | _(Optional)_
A list of Slack actions that are sent with each notification. |
-| api_url#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
The secret's key that contains the Slack webhook URL.
It must be at them same namespace as CRD
fallback to global setting if empty |
-| callback_id#
_string_ | _(Optional)_
|
+| api_url _(or apiUrl)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
The secret's key that contains the Slack webhook URL.
It must be at them same namespace as CRD
fallback to global setting if empty |
+| callback_id _(or callbackId)_ #
_string_ | _(Optional)_
|
| channel#
_string_ | _(Optional)_
The channel or user to send notifications to. |
| color#
_string_ | _(Optional)_
|
| fallback#
_string_ | _(Optional)_
|
| fields#
_[SlackField (v1beta1)](#v1beta1-slackfield) array_ | _(Optional)_
A list of Slack fields that are sent with each notification. |
| footer
_string_ | _(Optional)_
|
-| http_config#
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
HTTP client configuration. |
-| icon_emoji#
_string_ | _(Optional)_
|
-| icon_url#
_string_ | _(Optional)_
|
-| image_url#
_string_ | _(Optional)_
|
-| link_names#
_boolean_ | _(Optional)_
|
-| mrkdwn_in#
_string array_ | _(Optional)_
|
+| http_config _(or httpConfig)_ #
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
HTTP client configuration. |
+| icon_emoji _(or iconEmoji)_ #
_string_ | _(Optional)_
|
+| icon_url _(or iconUrl)_ #
_string_ | _(Optional)_
|
+| image_url _(or imageUrl)_ #
_string_ | _(Optional)_
|
+| link_names _(or linkNames)_ #
_boolean_ | _(Optional)_
|
+| mrkdwn_in _(or mrkdwnIn)_ #
_string array_ | _(Optional)_
|
| pretext#
_string_ | _(Optional)_
|
-| send_resolved#
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
-| short_fields#
_boolean_ | _(Optional)_
|
+| send_resolved _(or sendResolved)_ #
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
+| short_fields _(or shortFields)_ #
_boolean_ | _(Optional)_
|
| text#
_string_ | _(Optional)_
|
-| thumb_url#
_string_ | _(Optional)_
|
+| thumb_url _(or thumbUrl)_ #
_string_ | _(Optional)_
|
| title#
_string_ | _(Optional)_
|
-| title_link#
_string_ | _(Optional)_
|
-| update_message#
_boolean_ | _(Optional)_
Whether to update the original message in-place instead of sending a new one.
Requires Slack Bot API and chat:write scope.
Available since alertmanager v0.32.0. |
+| title_link _(or titleLink)_ #
_string_ | _(Optional)_
|
+| update_message _(or updateMessage)_ #
_boolean_ | _(Optional)_
Whether to update the original message in-place instead of sending a new one.
Requires Slack Bot API and chat:write scope.
Available since alertmanager v0.32.0. |
| username#
_string_ | _(Optional)_
|
#### SlackConfirmationField {#v1beta1-slackconfirmationfield}
@@ -3795,8 +3797,8 @@ Appears in: [SlackAction (v1beta1)](#v1beta1-slackaction)
| Field | Description |
| --- | --- |
-| dismiss_text#
_string_ | _(Optional)_
|
-| ok_text#
_string_ | _(Optional)_
|
+| dismiss_text _(or dismissText)_ #
_string_ | _(Optional)_
|
+| ok_text _(or okText)_ #
_string_ | _(Optional)_
|
| text#
_string_ | _(Required)_
|
| title#
_string_ | _(Optional)_
|
@@ -3985,29 +3987,29 @@ Appears in: [VMStaticScrapeSpec (v1beta1)](#v1beta1-vmstaticscrapespec)
| Field | Description |
| --- | --- |
| authorization#
_[Authorization (v1beta1)](#v1beta1-authorization)_ | _(Optional)_
Authorization with http header Authorization |
-| basicAuth#
_[BasicAuth (v1beta1)](#v1beta1-basicauth)_ | _(Optional)_
BasicAuth allow an endpoint to authenticate over basic authentication |
-| bearerTokenFile#
_string_ | _(Optional)_
File to read bearer token for scraping targets. |
-| bearerTokenSecret#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
Secret to mount to read bearer token for scraping targets. The secret
needs to be in the same namespace as the scrape object and accessible by
the victoria-metrics operator. |
-| follow_redirects#
_boolean_ | _(Optional)_
FollowRedirects controls redirects for scraping. |
-| honorLabels#
_boolean_ | _(Optional)_
HonorLabels chooses the metric's labels on collisions with target labels. |
-| honorTimestamps#
_boolean_ | _(Optional)_
HonorTimestamps controls whether vmagent or vmsingle respects the timestamps present in scraped data. |
+| basicAuth _(or basic_auth)_ #
_[BasicAuth (v1beta1)](#v1beta1-basicauth)_ | _(Optional)_
BasicAuth allow an endpoint to authenticate over basic authentication |
+| bearerTokenFile _(or bearer_token_file)_ #
_string_ | _(Optional)_
File to read bearer token for scraping targets. |
+| bearerTokenSecret _(or bearer_token_secret)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
Secret to mount to read bearer token for scraping targets. The secret
needs to be in the same namespace as the scrape object and accessible by
the victoria-metrics operator. |
+| follow_redirects _(or followRedirects)_ #
_boolean_ | _(Optional)_
FollowRedirects controls redirects for scraping. |
+| honorLabels _(or honor_labels)_ #
_boolean_ | _(Optional)_
HonorLabels chooses the metric's labels on collisions with target labels. |
+| honorTimestamps _(or honor_timestamps)_ #
_boolean_ | _(Optional)_
HonorTimestamps controls whether vmagent or vmsingle respects the timestamps present in scraped data. |
| interval#
_string_ | _(Optional)_
Interval at which metrics should be scraped |
| labels#
_object (keys:string, values:string)_ | _(Optional)_
Labels static labels for targets. |
-| max_scrape_size#
_string_ | _(Optional)_
MaxScrapeSize defines a maximum size of scraped data for a job |
-| metricRelabelConfigs#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
MetricRelabelConfigs to apply to samples after scrapping. |
+| max_scrape_size _(or maxScrapeSize)_ #
_string_ | _(Optional)_
MaxScrapeSize defines a maximum size of scraped data for a job |
+| metricRelabelConfigs _(or metric_relabel_configs)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
MetricRelabelConfigs to apply to samples after scrapping. |
| oauth2#
_[OAuth2 (v1beta1)](#v1beta1-oauth2)_ | _(Optional)_
OAuth2 defines auth configuration |
| params#
_object (keys:string, values:string array)_ | _(Optional)_
Optional HTTP URL parameters |
| path#
_string_ | _(Optional)_
HTTP path to scrape for metrics. |
-| proxyURL#
_string_ | _(Optional)_
ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. |
-| relabelConfigs#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
RelabelConfigs to apply to samples during service discovery. |
-| sampleLimit#
_integer_ | _(Optional)_
SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. |
+| proxyURL _(or proxy_url)_ #
_string_ | _(Optional)_
ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. |
+| relabelConfigs _(or relabel_configs)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
RelabelConfigs to apply to samples during service discovery. |
+| sampleLimit _(or sample_limit)_ #
_integer_ | _(Optional)_
SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. |
| scheme#
_string_ | _(Optional)_
HTTP scheme to use for scraping. |
-| scrapeTimeout#
_string_ | _(Optional)_
Timeout after which the scrape is ended |
-| scrape_interval#
_string_ | _(Optional)_
ScrapeInterval is the same as Interval and has priority over it.
one of scrape_interval or interval can be used |
-| seriesLimit#
_integer_ | _(Optional)_
SeriesLimit defines per-scrape limit on number of unique time series
a single target can expose during all the scrapes on the time window of 24h. |
+| scrapeTimeout _(or scrape_timeout)_ #
_string_ | _(Optional)_
Timeout after which the scrape is ended |
+| scrape_interval _(or scrapeInterval)_ #
_string_ | _(Optional)_
ScrapeInterval is the same as Interval and has priority over it.
one of scrape_interval or interval can be used |
+| seriesLimit _(or series_limit)_ #
_integer_ | _(Optional)_
SeriesLimit defines per-scrape limit on number of unique time series
a single target can expose during all the scrapes on the time window of 24h. |
| targets#
_string array_ | _(Required)_
Targets static targets addresses in form of ["192.122.55.55:9100","some-name:9100"]. |
-| tlsConfig#
_[TLSConfig (v1beta1)](#v1beta1-tlsconfig)_ | _(Optional)_
TLSConfig configuration to use when scraping the endpoint |
-| vm_scrape_params#
_[VMScrapeParams (v1beta1)](#v1beta1-vmscrapeparams)_ | _(Optional)_
VMScrapeParams defines VictoriaMetrics specific scrape parameters |
+| tlsConfig _(or tls_config)_ #
_[TLSConfig (v1beta1)](#v1beta1-tlsconfig)_ | _(Optional)_
TLSConfig configuration to use when scraping the endpoint |
+| vm_scrape_params _(or vmScrapeParams)_ #
_[VMScrapeParams (v1beta1)](#v1beta1-vmscrapeparams)_ | _(Optional)_
VMScrapeParams defines VictoriaMetrics specific scrape parameters |
#### TargetRef {#v1beta1-targetref}
@@ -4021,12 +4023,19 @@ Appears in: [VMAuthSpec (v1beta1)](#v1beta1-vmauthspec), [VMAuthUnauthorizedUser
| Field | Description |
| --- | --- |
-| URLMapCommon#
_[URLMapCommon (v1beta1)](#v1beta1-urlmapcommon)_ | _(Required)_
|
| crd#
_[CRDRef (v1beta1)](#v1beta1-crdref)_ | _(Optional)_
CRD describes exist operator's CRD object,
operator generates access url based on CRD params. |
+| discover_backend_ips#
_boolean_ | _(Required)_
DiscoverBackendIPs instructs discovering URLPrefix backend IPs via DNS. |
+| drop_src_path_prefix_parts#
_integer_ | _(Optional)_
DropSrcPathPrefixParts is the number of `/`-delimited request path prefix parts to drop before proxying the request to backend.
See [here](https://docs.victoriametrics.com/victoriametrics/vmauth/#dropping-request-path-prefix) for more details. |
+| headers
_string array_ | _(Optional)_
RequestHeaders represent additional http headers, that vmauth uses
in form of ["header_key: header_value"]
multiple values for header key:
["header_key: value1,value2"]
it's available since 1.68.0 version of vmauth |
| hosts#
_string array_ | _(Required)_
|
+| load_balancing_policy#
_string_ | _(Optional)_
LoadBalancingPolicy defines load balancing policy to use for backend urls.
Supported policies: least_loaded, first_available.
See [here](https://docs.victoriametrics.com/victoriametrics/vmauth/#load-balancing) for more details (default "least_loaded") |
| name#
_string_ | _(Optional)_
Name references item at VMAuths spec.defaultTargetRefs map, with name set other attributes are skipped |
| paths#
_string array_ | _(Optional)_
Paths - matched path to route. |
| query_args#
_[QueryArg (v1beta1)](#v1beta1-queryarg) array_ | _(Optional)_
QueryArgs appends list of query arguments to generated URL |
+| response_headers
_string array_ | _(Optional)_
ResponseHeaders represent additional http headers, that vmauth adds for request response
in form of ["header_key: header_value"]
multiple values for header key:
["header_key: value1,value2"]
it's available since 1.93.0 version of vmauth |
+| retry_status_codes#
_integer array_ | _(Optional)_
RetryStatusCodes defines http status codes in numeric format for request retries
Can be defined per target or at VMUser.spec level
e.g. [429,503] |
+| src_headers
_string array_ | _(Required)_
SrcHeaders is an optional list of headers, which must match request headers. |
+| src_query_args#
_string array_ | _(Required)_
SrcQueryArgs is an optional list of query args, which must match request URL query args. |
| static#
_[StaticRef (v1beta1)](#v1beta1-staticref)_ | _(Optional)_
Static - user defined url for traffic forward,
for instance http://vmsingle:8428 |
| targetRefBasicAuth#
_[TargetRefBasicAuth (v1beta1)](#v1beta1-targetrefbasicauth)_ | _(Optional)_
TargetRefBasicAuth allow an target endpoint to authenticate over basic authentication |
| target_path_suffix#
_string_ | _(Optional)_
TargetPathSuffix allows to add some suffix to the target path
It allows to hide tenant configuration from user with crd as ref.
it also may contain any url encoded params. |
@@ -4053,15 +4062,15 @@ Appears in: [Receiver (v1beta1)](#v1beta1-receiver)
| Field | Description |
| --- | --- |
-| api_url#
_string_ | _(Optional)_
APIUrl the Telegram API URL i.e. https://api.telegram.org. |
-| bot_token#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Required)_
BotToken token for the bot
https://core.telegram.org/bots/api |
-| chat_id#
_integer_ | _(Required)_
ChatID is ID of the chat where to send the messages. |
-| disable_notifications#
_boolean_ | _(Optional)_
DisableNotifications |
-| http_config#
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
HTTP client configuration. |
+| api_url _(or apiUrl)_ #
_string_ | _(Optional)_
APIUrl the Telegram API URL i.e. https://api.telegram.org. |
+| bot_token _(or botToken)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Required)_
BotToken token for the bot
https://core.telegram.org/bots/api |
+| chat_id _(or chatId)_ #
_integer_ | _(Required)_
ChatID is ID of the chat where to send the messages. |
+| disable_notifications _(or disableNotifications)_ #
_boolean_ | _(Optional)_
DisableNotifications |
+| http_config _(or httpConfig)_ #
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
HTTP client configuration. |
| message#
_string_ | _(Optional)_
Message is templated message |
-| message_thread_id#
_integer_ | _(Optional)_
MessageThreadID defines ID of the message thread where to send the messages. |
-| parse_mode#
_string_ | _(Optional)_
ParseMode for telegram message,
supported values are MarkdownV2, Markdown, Markdown and empty string for plain text. |
-| send_resolved#
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
+| message_thread_id _(or messageThreadId)_ #
_integer_ | _(Optional)_
MessageThreadID defines ID of the message thread where to send the messages. |
+| parse_mode _(or parseMode)_ #
_string_ | _(Optional)_
ParseMode for telegram message,
supported values are MarkdownV2, Markdown, Markdown and empty string for plain text. |
+| send_resolved _(or sendResolved)_ #
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
#### TimeInterval {#v1beta1-timeinterval}
@@ -4072,7 +4081,7 @@ Appears in: [TimeIntervals (v1beta1)](#v1beta1-timeintervals)
| Field | Description |
| --- | --- |
-| days_of_month#
_string array_ | _(Optional)_
DayOfMonth defines list of numerical days in the month. Days begin at 1. Negative values are also accepted.
for example, ['1:5', '-3:-1'] |
+| days_of_month _(or daysOfMonth)_ #
_string array_ | _(Optional)_
DayOfMonth defines list of numerical days in the month. Days begin at 1. Negative values are also accepted.
for example, ['1:5', '-3:-1'] |
| location#
_string_ | _(Optional)_
Location in golang time location form, e.g. UTC |
| months#
_string array_ | _(Optional)_
Months defines list of calendar months identified by a case-insensitive name (e.g. ‘January’) or numeric 1.
For example, ['1:3', 'may:august', 'december'] |
| times#
_[TimeRange (v1beta1)](#v1beta1-timerange) array_ | _(Optional)_
Times defines time range for mute |
@@ -4089,7 +4098,7 @@ Appears in: [VMAlertmanagerConfigSpec (v1beta1)](#v1beta1-vmalertmanagerconfigsp
| Field | Description |
| --- | --- |
| name#
_string_ | _(Required)_
Name of interval |
-| time_intervals#
_[TimeInterval (v1beta1)](#v1beta1-timeinterval) array_ | _(Required)_
TimeIntervals interval configuration |
+| time_intervals _(or timeIntervals)_ #
_[TimeInterval (v1beta1)](#v1beta1-timeinterval) array_ | _(Required)_
TimeIntervals interval configuration |
#### TimeRange {#v1beta1-timerange}
@@ -4100,8 +4109,8 @@ Appears in: [TimeInterval (v1beta1)](#v1beta1-timeinterval)
| Field | Description |
| --- | --- |
-| end_time#
_string_ | _(Required)_
EndTime for example HH:MM |
-| start_time#
_string_ | _(Required)_
StartTime for example HH:MM |
+| end_time _(or endTime)_ #
_string_ | _(Required)_
EndTime for example HH:MM |
+| start_time _(or startTime)_ #
_string_ | _(Required)_
StartTime for example HH:MM |
#### URLMapCommon {#v1beta1-urlmapcommon}
@@ -4131,9 +4140,16 @@ Appears in: [VMAuthSpec (v1beta1)](#v1beta1-vmauthspec), [VMAuthUnauthorizedUser
| Field | Description |
| --- | --- |
-| URLMapCommon#
_[URLMapCommon (v1beta1)](#v1beta1-urlmapcommon)_ | _(Required)_
|
+| discover_backend_ips#
_boolean_ | _(Required)_
DiscoverBackendIPs instructs discovering URLPrefix backend IPs via DNS. |
+| drop_src_path_prefix_parts#
_integer_ | _(Optional)_
DropSrcPathPrefixParts is the number of `/`-delimited request path prefix parts to drop before proxying the request to backend.
See [here](https://docs.victoriametrics.com/victoriametrics/vmauth/#dropping-request-path-prefix) for more details. |
+| headers
_string array_ | _(Optional)_
RequestHeaders represent additional http headers, that vmauth uses
in form of ["header_key: header_value"]
multiple values for header key:
["header_key: value1,value2"]
it's available since 1.68.0 version of vmauth |
+| load_balancing_policy#
_string_ | _(Optional)_
LoadBalancingPolicy defines load balancing policy to use for backend urls.
Supported policies: least_loaded, first_available.
See [here](https://docs.victoriametrics.com/victoriametrics/vmauth/#load-balancing) for more details (default "least_loaded") |
+| response_headers
_string array_ | _(Optional)_
ResponseHeaders represent additional http headers, that vmauth adds for request response
in form of ["header_key: header_value"]
multiple values for header key:
["header_key: value1,value2"]
it's available since 1.93.0 version of vmauth |
+| retry_status_codes#
_integer array_ | _(Optional)_
RetryStatusCodes defines http status codes in numeric format for request retries
Can be defined per target or at VMUser.spec level
e.g. [429,503] |
+| src_headers
_string array_ | _(Required)_
SrcHeaders is an optional list of headers, which must match request headers. |
| src_hosts#
_string array_ | _(Required)_
SrcHosts is an optional list of regular expressions, which must match the request hostname. |
| src_paths#
_string array_ | _(Required)_
SrcPaths is an optional list of regular expressions, which must match the request path. |
+| src_query_args#
_string array_ | _(Required)_
SrcQueryArgs is an optional list of query args, which must match request URL query args. |
| url_prefix#
_[StringOrArray (v1beta1)](#v1beta1-stringorarray)_ | _(Required)_
UrlPrefix contains backend url prefixes for the proxied request url.
URLPrefix defines prefix prefix for destination |
#### VLogs {#v1beta1-vlogs}
@@ -4301,10 +4317,10 @@ Appears in: [VMAgent (v1beta1)](#v1beta1-vmagent)
| Field | Description |
| --- | --- |
-| additionalScrapeConfigs#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
AdditionalScrapeConfigs As scrape configs are appended, the user is responsible to make sure it
is valid. Note that using this feature may expose the possibility to
break upgrades of VMAgent or VMSingle. It is advised to review VMAgent or VMSingle release
notes to ensure that no incompatible scrape configs are going to break
VMAgent or VMSingle after the upgrade. |
+| additionalScrapeConfigs _(or additional_scrape_configs)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
AdditionalScrapeConfigs As scrape configs are appended, the user is responsible to make sure it
is valid. Note that using this feature may expose the possibility to
break upgrades of VMAgent or VMSingle. It is advised to review VMAgent or VMSingle release
notes to ensure that no incompatible scrape configs are going to break
VMAgent or VMSingle after the upgrade. |
| affinity#
_[Affinity (v1)](#v1-affinity)_ | _(Optional)_
Affinity If specified, the pod's scheduling constraints. |
| apiServerConfig#
_[APIServerConfig (v1beta1)](#v1beta1-apiserverconfig)_ | _(Optional)_
APIServerConfig allows specifying a host and auth methods to access apiserver.
If left empty, VMAgent is assumed to run inside of the cluster
and will discover API servers automatically and use the pod's CA certificate
and bearer token file at /var/run/secrets/kubernetes.io/serviceaccount/. |
-| arbitraryFSAccessThroughSMs#
_[ArbitraryFSAccessThroughSMsConfig (v1beta1)](#v1beta1-arbitraryfsaccessthroughsmsconfig)_ | _(Optional)_
ArbitraryFSAccessThroughSMs configures whether configuration
based on EndpointAuth can access arbitrary files on the file system
of the VMAgent or VMSingle container e.g. bearer token files, basic auth, tls certs |
+| arbitraryFSAccessThroughSMs _(or arbitrary_fs_access_through_s_ms)_ #
_[ArbitraryFSAccessThroughSMsConfig (v1beta1)](#v1beta1-arbitraryfsaccessthroughsmsconfig)_ | _(Optional)_
ArbitraryFSAccessThroughSMs configures whether configuration
based on EndpointAuth can access arbitrary files on the file system
of the VMAgent or VMSingle container e.g. bearer token files, basic auth, tls certs |
| claimTemplates#
_[PersistentVolumeClaim (v1)](#v1-persistentvolumeclaim) array_ | _(Required)_
ClaimTemplates allows adding additional VolumeClaimTemplates for VMAgent in StatefulMode |
| componentVersion#
_string_ | _(Optional)_
ComponentVersion defines default images tag for all components.
it can be overwritten with component specific image.tag value. |
| configMaps#
_string array_ | _(Optional)_
ConfigMaps is a list of ConfigMaps in the same namespace as the Application
object, which shall be mounted into the Application container
at /etc/vm/configs/CONFIGMAP_NAME folder |
@@ -4321,56 +4337,56 @@ Appears in: [VMAgent (v1beta1)](#v1beta1-vmagent)
| disableSelfServiceScrape#
_boolean_ | _(Optional)_
DisableSelfServiceScrape controls creation of VMServiceScrape by operator
for the application.
Has priority over `VM_DISABLESELFSERVICESCRAPECREATION` operator env variable |
| dnsConfig#
_[PodDNSConfig (v1)](#v1-poddnsconfig)_ | _(Optional)_
Specifies the DNS parameters of a pod.
Parameters specified here will be merged to the generated DNS
configuration based on DNSPolicy. |
| dnsPolicy#
_[DNSPolicy (v1)](#v1-dnspolicy)_ | _(Optional)_
DNSPolicy sets DNS policy for the pod |
-| enableKubernetesAPISelectors#
_boolean_ | _(Optional)_
EnableKubernetesAPISelectors instructs vmagent or vmsingle to use CRD scrape objects spec.selectors for
Kubernetes API list and watch requests.
https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#list-and-watch-filtering
It could be useful to reduce Kubernetes API server resource usage for serving less than 100 CRD scrape objects in total. |
+| enableKubernetesAPISelectors _(or enable_kubernetes_api_selectors)_ #
_boolean_ | _(Optional)_
EnableKubernetesAPISelectors instructs vmagent or vmsingle to use CRD scrape objects spec.selectors for
Kubernetes API list and watch requests.
https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#list-and-watch-filtering
It could be useful to reduce Kubernetes API server resource usage for serving less than 100 CRD scrape objects in total. |
| enableServiceLinks#
_boolean_ | _(Optional)_
EnableServiceLinks indicates whether information about services should be injected into pod's
environment variables, matching the syntax of Docker links.
Optional: Defaults to true. |
-| enforcedNamespaceLabel#
_string_ | _(Optional)_
EnforcedNamespaceLabel enforces adding a namespace label of origin for each alert
and metric that is user created. The label value will always be the namespace of the object that is
being created. |
-| externalLabelName#
_string_ | _(Optional)_
ExternalLabelName Name of external label used to denote scraping agent instance
name. Defaults to the value of `prometheus`. External label will
_not_ be added when value is set to empty string (`""`). |
-| externalLabels#
_object (keys:string, values:string)_ | _(Optional)_
ExternalLabels The labels to add to any time series scraped by vmagent or vmsingle.
it doesn't affect metrics ingested directly by push API's |
+| enforcedNamespaceLabel _(or enforced_namespace_label)_ #
_string_ | _(Optional)_
EnforcedNamespaceLabel enforces adding a namespace label of origin for each alert
and metric that is user created. The label value will always be the namespace of the object that is
being created. |
+| externalLabelName _(or external_label_name)_ #
_string_ | _(Optional)_
ExternalLabelName Name of external label used to denote scraping agent instance
name. Defaults to the value of `prometheus`. External label will
_not_ be added when value is set to empty string (`""`). |
+| externalLabels _(or external_labels)_ #
_object (keys:string, values:string)_ | _(Optional)_
ExternalLabels The labels to add to any time series scraped by vmagent or vmsingle.
it doesn't affect metrics ingested directly by push API's |
| extraArgs
_object (keys:string, values:string)_ | _(Optional)_
ExtraArgs that will be passed to the application container
for example remoteWrite.tmpDataPath: /tmp |
| extraEnvs
_[EnvVar (v1)](#v1-envvar) array_ | _(Optional)_
ExtraEnvs that will be passed to the application container |
| extraEnvsFrom
_[EnvFromSource (v1)](#v1-envfromsource) array_ | _(Optional)_
ExtraEnvsFrom defines source of env variables for the application container
could either be secret or configmap |
-| globalScrapeMetricRelabelConfigs#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
GlobalScrapeMetricRelabelConfigs is a global metric relabel configuration, which is applied to each scrape job. |
-| globalScrapeRelabelConfigs#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
GlobalScrapeRelabelConfigs is a global relabel configuration, which is applied to each samples of each scrape job during service discovery. |
+| globalScrapeMetricRelabelConfigs _(or global_scrape_metric_relabel_configs)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
GlobalScrapeMetricRelabelConfigs is a global metric relabel configuration, which is applied to each scrape job. |
+| globalScrapeRelabelConfigs _(or global_scrape_relabel_configs)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
GlobalScrapeRelabelConfigs is a global relabel configuration, which is applied to each samples of each scrape job during service discovery. |
| hostAliases#
_[HostAlias (v1)](#v1-hostalias) array_ | _(Optional)_
HostAliases provides mapping for ip and hostname,
that would be propagated to pod,
cannot be used with HostNetwork. |
| hostNetwork#
_boolean_ | _(Optional)_
HostNetwork controls whether the pod may use the node network namespace |
| host_aliases#
_[HostAlias (v1)](#v1-hostalias) array_ | _(Optional)_
HostAliasesUnderScore provides mapping for ip and hostname,
that would be propagated to pod,
cannot be used with HostNetwork.
Has Priority over hostAliases field |
| hpa#
_[EmbeddedHPA (v1beta1)](#v1beta1-embeddedhpa)_ | _(Optional)_
Configures horizontal pod autoscaling. |
-| ignoreNamespaceSelectors#
_boolean_ | _(Optional)_
IgnoreNamespaceSelectors if set to true will ignore NamespaceSelector settings from
scrape objects, and they will only discover endpoints
within their current namespace. Defaults to false. |
+| ignoreNamespaceSelectors _(or ignore_namespace_selectors)_ #
_boolean_ | _(Optional)_
IgnoreNamespaceSelectors if set to true will ignore NamespaceSelector settings from
scrape objects, and they will only discover endpoints
within their current namespace. Defaults to false. |
| image#
_[Image (v1beta1)](#v1beta1-image)_ | _(Optional)_
Image - docker image settings
if no specified operator uses default version from operator config |
| imagePullSecrets#
_[LocalObjectReference (v1)](#v1-localobjectreference) array_ | _(Optional)_
ImagePullSecrets An optional list of references to secrets in the same namespace
to use for pulling images from registries
see https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod |
-| ingestOnlyMode#
_boolean_ | _(Optional)_
IngestOnlyMode switches vmagent or vmsingle into unmanaged mode
it disables any config generation for scraping
Currently it prevents vmagent or vmsingle from managing tls and auth options for remote write |
+| ingestOnlyMode _(or ingest_only_mode)_ #
_boolean_ | _(Optional)_
IngestOnlyMode switches vmagent or vmsingle into unmanaged mode
it disables any config generation for scraping
Currently it prevents vmagent or vmsingle from managing tls and auth options for remote write |
| initContainers#
_[Container (v1)](#v1-container) array_ | _(Optional)_
InitContainers allows adding initContainers to the pod definition.
Any errors during the execution of an initContainer will lead to a restart of the Pod.
More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ |
| inlineRelabelConfig#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
InlineRelabelConfig - defines GlobalRelabelConfig for vmagent, can be defined directly at CRD. |
-| inlineScrapeConfig#
_string_ | _(Optional)_
InlineScrapeConfig As scrape configs are appended, the user is responsible to make sure it
is valid. Note that using this feature may expose the possibility to
break upgrades of VMAgent or VMSingle. It is advised to review VMAgent or VMSingle release
notes to ensure that no incompatible scrape configs are going to break
VMAgent or VMSingle after the upgrade.
it should be defined as single yaml file.
inlineScrapeConfig: \|
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"] |
+| inlineScrapeConfig _(or inline_scrape_config)_ #
_string_ | _(Optional)_
InlineScrapeConfig As scrape configs are appended, the user is responsible to make sure it
is valid. Note that using this feature may expose the possibility to
break upgrades of VMAgent or VMSingle. It is advised to review VMAgent or VMSingle release
notes to ensure that no incompatible scrape configs are going to break
VMAgent or VMSingle after the upgrade.
it should be defined as single yaml file.
inlineScrapeConfig: \|
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"] |
| insertPorts#
_[InsertPorts (v1beta1)](#v1beta1-insertports)_ | _(Required)_
InsertPorts - additional listen ports for data ingestion. |
| license#
_[License (v1beta1)](#v1beta1-license)_ | _(Optional)_
License allows to configure license key to be used for enterprise features.
Using license key is supported starting from VictoriaMetrics v1.94.0.
See [here](https://docs.victoriametrics.com/victoriametrics/enterprise/) |
| livenessProbe#
_[Probe (v1)](#v1-probe)_ | _(Optional)_
LivenessProbe that will be added to CR pod |
| logFormat#
_string_ | _(Optional)_
LogFormat for VMAgent to be configured with. |
| logLevel#
_string_ | _(Optional)_
LogLevel for VMAgent to be configured with.
INFO, WARN, ERROR, FATAL, PANIC |
| managedMetadata#
_[ManagedObjectsMetadata (v1beta1)](#v1beta1-managedobjectsmetadata)_ | _(Required)_
ManagedMetadata defines metadata that will be added to the all objects
created by operator for the given CustomResource |
-| maxScrapeInterval#
_string_ | _(Required)_
MaxScrapeInterval allows limiting maximum scrape interval for VMServiceScrape, VMPodScrape and other scrapes
If interval is higher than defined limit, `maxScrapeInterval` will be used. |
+| maxScrapeInterval _(or max_scrape_interval)_ #
_string_ | _(Required)_
MaxScrapeInterval allows limiting maximum scrape interval for VMServiceScrape, VMPodScrape and other scrapes
If interval is higher than defined limit, `maxScrapeInterval` will be used. |
| minReadySeconds#
_integer_ | _(Optional)_
MinReadySeconds defines a minimum number of seconds to wait before starting update next pod
if previous in healthy state
Has no effect for VLogs and VMSingle |
-| minScrapeInterval#
_string_ | _(Required)_
MinScrapeInterval allows limiting minimal scrape interval for VMServiceScrape, VMPodScrape and other scrapes
If interval is lower than defined limit, `minScrapeInterval` will be used. |
+| minScrapeInterval _(or min_scrape_interval)_ #
_string_ | _(Required)_
MinScrapeInterval allows limiting minimal scrape interval for VMServiceScrape, VMPodScrape and other scrapes
If interval is lower than defined limit, `minScrapeInterval` will be used. |
| networkPolicy#
_[EmbeddedNetworkPolicy (v1beta1)](#v1beta1-embeddednetworkpolicy)_ | _(Optional)_
NetworkPolicy defines network access rules for pods created by this CR. |
-| nodeScrapeNamespaceSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
NodeScrapeNamespaceSelector defines Namespaces to be selected for VMNodeScrape discovery.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
-| nodeScrapeRelabelTemplate#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
NodeScrapeRelabelTemplate defines relabel config, that will be added to each VMNodeScrape.
it's useful for adding specific labels to all targets |
-| nodeScrapeSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
NodeScrapeSelector defines VMNodeScrape to be selected for scraping.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
+| nodeScrapeNamespaceSelector _(or node_scrape_namespace_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
NodeScrapeNamespaceSelector defines Namespaces to be selected for VMNodeScrape discovery.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
+| nodeScrapeRelabelTemplate _(or node_scrape_relabel_template)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
NodeScrapeRelabelTemplate defines relabel config, that will be added to each VMNodeScrape.
it's useful for adding specific labels to all targets |
+| nodeScrapeSelector _(or node_scrape_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
NodeScrapeSelector defines VMNodeScrape to be selected for scraping.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
| nodeSelector#
_object (keys:string, values:string)_ | _(Optional)_
NodeSelector Define which Nodes the Pods are scheduled on. |
-| overrideHonorLabels#
_boolean_ | _(Optional)_
OverrideHonorLabels if set to true overrides all user configured honor_labels.
If HonorLabels is set in scrape objects to true, this overrides honor_labels to false. |
-| overrideHonorTimestamps#
_boolean_ | _(Optional)_
OverrideHonorTimestamps allows to globally enforce honoring timestamps in all scrape configs. |
+| overrideHonorLabels _(or override_honor_labels)_ #
_boolean_ | _(Optional)_
OverrideHonorLabels if set to true overrides all user configured honor_labels.
If HonorLabels is set in scrape objects to true, this overrides honor_labels to false. |
+| overrideHonorTimestamps _(or override_honor_timestamps)_ #
_boolean_ | _(Optional)_
OverrideHonorTimestamps allows to globally enforce honoring timestamps in all scrape configs. |
| paused#
_boolean_ | _(Optional)_
Paused If set to true all actions on the underlying managed objects are not
going to be performed, except for delete actions. |
| persistentVolumeClaimRetentionPolicy#
_[StatefulSetPersistentVolumeClaimRetentionPolicy (v1)](#v1-statefulsetpersistentvolumeclaimretentionpolicy)_ | _(Optional)_
PersistentVolumeClaimRetentionPolicy allows configuration of PVC retention policy |
| podDisruptionBudget#
_[EmbeddedPodDisruptionBudgetSpec (v1beta1)](#v1beta1-embeddedpoddisruptionbudgetspec)_ | _(Optional)_
PodDisruptionBudget created by operator |
| podMetadata#
_[EmbeddedObjectMetadata (v1beta1)](#v1beta1-embeddedobjectmetadata)_ | _(Optional)_
PodMetadata configures Labels and Annotations which are propagated to the vmagent pods. |
-| podScrapeNamespaceSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
PodScrapeNamespaceSelector defines Namespaces to be selected for VMPodScrape discovery.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
-| podScrapeRelabelTemplate#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
PodScrapeRelabelTemplate defines relabel config, that will be added to each VMPodScrape.
it's useful for adding specific labels to all targets |
-| podScrapeSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
PodScrapeSelector defines PodScrapes to be selected for target discovery.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
+| podScrapeNamespaceSelector _(or pod_scrape_namespace_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
PodScrapeNamespaceSelector defines Namespaces to be selected for VMPodScrape discovery.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
+| podScrapeRelabelTemplate _(or pod_scrape_relabel_template)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
PodScrapeRelabelTemplate defines relabel config, that will be added to each VMPodScrape.
it's useful for adding specific labels to all targets |
+| podScrapeSelector _(or pod_scrape_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
PodScrapeSelector defines PodScrapes to be selected for target discovery.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
| port#
_string_ | _(Optional)_
Port listen address |
| preStopSleepSeconds#
_integer_ | _(Optional)_
PreStopSleepSeconds defines the number of seconds to sleep in the preStop lifecycle hook.
It gives time for load balancers to remove the pod from rotation before the pod is terminated.
Defaults to 15 for applicable components. Set to 0 to disable. |
| priorityClassName#
_string_ | _(Optional)_
PriorityClassName class assigned to the Pods |
-| probeNamespaceSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ProbeNamespaceSelector defines Namespaces to be selected for VMProbe discovery.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
-| probeScrapeRelabelTemplate#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
ProbeScrapeRelabelTemplate defines relabel config, that will be added to each VMProbeScrape.
it's useful for adding specific labels to all targets |
-| probeSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ProbeSelector defines VMProbe to be selected for target probing.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
+| probeNamespaceSelector _(or probe_namespace_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ProbeNamespaceSelector defines Namespaces to be selected for VMProbe discovery.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
+| probeScrapeRelabelTemplate _(or probe_scrape_relabel_template)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
ProbeScrapeRelabelTemplate defines relabel config, that will be added to each VMProbeScrape.
it's useful for adding specific labels to all targets |
+| probeSelector _(or probe_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ProbeSelector defines VMProbe to be selected for target probing.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
| readinessGates#
_[PodReadinessGate (v1)](#v1-podreadinessgate) array_ | _(Required)_
ReadinessGates defines pod readiness gates |
| readinessProbe#
_[Probe (v1)](#v1-probe)_ | _(Optional)_
ReadinessProbe that will be added to CR pod |
| relabelConfig#
_[ConfigMapKeySelector (v1)](#v1-configmapkeyselector)_ | _(Optional)_
RelabelConfig ConfigMap with global relabel config -remoteWrite.relabelConfig
This relabeling is applied to all the collected metrics before sending them to remote storage. |
@@ -4381,21 +4397,21 @@ Appears in: [VMAgent (v1beta1)](#v1beta1-vmagent)
| revisionHistoryLimitCount#
_integer_ | _(Optional)_
The number of old ReplicaSets to retain to allow rollback in deployment or
maximum number of revisions that will be maintained in the Deployment revision history.
Has no effect at StatefulSets
Defaults to 10. |
| rollingUpdate#
_[RollingUpdateDeployment (v1)](#v1-rollingupdatedeployment)_ | _(Optional)_
RollingUpdate - overrides deployment update params. |
| runtimeClassName#
_string_ | _(Optional)_
RuntimeClassName - defines runtime class for kubernetes pod.
https://kubernetes.io/docs/concepts/containers/runtime-class/ |
-| sampleLimit#
_integer_ | _(Optional)_
SampleLimit defines global per target limit of scraped samples |
+| sampleLimit _(or sample_limit)_ #
_integer_ | _(Optional)_
SampleLimit defines global per target limit of scraped samples |
| schedulerName#
_string_ | _(Optional)_
SchedulerName - defines kubernetes scheduler name |
-| scrapeClasses#
_[ScrapeClass (v1beta1)](#v1beta1-scrapeclass) array_ | _(Optional)_
ScrapeClasses defines the list of scrape classes to expose to scraping objects such as
PodScrapes, ServiceScrapes, Probes and ScrapeConfigs. |
-| scrapeConfigNamespaceSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ScrapeConfigNamespaceSelector defines Namespaces to be selected for VMScrapeConfig discovery.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
-| scrapeConfigRelabelTemplate#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
ScrapeConfigRelabelTemplate defines relabel config, that will be added to each VMScrapeConfig.
it's useful for adding specific labels to all targets |
-| scrapeConfigSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ScrapeConfigSelector defines VMScrapeConfig to be selected for target discovery.
Works in combination with NamespaceSelector. |
-| scrapeInterval#
_string_ | _(Optional)_
ScrapeInterval defines how often scrape targets by default |
-| scrapeTimeout#
_string_ | _(Optional)_
ScrapeTimeout defines global timeout for targets scrape |
+| scrapeClasses _(or scrape_classes)_ #
_[ScrapeClass (v1beta1)](#v1beta1-scrapeclass) array_ | _(Optional)_
ScrapeClasses defines the list of scrape classes to expose to scraping objects such as
PodScrapes, ServiceScrapes, Probes and ScrapeConfigs. |
+| scrapeConfigNamespaceSelector _(or scrape_config_namespace_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ScrapeConfigNamespaceSelector defines Namespaces to be selected for VMScrapeConfig discovery.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
+| scrapeConfigRelabelTemplate _(or scrape_config_relabel_template)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
ScrapeConfigRelabelTemplate defines relabel config, that will be added to each VMScrapeConfig.
it's useful for adding specific labels to all targets |
+| scrapeConfigSelector _(or scrape_config_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ScrapeConfigSelector defines VMScrapeConfig to be selected for target discovery.
Works in combination with NamespaceSelector. |
+| scrapeInterval _(or scrape_interval)_ #
_string_ | _(Optional)_
ScrapeInterval defines how often scrape targets by default |
+| scrapeTimeout _(or scrape_timeout)_ #
_string_ | _(Optional)_
ScrapeTimeout defines global timeout for targets scrape |
| secrets#
_string array_ | _(Optional)_
Secrets is a list of Secrets in the same namespace as the Application
object, which shall be mounted into the Application container
at /etc/vm/secrets/SECRET_NAME folder |
| securityContext#
_[SecurityContext (v1beta1)](#v1beta1-securitycontext)_ | _(Optional)_
SecurityContext holds pod-level security attributes and common container settings.
This defaults to the default PodSecurityContext. |
-| selectAllByDefault#
_boolean_ | _(Optional)_
SelectAllByDefault changes default behavior for empty CRD selectors, such ServiceScrapeSelector.
with selectAllByDefault: true and empty serviceScrapeSelector and ServiceScrapeNamespaceSelector
Operator selects all exist serviceScrapes
with selectAllByDefault: false - selects nothing |
+| selectAllByDefault _(or select_all_by_default)_ #
_boolean_ | _(Optional)_
SelectAllByDefault changes default behavior for empty CRD selectors, such ServiceScrapeSelector.
with selectAllByDefault: true and empty serviceScrapeSelector and ServiceScrapeNamespaceSelector
Operator selects all exist serviceScrapes
with selectAllByDefault: false - selects nothing |
| serviceAccountName#
_string_ | _(Optional)_
ServiceAccountName is the name of the ServiceAccount to use to run the pods |
-| serviceScrapeNamespaceSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ServiceScrapeNamespaceSelector Namespaces to be selected for VMServiceScrape discovery.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
-| serviceScrapeRelabelTemplate#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
ServiceScrapeRelabelTemplate defines relabel config, that will be added to each VMServiceScrape.
it's useful for adding specific labels to all targets |
-| serviceScrapeSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ServiceScrapeSelector defines ServiceScrapes to be selected for target discovery.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
+| serviceScrapeNamespaceSelector _(or service_scrape_namespace_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ServiceScrapeNamespaceSelector Namespaces to be selected for VMServiceScrape discovery.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
+| serviceScrapeRelabelTemplate _(or service_scrape_relabel_template)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
ServiceScrapeRelabelTemplate defines relabel config, that will be added to each VMServiceScrape.
it's useful for adding specific labels to all targets |
+| serviceScrapeSelector _(or service_scrape_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ServiceScrapeSelector defines ServiceScrapes to be selected for target discovery.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
| serviceScrapeSpec#
_[VMServiceScrapeSpec (v1beta1)](#v1beta1-vmservicescrapespec)_ | _(Optional)_
ServiceScrapeSpec that will be added to vmagent VMServiceScrape spec |
| serviceSpec#
_[AdditionalServiceSpec (v1beta1)](#v1beta1-additionalservicespec)_ | _(Optional)_
ServiceSpec that will be added to vmagent service spec |
| shardCount#
_integer_ | _(Optional)_
ShardCount - numbers of shards of VMAgent
in this case operator will use 1 deployment/sts per shard with
replicas count according to spec.replicas,
see [here](https://docs.victoriametrics.com/victoriametrics/vmagent/#scraping-big-number-of-targets) |
@@ -4404,9 +4420,9 @@ Appears in: [VMAgent (v1beta1)](#v1beta1-vmagent)
| statefulRollingUpdateStrategy#
_[StatefulSetUpdateStrategyType (v1)](#v1-statefulsetupdatestrategytype)_ | _(Optional)_
StatefulRollingUpdateStrategy allows configuration for strategyType
set it to RollingUpdate for disabling operator statefulSet rollingUpdate |
| statefulRollingUpdateStrategyBehavior#
_[StatefulSetUpdateStrategyBehavior (v1beta1)](#v1beta1-statefulsetupdatestrategybehavior)_ | _(Optional)_
StatefulRollingUpdateStrategyBehavior defines customized behavior for rolling updates.
It applies if the RollingUpdateStrategy is set to OnDelete, which is the default. |
| statefulStorage#
_[StorageSpec (v1beta1)](#v1beta1-storagespec)_ | _(Optional)_
StatefulStorage configures storage for StatefulSet |
-| staticScrapeNamespaceSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
StaticScrapeNamespaceSelector defines Namespaces to be selected for VMStaticScrape discovery.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
-| staticScrapeRelabelTemplate#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
StaticScrapeRelabelTemplate defines relabel config, that will be added to each VMStaticScrape.
it's useful for adding specific labels to all targets |
-| staticScrapeSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
StaticScrapeSelector defines VMStaticScrape to be selected for target discovery.
Works in combination with NamespaceSelector.
If both nil - match everything.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces. |
+| staticScrapeNamespaceSelector _(or static_scrape_namespace_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
StaticScrapeNamespaceSelector defines Namespaces to be selected for VMStaticScrape discovery.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
+| staticScrapeRelabelTemplate _(or static_scrape_relabel_template)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
StaticScrapeRelabelTemplate defines relabel config, that will be added to each VMStaticScrape.
it's useful for adding specific labels to all targets |
+| staticScrapeSelector _(or static_scrape_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
StaticScrapeSelector defines VMStaticScrape to be selected for target discovery.
Works in combination with NamespaceSelector.
If both nil - match everything.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces. |
| streamAggrConfig#
_[StreamAggrConfig (v1beta1)](#v1beta1-streamaggrconfig)_ | _(Optional)_
StreamAggrConfig defines global stream aggregation configuration for VMAgent |
| terminationGracePeriodSeconds#
_integer_ | _(Optional)_
TerminationGracePeriodSeconds period for container graceful termination |
| tolerations#
_[Toleration (v1)](#v1-toleration) array_ | _(Optional)_
Tolerations If specified, the pod's tolerations. |
@@ -4416,7 +4432,7 @@ Appears in: [VMAgent (v1beta1)](#v1beta1-vmagent)
| useLegacyNaming#
_boolean_ | _(Optional)_
UseLegacyNaming uses standalone Helm chart naming for managed resources:
the CR name is used directly instead of the default "-" convention.
Available from: v0.73.0 |
| useStrictSecurity#
_boolean_ | _(Optional)_
UseStrictSecurity enables strict security mode for component
it restricts disk writes access
uses non-root user out of the box
drops not needed security permissions |
| useVMConfigReloader#
_boolean_ | _(Optional)_
UseVMConfigReloader replaces prometheus-like config-reloader
with vm one. It uses secrets watch instead of file watch
which greatly increases speed of config updates
Deprecated: will be removed in v0.67.0
|
-| vmAgentExternalLabelName#
_string_ | _(Optional)_
VMAgentExternalLabelName Name of vmAgent external label used to denote vmAgent instance
name. Defaults to the value of `prometheus`. External label will
_not_ be added when value is set to empty string (`""`).
Deprecated: since version v0.67.0 will be removed in v0.69.0 use externalLabelName instead
|
+| vmAgentExternalLabelName _(or vm_agent_external_label_name)_ #
_string_ | _(Optional)_
VMAgentExternalLabelName Name of vmAgent external label used to denote vmAgent instance
name. Defaults to the value of `prometheus`. External label will
_not_ be added when value is set to empty string (`""`).
Deprecated: since version v0.67.0 will be removed in v0.69.0 use externalLabelName instead
|
| volumeMounts#
_[VolumeMount (v1)](#v1-volumemount) array_ | _(Optional)_
VolumeMounts allows configuration of additional VolumeMounts on the output Deployment/StatefulSet definition.
VolumeMounts specified will be appended to other VolumeMounts in the Application container |
| volumes#
_[Volume (v1)](#v1-volume) array_ | _(Optional)_
Volumes allows configuration of additional volumes on the output Deployment/StatefulSet definition.
Volumes specified will be appended to other volumes that are generated. |
| vpa#
_[EmbeddedVPA (v1beta1)](#v1beta1-embeddedvpa)_ | _(Optional)_
Configures vertical pod autoscaling. |
@@ -4618,10 +4634,10 @@ Appears in: [VMAlertmanagerConfig (v1beta1)](#v1beta1-vmalertmanagerconfig)
| Field | Description |
| --- | --- |
-| inhibit_rules#
_[InhibitRule (v1beta1)](#v1beta1-inhibitrule) array_ | _(Optional)_
InhibitRules will only apply for alerts matching
the resource's namespace. |
+| inhibit_rules _(or inhibitRules)_ #
_[InhibitRule (v1beta1)](#v1beta1-inhibitrule) array_ | _(Optional)_
InhibitRules will only apply for alerts matching
the resource's namespace. |
| receivers#
_[Receiver (v1beta1)](#v1beta1-receiver) array_ | _(Optional)_
Receivers defines alert receivers |
| route#
_[Route (v1beta1)](#v1beta1-route)_ | _(Optional)_
Route definition for alertmanager, may include nested routes. |
-| time_intervals#
_[TimeIntervals (v1beta1)](#v1beta1-timeintervals) array_ | _(Optional)_
TimeIntervals defines named interval for active/mute notifications interval
See https://prometheus.io/docs/alerting/latest/configuration/#time_interval |
+| time_intervals _(or timeIntervals)_ #
_[TimeIntervals (v1beta1)](#v1beta1-timeintervals) array_ | _(Optional)_
TimeIntervals defines named interval for active/mute notifications interval
See https://prometheus.io/docs/alerting/latest/configuration/#time_interval |
#### VMAlertmanagerGossipConfig {#v1beta1-vmalertmanagergossipconfig}
@@ -5162,32 +5178,32 @@ Appears in: [VMNodeScrape (v1beta1)](#v1beta1-vmnodescrape)
| Field | Description |
| --- | --- |
| authorization#
_[Authorization (v1beta1)](#v1beta1-authorization)_ | _(Optional)_
Authorization with http header Authorization |
-| basicAuth#
_[BasicAuth (v1beta1)](#v1beta1-basicauth)_ | _(Optional)_
BasicAuth allow an endpoint to authenticate over basic authentication |
-| bearerTokenFile#
_string_ | _(Optional)_
File to read bearer token for scraping targets. |
-| bearerTokenSecret#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
Secret to mount to read bearer token for scraping targets. The secret
needs to be in the same namespace as the scrape object and accessible by
the victoria-metrics operator. |
-| follow_redirects#
_boolean_ | _(Optional)_
FollowRedirects controls redirects for scraping. |
-| honorLabels#
_boolean_ | _(Optional)_
HonorLabels chooses the metric's labels on collisions with target labels. |
-| honorTimestamps#
_boolean_ | _(Optional)_
HonorTimestamps controls whether vmagent or vmsingle respects the timestamps present in scraped data. |
+| basicAuth _(or basic_auth)_ #
_[BasicAuth (v1beta1)](#v1beta1-basicauth)_ | _(Optional)_
BasicAuth allow an endpoint to authenticate over basic authentication |
+| bearerTokenFile _(or bearer_token_file)_ #
_string_ | _(Optional)_
File to read bearer token for scraping targets. |
+| bearerTokenSecret _(or bearer_token_secret)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
Secret to mount to read bearer token for scraping targets. The secret
needs to be in the same namespace as the scrape object and accessible by
the victoria-metrics operator. |
+| follow_redirects _(or followRedirects)_ #
_boolean_ | _(Optional)_
FollowRedirects controls redirects for scraping. |
+| honorLabels _(or honor_labels)_ #
_boolean_ | _(Optional)_
HonorLabels chooses the metric's labels on collisions with target labels. |
+| honorTimestamps _(or honor_timestamps)_ #
_boolean_ | _(Optional)_
HonorTimestamps controls whether vmagent or vmsingle respects the timestamps present in scraped data. |
| interval#
_string_ | _(Optional)_
Interval at which metrics should be scraped |
| jobLabel#
_string_ | _(Optional)_
The label to use to retrieve the job name from. |
-| max_scrape_size#
_string_ | _(Optional)_
MaxScrapeSize defines a maximum size of scraped data for a job |
-| metricRelabelConfigs#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
MetricRelabelConfigs to apply to samples after scrapping. |
+| max_scrape_size _(or maxScrapeSize)_ #
_string_ | _(Optional)_
MaxScrapeSize defines a maximum size of scraped data for a job |
+| metricRelabelConfigs _(or metric_relabel_configs)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
MetricRelabelConfigs to apply to samples after scrapping. |
| oauth2#
_[OAuth2 (v1beta1)](#v1beta1-oauth2)_ | _(Optional)_
OAuth2 defines auth configuration |
| params#
_object (keys:string, values:string array)_ | _(Optional)_
Optional HTTP URL parameters |
| path#
_string_ | _(Optional)_
HTTP path to scrape for metrics. |
| port#
_string_ | _(Optional)_
Name of the port exposed at Node. |
-| proxyURL#
_string_ | _(Optional)_
ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. |
-| relabelConfigs#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
RelabelConfigs to apply to samples during service discovery. |
-| sampleLimit#
_integer_ | _(Optional)_
SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. |
+| proxyURL _(or proxy_url)_ #
_string_ | _(Optional)_
ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. |
+| relabelConfigs _(or relabel_configs)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
RelabelConfigs to apply to samples during service discovery. |
+| sampleLimit _(or sample_limit)_ #
_integer_ | _(Optional)_
SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. |
| scheme#
_string_ | _(Optional)_
HTTP scheme to use for scraping. |
| scrapeClass#
_string_ | _(Optional)_
ScrapeClass defined scrape class to apply |
-| scrapeTimeout#
_string_ | _(Optional)_
Timeout after which the scrape is ended |
-| scrape_interval#
_string_ | _(Optional)_
ScrapeInterval is the same as Interval and has priority over it.
one of scrape_interval or interval can be used |
+| scrapeTimeout _(or scrape_timeout)_ #
_string_ | _(Optional)_
Timeout after which the scrape is ended |
+| scrape_interval _(or scrapeInterval)_ #
_string_ | _(Optional)_
ScrapeInterval is the same as Interval and has priority over it.
one of scrape_interval or interval can be used |
| selector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
Selector to select kubernetes Nodes. |
-| seriesLimit#
_integer_ | _(Optional)_
SeriesLimit defines per-scrape limit on number of unique time series
a single target can expose during all the scrapes on the time window of 24h. |
+| seriesLimit _(or series_limit)_ #
_integer_ | _(Optional)_
SeriesLimit defines per-scrape limit on number of unique time series
a single target can expose during all the scrapes on the time window of 24h. |
| targetLabels#
_string array_ | _(Optional)_
TargetLabels transfers labels on the Kubernetes Node onto the target. |
-| tlsConfig#
_[TLSConfig (v1beta1)](#v1beta1-tlsconfig)_ | _(Optional)_
TLSConfig configuration to use when scraping the endpoint |
-| vm_scrape_params#
_[VMScrapeParams (v1beta1)](#v1beta1-vmscrapeparams)_ | _(Optional)_
VMScrapeParams defines VictoriaMetrics specific scrape parameters |
+| tlsConfig _(or tls_config)_ #
_[TLSConfig (v1beta1)](#v1beta1-tlsconfig)_ | _(Optional)_
TLSConfig configuration to use when scraping the endpoint |
+| vm_scrape_params _(or vmScrapeParams)_ #
_[VMScrapeParams (v1beta1)](#v1beta1-vmscrapeparams)_ | _(Optional)_
VMScrapeParams defines VictoriaMetrics specific scrape parameters |
#### VMPodScrape {#v1beta1-vmpodscrape}
@@ -5246,31 +5262,31 @@ Appears in: [VMProbe (v1beta1)](#v1beta1-vmprobe)
| Field | Description |
| --- | --- |
| authorization#
_[Authorization (v1beta1)](#v1beta1-authorization)_ | _(Optional)_
Authorization with http header Authorization |
-| basicAuth#
_[BasicAuth (v1beta1)](#v1beta1-basicauth)_ | _(Optional)_
BasicAuth allow an endpoint to authenticate over basic authentication |
-| bearerTokenFile#
_string_ | _(Optional)_
File to read bearer token for scraping targets. |
-| bearerTokenSecret#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
Secret to mount to read bearer token for scraping targets. The secret
needs to be in the same namespace as the scrape object and accessible by
the victoria-metrics operator. |
-| follow_redirects#
_boolean_ | _(Optional)_
FollowRedirects controls redirects for scraping. |
-| honorLabels#
_boolean_ | _(Optional)_
HonorLabels chooses the metric's labels on collisions with target labels. |
-| honorTimestamps#
_boolean_ | _(Optional)_
HonorTimestamps controls whether vmagent or vmsingle respects the timestamps present in scraped data. |
+| basicAuth _(or basic_auth)_ #
_[BasicAuth (v1beta1)](#v1beta1-basicauth)_ | _(Optional)_
BasicAuth allow an endpoint to authenticate over basic authentication |
+| bearerTokenFile _(or bearer_token_file)_ #
_string_ | _(Optional)_
File to read bearer token for scraping targets. |
+| bearerTokenSecret _(or bearer_token_secret)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
Secret to mount to read bearer token for scraping targets. The secret
needs to be in the same namespace as the scrape object and accessible by
the victoria-metrics operator. |
+| follow_redirects _(or followRedirects)_ #
_boolean_ | _(Optional)_
FollowRedirects controls redirects for scraping. |
+| honorLabels _(or honor_labels)_ #
_boolean_ | _(Optional)_
HonorLabels chooses the metric's labels on collisions with target labels. |
+| honorTimestamps _(or honor_timestamps)_ #
_boolean_ | _(Optional)_
HonorTimestamps controls whether vmagent or vmsingle respects the timestamps present in scraped data. |
| interval#
_string_ | _(Optional)_
Interval at which metrics should be scraped |
| jobName#
_string_ | _(Required)_
The job name assigned to scraped metrics by default. |
-| max_scrape_size#
_string_ | _(Optional)_
MaxScrapeSize defines a maximum size of scraped data for a job |
+| max_scrape_size _(or maxScrapeSize)_ #
_string_ | _(Optional)_
MaxScrapeSize defines a maximum size of scraped data for a job |
| metricRelabelConfigs#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
MetricRelabelConfigs to apply to samples after scrapping. |
| module#
_string_ | _(Required)_
The module to use for probing specifying how to probe the target.
Example module configuring in the blackbox exporter:
https://github.com/prometheus/blackbox_exporter/blob/master/example.yml |
| oauth2#
_[OAuth2 (v1beta1)](#v1beta1-oauth2)_ | _(Optional)_
OAuth2 defines auth configuration |
| params#
_object (keys:string, values:string array)_ | _(Optional)_
Optional HTTP URL parameters |
| path#
_string_ | _(Optional)_
HTTP path to scrape for metrics. |
-| proxyURL#
_string_ | _(Optional)_
ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. |
-| sampleLimit#
_integer_ | _(Optional)_
SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. |
+| proxyURL _(or proxy_url)_ #
_string_ | _(Optional)_
ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. |
+| sampleLimit _(or sample_limit)_ #
_integer_ | _(Optional)_
SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. |
| scheme#
_string_ | _(Optional)_
HTTP scheme to use for scraping. |
| scrapeClass#
_string_ | _(Optional)_
ScrapeClass defined scrape class to apply |
-| scrapeTimeout#
_string_ | _(Optional)_
Timeout after which the scrape is ended |
-| scrape_interval#
_string_ | _(Optional)_
ScrapeInterval is the same as Interval and has priority over it.
one of scrape_interval or interval can be used |
-| seriesLimit#
_integer_ | _(Optional)_
SeriesLimit defines per-scrape limit on number of unique time series
a single target can expose during all the scrapes on the time window of 24h. |
+| scrapeTimeout _(or scrape_timeout)_ #
_string_ | _(Optional)_
Timeout after which the scrape is ended |
+| scrape_interval _(or scrapeInterval)_ #
_string_ | _(Optional)_
ScrapeInterval is the same as Interval and has priority over it.
one of scrape_interval or interval can be used |
+| seriesLimit _(or series_limit)_ #
_integer_ | _(Optional)_
SeriesLimit defines per-scrape limit on number of unique time series
a single target can expose during all the scrapes on the time window of 24h. |
| targets#
_[VMProbeTargets (v1beta1)](#v1beta1-vmprobetargets)_ | _(Required)_
Targets defines a set of static and/or dynamically discovered targets to be probed using the prober. |
-| tlsConfig#
_[TLSConfig (v1beta1)](#v1beta1-tlsconfig)_ | _(Optional)_
TLSConfig configuration to use when scraping the endpoint |
+| tlsConfig _(or tls_config)_ #
_[TLSConfig (v1beta1)](#v1beta1-tlsconfig)_ | _(Optional)_
TLSConfig configuration to use when scraping the endpoint |
| vmProberSpec#
_[VMProberSpec (v1beta1)](#v1beta1-vmproberspec)_ | _(Required)_
Specification for the prober to use for probing targets.
The prober.URL parameter is required. Targets cannot be probed if left empty. |
-| vm_scrape_params#
_[VMScrapeParams (v1beta1)](#v1beta1-vmscrapeparams)_ | _(Optional)_
VMScrapeParams defines VictoriaMetrics specific scrape parameters |
+| vm_scrape_params _(or vmScrapeParams)_ #
_[VMScrapeParams (v1beta1)](#v1beta1-vmscrapeparams)_ | _(Optional)_
VMScrapeParams defines VictoriaMetrics specific scrape parameters |
#### VMProbeTargetKubernetes {#v1beta1-vmprobetargetkubernetes}
@@ -5394,9 +5410,9 @@ Appears in: [VMScrapeConfig (v1beta1)](#v1beta1-vmscrapeconfig)
| --- | --- |
| authorization#
_[Authorization (v1beta1)](#v1beta1-authorization)_ | _(Optional)_
Authorization with http header Authorization |
| azureSDConfigs#
_[AzureSDConfig (v1beta1)](#v1beta1-azuresdconfig) array_ | _(Optional)_
AzureSDConfigs defines a list of Azure service discovery configurations. |
-| basicAuth#
_[BasicAuth (v1beta1)](#v1beta1-basicauth)_ | _(Optional)_
BasicAuth allow an endpoint to authenticate over basic authentication |
-| bearerTokenFile#
_string_ | _(Optional)_
File to read bearer token for scraping targets. |
-| bearerTokenSecret#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
Secret to mount to read bearer token for scraping targets. The secret
needs to be in the same namespace as the scrape object and accessible by
the victoria-metrics operator. |
+| basicAuth _(or basic_auth)_ #
_[BasicAuth (v1beta1)](#v1beta1-basicauth)_ | _(Optional)_
BasicAuth allow an endpoint to authenticate over basic authentication |
+| bearerTokenFile _(or bearer_token_file)_ #
_string_ | _(Optional)_
File to read bearer token for scraping targets. |
+| bearerTokenSecret _(or bearer_token_secret)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
Secret to mount to read bearer token for scraping targets. The secret
needs to be in the same namespace as the scrape object and accessible by
the victoria-metrics operator. |
| consulAgentSDConfigs#
_[ConsulAgentSDConfig (v1beta1)](#v1beta1-consulagentsdconfig) array_ | _(Optional)_
ConsulAgentSDConfigs defines a list of Consul Agent service discovery configurations. |
| consulSDConfigs#
_[ConsulSDConfig (v1beta1)](#v1beta1-consulsdconfig) array_ | _(Optional)_
ConsulSDConfigs defines a list of Consul service discovery configurations. |
| digitalOceanSDConfigs#
_[DigitalOceanSDConfig (v1beta1)](#v1beta1-digitaloceansdconfig) array_ | _(Optional)_
DigitalOceanSDConfigs defines a list of DigitalOcean service discovery configurations. |
@@ -5406,36 +5422,36 @@ Appears in: [VMScrapeConfig (v1beta1)](#v1beta1-vmscrapeconfig)
| ec2SDConfigs#
_[EC2SDConfig (v1beta1)](#v1beta1-ec2sdconfig) array_ | _(Optional)_
EC2SDConfigs defines a list of EC2 service discovery configurations. |
| eurekaSDConfigs#
_[EurekaSDConfig (v1beta1)](#v1beta1-eurekasdconfig) array_ | _(Optional)_
EurekaSDConfigs defines a list of Eureka service discovery configurations. |
| fileSDConfigs#
_[FileSDConfig (v1beta1)](#v1beta1-filesdconfig) array_ | _(Optional)_
FileSDConfigs defines a list of file service discovery configurations. |
-| follow_redirects#
_boolean_ | _(Optional)_
FollowRedirects controls redirects for scraping. |
+| follow_redirects _(or followRedirects)_ #
_boolean_ | _(Optional)_
FollowRedirects controls redirects for scraping. |
| gceSDConfigs#
_[GCESDConfig (v1beta1)](#v1beta1-gcesdconfig) array_ | _(Optional)_
GCESDConfigs defines a list of GCE service discovery configurations. |
| hetznerSDConfigs#
_[HetznerSDConfig (v1beta1)](#v1beta1-hetznersdconfig) array_ | _(Optional)_
HetznerSDConfigs defines a list of Hetzner service discovery configurations. |
-| honorLabels#
_boolean_ | _(Optional)_
HonorLabels chooses the metric's labels on collisions with target labels. |
-| honorTimestamps#
_boolean_ | _(Optional)_
HonorTimestamps controls whether vmagent or vmsingle respects the timestamps present in scraped data. |
+| honorLabels _(or honor_labels)_ #
_boolean_ | _(Optional)_
HonorLabels chooses the metric's labels on collisions with target labels. |
+| honorTimestamps _(or honor_timestamps)_ #
_boolean_ | _(Optional)_
HonorTimestamps controls whether vmagent or vmsingle respects the timestamps present in scraped data. |
| httpSDConfigs#
_[HTTPSDConfig (v1beta1)](#v1beta1-httpsdconfig) array_ | _(Optional)_
HTTPSDConfigs defines a list of HTTP service discovery configurations. |
| interval#
_string_ | _(Optional)_
Interval at which metrics should be scraped |
| kubernetesSDConfigs#
_[KubernetesSDConfig (v1beta1)](#v1beta1-kubernetessdconfig) array_ | _(Optional)_
KubernetesSDConfigs defines a list of Kubernetes service discovery configurations. |
| kumaSDConfigs#
_[KumaSDConfig (v1beta1)](#v1beta1-kumasdconfig) array_ | _(Optional)_
KumaSDConfigs defines a list of Kuma service discovery configurations. |
| marathonSDConfigs#
_[MarathonSDConfig (v1beta1)](#v1beta1-marathonsdconfig) array_ | _(Optional)_
MarathonSDConfigs defines a list of Marathon service discovery configurations. |
-| max_scrape_size#
_string_ | _(Optional)_
MaxScrapeSize defines a maximum size of scraped data for a job |
-| metricRelabelConfigs#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
MetricRelabelConfigs to apply to samples after scrapping. |
+| max_scrape_size _(or maxScrapeSize)_ #
_string_ | _(Optional)_
MaxScrapeSize defines a maximum size of scraped data for a job |
+| metricRelabelConfigs _(or metric_relabel_configs)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
MetricRelabelConfigs to apply to samples after scrapping. |
| nomadSDConfigs#
_[NomadSDConfig (v1beta1)](#v1beta1-nomadsdconfig) array_ | _(Optional)_
NomadSDConfigs defines a list of Nomad service discovery configurations. |
| oauth2#
_[OAuth2 (v1beta1)](#v1beta1-oauth2)_ | _(Optional)_
OAuth2 defines auth configuration |
| openstackSDConfigs#
_[OpenStackSDConfig (v1beta1)](#v1beta1-openstacksdconfig) array_ | _(Optional)_
OpenStackSDConfigs defines a list of OpenStack service discovery configurations. |
| ovhcloudSDConfigs#
_[OVHCloudSDConfig (v1beta1)](#v1beta1-ovhcloudsdconfig) array_ | _(Optional)_
OVHCloudSDConfigs defines a list of OVH Cloud service discovery configurations. |
| params#
_object (keys:string, values:string array)_ | _(Optional)_
Optional HTTP URL parameters |
| path#
_string_ | _(Optional)_
HTTP path to scrape for metrics. |
-| proxyURL#
_string_ | _(Optional)_
ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. |
+| proxyURL _(or proxy_url)_ #
_string_ | _(Optional)_
ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. |
| puppetDBSDConfigs#
_[PuppetDBSDConfig (v1beta1)](#v1beta1-puppetdbsdconfig) array_ | _(Optional)_
PuppetDBSDConfigs defines a list of PuppetDB service discovery configurations. |
-| relabelConfigs#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
RelabelConfigs to apply to samples during service discovery. |
-| sampleLimit#
_integer_ | _(Optional)_
SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. |
+| relabelConfigs _(or relabel_configs)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
RelabelConfigs to apply to samples during service discovery. |
+| sampleLimit _(or sample_limit)_ #
_integer_ | _(Optional)_
SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. |
| scheme#
_string_ | _(Optional)_
HTTP scheme to use for scraping. |
| scrapeClass#
_string_ | _(Optional)_
ScrapeClass defined scrape class to apply |
-| scrapeTimeout#
_string_ | _(Optional)_
Timeout after which the scrape is ended |
-| scrape_interval#
_string_ | _(Optional)_
ScrapeInterval is the same as Interval and has priority over it.
one of scrape_interval or interval can be used |
-| seriesLimit#
_integer_ | _(Optional)_
SeriesLimit defines per-scrape limit on number of unique time series
a single target can expose during all the scrapes on the time window of 24h. |
+| scrapeTimeout _(or scrape_timeout)_ #
_string_ | _(Optional)_
Timeout after which the scrape is ended |
+| scrape_interval _(or scrapeInterval)_ #
_string_ | _(Optional)_
ScrapeInterval is the same as Interval and has priority over it.
one of scrape_interval or interval can be used |
+| seriesLimit _(or series_limit)_ #
_integer_ | _(Optional)_
SeriesLimit defines per-scrape limit on number of unique time series
a single target can expose during all the scrapes on the time window of 24h. |
| staticConfigs#
_[StaticConfig (v1beta1)](#v1beta1-staticconfig) array_ | _(Optional)_
StaticConfigs defines a list of static targets with a common label set. |
-| tlsConfig#
_[TLSConfig (v1beta1)](#v1beta1-tlsconfig)_ | _(Optional)_
TLSConfig configuration to use when scraping the endpoint |
-| vm_scrape_params#
_[VMScrapeParams (v1beta1)](#v1beta1-vmscrapeparams)_ | _(Optional)_
VMScrapeParams defines VictoriaMetrics specific scrape parameters |
+| tlsConfig _(or tls_config)_ #
_[TLSConfig (v1beta1)](#v1beta1-tlsconfig)_ | _(Optional)_
TLSConfig configuration to use when scraping the endpoint |
+| vm_scrape_params _(or vmScrapeParams)_ #
_[VMScrapeParams (v1beta1)](#v1beta1-vmscrapeparams)_ | _(Optional)_
VMScrapeParams defines VictoriaMetrics specific scrape parameters |
| vultrSDConfigs#
_[VultrSDConfig (v1beta1)](#v1beta1-vultrsdconfig) array_ | _(Optional)_
VultrSDConfigs defines a list of Vultr service discovery configurations. |
| yandexCloudSDConfigs#
_[YandexCloudSDConfig (v1beta1)](#v1beta1-yandexcloudsdconfig) array_ | _(Optional)_
YandexCloudSDConfigs defines a list of Yandex Cloud service discovery configurations. |
@@ -5449,14 +5465,14 @@ Appears in: [Endpoint (v1beta1)](#v1beta1-endpoint), [EndpointScrapeParams (v1be
| Field | Description |
| --- | --- |
-| disable_compression#
_boolean_ | _(Optional)_
DisableCompression |
-| disable_keep_alive#
_boolean_ | _(Optional)_
disable_keepalive allows disabling HTTP keep-alive when scraping targets.
By default, HTTP keep-alive is enabled, so TCP connections to scrape targets
could be reused.
See https://docs.victoriametrics.com/victoriametrics/vmagent/#scrape_config-enhancements |
+| disable_compression _(or disableCompression)_ #
_boolean_ | _(Optional)_
DisableCompression |
+| disable_keep_alive _(or disableKeepAlive)_ #
_boolean_ | _(Optional)_
disable_keepalive allows disabling HTTP keep-alive when scraping targets.
By default, HTTP keep-alive is enabled, so TCP connections to scrape targets
could be reused.
See https://docs.victoriametrics.com/victoriametrics/vmagent/#scrape_config-enhancements |
| headers
_string array_ | _(Optional)_
Headers allows sending custom headers to scrape targets
must be in of semicolon separated header with it's value
eg:
headerName: headerValue
vmagent and vmsingle support since 1.79.0 version |
-| no_stale_markers#
_boolean_ | _(Optional)_
|
-| proxy_client_config#
_[ProxyClientConfig (v1beta1)](#v1beta1-proxyclientconfig)_ | _(Optional)_
ProxyClientConfig configures proxy auth settings for scraping
See feature description https://docs.victoriametrics.com/victoriametrics/vmagent/#scraping-targets-via-a-proxy |
-| scrape_align_interval#
_string_ | _(Optional)_
|
-| scrape_offset#
_string_ | _(Optional)_
|
-| stream_parse#
_boolean_ | _(Optional)_
|
+| no_stale_markers _(or noStaleMarkers)_ #
_boolean_ | _(Optional)_
|
+| proxy_client_config _(or proxyClientConfig)_ #
_[ProxyClientConfig (v1beta1)](#v1beta1-proxyclientconfig)_ | _(Optional)_
ProxyClientConfig configures proxy auth settings for scraping
See feature description https://docs.victoriametrics.com/victoriametrics/vmagent/#scraping-targets-via-a-proxy |
+| scrape_align_interval _(or scrapeAlignInterval)_ #
_string_ | _(Optional)_
|
+| scrape_offset _(or scrapeOffset)_ #
_string_ | _(Optional)_
|
+| stream_parse _(or streamParse)_ #
_boolean_ | _(Optional)_
|
#### VMSelect {#v1beta1-vmselect}
@@ -5585,10 +5601,10 @@ Appears in: [VMDistributedZoneSingle (v1alpha1)](#v1alpha1-vmdistributedzonesing
| Field | Description |
| --- | --- |
-| additionalScrapeConfigs#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
AdditionalScrapeConfigs As scrape configs are appended, the user is responsible to make sure it
is valid. Note that using this feature may expose the possibility to
break upgrades of VMAgent or VMSingle. It is advised to review VMAgent or VMSingle release
notes to ensure that no incompatible scrape configs are going to break
VMAgent or VMSingle after the upgrade. |
+| additionalScrapeConfigs _(or additional_scrape_configs)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
AdditionalScrapeConfigs As scrape configs are appended, the user is responsible to make sure it
is valid. Note that using this feature may expose the possibility to
break upgrades of VMAgent or VMSingle. It is advised to review VMAgent or VMSingle release
notes to ensure that no incompatible scrape configs are going to break
VMAgent or VMSingle after the upgrade. |
| affinity#
_[Affinity (v1)](#v1-affinity)_ | _(Optional)_
Affinity If specified, the pod's scheduling constraints. |
| apiServerConfig#
_[APIServerConfig (v1beta1)](#v1beta1-apiserverconfig)_ | _(Optional)_
APIServerConfig allows specifying a host and auth methods to access apiserver.
If left empty, VMSingle is assumed to run inside of the cluster
and will discover API servers automatically and use the pod's CA certificate
and bearer token file at /var/run/secrets/kubernetes.io/serviceaccount/. |
-| arbitraryFSAccessThroughSMs#
_[ArbitraryFSAccessThroughSMsConfig (v1beta1)](#v1beta1-arbitraryfsaccessthroughsmsconfig)_ | _(Optional)_
ArbitraryFSAccessThroughSMs configures whether configuration
based on EndpointAuth can access arbitrary files on the file system
of the VMAgent or VMSingle container e.g. bearer token files, basic auth, tls certs |
+| arbitraryFSAccessThroughSMs _(or arbitrary_fs_access_through_s_ms)_ #
_[ArbitraryFSAccessThroughSMsConfig (v1beta1)](#v1beta1-arbitraryfsaccessthroughsmsconfig)_ | _(Optional)_
ArbitraryFSAccessThroughSMs configures whether configuration
based on EndpointAuth can access arbitrary files on the file system
of the VMAgent or VMSingle container e.g. bearer token files, basic auth, tls certs |
| componentVersion#
_string_ | _(Optional)_
ComponentVersion defines default images tag for all components.
it can be overwritten with component specific image.tag value. |
| configMaps#
_string array_ | _(Optional)_
ConfigMaps is a list of ConfigMaps in the same namespace as the Application
object, which shall be mounted into the Application container
at /etc/vm/configs/CONFIGMAP_NAME folder |
| configReloadAuthKeySecret#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
ConfigReloadAuthKeySecret defines optional secret reference authKey for /-/reload API requests.
Given secret reference will be added to the application and vm-config-reloader as volume
Available from: v0.57.0 |
@@ -5602,53 +5618,53 @@ Appears in: [VMDistributedZoneSingle (v1alpha1)](#v1alpha1-vmdistributedzonesing
| dnsConfig#
_[PodDNSConfig (v1)](#v1-poddnsconfig)_ | _(Optional)_
Specifies the DNS parameters of a pod.
Parameters specified here will be merged to the generated DNS
configuration based on DNSPolicy. |
| dnsPolicy#
_[DNSPolicy (v1)](#v1-dnspolicy)_ | _(Optional)_
DNSPolicy sets DNS policy for the pod |
| downsampling#
_[DownsamplingConfig (v1beta1)](#v1beta1-downsamplingconfig)_ | _(Optional)_
Downsampling defines downsampling rules for VMSingle.
Requires enterprise license. See https://docs.victoriametrics.com/victoriametrics/single-server-victoriametrics/#downsampling |
-| enableKubernetesAPISelectors#
_boolean_ | _(Optional)_
EnableKubernetesAPISelectors instructs vmagent or vmsingle to use CRD scrape objects spec.selectors for
Kubernetes API list and watch requests.
https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#list-and-watch-filtering
It could be useful to reduce Kubernetes API server resource usage for serving less than 100 CRD scrape objects in total. |
+| enableKubernetesAPISelectors _(or enable_kubernetes_api_selectors)_ #
_boolean_ | _(Optional)_
EnableKubernetesAPISelectors instructs vmagent or vmsingle to use CRD scrape objects spec.selectors for
Kubernetes API list and watch requests.
https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#list-and-watch-filtering
It could be useful to reduce Kubernetes API server resource usage for serving less than 100 CRD scrape objects in total. |
| enableServiceLinks#
_boolean_ | _(Optional)_
EnableServiceLinks indicates whether information about services should be injected into pod's
environment variables, matching the syntax of Docker links.
Optional: Defaults to true. |
-| enforcedNamespaceLabel#
_string_ | _(Optional)_
EnforcedNamespaceLabel enforces adding a namespace label of origin for each alert
and metric that is user created. The label value will always be the namespace of the object that is
being created. |
-| externalLabelName#
_string_ | _(Optional)_
ExternalLabelName Name of external label used to denote scraping agent instance
name. Defaults to the value of `prometheus`. External label will
_not_ be added when value is set to empty string (`""`). |
-| externalLabels#
_object (keys:string, values:string)_ | _(Optional)_
ExternalLabels The labels to add to any time series scraped by vmagent or vmsingle.
it doesn't affect metrics ingested directly by push API's |
+| enforcedNamespaceLabel _(or enforced_namespace_label)_ #
_string_ | _(Optional)_
EnforcedNamespaceLabel enforces adding a namespace label of origin for each alert
and metric that is user created. The label value will always be the namespace of the object that is
being created. |
+| externalLabelName _(or external_label_name)_ #
_string_ | _(Optional)_
ExternalLabelName Name of external label used to denote scraping agent instance
name. Defaults to the value of `prometheus`. External label will
_not_ be added when value is set to empty string (`""`). |
+| externalLabels _(or external_labels)_ #
_object (keys:string, values:string)_ | _(Optional)_
ExternalLabels The labels to add to any time series scraped by vmagent or vmsingle.
it doesn't affect metrics ingested directly by push API's |
| extraArgs
_object (keys:string, values:string)_ | _(Optional)_
ExtraArgs that will be passed to the application container
for example remoteWrite.tmpDataPath: /tmp |
| extraEnvs
_[EnvVar (v1)](#v1-envvar) array_ | _(Optional)_
ExtraEnvs that will be passed to the application container |
| extraEnvsFrom
_[EnvFromSource (v1)](#v1-envfromsource) array_ | _(Optional)_
ExtraEnvsFrom defines source of env variables for the application container
could either be secret or configmap |
-| globalScrapeMetricRelabelConfigs#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
GlobalScrapeMetricRelabelConfigs is a global metric relabel configuration, which is applied to each scrape job. |
-| globalScrapeRelabelConfigs#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
GlobalScrapeRelabelConfigs is a global relabel configuration, which is applied to each samples of each scrape job during service discovery. |
+| globalScrapeMetricRelabelConfigs _(or global_scrape_metric_relabel_configs)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
GlobalScrapeMetricRelabelConfigs is a global metric relabel configuration, which is applied to each scrape job. |
+| globalScrapeRelabelConfigs _(or global_scrape_relabel_configs)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
GlobalScrapeRelabelConfigs is a global relabel configuration, which is applied to each samples of each scrape job during service discovery. |
| hostAliases#
_[HostAlias (v1)](#v1-hostalias) array_ | _(Optional)_
HostAliases provides mapping for ip and hostname,
that would be propagated to pod,
cannot be used with HostNetwork. |
| hostNetwork#
_boolean_ | _(Optional)_
HostNetwork controls whether the pod may use the node network namespace |
| host_aliases#
_[HostAlias (v1)](#v1-hostalias) array_ | _(Optional)_
HostAliasesUnderScore provides mapping for ip and hostname,
that would be propagated to pod,
cannot be used with HostNetwork.
Has Priority over hostAliases field |
-| ignoreNamespaceSelectors#
_boolean_ | _(Optional)_
IgnoreNamespaceSelectors if set to true will ignore NamespaceSelector settings from
scrape objects, and they will only discover endpoints
within their current namespace. Defaults to false. |
+| ignoreNamespaceSelectors _(or ignore_namespace_selectors)_ #
_boolean_ | _(Optional)_
IgnoreNamespaceSelectors if set to true will ignore NamespaceSelector settings from
scrape objects, and they will only discover endpoints
within their current namespace. Defaults to false. |
| image#
_[Image (v1beta1)](#v1beta1-image)_ | _(Optional)_
Image - docker image settings
if no specified operator uses default version from operator config |
| imagePullSecrets#
_[LocalObjectReference (v1)](#v1-localobjectreference) array_ | _(Optional)_
ImagePullSecrets An optional list of references to secrets in the same namespace
to use for pulling images from registries
see https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod |
-| ingestOnlyMode#
_boolean_ | _(Optional)_
IngestOnlyMode switches vmagent or vmsingle into unmanaged mode
it disables any config generation for scraping
Currently it prevents vmagent or vmsingle from managing tls and auth options for remote write |
+| ingestOnlyMode _(or ingest_only_mode)_ #
_boolean_ | _(Optional)_
IngestOnlyMode switches vmagent or vmsingle into unmanaged mode
it disables any config generation for scraping
Currently it prevents vmagent or vmsingle from managing tls and auth options for remote write |
| initContainers#
_[Container (v1)](#v1-container) array_ | _(Optional)_
InitContainers allows adding initContainers to the pod definition.
Any errors during the execution of an initContainer will lead to a restart of the Pod.
More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ |
| inlineRelabelConfig#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
InlineRelabelConfig - defines GlobalRelabelConfig for vmagent, can be defined directly at CRD. |
-| inlineScrapeConfig#
_string_ | _(Optional)_
InlineScrapeConfig As scrape configs are appended, the user is responsible to make sure it
is valid. Note that using this feature may expose the possibility to
break upgrades of VMAgent or VMSingle. It is advised to review VMAgent or VMSingle release
notes to ensure that no incompatible scrape configs are going to break
VMAgent or VMSingle after the upgrade.
it should be defined as single yaml file.
inlineScrapeConfig: \|
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"] |
+| inlineScrapeConfig _(or inline_scrape_config)_ #
_string_ | _(Optional)_
InlineScrapeConfig As scrape configs are appended, the user is responsible to make sure it
is valid. Note that using this feature may expose the possibility to
break upgrades of VMAgent or VMSingle. It is advised to review VMAgent or VMSingle release
notes to ensure that no incompatible scrape configs are going to break
VMAgent or VMSingle after the upgrade.
it should be defined as single yaml file.
inlineScrapeConfig: \|
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"] |
| insertPorts#
_[InsertPorts (v1beta1)](#v1beta1-insertports)_ | _(Required)_
InsertPorts - additional listen ports for data ingestion. |
| license#
_[License (v1beta1)](#v1beta1-license)_ | _(Optional)_
License allows to configure license key to be used for enterprise features.
Using license key is supported starting from VictoriaMetrics v1.94.0.
See [here](https://docs.victoriametrics.com/victoriametrics/enterprise/) |
| livenessProbe#
_[Probe (v1)](#v1-probe)_ | _(Optional)_
LivenessProbe that will be added to CR pod |
| logFormat#
_string_ | _(Optional)_
LogFormat for VMSingle to be configured with. |
| logLevel#
_string_ | _(Optional)_
LogLevel for victoria metrics single to be configured with. |
| managedMetadata#
_[ManagedObjectsMetadata (v1beta1)](#v1beta1-managedobjectsmetadata)_ | _(Required)_
ManagedMetadata defines metadata that will be added to the all objects
created by operator for the given CustomResource |
-| maxScrapeInterval#
_string_ | _(Required)_
MaxScrapeInterval allows limiting maximum scrape interval for VMServiceScrape, VMPodScrape and other scrapes
If interval is higher than defined limit, `maxScrapeInterval` will be used. |
+| maxScrapeInterval _(or max_scrape_interval)_ #
_string_ | _(Required)_
MaxScrapeInterval allows limiting maximum scrape interval for VMServiceScrape, VMPodScrape and other scrapes
If interval is higher than defined limit, `maxScrapeInterval` will be used. |
| minReadySeconds#
_integer_ | _(Optional)_
MinReadySeconds defines a minimum number of seconds to wait before starting update next pod
if previous in healthy state
Has no effect for VLogs and VMSingle |
-| minScrapeInterval#
_string_ | _(Required)_
MinScrapeInterval allows limiting minimal scrape interval for VMServiceScrape, VMPodScrape and other scrapes
If interval is lower than defined limit, `minScrapeInterval` will be used. |
+| minScrapeInterval _(or min_scrape_interval)_ #
_string_ | _(Required)_
MinScrapeInterval allows limiting minimal scrape interval for VMServiceScrape, VMPodScrape and other scrapes
If interval is lower than defined limit, `minScrapeInterval` will be used. |
| networkPolicy#
_[EmbeddedNetworkPolicy (v1beta1)](#v1beta1-embeddednetworkpolicy)_ | _(Optional)_
NetworkPolicy defines network access rules for pods created by this CR. |
-| nodeScrapeNamespaceSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
NodeScrapeNamespaceSelector defines Namespaces to be selected for VMNodeScrape discovery.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
-| nodeScrapeRelabelTemplate#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
NodeScrapeRelabelTemplate defines relabel config, that will be added to each VMNodeScrape.
it's useful for adding specific labels to all targets |
-| nodeScrapeSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
NodeScrapeSelector defines VMNodeScrape to be selected for scraping.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
+| nodeScrapeNamespaceSelector _(or node_scrape_namespace_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
NodeScrapeNamespaceSelector defines Namespaces to be selected for VMNodeScrape discovery.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
+| nodeScrapeRelabelTemplate _(or node_scrape_relabel_template)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
NodeScrapeRelabelTemplate defines relabel config, that will be added to each VMNodeScrape.
it's useful for adding specific labels to all targets |
+| nodeScrapeSelector _(or node_scrape_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
NodeScrapeSelector defines VMNodeScrape to be selected for scraping.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
| nodeSelector#
_object (keys:string, values:string)_ | _(Optional)_
NodeSelector Define which Nodes the Pods are scheduled on. |
-| overrideHonorLabels#
_boolean_ | _(Optional)_
OverrideHonorLabels if set to true overrides all user configured honor_labels.
If HonorLabels is set in scrape objects to true, this overrides honor_labels to false. |
-| overrideHonorTimestamps#
_boolean_ | _(Optional)_
OverrideHonorTimestamps allows to globally enforce honoring timestamps in all scrape configs. |
+| overrideHonorLabels _(or override_honor_labels)_ #
_boolean_ | _(Optional)_
OverrideHonorLabels if set to true overrides all user configured honor_labels.
If HonorLabels is set in scrape objects to true, this overrides honor_labels to false. |
+| overrideHonorTimestamps _(or override_honor_timestamps)_ #
_boolean_ | _(Optional)_
OverrideHonorTimestamps allows to globally enforce honoring timestamps in all scrape configs. |
| paused#
_boolean_ | _(Optional)_
Paused If set to true all actions on the underlying managed objects are not
going to be performed, except for delete actions. |
| podMetadata#
_[EmbeddedObjectMetadata (v1beta1)](#v1beta1-embeddedobjectmetadata)_ | _(Optional)_
PodMetadata configures Labels and Annotations which are propagated to the VMSingle pods. |
-| podScrapeNamespaceSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
PodScrapeNamespaceSelector defines Namespaces to be selected for VMPodScrape discovery.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
-| podScrapeRelabelTemplate#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
PodScrapeRelabelTemplate defines relabel config, that will be added to each VMPodScrape.
it's useful for adding specific labels to all targets |
-| podScrapeSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
PodScrapeSelector defines PodScrapes to be selected for target discovery.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
+| podScrapeNamespaceSelector _(or pod_scrape_namespace_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
PodScrapeNamespaceSelector defines Namespaces to be selected for VMPodScrape discovery.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
+| podScrapeRelabelTemplate _(or pod_scrape_relabel_template)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
PodScrapeRelabelTemplate defines relabel config, that will be added to each VMPodScrape.
it's useful for adding specific labels to all targets |
+| podScrapeSelector _(or pod_scrape_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
PodScrapeSelector defines PodScrapes to be selected for target discovery.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
| port#
_string_ | _(Optional)_
Port listen address |
| preStopSleepSeconds#
_integer_ | _(Optional)_
PreStopSleepSeconds defines the number of seconds to sleep in the preStop lifecycle hook.
It gives time for load balancers to remove the pod from rotation before the pod is terminated.
Defaults to 15 for applicable components. Set to 0 to disable. |
| priorityClassName#
_string_ | _(Optional)_
PriorityClassName class assigned to the Pods |
-| probeNamespaceSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ProbeNamespaceSelector defines Namespaces to be selected for VMProbe discovery.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
-| probeScrapeRelabelTemplate#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
ProbeScrapeRelabelTemplate defines relabel config, that will be added to each VMProbeScrape.
it's useful for adding specific labels to all targets |
-| probeSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ProbeSelector defines VMProbe to be selected for target probing.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
+| probeNamespaceSelector _(or probe_namespace_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ProbeNamespaceSelector defines Namespaces to be selected for VMProbe discovery.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
+| probeScrapeRelabelTemplate _(or probe_scrape_relabel_template)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
ProbeScrapeRelabelTemplate defines relabel config, that will be added to each VMProbeScrape.
it's useful for adding specific labels to all targets |
+| probeSelector _(or probe_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ProbeSelector defines VMProbe to be selected for target probing.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
| readinessGates#
_[PodReadinessGate (v1)](#v1-podreadinessgate) array_ | _(Required)_
ReadinessGates defines pod readiness gates |
| readinessProbe#
_[Probe (v1)](#v1-probe)_ | _(Optional)_
ReadinessProbe that will be added to CR pod |
| relabelConfig#
_[ConfigMapKeySelector (v1)](#v1-configmapkeyselector)_ | _(Optional)_
RelabelConfig ConfigMap with global relabel config -remoteWrite.relabelConfig
This relabeling is applied to all the collected metrics before sending them to remote storage. |
@@ -5659,27 +5675,27 @@ Appears in: [VMDistributedZoneSingle (v1alpha1)](#v1alpha1-vmdistributedzonesing
| retentionPeriod#
_string_ | _(Optional)_
RetentionPeriod defines how long to retain stored metrics, specified as a duration (e.g., "1d", "1w", "1m").
Data with timestamps outside the RetentionPeriod is automatically deleted. The minimum allowed value is 1d, or 24h.
The default value is 1 (one month).
See [retention](https://docs.victoriametrics.com/victoriametrics/single-server-victoriametrics/#retention) docs for details. |
| revisionHistoryLimitCount#
_integer_ | _(Optional)_
The number of old ReplicaSets to retain to allow rollback in deployment or
maximum number of revisions that will be maintained in the Deployment revision history.
Has no effect at StatefulSets
Defaults to 10. |
| runtimeClassName#
_string_ | _(Optional)_
RuntimeClassName - defines runtime class for kubernetes pod.
https://kubernetes.io/docs/concepts/containers/runtime-class/ |
-| sampleLimit#
_integer_ | _(Optional)_
SampleLimit defines global per target limit of scraped samples |
+| sampleLimit _(or sample_limit)_ #
_integer_ | _(Optional)_
SampleLimit defines global per target limit of scraped samples |
| schedulerName#
_string_ | _(Optional)_
SchedulerName - defines kubernetes scheduler name |
-| scrapeClasses#
_[ScrapeClass (v1beta1)](#v1beta1-scrapeclass) array_ | _(Optional)_
ScrapeClasses defines the list of scrape classes to expose to scraping objects such as
PodScrapes, ServiceScrapes, Probes and ScrapeConfigs. |
-| scrapeConfigNamespaceSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ScrapeConfigNamespaceSelector defines Namespaces to be selected for VMScrapeConfig discovery.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
-| scrapeConfigRelabelTemplate#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
ScrapeConfigRelabelTemplate defines relabel config, that will be added to each VMScrapeConfig.
it's useful for adding specific labels to all targets |
-| scrapeConfigSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ScrapeConfigSelector defines VMScrapeConfig to be selected for target discovery.
Works in combination with NamespaceSelector. |
-| scrapeInterval#
_string_ | _(Optional)_
ScrapeInterval defines how often scrape targets by default |
-| scrapeTimeout#
_string_ | _(Optional)_
ScrapeTimeout defines global timeout for targets scrape |
+| scrapeClasses _(or scrape_classes)_ #
_[ScrapeClass (v1beta1)](#v1beta1-scrapeclass) array_ | _(Optional)_
ScrapeClasses defines the list of scrape classes to expose to scraping objects such as
PodScrapes, ServiceScrapes, Probes and ScrapeConfigs. |
+| scrapeConfigNamespaceSelector _(or scrape_config_namespace_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ScrapeConfigNamespaceSelector defines Namespaces to be selected for VMScrapeConfig discovery.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
+| scrapeConfigRelabelTemplate _(or scrape_config_relabel_template)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
ScrapeConfigRelabelTemplate defines relabel config, that will be added to each VMScrapeConfig.
it's useful for adding specific labels to all targets |
+| scrapeConfigSelector _(or scrape_config_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ScrapeConfigSelector defines VMScrapeConfig to be selected for target discovery.
Works in combination with NamespaceSelector. |
+| scrapeInterval _(or scrape_interval)_ #
_string_ | _(Optional)_
ScrapeInterval defines how often scrape targets by default |
+| scrapeTimeout _(or scrape_timeout)_ #
_string_ | _(Optional)_
ScrapeTimeout defines global timeout for targets scrape |
| secrets#
_string array_ | _(Optional)_
Secrets is a list of Secrets in the same namespace as the Application
object, which shall be mounted into the Application container
at /etc/vm/secrets/SECRET_NAME folder |
| securityContext#
_[SecurityContext (v1beta1)](#v1beta1-securitycontext)_ | _(Optional)_
SecurityContext holds pod-level security attributes and common container settings.
This defaults to the default PodSecurityContext. |
-| selectAllByDefault#
_boolean_ | _(Optional)_
SelectAllByDefault changes default behavior for empty CRD selectors, such ServiceScrapeSelector.
with selectAllByDefault: true and empty serviceScrapeSelector and ServiceScrapeNamespaceSelector
Operator selects all exist serviceScrapes
with selectAllByDefault: false - selects nothing |
+| selectAllByDefault _(or select_all_by_default)_ #
_boolean_ | _(Optional)_
SelectAllByDefault changes default behavior for empty CRD selectors, such ServiceScrapeSelector.
with selectAllByDefault: true and empty serviceScrapeSelector and ServiceScrapeNamespaceSelector
Operator selects all exist serviceScrapes
with selectAllByDefault: false - selects nothing |
| serviceAccountName#
_string_ | _(Optional)_
ServiceAccountName is the name of the ServiceAccount to use to run the pods |
-| serviceScrapeNamespaceSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ServiceScrapeNamespaceSelector Namespaces to be selected for VMServiceScrape discovery.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
-| serviceScrapeRelabelTemplate#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
ServiceScrapeRelabelTemplate defines relabel config, that will be added to each VMServiceScrape.
it's useful for adding specific labels to all targets |
-| serviceScrapeSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ServiceScrapeSelector defines ServiceScrapes to be selected for target discovery.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
+| serviceScrapeNamespaceSelector _(or service_scrape_namespace_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ServiceScrapeNamespaceSelector Namespaces to be selected for VMServiceScrape discovery.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
+| serviceScrapeRelabelTemplate _(or service_scrape_relabel_template)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
ServiceScrapeRelabelTemplate defines relabel config, that will be added to each VMServiceScrape.
it's useful for adding specific labels to all targets |
+| serviceScrapeSelector _(or service_scrape_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
ServiceScrapeSelector defines ServiceScrapes to be selected for target discovery.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
| serviceScrapeSpec#
_[VMServiceScrapeSpec (v1beta1)](#v1beta1-vmservicescrapespec)_ | _(Optional)_
ServiceScrapeSpec that will be added to vmsingle VMServiceScrape spec |
| serviceSpec#
_[AdditionalServiceSpec (v1beta1)](#v1beta1-additionalservicespec)_ | _(Optional)_
ServiceSpec that will be added to vmsingle service spec |
| startupProbe#
_[Probe (v1)](#v1-probe)_ | _(Optional)_
StartupProbe that will be added to CR pod |
-| staticScrapeNamespaceSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
StaticScrapeNamespaceSelector defines Namespaces to be selected for VMStaticScrape discovery.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
-| staticScrapeRelabelTemplate#
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
StaticScrapeRelabelTemplate defines relabel config, that will be added to each VMStaticScrape.
it's useful for adding specific labels to all targets |
-| staticScrapeSelector#
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
StaticScrapeSelector defines VMStaticScrape to be selected for target discovery.
Works in combination with NamespaceSelector.
If both nil - match everything.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces. |
+| staticScrapeNamespaceSelector _(or static_scrape_namespace_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
StaticScrapeNamespaceSelector defines Namespaces to be selected for VMStaticScrape discovery.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault |
+| staticScrapeRelabelTemplate _(or static_scrape_relabel_template)_ #
_[RelabelConfig (v1beta1)](#v1beta1-relabelconfig) array_ | _(Optional)_
StaticScrapeRelabelTemplate defines relabel config, that will be added to each VMStaticScrape.
it's useful for adding specific labels to all targets |
+| staticScrapeSelector _(or static_scrape_selector)_ #
_[LabelSelector (v1)](#v1-labelselector)_ | _(Optional)_
StaticScrapeSelector defines VMStaticScrape to be selected for target discovery.
Works in combination with NamespaceSelector.
If both nil - match everything.
NamespaceSelector nil - only objects at VMAgent or VMSingle namespace.
Selector nil - only objects at NamespaceSelector namespaces. |
| storage#
_[PersistentVolumeClaimSpec (v1)](#v1-persistentvolumeclaimspec)_ | _(Optional)_
Storage is the definition of how storage will be used by the VMSingle
by default it`s empty dir
this option is ignored if storageDataPath is set |
| storageDataPath#
_string_ | _(Optional)_
StorageDataPath disables spec.storage option and overrides arg for victoria-metrics binary --storageDataPath,
its users responsibility to mount proper device into given path.
It requires to provide spec.volumes and spec.volumeMounts with at least 1 value |
| storageMetadata#
_[EmbeddedObjectMetadata (v1beta1)](#v1beta1-embeddedobjectmetadata)_ | _(Optional)_
StorageMeta defines annotations and labels attached to PVC for given vmsingle CR |
@@ -5691,7 +5707,7 @@ Appears in: [VMDistributedZoneSingle (v1alpha1)](#v1alpha1-vmdistributedzonesing
| useLegacyNaming#
_boolean_ | _(Optional)_
UseLegacyNaming uses standalone Helm chart naming for managed resources:
the CR name is used directly instead of the default "-" convention.
Available from: v0.73.0 |
| useStrictSecurity#
_boolean_ | _(Optional)_
UseStrictSecurity enables strict security mode for component
it restricts disk writes access
uses non-root user out of the box
drops not needed security permissions |
| useVMConfigReloader#
_boolean_ | _(Optional)_
UseVMConfigReloader replaces prometheus-like config-reloader
with vm one. It uses secrets watch instead of file watch
which greatly increases speed of config updates
Deprecated: will be removed in v0.67.0
|
-| vmAgentExternalLabelName#
_string_ | _(Optional)_
VMAgentExternalLabelName Name of vmAgent external label used to denote vmAgent instance
name. Defaults to the value of `prometheus`. External label will
_not_ be added when value is set to empty string (`""`).
Deprecated: since version v0.67.0 will be removed in v0.69.0 use externalLabelName instead
|
+| vmAgentExternalLabelName _(or vm_agent_external_label_name)_ #
_string_ | _(Optional)_
VMAgentExternalLabelName Name of vmAgent external label used to denote vmAgent instance
name. Defaults to the value of `prometheus`. External label will
_not_ be added when value is set to empty string (`""`).
Deprecated: since version v0.67.0 will be removed in v0.69.0 use externalLabelName instead
|
| vmBackup#
_[VMBackup (v1beta1)](#v1beta1-vmbackup)_ | _(Optional)_
VMBackup configuration for backup |
| volumeMounts#
_[VolumeMount (v1)](#v1-volumemount) array_ | _(Optional)_
VolumeMounts allows configuration of additional VolumeMounts on the output Deployment/StatefulSet definition.
VolumeMounts specified will be appended to other VolumeMounts in the Application container |
| volumes#
_[Volume (v1)](#v1-volume) array_ | _(Optional)_
Volumes allows configuration of additional volumes on the output Deployment/StatefulSet definition.
Volumes specified will be appended to other volumes that are generated. |
@@ -5947,16 +5963,16 @@ Appears in: [Receiver (v1beta1)](#v1beta1-receiver)
| Field | Description |
| --- | --- |
-| api_key#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
The secret's key that contains the API key to use when talking to the VictorOps API.
It must be at them same namespace as CRD
fallback to global setting if empty |
-| api_url#
_string_ | _(Optional)_
The VictorOps API URL. |
-| custom_fields#
_object (keys:string, values:string)_ | _(Optional)_
Adds optional custom fields
https://github.com/prometheus/alertmanager/blob/v0.24.0/config/notifiers.go#L537 |
-| entity_display_name#
_string_ | _(Optional)_
Contains summary of the alerted problem. |
-| http_config#
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
The HTTP client's configuration. |
-| message_type#
_string_ | _(Optional)_
Describes the behavior of the alert (CRITICAL, WARNING, INFO). |
-| monitoring_tool#
_string_ | _(Optional)_
The monitoring tool the state message is from. |
-| routing_key#
_string_ | _(Required)_
A key used to map the alert to a team. |
-| send_resolved#
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
-| state_message#
_string_ | _(Optional)_
Contains long explanation of the alerted problem. |
+| api_key _(or apiKey)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
The secret's key that contains the API key to use when talking to the VictorOps API.
It must be at them same namespace as CRD
fallback to global setting if empty |
+| api_url _(or apiUrl)_ #
_string_ | _(Optional)_
The VictorOps API URL. |
+| custom_fields _(or customFields)_ #
_object (keys:string, values:string)_ | _(Optional)_
Adds optional custom fields
https://github.com/prometheus/alertmanager/blob/v0.24.0/config/notifiers.go#L537 |
+| entity_display_name _(or entityDisplayName)_ #
_string_ | _(Optional)_
Contains summary of the alerted problem. |
+| http_config _(or httpConfig)_ #
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
The HTTP client's configuration. |
+| message_type _(or messageType)_ #
_string_ | _(Optional)_
Describes the behavior of the alert (CRITICAL, WARNING, INFO). |
+| monitoring_tool _(or monitoringTool)_ #
_string_ | _(Optional)_
The monitoring tool the state message is from. |
+| routing_key _(or routingKey)_ #
_string_ | _(Required)_
A key used to map the alert to a team. |
+| send_resolved _(or sendResolved)_ #
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
+| state_message _(or stateMessage)_ #
_string_ | _(Optional)_
Contains long explanation of the alerted problem. |
#### VultrSDConfig {#v1beta1-vultrsdconfig}
@@ -5989,11 +6005,11 @@ Appears in: [Receiver (v1beta1)](#v1beta1-receiver)
| Field | Description |
| --- | --- |
-| api_url#
_string_ | _(Optional)_
The Webex Teams API URL, i.e. https://webexapis.com/v1/messages |
-| http_config#
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
HTTP client configuration. You must use this configuration to supply the bot token as part of the HTTP `Authorization` header. |
+| api_url _(or apiUrl)_ #
_string_ | _(Optional)_
The Webex Teams API URL, i.e. https://webexapis.com/v1/messages |
+| http_config _(or httpConfig)_ #
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
HTTP client configuration. You must use this configuration to supply the bot token as part of the HTTP `Authorization` header. |
| message#
_string_ | _(Optional)_
The message body template |
-| room_id#
_string_ | _(Required)_
The ID of the Webex Teams room where to send the messages |
-| send_resolved#
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
+| room_id _(or roomId)_ #
_string_ | _(Required)_
The ID of the Webex Teams room where to send the messages |
+| send_resolved _(or sendResolved)_ #
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
#### WebhookConfig {#v1beta1-webhookconfig}
@@ -6005,12 +6021,12 @@ Appears in: [Receiver (v1beta1)](#v1beta1-receiver)
| Field | Description |
| --- | --- |
-| http_config#
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
HTTP client configuration. |
-| max_alerts#
_integer_ | _(Optional)_
Maximum number of alerts to be sent per webhook message. When 0, all alerts are included. |
-| send_resolved#
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
+| http_config _(or httpConfig)_ #
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
HTTP client configuration. |
+| max_alerts _(or maxAlerts)_ #
_integer_ | _(Optional)_
Maximum number of alerts to be sent per webhook message. When 0, all alerts are included. |
+| send_resolved _(or sendResolved)_ #
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
| timeout#
_string_ | _(Optional)_
Timeout is the maximum time allowed to invoke the webhook
available since v0.28.0 alertmanager version |
| url#
_string_ | _(Optional)_
URL to send requests to,
one of `urlSecret` and `url` must be defined. |
-| url_secret#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
URLSecret defines secret name and key at the CRD namespace.
It must contain the webhook URL.
one of `urlSecret` and `url` must be defined. |
+| url_secret _(or urlSecret)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
URLSecret defines secret name and key at the CRD namespace.
It must contain the webhook URL.
one of `urlSecret` and `url` must be defined. |
#### WechatConfig {#v1beta1-wechatconfig}
@@ -6022,17 +6038,17 @@ Appears in: [Receiver (v1beta1)](#v1beta1-receiver)
| Field | Description |
| --- | --- |
-| agent_id#
_string_ | _(Optional)_
|
-| api_secret#
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
The secret's key that contains the WeChat API key.
The secret needs to be in the same namespace as the AlertmanagerConfig
fallback to global alertmanager setting if empty |
-| api_url#
_string_ | _(Optional)_
The WeChat API URL.
fallback to global alertmanager setting if empty |
-| corp_id#
_string_ | _(Optional)_
The corp id for authentication.
fallback to global alertmanager setting if empty |
-| http_config#
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
HTTP client configuration. |
+| agent_id _(or agentId)_ #
_string_ | _(Optional)_
|
+| api_secret _(or apiSecret)_ #
_[SecretKeySelector (v1)](#v1-secretkeyselector)_ | _(Optional)_
The secret's key that contains the WeChat API key.
The secret needs to be in the same namespace as the AlertmanagerConfig
fallback to global alertmanager setting if empty |
+| api_url _(or apiUrl)_ #
_string_ | _(Optional)_
The WeChat API URL.
fallback to global alertmanager setting if empty |
+| corp_id _(or corpId)_ #
_string_ | _(Optional)_
The corp id for authentication.
fallback to global alertmanager setting if empty |
+| http_config _(or httpConfig)_ #
_[HTTPConfig (v1beta1)](#v1beta1-httpconfig)_ | _(Optional)_
HTTP client configuration. |
| message#
_string_ | _(Required)_
API request data as defined by the WeChat API. |
-| message_type#
_string_ | _(Optional)_
|
-| send_resolved#
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
-| to_party#
_string_ | _(Optional)_
|
-| to_tag#
_string_ | _(Optional)_
|
-| to_user#
_string_ | _(Optional)_
|
+| message_type _(or messageType)_ #
_string_ | _(Optional)_
|
+| send_resolved _(or sendResolved)_ #
_boolean_ | _(Optional)_
SendResolved controls notify about resolved alerts. |
+| to_party _(or toParty)_ #
_string_ | _(Optional)_
|
+| to_tag _(or toTag)_ #
_string_ | _(Optional)_
|
+| to_user _(or toUser)_ #
_string_ | _(Optional)_
|
#### YandexCloudSDConfig {#v1beta1-yandexcloudsdconfig}
diff --git a/docs/config.yaml b/docs/config.yaml
index e2ebde8f03..3f8f5b638f 100644
--- a/docs/config.yaml
+++ b/docs/config.yaml
@@ -12,6 +12,9 @@ render:
link: https://pkg.go.dev/net/url#Values
processor:
+ caseIgnoreAliases:
+ - snake_case
+ - camelCase
ignoreTypes:
- ".*List$"
- ".*Status$"
diff --git a/docs/templates/api/type.tpl b/docs/templates/api/type.tpl
index 257002e78d..fb91052455 100644
--- a/docs/templates/api/type.tpl
+++ b/docs/templates/api/type.tpl
@@ -109,7 +109,7 @@ Appears in: {{ range $i, $ref := $type.SortedReferences }}{{ if $i }}, {{ end }}
{{- $member := index $members . }}
{{- $id := lower (printf "%s-%s-%s" $version $type.Name $member.Name) }}
{{- $oldId := lower (printf "%s-%s" $type.Name $member.Name) }}
-| {{ $member.Name }}#{{- if $isAliasOwner }}{{- end }}
_{{ template "memberType" $member.Type }}_ | {{ if $member.Markers.optional }}_(Optional)_
{{else}}_(Required)_
{{ end }}{{ template "type_members" $member }}{{ template "notes" (dict "member" $member "type" $type.Name) }} |
+| {{ $member.Name }}{{ if $member.Aliases }} _(or {{ range $i, $a := $member.Aliases }}{{ if $i }}, {{ end }}{{ $a }}{{ end }})_ {{ end }}#{{- if $isAliasOwner }}{{- end }}
_{{ template "memberType" $member.Type }}_ | {{ if $member.Markers.optional }}_(Optional)_
{{else}}_(Required)_
{{ end }}{{ template "type_members" $member }}{{ template "notes" (dict "member" $member "type" $type.Name) }} |
{{- end }}
{{- end }}
{{- end }}
diff --git a/internal/controller/operator/factory/build/podtemplate_test.go b/internal/controller/operator/factory/build/podtemplate_test.go
index b27d227dcb..16f709f749 100644
--- a/internal/controller/operator/factory/build/podtemplate_test.go
+++ b/internal/controller/operator/factory/build/podtemplate_test.go
@@ -58,11 +58,25 @@ func TestPodTemplateParams(t *testing.T) {
},
)
- // HostAliasesUnderScore takes precedence over HostAliases
+ // HostAliasesUnderScore (host_aliases) alone is used when hostAliases is unset
+ f(
+ &vmv1beta1.CommonAppsParams{
+ HostAliasesUnderScore: []corev1.HostAlias{
+ {IP: "5.6.7.8", Hostnames: []string{"new.host"}},
+ },
+ },
+ corev1.PodSpec{
+ HostAliases: []corev1.HostAlias{
+ {IP: "5.6.7.8", Hostnames: []string{"new.host"}},
+ },
+ },
+ )
+
+ // HostAliasesUnderScore (host_aliases) takes priority over hostAliases when both are set
f(
&vmv1beta1.CommonAppsParams{
HostAliases: []corev1.HostAlias{
- {IP: "1.2.3.4", Hostnames: []string{"old.host"}},
+ {IP: "1.1.1.1", Hostnames: []string{"old.host"}},
},
HostAliasesUnderScore: []corev1.HostAlias{
{IP: "5.6.7.8", Hostnames: []string{"new.host"}},
diff --git a/internal/controller/operator/factory/build/vmscrape.go b/internal/controller/operator/factory/build/vmscrape.go
index 39d83db92c..829fc8068f 100644
--- a/internal/controller/operator/factory/build/vmscrape.go
+++ b/internal/controller/operator/factory/build/vmscrape.go
@@ -235,7 +235,7 @@ func VMPodScrape(b podScrapeBuilder, portName string, additionalPortNames ...str
func addVictoriaMetricsAppRelabelConfig(relabelings *vmv1beta1.EndpointRelabelings) {
for _, rc := range relabelings.RelabelConfigs {
- if rc != nil && (rc.TargetLabel == "victoriametrics_app" || rc.UnderScoreTargetLabel == "victoriametrics_app") {
+ if rc != nil && rc.TargetLabel == "victoriametrics_app" {
return
}
}
diff --git a/internal/controller/operator/factory/vmagent/scrapes_test.go b/internal/controller/operator/factory/vmagent/scrapes_test.go
index a29ead4764..047d36717c 100644
--- a/internal/controller/operator/factory/vmagent/scrapes_test.go
+++ b/internal/controller/operator/factory/vmagent/scrapes_test.go
@@ -862,12 +862,12 @@ scrape_configs:
},
GlobalScrapeRelabelConfigs: []*vmv1beta1.RelabelConfig{
{
- UnderScoreSourceLabels: []string{"test2"},
+ SourceLabels: []string{"test2"},
},
},
GlobalScrapeMetricRelabelConfigs: []*vmv1beta1.RelabelConfig{
{
- UnderScoreSourceLabels: []string{"test1"},
+ SourceLabels: []string{"test1"},
},
},
},
diff --git a/internal/controller/operator/factory/vmagent/vmagent_test.go b/internal/controller/operator/factory/vmagent/vmagent_test.go
index 022c72dfed..3569e1593d 100644
--- a/internal/controller/operator/factory/vmagent/vmagent_test.go
+++ b/internal/controller/operator/factory/vmagent/vmagent_test.go
@@ -2372,7 +2372,10 @@ func TestCreateOrUpdateStreamAggrConfig(t *testing.T) {
without:
- pod
output_relabel_configs:
- - regex: (.+):.+
+ - source_labels:
+ - __name__
+ target_label: metric
+ regex: (.+):.+
`
assert.Equal(t, wantRemote, remoteData)
},
@@ -2427,7 +2430,10 @@ func TestCreateOrUpdateStreamAggrConfig(t *testing.T) {
- pod
ignore_first_sample_interval: 20m
output_relabel_configs:
- - regex:
+ - source_labels:
+ - __name__
+ target_label: metric
+ regex:
- vmagent
- vmalert
- vmauth
diff --git a/internal/controller/operator/factory/vmscrapes/vmscrapes_test.go b/internal/controller/operator/factory/vmscrapes/vmscrapes_test.go
index e46f1a78e9..e36afb1b1d 100644
--- a/internal/controller/operator/factory/vmscrapes/vmscrapes_test.go
+++ b/internal/controller/operator/factory/vmscrapes/vmscrapes_test.go
@@ -38,12 +38,10 @@ target_label: address
action: replace
`)
- // ok base with underscore
- f(&vmv1beta1.RelabelConfig{
- UnderScoreTargetLabel: "address",
- UnderScoreSourceLabels: []string{"__address__"},
- Action: "replace",
- }, `source_labels:
+ // ok base with snake_case JSON keys (source_labels / target_label accepted via case:ignore)
+ var rcSnake vmv1beta1.RelabelConfig
+ assert.NoError(t, json.Unmarshal([]byte(`{"source_labels":["__address__"],"target_label":"address","action":"replace"}`), &rcSnake))
+ f(&rcSnake, `source_labels:
- __address__
target_label: address
action: replace
@@ -51,11 +49,11 @@ action: replace
// ok base with graphite match labels
f(&vmv1beta1.RelabelConfig{
- UnderScoreTargetLabel: "address",
- UnderScoreSourceLabels: []string{"__address__"},
- Action: "graphite",
- Labels: map[string]string{"job": "$1", "instance": "${2}:8080"},
- Match: `foo.*.*.bar`,
+ TargetLabel: "address",
+ SourceLabels: []string{"__address__"},
+ Action: "graphite",
+ Labels: map[string]string{"job": "$1", "instance": "${2}:8080"},
+ Match: `foo.*.*.bar`,
}, `source_labels:
- __address__
target_label: address
@@ -68,13 +66,13 @@ labels:
// with empty replacement and separator
f(&vmv1beta1.RelabelConfig{
- UnderScoreTargetLabel: "address",
- UnderScoreSourceLabels: []string{"__address__"},
- Action: "graphite",
- Labels: map[string]string{"job": "$1", "instance": "${2}:8080"},
- Match: `foo.*.*.bar`,
- Separator: ptr.To(""),
- Replacement: ptr.To(""),
+ TargetLabel: "address",
+ SourceLabels: []string{"__address__"},
+ Action: "graphite",
+ Labels: map[string]string{"job": "$1", "instance": "${2}:8080"},
+ Match: `foo.*.*.bar`,
+ Separator: ptr.To(""),
+ Replacement: ptr.To(""),
}, `source_labels:
- __address__
separator: ""
diff --git a/internal/controller/operator/factory/vmsingle/scrapes_test.go b/internal/controller/operator/factory/vmsingle/scrapes_test.go
index e9733c0931..57ecc1e848 100644
--- a/internal/controller/operator/factory/vmsingle/scrapes_test.go
+++ b/internal/controller/operator/factory/vmsingle/scrapes_test.go
@@ -866,12 +866,12 @@ scrape_configs:
},
GlobalScrapeRelabelConfigs: []*vmv1beta1.RelabelConfig{
{
- UnderScoreSourceLabels: []string{"test2"},
+ SourceLabels: []string{"test2"},
},
},
GlobalScrapeMetricRelabelConfigs: []*vmv1beta1.RelabelConfig{
{
- UnderScoreSourceLabels: []string{"test1"},
+ SourceLabels: []string{"test1"},
},
},
},