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 PrefixedName(name, prefix string) string
- type APIServerConfig
- type ArbitraryFSAccessThroughSMsConfig
- type BasicAuth
- type EmbeddedObjectMetadata
- type EmbeddedPersistentVolumeClaim
- type Endpoint
- type Image
- type NamespaceSelector
- type PodMetricsEndpoint
- type ProbeTargetIngress
- type QueueConfig
- type RelabelConfig
- type RemoteWriteSpec
- 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 StorageSpec
- type TLSConfig
- type TLSConfigValidationError
- type VMAgent
- func (cr VMAgent) Annotations() map[string]string
- func (cr *VMAgent) AsOwner() []metav1.OwnerReference
- 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) 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) ReloadPathWithPort(port string) string
- func (cr VMAgent) SelectorLabels() map[string]string
- func (cr VMAgent) TLSAssetName() string
- type VMAgentList
- type VMAgentRemoteWriteSettings
- type VMAgentRemoteWriteSpec
- type VMAgentSpec
- type VMAgentStatus
- type VMAlert
- func (cr VMAlert) Annotations() map[string]string
- func (cr *VMAlert) AsOwner() []metav1.OwnerReference
- func (in *VMAlert) DeepCopy() *VMAlert
- func (in *VMAlert) DeepCopyInto(out *VMAlert)
- func (in *VMAlert) DeepCopyObject() runtime.Object
- 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) SelectorLabels() map[string]string
- func (cr VMAlert) TLSAssetName() string
- 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) AsOwner() []metav1.OwnerReference
- func (in *VMAlertmanager) DeepCopy() *VMAlertmanager
- func (in *VMAlertmanager) DeepCopyInto(out *VMAlertmanager)
- func (in *VMAlertmanager) DeepCopyObject() runtime.Object
- func (cr VMAlertmanager) GetPSPName() string
- func (cr VMAlertmanager) GetServiceAccountName() string
- func (cr VMAlertmanager) Labels() map[string]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
- type VMAlertmanagerList
- type VMAlertmanagerSpec
- type VMAlertmanagerStatus
- type VMBackup
- type VMCluster
- func (cr VMCluster) Annotations() map[string]string
- func (c *VMCluster) AsOwner() []metav1.OwnerReference
- 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) 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 (cr VMCluster) VMInsertPodAnnotations() map[string]string
- func (cr VMCluster) VMInsertPodLabels() map[string]string
- func (cr VMCluster) VMInsertSelectorLabels() map[string]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) VMStoragePodAnnotations() map[string]string
- func (cr VMCluster) VMStoragePodLabels() map[string]string
- func (cr VMCluster) VMStorageSelectorLabels() map[string]string
- 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 VMSelect
- func (s VMSelect) BuildPodFQDNName(baseName string, podIndex int32, namespace, portName, domain string) string
- func (in *VMSelect) DeepCopy() *VMSelect
- func (in *VMSelect) DeepCopyInto(out *VMSelect)
- func (s VMSelect) GetCacheMountVolmeName() 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) AsOwner() []metav1.OwnerReference
- func (in *VMSingle) DeepCopy() *VMSingle
- func (in *VMSingle) DeepCopyInto(out *VMSingle)
- func (in *VMSingle) DeepCopyObject() runtime.Object
- 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
- type VMSingleList
- type VMSingleSpec
- type VMSingleStatus
- type VMStorage
- func (s VMStorage) BuildPodFQDNName(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
Constants ¶
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 PrefixedName ¶
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. // +optional Username v1.SecretKeySelector `json:"username,omitempty"` // The secret in the service scrape namespace that contains the password // for authentication. // +optional Password v1.SecretKeySelector `json:"password,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 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 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"` // Interval at which metrics should be scraped // +optional Interval string `json:"interval,omitempty"` // Timeout after which the scrape is ended // +optional ScrapeTimeout string `json:"scrapeTimeout,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 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"` }
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 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 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.
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"` // Interval at which metrics should be scraped // +optional Interval string `json:"interval,omitempty"` // Timeout after which the scrape is ended // +optional ScrapeTimeout string `json:"scrapeTimeout,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"` }
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 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 RelabelConfig ¶
type RelabelConfig struct { //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"` //Separator placed between concatenated source label values. default is ';'. // +optional Separator string `json:"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"` //Regular expression against which the extracted value is matched. Default is '(.*)' // +optional Regex string `json:"regex,omitempty"` // Modulus to take of the hash of the source label values. // +optional Modulus uint64 `json:"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"` // Action to perform based on regex matching. Default is 'replace' // +optional Action string `json:"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.
type RemoteWriteSpec ¶
type RemoteWriteSpec struct { // The URL of the endpoint to send samples to. URL string `json:"url"` // The name of the remote write queue, must be unique if specified. The // name is used in metrics and logging in order to differentiate queues. // +optional Name string `json:"name,omitempty"` // Timeout for requests to the remote write endpoint. // +optional RemoteTimeout string `json:"remoteTimeout,omitempty"` // The list of remote write relabel configurations. // +optional WriteRelabelConfigs []RelabelConfig `json:"writeRelabelConfigs,omitempty"` //BasicAuth for the URL. // +optional BasicAuth *BasicAuth `json:"basicAuth,omitempty"` // File to read bearer token for remote write. // +optional BearerToken string `json:"bearerToken,omitempty"` // File to read bearer token for remote write. // +optional BearerTokenFile string `json:"bearerTokenFile,omitempty"` // TLSConfig Config to use for remote write. // +optional TLSConfig *TLSConfig `json:"tlsConfig,omitempty"` // Optional ProxyURL // +optional ProxyURL string `json:"proxyURL,omitempty"` // QueueConfig allows tuning of the remote write queue parameters. // +optional QueueConfig *QueueConfig `json:"queueConfig,omitempty"` }
RemoteWriteSpec defines the remote_write configuration. +k8s:openapi-gen=true
func (*RemoteWriteSpec) DeepCopy ¶
func (in *RemoteWriteSpec) DeepCopy() *RemoteWriteSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemoteWriteSpec.
func (*RemoteWriteSpec) DeepCopyInto ¶
func (in *RemoteWriteSpec) DeepCopyInto(out *RemoteWriteSpec)
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"` }
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 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 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) 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) ReloadPathWithPort ¶ added in v0.2.1
func (VMAgent) SelectorLabels ¶
func (VMAgent) TLSAssetName ¶
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"` }
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"` // Optional labels in the form 'name=value' to add to all the metrics before sending them // +optional Labels map[string]string `json:"label,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"` // 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 or alerts when communicating with // external systems (federation, remote storage, etc). // +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"` // ServiceScrapeSelector defines ServiceScrapes to be selected for target discovery. if // if neither PodScrapeNamespaceSelector nor ProbeSelector nor PodScrapeSelector nor NodeScrapeSelector are specified, // configuration is unmanaged. // +optional ServiceScrapeSelector *metav1.LabelSelector `json:"serviceScrapeSelector,omitempty"` // ServiceScrapeNamespaceSelector Namespaces to be selected for ServiceMonitor discovery. If nil, only // check own namespace. // +optional ServiceScrapeNamespaceSelector *metav1.LabelSelector `json:"serviceScrapeNamespaceSelector,omitempty"` // PodScrapeSelector defines PodScrapes to be selected for target discovery. // if neither PodScrapeNamespaceSelector nor ProbeSelector nor PodScrapeSelector nor NodeScrapeSelector are specified, // configuration is unmanaged. // +optional PodScrapeSelector *metav1.LabelSelector `json:"podScrapeSelector,omitempty"` // PodScrapeNamespaceSelector defines Namespaces to be selected for PodMonitor discovery. If nil, only // check own namespace. // +optional PodScrapeNamespaceSelector *metav1.LabelSelector `json:"podScrapeNamespaceSelector,omitempty"` // ProbeSelector defines VMProbe to be selected for target probing. // if neither PodScrapeNamespaceSelector nor ProbeSelector nor PodScrapeSelector nor NodeScrapeSelector are specified, // configuration is unmanaged. // +optional ProbeSelector *metav1.LabelSelector `json:"probeSelector,omitempty"` // ProbeNamespaceSelector defines Namespaces to be selected for VMProbe discovery. If nil, only // check own namespace. // +optional ProbeNamespaceSelector *metav1.LabelSelector `json:"probeNamespaceSelector,omitempty"` // NodeScrapeSelector defines VMNodeScrape to be selected for scraping. // if neither PodScrapeNamespaceSelector nor ProbeSelector nor PodScrapeSelector nor NodeScrapeSelector are specified, // configuration is unmanaged. // +optional NodeScrapeSelector *metav1.LabelSelector `json:"nodeScrapeSelector,omitempty"` // NodeScrapeNamespaceSelector defines Namespaces to be selected for VMNodeScrape discovery. If nil, only // check own namespace. // +optional NodeScrapeNamespaceSelector *metav1.LabelSelector `json:"nodeScrapeNamespaceSelector,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"` // 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"` }
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) 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) 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
AsMapKey - 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) SelectorLabels ¶
func (VMAlert) TLSAssetName ¶ added in v0.1.0
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. Required parameter. E.g. http://127.0.0.1:9093 URL string `json:"url"` // 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"` // RuleSelector selector to select which VMRules to mount for loading alerting // rules from. // +optional RuleSelector *metav1.LabelSelector `json:"ruleSelector,omitempty"` // RuleNamespaceSelector to be selected for VMRules discovery. If unspecified, only // the same namespace as the vmalert object is in is used. // +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 where to write timeseriesbased on active alerts. E.g. http://127.0.0.1:8428 // +optional RemoteWrite *VMAlertRemoteWriteSpec `json:"remoteWrite,omitempty"` // RemoteRead victoria metrics address for loading state // This configuration makes sense only if remoteWrite was configured before and has // been successfully persisted its state. // +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"` }
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) AsOwner ¶
func (cr *VMAlertmanager) AsOwner() []metav1.OwnerReference
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) 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) Labels ¶ added in v0.5.0
func (cr VMAlertmanager) Labels() map[string]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
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 // 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"` }
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 VMBackup ¶ added in v0.1.0
type VMBackup struct { // 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"` // 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"` }
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) AsOwner ¶
func (c *VMCluster) AsOwner() []metav1.OwnerReference
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) VMInsertPodAnnotations ¶
func (VMCluster) VMInsertPodLabels ¶
func (VMCluster) VMInsertSelectorLabels ¶
func (VMCluster) VMSelectPodAnnotations ¶
func (VMCluster) VMSelectPodLabels ¶
func (VMCluster) VMSelectSelectorLabels ¶
func (VMCluster) VMStoragePodAnnotations ¶
func (VMCluster) VMStoragePodLabels ¶
func (VMCluster) VMStorageSelectorLabels ¶
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"` // 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 { UpdateFailCount int `json:"updateFailCount"` 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 { // +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 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"` // +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"` // ExtraEnvs that will be added to VMSelect pod // +optional ExtraEnvs []v1.EnvVar `json:"extraEnvs,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) 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"` // Interval at which metrics should be scraped // +optional Interval string `json:"interval,omitempty"` // Timeout after which the scrape is ended // +optional ScrapeTimeout string `json:"scrapeTimeout,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 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"` }
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) 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:" Selector metav1.LabelSelector `json:"selector"` // 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) 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"` // Timeout for scraping metrics from the Prometheus exporter. ScrapeTimeout string `json:"scrapeTimeout,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"` }
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 VMSelect ¶
type VMSelect struct { 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 // +optional Storage *StorageSpec `json:"persistentVolume,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"` }
func (VMSelect) BuildPodFQDNName ¶
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) GetCacheMountVolmeName ¶
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) 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 { // 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. // +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:" Selector metav1.LabelSelector `json:"selector"` // 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) 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 ¶
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"` // 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"` //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"` }
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 VMStorage ¶
type VMStorage struct { // +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 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"` // 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"` }
func (VMStorage) BuildPodFQDNName ¶
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.