From d6bb671e7b9751eaff97cc175743484fd33e0153 Mon Sep 17 00:00:00 2001 From: f41gh7 Date: Wed, 25 Sep 2024 11:55:38 +0200 Subject: [PATCH] api/vmalertmanager: adds validation for logLevel it accepts lower and upper case values for consistency with VM logger flags. Signed-off-by: f41gh7 --- api/operator/v1beta1/vmalertmanager_types.go | 9 ++ api/operator/v1beta1/vmextra_types.go | 28 ++++- config/crd/overlay/crd.yaml | 28 ++++- docs/api.md | 100 +++++++++--------- .../factory/alertmanager/statefulset.go | 2 +- 5 files changed, 111 insertions(+), 56 deletions(-) diff --git a/api/operator/v1beta1/vmalertmanager_types.go b/api/operator/v1beta1/vmalertmanager_types.go index 0765e01c..7ca729e0 100644 --- a/api/operator/v1beta1/vmalertmanager_types.go +++ b/api/operator/v1beta1/vmalertmanager_types.go @@ -80,9 +80,11 @@ type VMAlertmanagerSpec struct { ConfigSecret string `json:"configSecret,omitempty"` // Log level for VMAlertmanager to be configured with. // +optional + // +kubebuilder:validation:Enum=debug;info;warn;error;DEBUG;INFO;WARN;ERROR LogLevel string `json:"logLevel,omitempty"` // LogFormat for VMAlertmanager to be configured with. // +optional + // +kubebuilder:validation:Enum=logfmt;json LogFormat string `json:"logFormat,omitempty"` // Retention Time duration VMAlertmanager shall retain data for. Default is '120h', @@ -190,9 +192,11 @@ type VMAlertmanagerSpec struct { // WebConfig defines configuration for webserver // https://github.com/prometheus/alertmanager/blob/main/docs/https.md + // +optional WebConfig *AlertmanagerWebConfig `json:"webConfig,omitempty"` // GossipConfig defines gossip TLS configuration for Alertmanager cluster + // +optional GossipConfig *AlertmanagerGossipConfig `json:"gossipConfig,omitempty"` CommonDefaultableParams `json:",inline,omitempty"` @@ -513,11 +517,14 @@ type AlertmanagerGossipConfig struct { // AlertmanagerWebConfig defines web server configuration for alertmanager type AlertmanagerWebConfig struct { // TLSServerConfig defines server TLS configuration for alertmanager + // +optional TLSServerConfig *TLSServerConfig `json:"tls_server_config,omitempty"` // HTTPServerConfig defines http server configuration for alertmanager web server + // +optional HTTPServerConfig *AlertmanagerHTTPConfig `json:"http_server_config,omitempty"` // BasicAuthUsers Usernames and hashed passwords that have full access to the web server // Passwords must be hashed with bcrypt + // +optional BasicAuthUsers map[string]string `json:"basic_auth_users,omitempty"` } @@ -525,8 +532,10 @@ type AlertmanagerWebConfig struct { type AlertmanagerHTTPConfig struct { // HTTP2 enables HTTP/2 support. Note that HTTP/2 is only supported with TLS. // This can not be changed on the fly. + // +optional HTTP2 bool `json:"http2,omitempty"` // Headers defines list of headers that can be added to HTTP responses. + // +optional Headers map[string]string `json:"headers,omitempty"` } diff --git a/api/operator/v1beta1/vmextra_types.go b/api/operator/v1beta1/vmextra_types.go index ce799c33..3dd1bc33 100644 --- a/api/operator/v1beta1/vmextra_types.go +++ b/api/operator/v1beta1/vmextra_types.go @@ -512,8 +512,10 @@ type StreamAggrConfig struct { DedupInterval string `json:"dedupInterval,omitempty"` // labels to drop from samples for aggregator before stream de-duplication and aggregation // +optional - DropInputLabels []string `json:"dropInputLabels,omitempty"` - IgnoreFirstIntervals int `json:"ignoreFirstIntervals,omitempty"` + DropInputLabels []string `json:"dropInputLabels,omitempty"` + // IgnoreFirstIntervals instructs to ignore first interval + // +optional + IgnoreFirstIntervals int `json:"ignoreFirstIntervals,omitempty"` // IgnoreOldSamples instructs to ignore samples with old timestamps outside the current aggregation interval. // +optional IgnoreOldSamples bool `json:"ignoreOldSamples,omitempty"` @@ -934,15 +936,21 @@ func (c *TLSConfig) BuildAssetPath(prefix, name, key string) string { // Certs defines TLS certs configuration type Certs struct { + // CertSecretRef defines reference for secret with certificate content under given key + // mutually exclusive with CertFile + // +optional CertSecretRef *v1.SecretKeySelector `json:"cert_secret_ref,omitempty"` // CertFile defines path to the pre-mounted file with certificate // mutually exclusive with CertSecretRef + // +optional CertFile string `json:"cert_file,omitempty"` // Key defines reference for secret with certificate key content under given key // mutually exclusive with KeyFile + // +optional KeySecretRef *v1.SecretKeySelector `json:"key_secret_ref,omitempty"` // KeyFile defines path to the pre-mounted file with certificate key // mutually exclusive with KeySecretRef + // +optional KeyFile string `json:"key_file,omitempty"` } @@ -950,31 +958,39 @@ type Certs struct { type TLSServerConfig struct { // ClientCASecretRef defines reference for secret with CA content under given key // mutually exclusive with ClientCAFile + // +optional ClientCASecretRef *v1.SecretKeySelector `json:"client_ca_secret_ref,omitempty"` // ClientCAFile defines path to the pre-mounted file with CA // mutually exclusive with ClientCASecretRef + // +optional ClientCAFile string `json:"client_ca_file,omitempty"` // Cert defines reference for secret with CA content under given key // mutually exclusive with CertFile // ClientAuthType defines server policy for client authentication // If you want to enable client authentication (aka mTLS), you need to use RequireAndVerifyClientCert // Note, mTLS is supported only at enterprise version of VictoriaMetrics components + // +optional // +kubebuilder:validation:Enum=NoClientCert;RequireAndVerifyClientCert ClientAuthType string `json:"client_auth_type,omitempty"` // MinVersion minimum TLS version that is acceptable. + // +optional // +kubebuilder:validation:Enum=TLS10;TLS11;TLS12;TLS13 MinVersion string `json:"min_version,omitempty"` // MaxVersion maximum TLS version that is acceptable. + // +optional // +kubebuilder:validation:Enum=TLS10;TLS11;TLS12;TLS13 MaxVersion string `json:"max_version,omitempty"` // CipherSuites defines list of supported cipher suites for TLS versions up to TLS 1.2 // https://golang.org/pkg/crypto/tls/#pkg-constants + // +optional CipherSuites []string `json:"cipher_suites,omitempty"` // CurvePreferences defines elliptic curves that will be used in an ECDHE handshake, in preference order. // https://golang.org/pkg/crypto/tls/#CurveID + // +optional CurvePreferences []string `json:"curve_preferences,omitempty"` // PreferServerCipherSuites controls whether the server selects the // client's most preferred ciphersuite + // +optional PreferServerCipherSuites bool `json:"prefer_server_cipher_suites,omitempty"` // Certs defines cert, CA and key for TLS auth Certs `json:",inline"` @@ -984,14 +1000,18 @@ type TLSServerConfig struct { type TLSClientConfig struct { // CA defines reference for secret with CA content under given key // mutually exclusive with CAFile + // +optional CASecretRef *v1.SecretKeySelector `json:"ca_secret_ref,omitempty"` // CAFile defines path to the pre-mounted file with CA // mutually exclusive with CASecretRef + // +optional CAFile string `json:"ca_file,omitempty"` // Cert defines reference for secret with CA content under given key // mutually exclusive with CertFile + // +optional InsecureSkipVerify bool `json:"insecure_skip_verify,omitempty"` // ServerName indicates a name of a server + // +optional ServerName string `json:"server_name,omitempty"` // Certs defines cert, CA and key for TLS auth Certs `json:",inline"` @@ -1047,6 +1067,7 @@ type CommonDefaultableParams struct { // DisableSelfServiceScrape controls creation of VMServiceScrape by operator // for the application. // Has priority over `VM_DISABLESELFSERVICESCRAPECREATION` operator env variable + // +optional DisableSelfServiceScrape *bool `json:"disableSelfServiceScrape,omitempty"` } @@ -1054,11 +1075,14 @@ type CommonConfigReloaderParams struct { // UseVMConfigReloader replaces prometheus-like config-reloader // with vm one. It uses secrets watch instead of file watch // which greatly increases speed of config updates + // +optional UseVMConfigReloader *bool `json:"useVMConfigReloader,omitempty"` // ConfigReloaderImageTag defines image:tag for config-reloader container + // +optional ConfigReloaderImageTag string `json:"configReloaderImageTag,omitempty"` // ConfigReloaderResources config-reloader 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 + // +optional // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Resources",xDescriptors="urn:alm:descriptor:com.tectonic.ui:resourceRequirements" ConfigReloaderResources v1.ResourceRequirements `json:"configReloaderResources,omitempty"` // ConfigReloaderExtraArgs that will be passed to VMAuths config-reloader container diff --git a/config/crd/overlay/crd.yaml b/config/crd/overlay/crd.yaml index 0fddb2a8..68fcf5c8 100644 --- a/config/crd/overlay/crd.yaml +++ b/config/crd/overlay/crd.yaml @@ -3276,6 +3276,8 @@ spec: type: string type: array ignoreFirstIntervals: + description: IgnoreFirstIntervals instructs to ignore first + interval type: integer ignoreOldSamples: description: IgnoreOldSamples instructs to ignore samples @@ -5073,6 +5075,7 @@ spec: type: string type: array ignoreFirstIntervals: + description: IgnoreFirstIntervals instructs to ignore first interval type: integer ignoreOldSamples: description: IgnoreOldSamples instructs to ignore samples with @@ -10556,7 +10559,9 @@ spec: mutually exclusive with CertSecretRef type: string cert_secret_ref: - description: SecretKeySelector selects a key of a Secret. + description: |- + CertSecretRef defines reference for secret with certificate content under given key + mutually exclusive with CertFile properties: key: description: The key of the secret to select from. Must @@ -10633,7 +10638,9 @@ spec: mutually exclusive with CertSecretRef type: string cert_secret_ref: - description: SecretKeySelector selects a key of a Secret. + description: |- + CertSecretRef defines reference for secret with certificate content under given key + mutually exclusive with CertFile properties: key: description: The key of the secret to select from. Must @@ -10888,9 +10895,21 @@ spec: x-kubernetes-preserve-unknown-fields: true logFormat: description: LogFormat for VMAlertmanager to be configured with. + enum: + - logfmt + - json type: string logLevel: description: Log level for VMAlertmanager to be configured with. + enum: + - debug + - info + - warn + - error + - DEBUG + - INFO + - WARN + - ERROR type: string minReadySeconds: description: |- @@ -11878,7 +11897,9 @@ spec: mutually exclusive with CertSecretRef type: string cert_secret_ref: - description: SecretKeySelector selects a key of a Secret. + description: |- + CertSecretRef defines reference for secret with certificate content under given key + mutually exclusive with CertFile properties: key: description: The key of the secret to select from. Must @@ -29220,6 +29241,7 @@ spec: type: string type: array ignoreFirstIntervals: + description: IgnoreFirstIntervals instructs to ignore first interval type: integer ignoreOldSamples: description: IgnoreOldSamples instructs to ignore samples with diff --git a/docs/api.md b/docs/api.md index f76a2c97..63444207 100644 --- a/docs/api.md +++ b/docs/api.md @@ -90,8 +90,8 @@ _Appears in:_ | Field | Description | Scheme | Required | | --- | --- | --- | --- | -| `headers` | Headers defines list of headers that can be added to HTTP responses. | _object (keys:string, values:string)_ | true | -| `http2` | HTTP2 enables HTTP/2 support. Note that HTTP/2 is only supported with TLS.
This can not be changed on the fly. | _boolean_ | true | +| `headers` | Headers defines list of headers that can be added to HTTP responses. | _object (keys:string, values:string)_ | false | +| `http2` | HTTP2 enables HTTP/2 support. Note that HTTP/2 is only supported with TLS.
This can not be changed on the fly. | _boolean_ | false | @@ -257,10 +257,10 @@ _Appears in:_ | Field | Description | Scheme | Required | | --- | --- | --- | --- | -| `cert_file` | CertFile defines path to the pre-mounted file with certificate
mutually exclusive with CertSecretRef | _string_ | true | -| `cert_secret_ref` | | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | true | -| `key_file` | KeyFile defines path to the pre-mounted file with certificate key
mutually exclusive with KeySecretRef | _string_ | true | -| `key_secret_ref` | Key defines reference for secret with certificate key content under given key
mutually exclusive with KeyFile | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | true | +| `cert_file` | CertFile defines path to the pre-mounted file with certificate
mutually exclusive with CertSecretRef | _string_ | false | +| `cert_secret_ref` | CertSecretRef defines reference for secret with certificate content under given key
mutually exclusive with CertFile | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | +| `key_file` | KeyFile defines path to the pre-mounted file with certificate key
mutually exclusive with KeySecretRef | _string_ | false | +| `key_secret_ref` | Key defines reference for secret with certificate key content under given key
mutually exclusive with KeyFile | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | #### CommonApplicationDeploymentParams @@ -330,9 +330,9 @@ _Appears in:_ | Field | Description | Scheme | Required | | --- | --- | --- | --- | | `configReloaderExtraArgs` | ConfigReloaderExtraArgs that will be passed to VMAuths config-reloader container
for example resyncInterval: "30s" | _object (keys:string, values:string)_ | false | -| `configReloaderImageTag` | ConfigReloaderImageTag defines image:tag for config-reloader container | _string_ | true | -| `configReloaderResources` | ConfigReloaderResources config-reloader 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 | _[ResourceRequirements](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core)_ | true | -| `useVMConfigReloader` | UseVMConfigReloader replaces prometheus-like config-reloader
with vm one. It uses secrets watch instead of file watch
which greatly increases speed of config updates | _boolean_ | true | +| `configReloaderImageTag` | ConfigReloaderImageTag defines image:tag for config-reloader container | _string_ | false | +| `configReloaderResources` | ConfigReloaderResources config-reloader 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 | _[ResourceRequirements](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core)_ | false | +| `useVMConfigReloader` | UseVMConfigReloader replaces prometheus-like config-reloader
with vm one. It uses secrets watch instead of file watch
which greatly increases speed of config updates | _boolean_ | false | #### CommonDefaultableParams @@ -354,7 +354,7 @@ _Appears in:_ | Field | Description | Scheme | Required | | --- | --- | --- | --- | -| `disableSelfServiceScrape` | DisableSelfServiceScrape controls creation of VMServiceScrape by operator
for the application.
Has priority over `VM_DISABLESELFSERVICESCRAPECREATION` operator env variable | _boolean_ | true | +| `disableSelfServiceScrape` | DisableSelfServiceScrape controls creation of VMServiceScrape by operator
for the application.
Has priority over `VM_DISABLESELFSERVICESCRAPECREATION` operator env variable | _boolean_ | false | | `image` | Image - docker image settings
if no specified operator uses default version from operator config | _[Image](#image)_ | false | | `port` | Port listen address | _string_ | false | | `resources` | 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 | _[ResourceRequirements](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core)_ | false | @@ -1721,14 +1721,14 @@ _Appears in:_ | Field | Description | Scheme | Required | | --- | --- | --- | --- | -| `ca_file` | CAFile defines path to the pre-mounted file with CA
mutually exclusive with CASecretRef | _string_ | true | -| `ca_secret_ref` | CA defines reference for secret with CA content under given key
mutually exclusive with CAFile | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | true | -| `cert_file` | CertFile defines path to the pre-mounted file with certificate
mutually exclusive with CertSecretRef | _string_ | true | -| `cert_secret_ref` | | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | true | -| `insecure_skip_verify` | Cert defines reference for secret with CA content under given key
mutually exclusive with CertFile | _boolean_ | true | -| `key_file` | KeyFile defines path to the pre-mounted file with certificate key
mutually exclusive with KeySecretRef | _string_ | true | -| `key_secret_ref` | Key defines reference for secret with certificate key content under given key
mutually exclusive with KeyFile | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | true | -| `server_name` | ServerName indicates a name of a server | _string_ | true | +| `ca_file` | CAFile defines path to the pre-mounted file with CA
mutually exclusive with CASecretRef | _string_ | false | +| `ca_secret_ref` | CA defines reference for secret with CA content under given key
mutually exclusive with CAFile | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | +| `cert_file` | CertFile defines path to the pre-mounted file with certificate
mutually exclusive with CertSecretRef | _string_ | false | +| `cert_secret_ref` | CertSecretRef defines reference for secret with certificate content under given key
mutually exclusive with CertFile | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | +| `insecure_skip_verify` | Cert defines reference for secret with CA content under given key
mutually exclusive with CertFile | _boolean_ | false | +| `key_file` | KeyFile defines path to the pre-mounted file with certificate key
mutually exclusive with KeySecretRef | _string_ | false | +| `key_secret_ref` | Key defines reference for secret with certificate key content under given key
mutually exclusive with KeyFile | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | +| `server_name` | ServerName indicates a name of a server | _string_ | false | #### TLSConfig @@ -1787,18 +1787,18 @@ _Appears in:_ | Field | Description | Scheme | Required | | --- | --- | --- | --- | -| `cert_file` | CertFile defines path to the pre-mounted file with certificate
mutually exclusive with CertSecretRef | _string_ | true | -| `cert_secret_ref` | | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | true | -| `cipher_suites` | CipherSuites defines list of supported cipher suites for TLS versions up to TLS 1.2
https://golang.org/pkg/crypto/tls/#pkg-constants | _string array_ | true | -| `client_auth_type` | Cert defines reference for secret with CA content under given key
mutually exclusive with CertFile
ClientAuthType defines server policy for client authentication
If you want to enable client authentication (aka mTLS), you need to use RequireAndVerifyClientCert
Note, mTLS is supported only at enterprise version of VictoriaMetrics components | _string_ | true | -| `client_ca_file` | ClientCAFile defines path to the pre-mounted file with CA
mutually exclusive with ClientCASecretRef | _string_ | true | -| `client_ca_secret_ref` | ClientCASecretRef defines reference for secret with CA content under given key
mutually exclusive with ClientCAFile | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | true | -| `curve_preferences` | CurvePreferences defines elliptic curves that will be used in an ECDHE handshake, in preference order.
https://golang.org/pkg/crypto/tls/#CurveID | _string array_ | true | -| `key_file` | KeyFile defines path to the pre-mounted file with certificate key
mutually exclusive with KeySecretRef | _string_ | true | -| `key_secret_ref` | Key defines reference for secret with certificate key content under given key
mutually exclusive with KeyFile | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | true | -| `max_version` | MaxVersion maximum TLS version that is acceptable. | _string_ | true | -| `min_version` | MinVersion minimum TLS version that is acceptable. | _string_ | true | -| `prefer_server_cipher_suites` | PreferServerCipherSuites controls whether the server selects the
client's most preferred ciphersuite | _boolean_ | true | +| `cert_file` | CertFile defines path to the pre-mounted file with certificate
mutually exclusive with CertSecretRef | _string_ | false | +| `cert_secret_ref` | CertSecretRef defines reference for secret with certificate content under given key
mutually exclusive with CertFile | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | +| `cipher_suites` | CipherSuites defines list of supported cipher suites for TLS versions up to TLS 1.2
https://golang.org/pkg/crypto/tls/#pkg-constants | _string array_ | false | +| `client_auth_type` | Cert defines reference for secret with CA content under given key
mutually exclusive with CertFile
ClientAuthType defines server policy for client authentication
If you want to enable client authentication (aka mTLS), you need to use RequireAndVerifyClientCert
Note, mTLS is supported only at enterprise version of VictoriaMetrics components | _string_ | false | +| `client_ca_file` | ClientCAFile defines path to the pre-mounted file with CA
mutually exclusive with ClientCASecretRef | _string_ | false | +| `client_ca_secret_ref` | ClientCASecretRef defines reference for secret with CA content under given key
mutually exclusive with ClientCAFile | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | +| `curve_preferences` | CurvePreferences defines elliptic curves that will be used in an ECDHE handshake, in preference order.
https://golang.org/pkg/crypto/tls/#CurveID | _string array_ | false | +| `key_file` | KeyFile defines path to the pre-mounted file with certificate key
mutually exclusive with KeySecretRef | _string_ | false | +| `key_secret_ref` | Key defines reference for secret with certificate key content under given key
mutually exclusive with KeyFile | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false | +| `max_version` | MaxVersion maximum TLS version that is acceptable. | _string_ | false | +| `min_version` | MinVersion minimum TLS version that is acceptable. | _string_ | false | +| `prefer_server_cipher_suites` | PreferServerCipherSuites controls whether the server selects the
client's most preferred ciphersuite | _boolean_ | false | #### TargetEndpoint @@ -2075,7 +2075,7 @@ _Appears in:_ | `affinity` | Affinity If specified, the pod's scheduling constraints. | _[Affinity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#affinity-v1-core)_ | false | | `configMaps` | ConfigMaps is a list of ConfigMaps in the same namespace as the Application
object, which shall be mounted into the Application container
at /etc/vm/configs/CONFIGMAP_NAME folder | _string array_ | false | | `containers` | Containers property allows to inject additions sidecars or to patch existing containers.
It can be useful for proxies, backup, etc. | _[Container](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#container-v1-core) array_ | false | -| `disableSelfServiceScrape` | DisableSelfServiceScrape controls creation of VMServiceScrape by operator
for the application.
Has priority over `VM_DISABLESELFSERVICESCRAPECREATION` operator env variable | _boolean_ | true | +| `disableSelfServiceScrape` | DisableSelfServiceScrape controls creation of VMServiceScrape by operator
for the application.
Has priority over `VM_DISABLESELFSERVICESCRAPECREATION` operator env variable | _boolean_ | false | | `dnsConfig` | Specifies the DNS parameters of a pod.
Parameters specified here will be merged to the generated DNS
configuration based on DNSPolicy. | _[PodDNSConfig](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#poddnsconfig-v1-core)_ | false | | `dnsPolicy` | DNSPolicy sets DNS policy for the pod | _[DNSPolicy](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#dnspolicy-v1-core)_ | false | | `extraArgs` | ExtraArgs that will be passed to the application container
for example remoteWrite.tmpDataPath: /tmp | _object (keys:string, values:string)_ | false | @@ -2209,10 +2209,10 @@ _Appears in:_ | `claimTemplates` | ClaimTemplates allows adding additional VolumeClaimTemplates for VMAgent in StatefulMode | _[PersistentVolumeClaim](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#persistentvolumeclaim-v1-core) array_ | true | | `configMaps` | ConfigMaps is a list of ConfigMaps in the same namespace as the Application
object, which shall be mounted into the Application container
at /etc/vm/configs/CONFIGMAP_NAME folder | _string array_ | false | | `configReloaderExtraArgs` | ConfigReloaderExtraArgs that will be passed to VMAuths config-reloader container
for example resyncInterval: "30s" | _object (keys:string, values:string)_ | false | -| `configReloaderImageTag` | ConfigReloaderImageTag defines image:tag for config-reloader container | _string_ | true | -| `configReloaderResources` | ConfigReloaderResources config-reloader 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 | _[ResourceRequirements](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core)_ | true | +| `configReloaderImageTag` | ConfigReloaderImageTag defines image:tag for config-reloader container | _string_ | false | +| `configReloaderResources` | ConfigReloaderResources config-reloader 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 | _[ResourceRequirements](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core)_ | false | | `containers` | Containers property allows to inject additions sidecars or to patch existing containers.
It can be useful for proxies, backup, etc. | _[Container](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#container-v1-core) array_ | false | -| `disableSelfServiceScrape` | DisableSelfServiceScrape controls creation of VMServiceScrape by operator
for the application.
Has priority over `VM_DISABLESELFSERVICESCRAPECREATION` operator env variable | _boolean_ | true | +| `disableSelfServiceScrape` | DisableSelfServiceScrape controls creation of VMServiceScrape by operator
for the application.
Has priority over `VM_DISABLESELFSERVICESCRAPECREATION` operator env variable | _boolean_ | false | | `dnsConfig` | Specifies the DNS parameters of a pod.
Parameters specified here will be merged to the generated DNS
configuration based on DNSPolicy. | _[PodDNSConfig](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#poddnsconfig-v1-core)_ | false | | `dnsPolicy` | DNSPolicy sets DNS policy for the pod | _[DNSPolicy](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#dnspolicy-v1-core)_ | false | | `enforcedNamespaceLabel` | EnforcedNamespaceLabel enforces adding a namespace label of origin for each alert
and metric that is user created. The label value will always be the namespace of the object that is
being created. | _string_ | false | @@ -2291,7 +2291,7 @@ _Appears in:_ | `updateStrategy` | UpdateStrategy - overrides default update strategy.
works only for deployments, statefulset always use OnDelete. | _[DeploymentStrategyType](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#deploymentstrategytype-v1-apps)_ | false | | `useDefaultResources` | UseDefaultResources controls resource settings
By default, operator sets built-in resource requirements | _boolean_ | false | | `useStrictSecurity` | UseStrictSecurity enables strict security mode for component
it restricts disk writes access
uses non-root user out of the box
drops not needed security permissions | _boolean_ | false | -| `useVMConfigReloader` | UseVMConfigReloader replaces prometheus-like config-reloader
with vm one. It uses secrets watch instead of file watch
which greatly increases speed of config updates | _boolean_ | true | +| `useVMConfigReloader` | UseVMConfigReloader replaces prometheus-like config-reloader
with vm one. It uses secrets watch instead of file watch
which greatly increases speed of config updates | _boolean_ | false | | `vmAgentExternalLabelName` | VMAgentExternalLabelName Name of vmAgent external label used to denote vmAgent instance
name. Defaults to the value of `prometheus`. External label will
_not_ be added when value is set to empty string (`""`). | _string_ | false | | `volumeMounts` | VolumeMounts allows configuration of additional VolumeMounts on the output Deployment/StatefulSet definition.
VolumeMounts specified will be appended to other VolumeMounts in the Application container | _[VolumeMount](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#volumemount-v1-core) array_ | false | | `volumes` | Volumes allows configuration of additional volumes on the output Deployment/StatefulSet definition.
Volumes specified will be appended to other volumes that are generated.
/ +optional | _[Volume](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#volume-v1-core) array_ | true | @@ -2388,11 +2388,11 @@ _Appears in:_ | `affinity` | Affinity If specified, the pod's scheduling constraints. | _[Affinity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#affinity-v1-core)_ | false | | `configMaps` | ConfigMaps is a list of ConfigMaps in the same namespace as the Application
object, which shall be mounted into the Application container
at /etc/vm/configs/CONFIGMAP_NAME folder | _string array_ | false | | `configReloaderExtraArgs` | ConfigReloaderExtraArgs that will be passed to VMAuths config-reloader container
for example resyncInterval: "30s" | _object (keys:string, values:string)_ | false | -| `configReloaderImageTag` | ConfigReloaderImageTag defines image:tag for config-reloader container | _string_ | true | -| `configReloaderResources` | ConfigReloaderResources config-reloader 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 | _[ResourceRequirements](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core)_ | true | +| `configReloaderImageTag` | ConfigReloaderImageTag defines image:tag for config-reloader container | _string_ | false | +| `configReloaderResources` | ConfigReloaderResources config-reloader 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 | _[ResourceRequirements](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core)_ | false | | `containers` | Containers property allows to inject additions sidecars or to patch existing containers.
It can be useful for proxies, backup, etc. | _[Container](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#container-v1-core) array_ | false | | `datasource` | Datasource Victoria Metrics or VMSelect url. Required parameter. e.g. http://127.0.0.1:8428 | _[VMAlertDatasourceSpec](#vmalertdatasourcespec)_ | true | -| `disableSelfServiceScrape` | DisableSelfServiceScrape controls creation of VMServiceScrape by operator
for the application.
Has priority over `VM_DISABLESELFSERVICESCRAPECREATION` operator env variable | _boolean_ | true | +| `disableSelfServiceScrape` | DisableSelfServiceScrape controls creation of VMServiceScrape by operator
for the application.
Has priority over `VM_DISABLESELFSERVICESCRAPECREATION` operator env variable | _boolean_ | false | | `dnsConfig` | Specifies the DNS parameters of a pod.
Parameters specified here will be merged to the generated DNS
configuration based on DNSPolicy. | _[PodDNSConfig](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#poddnsconfig-v1-core)_ | false | | `dnsPolicy` | DNSPolicy sets DNS policy for the pod | _[DNSPolicy](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#dnspolicy-v1-core)_ | false | | `enforcedNamespaceLabel` | EnforcedNamespaceLabel enforces adding a namespace label of origin for each alert
and metric that is user created. The label value will always be the namespace of the object that is
being created. | _string_ | false | @@ -2443,7 +2443,7 @@ _Appears in:_ | `updateStrategy` | UpdateStrategy - overrides default update strategy. | _[DeploymentStrategyType](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#deploymentstrategytype-v1-apps)_ | false | | `useDefaultResources` | UseDefaultResources controls resource settings
By default, operator sets built-in resource requirements | _boolean_ | false | | `useStrictSecurity` | UseStrictSecurity enables strict security mode for component
it restricts disk writes access
uses non-root user out of the box
drops not needed security permissions | _boolean_ | false | -| `useVMConfigReloader` | UseVMConfigReloader replaces prometheus-like config-reloader
with vm one. It uses secrets watch instead of file watch
which greatly increases speed of config updates | _boolean_ | true | +| `useVMConfigReloader` | UseVMConfigReloader replaces prometheus-like config-reloader
with vm one. It uses secrets watch instead of file watch
which greatly increases speed of config updates | _boolean_ | false | | `volumeMounts` | VolumeMounts allows configuration of additional VolumeMounts on the output Deployment/StatefulSet definition.
VolumeMounts specified will be appended to other VolumeMounts in the Application container | _[VolumeMount](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#volumemount-v1-core) array_ | false | | `volumes` | Volumes allows configuration of additional volumes on the output Deployment/StatefulSet definition.
Volumes specified will be appended to other volumes that are generated.
/ +optional | _[Volume](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#volume-v1-core) array_ | true | @@ -2531,21 +2531,21 @@ _Appears in:_ | `configNamespaceSelector` | ConfigNamespaceSelector defines namespace selector for VMAlertmanagerConfig.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAlertmanager namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault | _[LabelSelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#labelselector-v1-meta)_ | false | | `configRawYaml` | ConfigRawYaml - raw configuration for alertmanager,
it helps it to start without secret.
priority -> hardcoded ConfigRaw -> ConfigRaw, provided by user -> ConfigSecret. | _string_ | false | | `configReloaderExtraArgs` | ConfigReloaderExtraArgs that will be passed to VMAuths config-reloader container
for example resyncInterval: "30s" | _object (keys:string, values:string)_ | false | -| `configReloaderImageTag` | ConfigReloaderImageTag defines image:tag for config-reloader container | _string_ | true | -| `configReloaderResources` | ConfigReloaderResources config-reloader 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 | _[ResourceRequirements](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core)_ | true | +| `configReloaderImageTag` | ConfigReloaderImageTag defines image:tag for config-reloader container | _string_ | false | +| `configReloaderResources` | ConfigReloaderResources config-reloader 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 | _[ResourceRequirements](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core)_ | false | | `configSecret` | ConfigSecret is the name of a Kubernetes Secret in the same namespace as the
VMAlertmanager object, which contains configuration for this VMAlertmanager,
configuration must be inside secret key: alertmanager.yaml.
It must be created by user.
instance. Defaults to 'vmalertmanager-'
The secret is mounted into /etc/alertmanager/config. | _string_ | false | | `configSelector` | ConfigSelector defines selector for VMAlertmanagerConfig, result config will be merged with with Raw or Secret config.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAlertmanager namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault | _[LabelSelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#labelselector-v1-meta)_ | false | | `containers` | Containers property allows to inject additions sidecars or to patch existing containers.
It can be useful for proxies, backup, etc. | _[Container](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#container-v1-core) array_ | false | | `disableNamespaceMatcher` | DisableNamespaceMatcher disables top route namespace label matcher for VMAlertmanagerConfig
It may be useful if alert doesn't have namespace label for some reason | _boolean_ | false | | `disableRouteContinueEnforce` | DisableRouteContinueEnforce cancel the behavior for VMAlertmanagerConfig that always enforce first-level route continue to true | _boolean_ | false | -| `disableSelfServiceScrape` | DisableSelfServiceScrape controls creation of VMServiceScrape by operator
for the application.
Has priority over `VM_DISABLESELFSERVICESCRAPECREATION` operator env variable | _boolean_ | true | +| `disableSelfServiceScrape` | DisableSelfServiceScrape controls creation of VMServiceScrape by operator
for the application.
Has priority over `VM_DISABLESELFSERVICESCRAPECREATION` operator env variable | _boolean_ | false | | `dnsConfig` | Specifies the DNS parameters of a pod.
Parameters specified here will be merged to the generated DNS
configuration based on DNSPolicy. | _[PodDNSConfig](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#poddnsconfig-v1-core)_ | false | | `dnsPolicy` | DNSPolicy sets DNS policy for the pod | _[DNSPolicy](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#dnspolicy-v1-core)_ | false | | `enforcedTopRouteMatchers` | EnforcedTopRouteMatchers defines label matchers to be added for the top route
of VMAlertmanagerConfig
It allows to make some set of labels required for alerts.
https://prometheus.io/docs/alerting/latest/configuration/#matcher | _string array_ | true | | `externalURL` | ExternalURL the VMAlertmanager instances will be available under. This is
necessary to generate correct URLs. This is necessary if VMAlertmanager is not
served from root of a DNS name. | _string_ | false | | `extraArgs` | ExtraArgs that will be passed to the application container
for example remoteWrite.tmpDataPath: /tmp | _object (keys:string, values:string)_ | false | | `extraEnvs` | ExtraEnvs that will be passed to the application container | _[EnvVar](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#envvar-v1-core) array_ | false | -| `gossipConfig` | GossipConfig defines gossip TLS configuration for Alertmanager cluster | _[AlertmanagerGossipConfig](#alertmanagergossipconfig)_ | true | +| `gossipConfig` | GossipConfig defines gossip TLS configuration for Alertmanager cluster | _[AlertmanagerGossipConfig](#alertmanagergossipconfig)_ | false | | `hostAliases` | HostAliases provides mapping for ip and hostname,
that would be propagated to pod,
cannot be used with HostNetwork. | _[HostAlias](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#hostalias-v1-core) array_ | false | | `hostNetwork` | HostNetwork controls whether the pod may use the node network namespace | _boolean_ | false | | `host_aliases` | HostAliasesUnderScore provides mapping for ip and hostname,
that would be propagated to pod,
cannot be used with HostNetwork.
Has Priority over hostAliases field | _[HostAlias](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#hostalias-v1-core) array_ | false | @@ -2585,10 +2585,10 @@ _Appears in:_ | `topologySpreadConstraints` | TopologySpreadConstraints embedded kubernetes pod configuration option,
controls how pods are spread across your cluster among failure-domains
such as regions, zones, nodes, and other user-defined topology domains
https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ | _[TopologySpreadConstraint](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#topologyspreadconstraint-v1-core) array_ | false | | `useDefaultResources` | UseDefaultResources controls resource settings
By default, operator sets built-in resource requirements | _boolean_ | false | | `useStrictSecurity` | UseStrictSecurity enables strict security mode for component
it restricts disk writes access
uses non-root user out of the box
drops not needed security permissions | _boolean_ | false | -| `useVMConfigReloader` | UseVMConfigReloader replaces prometheus-like config-reloader
with vm one. It uses secrets watch instead of file watch
which greatly increases speed of config updates | _boolean_ | true | +| `useVMConfigReloader` | UseVMConfigReloader replaces prometheus-like config-reloader
with vm one. It uses secrets watch instead of file watch
which greatly increases speed of config updates | _boolean_ | false | | `volumeMounts` | VolumeMounts allows configuration of additional VolumeMounts on the output Deployment/StatefulSet definition.
VolumeMounts specified will be appended to other VolumeMounts in the Application container | _[VolumeMount](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#volumemount-v1-core) array_ | false | | `volumes` | Volumes allows configuration of additional volumes on the output Deployment/StatefulSet definition.
Volumes specified will be appended to other volumes that are generated.
/ +optional | _[Volume](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#volume-v1-core) array_ | true | -| `webConfig` | WebConfig defines configuration for webserver
https://github.com/prometheus/alertmanager/blob/main/docs/https.md | _[AlertmanagerWebConfig](#alertmanagerwebconfig)_ | true | +| `webConfig` | WebConfig defines configuration for webserver
https://github.com/prometheus/alertmanager/blob/main/docs/https.md | _[AlertmanagerWebConfig](#alertmanagerwebconfig)_ | false | @@ -2627,12 +2627,12 @@ _Appears in:_ | `affinity` | Affinity If specified, the pod's scheduling constraints. | _[Affinity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#affinity-v1-core)_ | false | | `configMaps` | ConfigMaps is a list of ConfigMaps in the same namespace as the Application
object, which shall be mounted into the Application container
at /etc/vm/configs/CONFIGMAP_NAME folder | _string array_ | false | | `configReloaderExtraArgs` | ConfigReloaderExtraArgs that will be passed to VMAuths config-reloader container
for example resyncInterval: "30s" | _object (keys:string, values:string)_ | false | -| `configReloaderImageTag` | ConfigReloaderImageTag defines image:tag for config-reloader container | _string_ | true | -| `configReloaderResources` | ConfigReloaderResources config-reloader 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 | _[ResourceRequirements](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core)_ | true | +| `configReloaderImageTag` | ConfigReloaderImageTag defines image:tag for config-reloader container | _string_ | false | +| `configReloaderResources` | ConfigReloaderResources config-reloader 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 | _[ResourceRequirements](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core)_ | false | | `configSecret` | ConfigSecret is the name of a Kubernetes Secret in the same namespace as the
VMAuth object, which contains auth configuration for vmauth,
configuration must be inside secret key: config.yaml.
It must be created and managed manually.
If it's defined, configuration for vmauth becomes unmanaged and operator'll not create any related secrets/config-reloaders | _string_ | false | | `containers` | Containers property allows to inject additions sidecars or to patch existing containers.
It can be useful for proxies, backup, etc. | _[Container](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#container-v1-core) array_ | false | | `default_url` | DefaultURLs backend url for non-matching paths filter
usually used for default backend with error message | _string array_ | true | -| `disableSelfServiceScrape` | DisableSelfServiceScrape controls creation of VMServiceScrape by operator
for the application.
Has priority over `VM_DISABLESELFSERVICESCRAPECREATION` operator env variable | _boolean_ | true | +| `disableSelfServiceScrape` | DisableSelfServiceScrape controls creation of VMServiceScrape by operator
for the application.
Has priority over `VM_DISABLESELFSERVICESCRAPECREATION` operator env variable | _boolean_ | false | | `discover_backend_ips` | DiscoverBackendIPs instructs discovering URLPrefix backend IPs via DNS. | _boolean_ | true | | `dnsConfig` | Specifies the DNS parameters of a pod.
Parameters specified here will be merged to the generated DNS
configuration based on DNSPolicy. | _[PodDNSConfig](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#poddnsconfig-v1-core)_ | false | | `dnsPolicy` | DNSPolicy sets DNS policy for the pod | _[DNSPolicy](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#dnspolicy-v1-core)_ | false | @@ -2681,7 +2681,7 @@ _Appears in:_ | `unauthorizedAccessConfig` | UnauthorizedAccessConfig configures access for un authorized users | _[UnauthorizedAccessConfigURLMap](#unauthorizedaccessconfigurlmap) array_ | false | | `useDefaultResources` | UseDefaultResources controls resource settings
By default, operator sets built-in resource requirements | _boolean_ | false | | `useStrictSecurity` | UseStrictSecurity enables strict security mode for component
it restricts disk writes access
uses non-root user out of the box
drops not needed security permissions | _boolean_ | false | -| `useVMConfigReloader` | UseVMConfigReloader replaces prometheus-like config-reloader
with vm one. It uses secrets watch instead of file watch
which greatly increases speed of config updates | _boolean_ | true | +| `useVMConfigReloader` | UseVMConfigReloader replaces prometheus-like config-reloader
with vm one. It uses secrets watch instead of file watch
which greatly increases speed of config updates | _boolean_ | false | | `userNamespaceSelector` | UserNamespaceSelector Namespaces to be selected for VMAuth discovery.
Works in combination with Selector.
NamespaceSelector nil - only objects at VMAuth namespace.
Selector nil - only objects at NamespaceSelector namespaces.
If both nil - behaviour controlled by selectAllByDefault | _[LabelSelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#labelselector-v1-meta)_ | false | | `userSelector` | UserSelector defines VMUser to be selected for config file generation.
Works in combination with NamespaceSelector.
NamespaceSelector nil - only objects at VMAuth namespace.
If both nil - behaviour controlled by selectAllByDefault | _[LabelSelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#labelselector-v1-meta)_ | false | | `volumeMounts` | VolumeMounts allows configuration of additional VolumeMounts on the output Deployment/StatefulSet definition.
VolumeMounts specified will be appended to other VolumeMounts in the Application container | _[VolumeMount](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#volumemount-v1-core) array_ | false | @@ -3255,7 +3255,7 @@ _Appears in:_ | `affinity` | Affinity If specified, the pod's scheduling constraints. | _[Affinity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#affinity-v1-core)_ | false | | `configMaps` | ConfigMaps is a list of ConfigMaps in the same namespace as the Application
object, which shall be mounted into the Application container
at /etc/vm/configs/CONFIGMAP_NAME folder | _string array_ | false | | `containers` | Containers property allows to inject additions sidecars or to patch existing containers.
It can be useful for proxies, backup, etc. | _[Container](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#container-v1-core) array_ | false | -| `disableSelfServiceScrape` | DisableSelfServiceScrape controls creation of VMServiceScrape by operator
for the application.
Has priority over `VM_DISABLESELFSERVICESCRAPECREATION` operator env variable | _boolean_ | true | +| `disableSelfServiceScrape` | DisableSelfServiceScrape controls creation of VMServiceScrape by operator
for the application.
Has priority over `VM_DISABLESELFSERVICESCRAPECREATION` operator env variable | _boolean_ | false | | `dnsConfig` | Specifies the DNS parameters of a pod.
Parameters specified here will be merged to the generated DNS
configuration based on DNSPolicy. | _[PodDNSConfig](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#poddnsconfig-v1-core)_ | false | | `dnsPolicy` | DNSPolicy sets DNS policy for the pod | _[DNSPolicy](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#dnspolicy-v1-core)_ | false | | `extraArgs` | ExtraArgs that will be passed to the application container
for example remoteWrite.tmpDataPath: /tmp | _object (keys:string, values:string)_ | false | diff --git a/internal/controller/operator/factory/alertmanager/statefulset.go b/internal/controller/operator/factory/alertmanager/statefulset.go index 191710f5..2da9eb04 100644 --- a/internal/controller/operator/factory/alertmanager/statefulset.go +++ b/internal/controller/operator/factory/alertmanager/statefulset.go @@ -188,7 +188,7 @@ func makeStatefulSetSpec(cr *vmv1beta1.VMAlertmanager) (*appsv1.StatefulSetSpec, amArgs = append(amArgs, fmt.Sprintf("--web.route-prefix=%s", webRoutePrefix)) if cr.Spec.LogLevel != "" && cr.Spec.LogLevel != "info" { - amArgs = append(amArgs, fmt.Sprintf("--log.level=%s", cr.Spec.LogLevel)) + amArgs = append(amArgs, fmt.Sprintf("--log.level=%s", strings.ToLower(cr.Spec.LogLevel))) } if cr.Spec.LogFormat != "" {