From 7abca42ad50dafc87430481ad5247d6e095e0325 Mon Sep 17 00:00:00 2001 From: f41gh7 Date: Fri, 8 Nov 2024 20:06:44 +0100 Subject: [PATCH] wip: unify tag case for scrape CRDs Scrape CRD config must allign with VictoriaMetrics configuration files. It simplifies migration and adaption for users. Signed-off-by: f41gh7 --- api/operator/v1beta1/common_scrapeparams.go | 240 +- api/operator/v1beta1/vmagent_types.go | 6 + .../v1beta1/vmalertmanagerconfig_types.go | 6 + api/operator/v1beta1/vmauth_types.go | 2 + api/operator/v1beta1/vmextra_types.go | 72 +- api/operator/v1beta1/vmnodescrape_types.go | 12 + api/operator/v1beta1/vmpodscrape_types.go | 12 + api/operator/v1beta1/vmprobe_types.go | 36 +- api/operator/v1beta1/vmscrapeconfig_types.go | 12 + api/operator/v1beta1/vmservicescrape_types.go | 12 + api/operator/v1beta1/zz_generated.deepcopy.go | 100 + config/crd/overlay/crd.yaml | 10065 ++++++---------- ...operator.victoriametrics.com_vmalerts.yaml | 47 - docs/CHANGELOG.md | 1 + docs/api.md | 247 +- .../controller/operator/converter/apis.go | 4 +- .../operator/converter/v1alpha1/apis.go | 1 - .../operator/converter/v1alpha1/apis_test.go | 169 + .../factory/vmagent/nodescrape_test.go | 2 +- .../operator/factory/vmagent/scrapeconfig.go | 9 + .../factory/vmagent/servicescrape_test.go | 2 +- .../factory/vmagent/staticscrape_test.go | 2 +- .../factory/vmagent/vmagent_scrapeconfig.go | 13 +- 23 files changed, 4767 insertions(+), 6305 deletions(-) diff --git a/api/operator/v1beta1/common_scrapeparams.go b/api/operator/v1beta1/common_scrapeparams.go index c2df7b7a..f0cbd54d 100644 --- a/api/operator/v1beta1/common_scrapeparams.go +++ b/api/operator/v1beta1/common_scrapeparams.go @@ -57,30 +57,67 @@ type ProxyAuth struct { BasicAuth *BasicAuth `json:"basic_auth,omitempty"` BearerToken *v1.SecretKeySelector `json:"bearer_token,omitempty"` BearerTokenFile string `json:"bearer_token_file,omitempty"` - TLSConfig *TLSConfig `json:"tls_config,omitempty"` + // +kubebuilder:validation:Schemaless + // +kubebuilder:pruning:PreserveUnknownFields + TLSConfig *TLSConfig `json:"tls_config,omitempty"` } // OAuth2 defines OAuth2 configuration 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,omitempty"` + // The secret or configmap containing the OAuth2 client id + // +required + ClientIDS *SecretOrConfigMap `json:"clientId,omitempty"` + // The secret containing the OAuth2 client secret + // +optional + ClientSecret *v1.SecretKeySelector `json:"client_secret,omitempty"` // The secret containing the OAuth2 client secret // +optional - ClientSecret *v1.SecretKeySelector `json:"client_secret,omitempty" yaml:"client_secret,omitempty"` + ClientSecretS *v1.SecretKeySelector `json:"clientSecret,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"` // 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,omitempty"` + // The URL to fetch the token from + TokenURLS string `json:"tokenUrl,omitempty"` + // 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"` + // Parameters to append to the token URL + // +optional + EndpointParamsS map[string]string `json:"endpointParams,omitempty"` +} + +// UnmarshalJSON implements json.Unmarshaller interface +func (o *OAuth2) UnmarshalJSON(src []byte) error { + type tmp OAuth2 + if err := json.Unmarshal(src, (*tmp)(o)); err != nil { + return fmt.Errorf("cannot parse OAuth2: %w", err) + } + if o.ClientIDS != nil { + o.ClientID = *o.ClientIDS + o.ClientIDS = nil + } + if o.ClientSecret == nil && o.ClientSecretS != nil { + o.ClientSecret = o.ClientSecretS + o.ClientSecretS = nil + } + if len(o.TokenURL) == 0 && len(o.TokenURLS) > 0 { + o.TokenURL = o.TokenURLS + o.TokenURLS = "" + } + if o.EndpointParams == nil && o.EndpointParamsS != nil { + o.EndpointParams = o.EndpointParamsS + o.EndpointParamsS = nil + } + return nil } func (o *OAuth2) validate() error { @@ -110,7 +147,7 @@ type Authorization struct { Credentials *v1.SecretKeySelector `json:"credentials,omitempty"` // File with value for authorization // +optional - CredentialsFile string `json:"credentialsFile,omitempty" yaml:"credentials_file,omitempty"` + CredentialsFile string `json:"credentials_file,omitempty"` } func (ac *Authorization) validate() error { @@ -197,16 +234,14 @@ func (rc *RelabelConfig) UnmarshalJSON(src []byte) error { if len(rc.SourceLabels) == 0 && len(rc.UnderScoreSourceLabels) > 0 { rc.SourceLabels = append(rc.SourceLabels, rc.UnderScoreSourceLabels...) + rc.UnderScoreSourceLabels = nil } - 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 + rc.UnderScoreTargetLabel = "" } - if rc.UnderScoreTargetLabel == "" && rc.TargetLabel != "" { - rc.UnderScoreTargetLabel = rc.TargetLabel - } + return nil } @@ -223,6 +258,14 @@ type EndpointScrapeParams struct { // HTTP path to scrape for metrics. // +optional Path string `json:"path,omitempty"` + // HTTP path to scrape for metrics. + // alias for Path + // +optional + MetricsPath string `json:"metrics_path,omitempty"` + // MetricsPathS alias for Path + // +optional + MetricsPathS string `json:"metricsPath,omitempty"` + // HTTP scheme to use for scraping. // +optional // +kubebuilder:validation:Enum=http;https;HTTPS;HTTP @@ -233,13 +276,26 @@ type EndpointScrapeParams struct { // FollowRedirects controls redirects for scraping. // +optional FollowRedirects *bool `json:"follow_redirects,omitempty"` + // FollowRedirects controls redirects for scraping. + // +optional + ScoreFollowRedirectsS *bool `json:"followRedirects,omitempty"` + // SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. // +optional - SampleLimit uint64 `json:"sampleLimit,omitempty"` + SampleLimit uint64 `json:"sample_limit,omitempty"` + // SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. + // +optional + SampleLimitS uint64 `json:"sampleLimit,omitempty"` + + // 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 uint64 `json:"series_limit,omitempty"` // 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 uint64 `json:"seriesLimit,omitempty"` + SeriesLimitS uint64 `json:"seriesLimit,omitempty"` + // Interval at which metrics should be scraped // +optional Interval string `json:"interval,omitempty"` @@ -247,18 +303,38 @@ type EndpointScrapeParams struct { // one of scrape_interval or interval can be used // +optional ScrapeInterval string `json:"scrape_interval,omitempty"` + + // ScrapeIntervalS is the same as ScrapeInterval and has priority over it. + // +optional + ScrapeIntervalS string `json:"scrapeInterval,omitempty"` // Timeout after which the scrape is ended // +optional - ScrapeTimeout string `json:"scrapeTimeout,omitempty"` + ScrapeTimeout string `json:"scrape_timeout,omitempty"` + // ScrapeTimeoutS after which the scrape is ended + // +optional + ScrapeTimeoutS string `json:"scrapeTimeout,omitempty"` + // ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. // +optional - ProxyURL *string `json:"proxyURL,omitempty"` + ProxyURL *string `json:"proxy_url,omitempty"` + // ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. + // +optional + ScoreProxyURLS *string `json:"proxyUrl,omitempty"` + // HonorLabels chooses the metric's labels on collisions with target labels. // +optional - HonorLabels bool `json:"honorLabels,omitempty"` + HonorLabels *bool `json:"honor_labels,omitempty"` + // HonorLabelsS chooses the metric's labels on collisions with target labels. + // +optional + HonorLabelsS *bool `json:"honorLabels,omitempty"` + + // HonorTimestamps controls whether vmagent respects the timestamps present in scraped data. + // +optional + HonorTimestamps *bool `json:"honor_timestamps,omitempty"` // HonorTimestamps controls whether vmagent respects the timestamps present in scraped data. // +optional - HonorTimestamps *bool `json:"honorTimestamps,omitempty"` + HonorTimestampsS *bool `json:"honorTimestamps,omitempty"` + // MaxScrapeSize defines a maximum size of scraped data for a job // +optional MaxScrapeSize string `json:"max_scrape_size,omitempty"` @@ -267,37 +343,145 @@ type EndpointScrapeParams struct { VMScrapeParams *VMScrapeParams `json:"vm_scrape_params,omitempty"` } +// handles cases for snakeCase and camel_case of json tags +// on conflict snakeCase alwasys wins, camel_case erased to empty value +func (esp *EndpointScrapeParams) applyTagsCase() error { + + if len(esp.Path) == 0 && len(esp.MetricsPath) > 0 { + esp.Path = esp.MetricsPath + esp.MetricsPath = "" + } + if len(esp.Path) == 0 && len(esp.MetricsPathS) > 0 { + esp.Path = esp.MetricsPathS + esp.MetricsPathS = "" + } + if esp.SampleLimit == 0 && esp.SampleLimitS > 0 { + esp.SampleLimit = esp.SampleLimitS + esp.SampleLimitS = 0 + } + if esp.FollowRedirects == nil && esp.ScoreFollowRedirectsS != nil { + esp.FollowRedirects = esp.ScoreFollowRedirectsS + esp.ScoreFollowRedirectsS = nil + } + + if esp.HonorLabels == nil && esp.HonorLabelsS != nil { + esp.HonorLabels = esp.HonorLabelsS + esp.HonorLabelsS = nil + } + if esp.HonorTimestamps == nil && esp.HonorTimestampsS != nil { + esp.HonorTimestamps = esp.HonorTimestampsS + esp.HonorTimestampsS = nil + } + if len(esp.ScrapeTimeout) == 0 && len(esp.ScrapeTimeoutS) > 0 { + esp.ScrapeTimeout = esp.ScrapeTimeoutS + esp.ScrapeTimeoutS = "" + } + if len(esp.ScrapeInterval) == 0 && len(esp.ScrapeIntervalS) > 0 { + esp.ScrapeInterval = esp.ScrapeIntervalS + esp.ScrapeIntervalS = "" + } + if esp.SampleLimit == 0 && esp.SampleLimitS > 0 { + esp.SampleLimit = esp.SampleLimitS + esp.SampleLimitS = 0 + } + if esp.SeriesLimit == 0 && esp.SeriesLimitS > 0 { + esp.SeriesLimit = esp.SeriesLimitS + esp.SeriesLimitS = 0 + } + if esp.ProxyURL == nil && esp.ScoreProxyURLS != nil { + esp.ProxyURL = esp.ScoreProxyURLS + esp.ScoreProxyURLS = nil + } + + return nil +} + // EndpointAuth defines target endpoint authorization options for scrapping type EndpointAuth struct { // OAuth2 defines auth configuration // +optional + // +kubebuilder:validation:Schemaless + // +kubebuilder:pruning:PreserveUnknownFields OAuth2 *OAuth2 `json:"oauth2,omitempty"` // TLSConfig configuration to use when scraping the endpoint // +optional - TLSConfig *TLSConfig `json:"tlsConfig,omitempty"` + // +kubebuilder:validation:Schemaless + // +kubebuilder:pruning:PreserveUnknownFields + TLSConfig *TLSConfig `json:"tls_config,omitempty"` + // TLSConfigS alias for TLSConfig + // +optional + // +kubebuilder:validation:Schemaless + // +kubebuilder:pruning:PreserveUnknownFields + TLSConfigS *TLSConfig `json:"tlsConfig,omitempty"` // File to read bearer token for scraping targets. // +optional - BearerTokenFile string `json:"bearerTokenFile,omitempty"` + BearerTokenFile string `json:"bearer_token_file,omitempty"` + // BearerTokenFileS alias for BearerTokenFile + // +optional + BearerTokenFileS string `json:"bearerTokenFile,omitempty"` // 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 *v1.SecretKeySelector `json:"bearerTokenSecret,omitempty"` + BearerTokenSecret *v1.SecretKeySelector `json:"bearer_token_secret,omitempty"` + // BearerTokenSecretS alias for BearerTokenSecret + // +optional + BearerTokenSecretS *v1.SecretKeySelector `json:"bearerTokenSecret,omitempty"` // BasicAuth allow an endpoint to authenticate over basic authentication // +optional - BasicAuth *BasicAuth `json:"basicAuth,omitempty"` + BasicAuth *BasicAuth `json:"basic_auth,omitempty"` + // BasicAuthS alias for BasicAuth + // +optional + BasicAuthS *BasicAuth `json:"basicAuth,omitempty"` // Authorization with http header Authorization // +optional Authorization *Authorization `json:"authorization,omitempty"` } +func (ea *EndpointAuth) applyTagsCase() { + if ea.TLSConfig == nil && ea.TLSConfigS != nil { + ea.TLSConfig = ea.TLSConfigS + ea.TLSConfigS = nil + } + if ea.BasicAuth == nil && ea.BasicAuthS != nil { + ea.BasicAuth = ea.BasicAuthS + ea.BasicAuthS = nil + } + if len(ea.BearerTokenFile) == 0 && len(ea.BearerTokenFileS) > 0 { + ea.BearerTokenFile = ea.BearerTokenFileS + ea.BearerTokenFileS = "" + } + if ea.BearerTokenSecret == nil && ea.BearerTokenSecretS != nil { + ea.BearerTokenSecret = ea.BearerTokenSecretS + ea.BearerTokenSecretS = nil + } +} + // EndpointRelabelings defines service discovery and metrics relabeling configuration for endpoints type EndpointRelabelings struct { // MetricRelabelConfigs to apply to samples after scrapping. // +optional - MetricRelabelConfigs []*RelabelConfig `json:"metricRelabelConfigs,omitempty"` + MetricRelabelConfigs []*RelabelConfig `json:"metric_relabel_configs,omitempty"` + // MetricRelabelConfigsS alias for MetricRelabelConfigs + // +optional + MetricRelabelConfigsS []*RelabelConfig `json:"metricRelabelConfigs,omitempty"` // RelabelConfigs to apply to samples during service discovery. // +optional - RelabelConfigs []*RelabelConfig `json:"relabelConfigs,omitempty"` + RelabelConfigs []*RelabelConfig `json:"relabel_configs,omitempty"` + // RelabelConfigsS alias ofr RelabelConfigs + // +optional + RelabelConfigsS []*RelabelConfig `json:"relabelConfigs,omitempty"` +} + +// handles cases for snakeCase and camel_case of json tags +// on conflict snakeCase alwasys wins, camel_case erased to empty value +func (ers *EndpointRelabelings) applyTagsCase() { + if len(ers.MetricRelabelConfigs) == 0 && len(ers.MetricRelabelConfigsS) > 0 { + ers.MetricRelabelConfigs = ers.MetricRelabelConfigsS + ers.MetricRelabelConfigsS = nil + } + if len(ers.RelabelConfigs) == 0 && len(ers.RelabelConfigsS) > 0 { + ers.RelabelConfigs = ers.RelabelConfigsS + ers.RelabelConfigsS = nil + } } diff --git a/api/operator/v1beta1/vmagent_types.go b/api/operator/v1beta1/vmagent_types.go index f61c5ef7..5924e21b 100644 --- a/api/operator/v1beta1/vmagent_types.go +++ b/api/operator/v1beta1/vmagent_types.go @@ -386,9 +386,13 @@ type VMAgentRemoteWriteSpec struct { InlineUrlRelabelConfig []RelabelConfig `json:"inlineUrlRelabelConfig,omitempty"` // OAuth2 defines auth configuration // +optional + // +kubebuilder:validation:Schemaless + // +kubebuilder:pruning:PreserveUnknownFields OAuth2 *OAuth2 `json:"oauth2,omitempty"` // TLSConfig describes tls configuration for remote write target // +optional + // +kubebuilder:validation:Schemaless + // +kubebuilder:pruning:PreserveUnknownFields TLSConfig *TLSConfig `json:"tlsConfig,omitempty"` // Timeout for sending a single block of data to -remoteWrite.url (default 1m0s) // +optional @@ -770,6 +774,8 @@ type APIServerConfig struct { BearerTokenFile string `json:"bearerTokenFile,omitempty"` // TLSConfig Config to use for accessing apiserver. // +optional + // +kubebuilder:validation:Schemaless + // +kubebuilder:pruning:PreserveUnknownFields TLSConfig *TLSConfig `json:"tlsConfig,omitempty"` // +optional Authorization *Authorization `json:"authorization,omitempty"` diff --git a/api/operator/v1beta1/vmalertmanagerconfig_types.go b/api/operator/v1beta1/vmalertmanagerconfig_types.go index fd5e9aff..e932f28e 100644 --- a/api/operator/v1beta1/vmalertmanagerconfig_types.go +++ b/api/operator/v1beta1/vmalertmanagerconfig_types.go @@ -418,6 +418,8 @@ type EmailConfig struct { RequireTLS *bool `json:"require_tls,omitempty" yaml:"require_tls,omitempty"` // TLS configuration // +optional + // +kubebuilder:validation:Schemaless + // +kubebuilder:pruning:PreserveUnknownFields TLSConfig *TLSConfig `json:"tls_config,omitempty" yaml:"tls_config,omitempty"` } @@ -892,6 +894,8 @@ type HTTPConfig struct { BearerTokenFile string `json:"bearer_token_file,omitempty" yaml:"bearer_token_file,omitempty"` // TLS configuration for the client. // +optional + // +kubebuilder:validation:Schemaless + // +kubebuilder:pruning:PreserveUnknownFields TLSConfig *TLSConfig `json:"tls_config,omitempty" yaml:"tls_config,omitempty"` // Optional proxy URL. // +optional @@ -902,6 +906,8 @@ type HTTPConfig struct { Authorization *Authorization `json:"authorization,omitempty"` // OAuth2 client credentials used to fetch a token for the targets. // +optional + // +kubebuilder:validation:Schemaless + // +kubebuilder:pruning:PreserveUnknownFields OAuth2 *OAuth2 `json:"oauth2,omitempty"` } diff --git a/api/operator/v1beta1/vmauth_types.go b/api/operator/v1beta1/vmauth_types.go index 4b117403..e45dba7a 100644 --- a/api/operator/v1beta1/vmauth_types.go +++ b/api/operator/v1beta1/vmauth_types.go @@ -157,6 +157,8 @@ type UserConfigOption struct { DefaultURLs []string `json:"default_url,omitempty"` // +optional + // +kubebuilder:validation:Schemaless + // +kubebuilder:pruning:PreserveUnknownFields TLSConfig *TLSConfig `json:"tlsConfig,omitempty"` // IPFilters defines per target src ip filters diff --git a/api/operator/v1beta1/vmextra_types.go b/api/operator/v1beta1/vmextra_types.go index c83d282b..ee9bc64f 100644 --- a/api/operator/v1beta1/vmextra_types.go +++ b/api/operator/v1beta1/vmextra_types.go @@ -280,12 +280,15 @@ type EmbeddedPersistentVolumeClaim struct { } // HTTPAuth generic auth used with http protocols +// TODO: use EndpointAuth instead type HTTPAuth struct { // +optional BasicAuth *BasicAuth `json:"basicAuth,omitempty"` // +optional OAuth2 *OAuth2 `json:"oauth2,omitempty"` // +optional + // +kubebuilder:validation:Schemaless + // +kubebuilder:pruning:PreserveUnknownFields TLSConfig *TLSConfig `json:"tlsConfig,omitempty"` // +optional *BearerAuth `json:",inline,omitempty"` @@ -299,6 +302,7 @@ type HTTPAuth struct { } // BearerAuth defines auth with bearer token +// TODO: use EndpointAuth instead type BearerAuth struct { // Path to bearer token file // +optional @@ -315,6 +319,9 @@ type BasicAuth struct { // The secret needs to be in the same namespace as scrape object // +optional Username v1.SecretKeySelector `json:"username,omitempty"` + // UsernameFile defines path to username file at disk + // must be pre-mounted + UsernameFile string `json:"username_file,omitempty"` // Password defines reference for secret with password value // The secret needs to be in the same namespace as scrape object // +optional @@ -793,31 +800,84 @@ type SecretOrConfigMap struct { type TLSConfig struct { // Path to the CA cert in the container to use for the targets. // +optional - CAFile string `json:"caFile,omitempty" yaml:"ca_file,omitempty"` + CAFile string `json:"ca_file,omitempty"` + // Path to the CA cert in the container to use for the targets. + // +optional + CAFileS string `json:"caFile,omitempty"` + // Stuct containing the CA cert to use for the targets. // +optional CA SecretOrConfigMap `json:"ca,omitempty"` // Path to the client cert file in the container for the targets. // +optional - CertFile string `json:"certFile,omitempty" yaml:"cert_file,omitempty"` + CertFile string `json:"cert_file,omitempty" ` + // Path to the client cert file in the container for the targets. + // +optional + CertFileS string `json:"certFile,omitempty" ` // Struct containing the client cert file for the targets. // +optional Cert SecretOrConfigMap `json:"cert,omitempty"` // Path to the client key file in the container for the targets. // +optional - KeyFile string `json:"keyFile,omitempty" yaml:"key_file,omitempty"` + KeyFile string `json:"key_file,omitempty" ` + // Path to the client key file in the container for the targets. + // +optional + KeyFileS string `json:"keyFile,omitempty" ` // Secret containing the client key file for the targets. // +optional - KeySecret *v1.SecretKeySelector `json:"keySecret,omitempty" yaml:"key_secret,omitempty"` + KeySecret *v1.SecretKeySelector `json:"key_secret,omitempty" ` + // Secret containing the client key file for the targets. + // +optional + KeySecretS *v1.SecretKeySelector `json:"keySecret,omitempty" ` // Used to verify the hostname for the targets. // +optional - ServerName string `json:"serverName,omitempty" yaml:"server_name,omitempty"` + ServerName string `json:"server_name,omitempty"` + // Used to verify the hostname for the targets. + // +optional + ServerNameS string `json:"serverName,omitempty"` + + // Disable target certificate validation. + // +optional + InsecureSkipVerify bool `json:"insecure_skip_verify,omitempty"` // Disable target certificate validation. // +optional - InsecureSkipVerify bool `json:"insecureSkipVerify,omitempty" yaml:"insecure_skip_verify,omitempty"` + InsecureSkipVerifyS *bool `json:"insecureSkipVerify,omitempty"` +} + +// UnmarshalJSON implements json.Unmarshaller interface +func (c *TLSConfig) UnmarshalJSON(src []byte) error { + type tmp TLSConfig + if err := json.Unmarshal(src, (*tmp)(c)); err != nil { + return fmt.Errorf("cannot parse TLSConfig: %w", err) + } + if len(c.CAFile) == 0 && len(c.CAFileS) > 0 { + c.CAFile = c.CAFileS + c.CAFileS = "" + } + if len(c.CertFile) == 0 && len(c.CertFileS) > 0 { + c.CertFile = c.CertFileS + c.CertFileS = "" + } + if len(c.KeyFile) == 0 && len(c.KeyFileS) > 0 { + c.KeyFile = c.KeyFileS + c.KeyFileS = "" + } + if c.KeySecret == nil && c.KeySecretS != nil { + c.KeySecret = c.KeySecretS + c.KeySecretS = nil + } + if len(c.ServerName) == 0 && len(c.ServerNameS) > 0 { + c.ServerName = c.ServerNameS + c.ServerNameS = "" + } + if !c.InsecureSkipVerify && c.InsecureSkipVerifyS != nil { + c.InsecureSkipVerify = *c.InsecureSkipVerifyS + c.InsecureSkipVerifyS = nil + } + return nil } func (c *TLSConfig) AsArgs(args []string, prefix, pathPrefix string) []string { diff --git a/api/operator/v1beta1/vmnodescrape_types.go b/api/operator/v1beta1/vmnodescrape_types.go index 2b245871..49ba372f 100644 --- a/api/operator/v1beta1/vmnodescrape_types.go +++ b/api/operator/v1beta1/vmnodescrape_types.go @@ -1,6 +1,7 @@ package v1beta1 import ( + "encoding/json" "fmt" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -29,6 +30,17 @@ type VMNodeScrapeSpec struct { Selector metav1.LabelSelector `json:"selector,omitempty"` } +func (c *VMNodeScrapeSpec) UnmarshalJSON(src []byte) error { + type tmp VMNodeScrapeSpec + if err := json.Unmarshal(src, (*tmp)(c)); err != nil { + return err + } + c.EndpointAuth.applyTagsCase() + c.EndpointRelabelings.applyTagsCase() + c.EndpointScrapeParams.applyTagsCase() + return nil +} + // VMNodeScrape defines discovery for targets placed on kubernetes nodes, // usually its node-exporters and other host services. // InternalIP is used as __address__ for scraping. diff --git a/api/operator/v1beta1/vmpodscrape_types.go b/api/operator/v1beta1/vmpodscrape_types.go index c75c3e76..b935812a 100644 --- a/api/operator/v1beta1/vmpodscrape_types.go +++ b/api/operator/v1beta1/vmpodscrape_types.go @@ -1,6 +1,7 @@ package v1beta1 import ( + "encoding/json" "fmt" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -91,6 +92,17 @@ type PodMetricsEndpoint struct { FilterRunning *bool `json:"filterRunning,omitempty"` } +func (c *PodMetricsEndpoint) UnmarshalJSON(src []byte) error { + type tmp PodMetricsEndpoint + if err := json.Unmarshal(src, (*tmp)(c)); err != nil { + return err + } + c.EndpointAuth.applyTagsCase() + c.EndpointRelabelings.applyTagsCase() + c.EndpointScrapeParams.applyTagsCase() + return nil +} + // ArbitraryFSAccessThroughSMsConfig enables users to configure, whether // a service scrape selected by the vmagent instance is allowed to use // arbitrary files on the file system of the vmagent container. This is the case diff --git a/api/operator/v1beta1/vmprobe_types.go b/api/operator/v1beta1/vmprobe_types.go index c79384af..c173f654 100644 --- a/api/operator/v1beta1/vmprobe_types.go +++ b/api/operator/v1beta1/vmprobe_types.go @@ -17,6 +17,7 @@ limitations under the License. package v1beta1 import ( + "encoding/json" "fmt" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -38,12 +39,29 @@ type VMProbeSpec struct { Targets VMProbeTargets `json:"targets,omitempty"` // MetricRelabelConfigs to apply to samples after scrapping. // +optional - MetricRelabelConfigs []*RelabelConfig `json:"metricRelabelConfigs,omitempty"` + MetricRelabelConfigs []*RelabelConfig `json:"metric_relabel_configs,omitempty"` + // MetricRelabelConfigs to apply to samples after scrapping. + // +optional + MetricRelabelConfigsS []*RelabelConfig `json:"metricRelabelConfigs,omitempty"` EndpointAuth `json:",inline"` EndpointScrapeParams `json:",inline"` } +func (c *VMProbeSpec) UnmarshalJSON(src []byte) error { + type tmp VMProbeSpec + if err := json.Unmarshal(src, (*tmp)(c)); err != nil { + return err + } + c.EndpointAuth.applyTagsCase() + c.EndpointScrapeParams.applyTagsCase() + if len(c.MetricRelabelConfigs) == 0 && len(c.MetricRelabelConfigsS) > 0 { + c.MetricRelabelConfigs = c.MetricRelabelConfigsS + c.MetricRelabelConfigsS = nil + } + return nil +} + // VMProbeTargets defines a set of static and dynamically discovered targets for the prober. // +k8s:openapi-gen=true type VMProbeTargets struct { @@ -61,7 +79,21 @@ type VMProbeTargetStaticConfig struct { // Labels assigned to all metrics scraped from the targets. Labels map[string]string `json:"labels,omitempty"` // RelabelConfigs to apply to samples during service discovery. - RelabelConfigs []*RelabelConfig `json:"relabelingConfigs,omitempty"` + RelabelConfigs []*RelabelConfig `json:"relabeling_configs,omitempty"` + // alias for RelabelConfigs + RelabelConfigsS []*RelabelConfig `json:"relabelingConfigs,omitempty"` +} + +func (c *VMProbeTargetStaticConfig) UnmarshalJSON(src []byte) error { + type tmp VMProbeTargetStaticConfig + if err := json.Unmarshal(src, (*tmp)(c)); err != nil { + return err + } + if len(c.RelabelConfigs) == 0 && len(c.RelabelConfigsS) > 0 { + c.RelabelConfigs = c.RelabelConfigsS + c.RelabelConfigsS = nil + } + return nil } // ProbeTargetIngress defines the set of Ingress objects considered for probing. diff --git a/api/operator/v1beta1/vmscrapeconfig_types.go b/api/operator/v1beta1/vmscrapeconfig_types.go index 6059f4ab..d7711fa9 100644 --- a/api/operator/v1beta1/vmscrapeconfig_types.go +++ b/api/operator/v1beta1/vmscrapeconfig_types.go @@ -16,6 +16,7 @@ limitations under the License. package v1beta1 import ( + "encoding/json" "fmt" corev1 "k8s.io/api/core/v1" @@ -80,6 +81,17 @@ type VMScrapeConfigSpec struct { EndpointAuth `json:",inline"` } +func (c *VMScrapeConfigSpec) UnmarshalJSON(src []byte) error { + type tmp VMScrapeConfigSpec + if err := json.Unmarshal(src, (*tmp)(c)); err != nil { + return err + } + c.EndpointAuth.applyTagsCase() + c.EndpointRelabelings.applyTagsCase() + c.EndpointScrapeParams.applyTagsCase() + return nil +} + // StaticConfig defines a static configuration. // See [here](https://docs.victoriametrics.com/sd_configs#static_configs) type StaticConfig struct { diff --git a/api/operator/v1beta1/vmservicescrape_types.go b/api/operator/v1beta1/vmservicescrape_types.go index 4c090328..c2d32bde 100644 --- a/api/operator/v1beta1/vmservicescrape_types.go +++ b/api/operator/v1beta1/vmservicescrape_types.go @@ -1,6 +1,7 @@ package v1beta1 import ( + "encoding/json" "fmt" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -130,6 +131,17 @@ type Endpoint struct { AttachMetadata AttachMetadata `json:"attach_metadata,omitempty"` } +func (c *Endpoint) UnmarshalJSON(src []byte) error { + type tmp Endpoint + if err := json.Unmarshal(src, (*tmp)(c)); err != nil { + return err + } + c.EndpointAuth.applyTagsCase() + c.EndpointRelabelings.applyTagsCase() + c.EndpointScrapeParams.applyTagsCase() + return nil +} + // AsProxyKey builds key for proxy cache maps func (cr VMServiceScrape) AsProxyKey(i int) string { return fmt.Sprintf("serviceScrapeProxy/%s/%s/%d", cr.Namespace, cr.Name, i) diff --git a/api/operator/v1beta1/zz_generated.deepcopy.go b/api/operator/v1beta1/zz_generated.deepcopy.go index c45e8e2f..6dd35891 100644 --- a/api/operator/v1beta1/zz_generated.deepcopy.go +++ b/api/operator/v1beta1/zz_generated.deepcopy.go @@ -1182,16 +1182,31 @@ func (in *EndpointAuth) DeepCopyInto(out *EndpointAuth) { *out = new(TLSConfig) (*in).DeepCopyInto(*out) } + if in.TLSConfigS != nil { + in, out := &in.TLSConfigS, &out.TLSConfigS + *out = new(TLSConfig) + (*in).DeepCopyInto(*out) + } if in.BearerTokenSecret != nil { in, out := &in.BearerTokenSecret, &out.BearerTokenSecret *out = new(v1.SecretKeySelector) (*in).DeepCopyInto(*out) } + if in.BearerTokenSecretS != nil { + in, out := &in.BearerTokenSecretS, &out.BearerTokenSecretS + *out = new(v1.SecretKeySelector) + (*in).DeepCopyInto(*out) + } if in.BasicAuth != nil { in, out := &in.BasicAuth, &out.BasicAuth *out = new(BasicAuth) (*in).DeepCopyInto(*out) } + if in.BasicAuthS != nil { + in, out := &in.BasicAuthS, &out.BasicAuthS + *out = new(BasicAuth) + (*in).DeepCopyInto(*out) + } if in.Authorization != nil { in, out := &in.Authorization, &out.Authorization *out = new(Authorization) @@ -1223,6 +1238,17 @@ func (in *EndpointRelabelings) DeepCopyInto(out *EndpointRelabelings) { } } } + if in.MetricRelabelConfigsS != nil { + in, out := &in.MetricRelabelConfigsS, &out.MetricRelabelConfigsS + *out = make([]*RelabelConfig, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(RelabelConfig) + (*in).DeepCopyInto(*out) + } + } + } if in.RelabelConfigs != nil { in, out := &in.RelabelConfigs, &out.RelabelConfigs *out = make([]*RelabelConfig, len(*in)) @@ -1234,6 +1260,17 @@ func (in *EndpointRelabelings) DeepCopyInto(out *EndpointRelabelings) { } } } + if in.RelabelConfigsS != nil { + in, out := &in.RelabelConfigsS, &out.RelabelConfigsS + *out = make([]*RelabelConfig, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(RelabelConfig) + (*in).DeepCopyInto(*out) + } + } + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointRelabelings. @@ -1270,16 +1307,41 @@ func (in *EndpointScrapeParams) DeepCopyInto(out *EndpointScrapeParams) { *out = new(bool) **out = **in } + if in.ScoreFollowRedirectsS != nil { + in, out := &in.ScoreFollowRedirectsS, &out.ScoreFollowRedirectsS + *out = new(bool) + **out = **in + } if in.ProxyURL != nil { in, out := &in.ProxyURL, &out.ProxyURL *out = new(string) **out = **in } + if in.ScoreProxyURLS != nil { + in, out := &in.ScoreProxyURLS, &out.ScoreProxyURLS + *out = new(string) + **out = **in + } + if in.HonorLabels != nil { + in, out := &in.HonorLabels, &out.HonorLabels + *out = new(bool) + **out = **in + } + if in.HonorLabelsS != nil { + in, out := &in.HonorLabelsS, &out.HonorLabelsS + *out = new(bool) + **out = **in + } if in.HonorTimestamps != nil { in, out := &in.HonorTimestamps, &out.HonorTimestamps *out = new(bool) **out = **in } + if in.HonorTimestampsS != nil { + in, out := &in.HonorTimestampsS, &out.HonorTimestampsS + *out = new(bool) + **out = **in + } if in.VMScrapeParams != nil { in, out := &in.VMScrapeParams, &out.VMScrapeParams *out = new(VMScrapeParams) @@ -1767,11 +1829,21 @@ func (in *NamespaceSelector) DeepCopy() *NamespaceSelector { func (in *OAuth2) DeepCopyInto(out *OAuth2) { *out = *in in.ClientID.DeepCopyInto(&out.ClientID) + if in.ClientIDS != nil { + in, out := &in.ClientIDS, &out.ClientIDS + *out = new(SecretOrConfigMap) + (*in).DeepCopyInto(*out) + } if in.ClientSecret != nil { in, out := &in.ClientSecret, &out.ClientSecret *out = new(v1.SecretKeySelector) (*in).DeepCopyInto(*out) } + if in.ClientSecretS != nil { + in, out := &in.ClientSecretS, &out.ClientSecretS + *out = new(v1.SecretKeySelector) + (*in).DeepCopyInto(*out) + } if in.Scopes != nil { in, out := &in.Scopes, &out.Scopes *out = make([]string, len(*in)) @@ -1784,6 +1856,13 @@ func (in *OAuth2) DeepCopyInto(out *OAuth2) { (*out)[key] = val } } + if in.EndpointParamsS != nil { + in, out := &in.EndpointParamsS, &out.EndpointParamsS + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OAuth2. @@ -2951,6 +3030,16 @@ func (in *TLSConfig) DeepCopyInto(out *TLSConfig) { *out = new(v1.SecretKeySelector) (*in).DeepCopyInto(*out) } + if in.KeySecretS != nil { + in, out := &in.KeySecretS, &out.KeySecretS + *out = new(v1.SecretKeySelector) + (*in).DeepCopyInto(*out) + } + if in.InsecureSkipVerifyS != nil { + in, out := &in.InsecureSkipVerifyS, &out.InsecureSkipVerifyS + *out = new(bool) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSConfig. @@ -5261,6 +5350,17 @@ func (in *VMProbeSpec) DeepCopyInto(out *VMProbeSpec) { } } } + if in.MetricRelabelConfigsS != nil { + in, out := &in.MetricRelabelConfigsS, &out.MetricRelabelConfigsS + *out = make([]*RelabelConfig, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(RelabelConfig) + (*in).DeepCopyInto(*out) + } + } + } in.EndpointAuth.DeepCopyInto(&out.EndpointAuth) in.EndpointScrapeParams.DeepCopyInto(&out.EndpointScrapeParams) } diff --git a/config/crd/overlay/crd.yaml b/config/crd/overlay/crd.yaml index 45d26e4b..12cac289 100644 --- a/config/crd/overlay/crd.yaml +++ b/config/crd/overlay/crd.yaml @@ -1059,7 +1059,7 @@ spec: - key type: object x-kubernetes-map-type: atomic - credentialsFile: + credentials_file: description: File with value for authorization type: string type: @@ -1127,6 +1127,11 @@ spec: - key type: object x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string type: object bearerToken: description: Bearer token for accessing apiserver. @@ -1141,156 +1146,7 @@ spec: type: string tlsConfig: description: TLSConfig Config to use for accessing apiserver. - properties: - ca: - description: Stuct containing the CA cert to use for the targets. - properties: - configMap: - description: ConfigMap containing data to use for the - targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - caFile: - description: Path to the CA cert in the container to use for - the targets. - type: string - cert: - description: Struct containing the client cert file for the - targets. - properties: - configMap: - description: ConfigMap containing data to use for the - targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - certFile: - description: Path to the client cert file in the container - for the targets. - type: string - insecureSkipVerify: - description: Disable target certificate validation. - type: boolean - keyFile: - description: Path to the client key file in the container - for the targets. - type: string - keySecret: - description: Secret containing the client key file for the - targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - serverName: - description: Used to verify the hostname for the targets. - type: string - type: object + x-kubernetes-preserve-unknown-fields: true required: - host type: object @@ -2967,6 +2823,11 @@ spec: - key type: object x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string type: object bearerTokenSecret: description: Optional bearer auth token to use for -remoteWrite.url @@ -3089,106 +2950,7 @@ spec: type: string oauth2: description: OAuth2 defines auth configuration - properties: - client_id: - description: The secret or configmap containing the OAuth2 - client id - properties: - configMap: - description: ConfigMap containing data to use for the - targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - client_secret: - description: The secret containing the OAuth2 client secret - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - client_secret_file: - description: ClientSecretFile defines path for client secret - file. - type: string - endpoint_params: - additionalProperties: - type: string - description: Parameters to append to the token URL - type: object - scopes: - description: OAuth2 scopes used for the token request - items: - type: string - type: array - token_url: - description: The URL to fetch the token from - minLength: 1 - type: string - required: - - client_id - - token_url - type: object + x-kubernetes-preserve-unknown-fields: true sendTimeout: description: Timeout for sending a single block of data to -remoteWrite.url (default 1m0s) @@ -3515,163 +3277,13 @@ spec: tlsConfig: description: TLSConfig describes tls configuration for remote write target - properties: - ca: - description: Stuct containing the CA cert to use for the - targets. - properties: - configMap: - description: ConfigMap containing data to use for the - targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - caFile: - description: Path to the CA cert in the container to use - for the targets. - type: string - cert: - description: Struct containing the client cert file for - the targets. - properties: - configMap: - description: ConfigMap containing data to use for the - targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - certFile: - description: Path to the client cert file in the container - for the targets. - type: string - insecureSkipVerify: - description: Disable target certificate validation. - type: boolean - keyFile: - description: Path to the client key file in the container - for the targets. - type: string - keySecret: - description: Secret containing the client key file for the - targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - serverName: - description: Used to verify the hostname for the targets. - type: string - type: object - url: - description: URL of the endpoint to send samples to. - type: string - urlRelabelConfig: - description: ConfigMap with relabeling config which is applied - to metrics before sending them to the corresponding -remoteWrite.url + x-kubernetes-preserve-unknown-fields: true + url: + description: URL of the endpoint to send samples to. + type: string + urlRelabelConfig: + description: ConfigMap with relabeling config which is applied + to metrics before sending them to the corresponding -remoteWrite.url properties: key: description: The key to select. @@ -5647,7 +5259,7 @@ spec: - key type: object x-kubernetes-map-type: atomic - credentialsFile: + credentials_file: description: File with value for authorization type: string type: @@ -5715,6 +5327,11 @@ spec: - key type: object x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string type: object bearer_token_file: description: BearerTokenFile defines filename for @@ -5749,272 +5366,13 @@ spec: oauth2: description: OAuth2 client credentials used to fetch a token for the targets. - properties: - client_id: - description: The secret or configmap containing - the OAuth2 client id - properties: - configMap: - description: ConfigMap containing data to - use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use - for the targets. - properties: - key: - description: The key of the secret to - select from. Must be a valid secret - key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - client_secret: - description: The secret containing the OAuth2 - client secret - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - client_secret_file: - description: ClientSecretFile defines path for - client secret file. - type: string - endpoint_params: - additionalProperties: - type: string - description: Parameters to append to the token - URL - type: object - scopes: - description: OAuth2 scopes used for the token - request - items: - type: string - type: array - token_url: - description: The URL to fetch the token from - minLength: 1 - type: string - required: - - client_id - - token_url - type: object + x-kubernetes-preserve-unknown-fields: true proxyURL: description: Optional proxy URL. type: string tls_config: description: TLS configuration for the client. - properties: - ca: - description: Stuct containing the CA cert to use - for the targets. - properties: - configMap: - description: ConfigMap containing data to - use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use - for the targets. - properties: - key: - description: The key of the secret to - select from. Must be a valid secret - key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - caFile: - description: Path to the CA cert in the container - to use for the targets. - type: string - cert: - description: Struct containing the client cert - file for the targets. - properties: - configMap: - description: ConfigMap containing data to - use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use - for the targets. - properties: - key: - description: The key of the secret to - select from. Must be a valid secret - key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - certFile: - description: Path to the client cert file in the - container for the targets. - type: string - insecureSkipVerify: - description: Disable target certificate validation. - type: boolean - keyFile: - description: Path to the client key file in the - container for the targets. - type: string - keySecret: - description: Secret containing the client key - file for the targets. - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - serverName: - description: Used to verify the hostname for the - targets. - type: string - type: object + x-kubernetes-preserve-unknown-fields: true type: object message: description: The message body template @@ -6159,159 +5517,7 @@ spec: type: string tls_config: description: TLS configuration - properties: - ca: - description: Stuct containing the CA cert to use for - the targets. - properties: - configMap: - description: ConfigMap containing data to use - for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for - the targets. - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - caFile: - description: Path to the CA cert in the container - to use for the targets. - type: string - cert: - description: Struct containing the client cert file - for the targets. - properties: - configMap: - description: ConfigMap containing data to use - for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for - the targets. - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - certFile: - description: Path to the client cert file in the container - for the targets. - type: string - insecureSkipVerify: - description: Disable target certificate validation. - type: boolean - keyFile: - description: Path to the client key file in the container - for the targets. - type: string - keySecret: - description: Secret containing the client key file - for the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - serverName: - description: Used to verify the hostname for the targets. - type: string - type: object + x-kubernetes-preserve-unknown-fields: true to: description: The email address to send notifications to. type: string @@ -6353,7 +5559,7 @@ spec: - key type: object x-kubernetes-map-type: atomic - credentialsFile: + credentials_file: description: File with value for authorization type: string type: @@ -6421,6 +5627,11 @@ spec: - key type: object x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string type: object bearer_token_file: description: BearerTokenFile defines filename for @@ -6455,272 +5666,13 @@ spec: oauth2: description: OAuth2 client credentials used to fetch a token for the targets. - properties: - client_id: - description: The secret or configmap containing - the OAuth2 client id - properties: - configMap: - description: ConfigMap containing data to - use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use - for the targets. - properties: - key: - description: The key of the secret to - select from. Must be a valid secret - key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - client_secret: - description: The secret containing the OAuth2 - client secret - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - client_secret_file: - description: ClientSecretFile defines path for - client secret file. - type: string - endpoint_params: - additionalProperties: - type: string - description: Parameters to append to the token - URL - type: object - scopes: - description: OAuth2 scopes used for the token - request - items: - type: string - type: array - token_url: - description: The URL to fetch the token from - minLength: 1 - type: string - required: - - client_id - - token_url - type: object + x-kubernetes-preserve-unknown-fields: true proxyURL: description: Optional proxy URL. type: string tls_config: description: TLS configuration for the client. - properties: - ca: - description: Stuct containing the CA cert to use - for the targets. - properties: - configMap: - description: ConfigMap containing data to - use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use - for the targets. - properties: - key: - description: The key of the secret to - select from. Must be a valid secret - key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - caFile: - description: Path to the CA cert in the container - to use for the targets. - type: string - cert: - description: Struct containing the client cert - file for the targets. - properties: - configMap: - description: ConfigMap containing data to - use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use - for the targets. - properties: - key: - description: The key of the secret to - select from. Must be a valid secret - key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - certFile: - description: Path to the client cert file in the - container for the targets. - type: string - insecureSkipVerify: - description: Disable target certificate validation. - type: boolean - keyFile: - description: Path to the client key file in the - container for the targets. - type: string - keySecret: - description: Secret containing the client key - file for the targets. - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - serverName: - description: Used to verify the hostname for the - targets. - type: string - type: object + x-kubernetes-preserve-unknown-fields: true type: object send_resolved: description: SendResolved controls notify about resolved @@ -7321,7 +6273,7 @@ spec: - key type: object x-kubernetes-map-type: atomic - credentialsFile: + credentials_file: description: File with value for authorization type: string type: @@ -7389,6 +6341,11 @@ spec: - key type: object x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string type: object bearer_token_file: description: BearerTokenFile defines filename for @@ -7423,272 +6380,13 @@ spec: oauth2: description: OAuth2 client credentials used to fetch a token for the targets. - properties: - client_id: - description: The secret or configmap containing - the OAuth2 client id - properties: - configMap: - description: ConfigMap containing data to - use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use - for the targets. - properties: - key: - description: The key of the secret to - select from. Must be a valid secret - key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - client_secret: - description: The secret containing the OAuth2 - client secret - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - client_secret_file: - description: ClientSecretFile defines path for - client secret file. - type: string - endpoint_params: - additionalProperties: - type: string - description: Parameters to append to the token - URL - type: object - scopes: - description: OAuth2 scopes used for the token - request - items: - type: string - type: array - token_url: - description: The URL to fetch the token from - minLength: 1 - type: string - required: - - client_id - - token_url - type: object + x-kubernetes-preserve-unknown-fields: true proxyURL: description: Optional proxy URL. type: string tls_config: description: TLS configuration for the client. - properties: - ca: - description: Stuct containing the CA cert to use - for the targets. - properties: - configMap: - description: ConfigMap containing data to - use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use - for the targets. - properties: - key: - description: The key of the secret to - select from. Must be a valid secret - key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - caFile: - description: Path to the CA cert in the container - to use for the targets. - type: string - cert: - description: Struct containing the client cert - file for the targets. - properties: - configMap: - description: ConfigMap containing data to - use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use - for the targets. - properties: - key: - description: The key of the secret to - select from. Must be a valid secret - key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - certFile: - description: Path to the client cert file in the - container for the targets. - type: string - insecureSkipVerify: - description: Disable target certificate validation. - type: boolean - keyFile: - description: Path to the client key file in the - container for the targets. - type: string - keySecret: - description: Secret containing the client key - file for the targets. - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - serverName: - description: Used to verify the hostname for the - targets. - type: string - type: object + x-kubernetes-preserve-unknown-fields: true type: object message: description: The message content of the SNS notification. @@ -7932,7 +6630,7 @@ spec: - key type: object x-kubernetes-map-type: atomic - credentialsFile: + credentials_file: description: File with value for authorization type: string type: @@ -8000,6 +6698,11 @@ spec: - key type: object x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string type: object bearer_token_file: description: BearerTokenFile defines filename for @@ -8034,272 +6737,13 @@ spec: oauth2: description: OAuth2 client credentials used to fetch a token for the targets. - properties: - client_id: - description: The secret or configmap containing - the OAuth2 client id - properties: - configMap: - description: ConfigMap containing data to - use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use - for the targets. - properties: - key: - description: The key of the secret to - select from. Must be a valid secret - key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - client_secret: - description: The secret containing the OAuth2 - client secret - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - client_secret_file: - description: ClientSecretFile defines path for - client secret file. - type: string - endpoint_params: - additionalProperties: - type: string - description: Parameters to append to the token - URL - type: object - scopes: - description: OAuth2 scopes used for the token - request - items: - type: string - type: array - token_url: - description: The URL to fetch the token from - minLength: 1 - type: string - required: - - client_id - - token_url - type: object + x-kubernetes-preserve-unknown-fields: true proxyURL: description: Optional proxy URL. type: string tls_config: description: TLS configuration for the client. - properties: - ca: - description: Stuct containing the CA cert to use - for the targets. - properties: - configMap: - description: ConfigMap containing data to - use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use - for the targets. - properties: - key: - description: The key of the secret to - select from. Must be a valid secret - key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - caFile: - description: Path to the CA cert in the container - to use for the targets. - type: string - cert: - description: Struct containing the client cert - file for the targets. - properties: - configMap: - description: ConfigMap containing data to - use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use - for the targets. - properties: - key: - description: The key of the secret to - select from. Must be a valid secret - key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - certFile: - description: Path to the client cert file in the - container for the targets. - type: string - insecureSkipVerify: - description: Disable target certificate validation. - type: boolean - keyFile: - description: Path to the client key file in the - container for the targets. - type: string - keySecret: - description: Secret containing the client key - file for the targets. - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - serverName: - description: Used to verify the hostname for the - targets. - type: string - type: object + x-kubernetes-preserve-unknown-fields: true type: object message_type: description: Describes the behavior of the alert (CRITICAL, @@ -8365,7 +6809,7 @@ spec: - key type: object x-kubernetes-map-type: atomic - credentialsFile: + credentials_file: description: File with value for authorization type: string type: @@ -8433,6 +6877,11 @@ spec: - key type: object x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string type: object bearer_token_file: description: BearerTokenFile defines filename for @@ -8467,272 +6916,13 @@ spec: oauth2: description: OAuth2 client credentials used to fetch a token for the targets. - properties: - client_id: - description: The secret or configmap containing - the OAuth2 client id - properties: - configMap: - description: ConfigMap containing data to - use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use - for the targets. - properties: - key: - description: The key of the secret to - select from. Must be a valid secret - key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - client_secret: - description: The secret containing the OAuth2 - client secret - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - client_secret_file: - description: ClientSecretFile defines path for - client secret file. - type: string - endpoint_params: - additionalProperties: - type: string - description: Parameters to append to the token - URL - type: object - scopes: - description: OAuth2 scopes used for the token - request - items: - type: string - type: array - token_url: - description: The URL to fetch the token from - minLength: 1 - type: string - required: - - client_id - - token_url - type: object + x-kubernetes-preserve-unknown-fields: true proxyURL: description: Optional proxy URL. type: string tls_config: description: TLS configuration for the client. - properties: - ca: - description: Stuct containing the CA cert to use - for the targets. - properties: - configMap: - description: ConfigMap containing data to - use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use - for the targets. - properties: - key: - description: The key of the secret to - select from. Must be a valid secret - key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - caFile: - description: Path to the CA cert in the container - to use for the targets. - type: string - cert: - description: Struct containing the client cert - file for the targets. - properties: - configMap: - description: ConfigMap containing data to - use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use - for the targets. - properties: - key: - description: The key of the secret to - select from. Must be a valid secret - key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - certFile: - description: Path to the client cert file in the - container for the targets. - type: string - insecureSkipVerify: - description: Disable target certificate validation. - type: boolean - keyFile: - description: Path to the client key file in the - container for the targets. - type: string - keySecret: - description: Secret containing the client key - file for the targets. - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - serverName: - description: Used to verify the hostname for the - targets. - type: string - type: object + x-kubernetes-preserve-unknown-fields: true type: object message: description: The message body template @@ -8883,7 +7073,7 @@ spec: - key type: object x-kubernetes-map-type: atomic - credentialsFile: + credentials_file: description: File with value for authorization type: string type: @@ -8951,6 +7141,11 @@ spec: - key type: object x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string type: object bearer_token_file: description: BearerTokenFile defines filename for @@ -8985,272 +7180,13 @@ spec: oauth2: description: OAuth2 client credentials used to fetch a token for the targets. - properties: - client_id: - description: The secret or configmap containing - the OAuth2 client id - properties: - configMap: - description: ConfigMap containing data to - use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use - for the targets. - properties: - key: - description: The key of the secret to - select from. Must be a valid secret - key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - client_secret: - description: The secret containing the OAuth2 - client secret - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - client_secret_file: - description: ClientSecretFile defines path for - client secret file. - type: string - endpoint_params: - additionalProperties: - type: string - description: Parameters to append to the token - URL - type: object - scopes: - description: OAuth2 scopes used for the token - request - items: - type: string - type: array - token_url: - description: The URL to fetch the token from - minLength: 1 - type: string - required: - - client_id - - token_url - type: object + x-kubernetes-preserve-unknown-fields: true proxyURL: description: Optional proxy URL. type: string tls_config: description: TLS configuration for the client. - properties: - ca: - description: Stuct containing the CA cert to use - for the targets. - properties: - configMap: - description: ConfigMap containing data to - use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use - for the targets. - properties: - key: - description: The key of the secret to - select from. Must be a valid secret - key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - caFile: - description: Path to the CA cert in the container - to use for the targets. - type: string - cert: - description: Struct containing the client cert - file for the targets. - properties: - configMap: - description: ConfigMap containing data to - use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use - for the targets. - properties: - key: - description: The key of the secret to - select from. Must be a valid secret - key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - certFile: - description: Path to the client cert file in the - container for the targets. - type: string - insecureSkipVerify: - description: Disable target certificate validation. - type: boolean - keyFile: - description: Path to the client key file in the - container for the targets. - type: string - keySecret: - description: Secret containing the client key - file for the targets. - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - serverName: - description: Used to verify the hostname for the - targets. - type: string - type: object + x-kubernetes-preserve-unknown-fields: true type: object message: description: API request data as defined by the WeChat @@ -11978,6 +9914,11 @@ spec: - key type: object x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string type: object bearerTokenFile: description: Path to bearer token file @@ -12018,44 +9959,222 @@ spec: type: array oauth2: description: OAuth2 defines OAuth2 configuration - required: - - client_id - - token_url - type: object - x-kubernetes-preserve-unknown-fields: true - tlsConfig: - description: TLSConfig specifies TLSConfig configuration parameters. - type: object - x-kubernetes-preserve-unknown-fields: true - url: - description: Victoria Metrics or VMSelect url. Required parameter. - E.g. http://127.0.0.1:8428 - type: string - required: - - url - type: object - disableSelfServiceScrape: - description: |- - DisableSelfServiceScrape controls creation of VMServiceScrape by operator - for the application. - Has priority over `VM_DISABLESELFSERVICESCRAPECREATION` operator env variable - type: boolean - dnsConfig: - description: |- - Specifies the DNS parameters of a pod. - Parameters specified here will be merged to the generated DNS - configuration based on DNSPolicy. - items: - x-kubernetes-preserve-unknown-fields: true - properties: - nameservers: - description: |- - A list of DNS name server IP addresses. - This will be appended to the base nameservers generated from DNSPolicy. - Duplicated nameservers will be removed. - items: - type: string - type: array + properties: + client_id: + description: The secret or configmap containing the OAuth2 + client id + properties: + configMap: + description: ConfigMap containing data to use for the + targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its + key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + client_secret: + description: The secret containing the OAuth2 client secret + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + client_secret_file: + description: ClientSecretFile defines path for client secret + file. + type: string + clientId: + description: The secret or configmap containing the OAuth2 + client id + properties: + configMap: + description: ConfigMap containing data to use for the + targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its + key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + clientSecret: + description: The secret containing the OAuth2 client secret + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + endpoint_params: + additionalProperties: + type: string + description: Parameters to append to the token URL + type: object + endpointParams: + additionalProperties: + type: string + description: Parameters to append to the token URL + type: object + scopes: + description: OAuth2 scopes used for the token request + items: + type: string + type: array + token_url: + description: The URL to fetch the token from + type: string + tokenUrl: + description: The URL to fetch the token from + type: string + required: + - clientId + - client_id + type: object + x-kubernetes-preserve-unknown-fields: true + tlsConfig: + x-kubernetes-preserve-unknown-fields: true + url: + description: Victoria Metrics or VMSelect url. Required parameter. + E.g. http://127.0.0.1:8428 + type: string + required: + - url + type: object + disableSelfServiceScrape: + description: |- + DisableSelfServiceScrape controls creation of VMServiceScrape by operator + for the application. + Has priority over `VM_DISABLESELFSERVICESCRAPECREATION` operator env variable + type: boolean + dnsConfig: + description: |- + Specifies the DNS parameters of a pod. + Parameters specified here will be merged to the generated DNS + configuration based on DNSPolicy. + items: + x-kubernetes-preserve-unknown-fields: true + properties: + nameservers: + description: |- + A list of DNS name server IP addresses. + This will be appended to the base nameservers generated from DNSPolicy. + Duplicated nameservers will be removed. + items: + type: string + type: array x-kubernetes-list-type: atomic options: description: |- @@ -12378,6 +10497,11 @@ spec: - key type: object x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string type: object bearerTokenFile: description: Path to bearer token file @@ -12418,70 +10542,249 @@ spec: type: array oauth2: description: OAuth2 defines OAuth2 configuration - required: - - client_id - - token_url - type: object - x-kubernetes-preserve-unknown-fields: true - selector: - description: |- - Selector allows service discovery for alertmanager - in this case all matched vmalertmanager replicas will be added into vmalert notifier.url - as statefulset pod.fqdn properties: - labelSelector: - description: |- - A label selector is a label query over a set of resources. The result of matchLabels and - matchExpressions are ANDed. An empty label selector matches all objects. A null - label selector matches no objects. + client_id: + description: The secret or configmap containing the OAuth2 + client id properties: - matchExpressions: - description: matchExpressions is a list of label selector - requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the selector - applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - namespaceSelector: - description: |- - NamespaceSelector is a selector for selecting either all namespaces or a - list of namespaces. + configMap: + description: ConfigMap containing data to use for the + targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its + key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + client_secret: + description: The secret containing the OAuth2 client secret + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + client_secret_file: + description: ClientSecretFile defines path for client secret + file. + type: string + clientId: + description: The secret or configmap containing the OAuth2 + client id + properties: + configMap: + description: ConfigMap containing data to use for the + targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its + key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + clientSecret: + description: The secret containing the OAuth2 client secret + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + endpoint_params: + additionalProperties: + type: string + description: Parameters to append to the token URL + type: object + endpointParams: + additionalProperties: + type: string + description: Parameters to append to the token URL + type: object + scopes: + description: OAuth2 scopes used for the token request + items: + type: string + type: array + token_url: + description: The URL to fetch the token from + type: string + tokenUrl: + description: The URL to fetch the token from + type: string + required: + - clientId + - client_id + type: object + selector: + description: |- + Selector allows service discovery for alertmanager + in this case all matched vmalertmanager replicas will be added into vmalert notifier.url + as statefulset pod.fqdn + properties: + labelSelector: + description: |- + A label selector is a label query over a set of resources. The result of matchLabels and + matchExpressions are ANDed. An empty label selector matches all objects. A null + label selector matches no objects. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + namespaceSelector: + description: |- + NamespaceSelector is a selector for selecting either all namespaces or a + list of namespaces. properties: any: description: |- @@ -12496,8 +10799,6 @@ spec: type: object type: object tlsConfig: - description: TLSConfig specifies TLSConfig configuration parameters. - type: object x-kubernetes-preserve-unknown-fields: true url: description: AlertManager url. E.g. http://127.0.0.1:9093 @@ -12598,6 +10899,11 @@ spec: - key type: object x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string type: object bearerTokenFile: description: Path to bearer token file @@ -12638,41 +10944,220 @@ spec: type: array oauth2: description: OAuth2 defines OAuth2 configuration - required: - - client_id - - token_url - type: object - x-kubernetes-preserve-unknown-fields: true - selector: - description: |- - Selector allows service discovery for alertmanager - in this case all matched vmalertmanager replicas will be added into vmalert notifier.url - as statefulset pod.fqdn properties: - labelSelector: - description: |- - A label selector is a label query over a set of resources. The result of matchLabels and - matchExpressions are ANDed. An empty label selector matches all objects. A null - label selector matches no objects. + client_id: + description: The secret or configmap containing the OAuth2 + client id properties: - matchExpressions: - description: matchExpressions is a list of label selector - requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the selector - applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: + configMap: + description: ConfigMap containing data to use for the + targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its + key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + client_secret: + description: The secret containing the OAuth2 client secret + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + client_secret_file: + description: ClientSecretFile defines path for client secret + file. + type: string + clientId: + description: The secret or configmap containing the OAuth2 + client id + properties: + configMap: + description: ConfigMap containing data to use for the + targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its + key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + clientSecret: + description: The secret containing the OAuth2 client secret + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + endpoint_params: + additionalProperties: + type: string + description: Parameters to append to the token URL + type: object + endpointParams: + additionalProperties: + type: string + description: Parameters to append to the token URL + type: object + scopes: + description: OAuth2 scopes used for the token request + items: + type: string + type: array + token_url: + description: The URL to fetch the token from + type: string + tokenUrl: + description: The URL to fetch the token from + type: string + required: + - clientId + - client_id + type: object + selector: + description: |- + Selector allows service discovery for alertmanager + in this case all matched vmalertmanager replicas will be added into vmalert notifier.url + as statefulset pod.fqdn + properties: + labelSelector: + description: |- + A label selector is a label query over a set of resources. The result of matchLabels and + matchExpressions are ANDed. An empty label selector matches all objects. A null + label selector matches no objects. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: description: |- values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, @@ -12716,8 +11201,6 @@ spec: type: object type: object tlsConfig: - description: TLSConfig specifies TLSConfig configuration parameters. - type: object x-kubernetes-preserve-unknown-fields: true url: description: AlertManager url. E.g. http://127.0.0.1:9093 @@ -12884,6 +11367,11 @@ spec: - key type: object x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string type: object bearerTokenFile: description: Path to bearer token file @@ -12929,58 +11417,235 @@ spec: type: string oauth2: description: OAuth2 defines OAuth2 configuration - required: - - client_id - - token_url - type: object - x-kubernetes-preserve-unknown-fields: true - tlsConfig: - description: TLSConfig specifies TLSConfig configuration parameters. - type: object - x-kubernetes-preserve-unknown-fields: true - url: - description: URL of the endpoint to send samples to. - type: string - required: - - url - type: object - remoteWrite: - description: |- - RemoteWrite Optional URL to remote-write compatible storage to persist - vmalert state and rule results to. - Rule results will be persisted according to each rule. - Alerts state will be persisted in the form of time series named ALERTS and ALERTS_FOR_STATE - see -remoteWrite.url docs in vmalerts for details. - E.g. http://127.0.0.1:8428 - properties: - basicAuth: - description: BasicAuth allow an endpoint to authenticate over - basic authentication properties: - password: - description: |- - Password defines reference for secret with password value - The secret needs to be in the same namespace as scrape object + client_id: + description: The secret or configmap containing the OAuth2 + client id properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key + configMap: + description: ConfigMap containing data to use for the + targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its + key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + client_secret: + description: The secret containing the OAuth2 client secret + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + client_secret_file: + description: ClientSecretFile defines path for client secret + file. + type: string + clientId: + description: The secret or configmap containing the OAuth2 + client id + properties: + configMap: + description: ConfigMap containing data to use for the + targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its + key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + clientSecret: + description: The secret containing the OAuth2 client secret + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + endpoint_params: + additionalProperties: + type: string + description: Parameters to append to the token URL + type: object + endpointParams: + additionalProperties: + type: string + description: Parameters to append to the token URL + type: object + scopes: + description: OAuth2 scopes used for the token request + items: + type: string + type: array + token_url: + description: The URL to fetch the token from + type: string + tokenUrl: + description: The URL to fetch the token from + type: string + required: + - clientId + - client_id + type: object + tlsConfig: + x-kubernetes-preserve-unknown-fields: true + url: + description: URL of the endpoint to send samples to. + type: string + required: + - url + type: object + remoteWrite: + description: |- + RemoteWrite Optional URL to remote-write compatible storage to persist + vmalert state and rule results to. + Rule results will be persisted according to each rule. + Alerts state will be persisted in the form of time series named ALERTS and ALERTS_FOR_STATE + see -remoteWrite.url docs in vmalerts for details. + E.g. http://127.0.0.1:8428 + properties: + basicAuth: + description: BasicAuth allow an endpoint to authenticate over + basic authentication + properties: + password: + description: |- + Password defines reference for secret with password value + The secret needs to be in the same namespace as scrape object + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key type: object x-kubernetes-map-type: atomic password_file: @@ -13014,6 +11679,11 @@ spec: - key type: object x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string type: object bearerTokenFile: description: Path to bearer token file @@ -13074,58 +11744,235 @@ spec: type: integer oauth2: description: OAuth2 defines OAuth2 configuration - required: - - client_id - - token_url - type: object - x-kubernetes-preserve-unknown-fields: true - tlsConfig: - description: TLSConfig specifies TLSConfig configuration parameters. - type: object - x-kubernetes-preserve-unknown-fields: true - url: - description: URL of the endpoint to send samples to. - type: string - required: - - url - type: object - replicaCount: - description: ReplicaCount is the expected size of the Application. - format: int32 - type: integer - resources: - description: |- - Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - if not defined default resources from operator config will be used - properties: - claims: - description: |- - Claims lists the names of resources, defined in spec.resourceClaims, - that are used by this container. - - This is an alpha field and requires enabling the - DynamicResourceAllocation feature gate. - - This field is immutable. It can only be set for containers. - items: - description: ResourceClaim references one entry in PodSpec.ResourceClaims. - properties: - name: - description: |- - Name must match the name of one entry in pod.spec.resourceClaims of - the Pod where this field is used. It makes that resource available - inside a container. - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - limits: - additionalProperties: - anyOf: + properties: + client_id: + description: The secret or configmap containing the OAuth2 + client id + properties: + configMap: + description: ConfigMap containing data to use for the + targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its + key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + client_secret: + description: The secret containing the OAuth2 client secret + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + client_secret_file: + description: ClientSecretFile defines path for client secret + file. + type: string + clientId: + description: The secret or configmap containing the OAuth2 + client id + properties: + configMap: + description: ConfigMap containing data to use for the + targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its + key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + clientSecret: + description: The secret containing the OAuth2 client secret + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + endpoint_params: + additionalProperties: + type: string + description: Parameters to append to the token URL + type: object + endpointParams: + additionalProperties: + type: string + description: Parameters to append to the token URL + type: object + scopes: + description: OAuth2 scopes used for the token request + items: + type: string + type: array + token_url: + description: The URL to fetch the token from + type: string + tokenUrl: + description: The URL to fetch the token from + type: string + required: + - clientId + - client_id + type: object + tlsConfig: + x-kubernetes-preserve-unknown-fields: true + url: + description: URL of the endpoint to send samples to. + type: string + required: + - url + type: object + replicaCount: + description: ReplicaCount is the expected size of the Application. + format: int32 + type: integer + resources: + description: |- + Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + if not defined default resources from operator config will be used + properties: + claims: + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + This field is immutable. It can only be set for containers. + items: + description: ResourceClaim references one entry in PodSpec.ResourceClaims. + properties: + name: + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: - type: integer - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ @@ -14611,153 +13458,7 @@ spec: format: int64 type: integer tlsConfig: - description: TLSConfig specifies TLSConfig configuration parameters. - properties: - ca: - description: Stuct containing the CA cert to use for the targets. - properties: - configMap: - description: ConfigMap containing data to use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - caFile: - description: Path to the CA cert in the container to use for the - targets. - type: string - cert: - description: Struct containing the client cert file for the targets. - properties: - configMap: - description: ConfigMap containing data to use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - certFile: - description: Path to the client cert file in the container for - the targets. - type: string - insecureSkipVerify: - description: Disable target certificate validation. - type: boolean - keyFile: - description: Path to the client key file in the container for - the targets. - type: string - keySecret: - description: Secret containing the client key file for the targets. - properties: - key: - description: The key of the secret to select from. Must be - a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key must be - defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - serverName: - description: Used to verify the hostname for the targets. - type: string - type: object + x-kubernetes-preserve-unknown-fields: true tolerations: description: Tolerations If specified, the pod's tolerations. items: @@ -19243,14 +17944,14 @@ spec: - key type: object x-kubernetes-map-type: atomic - credentialsFile: + credentials_file: description: File with value for authorization type: string type: description: Type of authorization, default to bearer type: string type: object - basicAuth: + basic_auth: description: BasicAuth allow an endpoint to authenticate over basic authentication properties: @@ -19311,16 +18012,112 @@ spec: - key type: object x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string type: object - bearerTokenFile: + basicAuth: + description: BasicAuthS alias for BasicAuth + properties: + password: + description: |- + Password defines reference for secret with password value + The secret needs to be in the same namespace as scrape object + properties: + key: + description: The key of the secret to select from. Must be + a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be + defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + password_file: + description: |- + PasswordFile defines path to password file at disk + must be pre-mounted + type: string + username: + description: |- + Username defines reference for secret with username value + The secret needs to be in the same namespace as scrape object + properties: + key: + description: The key of the secret to select from. Must be + a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be + defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string + type: object + bearer_token_file: description: File to read bearer token for scraping targets. type: string - bearerTokenSecret: + bearer_token_secret: description: |- 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. - nullable: true + properties: + key: + description: The key of the secret to select from. Must be a + valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + bearerTokenFile: + description: BearerTokenFileS alias for BearerTokenFile + type: string + bearerTokenSecret: + description: BearerTokenSecretS alias for BearerTokenSecret properties: key: description: The key of the secret to select from. Must be a @@ -19345,10 +18142,21 @@ spec: follow_redirects: description: FollowRedirects controls redirects for scraping. type: boolean - honorLabels: + followRedirects: + description: FollowRedirects controls redirects for scraping. + type: boolean + honor_labels: description: HonorLabels chooses the metric's labels on collisions with target labels. type: boolean + honor_timestamps: + description: HonorTimestamps controls whether vmagent respects the + timestamps present in scraped data. + type: boolean + honorLabels: + description: HonorLabelsS chooses the metric's labels on collisions + with target labels. + type: boolean honorTimestamps: description: HonorTimestamps controls whether vmagent respects the timestamps present in scraped data. @@ -19363,7 +18171,7 @@ spec: description: MaxScrapeSize defines a maximum size of scraped data for a job type: string - metricRelabelConfigs: + metric_relabel_configs: description: MetricRelabelConfigs to apply to samples after scrapping. items: description: |- @@ -19439,106 +18247,93 @@ spec: type: string type: object type: array - oauth2: - description: OAuth2 defines auth configuration - properties: - client_id: - description: The secret or configmap containing the OAuth2 client - id - properties: - configMap: - description: ConfigMap containing data to use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - client_secret: - description: The secret containing the OAuth2 client secret - properties: - key: - description: The key of the secret to select from. Must be - a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + metricRelabelConfigs: + description: MetricRelabelConfigsS alias for MetricRelabelConfigs + items: + description: |- + RelabelConfig allows dynamic rewriting of the label set + More info: https://docs.victoriametrics.com/#relabeling + properties: + action: + description: Action to perform based on regex matching. Default + is 'replace' + type: string + if: + description: 'If represents metricsQL match expression (or list + of expressions): ''{__name__=~"foo_.*"}''' + x-kubernetes-preserve-unknown-fields: true + labels: + additionalProperties: type: string - optional: - description: Specify whether the Secret or its key must be - defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - client_secret_file: - description: ClientSecretFile defines path for client secret file. - type: string - endpoint_params: - additionalProperties: + description: 'Labels is used together with Match for `action: + graphite`' + type: object + match: + description: 'Match is used together with Labels for `action: + graphite`' type: string - description: Parameters to append to the token URL - type: object - scopes: - description: OAuth2 scopes used for the token request - items: + modulus: + description: Modulus to take of the hash of the source label + values. + format: int64 + type: integer + regex: + description: |- + Regular expression against which the extracted value is matched. Default is '(.*)' + victoriaMetrics supports multiline regex joined with | + https://docs.victoriametrics.com/vmagent/#relabeling-enhancements + x-kubernetes-preserve-unknown-fields: true + replacement: + description: |- + Replacement value against which a regex replace is performed if the + regular expression matches. Regex capture groups are available. Default is '$1' type: string - type: array - token_url: - description: The URL to fetch the token from - minLength: 1 - type: string - required: - - client_id - - token_url - type: object + separator: + 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 + using the configured separator and matched against the configured regular expression + for the replace, keep, and drop actions. + 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 + type: array + metrics_path: + description: |- + HTTP path to scrape for metrics. + alias for Path + type: string + metricsPath: + description: MetricsPathS alias for Path + type: string + oauth2: + description: OAuth2 defines auth configuration + x-kubernetes-preserve-unknown-fields: true params: additionalProperties: items: @@ -19552,11 +18347,15 @@ spec: port: description: Name of the port exposed at Node. type: string - proxyURL: + proxy_url: description: ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. type: string - relabelConfigs: + proxyUrl: + description: ProxyURL eg http://proxyserver:2195 Directs scrapes to + proxy through this endpoint. + type: string + relabel_configs: description: RelabelConfigs to apply to samples during service discovery. items: description: |- @@ -19632,6 +18431,87 @@ spec: type: string type: object type: array + relabelConfigs: + description: RelabelConfigsS alias ofr RelabelConfigs + items: + description: |- + RelabelConfig allows dynamic rewriting of the label set + More info: https://docs.victoriametrics.com/#relabeling + properties: + action: + description: Action to perform based on regex matching. Default + is 'replace' + type: string + if: + description: 'If represents metricsQL match expression (or list + of expressions): ''{__name__=~"foo_.*"}''' + x-kubernetes-preserve-unknown-fields: true + labels: + additionalProperties: + type: string + description: 'Labels is used together with Match for `action: + graphite`' + type: object + match: + description: 'Match is used together with Labels for `action: + graphite`' + type: string + modulus: + description: Modulus to take of the hash of the source label + values. + format: int64 + type: integer + regex: + description: |- + Regular expression against which the extracted value is matched. Default is '(.*)' + victoriaMetrics supports multiline regex joined with | + https://docs.victoriametrics.com/vmagent/#relabeling-enhancements + x-kubernetes-preserve-unknown-fields: true + replacement: + description: |- + Replacement value against which a regex replace is performed if the + regular expression matches. Regex capture groups are available. Default is '$1' + type: string + separator: + 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 + using the configured separator and matched against the configured regular expression + for the replace, keep, and drop actions. + 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 + type: array + sample_limit: + description: SampleLimit defines per-scrape limit on number of scraped + samples that will be accepted. + format: int64 + type: integer sampleLimit: description: SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. @@ -19642,15 +18522,24 @@ spec: enum: - http - https + - HTTPS + - HTTP type: string scrape_interval: description: |- ScrapeInterval is the same as Interval and has priority over it. one of scrape_interval or interval can be used type: string - scrapeTimeout: + scrape_timeout: description: Timeout after which the scrape is ended type: string + scrapeInterval: + description: ScrapeIntervalS is the same as ScrapeInterval and has + priority over it. + type: string + scrapeTimeout: + description: ScrapeTimeoutS after which the scrape is ended + type: string selector: description: Selector to select kubernetes Nodes. properties: @@ -19697,6 +18586,12 @@ spec: type: object type: object x-kubernetes-map-type: atomic + series_limit: + description: |- + 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. + format: int64 + type: integer seriesLimit: description: |- SeriesLimit defines per-scrape limit on number of unique time series @@ -19709,192 +18604,81 @@ spec: items: type: string type: array - tlsConfig: + tls_config: description: TLSConfig configuration to use when scraping the endpoint + x-kubernetes-preserve-unknown-fields: true + tlsConfig: + description: TLSConfigS alias for TLSConfig + x-kubernetes-preserve-unknown-fields: true + vm_scrape_params: + description: VMScrapeParams defines VictoriaMetrics specific scrape + parameters properties: - ca: - description: Stuct containing the CA cert to use for the targets. + disable_compression: + description: DisableCompression + type: boolean + disable_keep_alive: + description: |- + 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 re-used. + See https://docs.victoriametrics.com/vmagent#scrape_config-enhancements + type: boolean + headers: + description: |- + Headers allows sending custom headers to scrape targets + must be in of semicolon separated header with it's value + eg: + headerName: headerValue + vmagent supports since 1.79.0 version + items: + type: string + type: array + no_stale_markers: + type: boolean + proxy_client_config: + description: |- + ProxyClientConfig configures proxy auth settings for scraping + See feature description https://docs.victoriametrics.com/vmagent#scraping-targets-via-a-proxy properties: - configMap: - description: ConfigMap containing data to use for the targets. + basic_auth: + description: BasicAuth allow an endpoint to authenticate over + basic authentication properties: - key: - description: The key to select. - type: string - name: - default: "" + password: description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" + Password defines reference for secret with password value + The secret needs to be in the same namespace as scrape object + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + password_file: description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + PasswordFile defines path to password file at disk + must be pre-mounted type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - caFile: - description: Path to the CA cert in the container to use for the - targets. - type: string - cert: - description: Struct containing the client cert file for the targets. - properties: - configMap: - description: ConfigMap containing data to use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - certFile: - description: Path to the client cert file in the container for - the targets. - type: string - insecureSkipVerify: - description: Disable target certificate validation. - type: boolean - keyFile: - description: Path to the client key file in the container for - the targets. - type: string - keySecret: - description: Secret containing the client key file for the targets. - properties: - key: - description: The key of the secret to select from. Must be - a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key must be - defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - serverName: - description: Used to verify the hostname for the targets. - type: string - type: object - vm_scrape_params: - description: VMScrapeParams defines VictoriaMetrics specific scrape - parameters - properties: - disable_compression: - description: DisableCompression - type: boolean - disable_keep_alive: - description: |- - 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 re-used. - See https://docs.victoriametrics.com/vmagent#scrape_config-enhancements - type: boolean - headers: - description: |- - Headers allows sending custom headers to scrape targets - must be in of semicolon separated header with it's value - eg: - headerName: headerValue - vmagent supports since 1.79.0 version - items: - type: string - type: array - no_stale_markers: - type: boolean - proxy_client_config: - description: |- - ProxyClientConfig configures proxy auth settings for scraping - See feature description https://docs.victoriametrics.com/vmagent#scraping-targets-via-a-proxy - properties: - basic_auth: - description: BasicAuth allow an endpoint to authenticate over - basic authentication - properties: - password: + username: description: |- - Password defines reference for secret with password value + Username defines reference for secret with username value The secret needs to be in the same namespace as scrape object properties: key: @@ -19918,37 +18702,11 @@ spec: - key type: object x-kubernetes-map-type: atomic - password_file: + username_file: description: |- - PasswordFile defines path to password file at disk + UsernameFile defines path to username file at disk must be pre-mounted type: string - username: - description: |- - Username defines reference for secret with username value - The secret needs to be in the same namespace as scrape object - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic type: object bearer_token: description: SecretKeySelector selects a key of a Secret. @@ -19977,160 +18735,7 @@ spec: bearer_token_file: type: string tls_config: - description: TLSConfig specifies TLSConfig configuration parameters. - properties: - ca: - description: Stuct containing the CA cert to use for the - targets. - properties: - configMap: - description: ConfigMap containing data to use for - the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the - targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - caFile: - description: Path to the CA cert in the container to use - for the targets. - type: string - cert: - description: Struct containing the client cert file for - the targets. - properties: - configMap: - description: ConfigMap containing data to use for - the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the - targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - certFile: - description: Path to the client cert file in the container - for the targets. - type: string - insecureSkipVerify: - description: Disable target certificate validation. - type: boolean - keyFile: - description: Path to the client key file in the container - for the targets. - type: string - keySecret: - description: Secret containing the client key file for - the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - serverName: - description: Used to verify the hostname for the targets. - type: string - type: object + x-kubernetes-preserve-unknown-fields: true type: object scrape_align_interval: type: string @@ -20281,14 +18886,14 @@ spec: - key type: object x-kubernetes-map-type: atomic - credentialsFile: + credentials_file: description: File with value for authorization type: string type: description: Type of authorization, default to bearer type: string type: object - basicAuth: + basic_auth: description: BasicAuth allow an endpoint to authenticate over basic authentication properties: @@ -20349,16 +18954,113 @@ spec: - key type: object x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string type: object - bearerTokenFile: + basicAuth: + description: BasicAuthS alias for BasicAuth + properties: + password: + description: |- + Password defines reference for secret with password value + The secret needs to be in the same namespace as scrape object + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + password_file: + description: |- + PasswordFile defines path to password file at disk + must be pre-mounted + type: string + username: + description: |- + Username defines reference for secret with username value + The secret needs to be in the same namespace as scrape object + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string + type: object + bearer_token_file: description: File to read bearer token for scraping targets. type: string - bearerTokenSecret: + bearer_token_secret: description: |- 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. - nullable: true + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + bearerTokenFile: + description: BearerTokenFileS alias for BearerTokenFile + type: string + bearerTokenSecret: + description: BearerTokenSecretS alias for BearerTokenSecret properties: key: description: The key of the secret to select from. Must @@ -20390,10 +19092,21 @@ spec: follow_redirects: description: FollowRedirects controls redirects for scraping. type: boolean - honorLabels: + followRedirects: + description: FollowRedirects controls redirects for scraping. + type: boolean + honor_labels: description: HonorLabels chooses the metric's labels on collisions with target labels. type: boolean + honor_timestamps: + description: HonorTimestamps controls whether vmagent respects + the timestamps present in scraped data. + type: boolean + honorLabels: + description: HonorLabelsS chooses the metric's labels on collisions + with target labels. + type: boolean honorTimestamps: description: HonorTimestamps controls whether vmagent respects the timestamps present in scraped data. @@ -20405,7 +19118,7 @@ spec: description: MaxScrapeSize defines a maximum size of scraped data for a job type: string - metricRelabelConfigs: + metric_relabel_configs: description: MetricRelabelConfigs to apply to samples after scrapping. items: @@ -20482,128 +19195,8 @@ spec: type: string type: object type: array - oauth2: - description: OAuth2 defines auth configuration - properties: - client_id: - description: The secret or configmap containing the OAuth2 - client id - properties: - configMap: - description: ConfigMap containing data to use for the - targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - client_secret: - description: The secret containing the OAuth2 client secret - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - client_secret_file: - description: ClientSecretFile defines path for client secret - file. - type: string - endpoint_params: - additionalProperties: - type: string - description: Parameters to append to the token URL - type: object - scopes: - description: OAuth2 scopes used for the token request - items: - type: string - type: array - token_url: - description: The URL to fetch the token from - minLength: 1 - type: string - required: - - client_id - - token_url - type: object - params: - additionalProperties: - items: - type: string - type: array - description: Optional HTTP URL parameters - type: object - path: - description: HTTP path to scrape for metrics. - type: string - port: - description: Name of the port exposed at Pod. - type: string - proxyURL: - description: ProxyURL eg http://proxyserver:2195 Directs scrapes - to proxy through this endpoint. - type: string - relabelConfigs: - description: RelabelConfigs to apply to samples during service - discovery. + metricRelabelConfigs: + description: MetricRelabelConfigsS alias for MetricRelabelConfigs items: description: |- RelabelConfig allows dynamic rewriting of the label set @@ -20678,193 +19271,251 @@ spec: type: string type: object type: array - sampleLimit: - description: SampleLimit defines per-scrape limit on number - of scraped samples that will be accepted. - format: int64 - type: integer - scheme: - description: HTTP scheme to use for scraping. - enum: - - http - - https - type: string - scrape_interval: + metrics_path: description: |- - ScrapeInterval is the same as Interval and has priority over it. - one of scrape_interval or interval can be used + HTTP path to scrape for metrics. + alias for Path type: string - scrapeTimeout: - description: Timeout after which the scrape is ended + metricsPath: + description: MetricsPathS alias for Path type: string - seriesLimit: - description: |- - 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. - format: int64 - type: integer - targetPort: - anyOf: - - type: integer - - type: string - description: |- - TargetPort - Name or number of the pod port this endpoint refers to. Mutually exclusive with port. - x-kubernetes-int-or-string: true - tlsConfig: - description: TLSConfig configuration to use when scraping the - endpoint - properties: - ca: - description: Stuct containing the CA cert to use for the - targets. - properties: - configMap: - description: ConfigMap containing data to use for the - targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - caFile: - description: Path to the CA cert in the container to use - for the targets. - type: string - cert: - description: Struct containing the client cert file for - the targets. - properties: - configMap: - description: ConfigMap containing data to use for the - targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - certFile: - description: Path to the client cert file in the container - for the targets. - type: string - insecureSkipVerify: - description: Disable target certificate validation. - type: boolean - keyFile: - description: Path to the client key file in the container - for the targets. + oauth2: + description: OAuth2 defines auth configuration + x-kubernetes-preserve-unknown-fields: true + params: + additionalProperties: + items: type: string - keySecret: - description: Secret containing the client key file for the - targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. + type: array + description: Optional HTTP URL parameters + type: object + path: + description: HTTP path to scrape for metrics. + type: string + port: + description: Name of the port exposed at Pod. + type: string + proxy_url: + description: ProxyURL eg http://proxyserver:2195 Directs scrapes + to proxy through this endpoint. + type: string + proxyUrl: + description: ProxyURL eg http://proxyserver:2195 Directs scrapes + to proxy through this endpoint. + type: string + relabel_configs: + description: RelabelConfigs to apply to samples during service + discovery. + items: + description: |- + RelabelConfig allows dynamic rewriting of the label set + More info: https://docs.victoriametrics.com/#relabeling + properties: + action: + description: Action to perform based on regex matching. + Default is 'replace' + type: string + if: + description: 'If represents metricsQL match expression + (or list of expressions): ''{__name__=~"foo_.*"}''' + x-kubernetes-preserve-unknown-fields: true + labels: + additionalProperties: type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + description: 'Labels is used together with Match for `action: + graphite`' + type: object + match: + description: 'Match is used together with Labels for `action: + graphite`' + type: string + modulus: + description: Modulus to take of the hash of the source + label values. + format: int64 + type: integer + regex: + description: |- + Regular expression against which the extracted value is matched. Default is '(.*)' + victoriaMetrics supports multiline regex joined with | + https://docs.victoriametrics.com/vmagent/#relabeling-enhancements + x-kubernetes-preserve-unknown-fields: true + replacement: + description: |- + Replacement value against which a regex replace is performed if the + regular expression matches. Regex capture groups are available. Default is '$1' + type: string + separator: + 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 - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - serverName: - description: Used to verify the hostname for the targets. - type: string - type: object + type: array + sourceLabels: + description: |- + 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. + 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 + type: array + relabelConfigs: + description: RelabelConfigsS alias ofr RelabelConfigs + items: + description: |- + RelabelConfig allows dynamic rewriting of the label set + More info: https://docs.victoriametrics.com/#relabeling + properties: + action: + description: Action to perform based on regex matching. + Default is 'replace' + type: string + if: + description: 'If represents metricsQL match expression + (or list of expressions): ''{__name__=~"foo_.*"}''' + x-kubernetes-preserve-unknown-fields: true + labels: + additionalProperties: + type: string + description: 'Labels is used together with Match for `action: + graphite`' + type: object + match: + description: 'Match is used together with Labels for `action: + graphite`' + type: string + modulus: + description: Modulus to take of the hash of the source + label values. + format: int64 + type: integer + regex: + description: |- + Regular expression against which the extracted value is matched. Default is '(.*)' + victoriaMetrics supports multiline regex joined with | + https://docs.victoriametrics.com/vmagent/#relabeling-enhancements + x-kubernetes-preserve-unknown-fields: true + replacement: + description: |- + Replacement value against which a regex replace is performed if the + regular expression matches. Regex capture groups are available. Default is '$1' + type: string + separator: + 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 + using the configured separator and matched against the configured regular expression + for the replace, keep, and drop actions. + 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 + type: array + sample_limit: + description: SampleLimit defines per-scrape limit on number + of scraped samples that will be accepted. + format: int64 + type: integer + sampleLimit: + description: SampleLimit defines per-scrape limit on number + of scraped samples that will be accepted. + format: int64 + type: integer + scheme: + description: HTTP scheme to use for scraping. + enum: + - http + - https + - HTTPS + - HTTP + type: string + scrape_interval: + description: |- + ScrapeInterval is the same as Interval and has priority over it. + one of scrape_interval or interval can be used + type: string + scrape_timeout: + description: Timeout after which the scrape is ended + type: string + scrapeInterval: + description: ScrapeIntervalS is the same as ScrapeInterval and + has priority over it. + type: string + scrapeTimeout: + description: ScrapeTimeoutS after which the scrape is ended + type: string + series_limit: + description: |- + 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. + format: int64 + type: integer + seriesLimit: + description: |- + 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. + format: int64 + type: integer + targetPort: + anyOf: + - type: integer + - type: string + description: |- + TargetPort + Name or number of the pod port this endpoint refers to. Mutually exclusive with port. + x-kubernetes-int-or-string: true + tls_config: + description: TLSConfig configuration to use when scraping the + endpoint + x-kubernetes-preserve-unknown-fields: true + tlsConfig: + description: TLSConfigS alias for TLSConfig + x-kubernetes-preserve-unknown-fields: true vm_scrape_params: description: VMScrapeParams defines VictoriaMetrics specific scrape parameters @@ -20919,201 +19570,22 @@ spec: More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - password_file: - description: |- - PasswordFile defines path to password file at disk - must be pre-mounted - type: string - username: - description: |- - Username defines reference for secret with username value - The secret needs to be in the same namespace as scrape object - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - bearer_token: - description: SecretKeySelector selects a key of a Secret. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - bearer_token_file: - type: string - tls_config: - description: TLSConfig specifies TLSConfig configuration - parameters. - properties: - ca: - description: Stuct containing the CA cert to use - for the targets. - properties: - configMap: - description: ConfigMap containing data to use - for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for - the targets. - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - caFile: - description: Path to the CA cert in the container - to use for the targets. - type: string - cert: - description: Struct containing the client cert file - for the targets. - properties: - configMap: - description: ConfigMap containing data to use - for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for - the targets. - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic + description: Specify whether the Secret or its + key must be defined + type: boolean + required: + - key type: object - certFile: - description: Path to the client cert file in the - container for the targets. - type: string - insecureSkipVerify: - description: Disable target certificate validation. - type: boolean - keyFile: - description: Path to the client key file in the - container for the targets. + x-kubernetes-map-type: atomic + password_file: + description: |- + PasswordFile defines path to password file at disk + must be pre-mounted type: string - keySecret: - description: Secret containing the client key file - for the targets. + username: + description: |- + Username defines reference for secret with username value + The secret needs to be in the same namespace as scrape object properties: key: description: The key of the secret to select @@ -21136,11 +19608,40 @@ spec: - key type: object x-kubernetes-map-type: atomic - serverName: - description: Used to verify the hostname for the - targets. + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string + type: object + bearer_token: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key type: object + x-kubernetes-map-type: atomic + bearer_token_file: + type: string + tls_config: + x-kubernetes-preserve-unknown-fields: true type: object scrape_align_interval: type: string @@ -21314,14 +19815,14 @@ spec: - key type: object x-kubernetes-map-type: atomic - credentialsFile: + credentials_file: description: File with value for authorization type: string type: description: Type of authorization, default to bearer type: string type: object - basicAuth: + basic_auth: description: BasicAuth allow an endpoint to authenticate over basic authentication properties: @@ -21382,16 +19883,112 @@ spec: - key type: object x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string type: object - bearerTokenFile: + basicAuth: + description: BasicAuthS alias for BasicAuth + properties: + password: + description: |- + Password defines reference for secret with password value + The secret needs to be in the same namespace as scrape object + properties: + key: + description: The key of the secret to select from. Must be + a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be + defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + password_file: + description: |- + PasswordFile defines path to password file at disk + must be pre-mounted + type: string + username: + description: |- + Username defines reference for secret with username value + The secret needs to be in the same namespace as scrape object + properties: + key: + description: The key of the secret to select from. Must be + a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be + defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string + type: object + bearer_token_file: description: File to read bearer token for scraping targets. type: string - bearerTokenSecret: + bearer_token_secret: description: |- 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. - nullable: true + properties: + key: + description: The key of the secret to select from. Must be a + valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + bearerTokenFile: + description: BearerTokenFileS alias for BearerTokenFile + type: string + bearerTokenSecret: + description: BearerTokenSecretS alias for BearerTokenSecret properties: key: description: The key of the secret to select from. Must be a @@ -21416,10 +20013,21 @@ spec: follow_redirects: description: FollowRedirects controls redirects for scraping. type: boolean - honorLabels: + followRedirects: + description: FollowRedirects controls redirects for scraping. + type: boolean + honor_labels: description: HonorLabels chooses the metric's labels on collisions with target labels. type: boolean + honor_timestamps: + description: HonorTimestamps controls whether vmagent respects the + timestamps present in scraped data. + type: boolean + honorLabels: + description: HonorLabelsS chooses the metric's labels on collisions + with target labels. + type: boolean honorTimestamps: description: HonorTimestamps controls whether vmagent respects the timestamps present in scraped data. @@ -21434,7 +20042,7 @@ spec: description: MaxScrapeSize defines a maximum size of scraped data for a job type: string - metricRelabelConfigs: + metric_relabel_configs: description: MetricRelabelConfigs to apply to samples after scrapping. items: description: |- @@ -21510,112 +20118,99 @@ spec: type: string type: object type: array - module: - description: |- - 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 - type: string - oauth2: - description: OAuth2 defines auth configuration - properties: - client_id: - description: The secret or configmap containing the OAuth2 client - id - properties: - configMap: - description: ConfigMap containing data to use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - client_secret: - description: The secret containing the OAuth2 client secret - properties: - key: - description: The key of the secret to select from. Must be - a valid secret key. + metricRelabelConfigs: + description: MetricRelabelConfigs to apply to samples after scrapping. + items: + description: |- + RelabelConfig allows dynamic rewriting of the label set + More info: https://docs.victoriametrics.com/#relabeling + properties: + action: + description: Action to perform based on regex matching. Default + is 'replace' + type: string + if: + description: 'If represents metricsQL match expression (or list + of expressions): ''{__name__=~"foo_.*"}''' + x-kubernetes-preserve-unknown-fields: true + labels: + additionalProperties: + type: string + description: 'Labels is used together with Match for `action: + graphite`' + type: object + match: + description: 'Match is used together with Labels for `action: + graphite`' + type: string + modulus: + description: Modulus to take of the hash of the source label + values. + format: int64 + type: integer + regex: + description: |- + Regular expression against which the extracted value is matched. Default is '(.*)' + victoriaMetrics supports multiline regex joined with | + https://docs.victoriametrics.com/vmagent/#relabeling-enhancements + x-kubernetes-preserve-unknown-fields: true + replacement: + description: |- + Replacement value against which a regex replace is performed if the + regular expression matches. Regex capture groups are available. Default is '$1' + type: string + separator: + 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 - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: array + sourceLabels: + description: |- + 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. + items: type: string - optional: - description: Specify whether the Secret or its key must be - defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - client_secret_file: - description: ClientSecretFile defines path for client secret file. - type: string - endpoint_params: - additionalProperties: + 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 - description: Parameters to append to the token URL - type: object - scopes: - description: OAuth2 scopes used for the token request - items: + 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: array - token_url: - description: The URL to fetch the token from - minLength: 1 - type: string - required: - - client_id - - token_url - type: object + type: object + type: array + metrics_path: + description: |- + HTTP path to scrape for metrics. + alias for Path + type: string + metricsPath: + description: MetricsPathS alias for Path + type: string + module: + description: |- + 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 + type: string + oauth2: + description: OAuth2 defines auth configuration + x-kubernetes-preserve-unknown-fields: true params: additionalProperties: items: @@ -21626,10 +20221,19 @@ spec: path: description: HTTP path to scrape for metrics. type: string - proxyURL: + proxy_url: description: ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. type: string + proxyUrl: + description: ProxyURL eg http://proxyserver:2195 Directs scrapes to + proxy through this endpoint. + type: string + sample_limit: + description: SampleLimit defines per-scrape limit on number of scraped + samples that will be accepted. + format: int64 + type: integer sampleLimit: description: SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. @@ -21640,15 +20244,30 @@ spec: enum: - http - https + - HTTPS + - HTTP type: string scrape_interval: description: |- ScrapeInterval is the same as Interval and has priority over it. one of scrape_interval or interval can be used type: string - scrapeTimeout: + scrape_timeout: description: Timeout after which the scrape is ended type: string + scrapeInterval: + description: ScrapeIntervalS is the same as ScrapeInterval and has + priority over it. + type: string + scrapeTimeout: + description: ScrapeTimeoutS after which the scrape is ended + type: string + series_limit: + description: |- + 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. + format: int64 + type: integer seriesLimit: description: |- SeriesLimit defines per-scrape limit on number of unique time series @@ -21824,228 +20443,86 @@ spec: Default is 'replace' type: string if: - description: 'If represents metricsQL match expression - (or list of expressions): ''{__name__=~"foo_.*"}''' - x-kubernetes-preserve-unknown-fields: true - labels: - additionalProperties: - type: string - description: 'Labels is used together with Match for - `action: graphite`' - type: object - match: - description: 'Match is used together with Labels for - `action: graphite`' - type: string - modulus: - description: Modulus to take of the hash of the source - label values. - format: int64 - type: integer - regex: - description: |- - Regular expression against which the extracted value is matched. Default is '(.*)' - victoriaMetrics supports multiline regex joined with | - https://docs.victoriametrics.com/vmagent/#relabeling-enhancements - x-kubernetes-preserve-unknown-fields: true - replacement: - description: |- - Replacement value against which a regex replace is performed if the - regular expression matches. Regex capture groups are available. Default is '$1' - type: string - separator: - 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 - using the configured separator and matched against the configured regular expression - for the replace, keep, and drop actions. - 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 - type: array - targets: - description: Targets is a list of URLs to probe using the - configured prober. - items: - type: string - type: array - required: - - targets - type: object - type: object - tlsConfig: - description: TLSConfig configuration to use when scraping the endpoint - properties: - ca: - description: Stuct containing the CA cert to use for the targets. - properties: - configMap: - description: ConfigMap containing data to use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - caFile: - description: Path to the CA cert in the container to use for the - targets. - type: string - cert: - description: Struct containing the client cert file for the targets. - properties: - configMap: - description: ConfigMap containing data to use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - certFile: - description: Path to the client cert file in the container for - the targets. - type: string - insecureSkipVerify: - description: Disable target certificate validation. - type: boolean - keyFile: - description: Path to the client key file in the container for - the targets. - type: string - keySecret: - description: Secret containing the client key file for the targets. - properties: - key: - description: The key of the secret to select from. Must be - a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key must be - defined - type: boolean + description: 'If represents metricsQL match expression + (or list of expressions): ''{__name__=~"foo_.*"}''' + x-kubernetes-preserve-unknown-fields: true + labels: + additionalProperties: + type: string + description: 'Labels is used together with Match for + `action: graphite`' + type: object + match: + description: 'Match is used together with Labels for + `action: graphite`' + type: string + modulus: + description: Modulus to take of the hash of the source + label values. + format: int64 + type: integer + regex: + description: |- + Regular expression against which the extracted value is matched. Default is '(.*)' + victoriaMetrics supports multiline regex joined with | + https://docs.victoriametrics.com/vmagent/#relabeling-enhancements + x-kubernetes-preserve-unknown-fields: true + replacement: + description: |- + Replacement value against which a regex replace is performed if the + regular expression matches. Regex capture groups are available. Default is '$1' + type: string + separator: + 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 + using the configured separator and matched against the configured regular expression + for the replace, keep, and drop actions. + 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 + type: array + targets: + description: Targets is a list of URLs to probe using the + configured prober. + items: + type: string + type: array required: - - key + - targets type: object - x-kubernetes-map-type: atomic - serverName: - description: Used to verify the hostname for the targets. - type: string type: object + tls_config: + description: TLSConfig configuration to use when scraping the endpoint + x-kubernetes-preserve-unknown-fields: true + tlsConfig: + description: TLSConfigS alias for TLSConfig + x-kubernetes-preserve-unknown-fields: true vm_scrape_params: description: VMScrapeParams defines VictoriaMetrics specific scrape parameters @@ -22138,6 +20615,11 @@ spec: - key type: object x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string type: object bearer_token: description: SecretKeySelector selects a key of a Secret. @@ -22166,160 +20648,7 @@ spec: bearer_token_file: type: string tls_config: - description: TLSConfig specifies TLSConfig configuration parameters. - properties: - ca: - description: Stuct containing the CA cert to use for the - targets. - properties: - configMap: - description: ConfigMap containing data to use for - the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the - targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - caFile: - description: Path to the CA cert in the container to use - for the targets. - type: string - cert: - description: Struct containing the client cert file for - the targets. - properties: - configMap: - description: ConfigMap containing data to use for - the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the - targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - certFile: - description: Path to the client cert file in the container - for the targets. - type: string - insecureSkipVerify: - description: Disable target certificate validation. - type: boolean - keyFile: - description: Path to the client key file in the container - for the targets. - type: string - keySecret: - description: Secret containing the client key file for - the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - serverName: - description: Used to verify the hostname for the targets. - type: string - type: object + x-kubernetes-preserve-unknown-fields: true type: object scrape_align_interval: type: string @@ -22577,7 +20906,7 @@ spec: type: description: |- Type defines datasource type for enterprise version of vmalert - possible values - prometheus,graphite + possible values - prometheus,graphite,vlogs type: string required: - name @@ -22684,7 +21013,7 @@ spec: - key type: object x-kubernetes-map-type: atomic - credentialsFile: + credentials_file: description: File with value for authorization type: string type: @@ -22760,9 +21089,75 @@ spec: - subscriptionID type: object type: array + basic_auth: + description: BasicAuth allow an endpoint to authenticate over basic + authentication + properties: + password: + description: |- + Password defines reference for secret with password value + The secret needs to be in the same namespace as scrape object + properties: + key: + description: The key of the secret to select from. Must be + a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be + defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + password_file: + description: |- + PasswordFile defines path to password file at disk + must be pre-mounted + type: string + username: + description: |- + Username defines reference for secret with username value + The secret needs to be in the same namespace as scrape object + properties: + key: + description: The key of the secret to select from. Must be + a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be + defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string + type: object basicAuth: - description: BasicAuth allow an endpoint to authenticate over basic - authentication + description: BasicAuthS alias for BasicAuth properties: password: description: |- @@ -22821,16 +21216,46 @@ spec: - key type: object x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string type: object - bearerTokenFile: + bearer_token_file: description: File to read bearer token for scraping targets. type: string - bearerTokenSecret: + bearer_token_secret: description: |- 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. - nullable: true + properties: + key: + description: The key of the secret to select from. Must be a + valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + bearerTokenFile: + description: BearerTokenFileS alias for BearerTokenFile + type: string + bearerTokenSecret: + description: BearerTokenSecretS alias for BearerTokenSecret properties: key: description: The key of the secret to select from. Must be a @@ -22892,7 +21317,7 @@ spec: - key type: object x-kubernetes-map-type: atomic - credentialsFile: + credentials_file: description: File with value for authorization type: string type: @@ -22959,6 +21384,11 @@ spec: - key type: object x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string type: object datacenter: description: Consul Datacenter name, if not provided it will @@ -23063,11 +21493,93 @@ spec: description: ClientSecretFile defines path for client secret file. type: string + clientId: + description: The secret or configmap containing the OAuth2 + client id + properties: + configMap: + description: ConfigMap containing data to use for the + targets. + properties: + key: + description: The key to select. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the ConfigMap or its + key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + secret: + description: Secret containing data to use for the targets. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + clientSecret: + description: The secret containing the OAuth2 client secret + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic endpoint_params: additionalProperties: type: string description: Parameters to append to the token URL type: object + endpointParams: + additionalProperties: + type: string + description: Parameters to append to the token URL + type: object scopes: description: OAuth2 scopes used for the token request items: @@ -23075,11 +21587,13 @@ spec: type: array token_url: description: The URL to fetch the token from - minLength: 1 + type: string + tokenUrl: + description: The URL to fetch the token from type: string required: + - clientId - client_id - - token_url type: object partition: description: Admin Partitions are only supported in Consul Enterprise. @@ -23150,6 +21664,11 @@ spec: - key type: object x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string type: object bearer_token: description: SecretKeySelector selects a key of a Secret. @@ -23161,178 +21680,24 @@ spec: name: default: "" description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - bearer_token_file: - type: string - tls_config: - description: TLSConfig specifies TLSConfig configuration - parameters. - properties: - ca: - description: Stuct containing the CA cert to use for - the targets. - properties: - configMap: - description: ConfigMap containing data to use for - the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the - targets. - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - caFile: - description: Path to the CA cert in the container to - use for the targets. - type: string - cert: - description: Struct containing the client cert file - for the targets. - properties: - configMap: - description: ConfigMap containing data to use for - the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the - targets. - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - certFile: - description: Path to the client cert file in the container - for the targets. - type: string - insecureSkipVerify: - description: Disable target certificate validation. - type: boolean - keyFile: - description: Path to the client key file in the container - for the targets. - type: string - keySecret: - description: Secret containing the client key file for - the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - serverName: - description: Used to verify the hostname for the targets. + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key type: object + x-kubernetes-map-type: atomic + bearer_token_file: + type: string + tls_config: + x-kubernetes-preserve-unknown-fields: true type: object proxyURL: description: ProxyURL eg http://proxyserver:2195 Directs scrapes @@ -23424,6 +21789,10 @@ spec: type: object x-kubernetes-map-type: atomic type: object + ca_file: + description: Path to the CA cert in the container to use + for the targets. + type: string caFile: description: Path to the CA cert in the container to use for the targets. @@ -23481,13 +21850,49 @@ spec: type: object x-kubernetes-map-type: atomic type: object + cert_file: + description: Path to the client cert file in the container + for the targets. + type: string certFile: description: Path to the client cert file in the container for the targets. type: string + insecure_skip_verify: + description: Disable target certificate validation. + type: boolean insecureSkipVerify: description: Disable target certificate validation. type: boolean + key_file: + description: Path to the client key file in the container + for the targets. + type: string + key_secret: + description: Secret containing the client key file for the + targets. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic keyFile: description: Path to the client key file in the container for the targets. @@ -23517,6 +21922,9 @@ spec: - key type: object x-kubernetes-map-type: atomic + server_name: + description: Used to verify the hostname for the targets. + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -23586,7 +21994,7 @@ spec: - key type: object x-kubernetes-map-type: atomic - credentialsFile: + credentials_file: description: File with value for authorization type: string type: @@ -23681,44 +22089,16 @@ spec: description: ClientSecretFile defines path for client secret file. type: string - endpoint_params: - additionalProperties: - type: string - description: Parameters to append to the token URL - type: object - scopes: - description: OAuth2 scopes used for the token request - items: - type: string - type: array - token_url: - description: The URL to fetch the token from - minLength: 1 - type: string - required: - - client_id - - token_url - type: object - port: - description: The port to scrape metrics from. - type: integer - proxy_client_config: - description: |- - ProxyClientConfig configures proxy auth settings for scraping - See [feature description](https://docs.victoriametrics.com/vmagent#scraping-targets-via-a-proxy) - properties: - basic_auth: - description: BasicAuth allow an endpoint to authenticate - over basic authentication + clientId: + description: The secret or configmap containing the OAuth2 + client id properties: - password: - description: |- - Password defines reference for secret with password value - The secret needs to be in the same namespace as scrape object + configMap: + description: ConfigMap containing data to use for the + targets. properties: key: - description: The key of the secret to select from. Must - be a valid secret key. + description: The key to select. type: string name: default: "" @@ -23730,22 +22110,15 @@ spec: More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string optional: - description: Specify whether the Secret or its key - must be defined + description: Specify whether the ConfigMap or its + key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic - password_file: - description: |- - PasswordFile defines path to password file at disk - must be pre-mounted - type: string - username: - description: |- - Username defines reference for secret with username value - The secret needs to be in the same namespace as scrape object + secret: + description: Secret containing data to use for the targets. properties: key: description: The key of the secret to select from. Must @@ -23769,8 +22142,8 @@ spec: type: object x-kubernetes-map-type: atomic type: object - bearer_token: - description: SecretKeySelector selects a key of a Secret. + clientSecret: + description: The secret containing the OAuth2 client secret properties: key: description: The key of the secret to select from. Must @@ -23793,138 +22166,78 @@ spec: - key type: object x-kubernetes-map-type: atomic - bearer_token_file: + endpoint_params: + additionalProperties: + type: string + description: Parameters to append to the token URL + type: object + endpointParams: + additionalProperties: + type: string + description: Parameters to append to the token URL + type: object + scopes: + description: OAuth2 scopes used for the token request + items: + type: string + type: array + token_url: + description: The URL to fetch the token from type: string - tls_config: - description: TLSConfig specifies TLSConfig configuration - parameters. + tokenUrl: + description: The URL to fetch the token from + type: string + required: + - clientId + - client_id + type: object + port: + description: The port to scrape metrics from. + type: integer + proxy_client_config: + description: |- + ProxyClientConfig configures proxy auth settings for scraping + See [feature description](https://docs.victoriametrics.com/vmagent#scraping-targets-via-a-proxy) + properties: + basic_auth: + description: BasicAuth allow an endpoint to authenticate + over basic authentication properties: - ca: - description: Stuct containing the CA cert to use for - the targets. - properties: - configMap: - description: ConfigMap containing data to use for - the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the - targets. - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - caFile: - description: Path to the CA cert in the container to - use for the targets. - type: string - cert: - description: Struct containing the client cert file - for the targets. + password: + description: |- + Password defines reference for secret with password value + The secret needs to be in the same namespace as scrape object properties: - configMap: - description: ConfigMap containing data to use for - the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the - targets. - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key type: object - certFile: - description: Path to the client cert file in the container - for the targets. - type: string - insecureSkipVerify: - description: Disable target certificate validation. - type: boolean - keyFile: - description: Path to the client key file in the container - for the targets. + x-kubernetes-map-type: atomic + password_file: + description: |- + PasswordFile defines path to password file at disk + must be pre-mounted type: string - keySecret: - description: Secret containing the client key file for - the targets. + username: + description: |- + Username defines reference for secret with username value + The secret needs to be in the same namespace as scrape object properties: key: description: The key of the secret to select from. Must @@ -23947,10 +22260,40 @@ spec: - key type: object x-kubernetes-map-type: atomic - serverName: - description: Used to verify the hostname for the targets. + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string + type: object + bearer_token: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key type: object + x-kubernetes-map-type: atomic + bearer_token_file: + type: string + tls_config: + x-kubernetes-preserve-unknown-fields: true type: object proxyURL: description: ProxyURL eg http://proxyserver:2195 Directs scrapes @@ -24012,6 +22355,10 @@ spec: type: object x-kubernetes-map-type: atomic type: object + ca_file: + description: Path to the CA cert in the container to use + for the targets. + type: string caFile: description: Path to the CA cert in the container to use for the targets. @@ -24069,13 +22416,49 @@ spec: type: object x-kubernetes-map-type: atomic type: object + cert_file: + description: Path to the client cert file in the container + for the targets. + type: string certFile: description: Path to the client cert file in the container for the targets. type: string + insecure_skip_verify: + description: Disable target certificate validation. + type: boolean insecureSkipVerify: description: Disable target certificate validation. type: boolean + key_file: + description: Path to the client key file in the container + for the targets. + type: string + key_secret: + description: Secret containing the client key file for the + targets. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic keyFile: description: Path to the client key file in the container for the targets. @@ -24105,6 +22488,9 @@ spec: - key type: object x-kubernetes-map-type: atomic + server_name: + description: Used to verify the hostname for the targets. + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -24255,6 +22641,9 @@ spec: follow_redirects: description: FollowRedirects controls redirects for scraping. type: boolean + followRedirects: + description: FollowRedirects controls redirects for scraping. + type: boolean gceSDConfigs: description: GCESDConfigs defines a list of GCE service discovery configurations. @@ -24298,10 +22687,18 @@ spec: - zone type: object type: array - honorLabels: + honor_labels: description: HonorLabels chooses the metric's labels on collisions with target labels. type: boolean + honor_timestamps: + description: HonorTimestamps controls whether vmagent respects the + timestamps present in scraped data. + type: boolean + honorLabels: + description: HonorLabelsS chooses the metric's labels on collisions + with target labels. + type: boolean honorTimestamps: description: HonorTimestamps controls whether vmagent respects the timestamps present in scraped data. @@ -24341,7 +22738,7 @@ spec: - key type: object x-kubernetes-map-type: atomic - credentialsFile: + credentials_file: description: File with value for authorization type: string type: @@ -24408,6 +22805,11 @@ spec: - key type: object x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string type: object proxy_client_config: description: |- @@ -24428,210 +22830,31 @@ spec: be a valid secret key. type: string name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - password_file: - description: |- - PasswordFile defines path to password file at disk - must be pre-mounted - type: string - username: - description: |- - Username defines reference for secret with username value - The secret needs to be in the same namespace as scrape object - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - bearer_token: - description: SecretKeySelector selects a key of a Secret. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - bearer_token_file: - type: string - tls_config: - description: TLSConfig specifies TLSConfig configuration - parameters. - properties: - ca: - description: Stuct containing the CA cert to use for - the targets. - properties: - configMap: - description: ConfigMap containing data to use for - the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the - targets. - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - caFile: - description: Path to the CA cert in the container to - use for the targets. - type: string - cert: - description: Struct containing the client cert file - for the targets. - properties: - configMap: - description: ConfigMap containing data to use for - the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the - targets. - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key type: object - certFile: - description: Path to the client cert file in the container - for the targets. - type: string - insecureSkipVerify: - description: Disable target certificate validation. - type: boolean - keyFile: - description: Path to the client key file in the container - for the targets. + x-kubernetes-map-type: atomic + password_file: + description: |- + PasswordFile defines path to password file at disk + must be pre-mounted type: string - keySecret: - description: Secret containing the client key file for - the targets. + username: + description: |- + Username defines reference for secret with username value + The secret needs to be in the same namespace as scrape object properties: key: description: The key of the secret to select from. Must @@ -24654,10 +22877,40 @@ spec: - key type: object x-kubernetes-map-type: atomic - serverName: - description: Used to verify the hostname for the targets. + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string + type: object + bearer_token: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key type: object + x-kubernetes-map-type: atomic + bearer_token_file: + type: string + tls_config: + x-kubernetes-preserve-unknown-fields: true type: object proxyURL: description: ProxyURL eg http://proxyserver:2195 Directs scrapes @@ -24719,6 +22972,10 @@ spec: type: object x-kubernetes-map-type: atomic type: object + ca_file: + description: Path to the CA cert in the container to use + for the targets. + type: string caFile: description: Path to the CA cert in the container to use for the targets. @@ -24776,13 +23033,49 @@ spec: type: object x-kubernetes-map-type: atomic type: object + cert_file: + description: Path to the client cert file in the container + for the targets. + type: string certFile: description: Path to the client cert file in the container for the targets. type: string + insecure_skip_verify: + description: Disable target certificate validation. + type: boolean insecureSkipVerify: description: Disable target certificate validation. type: boolean + key_file: + description: Path to the client key file in the container + for the targets. + type: string + key_secret: + description: Secret containing the client key file for the + targets. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic keyFile: description: Path to the client key file in the container for the targets. @@ -24812,6 +23105,9 @@ spec: - key type: object x-kubernetes-map-type: atomic + server_name: + description: Used to verify the hostname for the targets. + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -24881,7 +23177,7 @@ spec: - key type: object x-kubernetes-map-type: atomic - credentialsFile: + credentials_file: description: File with value for authorization type: string type: @@ -24948,6 +23244,11 @@ spec: - key type: object x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string type: object followRedirects: description: Configure whether HTTP requests follow HTTP 3xx @@ -25053,41 +23354,16 @@ spec: description: ClientSecretFile defines path for client secret file. type: string - endpoint_params: - additionalProperties: - type: string - description: Parameters to append to the token URL - type: object - scopes: - description: OAuth2 scopes used for the token request - items: - type: string - type: array - token_url: - description: The URL to fetch the token from - minLength: 1 - type: string - required: - - client_id - - token_url - type: object - proxy_client_config: - description: |- - ProxyClientConfig configures proxy auth settings for scraping - See [feature description](https://docs.victoriametrics.com/vmagent#scraping-targets-via-a-proxy) - properties: - basic_auth: - description: BasicAuth allow an endpoint to authenticate - over basic authentication + clientId: + description: The secret or configmap containing the OAuth2 + client id properties: - password: - description: |- - Password defines reference for secret with password value - The secret needs to be in the same namespace as scrape object + configMap: + description: ConfigMap containing data to use for the + targets. properties: key: - description: The key of the secret to select from. Must - be a valid secret key. + description: The key to select. type: string name: default: "" @@ -25099,22 +23375,15 @@ spec: More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string optional: - description: Specify whether the Secret or its key - must be defined + description: Specify whether the ConfigMap or its + key must be defined type: boolean required: - key type: object x-kubernetes-map-type: atomic - password_file: - description: |- - PasswordFile defines path to password file at disk - must be pre-mounted - type: string - username: - description: |- - Username defines reference for secret with username value - The secret needs to be in the same namespace as scrape object + secret: + description: Secret containing data to use for the targets. properties: key: description: The key of the secret to select from. Must @@ -25138,8 +23407,8 @@ spec: type: object x-kubernetes-map-type: atomic type: object - bearer_token: - description: SecretKeySelector selects a key of a Secret. + clientSecret: + description: The secret containing the OAuth2 client secret properties: key: description: The key of the secret to select from. Must @@ -25162,138 +23431,75 @@ spec: - key type: object x-kubernetes-map-type: atomic - bearer_token_file: - type: string - tls_config: - description: TLSConfig specifies TLSConfig configuration - parameters. - properties: - ca: - description: Stuct containing the CA cert to use for - the targets. - properties: - configMap: - description: ConfigMap containing data to use for - the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the - targets. - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - caFile: - description: Path to the CA cert in the container to - use for the targets. - type: string - cert: - description: Struct containing the client cert file - for the targets. - properties: - configMap: - description: ConfigMap containing data to use for - the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the - targets. - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic + endpoint_params: + additionalProperties: + type: string + description: Parameters to append to the token URL + type: object + endpointParams: + additionalProperties: + type: string + description: Parameters to append to the token URL + type: object + scopes: + description: OAuth2 scopes used for the token request + items: + type: string + type: array + token_url: + description: The URL to fetch the token from + type: string + tokenUrl: + description: The URL to fetch the token from + type: string + required: + - clientId + - client_id + type: object + proxy_client_config: + description: |- + ProxyClientConfig configures proxy auth settings for scraping + See [feature description](https://docs.victoriametrics.com/vmagent#scraping-targets-via-a-proxy) + properties: + basic_auth: + description: BasicAuth allow an endpoint to authenticate + over basic authentication + properties: + password: + description: |- + Password defines reference for secret with password value + The secret needs to be in the same namespace as scrape object + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key type: object - certFile: - description: Path to the client cert file in the container - for the targets. - type: string - insecureSkipVerify: - description: Disable target certificate validation. - type: boolean - keyFile: - description: Path to the client key file in the container - for the targets. + x-kubernetes-map-type: atomic + password_file: + description: |- + PasswordFile defines path to password file at disk + must be pre-mounted type: string - keySecret: - description: Secret containing the client key file for - the targets. + username: + description: |- + Username defines reference for secret with username value + The secret needs to be in the same namespace as scrape object properties: key: description: The key of the secret to select from. Must @@ -25316,10 +23522,40 @@ spec: - key type: object x-kubernetes-map-type: atomic - serverName: - description: Used to verify the hostname for the targets. + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string + type: object + bearer_token: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key type: object + x-kubernetes-map-type: atomic + bearer_token_file: + type: string + tls_config: + x-kubernetes-preserve-unknown-fields: true type: object proxyURL: description: ProxyURL eg http://proxyserver:2195 Directs scrapes @@ -25403,6 +23639,10 @@ spec: type: object x-kubernetes-map-type: atomic type: object + ca_file: + description: Path to the CA cert in the container to use + for the targets. + type: string caFile: description: Path to the CA cert in the container to use for the targets. @@ -25460,13 +23700,49 @@ spec: type: object x-kubernetes-map-type: atomic type: object + cert_file: + description: Path to the client cert file in the container + for the targets. + type: string certFile: description: Path to the client cert file in the container for the targets. type: string + insecure_skip_verify: + description: Disable target certificate validation. + type: boolean insecureSkipVerify: description: Disable target certificate validation. type: boolean + key_file: + description: Path to the client key file in the container + for the targets. + type: string + key_secret: + description: Secret containing the client key file for the + targets. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic keyFile: description: Path to the client key file in the container for the targets. @@ -25496,6 +23772,9 @@ spec: - key type: object x-kubernetes-map-type: atomic + server_name: + description: Used to verify the hostname for the targets. + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -25508,7 +23787,7 @@ spec: description: MaxScrapeSize defines a maximum size of scraped data for a job type: string - metricRelabelConfigs: + metric_relabel_configs: description: MetricRelabelConfigs to apply to samples after scrapping. items: description: |- @@ -25584,106 +23863,93 @@ spec: type: string type: object type: array - oauth2: - description: OAuth2 defines auth configuration - properties: - client_id: - description: The secret or configmap containing the OAuth2 client - id - properties: - configMap: - description: ConfigMap containing data to use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - client_secret: - description: The secret containing the OAuth2 client secret - properties: - key: - description: The key of the secret to select from. Must be - a valid secret key. + metricRelabelConfigs: + description: MetricRelabelConfigsS alias for MetricRelabelConfigs + items: + description: |- + RelabelConfig allows dynamic rewriting of the label set + More info: https://docs.victoriametrics.com/#relabeling + properties: + action: + description: Action to perform based on regex matching. Default + is 'replace' + type: string + if: + description: 'If represents metricsQL match expression (or list + of expressions): ''{__name__=~"foo_.*"}''' + x-kubernetes-preserve-unknown-fields: true + labels: + additionalProperties: type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + description: 'Labels is used together with Match for `action: + graphite`' + type: object + match: + description: 'Match is used together with Labels for `action: + graphite`' + type: string + modulus: + description: Modulus to take of the hash of the source label + values. + format: int64 + type: integer + regex: + description: |- + Regular expression against which the extracted value is matched. Default is '(.*)' + victoriaMetrics supports multiline regex joined with | + https://docs.victoriametrics.com/vmagent/#relabeling-enhancements + x-kubernetes-preserve-unknown-fields: true + replacement: + description: |- + Replacement value against which a regex replace is performed if the + regular expression matches. Regex capture groups are available. Default is '$1' + type: string + separator: + 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 - optional: - description: Specify whether the Secret or its key must be - defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - client_secret_file: - description: ClientSecretFile defines path for client secret file. - type: string - endpoint_params: - additionalProperties: + type: array + sourceLabels: + description: |- + 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. + 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 - description: Parameters to append to the token URL - type: object - scopes: - description: OAuth2 scopes used for the token request - items: + 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: array - token_url: - description: The URL to fetch the token from - minLength: 1 - type: string - required: - - client_id - - token_url - type: object + type: object + type: array + metrics_path: + description: |- + HTTP path to scrape for metrics. + alias for Path + type: string + metricsPath: + description: MetricsPathS alias for Path + type: string + oauth2: + description: OAuth2 defines auth configuration + x-kubernetes-preserve-unknown-fields: true openstackSDConfigs: description: OpenStackSDConfigs defines a list of OpenStack service discovery configurations. @@ -25865,6 +24131,10 @@ spec: type: object x-kubernetes-map-type: atomic type: object + ca_file: + description: Path to the CA cert in the container to use + for the targets. + type: string caFile: description: Path to the CA cert in the container to use for the targets. @@ -25922,13 +24192,49 @@ spec: type: object x-kubernetes-map-type: atomic type: object + cert_file: + description: Path to the client cert file in the container + for the targets. + type: string certFile: description: Path to the client cert file in the container for the targets. type: string + insecure_skip_verify: + description: Disable target certificate validation. + type: boolean insecureSkipVerify: description: Disable target certificate validation. type: boolean + key_file: + description: Path to the client key file in the container + for the targets. + type: string + key_secret: + description: Secret containing the client key file for the + targets. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic keyFile: description: Path to the client key file in the container for the targets. @@ -25958,6 +24264,9 @@ spec: - key type: object x-kubernetes-map-type: atomic + server_name: + description: Used to verify the hostname for the targets. + type: string serverName: description: Used to verify the hostname for the targets. type: string @@ -25987,11 +24296,15 @@ spec: path: description: HTTP path to scrape for metrics. type: string - proxyURL: + proxy_url: description: ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. type: string - relabelConfigs: + proxyUrl: + description: ProxyURL eg http://proxyserver:2195 Directs scrapes to + proxy through this endpoint. + type: string + relabel_configs: description: RelabelConfigs to apply to samples during service discovery. items: description: |- @@ -26067,6 +24380,87 @@ spec: type: string type: object type: array + relabelConfigs: + description: RelabelConfigsS alias ofr RelabelConfigs + items: + description: |- + RelabelConfig allows dynamic rewriting of the label set + More info: https://docs.victoriametrics.com/#relabeling + properties: + action: + description: Action to perform based on regex matching. Default + is 'replace' + type: string + if: + description: 'If represents metricsQL match expression (or list + of expressions): ''{__name__=~"foo_.*"}''' + x-kubernetes-preserve-unknown-fields: true + labels: + additionalProperties: + type: string + description: 'Labels is used together with Match for `action: + graphite`' + type: object + match: + description: 'Match is used together with Labels for `action: + graphite`' + type: string + modulus: + description: Modulus to take of the hash of the source label + values. + format: int64 + type: integer + regex: + description: |- + Regular expression against which the extracted value is matched. Default is '(.*)' + victoriaMetrics supports multiline regex joined with | + https://docs.victoriametrics.com/vmagent/#relabeling-enhancements + x-kubernetes-preserve-unknown-fields: true + replacement: + description: |- + Replacement value against which a regex replace is performed if the + regular expression matches. Regex capture groups are available. Default is '$1' + type: string + separator: + 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 + using the configured separator and matched against the configured regular expression + for the replace, keep, and drop actions. + 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 + type: array + sample_limit: + description: SampleLimit defines per-scrape limit on number of scraped + samples that will be accepted. + format: int64 + type: integer sampleLimit: description: SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. @@ -26077,15 +24471,30 @@ spec: enum: - http - https + - HTTPS + - HTTP type: string scrape_interval: description: |- ScrapeInterval is the same as Interval and has priority over it. one of scrape_interval or interval can be used type: string - scrapeTimeout: + scrape_timeout: description: Timeout after which the scrape is ended type: string + scrapeInterval: + description: ScrapeIntervalS is the same as ScrapeInterval and has + priority over it. + type: string + scrapeTimeout: + description: ScrapeTimeoutS after which the scrape is ended + type: string + series_limit: + description: |- + 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. + format: int64 + type: integer seriesLimit: description: |- SeriesLimit defines per-scrape limit on number of unique time series @@ -26098,170 +24507,28 @@ spec: items: description: |- StaticConfig defines a static configuration. - See [here](https://docs.victoriametrics.com/sd_configs#static_configs) - properties: - labels: - additionalProperties: - type: string - description: Labels assigned to all metrics scraped from the - targets. - type: object - x-kubernetes-map-type: atomic - targets: - description: List of targets for this static configuration. - items: - type: string - type: array - type: object - type: array - tlsConfig: - description: TLSConfig configuration to use when scraping the endpoint - properties: - ca: - description: Stuct containing the CA cert to use for the targets. - properties: - configMap: - description: ConfigMap containing data to use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - caFile: - description: Path to the CA cert in the container to use for the - targets. - type: string - cert: - description: Struct containing the client cert file for the targets. - properties: - configMap: - description: ConfigMap containing data to use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - certFile: - description: Path to the client cert file in the container for - the targets. - type: string - insecureSkipVerify: - description: Disable target certificate validation. - type: boolean - keyFile: - description: Path to the client key file in the container for - the targets. - type: string - keySecret: - description: Secret containing the client key file for the targets. - properties: - key: - description: The key of the secret to select from. Must be - a valid secret key. + See [here](https://docs.victoriametrics.com/sd_configs#static_configs) + properties: + labels: + additionalProperties: type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + description: Labels assigned to all metrics scraped from the + targets. + type: object + x-kubernetes-map-type: atomic + targets: + description: List of targets for this static configuration. + items: type: string - optional: - description: Specify whether the Secret or its key must be - defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - serverName: - description: Used to verify the hostname for the targets. - type: string - type: object + type: array + type: object + type: array + tls_config: + description: TLSConfig configuration to use when scraping the endpoint + x-kubernetes-preserve-unknown-fields: true + tlsConfig: + description: TLSConfigS alias for TLSConfig + x-kubernetes-preserve-unknown-fields: true vm_scrape_params: description: VMScrapeParams defines VictoriaMetrics specific scrape parameters @@ -26354,6 +24621,11 @@ spec: - key type: object x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string type: object bearer_token: description: SecretKeySelector selects a key of a Secret. @@ -26382,160 +24654,7 @@ spec: bearer_token_file: type: string tls_config: - description: TLSConfig specifies TLSConfig configuration parameters. - properties: - ca: - description: Stuct containing the CA cert to use for the - targets. - properties: - configMap: - description: ConfigMap containing data to use for - the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the - targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - caFile: - description: Path to the CA cert in the container to use - for the targets. - type: string - cert: - description: Struct containing the client cert file for - the targets. - properties: - configMap: - description: ConfigMap containing data to use for - the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the - targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - certFile: - description: Path to the client cert file in the container - for the targets. - type: string - insecureSkipVerify: - description: Disable target certificate validation. - type: boolean - keyFile: - description: Path to the client key file in the container - for the targets. - type: string - keySecret: - description: Secret containing the client key file for - the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - serverName: - description: Used to verify the hostname for the targets. - type: string - type: object + x-kubernetes-preserve-unknown-fields: true type: object scrape_align_interval: type: string @@ -26680,14 +24799,14 @@ spec: - key type: object x-kubernetes-map-type: atomic - credentialsFile: + credentials_file: description: File with value for authorization type: string type: description: Type of authorization, default to bearer type: string type: object - basicAuth: + basic_auth: description: BasicAuth allow an endpoint to authenticate over basic authentication properties: @@ -26748,16 +24867,113 @@ spec: - key type: object x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string type: object - bearerTokenFile: + basicAuth: + description: BasicAuthS alias for BasicAuth + properties: + password: + description: |- + Password defines reference for secret with password value + The secret needs to be in the same namespace as scrape object + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + password_file: + description: |- + PasswordFile defines path to password file at disk + must be pre-mounted + type: string + username: + description: |- + Username defines reference for secret with username value + The secret needs to be in the same namespace as scrape object + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string + type: object + bearer_token_file: description: File to read bearer token for scraping targets. type: string - bearerTokenSecret: + bearer_token_secret: description: |- 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. - nullable: true + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + bearerTokenFile: + description: BearerTokenFileS alias for BearerTokenFile + type: string + bearerTokenSecret: + description: BearerTokenSecretS alias for BearerTokenSecret properties: key: description: The key of the secret to select from. Must @@ -26783,8 +24999,19 @@ spec: follow_redirects: description: FollowRedirects controls redirects for scraping. type: boolean + followRedirects: + description: FollowRedirects controls redirects for scraping. + type: boolean + honor_labels: + description: HonorLabels chooses the metric's labels on collisions + with target labels. + type: boolean + honor_timestamps: + description: HonorTimestamps controls whether vmagent respects + the timestamps present in scraped data. + type: boolean honorLabels: - description: HonorLabels chooses the metric's labels on collisions + description: HonorLabelsS chooses the metric's labels on collisions with target labels. type: boolean honorTimestamps: @@ -26798,7 +25025,7 @@ spec: description: MaxScrapeSize defines a maximum size of scraped data for a job type: string - metricRelabelConfigs: + metric_relabel_configs: description: MetricRelabelConfigs to apply to samples after scrapping. items: @@ -26875,108 +25102,93 @@ spec: type: string type: object type: array - oauth2: - description: OAuth2 defines auth configuration - properties: - client_id: - description: The secret or configmap containing the OAuth2 - client id - properties: - configMap: - description: ConfigMap containing data to use for the - targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - client_secret: - description: The secret containing the OAuth2 client secret - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. + metricRelabelConfigs: + description: MetricRelabelConfigsS alias for MetricRelabelConfigs + items: + description: |- + RelabelConfig allows dynamic rewriting of the label set + More info: https://docs.victoriametrics.com/#relabeling + properties: + action: + description: Action to perform based on regex matching. + Default is 'replace' + type: string + if: + description: 'If represents metricsQL match expression + (or list of expressions): ''{__name__=~"foo_.*"}''' + x-kubernetes-preserve-unknown-fields: true + labels: + additionalProperties: type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + description: 'Labels is used together with Match for `action: + graphite`' + type: object + match: + description: 'Match is used together with Labels for `action: + graphite`' + type: string + modulus: + description: Modulus to take of the hash of the source + label values. + format: int64 + type: integer + regex: + description: |- + Regular expression against which the extracted value is matched. Default is '(.*)' + victoriaMetrics supports multiline regex joined with | + https://docs.victoriametrics.com/vmagent/#relabeling-enhancements + x-kubernetes-preserve-unknown-fields: true + replacement: + description: |- + Replacement value against which a regex replace is performed if the + regular expression matches. Regex capture groups are available. Default is '$1' + type: string + separator: + 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 - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - client_secret_file: - description: ClientSecretFile defines path for client secret - file. - type: string - endpoint_params: - additionalProperties: + type: array + sourceLabels: + description: |- + 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. + 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 - description: Parameters to append to the token URL - type: object - scopes: - description: OAuth2 scopes used for the token request - items: + 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: array - token_url: - description: The URL to fetch the token from - minLength: 1 - type: string - required: - - client_id - - token_url - type: object + type: object + type: array + metrics_path: + description: |- + HTTP path to scrape for metrics. + alias for Path + type: string + metricsPath: + description: MetricsPathS alias for Path + type: string + oauth2: + description: OAuth2 defines auth configuration + x-kubernetes-preserve-unknown-fields: true params: additionalProperties: items: @@ -26990,13 +25202,93 @@ spec: port: description: Name of the port exposed at Service. type: string - proxyURL: + proxy_url: + description: ProxyURL eg http://proxyserver:2195 Directs scrapes + to proxy through this endpoint. + type: string + proxyUrl: description: ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. type: string + relabel_configs: + description: RelabelConfigs to apply to samples during service + discovery. + items: + description: |- + RelabelConfig allows dynamic rewriting of the label set + More info: https://docs.victoriametrics.com/#relabeling + properties: + action: + description: Action to perform based on regex matching. + Default is 'replace' + type: string + if: + description: 'If represents metricsQL match expression + (or list of expressions): ''{__name__=~"foo_.*"}''' + x-kubernetes-preserve-unknown-fields: true + labels: + additionalProperties: + type: string + description: 'Labels is used together with Match for `action: + graphite`' + type: object + match: + description: 'Match is used together with Labels for `action: + graphite`' + type: string + modulus: + description: Modulus to take of the hash of the source + label values. + format: int64 + type: integer + regex: + description: |- + Regular expression against which the extracted value is matched. Default is '(.*)' + victoriaMetrics supports multiline regex joined with | + https://docs.victoriametrics.com/vmagent/#relabeling-enhancements + x-kubernetes-preserve-unknown-fields: true + replacement: + description: |- + Replacement value against which a regex replace is performed if the + regular expression matches. Regex capture groups are available. Default is '$1' + type: string + separator: + 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 + using the configured separator and matched against the configured regular expression + for the replace, keep, and drop actions. + 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 + type: array relabelConfigs: - description: RelabelConfigs to apply to samples during service - discovery. + description: RelabelConfigsS alias ofr RelabelConfigs items: description: |- RelabelConfig allows dynamic rewriting of the label set @@ -27071,6 +25363,11 @@ spec: type: string type: object type: array + sample_limit: + description: SampleLimit defines per-scrape limit on number + of scraped samples that will be accepted. + format: int64 + type: integer sampleLimit: description: SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. @@ -27081,15 +25378,30 @@ spec: enum: - http - https + - HTTPS + - HTTP type: string scrape_interval: description: |- ScrapeInterval is the same as Interval and has priority over it. one of scrape_interval or interval can be used type: string - scrapeTimeout: + scrape_timeout: description: Timeout after which the scrape is ended type: string + scrapeInterval: + description: ScrapeIntervalS is the same as ScrapeInterval and + has priority over it. + type: string + scrapeTimeout: + description: ScrapeTimeoutS after which the scrape is ended + type: string + series_limit: + description: |- + 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. + format: int64 + type: integer seriesLimit: description: |- SeriesLimit defines per-scrape limit on number of unique time series @@ -27104,160 +25416,13 @@ spec: TargetPort Name or number of the pod port this endpoint refers to. Mutually exclusive with port. x-kubernetes-int-or-string: true - tlsConfig: + tls_config: description: TLSConfig configuration to use when scraping the endpoint - properties: - ca: - description: Stuct containing the CA cert to use for the - targets. - properties: - configMap: - description: ConfigMap containing data to use for the - targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - caFile: - description: Path to the CA cert in the container to use - for the targets. - type: string - cert: - description: Struct containing the client cert file for - the targets. - properties: - configMap: - description: ConfigMap containing data to use for the - targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - certFile: - description: Path to the client cert file in the container - for the targets. - type: string - insecureSkipVerify: - description: Disable target certificate validation. - type: boolean - keyFile: - description: Path to the client key file in the container - for the targets. - type: string - keySecret: - description: Secret containing the client key file for the - targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - serverName: - description: Used to verify the hostname for the targets. - type: string - type: object + x-kubernetes-preserve-unknown-fields: true + tlsConfig: + description: TLSConfigS alias for TLSConfig + x-kubernetes-preserve-unknown-fields: true vm_scrape_params: description: VMScrapeParams defines VictoriaMetrics specific scrape parameters @@ -27350,6 +25515,11 @@ spec: - key type: object x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string type: object bearer_token: description: SecretKeySelector selects a key of a Secret. @@ -27378,162 +25548,7 @@ spec: bearer_token_file: type: string tls_config: - description: TLSConfig specifies TLSConfig configuration - parameters. - properties: - ca: - description: Stuct containing the CA cert to use - for the targets. - properties: - configMap: - description: ConfigMap containing data to use - for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for - the targets. - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - caFile: - description: Path to the CA cert in the container - to use for the targets. - type: string - cert: - description: Struct containing the client cert file - for the targets. - properties: - configMap: - description: ConfigMap containing data to use - for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for - the targets. - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - certFile: - description: Path to the client cert file in the - container for the targets. - type: string - insecureSkipVerify: - description: Disable target certificate validation. - type: boolean - keyFile: - description: Path to the client key file in the - container for the targets. - type: string - keySecret: - description: Secret containing the client key file - for the targets. - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - serverName: - description: Used to verify the hostname for the - targets. - type: string - type: object + x-kubernetes-preserve-unknown-fields: true type: object scrape_align_interval: type: string @@ -29411,8 +27426,45 @@ spec: authorization: description: Authorization with http header Authorization properties: - credentials: - description: Reference to the secret with value for authorization + credentials: + description: Reference to the secret with value for authorization + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + credentials_file: + description: File with value for authorization + type: string + type: + description: Type of authorization, default to bearer + type: string + type: object + basic_auth: + description: BasicAuth allow an endpoint to authenticate over + basic authentication + properties: + password: + description: |- + Password defines reference for secret with password value + The secret needs to be in the same namespace as scrape object properties: key: description: The key of the secret to select from. Must @@ -29435,16 +27487,45 @@ spec: - key type: object x-kubernetes-map-type: atomic - credentialsFile: - description: File with value for authorization + password_file: + description: |- + PasswordFile defines path to password file at disk + must be pre-mounted type: string - type: - description: Type of authorization, default to bearer + username: + description: |- + Username defines reference for secret with username value + The secret needs to be in the same namespace as scrape object + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted type: string type: object basicAuth: - description: BasicAuth allow an endpoint to authenticate over - basic authentication + description: BasicAuthS alias for BasicAuth properties: password: description: |- @@ -29503,16 +27584,47 @@ spec: - key type: object x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string type: object - bearerTokenFile: + bearer_token_file: description: File to read bearer token for scraping targets. type: string - bearerTokenSecret: + bearer_token_secret: description: |- 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. - nullable: true + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + bearerTokenFile: + description: BearerTokenFileS alias for BearerTokenFile + type: string + bearerTokenSecret: + description: BearerTokenSecretS alias for BearerTokenSecret properties: key: description: The key of the secret to select from. Must @@ -29538,10 +27650,21 @@ spec: follow_redirects: description: FollowRedirects controls redirects for scraping. type: boolean - honorLabels: + followRedirects: + description: FollowRedirects controls redirects for scraping. + type: boolean + honor_labels: description: HonorLabels chooses the metric's labels on collisions with target labels. type: boolean + honor_timestamps: + description: HonorTimestamps controls whether vmagent respects + the timestamps present in scraped data. + type: boolean + honorLabels: + description: HonorLabelsS chooses the metric's labels on collisions + with target labels. + type: boolean honorTimestamps: description: HonorTimestamps controls whether vmagent respects the timestamps present in scraped data. @@ -29558,7 +27681,7 @@ spec: description: MaxScrapeSize defines a maximum size of scraped data for a job type: string - metricRelabelConfigs: + metric_relabel_configs: description: MetricRelabelConfigs to apply to samples after scrapping. items: @@ -29635,108 +27758,93 @@ spec: type: string type: object type: array - oauth2: - description: OAuth2 defines auth configuration - properties: - client_id: - description: The secret or configmap containing the OAuth2 - client id - properties: - configMap: - description: ConfigMap containing data to use for the - targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - client_secret: - description: The secret containing the OAuth2 client secret - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. + metricRelabelConfigs: + description: MetricRelabelConfigsS alias for MetricRelabelConfigs + items: + description: |- + RelabelConfig allows dynamic rewriting of the label set + More info: https://docs.victoriametrics.com/#relabeling + properties: + action: + description: Action to perform based on regex matching. + Default is 'replace' + type: string + if: + description: 'If represents metricsQL match expression + (or list of expressions): ''{__name__=~"foo_.*"}''' + x-kubernetes-preserve-unknown-fields: true + labels: + additionalProperties: type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + description: 'Labels is used together with Match for `action: + graphite`' + type: object + match: + description: 'Match is used together with Labels for `action: + graphite`' + type: string + modulus: + description: Modulus to take of the hash of the source + label values. + format: int64 + type: integer + regex: + description: |- + Regular expression against which the extracted value is matched. Default is '(.*)' + victoriaMetrics supports multiline regex joined with | + https://docs.victoriametrics.com/vmagent/#relabeling-enhancements + x-kubernetes-preserve-unknown-fields: true + replacement: + description: |- + Replacement value against which a regex replace is performed if the + regular expression matches. Regex capture groups are available. Default is '$1' + type: string + separator: + 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 - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - client_secret_file: - description: ClientSecretFile defines path for client secret - file. - type: string - endpoint_params: - additionalProperties: + type: array + sourceLabels: + description: |- + 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. + 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 - description: Parameters to append to the token URL - type: object - scopes: - description: OAuth2 scopes used for the token request - items: + 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: array - token_url: - description: The URL to fetch the token from - minLength: 1 - type: string - required: - - client_id - - token_url - type: object + type: object + type: array + metrics_path: + description: |- + HTTP path to scrape for metrics. + alias for Path + type: string + metricsPath: + description: MetricsPathS alias for Path + type: string + oauth2: + description: OAuth2 defines auth configuration + x-kubernetes-preserve-unknown-fields: true params: additionalProperties: items: @@ -29747,11 +27855,15 @@ spec: path: description: HTTP path to scrape for metrics. type: string - proxyURL: + proxy_url: description: ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. type: string - relabelConfigs: + proxyUrl: + description: ProxyURL eg http://proxyserver:2195 Directs scrapes + to proxy through this endpoint. + type: string + relabel_configs: description: RelabelConfigs to apply to samples during service discovery. items: @@ -29828,191 +27940,140 @@ spec: type: string type: object type: array - sampleLimit: - description: SampleLimit defines per-scrape limit on number - of scraped samples that will be accepted. - format: int64 - type: integer - scheme: - description: HTTP scheme to use for scraping. - enum: - - http - - https - type: string - scrape_interval: - description: |- - ScrapeInterval is the same as Interval and has priority over it. - one of scrape_interval or interval can be used - type: string - scrapeTimeout: - description: Timeout after which the scrape is ended - type: string - seriesLimit: - description: |- - 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. - format: int64 - type: integer - targets: - description: Targets static targets addresses in form of ["192.122.55.55:9100","some-name:9100"]. + relabelConfigs: + description: RelabelConfigsS alias ofr RelabelConfigs items: - type: string - minItems: 1 - type: array - tlsConfig: - description: TLSConfig configuration to use when scraping the - endpoint - properties: - ca: - description: Stuct containing the CA cert to use for the - targets. - properties: - configMap: - description: ConfigMap containing data to use for the - targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - caFile: - description: Path to the CA cert in the container to use - for the targets. - type: string - cert: - description: Struct containing the client cert file for - the targets. - properties: - configMap: - description: ConfigMap containing data to use for the - targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - certFile: - description: Path to the client cert file in the container - for the targets. - type: string - insecureSkipVerify: - description: Disable target certificate validation. - type: boolean - keyFile: - description: Path to the client key file in the container - for the targets. - type: string - keySecret: - description: Secret containing the client key file for the - targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + description: |- + RelabelConfig allows dynamic rewriting of the label set + More info: https://docs.victoriametrics.com/#relabeling + properties: + action: + description: Action to perform based on regex matching. + Default is 'replace' + type: string + if: + description: 'If represents metricsQL match expression + (or list of expressions): ''{__name__=~"foo_.*"}''' + x-kubernetes-preserve-unknown-fields: true + labels: + additionalProperties: type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - serverName: - description: Used to verify the hostname for the targets. - type: string - type: object + description: 'Labels is used together with Match for `action: + graphite`' + type: object + match: + description: 'Match is used together with Labels for `action: + graphite`' + type: string + modulus: + description: Modulus to take of the hash of the source + label values. + format: int64 + type: integer + regex: + description: |- + Regular expression against which the extracted value is matched. Default is '(.*)' + victoriaMetrics supports multiline regex joined with | + https://docs.victoriametrics.com/vmagent/#relabeling-enhancements + x-kubernetes-preserve-unknown-fields: true + replacement: + description: |- + Replacement value against which a regex replace is performed if the + regular expression matches. Regex capture groups are available. Default is '$1' + type: string + separator: + 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 + using the configured separator and matched against the configured regular expression + for the replace, keep, and drop actions. + 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 + type: array + sample_limit: + description: SampleLimit defines per-scrape limit on number + of scraped samples that will be accepted. + format: int64 + type: integer + sampleLimit: + description: SampleLimit defines per-scrape limit on number + of scraped samples that will be accepted. + format: int64 + type: integer + scheme: + description: HTTP scheme to use for scraping. + enum: + - http + - https + - HTTPS + - HTTP + type: string + scrape_interval: + description: |- + ScrapeInterval is the same as Interval and has priority over it. + one of scrape_interval or interval can be used + type: string + scrape_timeout: + description: Timeout after which the scrape is ended + type: string + scrapeInterval: + description: ScrapeIntervalS is the same as ScrapeInterval and + has priority over it. + type: string + scrapeTimeout: + description: ScrapeTimeoutS after which the scrape is ended + type: string + series_limit: + description: |- + 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. + format: int64 + type: integer + seriesLimit: + description: |- + 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. + format: int64 + type: integer + targets: + description: Targets static targets addresses in form of ["192.122.55.55:9100","some-name:9100"]. + items: + type: string + minItems: 1 + type: array + tls_config: + description: TLSConfig configuration to use when scraping the + endpoint + x-kubernetes-preserve-unknown-fields: true + tlsConfig: + description: TLSConfigS alias for TLSConfig + x-kubernetes-preserve-unknown-fields: true vm_scrape_params: description: VMScrapeParams defines VictoriaMetrics specific scrape parameters @@ -30105,6 +28166,11 @@ spec: - key type: object x-kubernetes-map-type: atomic + username_file: + description: |- + UsernameFile defines path to username file at disk + must be pre-mounted + type: string type: object bearer_token: description: SecretKeySelector selects a key of a Secret. @@ -30133,162 +28199,7 @@ spec: bearer_token_file: type: string tls_config: - description: TLSConfig specifies TLSConfig configuration - parameters. - properties: - ca: - description: Stuct containing the CA cert to use - for the targets. - properties: - configMap: - description: ConfigMap containing data to use - for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for - the targets. - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - caFile: - description: Path to the CA cert in the container - to use for the targets. - type: string - cert: - description: Struct containing the client cert file - for the targets. - properties: - configMap: - description: ConfigMap containing data to use - for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for - the targets. - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - certFile: - description: Path to the client cert file in the - container for the targets. - type: string - insecureSkipVerify: - description: Disable target certificate validation. - type: boolean - keyFile: - description: Path to the client key file in the - container for the targets. - type: string - keySecret: - description: Secret containing the client key file - for the targets. - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - serverName: - description: Used to verify the hostname for the - targets. - type: string - type: object + x-kubernetes-preserve-unknown-fields: true type: object scrape_align_interval: type: string @@ -30694,153 +28605,7 @@ spec: type: object type: array tlsConfig: - description: TLSConfig specifies TLSConfig configuration parameters. - properties: - ca: - description: Stuct containing the CA cert to use for the targets. - properties: - configMap: - description: ConfigMap containing data to use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - caFile: - description: Path to the CA cert in the container to use for the - targets. - type: string - cert: - description: Struct containing the client cert file for the targets. - properties: - configMap: - description: ConfigMap containing data to use for the targets. - properties: - key: - description: The key to select. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secret: - description: Secret containing data to use for the targets. - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - certFile: - description: Path to the client cert file in the container for - the targets. - type: string - insecureSkipVerify: - description: Disable target certificate validation. - type: boolean - keyFile: - description: Path to the client key file in the container for - the targets. - type: string - keySecret: - description: Secret containing the client key file for the targets. - properties: - key: - description: The key of the secret to select from. Must be - a valid secret key. - type: string - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - optional: - description: Specify whether the Secret or its key must be - defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - serverName: - description: Used to verify the hostname for the targets. - type: string - type: object + x-kubernetes-preserve-unknown-fields: true tokenRef: description: TokenRef allows fetching token from user-created secrets by its name and key. diff --git a/config/crd/patches/operator.victoriametrics.com_vmalerts.yaml b/config/crd/patches/operator.victoriametrics.com_vmalerts.yaml index 748d5d0b..0b00f713 100644 --- a/config/crd/patches/operator.victoriametrics.com_vmalerts.yaml +++ b/config/crd/patches/operator.victoriametrics.com_vmalerts.yaml @@ -65,50 +65,3 @@ - op: add path: /spec/versions/0/schema/openAPIV3Schema/properties/spec/properties/datasource/properties/oauth2/x-kubernetes-preserve-unknown-fields value: true -- op: remove - path: /spec/versions/0/schema/openAPIV3Schema/properties/spec/properties/datasource/properties/oauth2/properties -- op: add - path: /spec/versions/0/schema/openAPIV3Schema/properties/spec/properties/datasource/properties/tlsConfig/x-kubernetes-preserve-unknown-fields - value: true -- op: remove - path: /spec/versions/0/schema/openAPIV3Schema/properties/spec/properties/datasource/properties/tlsConfig/properties -- op: add - path: /spec/versions/0/schema/openAPIV3Schema/properties/spec/properties/remoteRead/properties/oauth2/x-kubernetes-preserve-unknown-fields - value: true -- op: remove - path: /spec/versions/0/schema/openAPIV3Schema/properties/spec/properties/remoteRead/properties/oauth2/properties -- op: add - path: /spec/versions/0/schema/openAPIV3Schema/properties/spec/properties/remoteRead/properties/tlsConfig/x-kubernetes-preserve-unknown-fields - value: true -- op: remove - path: /spec/versions/0/schema/openAPIV3Schema/properties/spec/properties/remoteRead/properties/tlsConfig/properties -- op: add - path: /spec/versions/0/schema/openAPIV3Schema/properties/spec/properties/remoteWrite/properties/oauth2/x-kubernetes-preserve-unknown-fields - value: true -- op: remove - path: /spec/versions/0/schema/openAPIV3Schema/properties/spec/properties/remoteWrite/properties/oauth2/properties -- op: add - path: /spec/versions/0/schema/openAPIV3Schema/properties/spec/properties/remoteWrite/properties/tlsConfig/x-kubernetes-preserve-unknown-fields - value: true -- op: remove - path: /spec/versions/0/schema/openAPIV3Schema/properties/spec/properties/remoteWrite/properties/tlsConfig/properties -- op: add - path: /spec/versions/0/schema/openAPIV3Schema/properties/spec/properties/notifier/properties/oauth2/x-kubernetes-preserve-unknown-fields - value: true -- op: remove - path: /spec/versions/0/schema/openAPIV3Schema/properties/spec/properties/notifier/properties/oauth2/properties -- op: add - path: /spec/versions/0/schema/openAPIV3Schema/properties/spec/properties/notifier/properties/tlsConfig/x-kubernetes-preserve-unknown-fields - value: true -- op: remove - path: /spec/versions/0/schema/openAPIV3Schema/properties/spec/properties/notifier/properties/tlsConfig/properties -- op: add - path: /spec/versions/0/schema/openAPIV3Schema/properties/spec/properties/notifiers/items/properties/oauth2/x-kubernetes-preserve-unknown-fields - value: true -- op: remove - path: /spec/versions/0/schema/openAPIV3Schema/properties/spec/properties/notifiers/items/properties/oauth2/properties -- op: add - path: /spec/versions/0/schema/openAPIV3Schema/properties/spec/properties/notifiers/items/properties/tlsConfig/x-kubernetes-preserve-unknown-fields - value: true -- op: remove - path: /spec/versions/0/schema/openAPIV3Schema/properties/spec/properties/notifiers/items/properties/tlsConfig/properties diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index b3f4c8ae..4c739b32 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -15,6 +15,7 @@ aliases: - [vmrule](https://docs.victoriametrics.com/operator/resources/vmrule/): properly validate rules for [vlogs](https://docs.victoriametrics.com/victorialogs/vmalert/) group `type`. - [operator](https://docs.victoriametrics.com/operator/): properly apply changes to the [converted](https://docs.victoriametrics.com/operator/migration/#objects-conversion) `VMScrapeConfig` during operator start-up. +- [operator](https://docs.victoriametrics.com/operator/): allow `HTTP` and `HTTPS` values for `scheme` param at scrape configurations. It fixes compatibility with prometheus-operator objects. See [this issue](https://github.com/VictoriaMetrics/operator/issues/1148) for details. ## [v0.49.0](https://github.com/VictoriaMetrics/operator/releases/tag/v0.49.0) - 15 Oct 2024 diff --git a/docs/api.md b/docs/api.md index 2f60fe5d..798a7598 100644 --- a/docs/api.md +++ b/docs/api.md @@ -214,7 +214,7 @@ _Appears in:_ | Field | Description | Scheme | Required | | --- | --- | --- | --- | | `credentials` | Reference to the secret with value for authorization | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | true | -| `credentialsFile` | File with value for authorization | _string_ | false | +| `credentials_file` | File with value for authorization | _string_ | false | | `type` | Type of authorization, default to bearer | _string_ | false | @@ -276,6 +276,7 @@ _Appears in:_ | `password` | Password defines reference for secret with password value
The secret needs to be in the same namespace as scrape object | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | | `password_file` | PasswordFile defines path to password file at disk
must be pre-mounted | _string_ | false | | `username` | Username defines reference for secret with username value
The secret needs to be in the same namespace as scrape object | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | +| `username_file` | UsernameFile defines path to username file at disk
must be pre-mounted | _string_ | true | #### BearerAuth @@ -831,28 +832,44 @@ _Appears in:_ | --- | --- | --- | --- | | `attach_metadata` | AttachMetadata configures metadata attaching from service discovery | _[AttachMetadata](#attachmetadata)_ | false | | `authorization` | Authorization with http header Authorization | _[Authorization](#authorization)_ | false | -| `basicAuth` | BasicAuth allow an endpoint to authenticate over basic authentication | _[BasicAuth](#basicauth)_ | false | -| `bearerTokenFile` | File to read bearer token for scraping targets. | _string_ | false | -| `bearerTokenSecret` | 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. | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | +| `basicAuth` | BasicAuthS alias for BasicAuth | _[BasicAuth](#basicauth)_ | false | +| `basic_auth` | BasicAuth allow an endpoint to authenticate over basic authentication | _[BasicAuth](#basicauth)_ | false | +| `bearerTokenFile` | BearerTokenFileS alias for BearerTokenFile | _string_ | false | +| `bearerTokenSecret` | BearerTokenSecretS alias for BearerTokenSecret | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | +| `bearer_token_file` | File to read bearer token for scraping targets. | _string_ | false | +| `bearer_token_secret` | 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. | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | +| `followRedirects` | FollowRedirects controls redirects for scraping. | _boolean_ | false | | `follow_redirects` | FollowRedirects controls redirects for scraping. | _boolean_ | false | -| `honorLabels` | HonorLabels chooses the metric's labels on collisions with target labels. | _boolean_ | false | +| `honorLabels` | HonorLabelsS chooses the metric's labels on collisions with target labels. | _boolean_ | false | | `honorTimestamps` | HonorTimestamps controls whether vmagent respects the timestamps present in scraped data. | _boolean_ | false | +| `honor_labels` | HonorLabels chooses the metric's labels on collisions with target labels. | _boolean_ | false | +| `honor_timestamps` | HonorTimestamps controls whether vmagent respects the timestamps present in scraped data. | _boolean_ | false | | `interval` | Interval at which metrics should be scraped | _string_ | false | | `max_scrape_size` | MaxScrapeSize defines a maximum size of scraped data for a job | _string_ | false | -| `metricRelabelConfigs` | MetricRelabelConfigs to apply to samples after scrapping. | _[RelabelConfig](#relabelconfig) array_ | false | +| `metricRelabelConfigs` | MetricRelabelConfigsS alias for MetricRelabelConfigs | _[RelabelConfig](#relabelconfig) array_ | false | +| `metric_relabel_configs` | MetricRelabelConfigs to apply to samples after scrapping. | _[RelabelConfig](#relabelconfig) array_ | false | +| `metricsPath` | MetricsPathS alias for Path | _string_ | false | +| `metrics_path` | HTTP path to scrape for metrics.
alias for Path | _string_ | false | | `oauth2` | OAuth2 defines auth configuration | _[OAuth2](#oauth2)_ | false | | `params` | Optional HTTP URL parameters | _object (keys:string, values:string array)_ | false | | `path` | HTTP path to scrape for metrics. | _string_ | false | | `port` | Name of the port exposed at Service. | _string_ | false | -| `proxyURL` | ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. | _string_ | false | -| `relabelConfigs` | RelabelConfigs to apply to samples during service discovery. | _[RelabelConfig](#relabelconfig) array_ | false | +| `proxyUrl` | ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. | _string_ | false | +| `proxy_url` | ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. | _string_ | false | +| `relabelConfigs` | RelabelConfigsS alias ofr RelabelConfigs | _[RelabelConfig](#relabelconfig) array_ | false | +| `relabel_configs` | RelabelConfigs to apply to samples during service discovery. | _[RelabelConfig](#relabelconfig) array_ | false | | `sampleLimit` | SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. | _integer_ | false | +| `sample_limit` | SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. | _integer_ | false | | `scheme` | HTTP scheme to use for scraping. | _string_ | false | -| `scrapeTimeout` | Timeout after which the scrape is ended | _string_ | false | +| `scrapeInterval` | ScrapeIntervalS is the same as ScrapeInterval and has priority over it. | _string_ | false | +| `scrapeTimeout` | ScrapeTimeoutS after which the scrape is ended | _string_ | false | | `scrape_interval` | ScrapeInterval is the same as Interval and has priority over it.
one of scrape_interval or interval can be used | _string_ | false | +| `scrape_timeout` | Timeout after which the scrape is ended | _string_ | false | | `seriesLimit` | 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. | _integer_ | false | +| `series_limit` | 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. | _integer_ | false | | `targetPort` | TargetPort
Name or number of the pod port this endpoint refers to. Mutually exclusive with port. | _[IntOrString](#intorstring)_ | false | -| `tlsConfig` | TLSConfig configuration to use when scraping the endpoint | _[TLSConfig](#tlsconfig)_ | false | +| `tlsConfig` | TLSConfigS alias for TLSConfig | _[TLSConfig](#tlsconfig)_ | false | +| `tls_config` | TLSConfig configuration to use when scraping the endpoint | _[TLSConfig](#tlsconfig)_ | false | | `vm_scrape_params` | VMScrapeParams defines VictoriaMetrics specific scrape parameters | _[VMScrapeParams](#vmscrapeparams)_ | false | @@ -875,11 +892,15 @@ _Appears in:_ | Field | Description | Scheme | Required | | --- | --- | --- | --- | | `authorization` | Authorization with http header Authorization | _[Authorization](#authorization)_ | false | -| `basicAuth` | BasicAuth allow an endpoint to authenticate over basic authentication | _[BasicAuth](#basicauth)_ | false | -| `bearerTokenFile` | File to read bearer token for scraping targets. | _string_ | false | -| `bearerTokenSecret` | 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. | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | +| `basicAuth` | BasicAuthS alias for BasicAuth | _[BasicAuth](#basicauth)_ | false | +| `basic_auth` | BasicAuth allow an endpoint to authenticate over basic authentication | _[BasicAuth](#basicauth)_ | false | +| `bearerTokenFile` | BearerTokenFileS alias for BearerTokenFile | _string_ | false | +| `bearerTokenSecret` | BearerTokenSecretS alias for BearerTokenSecret | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | +| `bearer_token_file` | File to read bearer token for scraping targets. | _string_ | false | +| `bearer_token_secret` | 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. | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | | `oauth2` | OAuth2 defines auth configuration | _[OAuth2](#oauth2)_ | false | -| `tlsConfig` | TLSConfig configuration to use when scraping the endpoint | _[TLSConfig](#tlsconfig)_ | false | +| `tlsConfig` | TLSConfigS alias for TLSConfig | _[TLSConfig](#tlsconfig)_ | false | +| `tls_config` | TLSConfig configuration to use when scraping the endpoint | _[TLSConfig](#tlsconfig)_ | false | #### EndpointRelabelings @@ -899,8 +920,10 @@ _Appears in:_ | Field | Description | Scheme | Required | | --- | --- | --- | --- | -| `metricRelabelConfigs` | MetricRelabelConfigs to apply to samples after scrapping. | _[RelabelConfig](#relabelconfig) array_ | false | -| `relabelConfigs` | RelabelConfigs to apply to samples during service discovery. | _[RelabelConfig](#relabelconfig) array_ | false | +| `metricRelabelConfigs` | MetricRelabelConfigsS alias for MetricRelabelConfigs | _[RelabelConfig](#relabelconfig) array_ | false | +| `metric_relabel_configs` | MetricRelabelConfigs to apply to samples after scrapping. | _[RelabelConfig](#relabelconfig) array_ | false | +| `relabelConfigs` | RelabelConfigsS alias ofr RelabelConfigs | _[RelabelConfig](#relabelconfig) array_ | false | +| `relabel_configs` | RelabelConfigs to apply to samples during service discovery. | _[RelabelConfig](#relabelconfig) array_ | false | #### EndpointScrapeParams @@ -921,19 +944,29 @@ _Appears in:_ | Field | Description | Scheme | Required | | --- | --- | --- | --- | +| `followRedirects` | FollowRedirects controls redirects for scraping. | _boolean_ | false | | `follow_redirects` | FollowRedirects controls redirects for scraping. | _boolean_ | false | -| `honorLabels` | HonorLabels chooses the metric's labels on collisions with target labels. | _boolean_ | false | +| `honorLabels` | HonorLabelsS chooses the metric's labels on collisions with target labels. | _boolean_ | false | | `honorTimestamps` | HonorTimestamps controls whether vmagent respects the timestamps present in scraped data. | _boolean_ | false | +| `honor_labels` | HonorLabels chooses the metric's labels on collisions with target labels. | _boolean_ | false | +| `honor_timestamps` | HonorTimestamps controls whether vmagent respects the timestamps present in scraped data. | _boolean_ | false | | `interval` | Interval at which metrics should be scraped | _string_ | false | | `max_scrape_size` | MaxScrapeSize defines a maximum size of scraped data for a job | _string_ | false | +| `metricsPath` | MetricsPathS alias for Path | _string_ | false | +| `metrics_path` | HTTP path to scrape for metrics.
alias for Path | _string_ | false | | `params` | Optional HTTP URL parameters | _object (keys:string, values:string array)_ | false | | `path` | HTTP path to scrape for metrics. | _string_ | false | -| `proxyURL` | ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. | _string_ | false | +| `proxyUrl` | ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. | _string_ | false | +| `proxy_url` | ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. | _string_ | false | | `sampleLimit` | SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. | _integer_ | false | +| `sample_limit` | SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. | _integer_ | false | | `scheme` | HTTP scheme to use for scraping. | _string_ | false | -| `scrapeTimeout` | Timeout after which the scrape is ended | _string_ | false | +| `scrapeInterval` | ScrapeIntervalS is the same as ScrapeInterval and has priority over it. | _string_ | false | +| `scrapeTimeout` | ScrapeTimeoutS after which the scrape is ended | _string_ | false | | `scrape_interval` | ScrapeInterval is the same as Interval and has priority over it.
one of scrape_interval or interval can be used | _string_ | false | +| `scrape_timeout` | Timeout after which the scrape is ended | _string_ | false | | `seriesLimit` | 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. | _integer_ | false | +| `series_limit` | 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. | _integer_ | false | | `vm_scrape_params` | VMScrapeParams defines VictoriaMetrics specific scrape parameters | _[VMScrapeParams](#vmscrapeparams)_ | false | @@ -1347,11 +1380,15 @@ _Appears in:_ | Field | Description | Scheme | Required | | --- | --- | --- | --- | +| `clientId` | The secret or configmap containing the OAuth2 client id | _[SecretOrConfigMap](#secretorconfigmap)_ | true | +| `clientSecret` | The secret containing the OAuth2 client secret | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | | `client_id` | The secret or configmap containing the OAuth2 client id | _[SecretOrConfigMap](#secretorconfigmap)_ | true | | `client_secret` | The secret containing the OAuth2 client secret | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | | `client_secret_file` | ClientSecretFile defines path for client secret file. | _string_ | false | +| `endpointParams` | Parameters to append to the token URL | _object (keys:string, values:string)_ | false | | `endpoint_params` | Parameters to append to the token URL | _object (keys:string, values:string)_ | false | | `scopes` | OAuth2 scopes used for the token request | _string array_ | false | +| `tokenUrl` | The URL to fetch the token from | _string_ | true | | `token_url` | The URL to fetch the token from | _string_ | true | @@ -1485,29 +1522,45 @@ _Appears in:_ | --- | --- | --- | --- | | `attach_metadata` | AttachMetadata configures metadata attaching from service discovery | _[AttachMetadata](#attachmetadata)_ | false | | `authorization` | Authorization with http header Authorization | _[Authorization](#authorization)_ | false | -| `basicAuth` | BasicAuth allow an endpoint to authenticate over basic authentication | _[BasicAuth](#basicauth)_ | false | -| `bearerTokenFile` | File to read bearer token for scraping targets. | _string_ | false | -| `bearerTokenSecret` | 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. | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | +| `basicAuth` | BasicAuthS alias for BasicAuth | _[BasicAuth](#basicauth)_ | false | +| `basic_auth` | BasicAuth allow an endpoint to authenticate over basic authentication | _[BasicAuth](#basicauth)_ | false | +| `bearerTokenFile` | BearerTokenFileS alias for BearerTokenFile | _string_ | false | +| `bearerTokenSecret` | BearerTokenSecretS alias for BearerTokenSecret | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | +| `bearer_token_file` | File to read bearer token for scraping targets. | _string_ | false | +| `bearer_token_secret` | 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. | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | | `filterRunning` | FilterRunning applies filter with pod status == running
it prevents from scrapping metrics at failed or succeed state pods.
enabled by default | _boolean_ | false | +| `followRedirects` | FollowRedirects controls redirects for scraping. | _boolean_ | false | | `follow_redirects` | FollowRedirects controls redirects for scraping. | _boolean_ | false | -| `honorLabels` | HonorLabels chooses the metric's labels on collisions with target labels. | _boolean_ | false | +| `honorLabels` | HonorLabelsS chooses the metric's labels on collisions with target labels. | _boolean_ | false | | `honorTimestamps` | HonorTimestamps controls whether vmagent respects the timestamps present in scraped data. | _boolean_ | false | +| `honor_labels` | HonorLabels chooses the metric's labels on collisions with target labels. | _boolean_ | false | +| `honor_timestamps` | HonorTimestamps controls whether vmagent respects the timestamps present in scraped data. | _boolean_ | false | | `interval` | Interval at which metrics should be scraped | _string_ | false | | `max_scrape_size` | MaxScrapeSize defines a maximum size of scraped data for a job | _string_ | false | -| `metricRelabelConfigs` | MetricRelabelConfigs to apply to samples after scrapping. | _[RelabelConfig](#relabelconfig) array_ | false | +| `metricRelabelConfigs` | MetricRelabelConfigsS alias for MetricRelabelConfigs | _[RelabelConfig](#relabelconfig) array_ | false | +| `metric_relabel_configs` | MetricRelabelConfigs to apply to samples after scrapping. | _[RelabelConfig](#relabelconfig) array_ | false | +| `metricsPath` | MetricsPathS alias for Path | _string_ | false | +| `metrics_path` | HTTP path to scrape for metrics.
alias for Path | _string_ | false | | `oauth2` | OAuth2 defines auth configuration | _[OAuth2](#oauth2)_ | false | | `params` | Optional HTTP URL parameters | _object (keys:string, values:string array)_ | false | | `path` | HTTP path to scrape for metrics. | _string_ | false | | `port` | Name of the port exposed at Pod. | _string_ | false | -| `proxyURL` | ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. | _string_ | false | -| `relabelConfigs` | RelabelConfigs to apply to samples during service discovery. | _[RelabelConfig](#relabelconfig) array_ | false | +| `proxyUrl` | ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. | _string_ | false | +| `proxy_url` | ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. | _string_ | false | +| `relabelConfigs` | RelabelConfigsS alias ofr RelabelConfigs | _[RelabelConfig](#relabelconfig) array_ | false | +| `relabel_configs` | RelabelConfigs to apply to samples during service discovery. | _[RelabelConfig](#relabelconfig) array_ | false | | `sampleLimit` | SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. | _integer_ | false | +| `sample_limit` | SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. | _integer_ | false | | `scheme` | HTTP scheme to use for scraping. | _string_ | false | -| `scrapeTimeout` | Timeout after which the scrape is ended | _string_ | false | +| `scrapeInterval` | ScrapeIntervalS is the same as ScrapeInterval and has priority over it. | _string_ | false | +| `scrapeTimeout` | ScrapeTimeoutS after which the scrape is ended | _string_ | false | | `scrape_interval` | ScrapeInterval is the same as Interval and has priority over it.
one of scrape_interval or interval can be used | _string_ | false | +| `scrape_timeout` | Timeout after which the scrape is ended | _string_ | false | | `seriesLimit` | 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. | _integer_ | false | +| `series_limit` | 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. | _integer_ | false | | `targetPort` | TargetPort
Name or number of the pod port this endpoint refers to. Mutually exclusive with port. | _[IntOrString](#intorstring)_ | false | -| `tlsConfig` | TLSConfig configuration to use when scraping the endpoint | _[TLSConfig](#tlsconfig)_ | false | +| `tlsConfig` | TLSConfigS alias for TLSConfig | _[TLSConfig](#tlsconfig)_ | false | +| `tls_config` | TLSConfig configuration to use when scraping the endpoint | _[TLSConfig](#tlsconfig)_ | false | | `vm_scrape_params` | VMScrapeParams defines VictoriaMetrics specific scrape parameters | _[VMScrapeParams](#vmscrapeparams)_ | false | @@ -1728,7 +1781,7 @@ _Appears in:_ | `params` | Params optional HTTP URL parameters added to each rule request | _[Values](#values)_ | false | | `rules` | Rules list of alert rules | _[Rule](#rule) array_ | true | | `tenant` | Tenant id for group, can be used only with enterprise version of vmalert.
See more details [here](https://docs.victoriametrics.com/vmalert#multitenancy). | _string_ | false | -| `type` | Type defines datasource type for enterprise version of vmalert
possible values - prometheus,graphite | _string_ | false | +| `type` | Type defines datasource type for enterprise version of vmalert
possible values - prometheus,graphite,vlogs | _string_ | false | @@ -2118,12 +2171,18 @@ _Appears in:_ | --- | --- | --- | --- | | `ca` | Stuct containing the CA cert to use for the targets. | _[SecretOrConfigMap](#secretorconfigmap)_ | false | | `caFile` | Path to the CA cert in the container to use for the targets. | _string_ | false | +| `ca_file` | Path to the CA cert in the container to use for the targets. | _string_ | false | | `cert` | Struct containing the client cert file for the targets. | _[SecretOrConfigMap](#secretorconfigmap)_ | false | | `certFile` | Path to the client cert file in the container for the targets. | _string_ | false | +| `cert_file` | Path to the client cert file in the container for the targets. | _string_ | false | | `insecureSkipVerify` | Disable target certificate validation. | _boolean_ | false | +| `insecure_skip_verify` | Disable target certificate validation. | _boolean_ | false | | `keyFile` | Path to the client key file in the container for the targets. | _string_ | false | | `keySecret` | Secret containing the client key file for the targets. | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | +| `key_file` | Path to the client key file in the container for the targets. | _string_ | false | +| `key_secret` | Secret containing the client key file for the targets. | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | | `serverName` | Used to verify the hostname for the targets. | _string_ | false | +| `server_name` | Used to verify the hostname for the targets. | _string_ | false | @@ -2170,28 +2229,44 @@ _Appears in:_ | Field | Description | Scheme | Required | | --- | --- | --- | --- | | `authorization` | Authorization with http header Authorization | _[Authorization](#authorization)_ | false | -| `basicAuth` | BasicAuth allow an endpoint to authenticate over basic authentication | _[BasicAuth](#basicauth)_ | false | -| `bearerTokenFile` | File to read bearer token for scraping targets. | _string_ | false | -| `bearerTokenSecret` | 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. | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | +| `basicAuth` | BasicAuthS alias for BasicAuth | _[BasicAuth](#basicauth)_ | false | +| `basic_auth` | BasicAuth allow an endpoint to authenticate over basic authentication | _[BasicAuth](#basicauth)_ | false | +| `bearerTokenFile` | BearerTokenFileS alias for BearerTokenFile | _string_ | false | +| `bearerTokenSecret` | BearerTokenSecretS alias for BearerTokenSecret | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | +| `bearer_token_file` | File to read bearer token for scraping targets. | _string_ | false | +| `bearer_token_secret` | 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. | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | +| `followRedirects` | FollowRedirects controls redirects for scraping. | _boolean_ | false | | `follow_redirects` | FollowRedirects controls redirects for scraping. | _boolean_ | false | -| `honorLabels` | HonorLabels chooses the metric's labels on collisions with target labels. | _boolean_ | false | +| `honorLabels` | HonorLabelsS chooses the metric's labels on collisions with target labels. | _boolean_ | false | | `honorTimestamps` | HonorTimestamps controls whether vmagent respects the timestamps present in scraped data. | _boolean_ | false | +| `honor_labels` | HonorLabels chooses the metric's labels on collisions with target labels. | _boolean_ | false | +| `honor_timestamps` | HonorTimestamps controls whether vmagent respects the timestamps present in scraped data. | _boolean_ | false | | `interval` | Interval at which metrics should be scraped | _string_ | false | | `labels` | Labels static labels for targets. | _object (keys:string, values:string)_ | false | | `max_scrape_size` | MaxScrapeSize defines a maximum size of scraped data for a job | _string_ | false | -| `metricRelabelConfigs` | MetricRelabelConfigs to apply to samples after scrapping. | _[RelabelConfig](#relabelconfig) array_ | false | +| `metricRelabelConfigs` | MetricRelabelConfigsS alias for MetricRelabelConfigs | _[RelabelConfig](#relabelconfig) array_ | false | +| `metric_relabel_configs` | MetricRelabelConfigs to apply to samples after scrapping. | _[RelabelConfig](#relabelconfig) array_ | false | +| `metricsPath` | MetricsPathS alias for Path | _string_ | false | +| `metrics_path` | HTTP path to scrape for metrics.
alias for Path | _string_ | false | | `oauth2` | OAuth2 defines auth configuration | _[OAuth2](#oauth2)_ | false | | `params` | Optional HTTP URL parameters | _object (keys:string, values:string array)_ | false | | `path` | HTTP path to scrape for metrics. | _string_ | false | -| `proxyURL` | ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. | _string_ | false | -| `relabelConfigs` | RelabelConfigs to apply to samples during service discovery. | _[RelabelConfig](#relabelconfig) array_ | false | +| `proxyUrl` | ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. | _string_ | false | +| `proxy_url` | ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. | _string_ | false | +| `relabelConfigs` | RelabelConfigsS alias ofr RelabelConfigs | _[RelabelConfig](#relabelconfig) array_ | false | +| `relabel_configs` | RelabelConfigs to apply to samples during service discovery. | _[RelabelConfig](#relabelconfig) array_ | false | | `sampleLimit` | SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. | _integer_ | false | +| `sample_limit` | SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. | _integer_ | false | | `scheme` | HTTP scheme to use for scraping. | _string_ | false | -| `scrapeTimeout` | Timeout after which the scrape is ended | _string_ | false | +| `scrapeInterval` | ScrapeIntervalS is the same as ScrapeInterval and has priority over it. | _string_ | false | +| `scrapeTimeout` | ScrapeTimeoutS after which the scrape is ended | _string_ | false | | `scrape_interval` | ScrapeInterval is the same as Interval and has priority over it.
one of scrape_interval or interval can be used | _string_ | false | +| `scrape_timeout` | Timeout after which the scrape is ended | _string_ | false | | `seriesLimit` | 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. | _integer_ | false | +| `series_limit` | 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. | _integer_ | false | | `targets` | Targets static targets addresses in form of ["192.122.55.55:9100","some-name:9100"]. | _string array_ | true | -| `tlsConfig` | TLSConfig configuration to use when scraping the endpoint | _[TLSConfig](#tlsconfig)_ | false | +| `tlsConfig` | TLSConfigS alias for TLSConfig | _[TLSConfig](#tlsconfig)_ | false | +| `tls_config` | TLSConfig configuration to use when scraping the endpoint | _[TLSConfig](#tlsconfig)_ | false | | `vm_scrape_params` | VMScrapeParams defines VictoriaMetrics specific scrape parameters | _[VMScrapeParams](#vmscrapeparams)_ | false | @@ -3364,30 +3439,46 @@ _Appears in:_ | Field | Description | Scheme | Required | | --- | --- | --- | --- | | `authorization` | Authorization with http header Authorization | _[Authorization](#authorization)_ | false | -| `basicAuth` | BasicAuth allow an endpoint to authenticate over basic authentication | _[BasicAuth](#basicauth)_ | false | -| `bearerTokenFile` | File to read bearer token for scraping targets. | _string_ | false | -| `bearerTokenSecret` | 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. | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | +| `basicAuth` | BasicAuthS alias for BasicAuth | _[BasicAuth](#basicauth)_ | false | +| `basic_auth` | BasicAuth allow an endpoint to authenticate over basic authentication | _[BasicAuth](#basicauth)_ | false | +| `bearerTokenFile` | BearerTokenFileS alias for BearerTokenFile | _string_ | false | +| `bearerTokenSecret` | BearerTokenSecretS alias for BearerTokenSecret | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | +| `bearer_token_file` | File to read bearer token for scraping targets. | _string_ | false | +| `bearer_token_secret` | 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. | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | +| `followRedirects` | FollowRedirects controls redirects for scraping. | _boolean_ | false | | `follow_redirects` | FollowRedirects controls redirects for scraping. | _boolean_ | false | -| `honorLabels` | HonorLabels chooses the metric's labels on collisions with target labels. | _boolean_ | false | +| `honorLabels` | HonorLabelsS chooses the metric's labels on collisions with target labels. | _boolean_ | false | | `honorTimestamps` | HonorTimestamps controls whether vmagent respects the timestamps present in scraped data. | _boolean_ | false | +| `honor_labels` | HonorLabels chooses the metric's labels on collisions with target labels. | _boolean_ | false | +| `honor_timestamps` | HonorTimestamps controls whether vmagent respects the timestamps present in scraped data. | _boolean_ | false | | `interval` | Interval at which metrics should be scraped | _string_ | false | | `jobLabel` | The label to use to retrieve the job name from. | _string_ | false | | `max_scrape_size` | MaxScrapeSize defines a maximum size of scraped data for a job | _string_ | false | -| `metricRelabelConfigs` | MetricRelabelConfigs to apply to samples after scrapping. | _[RelabelConfig](#relabelconfig) array_ | false | +| `metricRelabelConfigs` | MetricRelabelConfigsS alias for MetricRelabelConfigs | _[RelabelConfig](#relabelconfig) array_ | false | +| `metric_relabel_configs` | MetricRelabelConfigs to apply to samples after scrapping. | _[RelabelConfig](#relabelconfig) array_ | false | +| `metricsPath` | MetricsPathS alias for Path | _string_ | false | +| `metrics_path` | HTTP path to scrape for metrics.
alias for Path | _string_ | false | | `oauth2` | OAuth2 defines auth configuration | _[OAuth2](#oauth2)_ | false | | `params` | Optional HTTP URL parameters | _object (keys:string, values:string array)_ | false | | `path` | HTTP path to scrape for metrics. | _string_ | false | | `port` | Name of the port exposed at Node. | _string_ | false | -| `proxyURL` | ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. | _string_ | false | -| `relabelConfigs` | RelabelConfigs to apply to samples during service discovery. | _[RelabelConfig](#relabelconfig) array_ | false | +| `proxyUrl` | ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. | _string_ | false | +| `proxy_url` | ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. | _string_ | false | +| `relabelConfigs` | RelabelConfigsS alias ofr RelabelConfigs | _[RelabelConfig](#relabelconfig) array_ | false | +| `relabel_configs` | RelabelConfigs to apply to samples during service discovery. | _[RelabelConfig](#relabelconfig) array_ | false | | `sampleLimit` | SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. | _integer_ | false | +| `sample_limit` | SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. | _integer_ | false | | `scheme` | HTTP scheme to use for scraping. | _string_ | false | -| `scrapeTimeout` | Timeout after which the scrape is ended | _string_ | false | +| `scrapeInterval` | ScrapeIntervalS is the same as ScrapeInterval and has priority over it. | _string_ | false | +| `scrapeTimeout` | ScrapeTimeoutS after which the scrape is ended | _string_ | false | | `scrape_interval` | ScrapeInterval is the same as Interval and has priority over it.
one of scrape_interval or interval can be used | _string_ | false | +| `scrape_timeout` | Timeout after which the scrape is ended | _string_ | false | | `selector` | Selector to select kubernetes Nodes. | _[LabelSelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#labelselector-v1-meta)_ | false | | `seriesLimit` | 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. | _integer_ | false | +| `series_limit` | 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. | _integer_ | false | | `targetLabels` | TargetLabels transfers labels on the Kubernetes Node onto the target. | _string array_ | false | -| `tlsConfig` | TLSConfig configuration to use when scraping the endpoint | _[TLSConfig](#tlsconfig)_ | false | +| `tlsConfig` | TLSConfigS alias for TLSConfig | _[TLSConfig](#tlsconfig)_ | false | +| `tls_config` | TLSConfig configuration to use when scraping the endpoint | _[TLSConfig](#tlsconfig)_ | false | | `vm_scrape_params` | VMScrapeParams defines VictoriaMetrics specific scrape parameters | _[VMScrapeParams](#vmscrapeparams)_ | false | @@ -3468,28 +3559,42 @@ _Appears in:_ | Field | Description | Scheme | Required | | --- | --- | --- | --- | | `authorization` | Authorization with http header Authorization | _[Authorization](#authorization)_ | false | -| `basicAuth` | BasicAuth allow an endpoint to authenticate over basic authentication | _[BasicAuth](#basicauth)_ | false | -| `bearerTokenFile` | File to read bearer token for scraping targets. | _string_ | false | -| `bearerTokenSecret` | 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. | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | +| `basicAuth` | BasicAuthS alias for BasicAuth | _[BasicAuth](#basicauth)_ | false | +| `basic_auth` | BasicAuth allow an endpoint to authenticate over basic authentication | _[BasicAuth](#basicauth)_ | false | +| `bearerTokenFile` | BearerTokenFileS alias for BearerTokenFile | _string_ | false | +| `bearerTokenSecret` | BearerTokenSecretS alias for BearerTokenSecret | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | +| `bearer_token_file` | File to read bearer token for scraping targets. | _string_ | false | +| `bearer_token_secret` | 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. | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | +| `followRedirects` | FollowRedirects controls redirects for scraping. | _boolean_ | false | | `follow_redirects` | FollowRedirects controls redirects for scraping. | _boolean_ | false | -| `honorLabels` | HonorLabels chooses the metric's labels on collisions with target labels. | _boolean_ | false | +| `honorLabels` | HonorLabelsS chooses the metric's labels on collisions with target labels. | _boolean_ | false | | `honorTimestamps` | HonorTimestamps controls whether vmagent respects the timestamps present in scraped data. | _boolean_ | false | +| `honor_labels` | HonorLabels chooses the metric's labels on collisions with target labels. | _boolean_ | false | +| `honor_timestamps` | HonorTimestamps controls whether vmagent respects the timestamps present in scraped data. | _boolean_ | false | | `interval` | Interval at which metrics should be scraped | _string_ | false | | `jobName` | The job name assigned to scraped metrics by default. | _string_ | true | | `max_scrape_size` | MaxScrapeSize defines a maximum size of scraped data for a job | _string_ | false | | `metricRelabelConfigs` | MetricRelabelConfigs to apply to samples after scrapping. | _[RelabelConfig](#relabelconfig) array_ | false | +| `metricsPath` | MetricsPathS alias for Path | _string_ | false | +| `metrics_path` | HTTP path to scrape for metrics.
alias for Path | _string_ | false | | `module` | 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 | _string_ | true | | `oauth2` | OAuth2 defines auth configuration | _[OAuth2](#oauth2)_ | false | | `params` | Optional HTTP URL parameters | _object (keys:string, values:string array)_ | false | | `path` | HTTP path to scrape for metrics. | _string_ | false | -| `proxyURL` | ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. | _string_ | false | +| `proxyUrl` | ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. | _string_ | false | +| `proxy_url` | ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. | _string_ | false | | `sampleLimit` | SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. | _integer_ | false | +| `sample_limit` | SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. | _integer_ | false | | `scheme` | HTTP scheme to use for scraping. | _string_ | false | -| `scrapeTimeout` | Timeout after which the scrape is ended | _string_ | false | +| `scrapeInterval` | ScrapeIntervalS is the same as ScrapeInterval and has priority over it. | _string_ | false | +| `scrapeTimeout` | ScrapeTimeoutS after which the scrape is ended | _string_ | false | | `scrape_interval` | ScrapeInterval is the same as Interval and has priority over it.
one of scrape_interval or interval can be used | _string_ | false | +| `scrape_timeout` | Timeout after which the scrape is ended | _string_ | false | | `seriesLimit` | 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. | _integer_ | false | +| `series_limit` | 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. | _integer_ | false | | `targets` | Targets defines a set of static and/or dynamically discovered targets to be probed using the prober. | _[VMProbeTargets](#vmprobetargets)_ | true | -| `tlsConfig` | TLSConfig configuration to use when scraping the endpoint | _[TLSConfig](#tlsconfig)_ | false | +| `tlsConfig` | TLSConfigS alias for TLSConfig | _[TLSConfig](#tlsconfig)_ | false | +| `tls_config` | TLSConfig configuration to use when scraping the endpoint | _[TLSConfig](#tlsconfig)_ | false | | `vmProberSpec` | Specification for the prober to use for probing targets.
The prober.URL parameter is required. Targets cannot be probed if left empty. | _[VMProberSpec](#vmproberspec)_ | true | | `vm_scrape_params` | VMScrapeParams defines VictoriaMetrics specific scrape parameters | _[VMScrapeParams](#vmscrapeparams)_ | false | @@ -3648,36 +3753,52 @@ _Appears in:_ | --- | --- | --- | --- | | `authorization` | Authorization with http header Authorization | _[Authorization](#authorization)_ | false | | `azureSDConfigs` | AzureSDConfigs defines a list of Azure service discovery configurations. | _[AzureSDConfig](#azuresdconfig) array_ | false | -| `basicAuth` | BasicAuth allow an endpoint to authenticate over basic authentication | _[BasicAuth](#basicauth)_ | false | -| `bearerTokenFile` | File to read bearer token for scraping targets. | _string_ | false | -| `bearerTokenSecret` | 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. | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | +| `basicAuth` | BasicAuthS alias for BasicAuth | _[BasicAuth](#basicauth)_ | false | +| `basic_auth` | BasicAuth allow an endpoint to authenticate over basic authentication | _[BasicAuth](#basicauth)_ | false | +| `bearerTokenFile` | BearerTokenFileS alias for BearerTokenFile | _string_ | false | +| `bearerTokenSecret` | BearerTokenSecretS alias for BearerTokenSecret | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | +| `bearer_token_file` | File to read bearer token for scraping targets. | _string_ | false | +| `bearer_token_secret` | 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. | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | | `consulSDConfigs` | ConsulSDConfigs defines a list of Consul service discovery configurations. | _[ConsulSDConfig](#consulsdconfig) array_ | false | | `digitalOceanSDConfigs` | DigitalOceanSDConfigs defines a list of DigitalOcean service discovery configurations. | _[DigitalOceanSDConfig](#digitaloceansdconfig) array_ | false | | `dnsSDConfigs` | DNSSDConfigs defines a list of DNS service discovery configurations. | _[DNSSDConfig](#dnssdconfig) array_ | false | | `ec2SDConfigs` | EC2SDConfigs defines a list of EC2 service discovery configurations. | _[EC2SDConfig](#ec2sdconfig) array_ | false | | `fileSDConfigs` | FileSDConfigs defines a list of file service discovery configurations. | _[FileSDConfig](#filesdconfig) array_ | false | +| `followRedirects` | FollowRedirects controls redirects for scraping. | _boolean_ | false | | `follow_redirects` | FollowRedirects controls redirects for scraping. | _boolean_ | false | | `gceSDConfigs` | GCESDConfigs defines a list of GCE service discovery configurations. | _[GCESDConfig](#gcesdconfig) array_ | false | -| `honorLabels` | HonorLabels chooses the metric's labels on collisions with target labels. | _boolean_ | false | +| `honorLabels` | HonorLabelsS chooses the metric's labels on collisions with target labels. | _boolean_ | false | | `honorTimestamps` | HonorTimestamps controls whether vmagent respects the timestamps present in scraped data. | _boolean_ | false | +| `honor_labels` | HonorLabels chooses the metric's labels on collisions with target labels. | _boolean_ | false | +| `honor_timestamps` | HonorTimestamps controls whether vmagent respects the timestamps present in scraped data. | _boolean_ | false | | `httpSDConfigs` | HTTPSDConfigs defines a list of HTTP service discovery configurations. | _[HTTPSDConfig](#httpsdconfig) array_ | false | | `interval` | Interval at which metrics should be scraped | _string_ | false | | `kubernetesSDConfigs` | KubernetesSDConfigs defines a list of Kubernetes service discovery configurations. | _[KubernetesSDConfig](#kubernetessdconfig) array_ | false | | `max_scrape_size` | MaxScrapeSize defines a maximum size of scraped data for a job | _string_ | false | -| `metricRelabelConfigs` | MetricRelabelConfigs to apply to samples after scrapping. | _[RelabelConfig](#relabelconfig) array_ | false | +| `metricRelabelConfigs` | MetricRelabelConfigsS alias for MetricRelabelConfigs | _[RelabelConfig](#relabelconfig) array_ | false | +| `metric_relabel_configs` | MetricRelabelConfigs to apply to samples after scrapping. | _[RelabelConfig](#relabelconfig) array_ | false | +| `metricsPath` | MetricsPathS alias for Path | _string_ | false | +| `metrics_path` | HTTP path to scrape for metrics.
alias for Path | _string_ | false | | `oauth2` | OAuth2 defines auth configuration | _[OAuth2](#oauth2)_ | false | | `openstackSDConfigs` | OpenStackSDConfigs defines a list of OpenStack service discovery configurations. | _[OpenStackSDConfig](#openstacksdconfig) array_ | false | | `params` | Optional HTTP URL parameters | _object (keys:string, values:string array)_ | false | | `path` | HTTP path to scrape for metrics. | _string_ | false | -| `proxyURL` | ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. | _string_ | false | -| `relabelConfigs` | RelabelConfigs to apply to samples during service discovery. | _[RelabelConfig](#relabelconfig) array_ | false | +| `proxyUrl` | ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. | _string_ | false | +| `proxy_url` | ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. | _string_ | false | +| `relabelConfigs` | RelabelConfigsS alias ofr RelabelConfigs | _[RelabelConfig](#relabelconfig) array_ | false | +| `relabel_configs` | RelabelConfigs to apply to samples during service discovery. | _[RelabelConfig](#relabelconfig) array_ | false | | `sampleLimit` | SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. | _integer_ | false | +| `sample_limit` | SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. | _integer_ | false | | `scheme` | HTTP scheme to use for scraping. | _string_ | false | -| `scrapeTimeout` | Timeout after which the scrape is ended | _string_ | false | +| `scrapeInterval` | ScrapeIntervalS is the same as ScrapeInterval and has priority over it. | _string_ | false | +| `scrapeTimeout` | ScrapeTimeoutS after which the scrape is ended | _string_ | false | | `scrape_interval` | ScrapeInterval is the same as Interval and has priority over it.
one of scrape_interval or interval can be used | _string_ | false | +| `scrape_timeout` | Timeout after which the scrape is ended | _string_ | false | | `seriesLimit` | 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. | _integer_ | false | +| `series_limit` | 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. | _integer_ | false | | `staticConfigs` | StaticConfigs defines a list of static targets with a common label set. | _[StaticConfig](#staticconfig) array_ | false | -| `tlsConfig` | TLSConfig configuration to use when scraping the endpoint | _[TLSConfig](#tlsconfig)_ | false | +| `tlsConfig` | TLSConfigS alias for TLSConfig | _[TLSConfig](#tlsconfig)_ | false | +| `tls_config` | TLSConfig configuration to use when scraping the endpoint | _[TLSConfig](#tlsconfig)_ | false | | `vm_scrape_params` | VMScrapeParams defines VictoriaMetrics specific scrape parameters | _[VMScrapeParams](#vmscrapeparams)_ | false | diff --git a/internal/controller/operator/converter/apis.go b/internal/controller/operator/converter/apis.go index 1e5a35a9..cc3b0f5a 100644 --- a/internal/controller/operator/converter/apis.go +++ b/internal/controller/operator/converter/apis.go @@ -197,7 +197,7 @@ func convertEndpoint(promEndpoint []promv1.Endpoint) []vmv1beta1.Endpoint { Params: endpoint.Params, Interval: string(endpoint.Interval), ScrapeTimeout: string(endpoint.ScrapeTimeout), - HonorLabels: endpoint.HonorLabels, + HonorLabels: &endpoint.HonorLabels, HonorTimestamps: endpoint.HonorTimestamps, ProxyURL: endpoint.ProxyURL, FollowRedirects: endpoint.FollowRedirects, @@ -349,7 +349,7 @@ func convertPodEndpoints(promPodEnpoints []promv1.PodMetricsEndpoint) []vmv1beta Scheme: promEndPoint.Scheme, Params: promEndPoint.Params, ScrapeTimeout: string(promEndPoint.ScrapeTimeout), - HonorLabels: promEndPoint.HonorLabels, + HonorLabels: &promEndPoint.HonorLabels, HonorTimestamps: promEndPoint.HonorTimestamps, ProxyURL: promEndPoint.ProxyURL, FollowRedirects: promEndPoint.FollowRedirects, diff --git a/internal/controller/operator/converter/v1alpha1/apis.go b/internal/controller/operator/converter/v1alpha1/apis.go index 5b443dae..c815b081 100644 --- a/internal/controller/operator/converter/v1alpha1/apis.go +++ b/internal/controller/operator/converter/v1alpha1/apis.go @@ -143,7 +143,6 @@ func ConvertScrapeConfig(promscrapeConfig *promv1alpha1.ScrapeConfig, conf *conf cs.Annotations = converter.FilterPrefixes(promscrapeConfig.Annotations, conf.FilterPrometheusConverterAnnotationPrefixes) cs.Spec.RelabelConfigs = converter.ConvertRelabelConfig(promscrapeConfig.Spec.RelabelConfigs) cs.Spec.MetricRelabelConfigs = converter.ConvertRelabelConfig(promscrapeConfig.Spec.MetricRelabelConfigs) - cs.Spec.Path = ptr.Deref(promscrapeConfig.Spec.MetricsPath, "") if promscrapeConfig.Spec.EnableCompression != nil { cs.Spec.VMScrapeParams = &vmv1beta1.VMScrapeParams{ diff --git a/internal/controller/operator/converter/v1alpha1/apis_test.go b/internal/controller/operator/converter/v1alpha1/apis_test.go index b9eb578b..bbff8505 100644 --- a/internal/controller/operator/converter/v1alpha1/apis_test.go +++ b/internal/controller/operator/converter/v1alpha1/apis_test.go @@ -9,6 +9,7 @@ import ( "github.com/google/go-cmp/cmp" promv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1" promv1alpha1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1alpha1" + "github.com/stretchr/testify/assert" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/utils/ptr" @@ -203,6 +204,7 @@ func TestConvertScrapeConfig(t *testing.T) { Spec: promv1alpha1.ScrapeConfigSpec{ KubernetesSDConfigs: []promv1alpha1.KubernetesSDConfig{ { + APIServer: ptr.To("http://1.2.3.4"), Role: promv1alpha1.Role("pod"), Selectors: []promv1alpha1.K8SSelectorConfig{ @@ -332,10 +334,177 @@ func TestConvertScrapeConfig(t *testing.T) { Spec: vmv1beta1.VMScrapeConfigSpec{}, }, }, + { + name: "with oauth2", + args: args{ + scrapeConfig: &promv1alpha1.ScrapeConfig{ + ObjectMeta: metav1.ObjectMeta{ + Name: "test", + Namespace: "test-ns", + UID: "42", + }, + Spec: promv1alpha1.ScrapeConfigSpec{ + KubernetesSDConfigs: []promv1alpha1.KubernetesSDConfig{ + { + OAuth2: &promv1.OAuth2{ + ClientID: promv1.SecretOrConfigMap{ + Secret: &corev1.SecretKeySelector{ + Key: "some-key", + }, + }, + ClientSecret: corev1.SecretKeySelector{ + Key: "secret-key", + }, + }, + Role: promv1alpha1.Role("endpointslices"), + Namespaces: &promv1alpha1.NamespaceDiscovery{ + Names: []string{"default"}, + }, + }, + }, + StaticConfigs: []promv1alpha1.StaticConfig{ + {Targets: []promv1alpha1.Target{"localhost"}}, + }, + JobName: ptr.To("some-job"), + ScrapeInterval: ptr.To(promv1.Duration("10s")), + ScrapeTimeout: ptr.To(promv1.Duration("20s")), + MetricsPath: ptr.To("/metrics/v1"), + HonorTimestamps: ptr.To(true), + HonorLabels: ptr.To(true), + SampleLimit: ptr.To(uint64(10)), + Scheme: ptr.To("http"), + Authorization: &promv1.SafeAuthorization{}, + ProxyConfig: promv1.ProxyConfig{ + ProxyURL: ptr.To("http://some-url"), + }, + }, + }, + ownerRef: true, + }, + want: vmv1beta1.VMScrapeConfig{ + ObjectMeta: metav1.ObjectMeta{ + Name: "test", + Namespace: "test-ns", + OwnerReferences: []metav1.OwnerReference{ + { + APIVersion: "monitoring.coreos.com/v1alpha1", + Kind: "ScrapeConfig", + Name: "test", + UID: "42", + Controller: ptr.To(true), + BlockOwnerDeletion: ptr.To(true), + }, + }, + }, + Spec: vmv1beta1.VMScrapeConfigSpec{ + KubernetesSDConfigs: []vmv1beta1.KubernetesSDConfig{ + { + OAuth2: &vmv1beta1.OAuth2{ + ClientID: vmv1beta1.SecretOrConfigMap{ + Secret: &corev1.SecretKeySelector{ + Key: "some-key", + }, + }, + ClientSecret: &corev1.SecretKeySelector{ + Key: "secret-key", + }, + }, + Role: "endpointslices", + Namespaces: &vmv1beta1.NamespaceDiscovery{ + Names: []string{"default"}, + }, + }, + }, + StaticConfigs: []vmv1beta1.StaticConfig{ + { + Targets: []string{"localhost"}, + }, + }, + EndpointAuth: vmv1beta1.EndpointAuth{ + Authorization: &vmv1beta1.Authorization{}, + }, + EndpointScrapeParams: vmv1beta1.EndpointScrapeParams{ + ScrapeInterval: "10s", + ScrapeTimeout: "20s", + Path: "/metrics/v1", + HonorTimestamps: ptr.To(true), + HonorLabels: ptr.To(true), + SampleLimit: 10, + Scheme: "http", + ProxyURL: ptr.To("http://some-url"), + }, + }, + }, + }, + { + name: "with common scrape params", + args: args{ + scrapeConfig: &promv1alpha1.ScrapeConfig{ + ObjectMeta: metav1.ObjectMeta{ + Name: "test", + Namespace: "test-ns", + UID: "42", + }, + Spec: promv1alpha1.ScrapeConfigSpec{ + StaticConfigs: []promv1alpha1.StaticConfig{ + {Targets: []promv1alpha1.Target{"localhost"}}, + }, + JobName: ptr.To("some-job"), + ScrapeInterval: ptr.To(promv1.Duration("10s")), + ScrapeTimeout: ptr.To(promv1.Duration("20s")), + MetricsPath: ptr.To("/metrics/v1"), + HonorTimestamps: ptr.To(true), + HonorLabels: ptr.To(true), + SampleLimit: ptr.To(uint64(10)), + Scheme: ptr.To("http"), + ProxyConfig: promv1.ProxyConfig{ + ProxyURL: ptr.To("http://some-url"), + }, + }, + }, + ownerRef: true, + }, + want: vmv1beta1.VMScrapeConfig{ + ObjectMeta: metav1.ObjectMeta{ + Name: "test", + Namespace: "test-ns", + OwnerReferences: []metav1.OwnerReference{ + { + APIVersion: "monitoring.coreos.com/v1alpha1", + Kind: "ScrapeConfig", + Name: "test", + UID: "42", + Controller: ptr.To(true), + BlockOwnerDeletion: ptr.To(true), + }, + }, + }, + Spec: vmv1beta1.VMScrapeConfigSpec{ + StaticConfigs: []vmv1beta1.StaticConfig{ + { + Targets: []string{"localhost"}, + }, + }, + EndpointScrapeParams: vmv1beta1.EndpointScrapeParams{ + ScrapeInterval: "10s", + ScrapeTimeout: "20s", + Path: "/metrics/v1", + HonorTimestamps: ptr.To(true), + HonorLabels: ptr.To(true), + SampleLimit: 10, + Scheme: "http", + ProxyURL: ptr.To("http://some-url"), + }, + }, + }, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { got := ConvertScrapeConfig(tt.args.scrapeConfig, &config.BaseOperatorConf{EnabledPrometheusConverterOwnerReferences: tt.args.ownerRef}) + if !assert.Equal(t, tt.want, *got) { + t.Fatal("expected to match") + } if !cmp.Equal(*got, tt.want) { diff := cmp.Diff(*got, tt.want) t.Fatal("not expected output with diff: ", diff) diff --git a/internal/controller/operator/factory/vmagent/nodescrape_test.go b/internal/controller/operator/factory/vmagent/nodescrape_test.go index b8dfe0af..e903fe20 100644 --- a/internal/controller/operator/factory/vmagent/nodescrape_test.go +++ b/internal/controller/operator/factory/vmagent/nodescrape_test.go @@ -99,7 +99,7 @@ relabel_configs: Path: "/metrics", Interval: "30s", Scheme: "https", - HonorLabels: true, + HonorLabels: ptr.To(true), ProxyURL: ptr.To("https://some-url"), SampleLimit: 50, SeriesLimit: 1000, diff --git a/internal/controller/operator/factory/vmagent/scrapeconfig.go b/internal/controller/operator/factory/vmagent/scrapeconfig.go index 777e1d20..947addaf 100644 --- a/internal/controller/operator/factory/vmagent/scrapeconfig.go +++ b/internal/controller/operator/factory/vmagent/scrapeconfig.go @@ -102,6 +102,9 @@ func generateScrapeConfig( yaml.MapItem{Key: "password", Value: s.Password}, ) } + if len(config.BasicAuth.UsernameFile) > 0 { + bac = append(bac, yaml.MapItem{Key: "username_file", Value: config.BasicAuth.UsernameFile}) + } if len(config.BasicAuth.PasswordFile) > 0 { bac = append(bac, yaml.MapItem{Key: "password_file", Value: config.BasicAuth.PasswordFile}) } @@ -151,6 +154,9 @@ func generateScrapeConfig( yaml.MapItem{Key: "password", Value: s.Password}, ) } + if len(config.BasicAuth.UsernameFile) > 0 { + bac = append(bac, yaml.MapItem{Key: "username_file", Value: config.BasicAuth.UsernameFile}) + } if len(config.BasicAuth.PasswordFile) > 0 { bac = append(bac, yaml.MapItem{Key: "password_file", Value: config.BasicAuth.PasswordFile}) } @@ -321,6 +327,9 @@ func generateScrapeConfig( yaml.MapItem{Key: "password", Value: s.Password}, ) } + if len(config.BasicAuth.UsernameFile) > 0 { + bac = append(bac, yaml.MapItem{Key: "username_file", Value: config.BasicAuth.UsernameFile}) + } if len(config.BasicAuth.PasswordFile) > 0 { bac = append(bac, yaml.MapItem{Key: "password_file", Value: config.BasicAuth.PasswordFile}) } diff --git a/internal/controller/operator/factory/vmagent/servicescrape_test.go b/internal/controller/operator/factory/vmagent/servicescrape_test.go index 98be68ce..2938856c 100644 --- a/internal/controller/operator/factory/vmagent/servicescrape_test.go +++ b/internal/controller/operator/factory/vmagent/servicescrape_test.go @@ -686,7 +686,7 @@ bearer_token_file: /var/run/tolen HonorTimestamps: ptr.To(true), FollowRedirects: ptr.To(true), ProxyURL: ptr.To("https://some-proxy"), - HonorLabels: true, + HonorLabels: ptr.To(true), Scheme: "https", Path: "/metrics", diff --git a/internal/controller/operator/factory/vmagent/staticscrape_test.go b/internal/controller/operator/factory/vmagent/staticscrape_test.go index dce906e9..92297618 100644 --- a/internal/controller/operator/factory/vmagent/staticscrape_test.go +++ b/internal/controller/operator/factory/vmagent/staticscrape_test.go @@ -154,7 +154,7 @@ relabel_configs: Path: "/metrics-1", Scheme: "https", ProxyURL: ptr.To("https://some-proxy"), - HonorLabels: true, + HonorLabels: ptr.To(true), HonorTimestamps: ptr.To(true), VMScrapeParams: &vmv1beta1.VMScrapeParams{ diff --git a/internal/controller/operator/factory/vmagent/vmagent_scrapeconfig.go b/internal/controller/operator/factory/vmagent/vmagent_scrapeconfig.go index 8dcb2ffe..86224bce 100644 --- a/internal/controller/operator/factory/vmagent/vmagent_scrapeconfig.go +++ b/internal/controller/operator/factory/vmagent/vmagent_scrapeconfig.go @@ -24,6 +24,7 @@ import ( "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" + "k8s.io/utils/ptr" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/metrics" ) @@ -1025,11 +1026,11 @@ func stringMapToMapSlice(m map[string]string) yaml.MapSlice { // honorLabels determines the value of honor_labels. // if overrideHonorLabels is true and user tries to set the // value to true, we want to set honor_labels to false. -func honorLabels(userHonorLabels, overrideHonorLabels bool) bool { - if userHonorLabels && overrideHonorLabels { +func honorLabels(userHonorLabels *bool, overrideHonorLabels bool) bool { + if overrideHonorLabels { return false } - return userHonorLabels + return ptr.Deref(userHonorLabels, false) } // honorTimestamps adds option to enforce honor_timestamps option in scrape_config. @@ -1389,6 +1390,9 @@ func buildProxyAuthConfig(namespace, cacheKey string, proxyAuth *vmv1beta1.Proxy yaml.MapItem{Key: "password", Value: ba.Password}, ) } + if len(proxyAuth.BasicAuth.UsernameFile) > 0 { + pa = append(pa, yaml.MapItem{Key: "username_file", Value: proxyAuth.BasicAuth.UsernameFile}) + } if len(proxyAuth.BasicAuth.PasswordFile) > 0 { pa = append(pa, yaml.MapItem{Key: "password_file", Value: proxyAuth.BasicAuth.PasswordFile}) } @@ -1556,6 +1560,9 @@ func addEndpointAuthTo(cfg yaml.MapSlice, ac vmv1beta1.EndpointAuth, key string, bac = append(bac, yaml.MapItem{Key: "password", Value: s.Password}) } } + if len(ac.BasicAuth.UsernameFile) > 0 { + bac = append(bac, yaml.MapItem{Key: "username_file", Value: ac.BasicAuth.UsernameFile}) + } if len(ac.BasicAuth.PasswordFile) > 0 { bac = append(bac, yaml.MapItem{Key: "password_file", Value: ac.BasicAuth.PasswordFile}) }