From 4a0f21ef8c785973ce7911ebcd32fe907bbe9cc7 Mon Sep 17 00:00:00 2001 From: Ashwin Sriram <116557116+AshwinSriram11@users.noreply.github.com> Date: Mon, 5 Jan 2026 15:42:44 +0530 Subject: [PATCH] chore: enable noBools linter (#8064) --- .golangci-kal.yml | 3 +- pkg/apis/monitoring/v1/alertmanager_types.go | 16 ++-- pkg/apis/monitoring/v1/http_config.go | 4 +- pkg/apis/monitoring/v1/podmonitor_types.go | 8 +- pkg/apis/monitoring/v1/prometheus_types.go | 80 ++++++++-------- pkg/apis/monitoring/v1/thanos_types.go | 10 +- pkg/apis/monitoring/v1/tls_types.go | 2 +- pkg/apis/monitoring/v1/types.go | 28 +++--- .../v1alpha1/alertmanager_config_types.go | 60 ++++++------ .../monitoring/v1alpha1/scrapeconfig_types.go | 92 +++++++++---------- .../v1beta1/alertmanager_config_types.go | 56 +++++------ 11 files changed, 180 insertions(+), 179 deletions(-) diff --git a/.golangci-kal.yml b/.golangci-kal.yml index c165ef65c..99fbfb5ad 100644 --- a/.golangci-kal.yml +++ b/.golangci-kal.yml @@ -23,6 +23,7 @@ linters: # Whenever a new linter is added, it should not break the backward # compatibility of existing APIs (at least for v1 APIs). enable: + - "nobools" - "commentstart" - "conflictingmarkers" - "duplicatemarkers" @@ -64,4 +65,4 @@ linters: # KAL only validates the API folders. - path-except: pkg/apis/monitoring/ linters: - - kubeapilinter + - kubeapilinter \ No newline at end of file diff --git a/pkg/apis/monitoring/v1/alertmanager_types.go b/pkg/apis/monitoring/v1/alertmanager_types.go index ff8be64a0..1c6165c00 100644 --- a/pkg/apis/monitoring/v1/alertmanager_types.go +++ b/pkg/apis/monitoring/v1/alertmanager_types.go @@ -198,7 +198,7 @@ type AlertmanagerSpec struct { // paused if set to true all actions on the underlying managed objects are not // going to be performed, except for delete actions. // +optional - Paused bool `json:"paused,omitempty"` + Paused bool `json:"paused,omitempty"` // nolint:kubeapilinter // nodeSelector defines which Nodes the Pods are scheduled on. // +optional //nolint:kubeapilinter // standard Kubernetes node selector format @@ -229,7 +229,7 @@ type AlertmanagerSpec struct { DNSConfig *PodDNSConfig `json:"dnsConfig,omitempty"` // enableServiceLinks defines whether information about services should be injected into pod's environment variables // +optional - EnableServiceLinks *bool `json:"enableServiceLinks,omitempty"` + EnableServiceLinks *bool `json:"enableServiceLinks,omitempty"` // nolint:kubeapilinter // serviceName defines the service name used by the underlying StatefulSet(s) as the governing service. // If defined, the Service must be created before the Alertmanager resource in the same namespace and it must define a selector that matches the pod labels. // If empty, the operator will create and manage a headless service named `alertmanager-operated` for Alertmanager resources. @@ -246,7 +246,7 @@ type AlertmanagerSpec struct { // does not bind against the Pod IP. Note this is only for the Alertmanager // UI, not the gossip communication. // +optional - ListenLocal bool `json:"listenLocal,omitempty"` + ListenLocal bool `json:"listenLocal,omitempty"` // nolint:kubeapilinter // podManagementPolicy defines the policy for creating/deleting pods when // scaling up and down. @@ -314,7 +314,7 @@ type AlertmanagerSpec struct { // forceEnableClusterMode ensures Alertmanager does not deactivate the cluster mode when running with a single replica. // Use case is e.g. spanning an Alertmanager cluster across Kubernetes clusters with a single replica in each. // +optional - ForceEnableClusterMode bool `json:"forceEnableClusterMode,omitempty"` + ForceEnableClusterMode bool `json:"forceEnableClusterMode,omitempty"` // nolint:kubeapilinter // alertmanagerConfigSelector defines the selector to be used for to merge and configure Alertmanager with. // +optional AlertmanagerConfigSelector *metav1.LabelSelector `json:"alertmanagerConfigSelector,omitempty"` @@ -370,7 +370,7 @@ type AlertmanagerSpec struct { // automountServiceAccountToken defines whether a service account token should be automatically mounted in the pod. // If the service account has `automountServiceAccountToken: true`, set the field to `false` to opt out of automounting API credentials. // +optional - AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty"` + AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty"` // nolint:kubeapilinter // enableFeatures defines the Alertmanager's feature flags. By default, no features are enabled. // Enabling features which are disabled by default is entirely outside the // scope of what the maintainers will support and by doing so, you accept @@ -406,7 +406,7 @@ type AlertmanagerSpec struct { // Starting Kubernetes 1.33, the feature is enabled by default. // // +optional - HostUsers *bool `json:"hostUsers,omitempty"` + HostUsers *bool `json:"hostUsers,omitempty"` // nolint:kubeapilinter } type AlertmanagerConfigMatcherStrategy struct { @@ -524,7 +524,7 @@ type AlertmanagerStatus struct { // paused defines whether any actions on the underlying managed objects are // being performed. Only delete actions will be performed. // +optional - Paused bool `json:"paused"` + Paused bool `json:"paused"` // nolint:kubeapilinter // replicas defines the total number of non-terminated pods targeted by this Alertmanager // object (their labels match the selector). // +optional @@ -628,7 +628,7 @@ type GlobalSMTPConfig struct { // requireTLS defines the default SMTP TLS requirement. // Note that Go does not support unencrypted connections to remote SMTP endpoints. // +optional - RequireTLS *bool `json:"requireTLS,omitempty"` + RequireTLS *bool `json:"requireTLS,omitempty"` // nolint:kubeapilinter // tlsConfig defines the default TLS configuration for SMTP receivers // +optional diff --git a/pkg/apis/monitoring/v1/http_config.go b/pkg/apis/monitoring/v1/http_config.go index 7742aa39c..1590d23e0 100644 --- a/pkg/apis/monitoring/v1/http_config.go +++ b/pkg/apis/monitoring/v1/http_config.go @@ -105,12 +105,12 @@ type HTTPConfigWithoutTLS struct { // redirects. // // +optional - FollowRedirects *bool `json:"followRedirects,omitempty"` + FollowRedirects *bool `json:"followRedirects,omitempty"` // nolint:kubeapilinter // enableHttp2 can be used to disable HTTP2. // // +optional - EnableHTTP2 *bool `json:"enableHttp2,omitempty"` + EnableHTTP2 *bool `json:"enableHttp2,omitempty"` // nolint:kubeapilinter } // Validate semantically validates the given HTTPConfigWithoutTLS. diff --git a/pkg/apis/monitoring/v1/podmonitor_types.go b/pkg/apis/monitoring/v1/podmonitor_types.go index 80f97cb35..d7da9bdca 100644 --- a/pkg/apis/monitoring/v1/podmonitor_types.go +++ b/pkg/apis/monitoring/v1/podmonitor_types.go @@ -287,13 +287,13 @@ type PodMetricsEndpoint struct { // honorLabels when true preserves the metric's labels when they collide // with the target's labels. // +optional - HonorLabels bool `json:"honorLabels,omitempty"` + HonorLabels bool `json:"honorLabels,omitempty"` // nolint:kubeapilinter // honorTimestamps defines whether Prometheus preserves the timestamps // when exposed by the target. // // +optional - HonorTimestamps *bool `json:"honorTimestamps,omitempty"` + HonorTimestamps *bool `json:"honorTimestamps,omitempty"` // nolint:kubeapilinter // trackTimestampsStaleness defines whether Prometheus tracks staleness of // the metrics that have an explicit timestamp present in scraped data. @@ -302,7 +302,7 @@ type PodMetricsEndpoint struct { // It requires Prometheus >= v2.48.0. // // +optional - TrackTimestampsStaleness *bool `json:"trackTimestampsStaleness,omitempty"` + TrackTimestampsStaleness *bool `json:"trackTimestampsStaleness,omitempty"` // nolint:kubeapilinter // metricRelabelings defines the relabeling rules to apply to the // samples before ingestion. @@ -330,7 +330,7 @@ type PodMetricsEndpoint struct { // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase // // +optional - FilterRunning *bool `json:"filterRunning,omitempty"` + FilterRunning *bool `json:"filterRunning,omitempty"` // nolint:kubeapilinter HTTPConfigWithProxy `json:",inline"` } diff --git a/pkg/apis/monitoring/v1/prometheus_types.go b/pkg/apis/monitoring/v1/prometheus_types.go index d2f204075..75bdb4e88 100644 --- a/pkg/apis/monitoring/v1/prometheus_types.go +++ b/pkg/apis/monitoring/v1/prometheus_types.go @@ -221,7 +221,7 @@ type CommonPrometheusFields struct { // paused defines when a Prometheus deployment is paused, no actions except for deletion // will be performed on the underlying objects. // +optional - Paused bool `json:"paused,omitempty"` + Paused bool `json:"paused,omitempty"` // nolint:kubeapilinter // image defines the container image name for Prometheus. If specified, it takes precedence // over the `spec.baseImage`, `spec.tag` and `spec.sha` fields. @@ -350,7 +350,7 @@ type CommonPrometheusFields struct { // // It requires Prometheus >= v2.33.0. // +optional - EnableRemoteWriteReceiver bool `json:"enableRemoteWriteReceiver,omitempty"` + EnableRemoteWriteReceiver bool `json:"enableRemoteWriteReceiver,omitempty"` // nolint:kubeapilinter // enableOTLPReceiver defines the Prometheus to be used as a receiver for the OTLP Metrics protocol. // @@ -358,7 +358,7 @@ type CommonPrometheusFields struct { // // It requires Prometheus >= v2.47.0. // +optional - EnableOTLPReceiver *bool `json:"enableOTLPReceiver,omitempty"` + EnableOTLPReceiver *bool `json:"enableOTLPReceiver,omitempty"` // nolint:kubeapilinter // remoteWriteReceiverMessageVersions list of the protobuf message versions to accept when receiving the // remote writes. @@ -444,7 +444,7 @@ type CommonPrometheusFields struct { // **Warning:** be aware that by default, Prometheus requires the service account token for Kubernetes service discovery. // It is possible to use strategic merge patch to project the service account token into the 'prometheus' container. // +optional - AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty"` + AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty"` // nolint:kubeapilinter // secrets defines a list of Secrets in the same namespace as the Prometheus // object, which shall be mounted into the Prometheus Pods. @@ -498,7 +498,7 @@ type CommonPrometheusFields struct { // instead of the Pod IP's address. // // +optional - ListenLocal bool `json:"listenLocal,omitempty"` + ListenLocal bool `json:"listenLocal,omitempty"` // nolint:kubeapilinter // podManagementPolicy defines the policy for creating/deleting pods when // scaling up and down. @@ -515,7 +515,7 @@ type CommonPrometheusFields struct { // enableServiceLinks defines whether information about services should be injected into pod's environment variables // +optional - EnableServiceLinks *bool `json:"enableServiceLinks,omitempty"` + EnableServiceLinks *bool `json:"enableServiceLinks,omitempty"` // nolint:kubeapilinter // containers allows injecting additional containers or modifying operator // generated containers. This can be used to allow adding an authentication @@ -602,19 +602,19 @@ type CommonPrometheusFields struct { // In practice,`OverrideHonorLabels:true` enforces `honorLabels:false` // for all ServiceMonitor, PodMonitor and ScrapeConfig objects. // +optional - OverrideHonorLabels bool `json:"overrideHonorLabels,omitempty"` + OverrideHonorLabels bool `json:"overrideHonorLabels,omitempty"` // nolint:kubeapilinter // overrideHonorTimestamps when true, Prometheus ignores the timestamps for all the targets created // from service and pod monitors. // Otherwise the HonorTimestamps field of the service or pod monitor applies. // +optional - OverrideHonorTimestamps bool `json:"overrideHonorTimestamps,omitempty"` + OverrideHonorTimestamps bool `json:"overrideHonorTimestamps,omitempty"` // nolint:kubeapilinter // ignoreNamespaceSelectors when true, `spec.namespaceSelector` from all PodMonitor, ServiceMonitor // and Probe objects will be ignored. They will only discover targets // within the namespace of the PodMonitor, ServiceMonitor and Probe // object. // +optional - IgnoreNamespaceSelectors bool `json:"ignoreNamespaceSelectors,omitempty"` + IgnoreNamespaceSelectors bool `json:"ignoreNamespaceSelectors,omitempty"` // nolint:kubeapilinter // enforcedNamespaceLabel when not empty, a label will be added to: // @@ -769,13 +769,13 @@ type CommonPrometheusFields struct { // It requires Prometheus >= v3.4.0. // // +optional - ConvertClassicHistogramsToNHCB *bool `json:"convertClassicHistogramsToNHCB,omitempty"` + ConvertClassicHistogramsToNHCB *bool `json:"convertClassicHistogramsToNHCB,omitempty"` // nolint:kubeapilinter // scrapeNativeHistograms defines whether to enable scraping of native histograms. // It requires Prometheus >= v3.8.0. // // +optional - ScrapeNativeHistograms *bool `json:"scrapeNativeHistograms,omitempty"` + ScrapeNativeHistograms *bool `json:"scrapeNativeHistograms,omitempty"` // nolint:kubeapilinter // scrapeClassicHistograms defines whether to scrape a classic histogram that is also exposed as a native histogram. // @@ -784,7 +784,7 @@ type CommonPrometheusFields struct { // It requires Prometheus >= v3.5.0. // // +optional - ScrapeClassicHistograms *bool `json:"scrapeClassicHistograms,omitempty"` + ScrapeClassicHistograms *bool `json:"scrapeClassicHistograms,omitempty"` // nolint:kubeapilinter // minReadySeconds defines the minimum number of seconds for which a newly created Pod should be ready // without any of its container crashing for it to be considered available. @@ -824,7 +824,7 @@ type CommonPrometheusFields struct { // Requires Prometheus v2.11.0 and above. // // +optional - WALCompression *bool `json:"walCompression,omitempty"` + WALCompression *bool `json:"walCompression,omitempty"` // nolint:kubeapilinter // excludedFromEnforcement defines the list of references to PodMonitor, ServiceMonitor, Probe and PrometheusRule objects // to be excluded from enforcing a namespace label of origin. @@ -844,7 +844,7 @@ type CommonPrometheusFields struct { // to a different value). // // +optional - HostNetwork bool `json:"hostNetwork,omitempty"` + HostNetwork bool `json:"hostNetwork,omitempty"` // nolint:kubeapilinter // podTargetLabels are appended to the `spec.podTargetLabels` field of all // PodMonitor and ServiceMonitor objects. @@ -1001,7 +1001,7 @@ type CommonPrometheusFields struct { // Starting Kubernetes 1.33, the feature is enabled by default. // // +optional - HostUsers *bool `json:"hostUsers,omitempty"` + HostUsers *bool `json:"hostUsers,omitempty"` // nolint:kubeapilinter } // Specifies the validation scheme for metric and label names. @@ -1182,7 +1182,7 @@ type PrometheusSpec struct { // When `spec.thanos.objectStorageConfig` or `spec.objectStorageConfigFile` are defined, the operator automatically // disables block compaction to avoid race conditions during block uploads (as the Thanos documentation recommends). // +optional - DisableCompaction bool `json:"disableCompaction,omitempty"` + DisableCompaction bool `json:"disableCompaction,omitempty"` // nolint:kubeapilinter // rules defines the configuration of the Prometheus rules' engine. // +optional @@ -1272,7 +1272,7 @@ type PrometheusSpec struct { // // Deprecated: this flag has no effect for Prometheus >= 2.39.0 where overlapping blocks are enabled by default. // +optional - AllowOverlappingBlocks bool `json:"allowOverlappingBlocks,omitempty"` + AllowOverlappingBlocks bool `json:"allowOverlappingBlocks,omitempty"` // nolint:kubeapilinter // exemplars related settings that are runtime reloadable. // It requires to enable the `exemplar-storage` feature flag to be effective. @@ -1300,7 +1300,7 @@ type PrometheusSpec struct { // For more information: // https://prometheus.io/docs/prometheus/latest/querying/api/#tsdb-admin-apis // +optional - EnableAdminAPI bool `json:"enableAdminAPI,omitempty"` + EnableAdminAPI bool `json:"enableAdminAPI,omitempty"` // nolint:kubeapilinter } type WhenScaledRetentionType string @@ -1339,7 +1339,7 @@ type PrometheusStatus struct { // paused defines whether any actions on the underlying managed objects are // being performed. Only delete actions will be performed. // +optional - Paused bool `json:"paused"` + Paused bool `json:"paused"` // nolint:kubeapilinter // replicas defines the total number of non-terminated pods targeted by this Prometheus deployment // (their labels match the selector). // +optional @@ -1393,7 +1393,7 @@ type AlertingSpec struct { type StorageSpec struct { // disableMountSubPath deprecated: subPath usage will be removed in a future release. // +optional - DisableMountSubPath bool `json:"disableMountSubPath,omitempty"` + DisableMountSubPath bool `json:"disableMountSubPath,omitempty"` // nolint:kubeapilinter // emptyDir to be used by the StatefulSet. // If specified, it takes precedence over `ephemeral` and `volumeClaimTemplate`. // More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir @@ -1505,21 +1505,21 @@ type ThanosSpec struct { // listenLocal is deprecated: use `grpcListenLocal` and `httpListenLocal` instead. // +optional - ListenLocal bool `json:"listenLocal,omitempty"` + ListenLocal bool `json:"listenLocal,omitempty"` // nolint:kubeapilinter // grpcListenLocal defines when true, the Thanos sidecar listens on the loopback interface instead // of the Pod IP's address for the gRPC endpoints. // // It has no effect if `listenLocal` is true. // +optional - GRPCListenLocal bool `json:"grpcListenLocal,omitempty"` + GRPCListenLocal bool `json:"grpcListenLocal,omitempty"` // nolint:kubeapilinter // httpListenLocal when true, the Thanos sidecar listens on the loopback interface instead // of the Pod IP's address for the HTTP endpoints. // // It has no effect if `listenLocal` is true. // +optional - HTTPListenLocal bool `json:"httpListenLocal,omitempty"` + HTTPListenLocal bool `json:"httpListenLocal,omitempty"` // nolint:kubeapilinter // tracingConfig defines the tracing configuration for the Thanos sidecar. // @@ -1646,7 +1646,7 @@ type RemoteWriteSpec struct { // It requires Prometheus >= v2.27.0 or Thanos >= v0.24.0. // // +optional - SendExemplars *bool `json:"sendExemplars,omitempty"` + SendExemplars *bool `json:"sendExemplars,omitempty"` // nolint:kubeapilinter // sendNativeHistograms enables sending of native histograms, also known as sparse histograms // over remote write. @@ -1654,7 +1654,7 @@ type RemoteWriteSpec struct { // It requires Prometheus >= v2.40.0 or Thanos >= v0.30.0. // // +optional - SendNativeHistograms *bool `json:"sendNativeHistograms,omitempty"` + SendNativeHistograms *bool `json:"sendNativeHistograms,omitempty"` // nolint:kubeapilinter // remoteTimeout defines the timeout for requests to the remote write endpoint. // +optional @@ -1741,7 +1741,7 @@ type RemoteWriteSpec struct { // It requires Prometheus >= v2.26.0 or Thanos >= v0.24.0. // // +optional - FollowRedirects *bool `json:"followRedirects,omitempty"` + FollowRedirects *bool `json:"followRedirects,omitempty"` // nolint:kubeapilinter // queueConfig allows tuning of the remote write queue parameters. // +optional @@ -1757,7 +1757,7 @@ type RemoteWriteSpec struct { // enableHTTP2 defines whether to enable HTTP2. // +optional - EnableHttp2 *bool `json:"enableHTTP2,omitempty"` + EnableHttp2 *bool `json:"enableHTTP2,omitempty"` // nolint:kubeapilinter // roundRobinDNS controls the DNS resolution behavior for remote-write connections. // When enabled: @@ -1775,7 +1775,7 @@ type RemoteWriteSpec struct { // It requires Prometheus >= v3.1.0 or Thanos >= v0.38.0. // // +optional - RoundRobinDNS *bool `json:"roundRobinDNS,omitempty"` + RoundRobinDNS *bool `json:"roundRobinDNS,omitempty"` // nolint:kubeapilinter } // +kubebuilder:validation:Enum=V1.0;V2.0 @@ -1822,7 +1822,7 @@ type QueueConfig struct { // This is an *experimental feature*, it may change in any upcoming release // in a breaking way. // +optional - RetryOnRateLimit bool `json:"retryOnRateLimit,omitempty"` + RetryOnRateLimit bool `json:"retryOnRateLimit,omitempty"` // nolint:kubeapilinter // sampleAgeLimit drops samples older than the limit. // It requires Prometheus >= v2.50.0 or Thanos >= v0.32.0. // @@ -1855,7 +1855,7 @@ type Sigv4 struct { // It requires Prometheus >= v2.54.0. // // +optional - UseFIPSSTSEndpoint *bool `json:"useFIPSSTSEndpoint,omitempty"` + UseFIPSSTSEndpoint *bool `json:"useFIPSSTSEndpoint,omitempty"` // nolint:kubeapilinter } // AzureAD defines the configuration for remote write's azuread parameters. @@ -1959,7 +1959,7 @@ type RemoteReadSpec struct { // readRecent defines whether reads should be made for queries for time ranges that // the local storage should have complete data for. // +optional - ReadRecent bool `json:"readRecent,omitempty"` + ReadRecent bool `json:"readRecent,omitempty"` // nolint:kubeapilinter // oauth2 configuration for the URL. // @@ -2009,14 +2009,14 @@ type RemoteReadSpec struct { // It requires Prometheus >= v2.26.0. // // +optional - FollowRedirects *bool `json:"followRedirects,omitempty"` + FollowRedirects *bool `json:"followRedirects,omitempty"` // nolint:kubeapilinter // filterExternalLabels defines whether to use the external labels as selectors for the remote read endpoint. // // It requires Prometheus >= v2.34.0. // // +optional - FilterExternalLabels *bool `json:"filterExternalLabels,omitempty"` + FilterExternalLabels *bool `json:"filterExternalLabels,omitempty"` // nolint:kubeapilinter } // RelabelConfig allows dynamic rewriting of the label set for targets, alerts, @@ -2226,7 +2226,7 @@ type AlertmanagerEndpoints struct { // enableHttp2 defines whether to enable HTTP2. // // +optional - EnableHttp2 *bool `json:"enableHttp2,omitempty"` + EnableHttp2 *bool `json:"enableHttp2,omitempty"` // nolint:kubeapilinter // relabelings defines the relabel configuration applied to the discovered Alertmanagers. // @@ -2276,7 +2276,7 @@ type MetadataConfig struct { // send defines whether metric metadata is sent to the remote storage or not. // // +optional - Send bool `json:"send,omitempty"` + Send bool `json:"send,omitempty"` // nolint:kubeapilinter // sendInterval defines how frequently metric metadata is sent to the remote storage. // @@ -2415,7 +2415,7 @@ type ScrapeClass struct { // Only one scrape class can be set as the default. // // +optional - Default *bool `json:"default,omitempty"` + Default *bool `json:"default,omitempty"` // nolint:kubeapilinter // fallbackScrapeProtocol defines the protocol to use if a scrape returns blank, unparseable, or otherwise invalid Content-Type. // It will only apply if the scrape resource doesn't specify any FallbackScrapeProtocol @@ -2496,7 +2496,7 @@ type OTLPConfig struct { // Cannot be true when `promoteResourceAttributes` is defined. // It requires Prometheus >= v3.5.0. // +optional - PromoteAllResourceAttributes *bool `json:"promoteAllResourceAttributes,omitempty"` + PromoteAllResourceAttributes *bool `json:"promoteAllResourceAttributes,omitempty"` // nolint:kubeapilinter // ignoreResourceAttributes defines the list of OpenTelemetry resource attributes to ignore when `promoteAllResourceAttributes` is true. // @@ -2528,18 +2528,18 @@ type OTLPConfig struct { // // It requires Prometheus >= v3.1.0. // +optional - KeepIdentifyingResourceAttributes *bool `json:"keepIdentifyingResourceAttributes,omitempty"` + KeepIdentifyingResourceAttributes *bool `json:"keepIdentifyingResourceAttributes,omitempty"` // nolint:kubeapilinter // convertHistogramsToNHCB defines optional translation of OTLP explicit bucket histograms into native histograms with custom buckets. // It requires Prometheus >= v3.4.0. // +optional - ConvertHistogramsToNHCB *bool `json:"convertHistogramsToNHCB,omitempty"` + ConvertHistogramsToNHCB *bool `json:"convertHistogramsToNHCB,omitempty"` // nolint:kubeapilinter // promoteScopeMetadata controls whether to promote OpenTelemetry scope metadata (i.e. name, version, schema URL, and attributes) to metric labels. // As per the OpenTelemetry specification, the aforementioned scope metadata should be identifying, i.e. made into metric labels. // It requires Prometheus >= v3.6.0. // +optional - PromoteScopeMetadata *bool `json:"promoteScopeMetadata,omitempty"` + PromoteScopeMetadata *bool `json:"promoteScopeMetadata,omitempty"` // nolint:kubeapilinter } // Validate semantically validates the given OTLPConfig section. diff --git a/pkg/apis/monitoring/v1/thanos_types.go b/pkg/apis/monitoring/v1/thanos_types.go index b5649df33..288fbc5ce 100644 --- a/pkg/apis/monitoring/v1/thanos_types.go +++ b/pkg/apis/monitoring/v1/thanos_types.go @@ -111,7 +111,7 @@ type ThanosRulerSpec struct { // paused defines when a ThanosRuler deployment is paused, no actions except for deletion // will be performed on the underlying objects. // +optional - Paused bool `json:"paused,omitempty"` + Paused bool `json:"paused,omitempty"` // nolint:kubeapilinter // replicas defines the number of thanos ruler instances to deploy. // +optional @@ -155,7 +155,7 @@ type ThanosRulerSpec struct { // enableServiceLinks defines whether information about services should be injected into pod's environment variables // +optional - EnableServiceLinks *bool `json:"enableServiceLinks,omitempty"` + EnableServiceLinks *bool `json:"enableServiceLinks,omitempty"` // nolint:kubeapilinter // priorityClassName defines the priority class assigned to the Pods // +optional @@ -211,7 +211,7 @@ type ThanosRulerSpec struct { // listenLocal defines the Thanos ruler listen on loopback, so that it // does not bind against the Pod IP. // +optional - ListenLocal bool `json:"listenLocal,omitempty"` + ListenLocal bool `json:"listenLocal,omitempty"` // nolint:kubeapilinter // podManagementPolicy defines the policy for creating/deleting pods when // scaling up and down. @@ -538,7 +538,7 @@ type ThanosRulerSpec struct { // Starting Kubernetes 1.33, the feature is enabled by default. // // +optional - HostUsers *bool `json:"hostUsers,omitempty"` + HostUsers *bool `json:"hostUsers,omitempty"` // nolint:kubeapilinter } // ThanosRulerWebSpec defines the configuration of the ThanosRuler web server. @@ -556,7 +556,7 @@ type ThanosRulerStatus struct { // paused defines whether any actions on the underlying managed objects are // being performed. Only delete actions will be performed. // +optional - Paused bool `json:"paused"` + Paused bool `json:"paused"` // nolint:kubeapilinter // replicas defines the total number of non-terminated pods targeted by this ThanosRuler deployment // (their labels match the selector). // +optional diff --git a/pkg/apis/monitoring/v1/tls_types.go b/pkg/apis/monitoring/v1/tls_types.go index 7f5afd730..51e683527 100644 --- a/pkg/apis/monitoring/v1/tls_types.go +++ b/pkg/apis/monitoring/v1/tls_types.go @@ -108,7 +108,7 @@ type SafeTLSConfig struct { // insecureSkipVerify defines how to disable target certificate validation. // +optional - InsecureSkipVerify *bool `json:"insecureSkipVerify,omitempty"` + InsecureSkipVerify *bool `json:"insecureSkipVerify,omitempty"` // nolint:kubeapilinter // minVersion defines the minimum acceptable TLS version. // diff --git a/pkg/apis/monitoring/v1/types.go b/pkg/apis/monitoring/v1/types.go index d3fb47f7d..9b779ad5e 100644 --- a/pkg/apis/monitoring/v1/types.go +++ b/pkg/apis/monitoring/v1/types.go @@ -109,7 +109,7 @@ type ProxyConfig struct { // // It requires Prometheus >= v2.43.0, Alertmanager >= v0.25.0 or Thanos >= v0.32.0. // +optional - ProxyFromEnvironment *bool `json:"proxyFromEnvironment,omitempty"` + ProxyFromEnvironment *bool `json:"proxyFromEnvironment,omitempty"` // nolint:kubeapilinter // proxyConnectHeader optionally specifies headers to send to // proxies during CONNECT requests. // @@ -227,7 +227,7 @@ type ArbitraryFSAccessThroughSMsConfig struct { // Setting this to true enhances security by preventing potential credential theft attacks. // // +optional - Deny bool `json:"deny,omitempty"` + Deny bool `json:"deny,omitempty"` // nolint:kubeapilinter } // Condition represents the state of the resources associated with the @@ -360,7 +360,7 @@ type WebHTTPConfig struct { // When TLSConfig is not configured, HTTP/2 will be disabled. // Whenever the value of the field changes, a rolling update will be triggered. // +optional - HTTP2 *bool `json:"http2,omitempty"` + HTTP2 *bool `json:"http2,omitempty"` // nolint:kubeapilinter // headers defines a list of headers that can be added to HTTP responses. // +optional Headers *WebHTTPHeaders `json:"headers,omitempty"` @@ -485,7 +485,7 @@ type WebTLSConfig struct { // the order of elements in cipherSuites, is used. // // +optional - PreferServerCipherSuites *bool `json:"preferServerCipherSuites,omitempty"` + PreferServerCipherSuites *bool `json:"preferServerCipherSuites,omitempty"` // nolint:kubeapilinter // curvePreferences defines elliptic curves that will be used in an ECDHE handshake, in preference // order. @@ -594,13 +594,13 @@ type Endpoint struct { // honorLabels defines when true the metric's labels when they collide // with the target's labels. // +optional - HonorLabels bool `json:"honorLabels,omitempty"` + HonorLabels bool `json:"honorLabels,omitempty"` // nolint:kubeapilinter // honorTimestamps defines whether Prometheus preserves the timestamps // when exposed by the target. // // +optional - HonorTimestamps *bool `json:"honorTimestamps,omitempty"` + HonorTimestamps *bool `json:"honorTimestamps,omitempty"` // nolint:kubeapilinter // trackTimestampsStaleness defines whether Prometheus tracks staleness of // the metrics that have an explicit timestamp present in scraped data. @@ -609,7 +609,7 @@ type Endpoint struct { // It requires Prometheus >= v2.48.0. // // +optional - TrackTimestampsStaleness *bool `json:"trackTimestampsStaleness,omitempty"` + TrackTimestampsStaleness *bool `json:"trackTimestampsStaleness,omitempty"` // nolint:kubeapilinter // metricRelabelings defines the relabeling rules to apply to the // samples before ingestion. @@ -637,7 +637,7 @@ type Endpoint struct { // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase // // +optional - FilterRunning *bool `json:"filterRunning,omitempty"` + FilterRunning *bool `json:"filterRunning,omitempty"` // nolint:kubeapilinter // bearerTokenFile defines the file to read bearer token for scraping the target. // @@ -656,7 +656,7 @@ type AttachMetadata struct { // permissions on the `Nodes` objects. // // +optional - Node *bool `json:"node,omitempty"` + Node *bool `json:"node,omitempty"` // nolint:kubeapilinter } // OAuth2 configures OAuth2 settings. @@ -791,7 +791,7 @@ type NamespaceSelector struct { // any defines the boolean describing whether all namespaces are selected in contrast to a // list restricting them. // +optional - Any bool `json:"any,omitempty"` + Any bool `json:"any,omitempty"` // nolint:kubeapilinter // matchNames defines the list of namespace names to select from. // +optional MatchNames []string `json:"matchNames,omitempty"` @@ -830,7 +830,7 @@ type NativeHistogramConfig struct { // It requires Prometheus >= v3.8.0. // // +optional - ScrapeNativeHistograms *bool `json:"scrapeNativeHistograms,omitempty"` + ScrapeNativeHistograms *bool `json:"scrapeNativeHistograms,omitempty"` // nolint:kubeapilinter // scrapeClassicHistograms defines whether to scrape a classic histogram that is also exposed as a native histogram. // It requires Prometheus >= v2.45.0. @@ -838,7 +838,7 @@ type NativeHistogramConfig struct { // Notice: `scrapeClassicHistograms` corresponds to the `always_scrape_classic_histograms` field in the Prometheus configuration. // // +optional - ScrapeClassicHistograms *bool `json:"scrapeClassicHistograms,omitempty"` + ScrapeClassicHistograms *bool `json:"scrapeClassicHistograms,omitempty"` // nolint:kubeapilinter // nativeHistogramBucketLimit defines ff there are more than this many buckets in a native histogram, // buckets will be merged to stay within the limit. @@ -858,7 +858,7 @@ type NativeHistogramConfig struct { // It requires Prometheus >= v3.0.0. // // +optional - ConvertClassicHistogramsToNHCB *bool `json:"convertClassicHistogramsToNHCB,omitempty"` + ConvertClassicHistogramsToNHCB *bool `json:"convertClassicHistogramsToNHCB,omitempty"` // nolint:kubeapilinter } // +kubebuilder:validation:Enum=RelabelConfig;RoleSelector @@ -991,7 +991,7 @@ type TracingConfig struct { // insecure if disabled, the client will use a secure connection. // +optional - Insecure *bool `json:"insecure",omitempty` + Insecure *bool `json:"insecure",omitempty` // nolint:kubeapilinter // headers defines the key-value pairs to be used as headers associated with gRPC or HTTP requests. // +optional diff --git a/pkg/apis/monitoring/v1alpha1/alertmanager_config_types.go b/pkg/apis/monitoring/v1alpha1/alertmanager_config_types.go index 988b7b760..b01526012 100644 --- a/pkg/apis/monitoring/v1alpha1/alertmanager_config_types.go +++ b/pkg/apis/monitoring/v1alpha1/alertmanager_config_types.go @@ -143,7 +143,7 @@ type Route struct { // sibling nodes. It will always be overridden to true for the first-level // route by the Prometheus operator. // +optional - Continue bool `json:"continue,omitempty"` + Continue bool `json:"continue,omitempty"` // nolint:kubeapilinter // routes defines the child routes. // +listType=atomic // +optional @@ -257,7 +257,7 @@ type Receiver struct { type PagerDutyConfig struct { // sendResolved defines whether or not to notify about resolved alerts. // +optional - SendResolved *bool `json:"sendResolved,omitempty"` + SendResolved *bool `json:"sendResolved,omitempty"` // nolint:kubeapilinter // routingKey defines the secret's key that contains the PagerDuty integration key (when using // Events API v2). Either this field or `serviceKey` needs to be defined. // The secret needs to be in the same namespace as the AlertmanagerConfig @@ -347,7 +347,7 @@ type PagerDutyLinkConfig struct { type DiscordConfig struct { // sendResolved defines whether or not to notify about resolved alerts. // +optional - SendResolved *bool `json:"sendResolved,omitempty"` + SendResolved *bool `json:"sendResolved,omitempty"` // nolint:kubeapilinter // apiURL defines the secret's key that contains the Discord webhook URL. // The secret needs to be in the same namespace as the AlertmanagerConfig // object and accessible by the Prometheus Operator. @@ -380,7 +380,7 @@ type DiscordConfig struct { type SlackConfig struct { // sendResolved defines whether or not to notify about resolved alerts. // +optional - SendResolved *bool `json:"sendResolved,omitempty"` + SendResolved *bool `json:"sendResolved,omitempty"` // nolint:kubeapilinter // apiURL defines the secret's key that contains the Slack webhook URL. // The secret needs to be in the same namespace as the AlertmanagerConfig // object and accessible by the Prometheus Operator. @@ -415,7 +415,7 @@ type SlackConfig struct { // shortFields determines whether fields are displayed in a compact format. // When true, fields are shown side by side when possible. // +optional - ShortFields bool `json:"shortFields,omitempty"` + ShortFields bool `json:"shortFields,omitempty"` // nolint:kubeapilinter // footer defines small text displayed at the bottom of the message attachment. // +optional Footer string `json:"footer,omitempty"` @@ -441,7 +441,7 @@ type SlackConfig struct { // linkNames enables automatic linking of channel names and usernames in the message. // When true, @channel and @username will be converted to clickable links. // +optional - LinkNames bool `json:"linkNames,omitempty"` + LinkNames bool `json:"linkNames,omitempty"` // nolint:kubeapilinter // mrkdwnIn defines which fields should be parsed as Slack markdown. // Valid values include "pretext", "text", and "fields". // +listType=atomic @@ -590,7 +590,7 @@ type SlackField struct { // When true, Slack may display this field side by side with other short fields. // When false or not specified, the field takes the full width of the message. // +optional - Short *bool `json:"short,omitempty"` + Short *bool `json:"short,omitempty"` // nolint:kubeapilinter } // Validate ensures SlackField is valid @@ -611,7 +611,7 @@ func (sf *SlackField) Validate() error { type WebhookConfig struct { // sendResolved defines whether or not to notify about resolved alerts. // +optional - SendResolved *bool `json:"sendResolved,omitempty"` + SendResolved *bool `json:"sendResolved,omitempty"` // nolint:kubeapilinter // url defines the URL to send HTTP POST requests to. // urlSecret takes precedence over url. One of urlSecret and url should be defined. // +optional @@ -642,7 +642,7 @@ type WebhookConfig struct { type OpsGenieConfig struct { // sendResolved defines whether or not to notify about resolved alerts. // +optional - SendResolved *bool `json:"sendResolved,omitempty"` + SendResolved *bool `json:"sendResolved,omitempty"` // nolint:kubeapilinter // apiKey defines the secret's key that contains the OpsGenie API key. // The secret needs to be in the same namespace as the AlertmanagerConfig // object and accessible by the Prometheus Operator. @@ -679,7 +679,7 @@ type OpsGenieConfig struct { // updateAlerts defines Whether to update message and description of the alert in OpsGenie if it already exists // By default, the alert is never updated in OpsGenie, the new message only appears in activity log. // +optional - UpdateAlerts *bool `json:"updateAlerts,omitempty"` + UpdateAlerts *bool `json:"updateAlerts,omitempty"` // nolint:kubeapilinter // details defines a set of arbitrary key/value pairs that provide further detail about the incident. // These appear as additional fields in the OpsGenie alert. // +listType=atomic @@ -798,12 +798,12 @@ type HTTPConfig struct { // followRedirects specifies whether the client should follow HTTP 3xx redirects. // When true, the client will automatically follow redirect responses. // +optional - FollowRedirects *bool `json:"followRedirects,omitempty"` + FollowRedirects *bool `json:"followRedirects,omitempty"` // nolint:kubeapilinter // enableHttp2 can be used to disable HTTP2. // // +optional - EnableHTTP2 *bool `json:"enableHttp2,omitempty"` + EnableHTTP2 *bool `json:"enableHttp2,omitempty"` // nolint:kubeapilinter } // WebexConfig configures notification via Cisco Webex @@ -811,7 +811,7 @@ type HTTPConfig struct { type WebexConfig struct { // sendResolved defines whether or not to notify about resolved alerts. // +optional - SendResolved *bool `json:"sendResolved,omitempty"` + SendResolved *bool `json:"sendResolved,omitempty"` // nolint:kubeapilinter // apiURL defines the Webex Teams API URL i.e. https://webexapis.com/v1/messages // +optional @@ -836,7 +836,7 @@ type WebexConfig struct { type WeChatConfig struct { // sendResolved defines whether or not to notify about resolved alerts. // +optional - SendResolved *bool `json:"sendResolved,omitempty"` + SendResolved *bool `json:"sendResolved,omitempty"` // nolint:kubeapilinter // apiSecret defines the secret's key that contains the WeChat API key. // The secret needs to be in the same namespace as the AlertmanagerConfig // object and accessible by the Prometheus Operator. @@ -883,7 +883,7 @@ type WeChatConfig struct { type EmailConfig struct { // sendResolved defines whether or not to notify about resolved alerts. // +optional - SendResolved *bool `json:"sendResolved,omitempty"` + SendResolved *bool `json:"sendResolved,omitempty"` // nolint:kubeapilinter // to defines the email address to send notifications to. // This is the recipient address for alert notifications. // +optional @@ -935,7 +935,7 @@ type EmailConfig struct { // requireTLS defines the SMTP TLS requirement. // Note that Go does not support unencrypted connections to remote SMTP endpoints. // +optional - RequireTLS *bool `json:"requireTLS,omitempty"` + RequireTLS *bool `json:"requireTLS,omitempty"` // nolint:kubeapilinter // tlsConfig defines the TLS configuration for SMTP connections. // This includes settings for certificates, CA validation, and TLS protocol options. // +optional @@ -947,7 +947,7 @@ type EmailConfig struct { type VictorOpsConfig struct { // sendResolved defines whether or not to notify about resolved alerts. // +optional - SendResolved *bool `json:"sendResolved,omitempty"` + SendResolved *bool `json:"sendResolved,omitempty"` // nolint:kubeapilinter // apiKey defines the secret's key that contains the API key to use when talking to the VictorOps API. // The secret needs to be in the same namespace as the AlertmanagerConfig // object and accessible by the Prometheus Operator. @@ -992,7 +992,7 @@ type VictorOpsConfig struct { type PushoverConfig struct { // sendResolved defines whether or not to notify about resolved alerts. // +optional - SendResolved *bool `json:"sendResolved,omitempty"` + SendResolved *bool `json:"sendResolved,omitempty"` // nolint:kubeapilinter // userKey defines the secret's key that contains the recipient user's user key. // The secret needs to be in the same namespace as the AlertmanagerConfig // object and accessible by the Prometheus Operator. @@ -1063,11 +1063,11 @@ type PushoverConfig struct { // When true, the message can include HTML formatting tags. // html and monospace formatting are mutually exclusive. // +optional - HTML *bool `json:"html,omitempty"` + HTML *bool `json:"html,omitempty"` //nolint:kubeapilinter // monospace optional HTML/monospace formatting for the message, see https://pushover.net/api#html // html and monospace formatting are mutually exclusive. // +optional - Monospace *bool `json:"monospace,omitempty"` + Monospace *bool `json:"monospace,omitempty"` //nolint:kubeapilinter // httpConfig defines the HTTP client configuration for Pushover API requests. // +optional HTTPConfig *HTTPConfig `json:"httpConfig,omitempty"` @@ -1078,7 +1078,7 @@ type PushoverConfig struct { type SNSConfig struct { // sendResolved defines whether or not to notify about resolved alerts. // +optional - SendResolved *bool `json:"sendResolved,omitempty"` + SendResolved *bool `json:"sendResolved,omitempty"` // nolint:kubeapilinter // apiURL defines the SNS API URL, e.g. https://sns.us-east-2.amazonaws.com. // If not specified, the SNS API URL from the SNS SDK will be used. // +optional @@ -1122,7 +1122,7 @@ type SNSConfig struct { type TelegramConfig struct { // sendResolved defines whether or not to notify about resolved alerts. // +optional - SendResolved *bool `json:"sendResolved,omitempty"` + SendResolved *bool `json:"sendResolved,omitempty"` // nolint:kubeapilinter // apiURL defines the Telegram API URL, e.g. https://api.telegram.org. // If not specified, the default Telegram API URL will be used. // +optional @@ -1155,7 +1155,7 @@ type TelegramConfig struct { // disableNotifications controls whether Telegram notifications are sent silently. // When true, users will receive the message without notification sounds. // +optional - DisableNotifications *bool `json:"disableNotifications,omitempty"` + DisableNotifications *bool `json:"disableNotifications,omitempty"` // nolint:kubeapilinter // parseMode defines the parse mode for telegram message formatting. // Valid values are "MarkdownV2", "Markdown", and "HTML". // This determines how text formatting is interpreted in the message. @@ -1172,7 +1172,7 @@ type TelegramConfig struct { type MSTeamsConfig struct { // sendResolved defines whether or not to notify about resolved alerts. // +optional - SendResolved *bool `json:"sendResolved,omitempty"` + SendResolved *bool `json:"sendResolved,omitempty"` // nolint:kubeapilinter // webhookUrl defines the MSTeams webhook URL for sending notifications. // This is the incoming webhook URL configured in your Teams channel. // +required @@ -1201,7 +1201,7 @@ type MSTeamsConfig struct { type MSTeamsV2Config struct { // sendResolved defines whether or not to notify about resolved alerts. // +optional - SendResolved *bool `json:"sendResolved,omitempty"` + SendResolved *bool `json:"sendResolved,omitempty"` // nolint:kubeapilinter // webhookURL defines the MSTeams incoming webhook URL for adaptive card notifications. // This webhook must support the newer adaptive cards format required by Teams flows. // +optional @@ -1226,7 +1226,7 @@ type MSTeamsV2Config struct { type RocketChatConfig struct { // sendResolved defines whether or not to notify about resolved alerts. // +optional - SendResolved *bool `json:"sendResolved,omitempty"` + SendResolved *bool `json:"sendResolved,omitempty"` // nolint:kubeapilinter // apiURL defines the API URL for RocketChat. // Defaults to https://open.rocket.chat/ if not specified. // +optional @@ -1282,7 +1282,7 @@ type RocketChatConfig struct { // shortFields defines whether to use short fields in the message layout. // When true, fields may be displayed side by side to save space. // +optional - ShortFields *bool `json:"shortFields,omitempty"` + ShortFields *bool `json:"shortFields,omitempty"` // nolint:kubeapilinter // imageURL defines the image URL to display within the message. // This embeds an image directly in the message attachment. // +optional @@ -1294,7 +1294,7 @@ type RocketChatConfig struct { // linkNames defines whether to enable automatic linking of usernames and channels. // When true, @username and #channel references become clickable links. // +optional - LinkNames *bool `json:"linkNames,omitempty"` + LinkNames *bool `json:"linkNames,omitempty"` // nolint:kubeapilinter // actions defines interactive actions to include in the message. // These appear as buttons that users can click to trigger responses. // +listType=atomic @@ -1321,7 +1321,7 @@ type RocketChatFieldConfig struct { // short defines whether this field should be a short field. // When true, the field may be displayed inline with other short fields to save space. // +optional - Short *bool `json:"short,omitempty"` + Short *bool `json:"short,omitempty"` // nolint:kubeapilinter } // RocketChatActionConfig defines actions for RocketChat messages. @@ -1398,7 +1398,7 @@ type Matcher struct { // regex defines whether to match on equality (false) or regular-expression (true). // Deprecated: for AlertManager >= v0.22.0, `matchType` should be used instead. // +optional - Regex bool `json:"regex,omitempty"` + Regex bool `json:"regex,omitempty"` // nolint:kubeapilinter } // String returns Matcher as a string diff --git a/pkg/apis/monitoring/v1alpha1/scrapeconfig_types.go b/pkg/apis/monitoring/v1alpha1/scrapeconfig_types.go index 7002b5370..972ac16de 100644 --- a/pkg/apis/monitoring/v1alpha1/scrapeconfig_types.go +++ b/pkg/apis/monitoring/v1alpha1/scrapeconfig_types.go @@ -40,7 +40,7 @@ type SDFile string type NamespaceDiscovery struct { // ownNamespace includes the namespace in which the Prometheus pod runs to the list of watched namespaces. // +optional - IncludeOwnNamespace *bool `json:"ownNamespace,omitempty"` + IncludeOwnNamespace *bool `json:"ownNamespace,omitempty"` // nolint:kubeapilinter // names defines a list of namespaces where to watch for resources. // If empty and `ownNamespace` isn't true, Prometheus watches for resources in all namespaces. // +listType=set @@ -55,7 +55,7 @@ type AttachMetadata struct { // Only valid for Pod, Endpoint and Endpointslice roles. // // +optional - Node *bool `json:"node,omitempty"` + Node *bool `json:"node,omitempty"` // nolint:kubeapilinter } // Filter name and value pairs to limit the discovery process to a subset of available resources. @@ -279,18 +279,18 @@ type ScrapeConfigSpec struct { // honorTimestamps defines whether Prometheus preserves the timestamps // when exposed by the target. // +optional - HonorTimestamps *bool `json:"honorTimestamps,omitempty"` + HonorTimestamps *bool `json:"honorTimestamps,omitempty"` // nolint:kubeapilinter // trackTimestampsStaleness defines whether Prometheus tracks staleness of // the metrics that have an explicit timestamp present in scraped data. // Has no effect if `honorTimestamps` is false. // It requires Prometheus >= v2.48.0. // // +optional - TrackTimestampsStaleness *bool `json:"trackTimestampsStaleness,omitempty"` + TrackTimestampsStaleness *bool `json:"trackTimestampsStaleness,omitempty"` // nolint:kubeapilinter // honorLabels defines when true the metric's labels when they collide // with the target's labels. // +optional - HonorLabels *bool `json:"honorLabels,omitempty"` + HonorLabels *bool `json:"honorLabels,omitempty"` // nolint:kubeapilinter // params defines optional HTTP URL parameters // +mapType:=atomic // +optional @@ -305,10 +305,10 @@ type ScrapeConfigSpec struct { // // If unset, Prometheus uses true by default. // +optional - EnableCompression *bool `json:"enableCompression,omitempty"` + EnableCompression *bool `json:"enableCompression,omitempty"` // nolint:kubeapilinter // enableHTTP2 defines whether to enable HTTP2. // +optional - EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` + EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` // nolint:kubeapilinter // basicAuth defines information to use on every scrape request. // +optional BasicAuth *v1.BasicAuth `json:"basicAuth,omitempty"` @@ -439,10 +439,10 @@ type HTTPSDConfig struct { TLSConfig *v1.SafeTLSConfig `json:"tlsConfig,omitempty"` // followRedirects defines whether HTTP requests follow HTTP 3xx redirects. // +optional - FollowRedirects *bool `json:"followRedirects,omitempty"` + FollowRedirects *bool `json:"followRedirects,omitempty"` // nolint:kubeapilinter // enableHTTP2 defines whether to enable HTTP2. // +optional - EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` + EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` // nolint:kubeapilinter } // KubernetesSDConfig allows retrieving scrape targets from Kubernetes' REST API. @@ -490,10 +490,10 @@ type KubernetesSDConfig struct { v1.ProxyConfig `json:",inline"` // followRedirects defines whether HTTP requests follow HTTP 3xx redirects. // +optional - FollowRedirects *bool `json:"followRedirects,omitempty"` + FollowRedirects *bool `json:"followRedirects,omitempty"` // nolint:kubeapilinter // enableHTTP2 defines whether to enable HTTP2. // +optional - EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` + EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` // nolint:kubeapilinter // tlsConfig defines the TLS configuration to connect to the Kubernetes API. // +optional TLSConfig *v1.SafeTLSConfig `json:"tlsConfig,omitempty"` @@ -562,7 +562,7 @@ type ConsulSDConfig struct { // allowStale Consul results (see https://www.consul.io/api/features/consistency.html). Will reduce load on Consul. // If unset, Prometheus uses its default value. // +optional - AllowStale *bool `json:"allowStale,omitempty"` + AllowStale *bool `json:"allowStale,omitempty"` // nolint:kubeapilinter // refreshInterval defines the time after which the provided names are refreshed. // If not set, Prometheus uses its default value. // +optional @@ -583,10 +583,10 @@ type ConsulSDConfig struct { v1.ProxyConfig `json:",inline"` // followRedirects defines whether HTTP requests follow HTTP 3xx redirects. // +optional - FollowRedirects *bool `json:"followRedirects,omitempty"` + FollowRedirects *bool `json:"followRedirects,omitempty"` // nolint:kubeapilinter // enableHTTP2 defines whether to enable HTTP2. // +optional - EnableHttp2 *bool `json:"enableHTTP2,omitempty"` + EnableHttp2 *bool `json:"enableHTTP2,omitempty"` // nolint:kubeapilinter // tlsConfig defines the TLS configuration to connect to the Consul API. // +optional TLSConfig *v1.SafeTLSConfig `json:"tlsConfig,omitempty"` @@ -682,11 +682,11 @@ type EC2SDConfig struct { // followRedirects defines whether HTTP requests follow HTTP 3xx redirects. // It requires Prometheus >= v2.41.0 // +optional - FollowRedirects *bool `json:"followRedirects,omitempty"` + FollowRedirects *bool `json:"followRedirects,omitempty"` // nolint:kubeapilinter // enableHTTP2 defines whether to enable HTTP2. // It requires Prometheus >= v2.41.0 // +optional - EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` + EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` // nolint:kubeapilinter } // +kubebuilder:validation:Enum=OAuth;ManagedIdentity;SDK @@ -759,10 +759,10 @@ type AzureSDConfig struct { v1.ProxyConfig `json:",inline"` // followRedirects defines whether HTTP requests follow HTTP 3xx redirects. // +optional - FollowRedirects *bool `json:"followRedirects,omitempty"` + FollowRedirects *bool `json:"followRedirects,omitempty"` // nolint:kubeapilinter // enableHTTP2 defines whether to enable HTTP2. // +optional - EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` + EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` // nolint:kubeapilinter // tlsConfig defies the TLS configuration applying to the target HTTP endpoint. // +optional TLSConfig *v1.SafeTLSConfig `json:"tlsConfig,omitempty"` @@ -893,7 +893,7 @@ type OpenStackSDConfig struct { // allTenants defines whether the service discovery should list all instances for all projects. // It is only relevant for the 'instance' role and usually requires admin permissions. // +optional - AllTenants *bool `json:"allTenants,omitempty"` + AllTenants *bool `json:"allTenants,omitempty"` // nolint:kubeapilinter // refreshInterval defines the time after which the provided names are refreshed. // If not set, Prometheus uses its default value. // +optional @@ -930,10 +930,10 @@ type DigitalOceanSDConfig struct { v1.ProxyConfig `json:",inline"` // followRedirects defines whether HTTP requests follow HTTP 3xx redirects. // +optional - FollowRedirects *bool `json:"followRedirects,omitempty"` + FollowRedirects *bool `json:"followRedirects,omitempty"` // nolint:kubeapilinter // enableHTTP2 defines whether to enable HTTP2. // +optional - EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` + EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` // nolint:kubeapilinter // tlsConfig defines the TLS configuration to connect to the Consul API. // +optional TLSConfig *v1.SafeTLSConfig `json:"tlsConfig,omitempty"` @@ -985,10 +985,10 @@ type KumaSDConfig struct { OAuth2 *v1.OAuth2 `json:"oauth2,omitempty"` // followRedirects defines whether HTTP requests follow HTTP 3xx redirects. // +optional - FollowRedirects *bool `json:"followRedirects,omitempty"` + FollowRedirects *bool `json:"followRedirects,omitempty"` // nolint:kubeapilinter // enableHTTP2 defines whether to enable HTTP2. // +optional - EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` + EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` // nolint:kubeapilinter } // Eureka SD configurations allow retrieving scrape targets using the Eureka REST API. @@ -1019,10 +1019,10 @@ type EurekaSDConfig struct { v1.ProxyConfig `json:",inline"` // followRedirects defines whether HTTP requests follow HTTP 3xx redirects. // +optional - FollowRedirects *bool `json:"followRedirects,omitempty"` + FollowRedirects *bool `json:"followRedirects,omitempty"` // nolint:kubeapilinter // enableHTTP2 defines whether to enable HTTP2. // +optional - EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` + EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` // nolint:kubeapilinter // refreshInterval defines the time after which the provided names are refreshed. // If not set, Prometheus uses its default value. // +optional @@ -1059,7 +1059,7 @@ type DockerSDConfig struct { // It requires Prometheus >= v2.54.1. // // +optional - MatchFirstNetwork *bool `json:"matchFirstNetwork,omitempty"` + MatchFirstNetwork *bool `json:"matchFirstNetwork,omitempty"` // nolint:kubeapilinter // filters defines filters to limit the discovery process to a subset of the available resources. // +optional Filters Filters `json:"filters,omitempty"` @@ -1079,10 +1079,10 @@ type DockerSDConfig struct { OAuth2 *v1.OAuth2 `json:"oauth2,omitempty"` // followRedirects defines whether HTTP requests follow HTTP 3xx redirects. // +optional - FollowRedirects *bool `json:"followRedirects,omitempty"` + FollowRedirects *bool `json:"followRedirects,omitempty"` // nolint:kubeapilinter // enableHTTP2 defines whether to enable HTTP2. // +optional - EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` + EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` // nolint:kubeapilinter } // HetznerSDConfig allow retrieving scrape targets from Hetzner Cloud API and Robot API. @@ -1109,10 +1109,10 @@ type HetznerSDConfig struct { v1.ProxyConfig `json:",inline"` // followRedirects defines whether HTTP requests follow HTTP 3xx redirects. // +optional - FollowRedirects *bool `json:"followRedirects,omitempty"` + FollowRedirects *bool `json:"followRedirects,omitempty"` // nolint:kubeapilinter // enableHTTP2 defines whether to enable HTTP2. // +optional - EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` + EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` // nolint:kubeapilinter // tlsConfig defines the TLS configuration to connect to the Consul API. // +optional TLSConfig *v1.SafeTLSConfig `json:"tlsConfig,omitempty"` @@ -1139,7 +1139,7 @@ type NomadSDConfig struct { // allowStale defines the information to access the Nomad API. It is to be defined // as the Nomad documentation requires. // +optional - AllowStale *bool `json:"allowStale,omitempty"` + AllowStale *bool `json:"allowStale,omitempty"` // nolint:kubeapilinter // namespace defines the Nomad namespace to query for service discovery. // When specified, only resources within this namespace will be discovered. // +optional @@ -1179,10 +1179,10 @@ type NomadSDConfig struct { v1.ProxyConfig `json:",inline"` // followRedirects defines whether HTTP requests follow HTTP 3xx redirects. // +optional - FollowRedirects *bool `json:"followRedirects,omitempty"` + FollowRedirects *bool `json:"followRedirects,omitempty"` // nolint:kubeapilinter // enableHTTP2 defines whether to enable HTTP2. // +optional - EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` + EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` // nolint:kubeapilinter } // Service of the targets to retrieve. Must be `VPS` or `DedicatedServer`. @@ -1273,10 +1273,10 @@ type DockerSwarmSDConfig struct { TLSConfig *v1.SafeTLSConfig `json:"tlsConfig,omitempty"` // followRedirects defines whether HTTP requests follow HTTP 3xx redirects. // +optional - FollowRedirects *bool `json:"followRedirects,omitempty"` + FollowRedirects *bool `json:"followRedirects,omitempty"` // nolint:kubeapilinter // enableHTTP2 defines whether to enable HTTP2. // +optional - EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` + EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` // nolint:kubeapilinter } // LinodeSDConfig configurations allow retrieving scrape targets from Linode's Linode APIv4. @@ -1311,13 +1311,13 @@ type LinodeSDConfig struct { v1.ProxyConfig `json:",inline"` // followRedirects defines whether HTTP requests follow HTTP 3xx redirects. // +optional - FollowRedirects *bool `json:"followRedirects,omitempty"` + FollowRedirects *bool `json:"followRedirects,omitempty"` // nolint:kubeapilinter // tlsConfig defines the TLS configuration to connect to the Consul API. // +optional TLSConfig *v1.SafeTLSConfig `json:"tlsConfig,omitempty"` // enableHTTP2 defines whether to enable HTTP2. // +optional - EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` + EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` // nolint:kubeapilinter } // PuppetDBSDConfig configurations allow retrieving scrape targets from PuppetDB resources. @@ -1337,7 +1337,7 @@ type PuppetDBSDConfig struct { // Note: Enabling this exposes parameters in the Prometheus UI and API. Make sure // that you don't have secrets exposed as parameters if you enable this. // +optional - IncludeParameters *bool `json:"includeParameters,omitempty"` + IncludeParameters *bool `json:"includeParameters,omitempty"` // nolint:kubeapilinter // refreshInterval defines the time after which the provided names are refreshed. // If not set, Prometheus uses its default value. // +optional @@ -1365,10 +1365,10 @@ type PuppetDBSDConfig struct { TLSConfig *v1.SafeTLSConfig `json:"tlsConfig,omitempty"` // followRedirects defines whether HTTP requests follow HTTP 3xx redirects. // +optional - FollowRedirects *bool `json:"followRedirects,omitempty"` + FollowRedirects *bool `json:"followRedirects,omitempty"` // nolint:kubeapilinter // enableHTTP2 defines whether to enable HTTP2. // +optional - EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` + EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` // nolint:kubeapilinter } // LightSailSDConfig configurations allow retrieving scrape targets from AWS Lightsail instances. @@ -1419,10 +1419,10 @@ type LightSailSDConfig struct { TLSConfig *v1.SafeTLSConfig `json:"tlsConfig,omitempty"` // followRedirects defines whether HTTP requests follow HTTP 3xx redirects. // +optional - FollowRedirects *bool `json:"followRedirects,omitempty"` + FollowRedirects *bool `json:"followRedirects,omitempty"` // nolint:kubeapilinter // enableHTTP2 defines whether to enable HTTP2. // +optional - EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` + EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` // nolint:kubeapilinter } // Role of the targets to retrieve. Must be `Instance` or `Baremetal`. @@ -1483,10 +1483,10 @@ type ScalewaySDConfig struct { v1.ProxyConfig `json:",inline"` // followRedirects defines whether HTTP requests follow HTTP 3xx redirects. // +optional - FollowRedirects *bool `json:"followRedirects,omitempty"` + FollowRedirects *bool `json:"followRedirects,omitempty"` // nolint:kubeapilinter // enableHTTP2 defines whether to enable HTTP2. // +optional - EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` + EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` // nolint:kubeapilinter // tlsConfig defines the TLS configuration to connect to the Consul API. // +optional TLSConfig *v1.SafeTLSConfig `json:"tlsConfig,omitempty"` @@ -1518,10 +1518,10 @@ type IonosSDConfig struct { TLSConfig *v1.SafeTLSConfig `json:"tlsConfig,omitempty"` // followRedirects defines whether HTTP requests follow HTTP 3xx redirects. // +optional - FollowRedirects *bool `json:"followRedirects,omitempty"` + FollowRedirects *bool `json:"followRedirects,omitempty"` // nolint:kubeapilinter // enableHTTP2 defines whether to enable HTTP2. // +optional - EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` + EnableHTTP2 *bool `json:"enableHTTP2,omitempty"` // nolint:kubeapilinter // oauth2 defines the configuration to use on every scrape request. // +optional OAuth2 *v1.OAuth2 `json:"oauth2,omitempty"` diff --git a/pkg/apis/monitoring/v1beta1/alertmanager_config_types.go b/pkg/apis/monitoring/v1beta1/alertmanager_config_types.go index 679035b23..b29e854d8 100644 --- a/pkg/apis/monitoring/v1beta1/alertmanager_config_types.go +++ b/pkg/apis/monitoring/v1beta1/alertmanager_config_types.go @@ -134,7 +134,7 @@ type Route struct { // sibling nodes. It will always be overridden to true for the first-level // route by the Prometheus operator. // +optional - Continue bool `json:"continue,omitempty"` + Continue bool `json:"continue,omitempty"` // nolint:kubeapilinter // routes defines the child routes. // +optional Routes []apiextensionsv1.JSON `json:"routes,omitempty"` @@ -230,7 +230,7 @@ type Receiver struct { type PagerDutyConfig struct { // sendResolved defines whether or not to notify about resolved alerts. // +optional - SendResolved *bool `json:"sendResolved,omitempty"` + SendResolved *bool `json:"sendResolved,omitempty"` // nolint:kubeapilinter // routingKey defines the secret's key that contains the PagerDuty integration key (when using // Events API v2). Either this field or `serviceKey` needs to be defined. // The secret needs to be in the same namespace as the AlertmanagerConfig @@ -317,7 +317,7 @@ type PagerDutyLinkConfig struct { type DiscordConfig struct { // sendResolved defines whether or not to notify about resolved alerts. // +optional - SendResolved *bool `json:"sendResolved,omitempty"` + SendResolved *bool `json:"sendResolved,omitempty"` // nolint:kubeapilinter // apiURL defines the secret's key that contains the Discord webhook URL. // The secret needs to be in the same namespace as the AlertmanagerConfig // object and accessible by the Prometheus Operator. @@ -350,7 +350,7 @@ type DiscordConfig struct { type SlackConfig struct { // sendResolved defines whether or not to notify about resolved alerts. // +optional - SendResolved *bool `json:"sendResolved,omitempty"` + SendResolved *bool `json:"sendResolved,omitempty"` // nolint:kubeapilinter // apiURL defines the secret's key that contains the Slack webhook URL. // The secret needs to be in the same namespace as the AlertmanagerConfig // object and accessible by the Prometheus Operator. @@ -384,7 +384,7 @@ type SlackConfig struct { // shortFields determines whether fields are displayed in a compact format. // When true, fields are shown side by side when possible. // +optional - ShortFields bool `json:"shortFields,omitempty"` + ShortFields bool `json:"shortFields,omitempty"` // nolint:kubeapilinter // footer defines small text displayed at the bottom of the message attachment. // +optional Footer string `json:"footer,omitempty"` @@ -410,7 +410,7 @@ type SlackConfig struct { // linkNames enables automatic linking of channel names and usernames in the message. // When true, @channel and @username will be converted to clickable links. // +optional - LinkNames bool `json:"linkNames,omitempty"` + LinkNames bool `json:"linkNames,omitempty"` // nolint:kubeapilinter // mrkdwnIn defines which fields should be parsed as Slack markdown. // Valid values include "pretext", "text", and "fields". // +optional @@ -557,7 +557,7 @@ type SlackField struct { // When true, Slack may display this field side by side with other short fields. // When false or not specified, the field takes the full width of the message. // +optional - Short *bool `json:"short,omitempty"` + Short *bool `json:"short,omitempty"` // nolint:kubeapilinter } // Validate ensures SlackField is valid @@ -578,7 +578,7 @@ func (sf *SlackField) Validate() error { type WebhookConfig struct { // sendResolved defines whether or not to notify about resolved alerts. // +optional - SendResolved *bool `json:"sendResolved,omitempty"` + SendResolved *bool `json:"sendResolved,omitempty"` // nolint:kubeapilinter // url defines the URL to send HTTP POST requests to. // urlSecret takes precedence over url. One of urlSecret and url should be defined. // +optional @@ -609,7 +609,7 @@ type WebhookConfig struct { type OpsGenieConfig struct { // sendResolved defines whether or not to notify about resolved alerts. // +optional - SendResolved *bool `json:"sendResolved,omitempty"` + SendResolved *bool `json:"sendResolved,omitempty"` // nolint:kubeapilinter // apiKey defines the secret's key that contains the OpsGenie API key. // The secret needs to be in the same namespace as the AlertmanagerConfig // object and accessible by the Prometheus Operator. @@ -760,12 +760,12 @@ type HTTPConfig struct { // followRedirects defines whether HTTP requests follow HTTP 3xx redirects. // When true, the client will automatically follow redirect responses. // +optional - FollowRedirects *bool `json:"followRedirects,omitempty"` + FollowRedirects *bool `json:"followRedirects,omitempty"` // nolint:kubeapilinter // enableHttp2 can be used to disable HTTP2. // // +optional - EnableHTTP2 *bool `json:"enableHttp2,omitempty"` + EnableHTTP2 *bool `json:"enableHttp2,omitempty"` // nolint:kubeapilinter } // WebexConfig configures notification via Cisco Webex @@ -773,7 +773,7 @@ type HTTPConfig struct { type WebexConfig struct { // sendResolved defines whether or not to notify about resolved alerts. // +optional - SendResolved *bool `json:"sendResolved,omitempty"` + SendResolved *bool `json:"sendResolved,omitempty"` // nolint:kubeapilinter // apiURL defines the Webex Teams API URL i.e. https://webexapis.com/v1/messages // +optional @@ -799,7 +799,7 @@ type WebexConfig struct { type WeChatConfig struct { // sendResolved defines whether or not to notify about resolved alerts. // +optional - SendResolved *bool `json:"sendResolved,omitempty"` + SendResolved *bool `json:"sendResolved,omitempty"` // nolint:kubeapilinter // apiSecret defines the secret's key that contains the WeChat API key. // The secret needs to be in the same namespace as the AlertmanagerConfig // object and accessible by the Prometheus Operator. @@ -846,7 +846,7 @@ type WeChatConfig struct { type EmailConfig struct { // sendResolved defines whether or not to notify about resolved alerts. // +optional - SendResolved *bool `json:"sendResolved,omitempty"` + SendResolved *bool `json:"sendResolved,omitempty"` // nolint:kubeapilinter // to defines the email address to send notifications to. // This is the recipient address for alert notifications. // +optional @@ -897,7 +897,7 @@ type EmailConfig struct { // requireTLS defines the SMTP TLS requirement. // Note that Go does not support unencrypted connections to remote SMTP endpoints. // +optional - RequireTLS *bool `json:"requireTLS,omitempty"` + RequireTLS *bool `json:"requireTLS,omitempty"` // nolint:kubeapilinter // tlsConfig defines the TLS configuration for SMTP connections. // This includes settings for certificates, CA validation, and TLS protocol options. // +optional @@ -909,7 +909,7 @@ type EmailConfig struct { type VictorOpsConfig struct { // sendResolved defines whether or not to notify about resolved alerts. // +optional - SendResolved *bool `json:"sendResolved,omitempty"` + SendResolved *bool `json:"sendResolved,omitempty"` // nolint:kubeapilinter // apiKey defines the secret's key that contains the API key to use when talking to the VictorOps API. // The secret needs to be in the same namespace as the AlertmanagerConfig // object and accessible by the Prometheus Operator. @@ -953,7 +953,7 @@ type VictorOpsConfig struct { type PushoverConfig struct { // sendResolved defines whether or not to notify about resolved alerts. // +optional - SendResolved *bool `json:"sendResolved,omitempty"` + SendResolved *bool `json:"sendResolved,omitempty"` // nolint:kubeapilinter // userKey defines the secret's key that contains the recipient user's user key. // The secret needs to be in the same namespace as the AlertmanagerConfig // object and accessible by the Prometheus Operator. @@ -1024,11 +1024,11 @@ type PushoverConfig struct { // When true, the message can include HTML formatting tags. // html and monospace formatting are mutually exclusive. // +optional - HTML *bool `json:"html,omitempty"` + HTML *bool `json:"html,omitempty"` //nolint:kubeapilinter // monospace optional HTML/monospace formatting for the message, see https://pushover.net/api#html // html and monospace formatting are mutually exclusive. // +optional - Monospace *bool `json:"monospace,omitempty"` + Monospace *bool `json:"monospace,omitempty"` //nolint:kubeapilinter // httpConfig defines the HTTP client configuration for Pushover API requests. // +optional HTTPConfig *HTTPConfig `json:"httpConfig,omitempty"` @@ -1039,7 +1039,7 @@ type PushoverConfig struct { type SNSConfig struct { // sendResolved defines whether or not to notify about resolved alerts. // +optional - SendResolved *bool `json:"sendResolved,omitempty"` + SendResolved *bool `json:"sendResolved,omitempty"` // nolint:kubeapilinter // apiURL defines the SNS API URL, e.g. https://sns.us-east-2.amazonaws.com. // If not specified, the SNS API URL from the SNS SDK will be used. // +optional @@ -1083,7 +1083,7 @@ type SNSConfig struct { type TelegramConfig struct { // sendResolved defines whether or not to notify about resolved alerts. // +optional - SendResolved *bool `json:"sendResolved,omitempty"` + SendResolved *bool `json:"sendResolved,omitempty"` // nolint:kubeapilinter // apiURL defines the Telegram API URL, e.g. https://api.telegram.org. // If not specified, the default Telegram API URL will be used. // +optional @@ -1116,7 +1116,7 @@ type TelegramConfig struct { // disableNotifications controls whether Telegram notifications are sent silently. // When true, users will receive the message without notification sounds. // +optional - DisableNotifications *bool `json:"disableNotifications,omitempty"` + DisableNotifications *bool `json:"disableNotifications,omitempty"` // nolint:kubeapilinter // parseMode defines the parse mode for telegram message formatting. // Valid values are "MarkdownV2", "Markdown", and "HTML". // This determines how text formatting is interpreted in the message. @@ -1133,7 +1133,7 @@ type TelegramConfig struct { type MSTeamsConfig struct { // sendResolved defines whether or not to notify about resolved alerts. // +optional - SendResolved *bool `json:"sendResolved,omitempty"` + SendResolved *bool `json:"sendResolved,omitempty"` // nolint:kubeapilinter // webhookUrl defines the MSTeams webhook URL for sending notifications. // This is the incoming webhook URL configured in your Teams channel. // +required @@ -1162,7 +1162,7 @@ type MSTeamsConfig struct { type MSTeamsV2Config struct { // sendResolved defines whether or not to notify about resolved alerts. // +optional - SendResolved *bool `json:"sendResolved,omitempty"` + SendResolved *bool `json:"sendResolved,omitempty"` // nolint:kubeapilinter // webhookURL defines the MSTeams incoming webhook URL for adaptive card notifications. // This webhook must support the newer adaptive cards format required by Teams flows. // +optional @@ -1187,7 +1187,7 @@ type MSTeamsV2Config struct { type RocketChatConfig struct { // sendResolved defines whether or not to notify about resolved alerts. // +optional - SendResolved *bool `json:"sendResolved,omitempty"` + SendResolved *bool `json:"sendResolved,omitempty"` // nolint:kubeapilinter // apiURL defines the API URL for RocketChat. // Defaults to https://open.rocket.chat/ if not specified. // +optional @@ -1242,7 +1242,7 @@ type RocketChatConfig struct { // shortFields defines whether to use short fields in the message layout. // When true, fields may be displayed side by side to save space. // +optional - ShortFields *bool `json:"shortFields,omitempty"` + ShortFields *bool `json:"shortFields,omitempty"` // nolint:kubeapilinter // imageURL defines the image URL to display within the message. // This embeds an image directly in the message attachment. // +optional @@ -1254,7 +1254,7 @@ type RocketChatConfig struct { // linkNames defines whether to enable automatic linking of usernames and channels. // When true, @username and #channel references become clickable links. // +optional - LinkNames *bool `json:"linkNames,omitempty"` + LinkNames *bool `json:"linkNames,omitempty"` // nolint:kubeapilinter // actions defines interactive actions to include in the message. // These appear as buttons that users can click to trigger responses. // +kubebuilder:validation:MinItems=1 @@ -1280,7 +1280,7 @@ type RocketChatFieldConfig struct { // short defines whether this field should be a short field. // When true, the field may be displayed inline with other short fields to save space. // +optional - Short *bool `json:"short,omitempty"` + Short *bool `json:"short,omitempty"` // nolint:kubeapilinter } // RocketChatActionConfig defines actions for RocketChat messages.