Documentation ¶
Overview ¶
Package v1beta1 contains API Schema definitions for the victoriametrics v1beta1 API group +kubebuilder:object:generate=true +groupName=operator.victoriametrics.com
Index ¶
- Constants
- Variables
- func IsContainsFinalizer(src []string, finalizer string) bool
- func MergeFinalizers(src client.Object, finalizer string) []string
- func PrefixedName(name, prefix string) string
- func RemoveFinalizer(src []string, finalizer string) []string
- type APIServerConfig
- type ArbitraryFSAccessThroughSMsConfig
- type BasicAuth
- type CRDRef
- type DiscoverySelector
- type EmailConfig
- type EmbeddedHPA
- type EmbeddedIngress
- type EmbeddedObjectMetadata
- type EmbeddedPersistentVolumeClaim
- type EmbeddedPodDisruptionBudgetSpec
- type EmbeddedProbes
- type Endpoint
- type HTTPConfig
- type Image
- type InhibitRule
- type InsertPorts
- type MuteTimeInterval
- type NamespaceSelector
- type OAuth2
- type OpsGenieConfig
- type OpsGenieConfigResponder
- type PagerDutyConfig
- type PodMetricsEndpoint
- type ProbeTargetIngress
- type ProxyAuth
- type PushoverConfig
- type QueueConfig
- type Receiver
- type RelabelConfig
- type Route
- type Rule
- type RuleGroup
- type SecretOrConfigMap
- func (c *SecretOrConfigMap) BuildSelectorWithPrefix(prefix string) string
- func (in *SecretOrConfigMap) DeepCopy() *SecretOrConfigMap
- func (in *SecretOrConfigMap) DeepCopyInto(out *SecretOrConfigMap)
- func (c *SecretOrConfigMap) Key() string
- func (c *SecretOrConfigMap) Name() string
- func (c *SecretOrConfigMap) Validate() error
- type SecretOrConfigMapValidationError
- type ServiceSpec
- type SlackAction
- type SlackConfig
- type SlackConfirmationField
- type SlackField
- type StaticRef
- type StorageSpec
- type TLSConfig
- type TLSConfigValidationError
- type TargetEndpoint
- type TargetRef
- type TimeInterval
- type TimeRange
- type VMAgent
- func (cr VMAgent) Annotations() map[string]string
- func (cr *VMAgent) AsCRDOwner() []metav1.OwnerReference
- func (cr *VMAgent) AsOwner() []metav1.OwnerReference
- func (cr *VMAgent) AsURL() string
- func (in *VMAgent) DeepCopy() *VMAgent
- func (in *VMAgent) DeepCopyInto(out *VMAgent)
- func (in *VMAgent) DeepCopyObject() runtime.Object
- func (cr VMAgent) GetClusterRoleName() string
- func (cr VMAgent) GetNSName() string
- func (cr VMAgent) GetPSPName() string
- func (cr VMAgent) GetServiceAccountName() string
- func (cr VMAgent) HealthPath() string
- func (cr VMAgent) Labels() map[string]string
- func (cr VMAgent) MetricPath() string
- func (cr VMAgent) PodAnnotations() map[string]string
- func (cr VMAgent) PodLabels() map[string]string
- func (cr VMAgent) PrefixedName() string
- func (cr VMAgent) RelabelingAssetName() string
- func (cr VMAgent) ReloadPathWithPort(port string) string
- func (cr VMAgent) SelectorLabels() map[string]string
- func (cr *VMAgent) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (cr VMAgent) TLSAssetName() string
- func (cr *VMAgent) ValidateCreate() error
- func (cr *VMAgent) ValidateDelete() error
- func (cr *VMAgent) ValidateUpdate(old runtime.Object) error
- type VMAgentList
- type VMAgentRemoteWriteSettings
- type VMAgentRemoteWriteSpec
- type VMAgentSpec
- type VMAgentStatus
- type VMAlert
- func (cr VMAlert) Annotations() map[string]string
- func (cr *VMAlert) AsCRDOwner() []metav1.OwnerReference
- func (cr *VMAlert) AsOwner() []metav1.OwnerReference
- func (cr *VMAlert) AsURL() string
- func (in *VMAlert) DeepCopy() *VMAlert
- func (in *VMAlert) DeepCopyInto(out *VMAlert)
- func (in *VMAlert) DeepCopyObject() runtime.Object
- func (cr VMAlert) GetNSName() string
- func (cr *VMAlert) GetNotifierSelectors() []*DiscoverySelector
- func (cr VMAlert) GetPSPName() string
- func (cr VMAlert) GetServiceAccountName() string
- func (cr VMAlert) HealthPath() string
- func (cr VMAlert) Labels() map[string]string
- func (cr VMAlert) MetricPath() string
- func (cr VMAlert) NeedDedupRules() bool
- func (cr VMAlert) NotifierAsMapKey(i int) string
- func (cr VMAlert) PodAnnotations() map[string]string
- func (cr VMAlert) PodLabels() map[string]string
- func (cr VMAlert) PrefixedName() string
- func (cr VMAlert) ReloadPathWithPort(port string) string
- func (cr VMAlert) RulesConfigMapSelector() client.ListOption
- func (cr VMAlert) SelectorLabels() map[string]string
- func (r *VMAlert) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (cr VMAlert) TLSAssetName() string
- func (r *VMAlert) ValidateCreate() error
- func (r *VMAlert) ValidateDelete() error
- func (r *VMAlert) ValidateUpdate(old runtime.Object) error
- type VMAlertDatasourceSpec
- type VMAlertList
- type VMAlertNotifierSpec
- type VMAlertRemoteReadSpec
- type VMAlertRemoteWriteSpec
- type VMAlertSpec
- type VMAlertStatus
- type VMAlertmanager
- func (cr VMAlertmanager) Annotations() map[string]string
- func (cr *VMAlertmanager) AsCRDOwner() []metav1.OwnerReference
- func (cr *VMAlertmanager) AsNotifiers() []VMAlertNotifierSpec
- func (cr *VMAlertmanager) AsOwner() []metav1.OwnerReference
- func (cr *VMAlertmanager) AsPodFQDN(idx int) string
- func (cr *VMAlertmanager) AsURL() string
- func (cr VMAlertmanager) ConfigSecretName() string
- func (in *VMAlertmanager) DeepCopy() *VMAlertmanager
- func (in *VMAlertmanager) DeepCopyInto(out *VMAlertmanager)
- func (in *VMAlertmanager) DeepCopyObject() runtime.Object
- func (cr VMAlertmanager) GetNSName() string
- func (cr VMAlertmanager) GetPSPName() string
- func (cr VMAlertmanager) GetServiceAccountName() string
- func (cr *VMAlertmanager) GetVolumeName() string
- func (cr VMAlertmanager) Labels() map[string]string
- func (cr *VMAlertmanager) MetricPath() string
- func (cr VMAlertmanager) PodAnnotations() map[string]string
- func (cr VMAlertmanager) PodLabels() map[string]string
- func (cr VMAlertmanager) PrefixedName() string
- func (cr VMAlertmanager) SelectorLabels() map[string]string
- func (r *VMAlertmanager) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (r *VMAlertmanager) ValidateCreate() error
- func (r *VMAlertmanager) ValidateDelete() error
- func (r *VMAlertmanager) ValidateUpdate(old runtime.Object) error
- type VMAlertmanagerConfig
- func (amc *VMAlertmanagerConfig) AsKey() string
- func (in *VMAlertmanagerConfig) DeepCopy() *VMAlertmanagerConfig
- func (in *VMAlertmanagerConfig) DeepCopyInto(out *VMAlertmanagerConfig)
- func (in *VMAlertmanagerConfig) DeepCopyObject() runtime.Object
- func (r *VMAlertmanagerConfig) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (amc *VMAlertmanagerConfig) Validate() error
- func (r *VMAlertmanagerConfig) ValidateCreate() error
- func (r *VMAlertmanagerConfig) ValidateDelete() error
- func (r *VMAlertmanagerConfig) ValidateUpdate(old runtime.Object) error
- type VMAlertmanagerConfigList
- type VMAlertmanagerConfigSpec
- type VMAlertmanagerConfigStatus
- type VMAlertmanagerList
- type VMAlertmanagerSpec
- type VMAlertmanagerStatus
- type VMAuth
- func (cr VMAuth) Annotations() map[string]string
- func (cr *VMAuth) AsCRDOwner() []metav1.OwnerReference
- func (cr *VMAuth) AsOwner() []metav1.OwnerReference
- func (cr VMAuth) ConfigSecretName() string
- func (in *VMAuth) DeepCopy() *VMAuth
- func (in *VMAuth) DeepCopyInto(out *VMAuth)
- func (in *VMAuth) DeepCopyObject() runtime.Object
- func (cr VMAuth) GetNSName() string
- func (cr VMAuth) GetPSPName() string
- func (cr VMAuth) GetServiceAccountName() string
- func (cr VMAuth) HealthPath() string
- func (cr VMAuth) Labels() map[string]string
- func (cr VMAuth) MetricPath() string
- func (cr VMAuth) PodAnnotations() map[string]string
- func (cr VMAuth) PodLabels() map[string]string
- func (cr VMAuth) PrefixedName() string
- func (cr VMAuth) ReloadPathWithPort(port string) string
- func (cr VMAuth) SelectorLabels() map[string]string
- func (r *VMAuth) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (cr *VMAuth) ValidateCreate() error
- func (r *VMAuth) ValidateDelete() error
- func (cr *VMAuth) ValidateUpdate(old runtime.Object) error
- type VMAuthList
- type VMAuthSpec
- type VMAuthStatus
- type VMBackup
- type VMCluster
- func (cr VMCluster) Annotations() map[string]string
- func (cr *VMCluster) AsCRDOwner() []metav1.OwnerReference
- func (c *VMCluster) AsOwner() []metav1.OwnerReference
- func (cr *VMCluster) AsURL() string
- func (cr VMCluster) AvailableStorageNodeIDs(requestsType string) []int32
- func (in *VMCluster) DeepCopy() *VMCluster
- func (in *VMCluster) DeepCopyInto(out *VMCluster)
- func (in *VMCluster) DeepCopyObject() runtime.Object
- func (cr VMCluster) FinalLabels(baseLabels map[string]string) map[string]string
- func (cr VMCluster) GetNSName() string
- func (cr VMCluster) GetPSPName() string
- func (cr VMCluster) GetServiceAccountName() string
- func (cr VMCluster) HealthPathInsert() string
- func (cr VMCluster) HealthPathSelect() string
- func (cr VMCluster) HealthPathStorage() string
- func (cr VMCluster) Labels() map[string]string
- func (cr VMCluster) MetricPathInsert() string
- func (cr VMCluster) MetricPathSelect() string
- func (cr VMCluster) MetricPathStorage() string
- func (cr VMCluster) PrefixedName() string
- func (cr VMCluster) SelectorLabels() map[string]string
- func (r *VMCluster) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (cr VMCluster) VMInsertPodAnnotations() map[string]string
- func (cr VMCluster) VMInsertPodLabels() map[string]string
- func (cr VMCluster) VMInsertSelectorLabels() map[string]string
- func (cr *VMCluster) VMInsertURL() string
- func (cr VMCluster) VMSelectPodAnnotations() map[string]string
- func (cr VMCluster) VMSelectPodLabels() map[string]string
- func (cr VMCluster) VMSelectSelectorLabels() map[string]string
- func (cr *VMCluster) VMSelectURL() string
- func (cr VMCluster) VMStoragePodAnnotations() map[string]string
- func (cr VMCluster) VMStoragePodLabels() map[string]string
- func (cr VMCluster) VMStorageSelectorLabels() map[string]string
- func (cr *VMCluster) VMStorageURL() string
- func (r *VMCluster) ValidateCreate() error
- func (r *VMCluster) ValidateDelete() error
- func (r *VMCluster) ValidateUpdate(old runtime.Object) error
- type VMClusterList
- type VMClusterSpec
- type VMClusterStatus
- type VMInsert
- type VMNodeScrape
- type VMNodeScrapeList
- type VMNodeScrapeSpec
- type VMNodeScrapeStatus
- type VMPodScrape
- type VMPodScrapeList
- type VMPodScrapeSpec
- type VMPodScrapeStatus
- type VMProbe
- type VMProbeList
- type VMProbeSpec
- type VMProbeStatus
- type VMProbeTargetStaticConfig
- type VMProbeTargets
- type VMProberSpec
- type VMRule
- type VMRuleList
- type VMRuleSpec
- type VMRuleStatus
- type VMScrapeParams
- type VMSelect
- func (s VMSelect) BuildPodName(baseName string, podIndex int32, namespace, portName, domain string) string
- func (in *VMSelect) DeepCopy() *VMSelect
- func (in *VMSelect) DeepCopyInto(out *VMSelect)
- func (s VMSelect) GetCacheMountVolumeName() string
- func (s VMSelect) GetNameWithPrefix(clusterName string) string
- type VMServiceScrape
- type VMServiceScrapeList
- type VMServiceScrapeSpec
- type VMServiceScrapeStatus
- type VMSingle
- func (cr VMSingle) Annotations() map[string]string
- func (cr *VMSingle) AsCRDOwner() []metav1.OwnerReference
- func (cr *VMSingle) AsOwner() []metav1.OwnerReference
- func (cr *VMSingle) AsURL() string
- func (in *VMSingle) DeepCopy() *VMSingle
- func (in *VMSingle) DeepCopyInto(out *VMSingle)
- func (in *VMSingle) DeepCopyObject() runtime.Object
- func (cr VMSingle) GetNSName() string
- func (cr VMSingle) GetPSPName() string
- func (cr VMSingle) GetServiceAccountName() string
- func (cr VMSingle) HealthPath() string
- func (cr VMSingle) Labels() map[string]string
- func (cr VMSingle) MetricPath() string
- func (cr VMSingle) PodAnnotations() map[string]string
- func (cr VMSingle) PodLabels() map[string]string
- func (cr VMSingle) PrefixedName() string
- func (cr VMSingle) SelectorLabels() map[string]string
- func (r *VMSingle) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (r *VMSingle) ValidateCreate() error
- func (r *VMSingle) ValidateDelete() error
- func (r *VMSingle) ValidateUpdate(old runtime.Object) error
- type VMSingleList
- type VMSingleSpec
- type VMSingleStatus
- type VMStaticScrape
- type VMStaticScrapeList
- type VMStaticScrapeSpec
- type VMStaticScrapeStatus
- type VMStorage
- func (s VMStorage) BuildPodName(baseName string, podIndex int32, namespace, portName, domain string) string
- func (in *VMStorage) DeepCopy() *VMStorage
- func (in *VMStorage) DeepCopyInto(out *VMStorage)
- func (s VMStorage) GetNameWithPrefix(clusterName string) string
- func (s VMStorage) GetStorageVolumeName() string
- type VMUser
- func (cr VMUser) Annotations() map[string]string
- func (cr *VMUser) AsOwner() []metav1.OwnerReference
- func (in *VMUser) DeepCopy() *VMUser
- func (in *VMUser) DeepCopyInto(out *VMUser)
- func (in *VMUser) DeepCopyObject() runtime.Object
- func (cr VMUser) Labels() map[string]string
- func (cr *VMUser) PasswordRefAsKey() string
- func (cr *VMUser) SecretName() string
- func (cr VMUser) SelectorLabels() map[string]string
- func (r *VMUser) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (cr *VMUser) ValidateCreate() error
- func (r *VMUser) ValidateDelete() error
- func (cr *VMUser) ValidateUpdate(old runtime.Object) error
- type VMUserList
- type VMUserSpec
- type VMUserStatus
- type VictorOpsConfig
- type WeChatConfig
- type WebhookConfig
Constants ¶
const ( // FinalizerName name of our finalizer. FinalizerName = "apps.victoriametrics.com/finalizer" SkipValidationAnnotation = "operator.victoriametrics.com/skip-validation" SkipValidationValue = "true" )
const ( ClusterStatusExpanding = "expanding" ClusterStatusOperational = "operational" ClusterStatusFailed = "failed" InternalOperatorError = "failed to perform vmcluster preparing jobs" StorageRollingUpdateFailed = "failed to perform rolling update on vmStorage" StorageCreationFailed = "failed to create vmStorage statefulset" SelectRollingUpdateFailed = "failed to perform rolling update on vmSelect" SelectCreationFailed = "failed to create vmSelect statefulset" InsertCreationFailed = "failed to create vmInsert deployment" )
const ( // MetaVMAlertDeduplicateRulesKey - controls behavior for vmalert rules deduplication // its useful for migration from prometheus. MetaVMAlertDeduplicateRulesKey = "operator.victoriametrics.com/vmalert-deduplicate-rules" )
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "operator.victoriametrics.com", Version: "v1beta1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
var ( // GroupVersion is group version used to register these objects SchemeGroupVersion = schema.GroupVersion{Group: "operator.victoriametrics.com", Version: "v1beta1"} )
Functions ¶
func IsContainsFinalizer ¶ added in v0.9.0
IsContainsFinalizer check if finalizers is set.
func MergeFinalizers ¶ added in v0.10.0
func PrefixedName ¶
func RemoveFinalizer ¶ added in v0.9.0
RemoveFinalizer - removes given finalizer from finalizers list.
Types ¶
type APIServerConfig ¶
type APIServerConfig struct { // Host of apiserver. // A valid string consisting of a hostname or IP followed by an optional port number Host string `json:"host"` // BasicAuth allow an endpoint to authenticate over basic authentication // +optional BasicAuth *BasicAuth `json:"basicAuth,omitempty"` // Bearer token for accessing apiserver. // +optional BearerToken string `json:"bearerToken,omitempty"` // File to read bearer token for accessing apiserver. // +optional BearerTokenFile string `json:"bearerTokenFile,omitempty"` // TLSConfig Config to use for accessing apiserver. // +optional TLSConfig *TLSConfig `json:"tlsConfig,omitempty"` }
APIServerConfig defines a host and auth methods to access apiserver. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kubernetes_sd_config +k8s:openapi-gen=true
func (*APIServerConfig) DeepCopy ¶
func (in *APIServerConfig) DeepCopy() *APIServerConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServerConfig.
func (*APIServerConfig) DeepCopyInto ¶
func (in *APIServerConfig) DeepCopyInto(out *APIServerConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ArbitraryFSAccessThroughSMsConfig ¶
type ArbitraryFSAccessThroughSMsConfig struct {
Deny bool `json:"deny,omitempty"`
}
ArbitraryFSAccessThroughSMsConfig enables users to configure, whether a service scrape selected by the vmagent instance is allowed to use arbitrary files on the file system of the vmagent container. This is the case when e.g. a service scrape specifies a BearerTokenFile in an endpoint. A malicious user could create a service scrape selecting arbitrary secret files in the vmagent container. Those secrets would then be sent with a scrape request by vmagent to a malicious target. Denying the above would prevent the attack, users can instead use the BearerTokenSecret field.
func (*ArbitraryFSAccessThroughSMsConfig) DeepCopy ¶
func (in *ArbitraryFSAccessThroughSMsConfig) DeepCopy() *ArbitraryFSAccessThroughSMsConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArbitraryFSAccessThroughSMsConfig.
func (*ArbitraryFSAccessThroughSMsConfig) DeepCopyInto ¶
func (in *ArbitraryFSAccessThroughSMsConfig) DeepCopyInto(out *ArbitraryFSAccessThroughSMsConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BasicAuth ¶
type BasicAuth struct { // The secret in the service scrape namespace that contains the username // for authentication. // It must be at them same namespace as CRD // +optional Username v1.SecretKeySelector `json:"username,omitempty"` // The secret in the service scrape namespace that contains the password // for authentication. // It must be at them same namespace as CRD // +optional Password v1.SecretKeySelector `json:"password,omitempty"` // PasswordFile defines path to password file at disk // +optional PasswordFile string `json:"password_file,omitempty"` }
BasicAuth allow an endpoint to authenticate over basic authentication More info: https://prometheus.io/docs/operating/configuration/#endpoints +k8s:openapi-gen=true
func (*BasicAuth) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BasicAuth.
func (*BasicAuth) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CRDRef ¶ added in v0.15.0
type CRDRef struct { // Kind one of: // VMAgent VMAlert VMCluster VMSingle or VMAlertManager Kind string `json:"kind"` // Name target CRD object name Name string `json:"name"` // Namespace target CRD object namespace. Namespace string `json:"namespace"` }
CRDRef describe CRD target reference.
func (*CRDRef) AddRefToObj ¶ added in v0.15.0
AddRefToObj adds reference to given object and return it.
func (*CRDRef) DeepCopy ¶ added in v0.15.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CRDRef.
func (*CRDRef) DeepCopyInto ¶ added in v0.15.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DiscoverySelector ¶ added in v0.19.0
type DiscoverySelector struct { Namespace *NamespaceSelector `json:"namespaceSelector,omitempty"` Labels *metav1.LabelSelector `json:"labelSelector,omitempty"` }
DiscoverySelector can be used at CRD components discovery
func (*DiscoverySelector) AsListOptions ¶ added in v0.19.0
func (ds *DiscoverySelector) AsListOptions() (*client.ListOptions, error)
func (*DiscoverySelector) DeepCopy ¶ added in v0.19.0
func (in *DiscoverySelector) DeepCopy() *DiscoverySelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DiscoverySelector.
func (*DiscoverySelector) DeepCopyInto ¶ added in v0.19.0
func (in *DiscoverySelector) DeepCopyInto(out *DiscoverySelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EmailConfig ¶ added in v0.18.0
type EmailConfig struct { // SendResolved controls notify about resolved alerts. // +optional SendResolved *bool `json:"send_resolved,omitempty"` // The email address to send notifications to. // +optional To string `json:"to,omitempty"` // The sender address. // +optional From string `json:"from,omitempty"` // The hostname to identify to the SMTP server. // +optional Hello string `json:"hello,omitempty"` // The SMTP host through which emails are sent. // +optional Smarthost string `json:"smarthost,omitempty"` // The username to use for authentication. // +optional AuthUsername string `json:"auth_username,omitempty"` // AuthPassword defines secret name and key at CRD namespace. // +optional AuthPassword *v1.SecretKeySelector `json:"auth_password,omitempty"` // AuthSecret defines secrent name and key at CRD namespace. // It must contain the CRAM-MD5 secret. // +optional AuthSecret *v1.SecretKeySelector `json:"auth_secret,omitempty"` // The identity to use for authentication. // +optional AuthIdentity string `json:"auth_identity,omitempty"` // Further headers email header key/value pairs. Overrides any headers // previously set by the notification implementation. Headers map[string]string `json:"headers,omitempty"` // The HTML body of the email notification. // +optional HTML string `json:"html,omitempty"` // The text body of the email notification. // +optional Text string `json:"text,omitempty"` // The SMTP TLS requirement. // Note that Go does not support unencrypted connections to remote SMTP endpoints. // +optional RequireTLS *bool `json:"require_tls,omitempty"` // TLS configuration // +optional TLSConfig *TLSConfig `json:"tls_config,omitempty"` }
EmailConfig configures notifications via Email.
func (*EmailConfig) DeepCopy ¶ added in v0.18.0
func (in *EmailConfig) DeepCopy() *EmailConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EmailConfig.
func (*EmailConfig) DeepCopyInto ¶ added in v0.18.0
func (in *EmailConfig) DeepCopyInto(out *EmailConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EmbeddedHPA ¶ added in v0.15.0
type EmbeddedHPA struct { MinReplicas *int32 `json:"minReplicas,omitempty"` MaxReplicas int32 `json:"maxReplicas,omitempty"` Metrics []v2beta2.MetricSpec `json:"metrics,omitempty"` Behaviour *v2beta2.HorizontalPodAutoscalerBehavior `json:"behaviour,omitempty"` }
EmbeddedHPA embeds HorizontalPodAutoScaler spec v2. https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/horizontal-pod-autoscaler-v2beta2/
func (*EmbeddedHPA) DeepCopy ¶ added in v0.15.0
func (in *EmbeddedHPA) DeepCopy() *EmbeddedHPA
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EmbeddedHPA.
func (*EmbeddedHPA) DeepCopyInto ¶ added in v0.15.0
func (in *EmbeddedHPA) DeepCopyInto(out *EmbeddedHPA)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EmbeddedIngress ¶ added in v0.15.0
type EmbeddedIngress struct { // ClassName defines ingress class name for VMAuth // +optional ClassName *string `json:"class_name,omitempty"` // EmbeddedObjectMetadata adds labels and annotations for object. EmbeddedObjectMetadata `json:",inline"` // TlsHosts configures TLS access for ingress, tlsSecretName must be defined for it. TlsHosts []string `json:"tlsHosts,omitempty"` // TlsSecretName defines secretname at the VMAuth namespace with cert and key // https://kubernetes.io/docs/concepts/services-networking/ingress/#tls // +optional TlsSecretName string `json:"tlsSecretName,omitempty"` // ExtraRules - additional rules for ingress, // must be checked for correctness by user. // +optional ExtraRules []v12.IngressRule `json:"extraRules,omitempty"` // ExtraTLS - additional TLS configuration for ingress // must be checked for correctness by user. // +optional ExtraTLS []v12.IngressTLS `json:"extraTls,omitempty"` }
EmbeddedIngress describes ingress configuration options.
func (*EmbeddedIngress) DeepCopy ¶ added in v0.15.0
func (in *EmbeddedIngress) DeepCopy() *EmbeddedIngress
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EmbeddedIngress.
func (*EmbeddedIngress) DeepCopyInto ¶ added in v0.15.0
func (in *EmbeddedIngress) DeepCopyInto(out *EmbeddedIngress)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EmbeddedObjectMetadata ¶
type EmbeddedObjectMetadata struct { // Name must be unique within a namespace. Is required when creating resources, although // some resources may allow a client to request the generation of an appropriate name // automatically. Name is primarily intended for creation idempotence and configuration // definition. // Cannot be updated. // More info: http://kubernetes.io/docs/user-guide/identifiers#names // +optional Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` // Labels Map of string keys and values that can be used to organize and categorize // (scope and select) objects. May match selectors of replication controllers // and services. // More info: http://kubernetes.io/docs/user-guide/labels // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="PodLabels" // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:label" // +optional Labels map[string]string `json:"labels,omitempty" protobuf:"bytes,11,rep,name=labels"` // Annotations is an unstructured key value map stored with a resource that may be // set by external tools to store and retrieve arbitrary metadata. They are not // queryable and should be preserved when modifying objects. // More info: http://kubernetes.io/docs/user-guide/annotations // +optional Annotations map[string]string `json:"annotations,omitempty" protobuf:"bytes,12,rep,name=annotations"` }
EmbeddedObjectMetadata contains a subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta Only fields which are relevant to embedded resources are included.
func (*EmbeddedObjectMetadata) DeepCopy ¶
func (in *EmbeddedObjectMetadata) DeepCopy() *EmbeddedObjectMetadata
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EmbeddedObjectMetadata.
func (*EmbeddedObjectMetadata) DeepCopyInto ¶
func (in *EmbeddedObjectMetadata) DeepCopyInto(out *EmbeddedObjectMetadata)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EmbeddedPersistentVolumeClaim ¶
type EmbeddedPersistentVolumeClaim struct { metav1.TypeMeta `json:",inline"` // EmbeddedMetadata contains metadata relevant to an EmbeddedResource. // +optional EmbeddedObjectMetadata `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Spec defines the desired characteristics of a volume requested by a pod author. // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims // +optional Spec v1.PersistentVolumeClaimSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` // Status represents the current information/status of a persistent volume claim. // Read-only. // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims // +optional Status v1.PersistentVolumeClaimStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` }
EmbeddedPersistentVolumeClaim is an embedded version of k8s.io/api/core/v1.PersistentVolumeClaim. It contains TypeMeta and a reduced ObjectMeta.
func (*EmbeddedPersistentVolumeClaim) DeepCopy ¶
func (in *EmbeddedPersistentVolumeClaim) DeepCopy() *EmbeddedPersistentVolumeClaim
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EmbeddedPersistentVolumeClaim.
func (*EmbeddedPersistentVolumeClaim) DeepCopyInto ¶
func (in *EmbeddedPersistentVolumeClaim) DeepCopyInto(out *EmbeddedPersistentVolumeClaim)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EmbeddedPodDisruptionBudgetSpec ¶ added in v0.12.0
type EmbeddedPodDisruptionBudgetSpec struct { // An eviction is allowed if at least "minAvailable" pods selected by // "selector" will still be available after the eviction, i.e. even in the // absence of the evicted pod. So for example you can prevent all voluntary // evictions by specifying "100%". // +optional MinAvailable *intstr.IntOrString `json:"minAvailable,omitempty"` // "selector" are unavailable after the eviction, i.e. even in absence of // the evicted pod. For example, one can prevent all voluntary evictions // by specifying 0. This is a mutually exclusive setting with "minAvailable". // +optional MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"` }
func (*EmbeddedPodDisruptionBudgetSpec) DeepCopy ¶ added in v0.12.0
func (in *EmbeddedPodDisruptionBudgetSpec) DeepCopy() *EmbeddedPodDisruptionBudgetSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EmbeddedPodDisruptionBudgetSpec.
func (*EmbeddedPodDisruptionBudgetSpec) DeepCopyInto ¶ added in v0.12.0
func (in *EmbeddedPodDisruptionBudgetSpec) DeepCopyInto(out *EmbeddedPodDisruptionBudgetSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EmbeddedProbes ¶ added in v0.13.0
type EmbeddedProbes struct { // LivenessProbe that will be added CRD pod // +optional LivenessProbe *v1.Probe `json:"livenessProbe,omitempty"` // ReadinessProbe that will be added CRD pod // +optional ReadinessProbe *v1.Probe `json:"readinessProbe,omitempty"` // StartupProbe that will be added to CRD pod // +optional StartupProbe *v1.Probe `json:"startupProbe,omitempty"` }
EmbeddedProbes - it allows to override some probe params. its not necessary to specify all options, operator will replace missing spec with default values.
func (*EmbeddedProbes) DeepCopy ¶ added in v0.13.0
func (in *EmbeddedProbes) DeepCopy() *EmbeddedProbes
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EmbeddedProbes.
func (*EmbeddedProbes) DeepCopyInto ¶ added in v0.13.0
func (in *EmbeddedProbes) DeepCopyInto(out *EmbeddedProbes)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Endpoint ¶
type Endpoint struct { // Name of the service port this endpoint refers to. Mutually exclusive with targetPort. // +optional Port string `json:"port,omitempty"` // Name or number of the pod port this endpoint refers to. Mutually exclusive with port. // +optional TargetPort *intstr.IntOrString `json:"targetPort,omitempty"` // HTTP path to scrape for metrics. // +optional Path string `json:"path,omitempty"` // HTTP scheme to use for scraping. // +optional Scheme string `json:"scheme,omitempty"` // Optional HTTP URL parameters // +optional Params map[string][]string `json:"params,omitempty"` // FollowRedirects controls redirects for scraping. // +optional FollowRedirects *bool `json:"follow_redirects,omitempty"` // Interval at which metrics should be scraped // +optional Interval string `json:"interval,omitempty"` // ScrapeInterval is the same as Interval and has priority over it. // one of scrape_interval or interval can be used // +optional ScrapeInterval string `json:"scrape_interval,omitempty"` // Timeout after which the scrape is ended // +optional ScrapeTimeout string `json:"scrapeTimeout,omitempty"` // SampleLimit defines per-endpoint limit on number of scraped samples that will be accepted. // +optional SampleLimit uint64 `json:"sampleLimit,omitempty"` // OAuth2 defines auth configuration // +optional OAuth2 *OAuth2 `json:"oauth2,omitempty"` // TLSConfig configuration to use when scraping the endpoint // +optional TLSConfig *TLSConfig `json:"tlsConfig,omitempty"` // File to read bearer token for scraping targets. // +optional BearerTokenFile string `json:"bearerTokenFile,omitempty"` // Secret to mount to read bearer token for scraping targets. The secret // needs to be in the same namespace as the service scrape and accessible by // the victoria-metrics operator. // +optional // +nullable BearerTokenSecret *v1.SecretKeySelector `json:"bearerTokenSecret,omitempty"` // HonorLabels chooses the metric's labels on collisions with target labels. // +optional HonorLabels bool `json:"honorLabels,omitempty"` // HonorTimestamps controls whether vmagent respects the timestamps present in scraped data. // +optional HonorTimestamps *bool `json:"honorTimestamps,omitempty"` // BasicAuth allow an endpoint to authenticate over basic authentication // More info: https://prometheus.io/docs/operating/configuration/#endpoints // +optional BasicAuth *BasicAuth `json:"basicAuth,omitempty"` // MetricRelabelConfigs to apply to samples before ingestion. // +optional MetricRelabelConfigs []*RelabelConfig `json:"metricRelabelConfigs,omitempty"` // RelabelConfigs to apply to samples before scraping. // More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config // +optional RelabelConfigs []*RelabelConfig `json:"relabelConfigs,omitempty"` // ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. // +optional ProxyURL *string `json:"proxyURL,omitempty"` // VMScrapeParams defines VictoriaMetrics specific scrape parametrs // +optional VMScrapeParams *VMScrapeParams `json:"vm_scrape_params,omitempty"` }
Endpoint defines a scrapeable endpoint serving Prometheus metrics. +k8s:openapi-gen=true
func (*Endpoint) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Endpoint.
func (*Endpoint) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HTTPConfig ¶ added in v0.18.0
type HTTPConfig struct { // BasicAuth for the client. // +optional BasicAuth *BasicAuth `json:"basic_auth,omitempty"` // The secret's key that contains the bearer token // It must be at them same namespace as CRD // +optional BearerTokenSecret *v1.SecretKeySelector `json:"bearer_token_secret,omitempty"` // BearerTokenFile defines filename for bearer token, it must be mounted to pod. // +optional BearerTokenFile string `json:"bearer_token_file,omitempty"` // TLS configuration for the client. // +optional TLSConfig *TLSConfig `json:"tls_config,omitempty"` // Optional proxy URL. // +optional ProxyURL string `json:"proxyURL,omitempty"` }
HTTPConfig defines a client HTTP configuration. See https://prometheus.io/docs/alerting/latest/configuration/#http_config
func (*HTTPConfig) DeepCopy ¶ added in v0.18.0
func (in *HTTPConfig) DeepCopy() *HTTPConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPConfig.
func (*HTTPConfig) DeepCopyInto ¶ added in v0.18.0
func (in *HTTPConfig) DeepCopyInto(out *HTTPConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Image ¶
type Image struct { // Repository contains name of docker image + it's repository if needed Repository string `json:"repository,omitempty"` // Tag contains desired docker image version Tag string `json:"tag,omitempty"` // PullPolicy describes how to pull docker image PullPolicy v1.PullPolicy `json:"pullPolicy,omitempty"` }
Image defines docker image settings
func (*Image) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Image.
func (*Image) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type InhibitRule ¶ added in v0.18.0
type InhibitRule struct { // TargetMatchers defines a list of matchers that have to be fulfilled by the target // alerts to be muted. // +optional TargetMatchers []string `json:"target_matchers,omitempty"` // SourceMatchers defines a list of matchers for which one or more alerts have // to exist for the inhibition to take effect. // +optional SourceMatchers []string `json:"source_matchers,omitempty"` // Labels that must have an equal value in the source and target alert for // the inhibition to take effect. // +optional Equal []string `json:"equal,omitempty"` }
InhibitRule defines an inhibition rule that allows to mute alerts when other alerts are already firing. Note, it doesn't support deprecated alertmanager config options. See https://prometheus.io/docs/alerting/latest/configuration/#inhibit_rule
func (*InhibitRule) DeepCopy ¶ added in v0.18.0
func (in *InhibitRule) DeepCopy() *InhibitRule
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InhibitRule.
func (*InhibitRule) DeepCopyInto ¶ added in v0.18.0
func (in *InhibitRule) DeepCopyInto(out *InhibitRule)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type InsertPorts ¶ added in v0.8.0
type InsertPorts struct { // GraphitePort listen port // +optional GraphitePort string `json:"graphitePort,omitempty"` // InfluxPort listen port // +optional InfluxPort string `json:"influxPort,omitempty"` // OpenTSDBHTTPPort for http connections. // +optional OpenTSDBHTTPPort string `json:"openTSDBHTTPPort,omitempty"` // OpenTSDBPort for tcp and udp listen // +optional OpenTSDBPort string `json:"openTSDBPort,omitempty"` }
func (*InsertPorts) DeepCopy ¶ added in v0.8.0
func (in *InsertPorts) DeepCopy() *InsertPorts
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InsertPorts.
func (*InsertPorts) DeepCopyInto ¶ added in v0.8.0
func (in *InsertPorts) DeepCopyInto(out *InsertPorts)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MuteTimeInterval ¶ added in v0.18.0
type MuteTimeInterval struct { // Name of interval // +required Name string `json:"name,omitempty"` // TimeIntervals interval configuration // +required TimeIntervals []TimeInterval `json:"time_intervals"` }
MuteTimeInterval for alerts
func (*MuteTimeInterval) DeepCopy ¶ added in v0.18.0
func (in *MuteTimeInterval) DeepCopy() *MuteTimeInterval
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MuteTimeInterval.
func (*MuteTimeInterval) DeepCopyInto ¶ added in v0.18.0
func (in *MuteTimeInterval) DeepCopyInto(out *MuteTimeInterval)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NamespaceSelector ¶
type NamespaceSelector struct { // Boolean describing whether all namespaces are selected in contrast to a // list restricting them. // +optional Any bool `json:"any,omitempty"` // List of namespace names. // +optional MatchNames []string `json:"matchNames,omitempty"` }
NamespaceSelector is a selector for selecting either all namespaces or a list of namespaces. +k8s:openapi-gen=true
func (*NamespaceSelector) DeepCopy ¶
func (in *NamespaceSelector) DeepCopy() *NamespaceSelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceSelector.
func (*NamespaceSelector) DeepCopyInto ¶
func (in *NamespaceSelector) DeepCopyInto(out *NamespaceSelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NamespaceSelector) IsMatch ¶ added in v0.19.0
func (ns *NamespaceSelector) IsMatch(item nsMatcher) bool
type OAuth2 ¶ added in v0.18.0
type OAuth2 struct { // The secret or configmap containing the OAuth2 client id // +required ClientID SecretOrConfigMap `json:"client_id"` // The secret containing the OAuth2 client secret // +optional ClientSecret *v1.SecretKeySelector `json:"client_secret,omitempty"` // ClientSecretFile defines path for client secret file. // +optional ClientSecretFile string `json:"client_secret_file,omitempty"` // The URL to fetch the token from // +kubebuilder:validation:MinLength=1 // +required TokenURL string `json:"token_url"` // OAuth2 scopes used for the token request // +optional Scopes []string `json:"scopes,omitempty"` // Parameters to append to the token URL // +optional EndpointParams map[string]string `json:"endpoint_params,omitempty"` }
OAuth2 defines OAuth2 configuration
func (*OAuth2) DeepCopy ¶ added in v0.18.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OAuth2.
func (*OAuth2) DeepCopyInto ¶ added in v0.18.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OpsGenieConfig ¶ added in v0.18.0
type OpsGenieConfig struct { // SendResolved controls notify about resolved alerts. // +optional SendResolved *bool `json:"send_resolved,omitempty"` // The secret's key that contains the OpsGenie API key. // It must be at them same namespace as CRD // +optional APIKey *v1.SecretKeySelector `json:"api_key,omitempty"` // The URL to send OpsGenie API requests to. // +optional APIURL string `json:"apiURL,omitempty"` // Alert text limited to 130 characters. // +optional Message string `json:"message,omitempty"` // Description of the incident. // +optional Description string `json:"description,omitempty"` // Backlink to the sender of the notification. // +optional Source string `json:"source,omitempty"` // Comma separated list of tags attached to the notifications. // +optional Tags string `json:"tags,omitempty"` // Additional alert note. // +optional Note string `json:"note,omitempty"` // Priority level of alert. Possible values are P1, P2, P3, P4, and P5. // +optional Priority string `json:"priority,omitempty"` // A set of arbitrary key/value pairs that provide further detail about the incident. // +optional Details map[string]string `json:"details,omitempty"` // List of responders responsible for notifications. // +optional Responders []OpsGenieConfigResponder `json:"responders,omitempty"` // HTTP client configuration. // +optional HTTPConfig *HTTPConfig `json:"httpConfig,omitempty"` }
OpsGenieConfig configures notifications via OpsGenie. See https://prometheus.io/docs/alerting/latest/configuration/#opsgenie_config
func (*OpsGenieConfig) DeepCopy ¶ added in v0.18.0
func (in *OpsGenieConfig) DeepCopy() *OpsGenieConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpsGenieConfig.
func (*OpsGenieConfig) DeepCopyInto ¶ added in v0.18.0
func (in *OpsGenieConfig) DeepCopyInto(out *OpsGenieConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OpsGenieConfigResponder ¶ added in v0.18.0
type OpsGenieConfigResponder struct { // ID of the responder. // +optional ID string `json:"id,omitempty"` // Name of the responder. // +optional Name string `json:"name,omitempty"` // Username of the responder. // +optional Username string `json:"username,omitempty"` // Type of responder. // +kubebuilder:validation:MinLength=1 // +required Type string `json:"type"` }
OpsGenieConfigResponder defines a responder to an incident. One of `id`, `name` or `username` has to be defined.
func (*OpsGenieConfigResponder) DeepCopy ¶ added in v0.18.0
func (in *OpsGenieConfigResponder) DeepCopy() *OpsGenieConfigResponder
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpsGenieConfigResponder.
func (*OpsGenieConfigResponder) DeepCopyInto ¶ added in v0.18.0
func (in *OpsGenieConfigResponder) DeepCopyInto(out *OpsGenieConfigResponder)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PagerDutyConfig ¶ added in v0.18.0
type PagerDutyConfig struct { // SendResolved controls notify about resolved alerts. // +optional SendResolved *bool `json:"send_resolved,omitempty"` // The secret's key that contains the PagerDuty integration key (when using // Events API v2). Either this field or `serviceKey` needs to be defined. // It must be at them same namespace as CRD // +optional RoutingKey *v1.SecretKeySelector `json:"routing_key,omitempty"` // The secret's key that contains the PagerDuty service key (when using // integration type "Prometheus"). Either this field or `routingKey` needs to // be defined. // It must be at them same namespace as CRD // +optional ServiceKey *v1.SecretKeySelector `json:"service_key,omitempty"` // The URL to send requests to. // +optional URL string `json:"url,omitempty"` // Client identification. // +optional Client string `json:"client,omitempty"` // Backlink to the sender of notification. // +optional ClientURL string `json:"client_url,omitempty"` // Description of the incident. // +optional Description string `json:"description,omitempty"` // Severity of the incident. // +optional Severity string `json:"severity,omitempty"` // The class/type of the event. // +optional Class string `json:"class,omitempty"` // A cluster or grouping of sources. // +optional Group string `json:"group,omitempty"` // The part or component of the affected system that is broken. // +optional Component string `json:"component,omitempty"` // Arbitrary key/value pairs that provide further detail about the incident. // +optional Details map[string]string `json:"details,omitempty"` // HTTP client configuration. // +optional HTTPConfig *HTTPConfig `json:"http_config,omitempty"` }
PagerDutyConfig configures notifications via PagerDuty. See https://prometheus.io/docs/alerting/latest/configuration/#pagerduty_config
func (*PagerDutyConfig) DeepCopy ¶ added in v0.18.0
func (in *PagerDutyConfig) DeepCopy() *PagerDutyConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PagerDutyConfig.
func (*PagerDutyConfig) DeepCopyInto ¶ added in v0.18.0
func (in *PagerDutyConfig) DeepCopyInto(out *PagerDutyConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodMetricsEndpoint ¶
type PodMetricsEndpoint struct { // Name of the pod port this endpoint refers to. Mutually exclusive with targetPort. // +optional Port string `json:"port,omitempty"` // Deprecated: Use 'port' instead. // +optional TargetPort *intstr.IntOrString `json:"targetPort,omitempty"` // HTTP path to scrape for metrics. // +optional Path string `json:"path,omitempty"` // HTTP scheme to use for scraping. // +optional Scheme string `json:"scheme,omitempty"` // Optional HTTP URL parameters // +optional Params map[string][]string `json:"params,omitempty"` // FollowRedirects controls redirects for scraping. // +optional FollowRedirects *bool `json:"follow_redirects,omitempty"` // Interval at which metrics should be scraped // +optional Interval string `json:"interval,omitempty"` // ScrapeInterval is the same as Interval and has priority over it. // one of scrape_interval or interval can be used // +optional ScrapeInterval string `json:"scrape_interval,omitempty"` // Timeout after which the scrape is ended // +optional ScrapeTimeout string `json:"scrapeTimeout,omitempty"` // SampleLimit defines per-podEndpoint limit on number of scraped samples that will be accepted. // +optional SampleLimit uint64 `json:"sampleLimit,omitempty"` // HonorLabels chooses the metric's labels on collisions with target labels. // +optional HonorLabels bool `json:"honorLabels,omitempty"` // HonorTimestamps controls whether vmagent respects the timestamps present in scraped data. // +optional HonorTimestamps *bool `json:"honorTimestamps,omitempty"` // MetricRelabelConfigs to apply to samples before ingestion. // +optional MetricRelabelConfigs []*RelabelConfig `json:"metricRelabelConfigs,omitempty"` // RelabelConfigs to apply to samples before ingestion. // More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config // +optional RelabelConfigs []*RelabelConfig `json:"relabelConfigs,omitempty"` // ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. // +optional ProxyURL *string `json:"proxyURL,omitempty"` // BasicAuth allow an endpoint to authenticate over basic authentication // More info: https://prometheus.io/docs/operating/configuration/#endpoints // +optional BasicAuth *BasicAuth `json:"basicAuth,omitempty"` // File to read bearer token for scraping targets. // +optional BearerTokenFile string `json:"bearerTokenFile,omitempty"` // Secret to mount to read bearer token for scraping targets. The secret // needs to be in the same namespace as the service scrape and accessible by // the victoria-metrics operator. // +optional // +nullable BearerTokenSecret *v1.SecretKeySelector `json:"bearerTokenSecret,omitempty"` // TLSConfig configuration to use when scraping the endpoint // +optional TLSConfig *TLSConfig `json:"tlsConfig,omitempty"` // OAuth2 defines auth configuration // +optional OAuth2 *OAuth2 `json:"oauth2,omitempty"` // VMScrapeParams defines VictoriaMetrics specific scrape parametrs // +optional VMScrapeParams *VMScrapeParams `json:"vm_scrape_params,omitempty"` }
PodMetricsEndpoint defines a scrapeable endpoint of a Kubernetes Pod serving Prometheus metrics. +k8s:openapi-gen=true
func (*PodMetricsEndpoint) DeepCopy ¶
func (in *PodMetricsEndpoint) DeepCopy() *PodMetricsEndpoint
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodMetricsEndpoint.
func (*PodMetricsEndpoint) DeepCopyInto ¶
func (in *PodMetricsEndpoint) DeepCopyInto(out *PodMetricsEndpoint)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProbeTargetIngress ¶ added in v0.2.0
type ProbeTargetIngress struct { // Select Ingress objects by labels. Selector metav1.LabelSelector `json:"selector,omitempty"` // Select Ingress objects by namespace. NamespaceSelector NamespaceSelector `json:"namespaceSelector,omitempty"` // RelabelConfigs to apply to samples before ingestion. // More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config RelabelConfigs []*RelabelConfig `json:"relabelingConfigs,omitempty"` }
ProbeTargetIngress defines the set of Ingress objects considered for probing. +k8s:openapi-gen=true
func (*ProbeTargetIngress) DeepCopy ¶ added in v0.2.0
func (in *ProbeTargetIngress) DeepCopy() *ProbeTargetIngress
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProbeTargetIngress.
func (*ProbeTargetIngress) DeepCopyInto ¶ added in v0.2.0
func (in *ProbeTargetIngress) DeepCopyInto(out *ProbeTargetIngress)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProxyAuth ¶ added in v0.18.0
type ProxyAuth struct { BasicAuth *BasicAuth `json:"basic_auth,omitempty"` BearerToken *v1.SecretKeySelector `json:"bearer_token,omitempty"` BearerTokenFile string `json:"bearer_token_file,omitempty"` TLSConfig *TLSConfig `json:"tls_config,omitempty"` }
ProxyAuth represent proxy auth config Only VictoriaMetrics scrapers supports it. See https://github.com/VictoriaMetrics/VictoriaMetrics/commit/a6a71ef861444eb11fe8ec6d2387f0fc0c4aea87
func (*ProxyAuth) DeepCopy ¶ added in v0.18.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyAuth.
func (*ProxyAuth) DeepCopyInto ¶ added in v0.18.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PushoverConfig ¶ added in v0.18.0
type PushoverConfig struct { // SendResolved controls notify about resolved alerts. // +optional SendResolved *bool `json:"send_resolved,omitempty"` // The secret's key that contains the recipient user’s user key. // It must be at them same namespace as CRD UserKey *v1.SecretKeySelector `json:"user_key,omitempty"` // The secret's key that contains the registered application’s API token, see https://pushover.net/apps. // It must be at them same namespace as CRD Token *v1.SecretKeySelector `json:"token,omitempty"` // Notification title. // +optional Title string `json:"title,omitempty"` // Notification message. // +optional Message string `json:"message,omitempty"` // A supplementary URL shown alongside the message. // +optional URL string `json:"url,omitempty"` // A title for supplementary URL, otherwise just the URL is shown // +optional URLTitle string `json:"url_title,omitempty"` // The name of one of the sounds supported by device clients to override the user's default sound choice // +optional Sound string `json:"sound,omitempty"` // Priority, see https://pushover.net/api#priority // +optional Priority string `json:"priority,omitempty"` // How often the Pushover servers will send the same notification to the user. // Must be at least 30 seconds. // +optional Retry string `json:"retry,omitempty"` // How long your notification will continue to be retried for, unless the user // acknowledges the notification. // +optional Expire string `json:"expire,omitempty"` // Whether notification message is HTML or plain text. // +optional HTML bool `json:"html,omitempty"` // HTTP client configuration. // +optional HTTPConfig *HTTPConfig `json:"http_config,omitempty"` }
PushoverConfig configures notifications via Pushover. See https://prometheus.io/docs/alerting/latest/configuration/#pushover_config
func (*PushoverConfig) DeepCopy ¶ added in v0.18.0
func (in *PushoverConfig) DeepCopy() *PushoverConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PushoverConfig.
func (*PushoverConfig) DeepCopyInto ¶ added in v0.18.0
func (in *PushoverConfig) DeepCopyInto(out *PushoverConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type QueueConfig ¶
type QueueConfig struct { // Capacity is the number of samples to buffer per shard before we start dropping them. // +optional Capacity int `json:"capacity,omitempty"` // MinShards is the minimum number of shards, i.e. amount of concurrency. // +optional MinShards int `json:"minShards,omitempty"` // MaxShards is the maximum number of shards, i.e. amount of concurrency. // +optional MaxShards int `json:"maxShards,omitempty"` // MaxSamplesPerSend is the maximum number of samples per send. // +optional MaxSamplesPerSend int `json:"maxSamplesPerSend,omitempty"` // BatchSendDeadline is the maximum time a sample will wait in buffer. // +optional BatchSendDeadline string `json:"batchSendDeadline,omitempty"` // MaxRetries is the maximum number of times to retry a batch on recoverable errors. // +optional MaxRetries int `json:"maxRetries,omitempty"` // MinBackoff is the initial retry delay. Gets doubled for every retry. // +optional MinBackoff string `json:"minBackoff,omitempty"` // MaxBackoff is the maximum retry delay. // +optional MaxBackoff string `json:"maxBackoff,omitempty"` }
QueueConfig allows the tuning of remote_write queue_config parameters. This object is referenced in the RemoteWriteSpec object. +k8s:openapi-gen=true
func (*QueueConfig) DeepCopy ¶
func (in *QueueConfig) DeepCopy() *QueueConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new QueueConfig.
func (*QueueConfig) DeepCopyInto ¶
func (in *QueueConfig) DeepCopyInto(out *QueueConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Receiver ¶ added in v0.18.0
type Receiver struct { // Name of the receiver. Must be unique across all items from the list. // +kubebuilder:validation:MinLength=1 // +required Name string `json:"name"` // EmailConfigs defines email notification configurations. // +optional EmailConfigs []EmailConfig `json:"email_configs,omitempty"` // PagerDutyConfigs defines pager duty notification configurations. // +optional PagerDutyConfigs []PagerDutyConfig `json:"pagerduty_configs,omitempty"` // PushoverConfigs defines push over notification configurations. // +optional PushoverConfigs []PushoverConfig `json:"pushover_configs,omitempty"` // SlackConfigs defines slack notification configurations. // +optional SlackConfigs []SlackConfig `json:"slack_configs,omitempty"` // OpsGenieConfigs defines ops genie notification configurations. // +optional OpsGenieConfigs []OpsGenieConfig `json:"opsgenie_configs,omitempty"` // WebhookConfigs defines webhook notification configurations. // +optional WebhookConfigs []WebhookConfig `json:"webhook_configs,omitempty"` // VictorOpsConfigs defines victor ops notification configurations. // +optional VictorOpsConfigs []VictorOpsConfig `json:"victorops_configs,omitempty"` // WeChatConfigs defines wechat notification configurations. // +optional WeChatConfigs []WeChatConfig `json:"wechat_configs,omitempty"` }
Receiver defines one or more notification integrations.
func (*Receiver) DeepCopy ¶ added in v0.18.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Receiver.
func (*Receiver) DeepCopyInto ¶ added in v0.18.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RelabelConfig ¶
type RelabelConfig struct { // UnderScoreSourceLabels - additional form of source labels source_labels // for compatibility with original relabel config. // if set both sourceLabels and source_labels, sourceLabels has priority. // for details https://github.com/VictoriaMetrics/operator/issues/131 // +optional UnderScoreSourceLabels []string `json:"source_labels,omitempty" yaml:"source_labels,omitempty"` // UnderScoreTargetLabel - additional form of target label - target_label // for compatibility with original relabel config. // if set both targetLabel and target_label, targetLabel has priority. // for details https://github.com/VictoriaMetrics/operator/issues/131 // +optional UnderScoreTargetLabel string `json:"target_label,omitempty" yaml:"target_label,omitempty"` //The source labels select values from existing labels. Their content is concatenated //using the configured separator and matched against the configured regular expression //for the replace, keep, and drop actions. // +optional SourceLabels []string `json:"sourceLabels,omitempty" yaml:"-"` //Separator placed between concatenated source label values. default is ';'. // +optional Separator string `json:"separator,omitempty" yaml:"separator,omitempty"` //Label to which the resulting value is written in a replace action. //It is mandatory for replace actions. Regex capture groups are available. // +optional TargetLabel string `json:"targetLabel,omitempty" yaml:"-"` //Regular expression against which the extracted value is matched. Default is '(.*)' // +optional Regex string `json:"regex,omitempty" yaml:"regex,omitempty"` // Modulus to take of the hash of the source label values. // +optional Modulus uint64 `json:"modulus,omitempty" yaml:"modulus,omitempty"` //Replacement value against which a regex replace is performed if the //regular expression matches. Regex capture groups are available. Default is '$1' // +optional Replacement string `json:"replacement,omitempty" yaml:"replacement,omitempty"` // Action to perform based on regex matching. Default is 'replace' // +optional Action string `json:"action,omitempty" yaml:"action,omitempty"` }
RelabelConfig allows dynamic rewriting of the label set, being applied to samples before ingestion. It defines `<metric_relabel_configs>`-section of configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs +k8s:openapi-gen=true
func (*RelabelConfig) DeepCopy ¶
func (in *RelabelConfig) DeepCopy() *RelabelConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RelabelConfig.
func (*RelabelConfig) DeepCopyInto ¶
func (in *RelabelConfig) DeepCopyInto(out *RelabelConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RelabelConfig) IsEmpty ¶ added in v0.14.0
func (rc *RelabelConfig) IsEmpty() bool
type Route ¶ added in v0.18.0
type Route struct { // Name of the receiver for this route. // +required Receiver string `json:"receiver"` // List of labels to group by. // +optional GroupBy []string `json:"group_by,omitempty"` // How long to wait before sending the initial notification. // +kubebuilder:validation:Pattern:="[0-9]+(ms|s|m|h)" // +optional GroupWait string `json:"group_wait,omitempty"` // How long to wait before sending an updated notification. // +kubebuilder:validation:Pattern:="[0-9]+(ms|s|m|h)" // +optional GroupInterval string `json:"group_interval,omitempty"` // How long to wait before repeating the last notification. // +kubebuilder:validation:Pattern:="[0-9]+(ms|s|m|h)" // +optional RepeatInterval string `json:"repeat_interval,omitempty"` // List of matchers that the alert’s labels should match. For the first // level route, the operator adds a namespace: "CRD_NS" matcher. // https://prometheus.io/docs/alerting/latest/configuration/#matcher // +optional Matchers []string `json:"matchers,omitempty"` // Continue indicating whether an alert should continue matching subsequent // sibling nodes. It will always be true for the first-level route. // +optional Continue bool `json:"continue,omitempty"` // Child routes. Routes []*Route `json:"routes,omitempty"` // MuteTimeIntervals for alerts // +optional MuteTimeIntervals []string `json:"mute_time_intervals,omitempty"` }
Route defines a node in the routing tree.
func (*Route) DeepCopy ¶ added in v0.18.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Route.
func (*Route) DeepCopyInto ¶ added in v0.18.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Rule ¶
type Rule struct { // Record represents a query, that will be recorded to dataSource // +optional Record string `json:"record,omitempty"` // Alert is a name for alert // +optional Alert string `json:"alert,omitempty"` // Expr is query, that will be evaluated at dataSource // +optional Expr intstr.IntOrString `json:"expr"` // For evaluation interval in time.Duration format // 30s, 1m, 1h or nanoseconds // +optional For string `json:"for,omitempty"` // Labels will be added to rule configuration // +optional Labels map[string]string `json:"labels,omitempty"` // Annotations will be added to rule configuration // +optional Annotations map[string]string `json:"annotations,omitempty"` }
Rule describes an alerting or recording rule. +k8s:openapi-gen=true
func (*Rule) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Rule.
func (*Rule) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RuleGroup ¶
type RuleGroup struct { // Name of group Name string `json:"name"` // evaluation interval for group // +optional Interval string `json:"interval,omitempty"` // Rules list of alert rules Rules []Rule `json:"rules"` // Concurrency defines how many rules execute at once. // +optional Concurrency int `json:"concurrency,omitempty"` // Labels optional list of labels added to every rule within a group. // It has priority over the external labels. // Labels are commonly used for adding environment // or tenant-specific tag. // +optional Labels map[string]string `json:"labels,omitempty"` // ExtraFilterLabels optional list of label filters applied to every rule's // request withing a group. Is compatible only with VM datasource. // See more details at https://docs.victoriametrics.com#prometheus-querying-api-enhancements // +optional ExtraFilterLabels map[string]string `json:"extra_filter_labels,omitempty"` // Tenant id for group, can be used only with enterprise version of vmalert // See more details at https://docs.victoriametrics.com/vmalert.html#multitenancy // +optional Tenant string `json:"tenant,omitempty"` }
RuleGroup is a list of sequentially evaluated recording and alerting rules. +k8s:openapi-gen=true
func (*RuleGroup) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuleGroup.
func (*RuleGroup) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecretOrConfigMap ¶
type SecretOrConfigMap struct { // Secret containing data to use for the targets. // +optional Secret *v1.SecretKeySelector `json:"secret,omitempty"` // ConfigMap containing data to use for the targets. // +optional ConfigMap *v1.ConfigMapKeySelector `json:"configMap,omitempty"` }
SecretOrConfigMap allows to specify data as a Secret or ConfigMap. Fields are mutually exclusive.
func (*SecretOrConfigMap) BuildSelectorWithPrefix ¶
func (c *SecretOrConfigMap) BuildSelectorWithPrefix(prefix string) string
func (*SecretOrConfigMap) DeepCopy ¶
func (in *SecretOrConfigMap) DeepCopy() *SecretOrConfigMap
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretOrConfigMap.
func (*SecretOrConfigMap) DeepCopyInto ¶
func (in *SecretOrConfigMap) DeepCopyInto(out *SecretOrConfigMap)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SecretOrConfigMap) Key ¶ added in v0.1.0
func (c *SecretOrConfigMap) Key() string
func (*SecretOrConfigMap) Name ¶ added in v0.1.0
func (c *SecretOrConfigMap) Name() string
func (*SecretOrConfigMap) Validate ¶
func (c *SecretOrConfigMap) Validate() error
Validate semantically validates the given TLSConfig.
type SecretOrConfigMapValidationError ¶
type SecretOrConfigMapValidationError struct {
// contains filtered or unexported fields
}
SecretOrConfigMapValidationError is returned by SecretOrConfigMap.Validate() on semantically invalid configurations. +k8s:openapi-gen=false
func (*SecretOrConfigMapValidationError) DeepCopy ¶
func (in *SecretOrConfigMapValidationError) DeepCopy() *SecretOrConfigMapValidationError
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretOrConfigMapValidationError.
func (*SecretOrConfigMapValidationError) DeepCopyInto ¶
func (in *SecretOrConfigMapValidationError) DeepCopyInto(out *SecretOrConfigMapValidationError)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SecretOrConfigMapValidationError) Error ¶
func (e *SecretOrConfigMapValidationError) Error() string
type ServiceSpec ¶ added in v0.11.0
type ServiceSpec struct { // EmbeddedObjectMetadata defines objectMeta for additional service. EmbeddedObjectMetadata `json:"metadata,omitempty"` // ServiceSpec describes the attributes that a user creates on a service. // More info: https://kubernetes.io/docs/concepts/services-networking/service/ Spec v1.ServiceSpec `json:"spec"` }
ServiceSpec defines additional service for CRD with user-defined params. by default, some of fields can be inherited from default service definition for the CRD: labels,selector, ports. if metadata.name is not defined, service will have format {{CRD_TYPE}}-{{CRD_NAME}}-additional-service. +k8s:openapi-gen=true
func (*ServiceSpec) DeepCopy ¶ added in v0.11.0
func (in *ServiceSpec) DeepCopy() *ServiceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceSpec.
func (*ServiceSpec) DeepCopyInto ¶ added in v0.11.0
func (in *ServiceSpec) DeepCopyInto(out *ServiceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ServiceSpec) NameOrDefault ¶ added in v0.11.0
func (ss *ServiceSpec) NameOrDefault(defaultName string) string
NameOrDefault returns name or default value with suffix
type SlackAction ¶ added in v0.18.0
type SlackAction struct { // +kubebuilder:validation:MinLength=1 // +required Type string `json:"type"` // +kubebuilder:validation:MinLength=1 // +required Text string `json:"text"` // +optional URL string `json:"url,omitempty"` // +optional Style string `json:"style,omitempty"` // +optional Name string `json:"name,omitempty"` // +optional Value string `json:"value,omitempty"` // +optional ConfirmField *SlackConfirmationField `json:"confirm,omitempty"` }
SlackAction configures a single Slack action that is sent with each notification. See https://api.slack.com/docs/message-attachments#action_fields and https://api.slack.com/docs/message-buttons for more information.
func (*SlackAction) DeepCopy ¶ added in v0.18.0
func (in *SlackAction) DeepCopy() *SlackAction
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SlackAction.
func (*SlackAction) DeepCopyInto ¶ added in v0.18.0
func (in *SlackAction) DeepCopyInto(out *SlackAction)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SlackConfig ¶ added in v0.18.0
type SlackConfig struct { // SendResolved controls notify about resolved alerts. // +optional SendResolved *bool `json:"send_resolved,omitempty"` // The secret's key that contains the Slack webhook URL. // It must be at them same namespace as CRD // +optional APIURL *v1.SecretKeySelector `json:"api_url,omitempty"` // The channel or user to send notifications to. // +optional Channel string `json:"channel,omitempty"` // +optional Username string `json:"username,omitempty"` // +optional Color string `json:"color,omitempty"` // +optional Title string `json:"title,omitempty"` // +optional TitleLink string `json:"title_link,omitempty"` // +optional Pretext string `json:"pretext,omitempty"` // +optional Text string `json:"text,omitempty"` // A list of Slack fields that are sent with each notification. // +optional Fields []SlackField `json:"fields,omitempty"` // +optional ShortFields bool `json:"short_fields,omitempty"` Footer string `json:"footer,omitempty"` // +optional Fallback string `json:"fallback,omitempty"` // +optional CallbackID string `json:"callback_id,omitempty"` // +optional IconEmoji string `json:"icon_emoji,omitempty"` // +optional IconURL string `json:"icon_url,omitempty"` // +optional ImageURL string `json:"image_url,omitempty"` // +optional ThumbURL string `json:"thumb_url,omitempty"` // +optional LinkNames bool `json:"link_names,omitempty"` // +optional MrkdwnIn []string `json:"mrkdwn_in,omitempty"` // A list of Slack actions that are sent with each notification. // +optional Actions []SlackAction `json:"actions,omitempty"` // HTTP client configuration. // +optional HTTPConfig *HTTPConfig `json:"http_config,omitempty"` }
SlackConfig configures notifications via Slack. See https://prometheus.io/docs/alerting/latest/configuration/#slack_config
func (*SlackConfig) DeepCopy ¶ added in v0.18.0
func (in *SlackConfig) DeepCopy() *SlackConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SlackConfig.
func (*SlackConfig) DeepCopyInto ¶ added in v0.18.0
func (in *SlackConfig) DeepCopyInto(out *SlackConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SlackConfirmationField ¶ added in v0.18.0
type SlackConfirmationField struct { // +kubebuilder:validation:MinLength=1 // +required Text string `json:"text"` // +optional Title string `json:"title,omitempty"` // +optional OkText string `json:"ok_text,omitempty"` // +optional DismissText string `json:"dismiss_text,omitempty"` }
SlackConfirmationField protect users from destructive actions or particularly distinguished decisions by asking them to confirm their button click one more time. See https://api.slack.com/docs/interactive-message-field-guide#confirmation_fields for more information.
func (*SlackConfirmationField) DeepCopy ¶ added in v0.18.0
func (in *SlackConfirmationField) DeepCopy() *SlackConfirmationField
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SlackConfirmationField.
func (*SlackConfirmationField) DeepCopyInto ¶ added in v0.18.0
func (in *SlackConfirmationField) DeepCopyInto(out *SlackConfirmationField)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SlackField ¶ added in v0.18.0
type SlackField struct { // +kubebuilder:validation:MinLength=1 // +required Title string `json:"title"` // +kubebuilder:validation:MinLength=1 // +required Value string `json:"value"` // +optional Short *bool `json:"short,omitempty"` }
See https://api.slack.com/docs/message-attachments#fields for more information.
func (*SlackField) DeepCopy ¶ added in v0.18.0
func (in *SlackField) DeepCopy() *SlackField
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SlackField.
func (*SlackField) DeepCopyInto ¶ added in v0.18.0
func (in *SlackField) DeepCopyInto(out *SlackField)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StaticRef ¶ added in v0.15.0
type StaticRef struct { // URL http url for given staticRef. URL string `json:"url"` }
StaticRef - user-defined routing host address.
func (*StaticRef) DeepCopy ¶ added in v0.15.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StaticRef.
func (*StaticRef) DeepCopyInto ¶ added in v0.15.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StorageSpec ¶
type StorageSpec struct { // Deprecated: subPath usage will be disabled by default in a future release, this option will become unnecessary. // DisableMountSubPath allows to remove any subPath usage in volume mounts. // +optional DisableMountSubPath bool `json:"disableMountSubPath,omitempty"` // EmptyDirVolumeSource to be used by the Prometheus StatefulSets. If specified, used in place of any volumeClaimTemplate. More // info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir // +optional EmptyDir *v1.EmptyDirVolumeSource `json:"emptyDir,omitempty"` // A PVC spec to be used by the VMAlertManager StatefulSets. // +optional VolumeClaimTemplate EmbeddedPersistentVolumeClaim `json:"volumeClaimTemplate,omitempty"` }
StorageSpec defines the configured storage for a group Prometheus servers. If neither `emptyDir` nor `volumeClaimTemplate` is specified, then by default an [EmptyDir](https://kubernetes.io/docs/concepts/storage/volumes/#emptydir) will be used. +k8s:openapi-gen=true
func (*StorageSpec) DeepCopy ¶
func (in *StorageSpec) DeepCopy() *StorageSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageSpec.
func (*StorageSpec) DeepCopyInto ¶
func (in *StorageSpec) DeepCopyInto(out *StorageSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TLSConfig ¶
type TLSConfig struct { // Path to the CA cert in the container to use for the targets. // +optional CAFile string `json:"caFile,omitempty"` // Stuct containing the CA cert to use for the targets. // +optional CA SecretOrConfigMap `json:"ca,omitempty"` // Path to the client cert file in the container for the targets. // +optional CertFile string `json:"certFile,omitempty"` // Struct containing the client cert file for the targets. // +optional Cert SecretOrConfigMap `json:"cert,omitempty"` // Path to the client key file in the container for the targets. // +optional KeyFile string `json:"keyFile,omitempty"` // Secret containing the client key file for the targets. // +optional KeySecret *v1.SecretKeySelector `json:"keySecret,omitempty"` // Used to verify the hostname for the targets. // +optional ServerName string `json:"serverName,omitempty"` // Disable target certificate validation. // +optional InsecureSkipVerify bool `json:"insecureSkipVerify,omitempty"` }
TLSConfig specifies TLSConfig configuration parameters. +k8s:openapi-gen=true
func (*TLSConfig) BuildAssetPath ¶
func (*TLSConfig) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSConfig.
func (*TLSConfig) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TLSConfigValidationError ¶
type TLSConfigValidationError struct {
// contains filtered or unexported fields
}
TLSConfigValidationError is returned by TLSConfig.Validate() on semantically invalid tls configurations. +k8s:openapi-gen=false
func (*TLSConfigValidationError) DeepCopy ¶
func (in *TLSConfigValidationError) DeepCopy() *TLSConfigValidationError
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSConfigValidationError.
func (*TLSConfigValidationError) DeepCopyInto ¶
func (in *TLSConfigValidationError) DeepCopyInto(out *TLSConfigValidationError)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*TLSConfigValidationError) Error ¶
func (e *TLSConfigValidationError) Error() string
type TargetEndpoint ¶ added in v0.10.0
type TargetEndpoint struct { // Targets static targets addresses in form of ["192.122.55.55:9100","some-name:9100"]. Targets []string `json:"targets"` // Labels static labels for targets. // +optional Labels map[string]string `json:"labels,omitempty"` // Default port for target. // +optional Port string `json:"port,omitempty"` // HTTP path to scrape for metrics. // +optional Path string `json:"path,omitempty"` // HTTP scheme to use for scraping. // +optional Scheme string `json:"scheme,omitempty"` // Optional HTTP URL parameters // +optional Params map[string][]string `json:"params,omitempty"` // FollowRedirects controls redirects for scraping. // +optional FollowRedirects *bool `json:"follow_redirects,omitempty"` // SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. // +optional SampleLimit uint64 `json:"sampleLimit,omitempty"` // Interval at which metrics should be scraped // +optional Interval string `json:"interval,omitempty"` // ScrapeInterval is the same as Interval and has priority over it. // one of scrape_interval or interval can be used // +optional ScrapeInterval string `json:"scrape_interval,omitempty"` // Timeout after which the scrape is ended // +optional ScrapeTimeout string `json:"scrapeTimeout,omitempty"` // OAuth2 defines auth configuration // +optional OAuth2 *OAuth2 `json:"oauth2,omitempty"` // TLSConfig configuration to use when scraping the endpoint // +optional TLSConfig *TLSConfig `json:"tlsConfig,omitempty"` // File to read bearer token for scraping targets. // +optional BearerTokenFile string `json:"bearerTokenFile,omitempty"` // Secret to mount to read bearer token for scraping targets. The secret // needs to be in the same namespace as the service scrape and accessible by // the victoria-metrics operator. // +optional // +nullable BearerTokenSecret *v1.SecretKeySelector `json:"bearerTokenSecret,omitempty"` // BasicAuth allow an endpoint to authenticate over basic authentication // More info: https://prometheus.io/docs/operating/configuration/#endpoints // +optional BasicAuth *BasicAuth `json:"basicAuth,omitempty"` // MetricRelabelConfigs to apply to samples before ingestion. // +optional MetricRelabelConfigs []*RelabelConfig `json:"metricRelabelConfigs,omitempty"` // RelabelConfigs to apply to samples before scraping. // More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config // +optional RelabelConfigs []*RelabelConfig `json:"relabelConfigs,omitempty"` // ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. // +optional ProxyURL *string `json:"proxyURL,omitempty"` // HonorLabels chooses the metric's labels on collisions with target labels. // +optional HonorLabels bool `json:"honorLabels,omitempty"` // HonorTimestamps controls whether vmagent respects the timestamps present in scraped data. // +optional HonorTimestamps *bool `json:"honorTimestamps,omitempty"` // VMScrapeParams defines VictoriaMetrics specific scrape parametrs // +optional VMScrapeParams *VMScrapeParams `json:"vm_scrape_params,omitempty"` }
TargetEndpoint defines single static target endpoint.
func (*TargetEndpoint) DeepCopy ¶ added in v0.10.0
func (in *TargetEndpoint) DeepCopy() *TargetEndpoint
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TargetEndpoint.
func (*TargetEndpoint) DeepCopyInto ¶ added in v0.10.0
func (in *TargetEndpoint) DeepCopyInto(out *TargetEndpoint)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TargetRef ¶ added in v0.15.0
type TargetRef struct { // CRD describes exist operator's CRD object, // operator generates access url based on CRD params. // +optional CRD *CRDRef `json:"crd,omitempty"` // Static - user defined url for traffic forward, // for instance http://vmsingle:8429 // +optional Static *StaticRef `json:"static,omitempty"` // Paths - matched path to route. // +optional Paths []string `json:"paths,omitempty"` // QueryParams []string `json:"queryParams,omitempty"` // TargetPathSuffix allows to add some suffix to the target path // It allows to hide tenant configuration from user with crd as ref. // it also may contain any url encoded params. // +optional TargetPathSuffix string `json:"target_path_suffix,omitempty"` // Headers represent additional http headers, that vmauth uses // in form of ["header_key: header_value"] // multiple values for header key: // ["header_key: value1,value2"] // it's available since 1.68.0 version of vmauth // +optional Headers []string `json:"headers,omitempty"` }
TargetRef describes target for user traffic forwarding. one of target types can be chosen: crd or static per targetRef. user can define multiple targetRefs with different ref Types.
func (*TargetRef) DeepCopy ¶ added in v0.15.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TargetRef.
func (*TargetRef) DeepCopyInto ¶ added in v0.15.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TimeInterval ¶ added in v0.18.0
type TimeInterval struct { // Times defines time range for mute // +optional Times []TimeRange `json:"times,omitempty"` // Weekdays defines list of days of the week, where the week begins on Sunday and ends on Saturday. // +optional Weekdays []string `json:"weekdays,omitempty"` // DayOfMonth defines list of numerical days in the month. Days begin at 1. Negative values are also accepted. // for example, ['1:5', '-3:-1'] // +optional DaysOfMonth []string `json:"days_of_month,omitempty"` // Months defines list of calendar months identified by a case-insentive name (e.g. ‘January’) or numeric 1. // For example, ['1:3', 'may:august', 'december'] // +optional Months []string `json:"months,omitempty"` // Years defines numerical list of years, ranges are accepted. // For example, ['2020:2022', '2030'] // +optional Years []string `json:"years,omitempty"` }
TimeInterval defines intervals of time
func (*TimeInterval) DeepCopy ¶ added in v0.18.0
func (in *TimeInterval) DeepCopy() *TimeInterval
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TimeInterval.
func (*TimeInterval) DeepCopyInto ¶ added in v0.18.0
func (in *TimeInterval) DeepCopyInto(out *TimeInterval)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TimeRange ¶ added in v0.18.0
type TimeRange struct { // StartTime for example HH:MM // +required StartTime string `json:"start_time"` // EndTime for example HH:MM // +required EndTime string `json:"end_time"` }
TimeRange ranges inclusive of the starting time and exclusive of the end time
func (*TimeRange) DeepCopy ¶ added in v0.18.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TimeRange.
func (*TimeRange) DeepCopyInto ¶ added in v0.18.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMAgent ¶
type VMAgent struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec VMAgentSpec `json:"spec,omitempty"` Status VMAgentStatus `json:"status,omitempty"` }
VMAgent - is a tiny but brave agent, which helps you collect metrics from various sources and stores them in VictoriaMetrics or any other Prometheus-compatible storage system that supports the remote_write protocol. +operator-sdk:gen-csv:customresourcedefinitions.displayName="VMAgent App" +operator-sdk:gen-csv:customresourcedefinitions.resources="Deployment,apps" +operator-sdk:gen-csv:customresourcedefinitions.resources="Service,v1" +operator-sdk:gen-csv:customresourcedefinitions.resources="Secret,v1" +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +genclient +k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:resource:path=vmagents,scope=Namespaced
func (VMAgent) Annotations ¶
func (*VMAgent) AsCRDOwner ¶ added in v0.16.0
func (cr *VMAgent) AsCRDOwner() []metav1.OwnerReference
AsCRDOwner implements interface
func (*VMAgent) AsOwner ¶
func (cr *VMAgent) AsOwner() []metav1.OwnerReference
func (*VMAgent) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAgent.
func (*VMAgent) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VMAgent) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (VMAgent) GetClusterRoleName ¶ added in v0.5.0
func (VMAgent) GetPSPName ¶ added in v0.5.0
func (VMAgent) GetServiceAccountName ¶ added in v0.5.0
func (VMAgent) HealthPath ¶ added in v0.2.1
func (VMAgent) MetricPath ¶ added in v0.2.1
func (VMAgent) PodAnnotations ¶
func (VMAgent) PrefixedName ¶
func (VMAgent) RelabelingAssetName ¶ added in v0.14.0
func (VMAgent) ReloadPathWithPort ¶ added in v0.2.1
func (VMAgent) SelectorLabels ¶
func (*VMAgent) SetupWebhookWithManager ¶ added in v0.15.0
func (VMAgent) TLSAssetName ¶
func (*VMAgent) ValidateCreate ¶ added in v0.15.0
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*VMAgent) ValidateDelete ¶ added in v0.15.0
ValidateDelete implements webhook.Validator so a webhook will be registered for the type
type VMAgentList ¶
type VMAgentList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []VMAgent `json:"items"` }
+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object VMAgentList contains a list of VMAgent
func (*VMAgentList) DeepCopy ¶
func (in *VMAgentList) DeepCopy() *VMAgentList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAgentList.
func (*VMAgentList) DeepCopyInto ¶
func (in *VMAgentList) DeepCopyInto(out *VMAgentList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VMAgentList) DeepCopyObject ¶
func (in *VMAgentList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VMAgentRemoteWriteSettings ¶ added in v0.6.0
type VMAgentRemoteWriteSettings struct { // The maximum size in bytes of unpacked request to send to remote storage // +optional MaxBlockSize *int32 `json:"maxBlockSize,omitempty"` // The maximum file-based buffer size in bytes at -remoteWrite.tmpDataPath // +optional MaxDiskUsagePerURL *int32 `json:"maxDiskUsagePerURL,omitempty"` // The number of concurrent queues // +optional Queues *int32 `json:"queues,omitempty"` // Whether to show -remoteWrite.url in the exported metrics. It is hidden by default, since it can contain sensitive auth info // +optional ShowURL *bool `json:"showURL,omitempty"` // Path to directory where temporary data for remote write component is stored (default vmagent-remotewrite-data) // +optional TmpDataPath *string `json:"tmpDataPath,omitempty"` // Interval for flushing the data to remote storage. (default 1s) // +optional // +kubebuilder:validation:Pattern:="[0-9]+(ms|s|m|h)" FlushInterval *string `json:"flushInterval,omitempty"` // Optional labels in the form 'name=value' to add to all the metrics before sending them // +optional Labels map[string]string `json:"label,omitempty"` }
VMAgentRemoteWriteSettings - defines global settings for all remoteWrite urls.
func (*VMAgentRemoteWriteSettings) DeepCopy ¶ added in v0.6.0
func (in *VMAgentRemoteWriteSettings) DeepCopy() *VMAgentRemoteWriteSettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAgentRemoteWriteSettings.
func (*VMAgentRemoteWriteSettings) DeepCopyInto ¶ added in v0.6.0
func (in *VMAgentRemoteWriteSettings) DeepCopyInto(out *VMAgentRemoteWriteSettings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMAgentRemoteWriteSpec ¶
type VMAgentRemoteWriteSpec struct { // URL of the endpoint to send samples to. URL string `json:"url"` // BasicAuth allow an endpoint to authenticate over basic authentication // +optional BasicAuth *BasicAuth `json:"basicAuth,omitempty"` // Optional bearer auth token to use for -remoteWrite.url // +optional BearerTokenSecret *v1.SecretKeySelector `json:"bearerTokenSecret,omitempty"` // ConfigMap with relabeling config which is applied to metrics before sending them to the corresponding -remoteWrite.url // +optional // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Key at Configmap with relabelConfig for remoteWrite",xDescriptors="urn:alm:descriptor:io.kubernetes:ConfigMapKeySelector" UrlRelabelConfig *v1.ConfigMapKeySelector `json:"urlRelabelConfig,omitempty"` // InlineUrlRelabelConfig defines relabeling config for remoteWriteURL, it can be defined at crd spec. // +optional InlineUrlRelabelConfig []RelabelConfig `json:"inlineUrlRelabelConfig,omitempty"` // OAuth2 defines auth configuration // +optional OAuth2 *OAuth2 `json:"oauth2,omitempty"` // TLSConfig describes tls configuration for remote write target // +optional TLSConfig *TLSConfig `json:"tlsConfig,omitempty"` // Timeout for sending a single block of data to -remoteWrite.url (default 1m0s) // +optional // +kubebuilder:validation:Pattern:="[0-9]+(ms|s|m|h)" SendTimeout *string `json:"sendTimeout,omitempty"` }
VMAgentRemoteWriteSpec defines the remote storage configuration for VmAgent +k8s:openapi-gen=true
func (*VMAgentRemoteWriteSpec) DeepCopy ¶
func (in *VMAgentRemoteWriteSpec) DeepCopy() *VMAgentRemoteWriteSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAgentRemoteWriteSpec.
func (*VMAgentRemoteWriteSpec) DeepCopyInto ¶
func (in *VMAgentRemoteWriteSpec) DeepCopyInto(out *VMAgentRemoteWriteSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMAgentSpec ¶
type VMAgentSpec struct { // PodMetadata configures Labels and Annotations which are propagated to the vmagent pods. // +optional PodMetadata *EmbeddedObjectMetadata `json:"podMetadata,omitempty"` // Image - docker image settings for VMAgent // if no specified operator uses default config version // +optional Image Image `json:"image,omitempty"` // ImagePullSecrets An optional list of references to secrets in the same namespace // to use for pulling images from registries // see http://kubernetes.io/docs/user-guide/images#specifying-imagepullsecrets-on-a-pod // +optional ImagePullSecrets []v1.LocalObjectReference `json:"imagePullSecrets,omitempty"` // Secrets is a list of Secrets in the same namespace as the vmagent // object, which shall be mounted into the vmagent Pods. // will be mounted at path /etc/vm/secrets // +optional Secrets []string `json:"secrets,omitempty"` // ConfigMaps is a list of ConfigMaps in the same namespace as the vmagent // object, which shall be mounted into the vmagent Pods. // will be mounted at path /etc/vm/configs // +optional ConfigMaps []string `json:"configMaps,omitempty"` // LogLevel for VMAgent to be configured with. //INFO, WARN, ERROR, FATAL, PANIC // +optional // +kubebuilder:validation:Enum=INFO;WARN;ERROR;FATAL;PANIC LogLevel string `json:"logLevel,omitempty"` // LogFormat for VMAgent to be configured with. // +optional // +kubebuilder:validation:Enum=default;json LogFormat string `json:"logFormat,omitempty"` // ReplicaCount is the expected size of the VMAgent cluster. The controller will // eventually make the size of the running cluster equal to the expected // size. // NOTE enable VMSingle deduplication for replica usage // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Number of pods",xDescriptors="urn:alm:descriptor:com.tectonic.ui:podCount,urn:alm:descriptor:io.kubernetes:custom" // +optional ReplicaCount *int32 `json:"replicaCount,omitempty"` // Volumes allows configuration of additional volumes on the output deploy definition. // Volumes specified will be appended to other volumes that are generated as a result of // StorageSpec objects. // +optional Volumes []v1.Volume `json:"volumes,omitempty"` // VolumeMounts allows configuration of additional VolumeMounts on the output deploy definition. // VolumeMounts specified will be appended to other VolumeMounts in the vmagent container, // that are generated as a result of StorageSpec objects. // +optional VolumeMounts []v1.VolumeMount `json:"volumeMounts,omitempty"` // Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ //if not specified - default setting will be used // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Resources",xDescriptors="urn:alm:descriptor:com.tectonic.ui:resourceRequirements" // +optional Resources v1.ResourceRequirements `json:"resources,omitempty"` // Affinity If specified, the pod's scheduling constraints. // +optional Affinity *v1.Affinity `json:"affinity,omitempty"` // Tolerations If specified, the pod's tolerations. // +optional Tolerations []v1.Toleration `json:"tolerations,omitempty"` // SecurityContext holds pod-level security attributes and common container settings. // This defaults to the default PodSecurityContext. // +optional SecurityContext *v1.PodSecurityContext `json:"securityContext,omitempty"` // ServiceAccountName is the name of the ServiceAccount to use to run the // VMAgent Pods. // +optional // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="ServiceAccount name",xDescriptors="urn:alm:descriptor:io.kubernetes:ServiceAccount" ServiceAccountName string `json:"serviceAccountName,omitempty"` // SchedulerName - defines kubernetes scheduler name // +optional SchedulerName string `json:"schedulerName,omitempty"` // RuntimeClassName - defines runtime class for kubernetes pod. //https://kubernetes.io/docs/concepts/containers/runtime-class/ RuntimeClassName *string `json:"runtimeClassName,omitempty"` // HostAliases provides mapping between ip and hostnames, // that would be propagated to pod, // cannot be used with HostNetwork. // +optional HostAliases []v1.HostAlias `json:"host_aliases,omitempty"` // PodSecurityPolicyName - defines name for podSecurityPolicy // in case of empty value, prefixedName will be used. // +optional PodSecurityPolicyName string `json:"podSecurityPolicyName,omitempty"` // Containers property allows to inject additions sidecars or to patch existing containers. // It can be useful for proxies, backup, etc. // +optional Containers []v1.Container `json:"containers,omitempty"` // InitContainers allows adding initContainers to the pod definition. Those can be used to e.g. // fetch secrets for injection into the vmagent configuration from external sources. Any // errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ // Using initContainers for any use case other then secret fetching is entirely outside the scope // of what the maintainers will support and by doing so, you accept that this behaviour may break // at any time without notice. // +optional InitContainers []v1.Container `json:"initContainers,omitempty"` // PriorityClassName assigned to the Pods // +optional PriorityClassName string `json:"priorityClassName,omitempty"` // HostNetwork controls whether the pod may use the node network namespace // +optional HostNetwork bool `json:"hostNetwork,omitempty"` // DNSPolicy set DNS policy for the pod // +optional DNSPolicy v1.DNSPolicy `json:"dnsPolicy,omitempty"` // 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/ // +optional TopologySpreadConstraints []v1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"` // ScrapeInterval defines how often scrape targets by default // +optional // +kubebuilder:validation:Pattern:="[0-9]+(ms|s|m|h)" ScrapeInterval string `json:"scrapeInterval,omitempty"` // APIServerConfig allows specifying a host and auth methods to access apiserver. // If left empty, VMAgent is assumed to run inside of the cluster // and will discover API servers automatically and use the pod's CA certificate // and bearer token file at /var/run/secrets/kubernetes.io/serviceaccount/. // +optional APIServerConfig *APIServerConfig `json:"aPIServerConfig,omitempty"` // OverrideHonorLabels if set to true overrides all user configured honor_labels. // If HonorLabels is set in ServiceScrape or PodScrape to true, this overrides honor_labels to false. // +optional OverrideHonorLabels bool `json:"overrideHonorLabels,omitempty"` // OverrideHonorTimestamps allows to globally enforce honoring timestamps in all scrape configs. // +optional OverrideHonorTimestamps bool `json:"overrideHonorTimestamps,omitempty"` // IgnoreNamespaceSelectors if set to true will ignore NamespaceSelector settings from // the podscrape and vmservicescrape configs, and they will only discover endpoints // within their current namespace. Defaults to false. // +optional IgnoreNamespaceSelectors bool `json:"ignoreNamespaceSelectors,omitempty"` // EnforcedNamespaceLabel enforces adding a namespace label of origin for each alert // and metric that is user created. The label value will always be the namespace of the object that is // being created. // +optional EnforcedNamespaceLabel string `json:"enforcedNamespaceLabel,omitempty"` // 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 (`""`). // +optional VMAgentExternalLabelName *string `json:"vmAgentExternalLabelName,omitempty"` // ExternalLabels The labels to add to any time series scraped by vmagent. // it doesn't affect metrics ingested directly by push API's // +optional ExternalLabels map[string]string `json:"externalLabels,omitempty"` // RemoteWrite list of victoria metrics /some other remote write system // for vm it must looks like: http://victoria-metrics-single:8429/api/v1/write // or for cluster different url // https://github.com/VictoriaMetrics/VictoriaMetrics/tree/master/app/vmagent#splitting-data-streams-among-multiple-systems // +optional RemoteWrite []VMAgentRemoteWriteSpec `json:"remoteWrite"` // RemoteWriteSettings defines global settings for all remoteWrite urls. // + optional RemoteWriteSettings *VMAgentRemoteWriteSettings `json:"remoteWriteSettings,omitempty"` // RelabelConfig ConfigMap with global relabel config -remoteWrite.relabelConfig // This relabeling is applied to all the collected metrics before sending them to remote storage. // +optional // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Key at Configmap with relabelConfig name",xDescriptors="urn:alm:descriptor:io.kubernetes:ConfigMapKeySelector" RelabelConfig *v1.ConfigMapKeySelector `json:"relabelConfig,omitempty"` // InlineRelabelConfig - defines GlobalRelabelConfig for vmagent, can be defined directly at CRD. // +optional InlineRelabelConfig []RelabelConfig `json:"inlineRelabelConfig,omitempty"` // SelectAllByDefault changes default behavior for empty CRD selectors, such ServiceScrapeSelector. // with selectAllScrapes: true and empty serviceScrapeSelector and ServiceScrapeNamespaceSelector // Operator selects all exist serviceScrapes // with selectAllScrapes: false - selects nothing // +optional SelectAllByDefault bool `json:"selectAllByDefault,omitempty"` // ServiceScrapeSelector defines ServiceScrapes to be selected for target discovery. // Works in combination with NamespaceSelector. // NamespaceSelector nil - only objects at VMAgent namespace. // Selector nil - only objects at NamespaceSelector namespaces. // If both nil - behaviour controlled by selectAllByDefault // +optional ServiceScrapeSelector *metav1.LabelSelector `json:"serviceScrapeSelector,omitempty"` // ServiceScrapeNamespaceSelector Namespaces to be selected for VMServiceScrape discovery. // Works in combination with Selector. // NamespaceSelector nil - only objects at VMAgent namespace. // Selector nil - only objects at NamespaceSelector namespaces. // If both nil - behaviour controlled by selectAllByDefault // +optional ServiceScrapeNamespaceSelector *metav1.LabelSelector `json:"serviceScrapeNamespaceSelector,omitempty"` // PodScrapeSelector defines PodScrapes to be selected for target discovery. // Works in combination with NamespaceSelector. // NamespaceSelector nil - only objects at VMAgent namespace. // Selector nil - only objects at NamespaceSelector namespaces. // If both nil - behaviour controlled by selectAllByDefault // +optional PodScrapeSelector *metav1.LabelSelector `json:"podScrapeSelector,omitempty"` // PodScrapeNamespaceSelector defines Namespaces to be selected for VMPodScrape discovery. // Works in combination with Selector. // NamespaceSelector nil - only objects at VMAgent namespace. // Selector nil - only objects at NamespaceSelector namespaces. // If both nil - behaviour controlled by selectAllByDefault // +optional PodScrapeNamespaceSelector *metav1.LabelSelector `json:"podScrapeNamespaceSelector,omitempty"` // ProbeSelector defines VMProbe to be selected for target probing. // Works in combination with NamespaceSelector. // NamespaceSelector nil - only objects at VMAgent namespace. // Selector nil - only objects at NamespaceSelector namespaces. // If both nil - behaviour controlled by selectAllByDefault // +optional ProbeSelector *metav1.LabelSelector `json:"probeSelector,omitempty"` // ProbeNamespaceSelector defines Namespaces to be selected for VMProbe discovery. // Works in combination with Selector. // NamespaceSelector nil - only objects at VMAgent namespace. // Selector nil - only objects at NamespaceSelector namespaces. // If both nil - behaviour controlled by selectAllByDefault // +optional ProbeNamespaceSelector *metav1.LabelSelector `json:"probeNamespaceSelector,omitempty"` // NodeScrapeSelector defines VMNodeScrape to be selected for scraping. // Works in combination with NamespaceSelector. // NamespaceSelector nil - only objects at VMAgent namespace. // Selector nil - only objects at NamespaceSelector namespaces. // If both nil - behaviour controlled by selectAllByDefault // +optional NodeScrapeSelector *metav1.LabelSelector `json:"nodeScrapeSelector,omitempty"` // NodeScrapeNamespaceSelector defines Namespaces to be selected for VMNodeScrape discovery. // Works in combination with Selector. // NamespaceSelector nil - only objects at VMAgent namespace. // Selector nil - only objects at NamespaceSelector namespaces. // If both nil - behaviour controlled by selectAllByDefault // +optional NodeScrapeNamespaceSelector *metav1.LabelSelector `json:"nodeScrapeNamespaceSelector,omitempty"` // StaticScrapeSelector defines PodScrapes to be selected for target discovery. // Works in combination with NamespaceSelector. // If both nil - match everything. // NamespaceSelector nil - only objects at VMAgent namespace. // Selector nil - only objects at NamespaceSelector namespaces. // +optional StaticScrapeSelector *metav1.LabelSelector `json:"staticScrapeSelector,omitempty"` // StaticScrapeNamespaceSelector defines Namespaces to be selected for VMStaticScrape discovery. // Works in combination with NamespaceSelector. // NamespaceSelector nil - only objects at VMAgent namespace. // Selector nil - only objects at NamespaceSelector namespaces. // If both nil - behaviour controlled by selectAllByDefault // +optional StaticScrapeNamespaceSelector *metav1.LabelSelector `json:"staticScrapeNamespaceSelector,omitempty"` // InlineScrapeConfig As scrape configs are appended, the user is responsible to make sure it // is valid. Note that using this feature may expose the possibility to // break upgrades of VMAgent. It is advised to review VMAgent release // notes to ensure that no incompatible scrape configs are going to break // VMAgent after the upgrade. // it should be defined as single yaml file. // inlineScrapeConfig: | // - job_name: "prometheus" // static_configs: // - targets: ["localhost:9090"] // +optional InlineScrapeConfig string `json:"inlineScrapeConfig,omitempty"` // AdditionalScrapeConfigs As scrape configs are appended, the user is responsible to make sure it // is valid. Note that using this feature may expose the possibility to // break upgrades of VMAgent. It is advised to review VMAgent release // notes to ensure that no incompatible scrape configs are going to break // VMAgent after the upgrade. // +optional AdditionalScrapeConfigs *v1.SecretKeySelector `json:"additionalScrapeConfigs,omitempty"` // ArbitraryFSAccessThroughSMs configures whether configuration // based on a service scrape can access arbitrary files on the file system // of the VMAgent container e.g. bearer token files. // +optional ArbitraryFSAccessThroughSMs ArbitraryFSAccessThroughSMsConfig `json:"arbitraryFSAccessThroughSMs,omitempty"` // InsertPorts - additional listen ports for data ingestion. InsertPorts *InsertPorts `json:"insertPorts,omitempty"` // Port listen address // +optional Port string `json:"port,omitempty"` // ExtraArgs that will be passed to VMAgent pod // for example remoteWrite.tmpDataPath: /tmp // it would be converted to flag --remoteWrite.tmpDataPath=/tmp // +optional ExtraArgs map[string]string `json:"extraArgs,omitempty"` // ExtraEnvs that will be added to VMAgent pod // +optional ExtraEnvs []v1.EnvVar `json:"extraEnvs,omitempty"` // ServiceSpec that will be added to vmagent service spec // +optional ServiceSpec *ServiceSpec `json:"serviceSpec,omitempty"` // ShardCount - numbers of shards of VMAgent // in this case operator will use 1 deployment/sts per shard with // replicas count according to spec.replicas // https://victoriametrics.github.io/vmagent.html#scraping-big-number-of-targets // +optional ShardCount *int `json:"shardCount,omitempty"` // UpdateStrategy - overrides default update strategy. // works only for deployments, statefulset always use OnDelete. // +kubebuilder:validation:Enum=Recreate;RollingUpdate // +optional UpdateStrategy *appsv1.DeploymentStrategyType `json:"updateStrategy,omitempty"` // RollingUpdate - overrides deployment update params. // +optional RollingUpdate *appsv1.RollingUpdateDeployment `json:"rollingUpdate,omitempty"` // PodDisruptionBudget created by operator // +optional PodDisruptionBudget *EmbeddedPodDisruptionBudgetSpec `json:"podDisruptionBudget,omitempty"` *EmbeddedProbes `json:",inline"` // NodeSelector Define which Nodes the Pods are scheduled on. // +optional NodeSelector map[string]string `json:"nodeSelector,omitempty"` // ServiceScrapeRelabelTemplate defines relabel config, that will be added to each VMServiceScrape. // it's useful for adding specific labels to all targets // +optional ServiceScrapeRelabelTemplate []*RelabelConfig `json:"serviceScrapeRelabelTemplate,omitempty"` // PodScrapeRelabelTemplate defines relabel config, that will be added to each VMPodScrape. // it's useful for adding specific labels to all targets // +optional PodScrapeRelabelTemplate []*RelabelConfig `json:"podScrapeRelabelTemplate,omitempty"` // NodeScrapeRelabelTemplate defines relabel config, that will be added to each VMNodeScrape. // it's useful for adding specific labels to all targets // +optional NodeScrapeRelabelTemplate []*RelabelConfig `json:"nodeScrapeRelabelTemplate,omitempty"` // StaticScrapeRelabelTemplate defines relabel config, that will be added to each VMStaticScrape. // it's useful for adding specific labels to all targets // +optional StaticScrapeRelabelTemplate []*RelabelConfig `json:"staticScrapeRelabelTemplate,omitempty"` // ProbeScrapeRelabelTemplate defines relabel config, that will be added to each VMProbeScrape. // it's useful for adding specific labels to all targets // +optional ProbeScrapeRelabelTemplate []*RelabelConfig `json:"probeScrapeRelabelTemplate,omitempty"` }
VMAgentSpec defines the desired state of VMAgent +k8s:openapi-gen=true +kubebuilder:printcolumn:name="Version",type="string",JSONPath=".spec.version",description="The version of VMAgent" +kubebuilder:printcolumn:name="ReplicaCount",type="integer",JSONPath=".spec.replicas",description="The desired replicas number of VMAgent" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"
func (*VMAgentSpec) DeepCopy ¶
func (in *VMAgentSpec) DeepCopy() *VMAgentSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAgentSpec.
func (*VMAgentSpec) DeepCopyInto ¶
func (in *VMAgentSpec) DeepCopyInto(out *VMAgentSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMAgentStatus ¶
type VMAgentStatus struct { // ReplicaCount Total number of non-terminated pods targeted by this VMAlert // cluster (their labels match the selector). Replicas int32 `json:"replicas"` // UpdatedReplicas Total number of non-terminated pods targeted by this VMAlert // cluster that have the desired version spec. UpdatedReplicas int32 `json:"updatedReplicas"` // AvailableReplicas Total number of available pods (ready for at least minReadySeconds) // targeted by this VMAlert cluster. AvailableReplicas int32 `json:"availableReplicas"` UnavailableReplicas int32 `json:"unavailableReplicas"` }
VmAgentStatus defines the observed state of VmAgent +k8s:openapi-gen=true
func (*VMAgentStatus) DeepCopy ¶
func (in *VMAgentStatus) DeepCopy() *VMAgentStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAgentStatus.
func (*VMAgentStatus) DeepCopyInto ¶
func (in *VMAgentStatus) DeepCopyInto(out *VMAgentStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMAlert ¶
type VMAlert struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec VMAlertSpec `json:"spec,omitempty"` Status VMAlertStatus `json:"status,omitempty"` }
VMAlert executes a list of given alerting or recording rules against configured address. +operator-sdk:gen-csv:customresourcedefinitions.displayName="VMAlert App" +operator-sdk:gen-csv:customresourcedefinitions.resources="Deployment,v1" +operator-sdk:gen-csv:customresourcedefinitions.resources="Service,v1" +operator-sdk:gen-csv:customresourcedefinitions.resources="Secret,v1" +genclient +k8s:openapi-gen=true +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:subresource:status +kubebuilder:resource:path=vmalerts,scope=Namespaced
func (VMAlert) Annotations ¶
func (*VMAlert) AsCRDOwner ¶ added in v0.16.0
func (cr *VMAlert) AsCRDOwner() []metav1.OwnerReference
AsCRDOwner implements interface
func (*VMAlert) AsOwner ¶
func (cr *VMAlert) AsOwner() []metav1.OwnerReference
func (*VMAlert) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAlert.
func (*VMAlert) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VMAlert) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*VMAlert) GetNotifierSelectors ¶ added in v0.19.0
func (cr *VMAlert) GetNotifierSelectors() []*DiscoverySelector
func (VMAlert) GetPSPName ¶ added in v0.5.0
func (VMAlert) GetServiceAccountName ¶ added in v0.5.0
func (VMAlert) HealthPath ¶ added in v0.2.1
func (VMAlert) MetricPath ¶ added in v0.2.1
func (VMAlert) NeedDedupRules ¶ added in v0.4.0
func (VMAlert) NotifierAsMapKey ¶ added in v0.6.0
NotifierAsMapKey - returns cr name with suffix for notifier token/auth maps.
func (VMAlert) PodAnnotations ¶
func (VMAlert) PrefixedName ¶
func (VMAlert) ReloadPathWithPort ¶ added in v0.2.1
func (VMAlert) RulesConfigMapSelector ¶ added in v0.10.0
func (cr VMAlert) RulesConfigMapSelector() client.ListOption
func (VMAlert) SelectorLabels ¶
func (*VMAlert) SetupWebhookWithManager ¶ added in v0.15.0
func (VMAlert) TLSAssetName ¶ added in v0.1.0
func (*VMAlert) ValidateCreate ¶ added in v0.15.0
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*VMAlert) ValidateDelete ¶ added in v0.15.0
ValidateDelete implements webhook.Validator so a webhook will be registered for the type
type VMAlertDatasourceSpec ¶
type VMAlertDatasourceSpec struct { // Victoria Metrics or VMSelect url. Required parameter. E.g. http://127.0.0.1:8428 URL string `json:"url"` // BasicAuth allow datasource to authenticate over basic authentication // +optional BasicAuth *BasicAuth `json:"basicAuth,omitempty"` // TLSConfig describes tls configuration for datasource target TLSConfig *TLSConfig `json:"tlsConfig,omitempty"` }
VMAgentRemoteReadSpec defines the remote storage configuration for VmAlert to read alerts from +k8s:openapi-gen=true
func (*VMAlertDatasourceSpec) DeepCopy ¶
func (in *VMAlertDatasourceSpec) DeepCopy() *VMAlertDatasourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAlertDatasourceSpec.
func (*VMAlertDatasourceSpec) DeepCopyInto ¶
func (in *VMAlertDatasourceSpec) DeepCopyInto(out *VMAlertDatasourceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMAlertList ¶
type VMAlertList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []VMAlert `json:"items"` }
VMAlertList contains a list of VMAlert
func (*VMAlertList) DeepCopy ¶
func (in *VMAlertList) DeepCopy() *VMAlertList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAlertList.
func (*VMAlertList) DeepCopyInto ¶
func (in *VMAlertList) DeepCopyInto(out *VMAlertList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VMAlertList) DeepCopyObject ¶
func (in *VMAlertList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VMAlertNotifierSpec ¶ added in v0.1.0
type VMAlertNotifierSpec struct { // AlertManager url. E.g. http://127.0.0.1:9093 // +optional URL string `json:"url,omitempty"` // Selector allows service discovery for alertmanager // in this case all matched vmalertmanager replicas will be added into vmalert notifier.url // as statefulset pod.fqdn // +optional Selector *DiscoverySelector `json:"selector,omitempty"` // BasicAuth allow notifier to authenticate over basic authentication // +optional BasicAuth *BasicAuth `json:"basicAuth,omitempty"` // TLSConfig describes tls configuration for notifier TLSConfig *TLSConfig `json:"tlsConfig,omitempty"` }
VMAlertNotifierSpec defines the notifier url for sending information about alerts +k8s:openapi-gen=true
func (*VMAlertNotifierSpec) DeepCopy ¶ added in v0.1.0
func (in *VMAlertNotifierSpec) DeepCopy() *VMAlertNotifierSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAlertNotifierSpec.
func (*VMAlertNotifierSpec) DeepCopyInto ¶ added in v0.1.0
func (in *VMAlertNotifierSpec) DeepCopyInto(out *VMAlertNotifierSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMAlertRemoteReadSpec ¶
type VMAlertRemoteReadSpec struct { // URL of the endpoint to send samples to. URL string `json:"url"` // BasicAuth allow an endpoint to authenticate over basic authentication // +optional BasicAuth *BasicAuth `json:"basicAuth,omitempty"` // Lookback defines how far to look into past for alerts timeseries. For example, if lookback=1h then range from now() to now()-1h will be scanned. (default 1h0m0s) // Applied only to RemoteReadSpec // +optional Lookback *string `json:"lookback,omitempty"` // TLSConfig describes tls configuration for remote read target TLSConfig *TLSConfig `json:"tlsConfig,omitempty"` }
VMAgentRemoteReadSpec defines the remote storage configuration for VmAlert to read alerts from +k8s:openapi-gen=true
func (*VMAlertRemoteReadSpec) DeepCopy ¶
func (in *VMAlertRemoteReadSpec) DeepCopy() *VMAlertRemoteReadSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAlertRemoteReadSpec.
func (*VMAlertRemoteReadSpec) DeepCopyInto ¶
func (in *VMAlertRemoteReadSpec) DeepCopyInto(out *VMAlertRemoteReadSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMAlertRemoteWriteSpec ¶
type VMAlertRemoteWriteSpec struct { // URL of the endpoint to send samples to. URL string `json:"url"` // BasicAuth allow an endpoint to authenticate over basic authentication // +optional BasicAuth *BasicAuth `json:"basicAuth,omitempty"` // Defines number of readers that concurrently write into remote storage (default 1) // +optional Concurrency *int32 `json:"concurrency,omitempty"` // Defines interval of flushes to remote write endpoint (default 5s) // +optional // +kubebuilder:validation:Pattern:="[0-9]+(ms|s|m|h)" FlushInterval *string `json:"flushInterval,omitempty"` // Defines defines max number of timeseries to be flushed at once (default 1000) // +optional MaxBatchSize *int32 `json:"maxBatchSize,omitempty"` // Defines the max number of pending datapoints to remote write endpoint (default 100000) // +optional MaxQueueSize *int32 `json:"maxQueueSize,omitempty"` // TLSConfig describes tls configuration for remote write target TLSConfig *TLSConfig `json:"tlsConfig,omitempty"` }
VMAgentRemoteWriteSpec defines the remote storage configuration for VmAlert +k8s:openapi-gen=true
func (*VMAlertRemoteWriteSpec) DeepCopy ¶
func (in *VMAlertRemoteWriteSpec) DeepCopy() *VMAlertRemoteWriteSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAlertRemoteWriteSpec.
func (*VMAlertRemoteWriteSpec) DeepCopyInto ¶
func (in *VMAlertRemoteWriteSpec) DeepCopyInto(out *VMAlertRemoteWriteSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMAlertSpec ¶
type VMAlertSpec struct { // PodMetadata configures Labels and Annotations which are propagated to the VMAlert pods. PodMetadata *EmbeddedObjectMetadata `json:"podMetadata,omitempty"` // Image - docker image settings for VMAlert // if no specified operator uses default config version // +optional Image Image `json:"image,omitempty"` // ImagePullSecrets An optional list of references to secrets in the same namespace // to use for pulling images from registries // see http://kubernetes.io/docs/user-guide/images#specifying-imagepullsecrets-on-a-pod // +optional ImagePullSecrets []v1.LocalObjectReference `json:"imagePullSecrets,omitempty"` // Secrets is a list of Secrets in the same namespace as the VMAlert // object, which shall be mounted into the VMAlert Pods. // The Secrets are mounted into /etc/vm/secrets/<secret-name>. // +optional Secrets []string `json:"secrets,omitempty"` // ConfigMaps is a list of ConfigMaps in the same namespace as the VMAlert // object, which shall be mounted into the VMAlert Pods. // The ConfigMaps are mounted into /etc/vm/configs/<configmap-name>. // +optional ConfigMaps []string `json:"configMaps,omitempty"` // LogFormat for VMAlert to be configured with. //default or json // +optional // +kubebuilder:validation:Enum=default;json LogFormat string `json:"logFormat,omitempty"` // LogLevel for VMAlert to be configured with. // +optional // +kubebuilder:validation:Enum=INFO;WARN;ERROR;FATAL;PANIC LogLevel string `json:"logLevel,omitempty"` // ReplicaCount is the expected size of the VMAlert cluster. The controller will // eventually make the size of the running cluster equal to the expected // size. // +optional // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Number of pods",xDescriptors="urn:alm:descriptor:com.tectonic.ui:podCount,urn:alm:descriptor:io.kubernetes:custom" ReplicaCount *int32 `json:"replicaCount,omitempty"` // Volumes allows configuration of additional volumes on the output Deployment definition. // Volumes specified will be appended to other volumes that are generated as a result of // StorageSpec objects. // +optional Volumes []v1.Volume `json:"volumes,omitempty"` // VolumeMounts allows configuration of additional VolumeMounts on the output Deployment definition. // VolumeMounts specified will be appended to other VolumeMounts in the VMAlert container, // that are generated as a result of StorageSpec objects. // +optional VolumeMounts []v1.VolumeMount `json:"volumeMounts,omitempty"` // Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Resources",xDescriptors="urn:alm:descriptor:com.tectonic.ui:resourceRequirements" // +optional Resources v1.ResourceRequirements `json:"resources,omitempty"` // Affinity If specified, the pod's scheduling constraints. // +optional Affinity *v1.Affinity `json:"affinity,omitempty"` // Tolerations If specified, the pod's tolerations. // +optional Tolerations []v1.Toleration `json:"tolerations,omitempty"` // SecurityContext holds pod-level security attributes and common container settings. // This defaults to the default PodSecurityContext. // +optional SecurityContext *v1.PodSecurityContext `json:"securityContext,omitempty"` // ServiceAccountName is the name of the ServiceAccount to use to run the // VMAlert Pods. // +optional ServiceAccountName string `json:"serviceAccountName,omitempty"` // SchedulerName - defines kubernetes scheduler name // +optional SchedulerName string `json:"schedulerName,omitempty"` // RuntimeClassName - defines runtime class for kubernetes pod. //https://kubernetes.io/docs/concepts/containers/runtime-class/ // +optional RuntimeClassName *string `json:"runtimeClassName,omitempty"` // PodSecurityPolicyName - defines name for podSecurityPolicy // in case of empty value, prefixedName will be used. // +optional PodSecurityPolicyName string `json:"podSecurityPolicyName,omitempty"` // Containers property allows to inject additions sidecars or to patch existing containers. // It can be useful for proxies, backup, etc. // +optional Containers []v1.Container `json:"containers,omitempty"` // InitContainers allows adding initContainers to the pod definition. Those can be used to e.g. // fetch secrets for injection into the VMAlert configuration from external sources. Any // errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ // Using initContainers for any use case other then secret fetching is entirely outside the scope // of what the maintainers will support and by doing so, you accept that this behaviour may break // at any time without notice. // +optional InitContainers []v1.Container `json:"initContainers,omitempty"` // Priority class assigned to the Pods // +optional PriorityClassName string `json:"priorityClassName,omitempty"` // HostNetwork controls whether the pod may use the node network namespace // +optional HostNetwork bool `json:"hostNetwork,omitempty"` // DNSPolicy sets DNS policy for the pod // +optional DNSPolicy v1.DNSPolicy `json:"dnsPolicy,omitempty"` // 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/ // +optional TopologySpreadConstraints []v1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"` // EvaluationInterval how often evalute rules by default // +optional // +kubebuilder:validation:Pattern:="[0-9]+(ms|s|m|h)" EvaluationInterval string `json:"evaluationInterval,omitempty"` // EnforcedNamespaceLabel enforces adding a namespace label of origin for each alert // and metric that is user created. The label value will always be the namespace of the object that is // being created. // +optional EnforcedNamespaceLabel string `json:"enforcedNamespaceLabel,omitempty"` // SelectAllByDefault changes default behavior for empty CRD selectors, such RuleSelector. // with selectAllByDefault: true and empty serviceScrapeSelector and RuleNamespaceSelector // Operator selects all exist serviceScrapes // with selectAllByDefault: false - selects nothing // +optional SelectAllByDefault bool `json:"selectAllByDefault,omitempty"` // RuleSelector selector to select which VMRules to mount for loading alerting // rules from. // Works in combination with NamespaceSelector. // If both nil - behaviour controlled by selectAllByDefault // NamespaceSelector nil - only objects at VMAlert namespace. // +optional RuleSelector *metav1.LabelSelector `json:"ruleSelector,omitempty"` // RuleNamespaceSelector to be selected for VMRules discovery. // Works in combination with Selector. // If both nil - behaviour controlled by selectAllByDefault // NamespaceSelector nil - only objects at VMAlert namespace. // +optional RuleNamespaceSelector *metav1.LabelSelector `json:"ruleNamespaceSelector,omitempty"` // Port for listen // +optional Port string `json:"port,omitempty"` // Notifier prometheus alertmanager endpoint spec. Required at least one of notifier or notifiers. e.g. http://127.0.0.1:9093 // If specified both notifier and notifiers, notifier will be added as last element to notifiers. Notifier *VMAlertNotifierSpec `json:"notifier,omitempty"` // Notifiers prometheus alertmanager endpoints. Required at least one of notifier or notifiers. e.g. http://127.0.0.1:9093 // If specified both notifier and notifiers, notifier will be added as last element to notifiers. Notifiers []VMAlertNotifierSpec `json:"notifiers,omitempty"` // RemoteWrite Optional URL to remote-write compatible storage to persist // vmalert state and rule results to. // Rule results will be persisted according to each rule. // Alerts state will be persisted in the form of time series named ALERTS and ALERTS_FOR_STATE // see -remoteWrite.url docs in vmalerts for details. // E.g. http://127.0.0.1:8428 // +optional RemoteWrite *VMAlertRemoteWriteSpec `json:"remoteWrite,omitempty"` // RemoteRead Optional URL to read vmalert state (persisted via RemoteWrite) // This configuration only makes sense if alerts state has been successfully // persisted (via RemoteWrite) before. // see -remoteRead.url docs in vmalerts for details. // E.g. http://127.0.0.1:8428 // +optional RemoteRead *VMAlertRemoteReadSpec `json:"remoteRead,omitempty"` // RulePath to the file with alert rules. // Supports patterns. Flag can be specified multiple times. // Examples: // -rule /path/to/file. Path to a single file with alerting rules // -rule dir/*.yaml -rule /*.yaml. Relative path to all .yaml files in folder, // absolute path to all .yaml files in root. // by default operator adds /etc/vmalert/configs/base/vmalert.yaml // +optional RulePath []string `json:"rulePath,omitempty"` // Datasource Victoria Metrics or VMSelect url. Required parameter. e.g. http://127.0.0.1:8428 Datasource VMAlertDatasourceSpec `json:"datasource"` // ExtraArgs that will be passed to VMAlert pod // for example -remoteWrite.tmpDataPath=/tmp // +optional ExtraArgs map[string]string `json:"extraArgs,omitempty"` // ExtraEnvs that will be added to VMAlert pod // +optional ExtraEnvs []v1.EnvVar `json:"extraEnvs,omitempty"` // ExternalLabels in the form 'name: value' to add to all generated recording rules and alerts. // +optional ExternalLabels map[string]string `json:"externalLabels,omitempty"` // ServiceSpec that will be added to vmalert service spec // +optional ServiceSpec *ServiceSpec `json:"serviceSpec,omitempty"` // UpdateStrategy - overrides default update strategy. // +kubebuilder:validation:Enum=Recreate;RollingUpdate // +optional UpdateStrategy *appsv1.DeploymentStrategyType `json:"updateStrategy,omitempty"` // RollingUpdate - overrides deployment update params. // +optional RollingUpdate *appsv1.RollingUpdateDeployment `json:"rollingUpdate,omitempty"` // PodDisruptionBudget created by operator // +optional PodDisruptionBudget *EmbeddedPodDisruptionBudgetSpec `json:"podDisruptionBudget,omitempty"` *EmbeddedProbes `json:",inline"` // NodeSelector Define which Nodes the Pods are scheduled on. // +optional NodeSelector map[string]string `json:"nodeSelector,omitempty"` }
VMAlertSpec defines the desired state of VMAlert +k8s:openapi-gen=true +kubebuilder:printcolumn:name="Version",type="string",JSONPath=".spec.version",description="The version of VMAlert" +kubebuilder:printcolumn:name="ReplicaCount",type="integer",JSONPath=".spec.replicas",description="The desired replicas number of VmAlerts" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"
func (*VMAlertSpec) DeepCopy ¶
func (in *VMAlertSpec) DeepCopy() *VMAlertSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAlertSpec.
func (*VMAlertSpec) DeepCopyInto ¶
func (in *VMAlertSpec) DeepCopyInto(out *VMAlertSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMAlertStatus ¶
type VMAlertStatus struct { // ReplicaCount Total number of non-terminated pods targeted by this VMAlert // cluster (their labels match the selector). Replicas int32 `json:"replicas"` // UpdatedReplicas Total number of non-terminated pods targeted by this VMAlert // cluster that have the desired version spec. UpdatedReplicas int32 `json:"updatedReplicas"` // AvailableReplicas Total number of available pods (ready for at least minReadySeconds) // targeted by this VMAlert cluster. AvailableReplicas int32 `json:"availableReplicas"` UnavailableReplicas int32 `json:"unavailableReplicas"` }
VmAlertStatus defines the observed state of VmAlert +k8s:openapi-gen=true +kubebuilder:subresource:status
func (*VMAlertStatus) DeepCopy ¶
func (in *VMAlertStatus) DeepCopy() *VMAlertStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAlertStatus.
func (*VMAlertStatus) DeepCopyInto ¶
func (in *VMAlertStatus) DeepCopyInto(out *VMAlertStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMAlertmanager ¶
type VMAlertmanager struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // Specification of the desired behavior of the VMAlertmanager cluster. More info: // https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status Spec VMAlertmanagerSpec `json:"spec"` // Most recent observed status of the VMAlertmanager cluster. // Operator API itself. More info: // https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status Status *VMAlertmanagerStatus `json:"status,omitempty"` }
VMAlertmanager represents Victoria-Metrics deployment for Alertmanager. +operator-sdk:gen-csv:customresourcedefinitions.displayName="VMAlertmanager App" +operator-sdk:gen-csv:customresourcedefinitions.resources="StatefulSet,apps" +operator-sdk:gen-csv:customresourcedefinitions.resources="Service,v1" +operator-sdk:gen-csv:customresourcedefinitions.resources="Secret,v1" +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +genclient +k8s:openapi-gen=true +kubebuilder:printcolumn:name="Version",type="string",JSONPath=".spec.version",description="The version of VMAlertmanager" +kubebuilder:printcolumn:name="ReplicaCount",type="integer",JSONPath=".spec.ReplicaCount",description="The desired replicas number of Alertmanagers" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:resource:path=vmalertmanagers,scope=Namespaced,shortName=vma,singular=vmalertmanager
func (VMAlertmanager) Annotations ¶
func (cr VMAlertmanager) Annotations() map[string]string
func (*VMAlertmanager) AsCRDOwner ¶ added in v0.16.0
func (cr *VMAlertmanager) AsCRDOwner() []metav1.OwnerReference
AsCRDOwner implements interface
func (*VMAlertmanager) AsNotifiers ¶ added in v0.19.0
func (cr *VMAlertmanager) AsNotifiers() []VMAlertNotifierSpec
AsNotifiers converts VMAlertmanager into VMAlertNotifierSpec
func (*VMAlertmanager) AsOwner ¶
func (cr *VMAlertmanager) AsOwner() []metav1.OwnerReference
func (*VMAlertmanager) AsPodFQDN ¶ added in v0.19.0
func (cr *VMAlertmanager) AsPodFQDN(idx int) string
func (*VMAlertmanager) AsURL ¶ added in v0.15.0
func (cr *VMAlertmanager) AsURL() string
func (VMAlertmanager) ConfigSecretName ¶ added in v0.20.0
func (cr VMAlertmanager) ConfigSecretName() string
ConfigSecretName returns configuration secret name for alertmanager
func (*VMAlertmanager) DeepCopy ¶
func (in *VMAlertmanager) DeepCopy() *VMAlertmanager
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAlertmanager.
func (*VMAlertmanager) DeepCopyInto ¶
func (in *VMAlertmanager) DeepCopyInto(out *VMAlertmanager)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VMAlertmanager) DeepCopyObject ¶
func (in *VMAlertmanager) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (VMAlertmanager) GetNSName ¶ added in v0.9.0
func (cr VMAlertmanager) GetNSName() string
func (VMAlertmanager) GetPSPName ¶ added in v0.5.0
func (cr VMAlertmanager) GetPSPName() string
func (VMAlertmanager) GetServiceAccountName ¶ added in v0.5.0
func (cr VMAlertmanager) GetServiceAccountName() string
func (*VMAlertmanager) GetVolumeName ¶ added in v0.20.0
func (cr *VMAlertmanager) GetVolumeName() string
func (VMAlertmanager) Labels ¶ added in v0.5.0
func (cr VMAlertmanager) Labels() map[string]string
func (*VMAlertmanager) MetricPath ¶ added in v0.21.0
func (cr *VMAlertmanager) MetricPath() string
func (VMAlertmanager) PodAnnotations ¶
func (cr VMAlertmanager) PodAnnotations() map[string]string
func (VMAlertmanager) PodLabels ¶
func (cr VMAlertmanager) PodLabels() map[string]string
func (VMAlertmanager) PrefixedName ¶
func (cr VMAlertmanager) PrefixedName() string
func (VMAlertmanager) SelectorLabels ¶
func (cr VMAlertmanager) SelectorLabels() map[string]string
func (*VMAlertmanager) SetupWebhookWithManager ¶ added in v0.15.0
func (r *VMAlertmanager) SetupWebhookWithManager(mgr ctrl.Manager) error
func (*VMAlertmanager) ValidateCreate ¶ added in v0.15.0
func (r *VMAlertmanager) ValidateCreate() error
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*VMAlertmanager) ValidateDelete ¶ added in v0.15.0
func (r *VMAlertmanager) ValidateDelete() error
ValidateDelete implements webhook.Validator so a webhook will be registered for the type
func (*VMAlertmanager) ValidateUpdate ¶ added in v0.15.0
func (r *VMAlertmanager) ValidateUpdate(old runtime.Object) error
ValidateUpdate implements webhook.Validator so a webhook will be registered for the type
type VMAlertmanagerConfig ¶ added in v0.18.0
type VMAlertmanagerConfig struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec VMAlertmanagerConfigSpec `json:"spec,omitempty"` Status VMAlertmanagerConfigStatus `json:"status,omitempty"` }
VMAlertmanagerConfig is the Schema for the vmalertmanagerconfigs API
func (*VMAlertmanagerConfig) AsKey ¶ added in v0.18.0
func (amc *VMAlertmanagerConfig) AsKey() string
func (*VMAlertmanagerConfig) DeepCopy ¶ added in v0.18.0
func (in *VMAlertmanagerConfig) DeepCopy() *VMAlertmanagerConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAlertmanagerConfig.
func (*VMAlertmanagerConfig) DeepCopyInto ¶ added in v0.18.0
func (in *VMAlertmanagerConfig) DeepCopyInto(out *VMAlertmanagerConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VMAlertmanagerConfig) DeepCopyObject ¶ added in v0.18.0
func (in *VMAlertmanagerConfig) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*VMAlertmanagerConfig) SetupWebhookWithManager ¶ added in v0.18.0
func (r *VMAlertmanagerConfig) SetupWebhookWithManager(mgr ctrl.Manager) error
func (*VMAlertmanagerConfig) Validate ¶ added in v0.18.0
func (amc *VMAlertmanagerConfig) Validate() error
func (*VMAlertmanagerConfig) ValidateCreate ¶ added in v0.18.0
func (r *VMAlertmanagerConfig) ValidateCreate() error
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*VMAlertmanagerConfig) ValidateDelete ¶ added in v0.18.0
func (r *VMAlertmanagerConfig) ValidateDelete() error
ValidateDelete implements webhook.Validator so a webhook will be registered for the type
func (*VMAlertmanagerConfig) ValidateUpdate ¶ added in v0.18.0
func (r *VMAlertmanagerConfig) ValidateUpdate(old runtime.Object) error
ValidateUpdate implements webhook.Validator so a webhook will be registered for the type
type VMAlertmanagerConfigList ¶ added in v0.18.0
type VMAlertmanagerConfigList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []VMAlertmanagerConfig `json:"items"` }
VMAlertmanagerConfigList contains a list of VMAlertmanagerConfig
func (*VMAlertmanagerConfigList) DeepCopy ¶ added in v0.18.0
func (in *VMAlertmanagerConfigList) DeepCopy() *VMAlertmanagerConfigList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAlertmanagerConfigList.
func (*VMAlertmanagerConfigList) DeepCopyInto ¶ added in v0.18.0
func (in *VMAlertmanagerConfigList) DeepCopyInto(out *VMAlertmanagerConfigList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VMAlertmanagerConfigList) DeepCopyObject ¶ added in v0.18.0
func (in *VMAlertmanagerConfigList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VMAlertmanagerConfigSpec ¶ added in v0.18.0
type VMAlertmanagerConfigSpec struct { // Route definition for alertmanager, may include nested routes. // +optional Route *Route `json:"route"` // Receivers defines alert receivers. // without defined Route, receivers will be skipped. // +optional Receivers []Receiver `json:"receivers"` // InhibitRules will only apply for alerts matching // the resource's namespace. // +optional InhibitRules []InhibitRule `json:"inhibit_rules,omitempty"` // MuteTimeInterval - global mute time // See https://prometheus.io/docs/alerting/latest/configuration/#mute_time_interval // +optional MutTimeIntervals []MuteTimeInterval `json:"mute_time_intervals,omitempty"` }
VMAlertmanagerConfigSpec defines configuration for VMAlertmanagerConfig
func (*VMAlertmanagerConfigSpec) DeepCopy ¶ added in v0.18.0
func (in *VMAlertmanagerConfigSpec) DeepCopy() *VMAlertmanagerConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAlertmanagerConfigSpec.
func (*VMAlertmanagerConfigSpec) DeepCopyInto ¶ added in v0.18.0
func (in *VMAlertmanagerConfigSpec) DeepCopyInto(out *VMAlertmanagerConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMAlertmanagerConfigStatus ¶ added in v0.18.0
type VMAlertmanagerConfigStatus struct { // ErrorReason describes validation or any other errors. ErrorReason string `json:"reason,omitempty"` }
VMAlertmanagerConfigStatus defines the observed state of VMAlertmanagerConfig
func (*VMAlertmanagerConfigStatus) DeepCopy ¶ added in v0.18.0
func (in *VMAlertmanagerConfigStatus) DeepCopy() *VMAlertmanagerConfigStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAlertmanagerConfigStatus.
func (*VMAlertmanagerConfigStatus) DeepCopyInto ¶ added in v0.18.0
func (in *VMAlertmanagerConfigStatus) DeepCopyInto(out *VMAlertmanagerConfigStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMAlertmanagerList ¶
type VMAlertmanagerList struct { metav1.TypeMeta `json:",inline"` // Standard list metadata // More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata metav1.ListMeta `json:"metadata,omitempty"` // List of Alertmanagers Items []VMAlertmanager `json:"items"` }
VMAlertmanagerList is a list of Alertmanagers. +k8s:openapi-gen=true +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*VMAlertmanagerList) DeepCopy ¶
func (in *VMAlertmanagerList) DeepCopy() *VMAlertmanagerList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAlertmanagerList.
func (*VMAlertmanagerList) DeepCopyInto ¶
func (in *VMAlertmanagerList) DeepCopyInto(out *VMAlertmanagerList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VMAlertmanagerList) DeepCopyObject ¶
func (in *VMAlertmanagerList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VMAlertmanagerSpec ¶
type VMAlertmanagerSpec struct { // PodMetadata configures Labels and Annotations which are propagated to the alertmanager pods. // +optional PodMetadata *EmbeddedObjectMetadata `json:"podMetadata,omitempty"` // Image - docker image settings for VMAlertmanager // if no specified operator uses default config version // +optional Image Image `json:"image,omitempty"` // ImagePullSecrets An optional list of references to secrets in the same namespace // to use for pulling images from registries // see http://kubernetes.io/docs/user-guide/images#specifying-imagepullsecrets-on-a-pod // +optional ImagePullSecrets []v1.LocalObjectReference `json:"imagePullSecrets,omitempty"` // Secrets is a list of Secrets in the same namespace as the VMAlertmanager // object, which shall be mounted into the VMAlertmanager Pods. // The Secrets are mounted into /etc/alertmanager/secrets/<secret-name> // +optional Secrets []string `json:"secrets,omitempty"` // ConfigMaps is a list of ConfigMaps in the same namespace as the VMAlertmanager // object, which shall be mounted into the VMAlertmanager Pods. // The ConfigMaps are mounted into /etc/alertmanager/configmaps/<configmap-name>. // +optional ConfigMaps []string `json:"configMaps,omitempty"` // ConfigRawYaml - raw configuration for alertmanager, // it helps it to start without secret. // priority -> hardcoded ConfigRaw -> ConfigRaw, provided by user -> ConfigSecret. // +optional ConfigRawYaml string `json:"configRawYaml,omitempty"` // 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-<alertmanager-name>' // The secret is mounted into /etc/alertmanager/config. // +optional // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Secret with alertmanager config",xDescriptors="urn:alm:descriptor:io.kubernetes:Secret" ConfigSecret string `json:"configSecret,omitempty"` // Log level for VMAlertmanager to be configured with. // +optional LogLevel string `json:"logLevel,omitempty"` // LogFormat for VMAlertmanager to be configured with. // +optional LogFormat string `json:"logFormat,omitempty"` // ReplicaCount Size is the expected size of the alertmanager cluster. The controller will // eventually make the size of the running cluster equal to the expected // +kubebuilder:validation:Minimum:=1 // +optional // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Number of pods",xDescriptors="urn:alm:descriptor:com.tectonic.ui:podCount,urn:alm:descriptor:io.kubernetes:custom" ReplicaCount *int32 `json:"replicaCount,omitempty"` // Retention Time duration VMAlertmanager shall retain data for. Default is '120h', // and must match the regular expression `[0-9]+(ms|s|m|h)` (milliseconds seconds minutes hours). // +kubebuilder:validation:Pattern:="[0-9]+(ms|s|m|h)" // +optional Retention string `json:"retention,omitempty"` // Storage is the definition of how storage will be used by the VMAlertmanager // instances. // +optional Storage *StorageSpec `json:"storage,omitempty"` // Volumes allows configuration of additional volumes on the output StatefulSet definition. // Volumes specified will be appended to other volumes that are generated as a result of // StorageSpec objects. // +optional Volumes []v1.Volume `json:"volumes,omitempty"` // VolumeMounts allows configuration of additional VolumeMounts on the output StatefulSet definition. // VolumeMounts specified will be appended to other VolumeMounts in the alertmanager container, // that are generated as a result of StorageSpec objects. // +optional VolumeMounts []v1.VolumeMount `json:"volumeMounts,omitempty"` // 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. // +optional ExternalURL string `json:"externalURL,omitempty"` // RoutePrefix VMAlertmanager registers HTTP handlers for. This is useful, // if using ExternalURL and a proxy is rewriting HTTP routes of a request, // and the actual ExternalURL is still true, but the server serves requests // under a different route prefix. For example for use with `kubectl proxy`. // +optional RoutePrefix string `json:"routePrefix,omitempty"` // Paused If set to true all actions on the underlaying managed objects are not // goint to be performed, except for delete actions. // +optional Paused bool `json:"paused,omitempty"` // NodeSelector Define which Nodes the Pods are scheduled on. // +optional NodeSelector map[string]string `json:"nodeSelector,omitempty"` // Resources container resource request and limits, // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Resources",xDescriptors="urn:alm:descriptor:com.tectonic.ui:resourceRequirements" // +optional Resources v1.ResourceRequirements `json:"resources,omitempty"` // Affinity If specified, the pod's scheduling constraints. // +optional Affinity *v1.Affinity `json:"affinity,omitempty"` // Tolerations If specified, the pod's tolerations. // +optional Tolerations []v1.Toleration `json:"tolerations,omitempty"` // SecurityContext holds pod-level security attributes and common container settings. // This defaults to the default PodSecurityContext. // +optional SecurityContext *v1.PodSecurityContext `json:"securityContext,omitempty"` // ServiceAccountName is the name of the ServiceAccount to use // +optional // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="ServiceAccount name",xDescriptors="urn:alm:descriptor:io.kubernetes:ServiceAccount" ServiceAccountName string `json:"serviceAccountName,omitempty"` // SchedulerName - defines kubernetes scheduler name // +optional SchedulerName string `json:"schedulerName,omitempty"` // RuntimeClassName - defines runtime class for kubernetes pod. //https://kubernetes.io/docs/concepts/containers/runtime-class/ // +optional RuntimeClassName *string `json:"runtimeClassName,omitempty"` // PodSecurityPolicyName - defines name for podSecurityPolicy // in case of empty value, prefixedName will be used. // +optional PodSecurityPolicyName string `json:"podSecurityPolicyName,omitempty"` // ListenLocal makes the VMAlertmanager server listen on loopback, so that it // does not bind against the Pod IP. Note this is only for the VMAlertmanager // UI, not the gossip communication. // +optional ListenLocal bool `json:"listenLocal,omitempty"` // Containers allows injecting additional containers or patching existing containers. // This is meant to allow adding an authentication proxy to an VMAlertmanager pod. // +optional Containers []v1.Container `json:"containers,omitempty"` // InitContainers allows adding initContainers to the pod definition. Those can be used to e.g. // fetch secrets for injection into the VMAlertmanager configuration from external sources. Any // errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ // Using initContainers for any use case other then secret fetching is entirely outside the scope // of what the maintainers will support and by doing so, you accept that this behaviour may break // at any time without notice. // +optional InitContainers []v1.Container `json:"initContainers,omitempty"` // PriorityClassName class assigned to the Pods // +optional PriorityClassName string `json:"priorityClassName,omitempty"` // HostNetwork controls whether the pod may use the node network namespace // +optional HostNetwork bool `json:"hostNetwork,omitempty"` // DNSPolicy sets DNS policy for the pod // +optional DNSPolicy v1.DNSPolicy `json:"dnsPolicy,omitempty"` // 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/ // +optional TopologySpreadConstraints []v1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"` // AdditionalPeers allows injecting a set of additional Alertmanagers to peer with to form a highly available cluster. AdditionalPeers []string `json:"additionalPeers,omitempty"` // ClusterAdvertiseAddress is the explicit address to advertise in cluster. // Needs to be provided for non RFC1918 [1] (public) addresses. // [1] RFC1918: https://tools.ietf.org/html/rfc1918 // +optional ClusterAdvertiseAddress string `json:"clusterAdvertiseAddress,omitempty"` // PortName used for the pods and governing service. // This defaults to web // +optional PortName string `json:"portName,omitempty"` // ServiceSpec that will be added to vmalertmanager service spec // +optional ServiceSpec *ServiceSpec `json:"serviceSpec,omitempty"` // PodDisruptionBudget created by operator // +optional PodDisruptionBudget *EmbeddedPodDisruptionBudgetSpec `json:"podDisruptionBudget,omitempty"` *EmbeddedProbes `json:",inline"` // SelectAllByDefault changes default behavior for empty CRD selectors, such ConfigSelector. // with selectAllScrapes: true and undefined ConfigSelector and ConfigNamespaceSelector // Operator selects all exist alertManagerConfigs // with selectAllScrapes: false - selects nothing // +optional SelectAllByDefault bool `json:"selectAllByDefault,omitempty"` // 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 // +optional ConfigSelector *metav1.LabelSelector `json:"configSelector,omitempty"` // 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 // +optional ConfigNamespaceSelector *metav1.LabelSelector `json:"configNamespaceSelector,omitempty"` // ExtraArgs that will be passed to VMAuth pod // for example remoteWrite.tmpDataPath: /tmp // +optional ExtraArgs map[string]string `json:"extraArgs,omitempty"` // ExtraEnvs that will be added to VMAuth pod // +optional ExtraEnvs []v1.EnvVar `json:"extraEnvs,omitempty"` }
VMAlertmanagerSpec is a specification of the desired behavior of the VMAlertmanager cluster. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status +k8s:openapi-gen=true
func (*VMAlertmanagerSpec) DeepCopy ¶
func (in *VMAlertmanagerSpec) DeepCopy() *VMAlertmanagerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAlertmanagerSpec.
func (*VMAlertmanagerSpec) DeepCopyInto ¶
func (in *VMAlertmanagerSpec) DeepCopyInto(out *VMAlertmanagerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMAlertmanagerStatus ¶
type VMAlertmanagerStatus struct { // Paused Represents whether any actions on the underlaying managed objects are // being performed. Only delete actions will be performed. Paused bool `json:"paused"` // ReplicaCount Total number of non-terminated pods targeted by this VMAlertmanager // cluster (their labels match the selector). Replicas int32 `json:"replicas"` // UpdatedReplicas Total number of non-terminated pods targeted by this VMAlertmanager // cluster that have the desired version spec. UpdatedReplicas int32 `json:"updatedReplicas"` // AvailableReplicas Total number of available pods (ready for at least minReadySeconds) // targeted by this VMAlertmanager cluster. AvailableReplicas int32 `json:"availableReplicas"` UnavailableReplicas int32 `json:"unavailableReplicas"` }
VMAlertmanagerStatus is the most recent observed status of the VMAlertmanager cluster Operator API itself. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status +k8s:openapi-gen=true
func (*VMAlertmanagerStatus) DeepCopy ¶
func (in *VMAlertmanagerStatus) DeepCopy() *VMAlertmanagerStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAlertmanagerStatus.
func (*VMAlertmanagerStatus) DeepCopyInto ¶
func (in *VMAlertmanagerStatus) DeepCopyInto(out *VMAlertmanagerStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMAuth ¶ added in v0.15.0
type VMAuth struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec VMAuthSpec `json:"spec,omitempty"` Status VMAuthStatus `json:"status,omitempty"` }
VMAuth is the Schema for the vmauths API
func (VMAuth) Annotations ¶ added in v0.15.0
func (*VMAuth) AsCRDOwner ¶ added in v0.16.0
func (cr *VMAuth) AsCRDOwner() []metav1.OwnerReference
AsCRDOwner implements interface
func (*VMAuth) AsOwner ¶ added in v0.15.0
func (cr *VMAuth) AsOwner() []metav1.OwnerReference
func (VMAuth) ConfigSecretName ¶ added in v0.15.0
func (*VMAuth) DeepCopy ¶ added in v0.15.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAuth.
func (*VMAuth) DeepCopyInto ¶ added in v0.15.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VMAuth) DeepCopyObject ¶ added in v0.15.0
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (VMAuth) GetPSPName ¶ added in v0.15.0
func (VMAuth) GetServiceAccountName ¶ added in v0.15.0
func (VMAuth) HealthPath ¶ added in v0.15.0
func (VMAuth) MetricPath ¶ added in v0.15.0
func (VMAuth) PodAnnotations ¶ added in v0.15.0
func (VMAuth) PrefixedName ¶ added in v0.15.0
func (VMAuth) ReloadPathWithPort ¶ added in v0.15.0
func (VMAuth) SelectorLabels ¶ added in v0.15.0
func (*VMAuth) SetupWebhookWithManager ¶ added in v0.15.0
func (*VMAuth) ValidateCreate ¶ added in v0.15.0
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*VMAuth) ValidateDelete ¶ added in v0.15.0
ValidateDelete implements webhook.Validator so a webhook will be registered for the type
type VMAuthList ¶ added in v0.15.0
type VMAuthList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []VMAuth `json:"items"` }
VMAuthList contains a list of VMAuth
func (*VMAuthList) DeepCopy ¶ added in v0.15.0
func (in *VMAuthList) DeepCopy() *VMAuthList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAuthList.
func (*VMAuthList) DeepCopyInto ¶ added in v0.15.0
func (in *VMAuthList) DeepCopyInto(out *VMAuthList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VMAuthList) DeepCopyObject ¶ added in v0.15.0
func (in *VMAuthList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VMAuthSpec ¶ added in v0.15.0
type VMAuthSpec struct { // PodMetadata configures Labels and Annotations which are propagated to the VMAuth pods. // +optional PodMetadata *EmbeddedObjectMetadata `json:"podMetadata,omitempty"` // Image - docker image settings for VMAuth // if no specified operator uses default config version // +optional Image Image `json:"image,omitempty"` // ImagePullSecrets An optional list of references to secrets in the same namespace // to use for pulling images from registries // see http://kubernetes.io/docs/user-guide/images#specifying-imagepullsecrets-on-a-pod // +optional ImagePullSecrets []v1.LocalObjectReference `json:"imagePullSecrets,omitempty"` // Secrets is a list of Secrets in the same namespace as the VMAuth // object, which shall be mounted into the VMAuth Pods. // +optional Secrets []string `json:"secrets,omitempty"` // ConfigMaps is a list of ConfigMaps in the same namespace as the VMAuth // object, which shall be mounted into the VMAuth Pods. // +optional ConfigMaps []string `json:"configMaps,omitempty"` // LogLevel for victoria metrics single to be configured with. // +optional // +kubebuilder:validation:Enum=INFO;WARN;ERROR;FATAL;PANIC LogLevel string `json:"logLevel,omitempty"` // LogFormat for VMAuth to be configured with. // +optional // +kubebuilder:validation:Enum=default;json LogFormat string `json:"logFormat,omitempty"` // ReplicaCount is the expected size of the VMAuth // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Number of pods",xDescriptors="urn:alm:descriptor:com.tectonic.ui:podCount,urn:alm:descriptor:io.kubernetes:custom" ReplicaCount *int32 `json:"replicaCount,omitempty"` // Volumes allows configuration of additional volumes on the output deploy definition. // Volumes specified will be appended to other volumes that are generated as a result of // StorageSpec objects. // +optional Volumes []v1.Volume `json:"volumes,omitempty"` // VolumeMounts allows configuration of additional VolumeMounts on the output Deployment definition. // VolumeMounts specified will be appended to other VolumeMounts in the VMAuth container, // that are generated as a result of StorageSpec objects. // +optional VolumeMounts []v1.VolumeMount `json:"volumeMounts,omitempty"` // 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 // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Resources",xDescriptors="urn:alm:descriptor:com.tectonic.ui:resourceRequirements" // +optional Resources v1.ResourceRequirements `json:"resources,omitempty"` // Affinity If specified, the pod's scheduling constraints. // +optional Affinity *v1.Affinity `json:"affinity,omitempty"` // Tolerations If specified, the pod's tolerations. // +optional Tolerations []v1.Toleration `json:"tolerations,omitempty"` // SecurityContext holds pod-level security attributes and common container settings. // This defaults to the default PodSecurityContext. // +optional SecurityContext *v1.PodSecurityContext `json:"securityContext,omitempty"` // ServiceAccountName is the name of the ServiceAccount to use to run the // VMAuth Pods. // +optional ServiceAccountName string `json:"serviceAccountName,omitempty"` // SchedulerName - defines kubernetes scheduler name // +optional SchedulerName string `json:"schedulerName,omitempty"` // RuntimeClassName - defines runtime class for kubernetes pod. //https://kubernetes.io/docs/concepts/containers/runtime-class/ // +optional RuntimeClassName *string `json:"runtimeClassName,omitempty"` // PodSecurityPolicyName - defines name for podSecurityPolicy // in case of empty value, prefixedName will be used. // +optional PodSecurityPolicyName string `json:"podSecurityPolicyName,omitempty"` // HostAliases provides mapping for ip and hostname, // that would be propagated to pod, // cannot be used with HostNetwork. // +optional HostAliases []v1.HostAlias `json:"hostAliases,omitempty"` // Containers property allows to inject additions sidecars or to patch existing containers. // It can be useful for proxies, backup, etc. // +optional Containers []v1.Container `json:"containers,omitempty"` // InitContainers allows adding initContainers to the pod definition. Those can be used to e.g. // fetch secrets for injection into the vmSingle configuration from external sources. Any // errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ // Using initContainers for any use case other then secret fetching is entirely outside the scope // of what the maintainers will support and by doing so, you accept that this behaviour may break // at any time without notice. // +optional InitContainers []v1.Container `json:"initContainers,omitempty"` // PriorityClassName assigned to the Pods // +optional PriorityClassName string `json:"priorityClassName,omitempty"` // HostNetwork controls whether the pod may use the node network namespace // +optional HostNetwork bool `json:"hostNetwork,omitempty"` // DNSPolicy sets DNS policy for the pod // +optional DNSPolicy v1.DNSPolicy `json:"dnsPolicy,omitempty"` // 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/ // +optional TopologySpreadConstraints []v1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"` //Port listen port // +optional Port string `json:"port,omitempty"` // SelectAllByDefault changes default behavior for empty CRD selectors, such userSelector. // with selectAllByDefault: true and empty userSelector and userNamespaceSelector // Operator selects all exist users // with selectAllByDefault: false - selects nothing // +optional SelectAllByDefault bool `json:"selectAllByDefault,omitempty"` // 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 // +optional UserSelector *metav1.LabelSelector `json:"userSelector,omitempty"` // 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 // +optional UserNamespaceSelector *metav1.LabelSelector `json:"userNamespaceSelector,omitempty"` // ExtraArgs that will be passed to VMAuth pod // for example remoteWrite.tmpDataPath: /tmp // +optional ExtraArgs map[string]string `json:"extraArgs,omitempty"` // ExtraEnvs that will be added to VMAuth pod // +optional ExtraEnvs []v1.EnvVar `json:"extraEnvs,omitempty"` // ServiceSpec that will be added to vmsingle service spec // +optional ServiceSpec *ServiceSpec `json:"serviceSpec,omitempty"` // PodDisruptionBudget created by operator // +optional PodDisruptionBudget *EmbeddedPodDisruptionBudgetSpec `json:"podDisruptionBudget,omitempty"` // Ingress enables ingress configuration for VMAuth. Ingress *EmbeddedIngress `json:"ingress,omitempty"` // LivenessProbe that will be added to VMAuth pod *EmbeddedProbes `json:",inline"` // NodeSelector Define which Nodes the Pods are scheduled on. // +optional NodeSelector map[string]string `json:"nodeSelector,omitempty"` }
VMAuthSpec defines the desired state of VMAuth
func (*VMAuthSpec) DeepCopy ¶ added in v0.15.0
func (in *VMAuthSpec) DeepCopy() *VMAuthSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAuthSpec.
func (*VMAuthSpec) DeepCopyInto ¶ added in v0.15.0
func (in *VMAuthSpec) DeepCopyInto(out *VMAuthSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMAuthStatus ¶ added in v0.15.0
type VMAuthStatus struct { }
VMAuthStatus defines the observed state of VMAuth
func (*VMAuthStatus) DeepCopy ¶ added in v0.15.0
func (in *VMAuthStatus) DeepCopy() *VMAuthStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAuthStatus.
func (*VMAuthStatus) DeepCopyInto ¶ added in v0.15.0
func (in *VMAuthStatus) DeepCopyInto(out *VMAuthStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMBackup ¶ added in v0.1.0
type VMBackup struct { // AcceptEULA accepts enterprise feature usage, must be set to true. // otherwise backupmanager cannot be added to single/cluster version. // https://victoriametrics.com/assets/VM_EULA.pdf AcceptEULA bool `json:"acceptEULA"` // SnapshotCreateURL overwrites url for snapshot create // +optional SnapshotCreateURL string `json:"snapshotCreateURL,omitempty"` // SnapShotDeleteURL overwrites url for snapshot delete // +optional SnapShotDeleteURL string `json:"snapshotDeleteURL,omitempty"` // Defines number of concurrent workers. Higher concurrency may reduce backup duration (default 10) // +optional Concurrency *int32 `json:"concurrency,omitempty"` // Defines destination for backup Destination string `json:"destination,omitempty"` // DestinationDisableSuffixAdd - disables suffix adding for cluster version backups // each vmstorage backup must have unique backup folder // so operator adds POD_NAME as suffix for backup destination folder. // +optional DestinationDisableSuffixAdd bool `json:"destinationDisableSuffixAdd,omitempty"` // Custom S3 endpoint for use with S3-compatible storages (e.g. MinIO). S3 is used if not set // +optional CustomS3Endpoint *string `json:"customS3Endpoint,omitempty"` // CredentialsSecret is secret in the same namespace for access to remote storage // The secret is mounted into /etc/vm/creds. // +optional CredentialsSecret *v1.SecretKeySelector `json:"credentialsSecret,omitempty"` // Defines if hourly backups disabled (default false) // +optional DisableHourly *bool `json:"disableHourly,omitempty"` // Defines if daily backups disabled (default false) // +optional DisableDaily *bool `json:"disableDaily,omitempty"` // Defines if weekly backups disabled (default false) // +optional DisableWeekly *bool `json:"disableWeekly,omitempty"` // Defines if monthly backups disabled (default false) // +optional DisableMonthly *bool `json:"disableMonthly,omitempty"` // Image - docker image settings for VMBackuper // +optional Image Image `json:"image,omitempty"` //Port for health check connections Port string `json:"port,omitempty"` // LogFormat for VMSelect to be configured with. // default or json // +optional // +kubebuilder:validation:Enum=default;json LogFormat *string `json:"logFormat,omitempty"` // LogLevel for VMSelect to be configured with. // +optional // +kubebuilder:validation:Enum=INFO;WARN;ERROR;FATAL;PANIC LogLevel *string `json:"logLevel,omitempty"` // 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 // +optional Resources v1.ResourceRequirements `json:"resources,omitempty"` //extra args like maxBytesPerSecond default 0 // +optional ExtraArgs map[string]string `json:"extraArgs,omitempty"` // +optional ExtraEnvs []v1.EnvVar `json:"extraEnvs,omitempty"` // VolumeMounts allows configuration of additional VolumeMounts on the output Deployment definition. // VolumeMounts specified will be appended to other VolumeMounts in the vmbackupmanager container, // that are generated as a result of StorageSpec objects. // +optional VolumeMounts []v1.VolumeMount `json:"volumeMounts,omitempty"` }
func (*VMBackup) DeepCopy ¶ added in v0.1.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMBackup.
func (*VMBackup) DeepCopyInto ¶ added in v0.1.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (VMBackup) SnapshotCreatePathWithFlags ¶ added in v0.2.1
type VMCluster ¶
type VMCluster struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec VMClusterSpec `json:"spec"` Status VMClusterStatus `json:"status,omitempty"` }
VMCluster is fast, cost-effective and scalable time-series database. Cluster version with +operator-sdk:gen-csv:customresourcedefinitions.displayName="VMCluster App" +operator-sdk:gen-csv:customresourcedefinitions.resources="Deployment,apps" +operator-sdk:gen-csv:customresourcedefinitions.resources="Statefulset,apps" +operator-sdk:gen-csv:customresourcedefinitions.resources="Service,v1" +genclient +k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:resource:path=vmclusters,scope=Namespaced +kubebuilder:printcolumn:name="Insert Count",type="string",JSONPath=".spec.vminsert.replicaCount",description="replicas of VMInsert" +kubebuilder:printcolumn:name="Storage Count",type="string",JSONPath=".spec.vmstorage.replicaCount",description="replicas of VMStorage" +kubebuilder:printcolumn:name="Select Count",type="string",JSONPath=".spec.vmselect.replicaCount",description="replicas of VMSelect" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.clusterStatus",description="Current status of cluster" +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (VMCluster) Annotations ¶
func (*VMCluster) AsCRDOwner ¶ added in v0.16.0
func (cr *VMCluster) AsCRDOwner() []metav1.OwnerReference
AsCRDOwner implements interface
func (*VMCluster) AsOwner ¶
func (c *VMCluster) AsOwner() []metav1.OwnerReference
func (VMCluster) AvailableStorageNodeIDs ¶ added in v0.14.0
func (*VMCluster) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMCluster.
func (*VMCluster) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VMCluster) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (VMCluster) FinalLabels ¶
func (VMCluster) GetPSPName ¶ added in v0.5.0
func (VMCluster) GetServiceAccountName ¶ added in v0.5.0
func (VMCluster) HealthPathInsert ¶ added in v0.2.1
func (VMCluster) HealthPathSelect ¶ added in v0.2.1
func (VMCluster) HealthPathStorage ¶ added in v0.2.1
func (VMCluster) MetricPathInsert ¶ added in v0.2.1
func (VMCluster) MetricPathSelect ¶ added in v0.2.1
func (VMCluster) MetricPathStorage ¶ added in v0.2.1
func (VMCluster) PrefixedName ¶ added in v0.5.0
func (VMCluster) SelectorLabels ¶ added in v0.5.0
func (*VMCluster) SetupWebhookWithManager ¶ added in v0.15.0
func (VMCluster) VMInsertPodAnnotations ¶
func (VMCluster) VMInsertPodLabels ¶
func (VMCluster) VMInsertSelectorLabels ¶
func (*VMCluster) VMInsertURL ¶ added in v0.15.0
func (VMCluster) VMSelectPodAnnotations ¶
func (VMCluster) VMSelectPodLabels ¶
func (VMCluster) VMSelectSelectorLabels ¶
func (*VMCluster) VMSelectURL ¶ added in v0.15.0
func (VMCluster) VMStoragePodAnnotations ¶
func (VMCluster) VMStoragePodLabels ¶
func (VMCluster) VMStorageSelectorLabels ¶
func (*VMCluster) VMStorageURL ¶ added in v0.15.0
func (*VMCluster) ValidateCreate ¶ added in v0.15.0
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*VMCluster) ValidateDelete ¶ added in v0.15.0
ValidateDelete implements webhook.Validator so a webhook will be registered for the type
type VMClusterList ¶
type VMClusterList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []VMCluster `json:"items"` }
+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object VMClusterList contains a list of VMCluster
func (*VMClusterList) DeepCopy ¶
func (in *VMClusterList) DeepCopy() *VMClusterList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMClusterList.
func (*VMClusterList) DeepCopyInto ¶
func (in *VMClusterList) DeepCopyInto(out *VMClusterList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VMClusterList) DeepCopyObject ¶
func (in *VMClusterList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VMClusterSpec ¶
type VMClusterSpec struct { // RetentionPeriod in months // +kubebuilder:validation:Pattern:="[1-9]+" RetentionPeriod string `json:"retentionPeriod"` // ReplicationFactor defines how many copies of data make among // distinct storage nodes // +optional ReplicationFactor *int32 `json:"replicationFactor,omitempty"` // PodSecurityPolicyName - defines name for podSecurityPolicy // in case of empty value, prefixedName will be used. // +optional PodSecurityPolicyName string `json:"podSecurityPolicyName,omitempty"` // ServiceAccountName is the name of the ServiceAccount to use to run the // VMSelect Pods. // +optional ServiceAccountName string `json:"serviceAccountName,omitempty"` // ClusterVersion defines default images tag for all components. // it can be overwritten with component specific image.tag value. ClusterVersion string `json:"clusterVersion,omitempty"` // ImagePullSecrets An optional list of references to secrets in the same namespace // to use for pulling images from registries // see http://kubernetes.io/docs/user-guide/images#specifying-imagepullsecrets-on-a-pod // +optional ImagePullSecrets []v1.LocalObjectReference `json:"imagePullSecrets,omitempty"` // +optional VMSelect *VMSelect `json:"vmselect,omitempty"` // +optional VMInsert *VMInsert `json:"vminsert,omitempty"` // +optional VMStorage *VMStorage `json:"vmstorage,omitempty"` }
VMClusterSpec defines the desired state of VMCluster +k8s:openapi-gen=true
func (*VMClusterSpec) DeepCopy ¶
func (in *VMClusterSpec) DeepCopy() *VMClusterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMClusterSpec.
func (*VMClusterSpec) DeepCopyInto ¶
func (in *VMClusterSpec) DeepCopyInto(out *VMClusterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMClusterStatus ¶
type VMClusterStatus struct { // Deprecated. UpdateFailCount int `json:"updateFailCount"` // Deprecated. LastSync string `json:"lastSync,omitempty"` ClusterStatus string `json:"clusterStatus"` Reason string `json:"reason,omitempty"` }
VMClusterStatus defines the observed state of VMCluster
func (*VMClusterStatus) DeepCopy ¶
func (in *VMClusterStatus) DeepCopy() *VMClusterStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMClusterStatus.
func (*VMClusterStatus) DeepCopyInto ¶
func (in *VMClusterStatus) DeepCopyInto(out *VMClusterStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMInsert ¶
type VMInsert struct { // Name is deprecated and will be removed at 0.22.0 release // +deprecated // +optional Name string `json:"name,omitempty"` // PodMetadata configures Labels and Annotations which are propagated to the VMSelect pods. PodMetadata *EmbeddedObjectMetadata `json:"podMetadata,omitempty"` // Image - docker image settings for VMInsert // +optional Image Image `json:"image,omitempty"` // Secrets is a list of Secrets in the same namespace as the VMSelect // object, which shall be mounted into the VMSelect Pods. // The Secrets are mounted into /etc/vm/secrets/<secret-name>. // +optional Secrets []string `json:"secrets,omitempty"` // ConfigMaps is a list of ConfigMaps in the same namespace as the VMSelect // object, which shall be mounted into the VMSelect Pods. // The ConfigMaps are mounted into /etc/vm/configs/<configmap-name>. // +optional ConfigMaps []string `json:"configMaps,omitempty"` // LogFormat for VMSelect to be configured with. //default or json // +optional // +kubebuilder:validation:Enum=default;json LogFormat string `json:"logFormat,omitempty"` // LogLevel for VMSelect to be configured with. // +optional // +kubebuilder:validation:Enum=INFO;WARN;ERROR;FATAL;PANIC LogLevel string `json:"logLevel,omitempty"` // ReplicaCount is the expected size of the VMInsert cluster. The controller will // eventually make the size of the running cluster equal to the expected // size. // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Number of pods",xDescriptors="urn:alm:descriptor:com.tectonic.ui:podCount,urn:alm:descriptor:io.kubernetes:custom" ReplicaCount *int32 `json:"replicaCount"` // Volumes allows configuration of additional volumes on the output Deployment definition. // Volumes specified will be appended to other volumes that are generated as a result of // StorageSpec objects. // +optional Volumes []v1.Volume `json:"volumes,omitempty"` // VolumeMounts allows configuration of additional VolumeMounts on the output Deployment definition. // VolumeMounts specified will be appended to other VolumeMounts in the VMSelect container, // that are generated as a result of StorageSpec objects. // +optional VolumeMounts []v1.VolumeMount `json:"volumeMounts,omitempty"` // Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Resources",xDescriptors="urn:alm:descriptor:com.tectonic.ui:resourceRequirements" // +optional Resources v1.ResourceRequirements `json:"resources,omitempty"` // Affinity If specified, the pod's scheduling constraints. // +optional Affinity *v1.Affinity `json:"affinity,omitempty"` // Tolerations If specified, the pod's tolerations. // +optional Tolerations []v1.Toleration `json:"tolerations,omitempty"` // SecurityContext holds pod-level security attributes and common container settings. // This defaults to the default PodSecurityContext. // +optional SecurityContext *v1.PodSecurityContext `json:"securityContext,omitempty"` // Containers property allows to inject additions sidecars or to patch existing containers. // It can be useful for proxies, backup, etc. // +optional Containers []v1.Container `json:"containers,omitempty"` // InitContainers allows adding initContainers to the pod definition. Those can be used to e.g. // fetch secrets for injection into the VMSelect configuration from external sources. Any // errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ // Using initContainers for any use case other then secret fetching is entirely outside the scope // of what the maintainers will support and by doing so, you accept that this behaviour may break // at any time without notice. // +optional InitContainers []v1.Container `json:"initContainers,omitempty"` // Priority class assigned to the Pods // +optional PriorityClassName string `json:"priorityClassName,omitempty"` // HostNetwork controls whether the pod may use the node network namespace // +optional HostNetwork bool `json:"hostNetwork,omitempty"` // DNSPolicy sets DNS policy for the pod // +optional DNSPolicy v1.DNSPolicy `json:"dnsPolicy,omitempty"` // 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/ // +optional TopologySpreadConstraints []v1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"` // +optional ExtraArgs map[string]string `json:"extraArgs,omitempty"` // InsertPorts - additional listen ports for data ingestion. InsertPorts *InsertPorts `json:"insertPorts,omitempty"` //Port listen port // +optional Port string `json:"port,omitempty"` // SchedulerName - defines kubernetes scheduler name // +optional SchedulerName string `json:"schedulerName,omitempty"` // RuntimeClassName - defines runtime class for kubernetes pod. //https://kubernetes.io/docs/concepts/containers/runtime-class/ // +optional RuntimeClassName *string `json:"runtimeClassName,omitempty"` // ExtraEnvs that will be added to VMSelect pod // +optional ExtraEnvs []v1.EnvVar `json:"extraEnvs,omitempty"` // ServiceSpec that will be added to vminsert service spec // +optional ServiceSpec *ServiceSpec `json:"serviceSpec,omitempty"` // UpdateStrategy - overrides default update strategy. // +kubebuilder:validation:Enum=Recreate;RollingUpdate // +optional UpdateStrategy *appsv1.DeploymentStrategyType `json:"updateStrategy,omitempty"` // RollingUpdate - overrides deployment update params. // +optional RollingUpdate *appsv1.RollingUpdateDeployment `json:"rollingUpdate,omitempty"` // PodDisruptionBudget created by operator // +optional PodDisruptionBudget *EmbeddedPodDisruptionBudgetSpec `json:"podDisruptionBudget,omitempty"` *EmbeddedProbes `json:",inline"` // HPA defines kubernetes PodAutoScaling configuration version 2. HPA *EmbeddedHPA `json:"hpa,omitempty"` // NodeSelector Define which Nodes the Pods are scheduled on. // +optional NodeSelector map[string]string `json:"nodeSelector,omitempty"` }
func (*VMInsert) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMInsert.
func (*VMInsert) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (VMInsert) GetNameWithPrefix ¶
type VMNodeScrape ¶ added in v0.6.0
type VMNodeScrape struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec VMNodeScrapeSpec `json:"spec,omitempty"` Status VMNodeScrapeStatus `json:"status,omitempty"` }
VMNodeScrape defines discovery for targets placed on kubernetes nodes, usually its node-exporters and other host services. InternalIP is used as __address__ for scraping.
func (VMNodeScrape) AsMapKey ¶ added in v0.6.0
func (cr VMNodeScrape) AsMapKey() string
AsMapKey - returns cr name with suffix for token/auth maps.
func (VMNodeScrape) AsProxyKey ¶ added in v0.18.0
func (cr VMNodeScrape) AsProxyKey() string
AsProxyKey builds key for proxy cache maps
func (*VMNodeScrape) DeepCopy ¶ added in v0.6.0
func (in *VMNodeScrape) DeepCopy() *VMNodeScrape
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMNodeScrape.
func (*VMNodeScrape) DeepCopyInto ¶ added in v0.6.0
func (in *VMNodeScrape) DeepCopyInto(out *VMNodeScrape)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VMNodeScrape) DeepCopyObject ¶ added in v0.6.0
func (in *VMNodeScrape) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VMNodeScrapeList ¶ added in v0.6.0
type VMNodeScrapeList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []VMNodeScrape `json:"items"` }
VMNodeScrapeList contains a list of VMNodeScrape
func (*VMNodeScrapeList) DeepCopy ¶ added in v0.6.0
func (in *VMNodeScrapeList) DeepCopy() *VMNodeScrapeList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMNodeScrapeList.
func (*VMNodeScrapeList) DeepCopyInto ¶ added in v0.6.0
func (in *VMNodeScrapeList) DeepCopyInto(out *VMNodeScrapeList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VMNodeScrapeList) DeepCopyObject ¶ added in v0.6.0
func (in *VMNodeScrapeList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VMNodeScrapeSpec ¶ added in v0.6.0
type VMNodeScrapeSpec struct { // The label to use to retrieve the job name from. // +optional JobLabel string `json:"jobLabel,omitempty"` // TargetLabels transfers labels on the Kubernetes Node onto the target. // +optional TargetLabels []string `json:"targetLabels,omitempty"` // Name of the port exposed at Node. // +optional Port string `json:"port,omitempty"` // HTTP path to scrape for metrics. // +optional Path string `json:"path,omitempty"` // HTTP scheme to use for scraping. // +optional Scheme string `json:"scheme,omitempty"` // Optional HTTP URL parameters // +optional Params map[string][]string `json:"params,omitempty"` // FollowRedirects controls redirects for scraping. // +optional FollowRedirects *bool `json:"follow_redirects,omitempty"` // Interval at which metrics should be scraped // +optional Interval string `json:"interval,omitempty"` // ScrapeInterval is the same as Interval and has priority over it. // one of scrape_interval or interval can be used // +optional ScrapeInterval string `json:"scrape_interval,omitempty"` // Timeout after which the scrape is ended // +optional ScrapeTimeout string `json:"scrapeTimeout,omitempty"` // OAuth2 defines auth configuration // +optional OAuth2 *OAuth2 `json:"oauth2,omitempty"` // TLSConfig configuration to use when scraping the node // +optional TLSConfig *TLSConfig `json:"tlsConfig,omitempty"` // File to read bearer token for scraping targets. // +optional BearerTokenFile string `json:"bearerTokenFile,omitempty"` // Secret to mount to read bearer token for scraping targets. The secret // needs to be accessible by // the victoria-metrics operator. // +optional // +nullable BearerTokenSecret *v1.SecretKeySelector `json:"bearerTokenSecret,omitempty"` // HonorLabels chooses the metric's labels on collisions with target labels. // +optional HonorLabels bool `json:"honorLabels,omitempty"` // HonorTimestamps controls whether vmagent respects the timestamps present in scraped data. // +optional HonorTimestamps *bool `json:"honorTimestamps,omitempty"` // BasicAuth allow an endpoint to authenticate over basic authentication // More info: https://prometheus.io/docs/operating/configuration/#endpoints // +optional BasicAuth *BasicAuth `json:"basicAuth,omitempty"` // MetricRelabelConfigs to apply to samples before ingestion. // +optional MetricRelabelConfigs []*RelabelConfig `json:"metricRelabelConfigs,omitempty"` // RelabelConfigs to apply to samples before scraping. // More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config // +optional RelabelConfigs []*RelabelConfig `json:"relabelConfigs,omitempty"` // ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. // +optional ProxyURL *string `json:"proxyURL,omitempty"` // Selector to select kubernetes Nodes. // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Service selector" // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:selector:" // +optional Selector metav1.LabelSelector `json:"selector,omitempty"` // SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. // +optional SampleLimit uint64 `json:"sampleLimit,omitempty"` // VMScrapeParams defines VictoriaMetrics specific scrape parametrs // +optional VMScrapeParams *VMScrapeParams `json:"vm_scrape_params,omitempty"` }
VMNodeScrapeSpec defines specification for VMNodeScrape.
func (*VMNodeScrapeSpec) DeepCopy ¶ added in v0.6.0
func (in *VMNodeScrapeSpec) DeepCopy() *VMNodeScrapeSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMNodeScrapeSpec.
func (*VMNodeScrapeSpec) DeepCopyInto ¶ added in v0.6.0
func (in *VMNodeScrapeSpec) DeepCopyInto(out *VMNodeScrapeSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMNodeScrapeStatus ¶ added in v0.6.0
type VMNodeScrapeStatus struct { }
VMNodeScrapeStatus defines the observed state of VMNodeScrape
func (*VMNodeScrapeStatus) DeepCopy ¶ added in v0.6.0
func (in *VMNodeScrapeStatus) DeepCopy() *VMNodeScrapeStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMNodeScrapeStatus.
func (*VMNodeScrapeStatus) DeepCopyInto ¶ added in v0.6.0
func (in *VMNodeScrapeStatus) DeepCopyInto(out *VMNodeScrapeStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMPodScrape ¶
type VMPodScrape struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec VMPodScrapeSpec `json:"spec,omitempty"` // +optional Status VMPodScrapeStatus `json:"status"` }
VMPodScrape is scrape configuration for pods, it generates vmagent's config for scraping pod targets based on selectors. +operator-sdk:gen-csv:customresourcedefinitions.displayName="VMPodScrape" +kubebuilder:subresource:status +kubebuilder:resource:path=vmpodscrapes,scope=Namespaced +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +genclient
func (*VMPodScrape) AsMapKey ¶ added in v0.18.0
func (cr *VMPodScrape) AsMapKey(i int) string
AsMapKey builds key for cache secret map
func (VMPodScrape) AsProxyKey ¶ added in v0.18.0
func (cr VMPodScrape) AsProxyKey(i int) string
AsProxyKey builds key for proxy cache maps
func (*VMPodScrape) DeepCopy ¶
func (in *VMPodScrape) DeepCopy() *VMPodScrape
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMPodScrape.
func (*VMPodScrape) DeepCopyInto ¶
func (in *VMPodScrape) DeepCopyInto(out *VMPodScrape)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VMPodScrape) DeepCopyObject ¶
func (in *VMPodScrape) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VMPodScrapeList ¶
type VMPodScrapeList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []VMPodScrape `json:"items"` }
VMPodScrapeList contains a list of VMPodScrape
func (*VMPodScrapeList) DeepCopy ¶
func (in *VMPodScrapeList) DeepCopy() *VMPodScrapeList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMPodScrapeList.
func (*VMPodScrapeList) DeepCopyInto ¶
func (in *VMPodScrapeList) DeepCopyInto(out *VMPodScrapeList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VMPodScrapeList) DeepCopyObject ¶
func (in *VMPodScrapeList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VMPodScrapeSpec ¶
type VMPodScrapeSpec struct { // The label to use to retrieve the job name from. // +optional JobLabel string `json:"jobLabel,omitempty"` // PodTargetLabels transfers labels on the Kubernetes Pod onto the target. // +optional PodTargetLabels []string `json:"podTargetLabels,omitempty"` // A list of endpoints allowed as part of this PodMonitor. PodMetricsEndpoints []PodMetricsEndpoint `json:"podMetricsEndpoints"` // Selector to select Pod objects. // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Pod selector" // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:selector:" // +optional Selector metav1.LabelSelector `json:"selector,omitempty"` // Selector to select which namespaces the Endpoints objects are discovered from. // +optional NamespaceSelector NamespaceSelector `json:"namespaceSelector,omitempty"` // SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. // +optional SampleLimit uint64 `json:"sampleLimit,omitempty"` }
VMPodScrapeSpec defines the desired state of VMPodScrape
func (*VMPodScrapeSpec) DeepCopy ¶
func (in *VMPodScrapeSpec) DeepCopy() *VMPodScrapeSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMPodScrapeSpec.
func (*VMPodScrapeSpec) DeepCopyInto ¶
func (in *VMPodScrapeSpec) DeepCopyInto(out *VMPodScrapeSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMPodScrapeStatus ¶
type VMPodScrapeStatus struct { }
VMPodScrapeStatus defines the observed state of VMPodScrape
func (*VMPodScrapeStatus) DeepCopy ¶
func (in *VMPodScrapeStatus) DeepCopy() *VMPodScrapeStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMPodScrapeStatus.
func (*VMPodScrapeStatus) DeepCopyInto ¶
func (in *VMPodScrapeStatus) DeepCopyInto(out *VMPodScrapeStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMProbe ¶ added in v0.2.0
type VMProbe struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec VMProbeSpec `json:"spec"` Status VMProbeStatus `json:"status,omitempty"` }
VMProbe defines a probe for targets, that will be executed with prober, like blackbox exporter.
It helps to monitor reachability of target with various checks. +kubebuilder:object:root=true +kubebuilder:subresource:status
func (VMProbe) AsProxyKey ¶ added in v0.18.0
AsProxyKey builds key for proxy cache maps
func (*VMProbe) DeepCopy ¶ added in v0.2.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMProbe.
func (*VMProbe) DeepCopyInto ¶ added in v0.2.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VMProbe) DeepCopyObject ¶ added in v0.2.0
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VMProbeList ¶ added in v0.2.0
type VMProbeList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []VMProbe `json:"items"` }
+kubebuilder:object:root=true VMProbeList contains a list of VMProbe
func (*VMProbeList) DeepCopy ¶ added in v0.2.0
func (in *VMProbeList) DeepCopy() *VMProbeList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMProbeList.
func (*VMProbeList) DeepCopyInto ¶ added in v0.2.0
func (in *VMProbeList) DeepCopyInto(out *VMProbeList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VMProbeList) DeepCopyObject ¶ added in v0.2.0
func (in *VMProbeList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VMProbeSpec ¶ added in v0.2.0
type VMProbeSpec struct { // The job name assigned to scraped metrics by default. JobName string `json:"jobName,omitempty"` // Specification for the prober to use for probing targets. // The prober.URL parameter is required. Targets cannot be probed if left empty. VMProberSpec VMProberSpec `json:"vmProberSpec"` // The module to use for probing specifying how to probe the target. // Example module configuring in the blackbox exporter: // https://github.com/prometheus/blackbox_exporter/blob/master/example.yml Module string `json:"module,omitempty"` // Targets defines a set of static and/or dynamically discovered targets to be probed using the prober. Targets VMProbeTargets `json:"targets,omitempty"` // Interval at which targets are probed using the configured prober. // If not specified Prometheus' global scrape interval is used. Interval string `json:"interval,omitempty"` // ScrapeInterval is the same as Interval and has priority over it. // one of scrape_interval or interval can be used // +optional ScrapeInterval string `json:"scrape_interval,omitempty"` // Timeout for scraping metrics from the Prometheus exporter. ScrapeTimeout string `json:"scrapeTimeout,omitempty"` // Optional HTTP URL parameters // +optional Params map[string][]string `json:"params,omitempty"` // FollowRedirects controls redirects for scraping. // +optional FollowRedirects *bool `json:"follow_redirects,omitempty"` // SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. // +optional SampleLimit uint64 `json:"sampleLimit,omitempty"` // File to read bearer token for scraping targets. // +optional BearerTokenFile string `json:"bearerTokenFile,omitempty"` // Secret to mount to read bearer token for scraping targets. The secret // needs to be in the same namespace as the service scrape and accessible by // the victoria-metrics operator. // +optional // +nullable BearerTokenSecret *v1.SecretKeySelector `json:"bearerTokenSecret,omitempty"` // BasicAuth allow an endpoint to authenticate over basic authentication // More info: https://prometheus.io/docs/operating/configuration/#endpoints // +optional BasicAuth *BasicAuth `json:"basicAuth,omitempty"` // OAuth2 defines auth configuration // +optional OAuth2 *OAuth2 `json:"oauth2,omitempty"` // TLSConfig configuration to use when scraping the endpoint // +optional TLSConfig *TLSConfig `json:"tlsConfig,omitempty"` // VMScrapeParams defines VictoriaMetrics specific scrape parametrs // +optional VMScrapeParams *VMScrapeParams `json:"vm_scrape_params,omitempty"` }
VMProbeSpec contains specification parameters for a Probe. +k8s:openapi-gen=true
func (*VMProbeSpec) DeepCopy ¶ added in v0.2.0
func (in *VMProbeSpec) DeepCopy() *VMProbeSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMProbeSpec.
func (*VMProbeSpec) DeepCopyInto ¶ added in v0.2.0
func (in *VMProbeSpec) DeepCopyInto(out *VMProbeSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMProbeStatus ¶ added in v0.2.0
type VMProbeStatus struct { }
VMProbeStatus defines the observed state of VMProbe
func (*VMProbeStatus) DeepCopy ¶ added in v0.2.0
func (in *VMProbeStatus) DeepCopy() *VMProbeStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMProbeStatus.
func (*VMProbeStatus) DeepCopyInto ¶ added in v0.2.0
func (in *VMProbeStatus) DeepCopyInto(out *VMProbeStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMProbeTargetStaticConfig ¶ added in v0.2.0
type VMProbeTargetStaticConfig struct { // Targets is a list of URLs to probe using the configured prober. Targets []string `json:"targets"` // Labels assigned to all metrics scraped from the targets. Labels map[string]string `json:"labels,omitempty"` // More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config RelabelConfigs []*RelabelConfig `json:"relabelingConfigs,omitempty"` }
VMProbeTargetStaticConfig defines the set of static targets considered for probing. +k8s:openapi-gen=true
func (*VMProbeTargetStaticConfig) DeepCopy ¶ added in v0.2.0
func (in *VMProbeTargetStaticConfig) DeepCopy() *VMProbeTargetStaticConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMProbeTargetStaticConfig.
func (*VMProbeTargetStaticConfig) DeepCopyInto ¶ added in v0.2.0
func (in *VMProbeTargetStaticConfig) DeepCopyInto(out *VMProbeTargetStaticConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMProbeTargets ¶ added in v0.2.0
type VMProbeTargets struct { // StaticConfig defines static targets which are considers for probing. // More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#static_config. StaticConfig *VMProbeTargetStaticConfig `json:"staticConfig,omitempty"` // Ingress defines the set of dynamically discovered ingress objects which hosts are considered for probing. Ingress *ProbeTargetIngress `json:"ingress,omitempty"` }
VMProbeTargets defines a set of static and dynamically discovered targets for the prober. +k8s:openapi-gen=true
func (*VMProbeTargets) DeepCopy ¶ added in v0.2.0
func (in *VMProbeTargets) DeepCopy() *VMProbeTargets
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMProbeTargets.
func (*VMProbeTargets) DeepCopyInto ¶ added in v0.2.0
func (in *VMProbeTargets) DeepCopyInto(out *VMProbeTargets)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMProberSpec ¶ added in v0.2.0
type VMProberSpec struct { // Mandatory URL of the prober. URL string `json:"url"` // HTTP scheme to use for scraping. // Defaults to `http`. Scheme string `json:"scheme,omitempty"` // Path to collect metrics from. // Defaults to `/probe`. Path string `json:"path,omitempty"` }
VMProberSpec contains specification parameters for the Prober used for probing. +k8s:openapi-gen=true
func (*VMProberSpec) DeepCopy ¶ added in v0.2.0
func (in *VMProberSpec) DeepCopy() *VMProberSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMProberSpec.
func (*VMProberSpec) DeepCopyInto ¶ added in v0.2.0
func (in *VMProberSpec) DeepCopyInto(out *VMProberSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMRule ¶
type VMRule struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec VMRuleSpec `json:"spec"` // +optional Status VMRuleStatus `json:"status,omitempty"` }
VMRule defines rule records for vmalert application +operator-sdk:gen-csv:customresourcedefinitions.displayName="VMRule" +kubebuilder:subresource:status +kubebuilder:resource:path=vmrules,scope=Namespaced +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*VMRule) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMRule.
func (*VMRule) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VMRule) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VMRuleList ¶
type VMRuleList struct { metav1.TypeMeta `json:",inline"` // +optional metav1.ListMeta `json:"metadata,omitempty"` // Items list of VMRule Items []*VMRule `json:"items"` }
VMRuleList contains a list of VMRule
func (*VMRuleList) DeepCopy ¶
func (in *VMRuleList) DeepCopy() *VMRuleList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMRuleList.
func (*VMRuleList) DeepCopyInto ¶
func (in *VMRuleList) DeepCopyInto(out *VMRuleList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VMRuleList) DeepCopyObject ¶
func (in *VMRuleList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VMRuleSpec ¶
type VMRuleSpec struct { // Groups list of group rules Groups []RuleGroup `json:"groups"` }
VMRuleSpec defines the desired state of VMRule
func (*VMRuleSpec) DeepCopy ¶
func (in *VMRuleSpec) DeepCopy() *VMRuleSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMRuleSpec.
func (*VMRuleSpec) DeepCopyInto ¶
func (in *VMRuleSpec) DeepCopyInto(out *VMRuleSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMRuleStatus ¶
type VMRuleStatus struct { }
VMRuleStatus defines the observed state of VMRule
func (*VMRuleStatus) DeepCopy ¶
func (in *VMRuleStatus) DeepCopy() *VMRuleStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMRuleStatus.
func (*VMRuleStatus) DeepCopyInto ¶
func (in *VMRuleStatus) DeepCopyInto(out *VMRuleStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMScrapeParams ¶ added in v0.18.0
type VMScrapeParams struct { // +optional RelabelDebug *bool `json:"relabel_debug,omitempty"` // +optional MetricRelabelDebug *bool `json:"metric_relabel_debug,omitempty"` // +optional DisableCompression *bool `json:"disable_compression,omitempty"` // +optional DisableKeepAlive *bool `json:"disable_keep_alive,omitempty"` // +optional StreamParse *bool `json:"stream_parse,omitempty"` // +optional ScrapeAlignInterval *string `json:"scrape_align_interval,omitempty"` // +optional ScrapeOffset *string `json:"scrape_offset,omitempty"` // ProxyClientConfig configures proxy auth settings for scraping // See feature description https://docs.victoriametrics.com/vmagent.html#scraping-targets-via-a-proxy // +optional ProxyClientConfig *ProxyAuth `json:"proxy_client_config,omitempty"` }
VMScrapeParams defines scrape target configuration that compatible only with VictoriaMetrics scrapers VMAgent and VMSingle
func (*VMScrapeParams) DeepCopy ¶ added in v0.18.0
func (in *VMScrapeParams) DeepCopy() *VMScrapeParams
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMScrapeParams.
func (*VMScrapeParams) DeepCopyInto ¶ added in v0.18.0
func (in *VMScrapeParams) DeepCopyInto(out *VMScrapeParams)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMSelect ¶
type VMSelect struct { // Name is deprecated and will be removed at 0.22.0 release // +deprecated Name string `json:"name,omitempty"` // PodMetadata configures Labels and Annotations which are propagated to the VMSelect pods. PodMetadata *EmbeddedObjectMetadata `json:"podMetadata,omitempty"` // Image - docker image settings for VMSelect // +optional Image Image `json:"image,omitempty"` // Secrets is a list of Secrets in the same namespace as the VMSelect // object, which shall be mounted into the VMSelect Pods. // The Secrets are mounted into /etc/vm/secrets/<secret-name>. // +optional Secrets []string `json:"secrets,omitempty"` // ConfigMaps is a list of ConfigMaps in the same namespace as the VMSelect // object, which shall be mounted into the VMSelect Pods. // The ConfigMaps are mounted into /etc/vm/configs/<configmap-name>. // +optional ConfigMaps []string `json:"configMaps,omitempty"` // LogFormat for VMSelect to be configured with. //default or json // +optional // +kubebuilder:validation:Enum=default;json LogFormat string `json:"logFormat,omitempty"` // LogLevel for VMSelect to be configured with. // +optional // +kubebuilder:validation:Enum=INFO;WARN;ERROR;FATAL;PANIC LogLevel string `json:"logLevel,omitempty"` // ReplicaCount is the expected size of the VMSelect cluster. The controller will // eventually make the size of the running cluster equal to the expected // size. // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Number of pods",xDescriptors="urn:alm:descriptor:com.tectonic.ui:podCount,urn:alm:descriptor:io.kubernetes:custom" ReplicaCount *int32 `json:"replicaCount"` // Volumes allows configuration of additional volumes on the output Deployment definition. // Volumes specified will be appended to other volumes that are generated as a result of // StorageSpec objects. // +optional Volumes []v1.Volume `json:"volumes,omitempty"` // VolumeMounts allows configuration of additional VolumeMounts on the output Deployment definition. // VolumeMounts specified will be appended to other VolumeMounts in the VMSelect container, // that are generated as a result of StorageSpec objects. // +optional VolumeMounts []v1.VolumeMount `json:"volumeMounts,omitempty"` // Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Resources",xDescriptors="urn:alm:descriptor:com.tectonic.ui:resourceRequirements" // +optional Resources v1.ResourceRequirements `json:"resources,omitempty"` // Affinity If specified, the pod's scheduling constraints. // +optional Affinity *v1.Affinity `json:"affinity,omitempty"` // Tolerations If specified, the pod's tolerations. // +optional Tolerations []v1.Toleration `json:"tolerations,omitempty"` // SecurityContext holds pod-level security attributes and common container settings. // This defaults to the default PodSecurityContext. // +optional SecurityContext *v1.PodSecurityContext `json:"securityContext,omitempty"` // Containers property allows to inject additions sidecars or to patch existing containers. // It can be useful for proxies, backup, etc. // +optional Containers []v1.Container `json:"containers,omitempty"` // InitContainers allows adding initContainers to the pod definition. Those can be used to e.g. // fetch secrets for injection into the VMSelect configuration from external sources. Any // errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ // Using initContainers for any use case other then secret fetching is entirely outside the scope // of what the maintainers will support and by doing so, you accept that this behaviour may break // at any time without notice. // +optional InitContainers []v1.Container `json:"initContainers,omitempty"` // Priority class assigned to the Pods // +optional PriorityClassName string `json:"priorityClassName,omitempty"` // HostNetwork controls whether the pod may use the node network namespace // +optional HostNetwork bool `json:"hostNetwork,omitempty"` // DNSPolicy sets DNS policy for the pod // +optional DNSPolicy v1.DNSPolicy `json:"dnsPolicy,omitempty"` // 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/ // +optional TopologySpreadConstraints []v1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"` // CacheMountPath allows to add cache persistent for VMSelect // +optional CacheMountPath string `json:"cacheMountPath,omitempty"` // Storage - add persistent volume for cacheMounthPath // its useful for persistent cache // use storage instead of persistentVolume. // +deprecated // +optional Storage *StorageSpec `json:"persistentVolume,omitempty"` // StorageSpec - add persistent volume claim for cacheMounthPath // its needed for persistent cache // +optional StorageSpec *StorageSpec `json:"storage,omitempty"` // ExtraEnvs that will be added to VMSelect pod // +optional ExtraEnvs []v1.EnvVar `json:"extraEnvs,omitempty"` // +optional ExtraArgs map[string]string `json:"extraArgs,omitempty"` //Port listen port // +optional Port string `json:"port,omitempty"` // SchedulerName - defines kubernetes scheduler name // +optional SchedulerName string `json:"schedulerName,omitempty"` // RuntimeClassName - defines runtime class for kubernetes pod. //https://kubernetes.io/docs/concepts/containers/runtime-class/ // +optional RuntimeClassName *string `json:"runtimeClassName,omitempty"` // ServiceSpec that will be added to vmselect service spec // +optional ServiceSpec *ServiceSpec `json:"serviceSpec,omitempty"` // PodDisruptionBudget created by operator // +optional PodDisruptionBudget *EmbeddedPodDisruptionBudgetSpec `json:"podDisruptionBudget,omitempty"` *EmbeddedProbes `json:",inline"` HPA *EmbeddedHPA `json:"hpa,omitempty"` // NodeSelector Define which Nodes the Pods are scheduled on. // +optional NodeSelector map[string]string `json:"nodeSelector,omitempty"` }
func (VMSelect) BuildPodName ¶ added in v0.20.0
func (*VMSelect) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMSelect.
func (*VMSelect) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (VMSelect) GetCacheMountVolumeName ¶ added in v0.20.0
func (VMSelect) GetNameWithPrefix ¶
type VMServiceScrape ¶
type VMServiceScrape struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec VMServiceScrapeSpec `json:"spec"` Status VMServiceScrapeStatus `json:"status,omitempty"` }
VMServiceScrape is scrape configuration for endpoints associated with kubernetes service, it generates scrape configuration for vmagent based on selectors. result config will scrape service endpoints +operator-sdk:gen-csv:customresourcedefinitions.displayName="VMServiceScrape" +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:subresource:status +kubebuilder:resource:path=vmservicescrapes,scope=Namespaced +genclient
func (VMServiceScrape) AsMapKey ¶ added in v0.18.0
func (cr VMServiceScrape) AsMapKey(i int) string
AsMapKey - returns cr name with suffix for token/auth maps.
func (VMServiceScrape) AsProxyKey ¶ added in v0.18.0
func (cr VMServiceScrape) AsProxyKey(i int) string
AsProxyKey builds key for proxy cache maps
func (*VMServiceScrape) DeepCopy ¶
func (in *VMServiceScrape) DeepCopy() *VMServiceScrape
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMServiceScrape.
func (*VMServiceScrape) DeepCopyInto ¶
func (in *VMServiceScrape) DeepCopyInto(out *VMServiceScrape)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VMServiceScrape) DeepCopyObject ¶
func (in *VMServiceScrape) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VMServiceScrapeList ¶
type VMServiceScrapeList struct { metav1.TypeMeta `json:",inline"` // +optional metav1.ListMeta `json:"metadata,omitempty"` Items []VMServiceScrape `json:"items"` }
VMServiceScrapeList contains a list of VMServiceScrape
func (*VMServiceScrapeList) DeepCopy ¶
func (in *VMServiceScrapeList) DeepCopy() *VMServiceScrapeList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMServiceScrapeList.
func (*VMServiceScrapeList) DeepCopyInto ¶
func (in *VMServiceScrapeList) DeepCopyInto(out *VMServiceScrapeList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VMServiceScrapeList) DeepCopyObject ¶
func (in *VMServiceScrapeList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VMServiceScrapeSpec ¶
type VMServiceScrapeSpec struct { // DiscoveryRole - defines kubernetes_sd role for objects discovery. // by default, its endpoints. // can be changed to service or endpointslices. // note, that with service setting, you have to use port: "name" // and cannot use targetPort for endpoints. // +optional // +kubebuilder:validation:Enum=endpoints;service;endpointslices DiscoveryRole string `json:"discoveryRole,omitempty"` // The label to use to retrieve the job name from. // +optional JobLabel string `json:"jobLabel,omitempty"` // TargetLabels transfers labels on the Kubernetes Service onto the target. // +optional TargetLabels []string `json:"targetLabels,omitempty"` // PodTargetLabels transfers labels on the Kubernetes Pod onto the target. // +optional PodTargetLabels []string `json:"podTargetLabels,omitempty"` // A list of endpoints allowed as part of this ServiceScrape. Endpoints []Endpoint `json:"endpoints"` // Selector to select Endpoints objects by corresponding Service labels. // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Service selector" // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:selector:" // +optional Selector metav1.LabelSelector `json:"selector,omitempty"` // Selector to select which namespaces the Endpoints objects are discovered from. // +optional NamespaceSelector NamespaceSelector `json:"namespaceSelector,omitempty"` // SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. // +optional SampleLimit uint64 `json:"sampleLimit,omitempty"` }
VMServiceScrapeSpec defines the desired state of VMServiceScrape
func (*VMServiceScrapeSpec) DeepCopy ¶
func (in *VMServiceScrapeSpec) DeepCopy() *VMServiceScrapeSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMServiceScrapeSpec.
func (*VMServiceScrapeSpec) DeepCopyInto ¶
func (in *VMServiceScrapeSpec) DeepCopyInto(out *VMServiceScrapeSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMServiceScrapeStatus ¶
type VMServiceScrapeStatus struct { }
VMServiceScrapeStatus defines the observed state of VMServiceScrape
func (*VMServiceScrapeStatus) DeepCopy ¶
func (in *VMServiceScrapeStatus) DeepCopy() *VMServiceScrapeStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMServiceScrapeStatus.
func (*VMServiceScrapeStatus) DeepCopyInto ¶
func (in *VMServiceScrapeStatus) DeepCopyInto(out *VMServiceScrapeStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMSingle ¶
type VMSingle struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec VMSingleSpec `json:"spec,omitempty"` Status VMSingleStatus `json:"status,omitempty"` }
VMSingle is fast, cost-effective and scalable time-series database. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +operator-sdk:gen-csv:customresourcedefinitions.displayName="VMSingle App" +operator-sdk:gen-csv:customresourcedefinitions.resources="Deployment,apps" +operator-sdk:gen-csv:customresourcedefinitions.resources="Service,v1" +operator-sdk:gen-csv:customresourcedefinitions.resources="Secret,v1" +genclient +k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:resource:path=vmsingles,scope=Namespaced
func (VMSingle) Annotations ¶
func (*VMSingle) AsCRDOwner ¶ added in v0.16.0
func (cr *VMSingle) AsCRDOwner() []metav1.OwnerReference
AsCRDOwner implements interface
func (*VMSingle) AsOwner ¶
func (cr *VMSingle) AsOwner() []metav1.OwnerReference
func (*VMSingle) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMSingle.
func (*VMSingle) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VMSingle) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (VMSingle) GetPSPName ¶ added in v0.5.0
func (VMSingle) GetServiceAccountName ¶ added in v0.5.0
func (VMSingle) HealthPath ¶ added in v0.2.1
func (VMSingle) MetricPath ¶ added in v0.2.1
func (VMSingle) PodAnnotations ¶
func (VMSingle) PrefixedName ¶
func (VMSingle) SelectorLabels ¶
func (*VMSingle) SetupWebhookWithManager ¶ added in v0.15.0
func (*VMSingle) ValidateCreate ¶ added in v0.15.0
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*VMSingle) ValidateDelete ¶ added in v0.15.0
ValidateDelete implements webhook.Validator so a webhook will be registered for the type
type VMSingleList ¶
type VMSingleList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []VMSingle `json:"items"` }
VMSingleList contains a list of VMSingle +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*VMSingleList) DeepCopy ¶
func (in *VMSingleList) DeepCopy() *VMSingleList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMSingleList.
func (*VMSingleList) DeepCopyInto ¶
func (in *VMSingleList) DeepCopyInto(out *VMSingleList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VMSingleList) DeepCopyObject ¶
func (in *VMSingleList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VMSingleSpec ¶
type VMSingleSpec struct { // PodMetadata configures Labels and Annotations which are propagated to the VMSingle pods. // +optional PodMetadata *EmbeddedObjectMetadata `json:"podMetadata,omitempty"` // Image - docker image settings for VMSingle // if no specified operator uses default config version // +optional Image Image `json:"image,omitempty"` // ImagePullSecrets An optional list of references to secrets in the same namespace // to use for pulling images from registries // see http://kubernetes.io/docs/user-guide/images#specifying-imagepullsecrets-on-a-pod // +optional ImagePullSecrets []v1.LocalObjectReference `json:"imagePullSecrets,omitempty"` // Secrets is a list of Secrets in the same namespace as the VMSingle // object, which shall be mounted into the VMSingle Pods. // +optional Secrets []string `json:"secrets,omitempty"` // ConfigMaps is a list of ConfigMaps in the same namespace as the VMSingle // object, which shall be mounted into the VMSingle Pods. // +optional ConfigMaps []string `json:"configMaps,omitempty"` // LogLevel for victoria metrics single to be configured with. // +optional // +kubebuilder:validation:Enum=INFO;WARN;ERROR;FATAL;PANIC LogLevel string `json:"logLevel,omitempty"` // LogFormat for VMSingle to be configured with. // +optional // +kubebuilder:validation:Enum=default;json LogFormat string `json:"logFormat,omitempty"` // ReplicaCount is the expected size of the VMSingle // it can be 0 or 1 // if you need more - use vm cluster // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Number of pods",xDescriptors="urn:alm:descriptor:com.tectonic.ui:podCount,urn:alm:descriptor:io.kubernetes:custom" ReplicaCount *int32 `json:"replicaCount,omitempty"` // StorageDataPath disables spec.storage option and overrides arg for victoria-metrics binary --storageDataPath, // its users responsibility to mount proper device into given path. // + optional StorageDataPath string `json:"storageDataPath,omitempty"` // Storage is the definition of how storage will be used by the VMSingle // by default it`s empty dir // +optional Storage *v1.PersistentVolumeClaimSpec `json:"storage,omitempty"` // Volumes allows configuration of additional volumes on the output deploy definition. // Volumes specified will be appended to other volumes that are generated as a result of // StorageSpec objects. // +optional Volumes []v1.Volume `json:"volumes,omitempty"` // VolumeMounts allows configuration of additional VolumeMounts on the output Deployment definition. // VolumeMounts specified will be appended to other VolumeMounts in the VMSingle container, // that are generated as a result of StorageSpec objects. // +optional VolumeMounts []v1.VolumeMount `json:"volumeMounts,omitempty"` // 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 // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Resources",xDescriptors="urn:alm:descriptor:com.tectonic.ui:resourceRequirements" // +optional Resources v1.ResourceRequirements `json:"resources,omitempty"` // Affinity If specified, the pod's scheduling constraints. // +optional Affinity *v1.Affinity `json:"affinity,omitempty"` // Tolerations If specified, the pod's tolerations. // +optional Tolerations []v1.Toleration `json:"tolerations,omitempty"` // SecurityContext holds pod-level security attributes and common container settings. // This defaults to the default PodSecurityContext. // +optional SecurityContext *v1.PodSecurityContext `json:"securityContext,omitempty"` // ServiceAccountName is the name of the ServiceAccount to use to run the // VMSingle Pods. // +optional ServiceAccountName string `json:"serviceAccountName,omitempty"` // SchedulerName - defines kubernetes scheduler name // +optional SchedulerName string `json:"schedulerName,omitempty"` // RuntimeClassName - defines runtime class for kubernetes pod. //https://kubernetes.io/docs/concepts/containers/runtime-class/ // +optional RuntimeClassName *string `json:"runtimeClassName,omitempty"` // PodSecurityPolicyName - defines name for podSecurityPolicy // in case of empty value, prefixedName will be used. // +optional PodSecurityPolicyName string `json:"podSecurityPolicyName,omitempty"` // HostAliases provides mapping for ip and hostname, // that would be propagated to pod, // cannot be used with HostNetwork. // +optional HostAliases []v1.HostAlias `json:"hostAliases,omitempty"` // Containers property allows to inject additions sidecars or to patch existing containers. // It can be useful for proxies, backup, etc. // +optional Containers []v1.Container `json:"containers,omitempty"` // InitContainers allows adding initContainers to the pod definition. Those can be used to e.g. // fetch secrets for injection into the vmSingle configuration from external sources. Any // errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ // Using initContainers for any use case other then secret fetching is entirely outside the scope // of what the maintainers will support and by doing so, you accept that this behaviour may break // at any time without notice. // +optional InitContainers []v1.Container `json:"initContainers,omitempty"` // PriorityClassName assigned to the Pods // +optional PriorityClassName string `json:"priorityClassName,omitempty"` // HostNetwork controls whether the pod may use the node network namespace // +optional HostNetwork bool `json:"hostNetwork,omitempty"` // DNSPolicy sets DNS policy for the pod // +optional DNSPolicy v1.DNSPolicy `json:"dnsPolicy,omitempty"` // 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/ // +optional TopologySpreadConstraints []v1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"` // InsertPorts - additional listen ports for data ingestion. InsertPorts *InsertPorts `json:"insertPorts,omitempty"` //Port listen port // +optional Port string `json:"port,omitempty"` // RemovePvcAfterDelete - if true, controller adds ownership to pvc // and after VMSingle objest deletion - pvc will be garbage collected // by controller manager // +optional RemovePvcAfterDelete bool `json:"removePvcAfterDelete,omitempty"` // RetentionPeriod in months // +kubebuilder:validation:Pattern:="[1-9]+" RetentionPeriod string `json:"retentionPeriod"` // VMBackup configuration for backup // +optional VMBackup *VMBackup `json:"vmBackup,omitempty"` // ExtraArgs that will be passed to VMSingle pod // for example remoteWrite.tmpDataPath: /tmp // +optional ExtraArgs map[string]string `json:"extraArgs,omitempty"` // ExtraEnvs that will be added to VMSingle pod // +optional ExtraEnvs []v1.EnvVar `json:"extraEnvs,omitempty"` // ServiceSpec that will be added to vmsingle service spec // +optional ServiceSpec *ServiceSpec `json:"serviceSpec,omitempty"` // LivenessProbe that will be added to VMSingle pod *EmbeddedProbes `json:",inline"` // NodeSelector Define which Nodes the Pods are scheduled on. // +optional NodeSelector map[string]string `json:"nodeSelector,omitempty"` }
VMSingleSpec defines the desired state of VMSingle +k8s:openapi-gen=true +kubebuilder:printcolumn:name="Version",type="string",JSONPath=".spec.version",description="The version of VMSingle" +kubebuilder:printcolumn:name="RetentionPeriod",type="string",JSONPath=".spec.RetentionPeriod",description="The desired RetentionPeriod for vm single" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"
func (*VMSingleSpec) DeepCopy ¶
func (in *VMSingleSpec) DeepCopy() *VMSingleSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMSingleSpec.
func (*VMSingleSpec) DeepCopyInto ¶
func (in *VMSingleSpec) DeepCopyInto(out *VMSingleSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMSingleStatus ¶
type VMSingleStatus struct { // ReplicaCount Total number of non-terminated pods targeted by this VMAlert // cluster (their labels match the selector). Replicas int32 `json:"replicas"` // UpdatedReplicas Total number of non-terminated pods targeted by this VMAlert // cluster that have the desired version spec. UpdatedReplicas int32 `json:"updatedReplicas"` // AvailableReplicas Total number of available pods (ready for at least minReadySeconds) // targeted by this VMAlert cluster. AvailableReplicas int32 `json:"availableReplicas"` UnavailableReplicas int32 `json:"unavailableReplicas"` }
VMSingleStatus defines the observed state of VMSingle +k8s:openapi-gen=true
func (*VMSingleStatus) DeepCopy ¶
func (in *VMSingleStatus) DeepCopy() *VMSingleStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMSingleStatus.
func (*VMSingleStatus) DeepCopyInto ¶
func (in *VMSingleStatus) DeepCopyInto(out *VMSingleStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMStaticScrape ¶ added in v0.10.0
type VMStaticScrape struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec VMStaticScrapeSpec `json:"spec,omitempty"` Status VMStaticScrapeStatus `json:"status,omitempty"` }
VMStaticScrape defines static targets configuration for scraping.
func (VMStaticScrape) AsMapKey ¶ added in v0.18.0
func (cr VMStaticScrape) AsMapKey(i int) string
AsMapKey builds key for cache secret map
func (VMStaticScrape) AsProxyKey ¶ added in v0.18.0
func (cr VMStaticScrape) AsProxyKey(i int) string
AsProxyKey builds key for proxy cache maps
func (*VMStaticScrape) DeepCopy ¶ added in v0.10.0
func (in *VMStaticScrape) DeepCopy() *VMStaticScrape
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMStaticScrape.
func (*VMStaticScrape) DeepCopyInto ¶ added in v0.10.0
func (in *VMStaticScrape) DeepCopyInto(out *VMStaticScrape)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VMStaticScrape) DeepCopyObject ¶ added in v0.10.0
func (in *VMStaticScrape) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VMStaticScrapeList ¶ added in v0.10.0
type VMStaticScrapeList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []VMStaticScrape `json:"items"` }
VMStaticScrapeList contains a list of VMStaticScrape
func (*VMStaticScrapeList) DeepCopy ¶ added in v0.10.0
func (in *VMStaticScrapeList) DeepCopy() *VMStaticScrapeList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMStaticScrapeList.
func (*VMStaticScrapeList) DeepCopyInto ¶ added in v0.10.0
func (in *VMStaticScrapeList) DeepCopyInto(out *VMStaticScrapeList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VMStaticScrapeList) DeepCopyObject ¶ added in v0.10.0
func (in *VMStaticScrapeList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VMStaticScrapeSpec ¶ added in v0.10.0
type VMStaticScrapeSpec struct { // JobName name of job. JobName string `json:"jobName,omitempty"` // A list of target endpoints to scrape metrics from. TargetEndpoints []*TargetEndpoint `json:"targetEndpoints"` // SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. // +optional SampleLimit uint64 `json:"sampleLimit,omitempty"` }
VMStaticScrapeSpec defines the desired state of VMStaticScrape.
func (*VMStaticScrapeSpec) DeepCopy ¶ added in v0.10.0
func (in *VMStaticScrapeSpec) DeepCopy() *VMStaticScrapeSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMStaticScrapeSpec.
func (*VMStaticScrapeSpec) DeepCopyInto ¶ added in v0.10.0
func (in *VMStaticScrapeSpec) DeepCopyInto(out *VMStaticScrapeSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMStaticScrapeStatus ¶ added in v0.10.0
type VMStaticScrapeStatus struct { }
VMStaticScrapeStatus defines the observed state of VMStaticScrape
func (*VMStaticScrapeStatus) DeepCopy ¶ added in v0.10.0
func (in *VMStaticScrapeStatus) DeepCopy() *VMStaticScrapeStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMStaticScrapeStatus.
func (*VMStaticScrapeStatus) DeepCopyInto ¶ added in v0.10.0
func (in *VMStaticScrapeStatus) DeepCopyInto(out *VMStaticScrapeStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMStorage ¶
type VMStorage struct { // Name is deprecated and will be removed at 0.22.0 release // +deprecated // +optional Name string `json:"name,omitempty"` // PodMetadata configures Labels and Annotations which are propagated to the VMSelect pods. PodMetadata *EmbeddedObjectMetadata `json:"podMetadata,omitempty"` // Image - docker image settings for VMStorage // +optional Image Image `json:"image,omitempty"` // Secrets is a list of Secrets in the same namespace as the VMSelect // object, which shall be mounted into the VMSelect Pods. // The Secrets are mounted into /etc/vm/secrets/<secret-name>. // +optional Secrets []string `json:"secrets,omitempty"` // ConfigMaps is a list of ConfigMaps in the same namespace as the VMSelect // object, which shall be mounted into the VMSelect Pods. // The ConfigMaps are mounted into /etc/vm/configs/<configmap-name>. // +optional ConfigMaps []string `json:"configMaps,omitempty"` // LogFormat for VMSelect to be configured with. //default or json // +optional // +kubebuilder:validation:Enum=default;json LogFormat string `json:"logFormat,omitempty"` // LogLevel for VMSelect to be configured with. // +optional // +kubebuilder:validation:Enum=INFO;WARN;ERROR;FATAL;PANIC LogLevel string `json:"logLevel,omitempty"` // ReplicaCount is the expected size of the VMStorage cluster. The controller will // eventually make the size of the running cluster equal to the expected // size. // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Number of pods",xDescriptors="urn:alm:descriptor:com.tectonic.ui:podCount,urn:alm:descriptor:io.kubernetes:custom" ReplicaCount *int32 `json:"replicaCount"` // Volumes allows configuration of additional volumes on the output Deployment definition. // Volumes specified will be appended to other volumes that are generated as a result of // StorageSpec objects. // +optional Volumes []v1.Volume `json:"volumes,omitempty"` // VolumeMounts allows configuration of additional VolumeMounts on the output Deployment definition. // VolumeMounts specified will be appended to other VolumeMounts in the VMSelect container, // that are generated as a result of StorageSpec objects. // +optional VolumeMounts []v1.VolumeMount `json:"volumeMounts,omitempty"` // Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Resources",xDescriptors="urn:alm:descriptor:com.tectonic.ui:resourceRequirements" // +optional Resources v1.ResourceRequirements `json:"resources,omitempty"` // Affinity If specified, the pod's scheduling constraints. // +optional Affinity *v1.Affinity `json:"affinity,omitempty"` // Tolerations If specified, the pod's tolerations. // +optional Tolerations []v1.Toleration `json:"tolerations,omitempty"` // SecurityContext holds pod-level security attributes and common container settings. // This defaults to the default PodSecurityContext. // +optional SecurityContext *v1.PodSecurityContext `json:"securityContext,omitempty"` // Containers property allows to inject additions sidecars or to patch existing containers. // It can be useful for proxies, backup, etc. // +optional Containers []v1.Container `json:"containers,omitempty"` // InitContainers allows adding initContainers to the pod definition. Those can be used to e.g. // fetch secrets for injection into the VMSelect configuration from external sources. Any // errors during the execution of an initContainer will lead to a restart of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ // Using initContainers for any use case other then secret fetching is entirely outside the scope // of what the maintainers will support and by doing so, you accept that this behaviour may break // at any time without notice. // +optional InitContainers []v1.Container `json:"initContainers,omitempty"` // Priority class assigned to the Pods // +optional PriorityClassName string `json:"priorityClassName,omitempty"` // HostNetwork controls whether the pod may use the node network namespace // +optional HostNetwork bool `json:"hostNetwork,omitempty"` // DNSPolicy sets DNS policy for the pod // +optional DNSPolicy v1.DNSPolicy `json:"dnsPolicy,omitempty"` // 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/ // +optional TopologySpreadConstraints []v1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"` // StorageDataPath - path to storage data // +optional StorageDataPath string `json:"storageDataPath,omitempty"` // Storage - add persistent volume for StorageDataPath // its useful for persistent cache // +optional Storage *StorageSpec `json:"storage,omitempty"` // +optional TerminationGracePeriodSeconds int64 `json:"terminationGracePeriodSeconds,omitempty"` // SchedulerName - defines kubernetes scheduler name // +optional SchedulerName string `json:"schedulerName,omitempty"` // RuntimeClassName - defines runtime class for kubernetes pod. //https://kubernetes.io/docs/concepts/containers/runtime-class/ // +optional RuntimeClassName *string `json:"runtimeClassName,omitempty"` //Port for health check connetions Port string `json:"port,omitempty"` // VMInsertPort for VMInsert connections // +optional VMInsertPort string `json:"vmInsertPort,omitempty"` // VMSelectPort for VMSelect connections // +optional VMSelectPort string `json:"vmSelectPort,omitempty"` // VMBackup configuration for backup // +optional VMBackup *VMBackup `json:"vmBackup,omitempty"` // +optional ExtraArgs map[string]string `json:"extraArgs,omitempty"` // ExtraEnvs that will be added to VMSelect pod // +optional ExtraEnvs []v1.EnvVar `json:"extraEnvs,omitempty"` // ServiceSpec that will be create additional service for vmstorage // +optional ServiceSpec *ServiceSpec `json:"serviceSpec,omitempty"` // PodDisruptionBudget created by operator // +optional PodDisruptionBudget *EmbeddedPodDisruptionBudgetSpec `json:"podDisruptionBudget,omitempty"` *EmbeddedProbes `json:",inline"` // MaintenanceInsertNodeIDs - excludes given node ids from insert requests routing, must contain pod suffixes - for pod-0, id will be 0 and etc. // lets say, you have pod-0, pod-1, pod-2, pod-3. to exclude pod-0 and pod-3 from insert routing, define nodeIDs: [0,3]. // Useful at storage expanding, when you want to rebalance some data at cluster. // +optional MaintenanceInsertNodeIDs []int32 `json:"maintenanceInsertNodeIDs,omitempty"` // MaintenanceInsertNodeIDs - excludes given node ids from select requests routing, must contain pod suffixes - for pod-0, id will be 0 and etc. MaintenanceSelectNodeIDs []int32 `json:"maintenanceSelectNodeIDs,omitempty"` // NodeSelector Define which Nodes the Pods are scheduled on. // +optional NodeSelector map[string]string `json:"nodeSelector,omitempty"` }
func (VMStorage) BuildPodName ¶ added in v0.20.0
func (*VMStorage) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMStorage.
func (*VMStorage) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (VMStorage) GetNameWithPrefix ¶
func (VMStorage) GetStorageVolumeName ¶
type VMUser ¶ added in v0.15.0
type VMUser struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec VMUserSpec `json:"spec,omitempty"` Status VMUserStatus `json:"status,omitempty"` }
VMUser is the Schema for the vmusers API
func (VMUser) Annotations ¶ added in v0.15.0
func (*VMUser) AsOwner ¶ added in v0.15.0
func (cr *VMUser) AsOwner() []metav1.OwnerReference
func (*VMUser) DeepCopy ¶ added in v0.15.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMUser.
func (*VMUser) DeepCopyInto ¶ added in v0.15.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VMUser) DeepCopyObject ¶ added in v0.15.0
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*VMUser) PasswordRefAsKey ¶ added in v0.15.0
PasswordRefAsKey - builds key for passwordRef cache
func (*VMUser) SecretName ¶ added in v0.15.0
SecretName builds secret name for VMUser.
func (VMUser) SelectorLabels ¶ added in v0.15.0
func (*VMUser) SetupWebhookWithManager ¶ added in v0.15.0
func (*VMUser) ValidateCreate ¶ added in v0.15.0
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*VMUser) ValidateDelete ¶ added in v0.15.0
ValidateDelete implements webhook.Validator so a webhook will be registered for the type
type VMUserList ¶ added in v0.15.0
type VMUserList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []VMUser `json:"items"` }
VMUserList contains a list of VMUser
func (*VMUserList) DeepCopy ¶ added in v0.15.0
func (in *VMUserList) DeepCopy() *VMUserList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMUserList.
func (*VMUserList) DeepCopyInto ¶ added in v0.15.0
func (in *VMUserList) DeepCopyInto(out *VMUserList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VMUserList) DeepCopyObject ¶ added in v0.15.0
func (in *VMUserList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VMUserSpec ¶ added in v0.15.0
type VMUserSpec struct { // UserName basic auth user name for accessing protected endpoint, // will be replaced with metadata.name of VMUser if omitted. // +optional UserName *string `json:"username,omitempty"` // Password basic auth password for accessing protected endpoint. // +optional Password *string `json:"password,omitempty"` // PasswordRef allows to fetch password from user-create secret by its name and key. // +optional PasswordRef *v1.SecretKeySelector `json:"passwordRef,omitempty"` // GeneratePassword instructs operator to generate password for user // if spec.password if empty. // +optional GeneratePassword bool `json:"generatePassword,omitempty"` // BearerToken Authorization header value for accessing protected endpoint. // +optional BearerToken *string `json:"bearerToken,omitempty"` // TargetRefs - reference to endpoints, which user may access. TargetRefs []TargetRef `json:"targetRefs"` }
VMUserSpec defines the desired state of VMUser
func (*VMUserSpec) DeepCopy ¶ added in v0.15.0
func (in *VMUserSpec) DeepCopy() *VMUserSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMUserSpec.
func (*VMUserSpec) DeepCopyInto ¶ added in v0.15.0
func (in *VMUserSpec) DeepCopyInto(out *VMUserSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VMUserStatus ¶ added in v0.15.0
type VMUserStatus struct { }
VMUserStatus defines the observed state of VMUser
func (*VMUserStatus) DeepCopy ¶ added in v0.15.0
func (in *VMUserStatus) DeepCopy() *VMUserStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMUserStatus.
func (*VMUserStatus) DeepCopyInto ¶ added in v0.15.0
func (in *VMUserStatus) DeepCopyInto(out *VMUserStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VictorOpsConfig ¶ added in v0.18.0
type VictorOpsConfig struct { // SendResolved controls notify about resolved alerts. // +optional SendResolved *bool `json:"send_resolved,omitempty"` // The secret's key that contains the API key to use when talking to the VictorOps API. // It must be at them same namespace as CRD // +optional APIKey *v1.SecretKeySelector `json:"api_key,omitempty"` // The VictorOps API URL. // +optional APIURL string `json:"api_url,omitempty"` // A key used to map the alert to a team. // +optional RoutingKey string `json:"routing_key"` // Describes the behavior of the alert (CRITICAL, WARNING, INFO). // +optional MessageType string `json:"message_type,omitempty"` // Contains summary of the alerted problem. // +optional EntityDisplayName string `json:"entity_display_name,omitempty"` // Contains long explanation of the alerted problem. // +optional StateMessage string `json:"state_message,omitempty"` // The monitoring tool the state message is from. // +optional MonitoringTool string `json:"monitoring_tool,omitempty"` // Additional custom fields for notification. // +optional CustomFields map[string]string `json:"custom_fields,omitempty"` // The HTTP client's configuration. // +optional HTTPConfig *HTTPConfig `json:"http_config,omitempty"` }
VictorOpsConfig configures notifications via VictorOps. See https://prometheus.io/docs/alerting/latest/configuration/#victorops_config
func (*VictorOpsConfig) DeepCopy ¶ added in v0.18.0
func (in *VictorOpsConfig) DeepCopy() *VictorOpsConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VictorOpsConfig.
func (*VictorOpsConfig) DeepCopyInto ¶ added in v0.18.0
func (in *VictorOpsConfig) DeepCopyInto(out *VictorOpsConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WeChatConfig ¶ added in v0.18.0
type WeChatConfig struct { // SendResolved controls notify about resolved alerts. // +optional SendResolved *bool `json:"send_resolved,omitempty"` // The secret's key that contains the WeChat API key. // The secret needs to be in the same namespace as the AlertmanagerConfig // object and accessible by the Prometheus Operator. // +optional APISecret *v1.SecretKeySelector `json:"api_secret,omitempty"` // The WeChat API URL. // +optional APIURL string `json:"api_url,omitempty"` // The corp id for authentication. // +optional CorpID string `json:"corp_id,omitempty"` // +optional AgentID string `json:"agent_id,omitempty"` // +optional ToUser string `json:"to_user,omitempty"` // +optional ToParty string `json:"to_party,omitempty"` // +optional ToTag string `json:"to_tag,omitempty"` // API request data as defined by the WeChat API. Message string `json:"message,omitempty"` // +optional MessageType string `json:"message_type,omitempty"` // HTTP client configuration. // +optional HTTPConfig *HTTPConfig `json:"http_config,omitempty"` }
WeChatConfig configures notifications via WeChat. See https://prometheus.io/docs/alerting/latest/configuration/#wechat_config
func (*WeChatConfig) DeepCopy ¶ added in v0.18.0
func (in *WeChatConfig) DeepCopy() *WeChatConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WeChatConfig.
func (*WeChatConfig) DeepCopyInto ¶ added in v0.18.0
func (in *WeChatConfig) DeepCopyInto(out *WeChatConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WebhookConfig ¶ added in v0.18.0
type WebhookConfig struct { // SendResolved controls notify about resolved alerts. // +optional SendResolved *bool `json:"send_resolved,omitempty"` // URL to send requests to, // one of `urlSecret` and `url` must be defined. // +optional URL *string `json:"url,omitempty"` // URLSecret defines secret name and key at the CRD namespace. // It must contain the webhook URL. // one of `urlSecret` and `url` must be defined. // +optional URLSecret *v1.SecretKeySelector `json:"url_secret,omitempty"` // HTTP client configuration. // +optional HTTPConfig *HTTPConfig `json:"http_config,omitempty"` // Maximum number of alerts to be sent per webhook message. When 0, all alerts are included. // +optional // +kubebuilder:validation:Minimum=0 MaxAlerts int32 `json:"max_alerts,omitempty"` }
WebhookConfig configures notifications via a generic receiver supporting the webhook payload. See https://prometheus.io/docs/alerting/latest/configuration/#webhook_config
func (*WebhookConfig) DeepCopy ¶ added in v0.18.0
func (in *WebhookConfig) DeepCopy() *WebhookConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebhookConfig.
func (*WebhookConfig) DeepCopyInto ¶ added in v0.18.0
func (in *WebhookConfig) DeepCopyInto(out *WebhookConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
Source Files ¶
- additional.go
- groupversion_info.go
- vmagent_types.go
- vmagent_webhook.go
- vmalert_types.go
- vmalert_webhook.go
- vmalertmanager_types.go
- vmalertmanager_webhook.go
- vmalertmanagerconfig_types.go
- vmalertmanagerconfig_webhook.go
- vmauth_types.go
- vmauth_webhook.go
- vmcluster_types.go
- vmcluster_webhook.go
- vmnodescrape_types.go
- vmpodscrape_types.go
- vmprobe_types.go
- vmrule_types.go
- vmservicescrape_types.go
- vmsingle_types.go
- vmsingle_webhook.go
- vmstaticscrape_types.go
- vmuser_types.go
- vmuser_webhook.go
- zz_generated.deepcopy.go