v1

package
v0.63.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 12, 2025 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Overview

Package v1 contains API Schema definitions for the operator v1 API group +kubebuilder:object:generate=true +groupName=operator.victoriametrics.com

Index

Constants

This section is empty.

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "operator.victoriametrics.com", Version: "v1"}

	// 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

	// SchemeGroupVersion is group version used to register these objects
	SchemeGroupVersion = schema.GroupVersion{Group: "operator.victoriametrics.com", Version: "v1"}
)

Functions

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type FieldsListString

type FieldsListString string

FieldsListString represents list of json encoded strings ["field"] or ["field1","field2"]

func (*FieldsListString) UnmarshalJSON

func (sf *FieldsListString) UnmarshalJSON(src []byte) error

UnmarshalJSON implements json.Unmarshaller interface

type OAuth2 added in v0.61.0

type OAuth2 struct {
	// ClientIDSecret defines secret or configmap containing the OAuth2 client id
	// +optional
	ClientIDSecret *corev1.SecretKeySelector `json:"clientIDSecret,omitempty"`
	// ClientIDFile defines path to pre-mounted OAuth2 client id
	// +optional
	ClientIDFile string `json:"clientIDFile,omitempty"`
	// The secret containing the OAuth2 client secret
	// +optional
	ClientSecret *corev1.SecretKeySelector `json:"clientSecret,omitempty"`
	// ClientSecretFile defines path to pre-mounted OAuth2 client secret
	// +optional
	ClientSecretFile string `json:"clientSecretFile,omitempty"`
	// TokenURL defines URL to fetch the token from
	// +kubebuilder:validation:MinLength=1
	// +required
	TokenURL string `json:"tokenURL"`
	// Scopes used for the token request
	// +optional
	Scopes []string `json:"scopes,omitempty"`
	// EndpointParams to append to the token URL
	// +optional
	EndpointParams map[string]string `json:"endpointParams,omitempty"`
}

OAuth2 defines OAuth2 configuration parameters with optional references to secrets with corresponding sensitive values

func (*OAuth2) DeepCopy added in v0.61.0

func (in *OAuth2) DeepCopy() *OAuth2

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OAuth2.

func (*OAuth2) DeepCopyInto added in v0.61.0

func (in *OAuth2) DeepCopyInto(out *OAuth2)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OAuth2) Validate added in v0.61.0

func (o *OAuth2) Validate() error

Validate performs syntax

type SyslogServerSpec

type SyslogServerSpec struct {
	// TCPListeners defines syslog server TCP listener configuration
	TCPListeners []*SyslogTCPListener `json:"tcpListeners,omitempty"`
	// UDPListeners defines syslog server UDP listener configuration
	UDPListeners []*SyslogUDPListener `json:"udpListeners,omitempty"`
}

SyslogServerSpec defines syslog servers configuration

func (*SyslogServerSpec) DeepCopy

func (in *SyslogServerSpec) DeepCopy() *SyslogServerSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyslogServerSpec.

func (*SyslogServerSpec) DeepCopyInto

func (in *SyslogServerSpec) DeepCopyInto(out *SyslogServerSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SyslogTCPListener

type SyslogTCPListener struct {
	// ListenPort defines listen port
	ListenPort int32 `json:"listenPort"`
	// StreamFields to use as log stream labels
	// see https://docs.victoriametrics.com/victorialogs/data-ingestion/syslog/#stream-fields
	// +optional
	StreamFields FieldsListString `json:"streamFields,omitempty"`
	// IgnoreFields to ignore at logs
	// see https://docs.victoriametrics.com/victorialogs/data-ingestion/syslog/#dropping-fields
	// +optional
	IgnoreFields FieldsListString `json:"ignoreFields,omitempty"`
	// DecolorizeFields to remove ANSI color codes across logs
	// see https://docs.victoriametrics.com/victorialogs/data-ingestion/syslog/#decolorizing-fields
	// +optional
	DecolorizeFields FieldsListString `json:"decolorizeFields,omitempty"`
	// TenantID for logs ingested in form of accountID:projectID
	// see https://docs.victoriametrics.com/victorialogs/data-ingestion/syslog/#multiple-configs
	// +optional
	TenantID string `json:"tenantID,omitempty"`
	// CompressMethod for syslog messages
	// see https://docs.victoriametrics.com/victorialogs/data-ingestion/syslog/#compression
	// +kubebuilder:validation:Pattern:="^(none|zstd|gzip|deflate)$"
	// +optional
	CompressMethod string `json:"compressMethod,omitempty"`
	// +optional
	TLSConfig *TLSServerConfig `json:"tlsConfig,omitempty"`
}

SyslogTCPListener defines configuration for TCP syslog server listen

func (*SyslogTCPListener) DeepCopy

func (in *SyslogTCPListener) DeepCopy() *SyslogTCPListener

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyslogTCPListener.

func (*SyslogTCPListener) DeepCopyInto

func (in *SyslogTCPListener) DeepCopyInto(out *SyslogTCPListener)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SyslogUDPListener

type SyslogUDPListener struct {
	// ListenPort defines listen port
	ListenPort int32 `json:"listenPort"`
	// StreamFields to use as log stream labels
	// see https://docs.victoriametrics.com/victorialogs/data-ingestion/syslog/#stream-fields
	// +optional
	StreamFields FieldsListString `json:"streamFields,omitempty"`
	// IgnoreFields to ignore at logs
	// see https://docs.victoriametrics.com/victorialogs/data-ingestion/syslog/#dropping-fields
	// +optional
	IgnoreFields FieldsListString `json:"ignoreFields,omitempty"`
	// DecolorizeFields to remove ANSI color codes across logs
	// see https://docs.victoriametrics.com/victorialogs/data-ingestion/syslog/#decolorizing-fields
	// +optional
	DecolorizeFields FieldsListString `json:"decolorizeFields,omitempty"`
	// TenantID for logs ingested in form of accountID:projectID
	// see https://docs.victoriametrics.com/victorialogs/data-ingestion/syslog/#multiple-configs
	// +optional
	TenantID string `json:"tenantID,omitempty"`
	// CompressMethod for syslog messages
	// see https://docs.victoriametrics.com/victorialogs/data-ingestion/syslog/#compression
	// +kubebuilder:validation:Pattern:="^(none|zstd|gzip|deflate)$"
	// +optional
	CompressMethod string `json:"compressMethod,omitempty"`
}

SyslogUDPListener defines configuration for UDP syslog server listen

func (*SyslogUDPListener) DeepCopy

func (in *SyslogUDPListener) DeepCopy() *SyslogUDPListener

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyslogUDPListener.

func (*SyslogUDPListener) DeepCopyInto

func (in *SyslogUDPListener) DeepCopyInto(out *SyslogUDPListener)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TLSConfig added in v0.61.0

type TLSConfig struct {
	// CASecret defines secret reference with tls CA key by given key
	// +optional
	CASecret *corev1.SecretKeySelector `json:"caSecretKeyRef,omitempty"`
	// CAFile defines path to the pre-mounted file with TLS ca certificate
	// +optional
	CAFile string `json:"caFile,omitempty"`
	// CertSecret defines secret reference with TLS cert by given key
	// mutually exclusive with CASecret
	// +optional
	CertSecret *corev1.SecretKeySelector `json:"certSecretKeyRef,omitempty"`
	// CertFile defines path to the pre-mounted file with TLS certificate
	// mutually exclusive with CertSecret
	// +optional
	CertFile string `json:"certFile,omitempty"`
	// CertSecret defines secret reference with TLS key by given key
	// +optional
	KeySecret *corev1.SecretKeySelector `json:"keySecretKeyRef,omitempty" yaml:"-"`
	// KeyFile defines path to the pre-mounted file with TLS cert key
	// mutually exclusive with CertSecret
	// +optional
	KeyFile string `json:"keyFile,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 TLS configuration parameters with optional references to secrets with corresponding sensitive values

func (*TLSConfig) DeepCopy added in v0.61.0

func (in *TLSConfig) DeepCopy() *TLSConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSConfig.

func (*TLSConfig) DeepCopyInto added in v0.61.0

func (in *TLSConfig) DeepCopyInto(out *TLSConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TLSConfig) Validate added in v0.61.0

func (t *TLSConfig) Validate() error

Validate performs syntax

type TLSServerConfig

type TLSServerConfig struct {
	// CertSecretRef defines reference for secret with certificate content under given key
	// mutually exclusive with CertFile
	// +optional
	CertSecret *corev1.SecretKeySelector `json:"certSecret,omitempty"`
	// CertFile defines path to the pre-mounted file with certificate
	// mutually exclusive with CertSecret
	// +optional
	CertFile string `json:"certFile,omitempty"`
	// Key defines reference for secret with certificate key content under given key
	// mutually exclusive with KeyFile
	// +optional
	KeySecret *corev1.SecretKeySelector `json:"keySecret,omitempty"`
	// KeyFile defines path to the pre-mounted file with certificate key
	// mutually exclusive with KeySecretRef
	// +optional
	KeyFile string `json:"keyFile,omitempty"`
}

TLSServerConfig defines VictoriaMetrics TLS configuration for the application's server

func (*TLSServerConfig) DeepCopy

func (in *TLSServerConfig) DeepCopy() *TLSServerConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSServerConfig.

func (*TLSServerConfig) DeepCopyInto

func (in *TLSServerConfig) DeepCopyInto(out *TLSServerConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VLAgent added in v0.61.0

type VLAgent struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec VLAgentSpec `json:"spec,omitempty"`
	// ParsedLastAppliedSpec contains last-applied configuration spec
	ParsedLastAppliedSpec *VLAgentSpec `json:"-" yaml:"-"`

	Status VLAgentStatus `json:"status,omitempty"`
}

VLAgent - is a tiny but brave agent, which helps you collect logs from various sources and stores them in VictoriaLogs. +operator-sdk:gen-csv:customresourcedefinitions.displayName="VLAgent 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:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:path=vlagents,scope=Namespaced +kubebuilder:subresource:scale:specpath=.spec.shardCount,statuspath=.status.shards,selectorpath=.status.selector +kubebuilder:printcolumn:name="Replica Count",type="integer",JSONPath=".status.replicas",description="current number of replicas" +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.updateStatus",description="Current status of update rollout" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"

func (*VLAgent) AllLabels added in v0.61.0

func (cr *VLAgent) AllLabels() map[string]string

AllLabels returns global labels for all vlagent related resources

func (*VLAgent) AnnotationsFiltered added in v0.61.0

func (cr *VLAgent) AnnotationsFiltered() map[string]string

AnnotationsFiltered implements build.builderOpts interface

func (*VLAgent) AsOwner added in v0.61.0

func (cr *VLAgent) AsOwner() []metav1.OwnerReference

AsOwner returns owner references with current object as owner

func (*VLAgent) AsURL added in v0.61.0

func (cr *VLAgent) AsURL() string

AsURL - returns url for http access

func (*VLAgent) DeepCopy added in v0.61.0

func (in *VLAgent) DeepCopy() *VLAgent

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VLAgent.

func (*VLAgent) DeepCopyInto added in v0.61.0

func (in *VLAgent) DeepCopyInto(out *VLAgent)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VLAgent) DeepCopyObject added in v0.61.0

func (in *VLAgent) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*VLAgent) DefaultStatusFields added in v0.61.0

func (cr *VLAgent) DefaultStatusFields(vs *VLAgentStatus)

DefaultStatusFields implements reconcile.ObjectWithDeepCopyAndStatus interface

func (*VLAgent) GetAdditionalService added in v0.61.0

func (cr *VLAgent) GetAdditionalService() *vmv1beta1.AdditionalServiceSpec

GetAdditionalService returns AdditionalServiceSpec settings

func (*VLAgent) GetExtraArgs added in v0.61.0

func (cr *VLAgent) GetExtraArgs() map[string]string

ExtraArgs returns additionally configured command-line arguments

func (*VLAgent) GetMetricPath added in v0.61.0

func (cr *VLAgent) GetMetricPath() string

GetMetricPath returns prefixed path for metric requests

func (*VLAgent) GetServiceAccountName added in v0.61.0

func (cr *VLAgent) GetServiceAccountName() string

GetServiceAccountName returns ServiceAccount for resource

func (*VLAgent) GetServiceScrape added in v0.61.0

func (cr *VLAgent) GetServiceScrape() *vmv1beta1.VMServiceScrapeSpec

ServiceScrape returns overrides for serviceScrape builder

func (*VLAgent) GetStatus added in v0.61.0

func (cr *VLAgent) GetStatus() *VLAgentStatus

GetStatus implements reconcile.ObjectWithDeepCopyAndStatus interface

func (*VLAgent) HasSpecChanges added in v0.61.0

func (cr *VLAgent) HasSpecChanges() (bool, error)

HasSpecChanges compares spec with last applied cluster spec stored in annotation

func (*VLAgent) HealthPath added in v0.61.0

func (cr *VLAgent) HealthPath() string

HealthPath returns path for health requests

func (*VLAgent) IsOwnsServiceAccount added in v0.61.0

func (cr *VLAgent) IsOwnsServiceAccount() bool

IsOwnsServiceAccount implements build.objectForServiceAccountBuilder

func (*VLAgent) LastAppliedSpecAsPatch added in v0.61.0

func (cr *VLAgent) LastAppliedSpecAsPatch() (client.Patch, error)

LastAppliedSpecAsPatch return last applied cluster spec as patch annotation

func (*VLAgent) Paused added in v0.61.0

func (cr *VLAgent) Paused() bool

Paused checks if resource reconcile should be paused

func (*VLAgent) PodAnnotations added in v0.61.0

func (cr *VLAgent) PodAnnotations() map[string]string

PodAnnotations returns pod metadata annotations

func (*VLAgent) PodLabels added in v0.61.0

func (cr *VLAgent) PodLabels() map[string]string

PodLabels returns labels for pod metadata

func (*VLAgent) PrefixedName added in v0.61.0

func (cr *VLAgent) PrefixedName() string

PrefixedName returns name of resource with fixed prefix

func (*VLAgent) Probe added in v0.61.0

func (cr *VLAgent) Probe() *vmv1beta1.EmbeddedProbes

Probe implements build.probeCRD interface

func (*VLAgent) ProbeNeedLiveness added in v0.61.0

func (*VLAgent) ProbeNeedLiveness() bool

ProbeNeedLiveness implements build.probeCRD interface

func (*VLAgent) ProbePath added in v0.61.0

func (cr *VLAgent) ProbePath() string

ProbePath implements build.probeCRD interface

func (*VLAgent) ProbePort added in v0.61.0

func (cr *VLAgent) ProbePort() string

ProbePort implements build.probeCRD interface

func (*VLAgent) ProbeScheme added in v0.61.0

func (cr *VLAgent) ProbeScheme() string

ProbeScheme implements build.probeCRD interface

func (*VLAgent) SelectorLabels added in v0.61.0

func (cr *VLAgent) SelectorLabels() map[string]string

SelectorLabels returns selector labels for querying any vlagent related resources

func (*VLAgent) SetLastSpec added in v0.61.0

func (cr *VLAgent) SetLastSpec(prevSpec VLAgentSpec)

SetLastSpec implements objectWithLastAppliedState interface

func (*VLAgent) UnmarshalJSON added in v0.61.0

func (cr *VLAgent) UnmarshalJSON(src []byte) error

UnmarshalJSON implements json.Unmarshaler interface

func (*VLAgent) Validate added in v0.61.0

func (cr *VLAgent) Validate() error

Validate performs syntax validation

type VLAgentList added in v0.61.0

type VLAgentList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []VLAgent `json:"items"`
}

VLAgentList contains a list of VLAgent +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*VLAgentList) DeepCopy added in v0.61.0

func (in *VLAgentList) DeepCopy() *VLAgentList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VLAgentList.

func (*VLAgentList) DeepCopyInto added in v0.61.0

func (in *VLAgentList) DeepCopyInto(out *VLAgentList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VLAgentList) DeepCopyObject added in v0.61.0

func (in *VLAgentList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type VLAgentRemoteWriteSettings added in v0.61.0

type VLAgentRemoteWriteSettings struct {
	// The maximum size of unpacked request to send to remote storage
	// +optional
	// +kubebuilder:validation:Schemaless
	// +kubebuilder:pruning:PreserveUnknownFields
	MaxBlockSize *vmv1beta1.BytesString `json:"maxBlockSize,omitempty"`

	// The maximum file-based buffer size in bytes at -remoteWrite.tmpDataPath
	// +optional
	// +kubebuilder:validation:Schemaless
	// +kubebuilder:pruning:PreserveUnknownFields
	MaxDiskUsagePerURL *vmv1beta1.BytesString `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 /vlagent_pq/vlagent-remotewrite-data)
	// If defined, operator ignores spec.storage field and skips adding volume and volumeMount for pq
	// +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"`
}

VLAgentRemoteWriteSettings - defines global settings for all remoteWrite urls.

func (*VLAgentRemoteWriteSettings) DeepCopy added in v0.61.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VLAgentRemoteWriteSettings.

func (*VLAgentRemoteWriteSettings) DeepCopyInto added in v0.61.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VLAgentRemoteWriteSpec added in v0.61.0

type VLAgentRemoteWriteSpec struct {
	// URL of the endpoint to send samples to.
	URL string `json:"url"`
	// Optional bearer auth token to use for -remoteWrite.url
	// +optional
	BearerTokenSecret *corev1.SecretKeySelector `json:"bearerTokenSecret,omitempty"`
	// Optional bearer auth token to use for -remoteWrite.url
	// +optional
	BearerTokenPath string `json:"bearerTokenPath,omitempty"`
	// OAuth2 defines auth configuration
	// +optional
	OAuth2 *OAuth2 `json:"oauth2,omitempty"`
	// TLSConfig describes tls configuration for remote write target
	// +optional
	TLSConfig *TLSConfig `json:"tlsConfig,omitempty"`
	// Timeout for sending a single block of data to -remoteWrite.url (default 1m0s)
	// +optional
	// +kubebuilder:validation:Pattern:="[0-9]+(ms|s|m|h)"
	SendTimeout *string `json:"sendTimeout,omitempty"`
	// Headers allow configuring custom http headers
	// Must be in form of semicolon separated header with value
	// e.g.
	// headerName: headerValue
	// +optional
	Headers []string `json:"headers,omitempty"`
	// MaxDiskUsage defines the maximum file-based buffer size in bytes for the given remoteWrite
	// It overrides global configuration defined at remoteWriteSettings.maxDiskUsagePerURL
	// +optional
	// +kubebuilder:validation:Schemaless
	// +kubebuilder:pruning:PreserveUnknownFields
	MaxDiskUsage *vmv1beta1.BytesString `json:"maxDiskUsage,omitempty"`
	// ProxyURL for -remoteWrite.url. Supported proxies: http, https, socks5. Example: socks5://proxy:1234
	// +optional
	ProxyURL *string `json:"proxyURL,omitempty"`
}

VLAgentRemoteWriteSpec defines the remote storage configuration for VmAgent +k8s:openapi-gen=true

func (*VLAgentRemoteWriteSpec) DeepCopy added in v0.61.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VLAgentRemoteWriteSpec.

func (*VLAgentRemoteWriteSpec) DeepCopyInto added in v0.61.0

func (in *VLAgentRemoteWriteSpec) DeepCopyInto(out *VLAgentRemoteWriteSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VLAgentSpec added in v0.61.0

type VLAgentSpec struct {
	// ParsingError contents error with context if operator was failed to parse json object from kubernetes api server
	ParsingError string `json:"-" yaml:"-"`
	// PodMetadata configures Labels and Annotations which are propagated to the vlagent pods.
	// +optional
	PodMetadata *vmv1beta1.EmbeddedObjectMetadata `json:"podMetadata,omitempty"`
	// ManagedMetadata defines metadata that will be added to the all objects
	// created by operator for the given CustomResource
	ManagedMetadata *vmv1beta1.ManagedObjectsMetadata `json:"managedMetadata,omitempty"`
	// LogLevel for VLAgent 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 VLAgent to be configured with.
	// +optional
	// +kubebuilder:validation:Enum=default;json
	LogFormat string `json:"logFormat,omitempty"`

	// RemoteWrite list of victoria logs endpoints
	// for victorialogs it must looks like: http://victoria-logs-single:9428/
	// or for cluster different url
	// https://docs.victoriametrics.com/victorialogs/vlagent/#replication-and-high-availability
	RemoteWrite []VLAgentRemoteWriteSpec `json:"remoteWrite"`
	// RemoteWriteSettings defines global settings for all remoteWrite urls.
	// +optional
	RemoteWriteSettings *VLAgentRemoteWriteSettings `json:"remoteWriteSettings,omitempty"`

	// ServiceSpec that will be added to vlagent service spec
	// +optional
	ServiceSpec *vmv1beta1.AdditionalServiceSpec `json:"serviceSpec,omitempty"`
	// ServiceScrapeSpec that will be added to vlagent VMServiceScrape spec
	// +optional
	ServiceScrapeSpec *vmv1beta1.VMServiceScrapeSpec `json:"serviceScrapeSpec,omitempty"`

	// PodDisruptionBudget created by operator
	// +optional
	PodDisruptionBudget *vmv1beta1.EmbeddedPodDisruptionBudgetSpec `json:"podDisruptionBudget,omitempty"`
	// StatefulStorage configures storage for StatefulSet
	// +optional
	Storage *vmv1beta1.StorageSpec `json:"storage,omitempty"`
	// StatefulRollingUpdateStrategy allows configuration for strategyType
	// set it to RollingUpdate for disabling operator statefulSet rollingUpdate
	// +optional
	RollingUpdateStrategy appsv1.StatefulSetUpdateStrategyType `json:"rollingUpdateStrategy,omitempty"`
	// PersistentVolumeClaimRetentionPolicy allows configuration of PVC retention policy
	// +optional
	PersistentVolumeClaimRetentionPolicy *appsv1.StatefulSetPersistentVolumeClaimRetentionPolicy `json:"persistentVolumeClaimRetentionPolicy,omitempty"`

	// ClaimTemplates allows adding additional VolumeClaimTemplates for VLAgent in Mode: StatefulSet
	ClaimTemplates []corev1.PersistentVolumeClaim `json:"claimTemplates,omitempty"`

	// SyslogSpec defines syslog listener configuration
	// +optional
	SyslogSpec *SyslogServerSpec `json:"syslogSpec,omitempty"`

	// ServiceAccountName is the name of the ServiceAccount to use to run the pods
	// +optional
	ServiceAccountName string `json:"serviceAccountName,omitempty"`

	*vmv1beta1.EmbeddedProbes                   `json:",inline"`
	vmv1beta1.CommonDefaultableParams           `json:",inline,omitempty"`
	vmv1beta1.CommonApplicationDeploymentParams `json:",inline,omitempty"`
}

VLAgentSpec defines the desired state of VLAgent +k8s:openapi-gen=true

func (*VLAgentSpec) DeepCopy added in v0.61.0

func (in *VLAgentSpec) DeepCopy() *VLAgentSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VLAgentSpec.

func (*VLAgentSpec) DeepCopyInto added in v0.61.0

func (in *VLAgentSpec) DeepCopyInto(out *VLAgentSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VLAgentSpec) UnmarshalJSON added in v0.61.0

func (cr *VLAgentSpec) UnmarshalJSON(src []byte) error

UnmarshalJSON implements json.Unmarshaler interface

type VLAgentStatus added in v0.61.0

type VLAgentStatus struct {
	// Selector string form of label value set for autoscaling
	Selector string `json:"selector,omitempty"`
	// ReplicaCount Total number of pods targeted by this VLAgent
	Replicas                 int32 `json:"replicas,omitempty"`
	vmv1beta1.StatusMetadata `json:",inline"`
}

VLAgentStatus defines the observed state of VLAgent +k8s:openapi-gen=true

func (*VLAgentStatus) DeepCopy added in v0.61.0

func (in *VLAgentStatus) DeepCopy() *VLAgentStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VLAgentStatus.

func (*VLAgentStatus) DeepCopyInto added in v0.61.0

func (in *VLAgentStatus) DeepCopyInto(out *VLAgentStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VLAgentStatus) GetStatusMetadata added in v0.61.0

func (cr *VLAgentStatus) GetStatusMetadata() *vmv1beta1.StatusMetadata

GetStatusMetadata returns metadata for object status

type VLCluster

type VLCluster struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   VLClusterSpec   `json:"spec,omitempty"`
	Status VLClusterStatus `json:"status,omitempty"`
	// ParsedLastAppliedSpec contains last-applied configuration spec
	ParsedLastAppliedSpec *VLClusterSpec `json:"-" yaml:"-"`
}

VLCluster is fast, cost-effective and scalable logs database. +kubebuilder:printcolumn:name="Insert Count",type="string",JSONPath=".spec.vlinsert.replicaCount",description="replicas of VLInsert" +kubebuilder:printcolumn:name="Storage Count",type="string",JSONPath=".spec.vlstorage.replicaCount",description="replicas of VLStorage" +kubebuilder:printcolumn:name="Select Count",type="string",JSONPath=".spec.vlselect.replicaCount",description="replicas of VLSelect" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.updateStatus",description="Current status of cluster" +genclient

func (*VLCluster) AnnotationsFiltered

func (cr *VLCluster) AnnotationsFiltered() map[string]string

AnnotationsFiltered implements finalize.crdObject interface

func (*VLCluster) AsOwner

func (cr *VLCluster) AsOwner() []metav1.OwnerReference

AsOwner returns owner references with current object as owner

func (*VLCluster) AsURL

func (cr *VLCluster) AsURL() string

AsURL implements stub for interface.

func (*VLCluster) AvailableStorageNodeIDs

func (cr *VLCluster) AvailableStorageNodeIDs(requestsType string) []int32

AvailableStorageNodeIDs returns ids of the storage nodes for the provided component

func (*VLCluster) DeepCopy

func (in *VLCluster) DeepCopy() *VLCluster

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VLCluster.

func (*VLCluster) DeepCopyInto

func (in *VLCluster) DeepCopyInto(out *VLCluster)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VLCluster) DeepCopyObject

func (in *VLCluster) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*VLCluster) DefaultStatusFields

func (cr *VLCluster) DefaultStatusFields(vs *VLClusterStatus)

DefaultStatusFields implements reconcile.ObjectWithDeepCopyAndStatus interface

func (*VLCluster) FinalAnnotations

func (cr *VLCluster) FinalAnnotations() map[string]string

FinalAnnotations returns global annotations to be applied by objects generate for vlcluster

func (*VLCluster) FinalLabels

func (cr *VLCluster) FinalLabels(selectorLabels map[string]string) map[string]string

FinalLabels adds cluster labels to the base labels and filters by prefix if needed

func (*VLCluster) GetServiceAccountName

func (cr *VLCluster) GetServiceAccountName() string

GetServiceAccountName returns service account name for all vlcluster components

func (*VLCluster) GetStatus

func (cr *VLCluster) GetStatus() *VLClusterStatus

GetStatus implements reconcile.ObjectWithDeepCopyAndStatus interface

func (*VLCluster) GetVLInsertLBName

func (cr *VLCluster) GetVLInsertLBName() string

GetVLInsertLBName returns headless proxy service name for insert component

func (*VLCluster) GetVLInsertName

func (cr *VLCluster) GetVLInsertName() string

GetVLInsertName returns insert component name

func (*VLCluster) GetVLSelectLBName

func (cr *VLCluster) GetVLSelectLBName() string

GetVLSelectLBName returns headless proxy service name for select component

func (*VLCluster) GetVLSelectName

func (cr *VLCluster) GetVLSelectName() string

GetLVSelectName returns select component name

func (*VLCluster) GetVLStorageName

func (cr *VLCluster) GetVLStorageName() string

GetVLStorageName returns select component name

func (*VLCluster) GetVMAuthLBName

func (cr *VLCluster) GetVMAuthLBName() string

GetVMAuthLBName returns prefixed name for the loadbalancer components

func (*VLCluster) HasSpecChanges

func (cr *VLCluster) HasSpecChanges() (bool, error)

HasSpecChanges compares cluster spec with last applied cluster spec stored in annotation

func (*VLCluster) InsertURL

func (cr *VLCluster) InsertURL() string

InsertURL returns url to access VLInsert component

func (*VLCluster) IsOwnsServiceAccount

func (cr *VLCluster) IsOwnsServiceAccount() bool

func (*VLCluster) LastAppliedSpecAsPatch

func (cr *VLCluster) LastAppliedSpecAsPatch() (client.Patch, error)

LastAppliedSpecAsPatch return last applied cluster spec as patch annotation

func (*VLCluster) Paused

func (cr *VLCluster) Paused() bool

func (*VLCluster) PrefixedName

func (cr *VLCluster) PrefixedName() string

PrefixedName format name of the component with hard-coded prefix

func (*VLCluster) SelectURL

func (cr *VLCluster) SelectURL() string

SelectURL returns url to access VLSelect component

func (*VLCluster) SelectorLabels

func (cr *VLCluster) SelectorLabels() map[string]string

SelectorLabels defines labels for objects generated used by all cluster components

func (*VLCluster) SetLastSpec

func (cr *VLCluster) SetLastSpec(prevSpec VLClusterSpec)

SetLastSpec implements objectWithLastAppliedState interface

func (*VLCluster) StorageURL

func (cr *VLCluster) StorageURL() string

StorageURL returns url to access VLStorage component

func (*VLCluster) UnmarshalJSON

func (cr *VLCluster) UnmarshalJSON(src []byte) error

UnmarshalJSON implements json.Unmarshaler interface

func (*VLCluster) VLInsertPodAnnotations

func (cr *VLCluster) VLInsertPodAnnotations() map[string]string

VLInsertPodAnnotations returns pod annotations for insert cluster component

func (*VLCluster) VLInsertPodLabels

func (cr *VLCluster) VLInsertPodLabels() map[string]string

VLInsertPodLabels returns pod labels for vlinsert cluster component

func (*VLCluster) VLInsertSelectorLabels

func (cr *VLCluster) VLInsertSelectorLabels() map[string]string

VLInsertSelectorLabels returns selector labels for insert cluster component

func (*VLCluster) VLSelectPodAnnotations

func (cr *VLCluster) VLSelectPodAnnotations() map[string]string

VLSelectPodAnnotations returns pod annotations for select cluster component

func (*VLCluster) VLSelectPodLabels

func (cr *VLCluster) VLSelectPodLabels() map[string]string

VLSelectPodLabels returns pod labels for select cluster component

func (*VLCluster) VLSelectSelectorLabels

func (cr *VLCluster) VLSelectSelectorLabels() map[string]string

VLSelectSelectorLabels returns selector labels for select cluster component

func (*VLCluster) VLStoragePodAnnotations

func (cr *VLCluster) VLStoragePodAnnotations() map[string]string

VLStoragePodAnnotations returns pod annotations for storage cluster component

func (*VLCluster) VLStoragePodLabels

func (cr *VLCluster) VLStoragePodLabels() map[string]string

VLStoragePodLabels returns pod labels for the vmstorage cluster component

func (*VLCluster) VLStorageSelectorLabels

func (cr *VLCluster) VLStorageSelectorLabels() map[string]string

VLStorageSelectorLabels returns pod labels for vlstorage cluster component

func (*VLCluster) VMAuthLBPodAnnotations

func (cr *VLCluster) VMAuthLBPodAnnotations() map[string]string

VMAuthLBPodAnnotations returns pod annotations for vmstorage cluster component

func (*VLCluster) VMAuthLBPodLabels

func (cr *VLCluster) VMAuthLBPodLabels() map[string]string

VMAuthLBPodLabels returns pod labels for vlclusterlb-vmauth-balancer cluster component

func (*VLCluster) VMAuthLBSelectorLabels

func (cr *VLCluster) VMAuthLBSelectorLabels() map[string]string

VMAuthLBSelectorLabels defines selector labels for vmauth balancer

func (*VLCluster) Validate

func (cr *VLCluster) Validate() error

type VLClusterList

type VLClusterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []VLCluster `json:"items"`
}

VLClusterList contains a list of VLCluster

func (*VLClusterList) DeepCopy

func (in *VLClusterList) DeepCopy() *VLClusterList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VLClusterList.

func (*VLClusterList) DeepCopyInto

func (in *VLClusterList) DeepCopyInto(out *VLClusterList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VLClusterList) DeepCopyObject

func (in *VLClusterList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type VLClusterSpec

type VLClusterSpec struct {
	// ParsingError contents error with context if operator was failed to parse json object from kubernetes api server
	ParsingError string `json:"-" yaml:"-"`

	// ServiceAccountName is the name of the ServiceAccount to use to run the
	// VLSelect, VLInsert and VLStorage Pods.
	// +optional
	ServiceAccountName string `json:"serviceAccountName,omitempty"`

	// ClusterVersion defines default images tag for all components.
	// it can be overwritten with component specific image.tag value.
	// +optional
	ClusterVersion string `json:"clusterVersion,omitempty"`
	// ClusterDomainName defines domain name suffix for in-cluster dns addresses
	// aka .cluster.local
	// used by vlinsert and vlselect to build vlstorage address
	// +optional
	ClusterDomainName string `json:"clusterDomainName,omitempty"`

	// ImagePullSecrets An optional list of references to secrets in the same namespace
	// to use for pulling images from registries
	// see https://kubernetes.io/docs/concepts/containers/images/#referring-to-an-imagepullsecrets-on-a-pod
	// +optional
	ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`

	VLInsert  *VLInsert  `json:"vlinsert,omitempty"`
	VLSelect  *VLSelect  `json:"vlselect,omitempty"`
	VLStorage *VLStorage `json:"vlstorage,omitempty"`

	// Paused If set to true all actions on the underlying managed objects are not
	// going to be performed, except for delete actions.
	// +optional
	Paused bool `json:"paused,omitempty"`
	// UseStrictSecurity enables strict security mode for component
	// it restricts disk writes access
	// uses non-root user out of the box
	// drops not needed security permissions
	// +optional
	UseStrictSecurity *bool `json:"useStrictSecurity,omitempty"`

	// RequestsLoadBalancer configures load-balancing for vlinsert and vlselect requests.
	// It helps to evenly spread load across pods.
	// Usually it's not possible with Kubernetes TCP-based services.
	RequestsLoadBalancer vmv1beta1.VMAuthLoadBalancer `json:"requestsLoadBalancer,omitempty"`
	// ManagedMetadata defines metadata that will be added to the all objects
	// created by operator for the given CustomResource
	ManagedMetadata *vmv1beta1.ManagedObjectsMetadata `json:"managedMetadata,omitempty"`
}

VLClusterSpec defines the desired state of VLCluster

func (*VLClusterSpec) DeepCopy

func (in *VLClusterSpec) DeepCopy() *VLClusterSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VLClusterSpec.

func (*VLClusterSpec) DeepCopyInto

func (in *VLClusterSpec) DeepCopyInto(out *VLClusterSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VLClusterSpec) UnmarshalJSON

func (cr *VLClusterSpec) UnmarshalJSON(src []byte) error

UnmarshalJSON implements json.Unmarshaler interface

type VLClusterStatus

type VLClusterStatus struct {
	vmv1beta1.StatusMetadata `json:",inline"`
}

VLClusterStatus defines the observed state of VLCluster

func (*VLClusterStatus) DeepCopy

func (in *VLClusterStatus) DeepCopy() *VLClusterStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VLClusterStatus.

func (*VLClusterStatus) DeepCopyInto

func (in *VLClusterStatus) DeepCopyInto(out *VLClusterStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VLClusterStatus) GetStatusMetadata

func (cr *VLClusterStatus) GetStatusMetadata() *vmv1beta1.StatusMetadata

GetStatusMetadata returns metadata for object status

type VLInsert

type VLInsert struct {
	// PodMetadata configures Labels and Annotations which are propagated to the VLSelect pods.
	PodMetadata *vmv1beta1.EmbeddedObjectMetadata `json:"podMetadata,omitempty"`
	// LogFormat for VLSelect to be configured with.
	// default or json
	// +optional
	// +kubebuilder:validation:Enum=default;json
	LogFormat string `json:"logFormat,omitempty"`
	// LogLevel for VLSelect to be configured with.
	// +optional
	// +kubebuilder:validation:Enum=INFO;WARN;ERROR;FATAL;PANIC
	LogLevel string `json:"logLevel,omitempty"`

	// ServiceSpec that will be added to vlselect service spec
	// +optional
	ServiceSpec *vmv1beta1.AdditionalServiceSpec `json:"serviceSpec,omitempty"`
	// ServiceScrapeSpec that will be added to vlselect VMServiceScrape spec
	// +optional
	ServiceScrapeSpec *vmv1beta1.VMServiceScrapeSpec `json:"serviceScrapeSpec,omitempty"`
	// PodDisruptionBudget created by operator
	// +optional
	PodDisruptionBudget       *vmv1beta1.EmbeddedPodDisruptionBudgetSpec `json:"podDisruptionBudget,omitempty"`
	*vmv1beta1.EmbeddedProbes `json:",inline"`
	// Configures horizontal pod autoscaling.
	// +optional
	HPA *vmv1beta1.EmbeddedHPA `json:"hpa,omitempty"`
	// SyslogSpec defines syslog listener configuration
	// +optional
	SyslogSpec *SyslogServerSpec `json:"syslogSpec,omitempty"`

	// UpdateStrategy - overrides default update strategy.
	// +kubebuilder:validation:Enum=Recreate;RollingUpdate
	// +optional
	UpdateStrategy *appsv1.DeploymentStrategyType `json:"updateStrategy,omitempty"`
	// RollingUpdate - overrides deployment update params.
	// +optional
	RollingUpdate *appsv1.RollingUpdateDeployment `json:"rollingUpdate,omitempty"`

	vmv1beta1.CommonDefaultableParams           `json:",inline"`
	vmv1beta1.CommonApplicationDeploymentParams `json:",inline"`
}

VLInsert defines vlinsert component configuration at victoria-logs cluster

func (*VLInsert) DeepCopy

func (in *VLInsert) DeepCopy() *VLInsert

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VLInsert.

func (*VLInsert) DeepCopyInto

func (in *VLInsert) DeepCopyInto(out *VLInsert)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VLInsert) GetAdditionalService

func (cr *VLInsert) GetAdditionalService() *vmv1beta1.AdditionalServiceSpec

GetAdditionalService returns AdditionalServiceSpec settings

func (*VLInsert) GetExtraArgs

func (cr *VLInsert) GetExtraArgs() map[string]string

ExtraArgs returns additionally configured command-line arguments

func (*VLInsert) GetMetricPath

func (cr *VLInsert) GetMetricPath() string

GetMetricPath returns prefixed path for metric requests

func (*VLInsert) GetServiceScrape

func (cr *VLInsert) GetServiceScrape() *vmv1beta1.VMServiceScrapeSpec

ServiceScrape returns overrides for serviceScrape builder

func (*VLInsert) Probe

func (cr *VLInsert) Probe() *vmv1beta1.EmbeddedProbes

Probe implements build.probeCRD interface

func (*VLInsert) ProbeNeedLiveness

func (*VLInsert) ProbeNeedLiveness() bool

ProbeNeedLiveness implements build.probeCRD interface

func (*VLInsert) ProbePath

func (cr *VLInsert) ProbePath() string

ProbePath implements build.probeCRD interface

func (*VLInsert) ProbePort

func (cr *VLInsert) ProbePort() string

ProbePort implements build.probeCRD interface

func (*VLInsert) ProbeScheme

func (cr *VLInsert) ProbeScheme() string

ProbeScheme implements build.probeCRD interface

type VLSelect

type VLSelect struct {
	// PodMetadata configures Labels and Annotations which are propagated to the VLSelect pods.
	PodMetadata *vmv1beta1.EmbeddedObjectMetadata `json:"podMetadata,omitempty"`
	// LogFormat for VLSelect to be configured with.
	// default or json
	// +optional
	// +kubebuilder:validation:Enum=default;json
	LogFormat string `json:"logFormat,omitempty"`
	// LogLevel for VLSelect to be configured with.
	// +optional
	// +kubebuilder:validation:Enum=INFO;WARN;ERROR;FATAL;PANIC
	LogLevel string `json:"logLevel,omitempty"`

	// ServiceSpec that will be added to vlselect service spec
	// +optional
	ServiceSpec *vmv1beta1.AdditionalServiceSpec `json:"serviceSpec,omitempty"`
	// ServiceScrapeSpec that will be added to vlselect VMServiceScrape spec
	// +optional
	ServiceScrapeSpec *vmv1beta1.VMServiceScrapeSpec `json:"serviceScrapeSpec,omitempty"`
	// PodDisruptionBudget created by operator
	// +optional
	PodDisruptionBudget       *vmv1beta1.EmbeddedPodDisruptionBudgetSpec `json:"podDisruptionBudget,omitempty"`
	*vmv1beta1.EmbeddedProbes `json:",inline"`
	// Configures horizontal pod autoscaling.
	// +optional
	HPA *vmv1beta1.EmbeddedHPA `json:"hpa,omitempty"`

	// UpdateStrategy - overrides default update strategy.
	// +kubebuilder:validation:Enum=Recreate;RollingUpdate
	// +optional
	UpdateStrategy *appsv1.DeploymentStrategyType `json:"updateStrategy,omitempty"`
	// RollingUpdate - overrides deployment update params.
	// +optional
	RollingUpdate *appsv1.RollingUpdateDeployment `json:"rollingUpdate,omitempty"`

	vmv1beta1.CommonDefaultableParams           `json:",inline"`
	vmv1beta1.CommonApplicationDeploymentParams `json:",inline"`
}

VLSelect defines vlselect component configuration at victoria-logs cluster

func (*VLSelect) DeepCopy

func (in *VLSelect) DeepCopy() *VLSelect

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VLSelect.

func (*VLSelect) DeepCopyInto

func (in *VLSelect) DeepCopyInto(out *VLSelect)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VLSelect) GetAdditionalService

func (cr *VLSelect) GetAdditionalService() *vmv1beta1.AdditionalServiceSpec

GetAdditionalService returns AdditionalServiceSpec settings

func (*VLSelect) GetExtraArgs

func (cr *VLSelect) GetExtraArgs() map[string]string

ExtraArgs returns additionally configured command-line arguments

func (*VLSelect) GetMetricPath

func (cr *VLSelect) GetMetricPath() string

GetMetricPath returns prefixed path for metric requests

func (*VLSelect) GetServiceScrape

func (cr *VLSelect) GetServiceScrape() *vmv1beta1.VMServiceScrapeSpec

ServiceScrape returns overrides for serviceScrape builder

func (*VLSelect) Probe

func (cr *VLSelect) Probe() *vmv1beta1.EmbeddedProbes

Probe implements build.probeCRD interface

func (*VLSelect) ProbeNeedLiveness

func (*VLSelect) ProbeNeedLiveness() bool

ProbeNeedLiveness implements build.probeCRD interface

func (*VLSelect) ProbePath

func (cr *VLSelect) ProbePath() string

ProbePath implements build.probeCRD interface

func (*VLSelect) ProbePort

func (cr *VLSelect) ProbePort() string

ProbePort implements build.probeCRD interface

func (*VLSelect) ProbeScheme

func (cr *VLSelect) ProbeScheme() string

ProbeScheme implements build.probeCRD interface

type VLSingle

type VLSingle struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec VLSingleSpec `json:"spec,omitempty"`
	// ParsedLastAppliedSpec contains last-applied configuration spec
	ParsedLastAppliedSpec *VLSingleSpec `json:"-" yaml:"-"`

	Status VLSingleStatus `json:"status,omitempty"`
}

VLSingle is fast, cost-effective and scalable logs database. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +operator-sdk:gen-csv:customresourcedefinitions.displayName="VLSingle 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:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:path=vlsingles,scope=Namespaced +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.status",description="Current status of logs instance update process" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" VLSingle is the Schema for the API

func (*VLSingle) AllLabels

func (cr *VLSingle) AllLabels() map[string]string

AllLabels returns combination of selector and managed labels

func (*VLSingle) AnnotationsFiltered

func (cr *VLSingle) AnnotationsFiltered() map[string]string

func (*VLSingle) AsOwner

func (r *VLSingle) AsOwner() []metav1.OwnerReference

AsOwner returns owner references with current object as owner

func (*VLSingle) AsURL

func (cr *VLSingle) AsURL() string

func (*VLSingle) DeepCopy

func (in *VLSingle) DeepCopy() *VLSingle

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VLSingle.

func (*VLSingle) DeepCopyInto

func (in *VLSingle) DeepCopyInto(out *VLSingle)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VLSingle) DeepCopyObject

func (in *VLSingle) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*VLSingle) DefaultStatusFields

func (cr *VLSingle) DefaultStatusFields(vs *VLSingleStatus)

DefaultStatusFields implements reconcile.ObjectWithDeepCopyAndStatus interface

func (*VLSingle) GetAdditionalService

func (cr *VLSingle) GetAdditionalService() *vmv1beta1.AdditionalServiceSpec

GetAdditionalService returns AdditionalServiceSpec settings

func (*VLSingle) GetExtraArgs

func (cr *VLSingle) GetExtraArgs() map[string]string

GetExtraArgs returns additionally configured command-line arguments

func (*VLSingle) GetMetricPath

func (cr *VLSingle) GetMetricPath() string

GetMetricPath returns prefixed path for metric requests

func (*VLSingle) GetServiceAccountName

func (cr *VLSingle) GetServiceAccountName() string

func (*VLSingle) GetServiceScrape

func (cr *VLSingle) GetServiceScrape() *vmv1beta1.VMServiceScrapeSpec

GetServiceScrape returns overrides for serviceScrape builder

func (*VLSingle) GetStatus

func (cr *VLSingle) GetStatus() *VLSingleStatus

GetStatus implements reconcile.ObjectWithDeepCopyAndStatus interface

func (*VLSingle) HasSpecChanges

func (cr *VLSingle) HasSpecChanges() (bool, error)

HasSpecChanges compares vlsingle spec with last applied vlsingle spec stored in annotation

func (*VLSingle) IsOwnsServiceAccount

func (cr *VLSingle) IsOwnsServiceAccount() bool

func (*VLSingle) LastAppliedSpecAsPatch

func (cr *VLSingle) LastAppliedSpecAsPatch() (client.Patch, error)

LastAppliedSpecAsPatch return last applied vlsingle spec as patch annotation

func (*VLSingle) Paused

func (cr *VLSingle) Paused() bool

func (*VLSingle) PodAnnotations

func (r *VLSingle) PodAnnotations() map[string]string

func (*VLSingle) PodLabels

func (cr *VLSingle) PodLabels() map[string]string

PodLabels returns labels attached to the podMetadata

func (*VLSingle) PrefixedName

func (cr *VLSingle) PrefixedName() string

func (*VLSingle) Probe

func (cr *VLSingle) Probe() *vmv1beta1.EmbeddedProbes

func (*VLSingle) ProbeNeedLiveness

func (cr *VLSingle) ProbeNeedLiveness() bool

func (*VLSingle) ProbePath

func (cr *VLSingle) ProbePath() string

func (*VLSingle) ProbePort

func (cr *VLSingle) ProbePort() string

func (*VLSingle) ProbeScheme

func (cr *VLSingle) ProbeScheme() string

func (*VLSingle) SelectorLabels

func (cr *VLSingle) SelectorLabels() map[string]string

SelectorLabels returns unique labels for object

func (*VLSingle) SetLastSpec

func (cr *VLSingle) SetLastSpec(prevSpec VLSingleSpec)

SetLastSpec implements objectWithLastAppliedState interface

func (*VLSingle) UnmarshalJSON

func (cr *VLSingle) UnmarshalJSON(src []byte) error

UnmarshalJSON implements json.Unmarshaler interface

func (*VLSingle) Validate

func (cr *VLSingle) Validate() error

Validate checks if spec is correct

type VLSingleList

type VLSingleList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []VLSingle `json:"items"`
}

VLSingleList contains a list of VLSingle

func (*VLSingleList) DeepCopy

func (in *VLSingleList) DeepCopy() *VLSingleList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VLSingleList.

func (*VLSingleList) DeepCopyInto

func (in *VLSingleList) DeepCopyInto(out *VLSingleList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VLSingleList) DeepCopyObject

func (in *VLSingleList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type VLSingleSpec

type VLSingleSpec struct {
	// ParsingError contents error with context if operator was failed to parse json object from kubernetes api server
	ParsingError string `json:"-" yaml:"-"`

	// PodMetadata configures Labels and Annotations which are propagated to the VLSingle pods.
	// +optional
	PodMetadata *vmv1beta1.EmbeddedObjectMetadata `json:"podMetadata,omitempty"`
	// ManagedMetadata defines metadata that will be added to the all objects
	// created by operator for the given CustomResource
	ManagedMetadata *vmv1beta1.ManagedObjectsMetadata `json:"managedMetadata,omitempty"`

	vmv1beta1.CommonDefaultableParams           `json:",inline,omitempty"`
	vmv1beta1.CommonApplicationDeploymentParams `json:",inline,omitempty"`

	// LogLevel for VictoriaLogs to be configured with.
	// +optional
	// +kubebuilder:validation:Enum=INFO;WARN;ERROR;FATAL;PANIC
	LogLevel string `json:"logLevel,omitempty"`
	// LogFormat for VLSingle to be configured with.
	// +optional
	// +kubebuilder:validation:Enum=default;json
	LogFormat string `json:"logFormat,omitempty"`
	// StorageDataPath disables spec.storage option and overrides arg for victoria-logs binary --storageDataPath,
	// its users responsibility to mount proper device into given path.
	// +optional
	StorageDataPath string `json:"storageDataPath,omitempty"`
	// Storage is the definition of how storage will be used by the VLSingle
	// by default it`s empty dir
	// +optional
	Storage *corev1.PersistentVolumeClaimSpec `json:"storage,omitempty"`
	// StorageMeta defines annotations and labels attached to PVC for given vlsingle CR
	// +optional
	StorageMetadata vmv1beta1.EmbeddedObjectMetadata `json:"storageMetadata,omitempty"`
	// RetentionPeriod for the stored logs
	// https://docs.victoriametrics.com/victorialogs/#retention
	// +optional
	// +kubebuilder:validation:Pattern:="^[0-9]+(h|d|w|y)?$"
	RetentionPeriod string `json:"retentionPeriod,omitempty"`
	// RetentionMaxDiskSpaceUsageBytes for the stored logs
	// VictoriaLogs keeps at least two last days of data in order to guarantee that the logs for the last day can be returned in queries.
	// This means that the total disk space usage may exceed the -retention.maxDiskSpaceUsageBytes,
	// if the size of the last two days of data exceeds the -retention.maxDiskSpaceUsageBytes.
	// https://docs.victoriametrics.com/victorialogs/#retention-by-disk-space-usage
	// +optional
	RetentionMaxDiskSpaceUsageBytes vmv1beta1.BytesString `json:"retentionMaxDiskSpaceUsageBytes,omitempty"`
	// FutureRetention for the stored logs
	// Log entries with timestamps bigger than now+futureRetention are rejected during data ingestion; see https://docs.victoriametrics.com/victorialogs/#retention
	// +optional
	// +kubebuilder:validation:Pattern:="^[0-9]+(h|d|y)?$"
	FutureRetention string `json:"futureRetention,omitempty"`
	// LogNewStreams Whether to log creation of new streams; this can be useful for debugging of high cardinality issues with log streams; see https://docs.victoriametrics.com/victorialogs/keyconcepts/#stream-fields
	LogNewStreams bool `json:"logNewStreams,omitempty"`
	// Whether to log all the ingested log entries; this can be useful for debugging of data ingestion; see https://docs.victoriametrics.com/victorialogs/data-ingestion/
	LogIngestedRows bool `json:"logIngestedRows,omitempty"`
	// ServiceSpec that will be added to vlsingle service spec
	// +optional
	ServiceSpec *vmv1beta1.AdditionalServiceSpec `json:"serviceSpec,omitempty"`
	// ServiceScrapeSpec that will be added to vlsingle VMServiceScrape spec
	// +optional
	ServiceScrapeSpec *vmv1beta1.VMServiceScrapeSpec `json:"serviceScrapeSpec,omitempty"`
	// LivenessProbe that will be added to VLSingle pod
	*vmv1beta1.EmbeddedProbes `json:",inline"`

	// ServiceAccountName is the name of the ServiceAccount to use to run the pods
	// +optional
	ServiceAccountName string `json:"serviceAccountName,omitempty"`

	// SyslogSpec defines syslog listener configuration
	// +optional
	SyslogSpec *SyslogServerSpec `json:"syslogSpec,omitempty"`
}

VLSingleSpec defines the desired state of VLSingle +k8s:openapi-gen=true

func (*VLSingleSpec) DeepCopy

func (in *VLSingleSpec) DeepCopy() *VLSingleSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VLSingleSpec.

func (*VLSingleSpec) DeepCopyInto

func (in *VLSingleSpec) DeepCopyInto(out *VLSingleSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VLSingleSpec) UnmarshalJSON

func (cr *VLSingleSpec) UnmarshalJSON(src []byte) error

UnmarshalJSON implements json.Unmarshaler interface

type VLSingleStatus

type VLSingleStatus struct {
	vmv1beta1.StatusMetadata `json:",inline"`
}

VLSingleStatus defines the observed state of VLSingle

func (*VLSingleStatus) DeepCopy

func (in *VLSingleStatus) DeepCopy() *VLSingleStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VLSingleStatus.

func (*VLSingleStatus) DeepCopyInto

func (in *VLSingleStatus) DeepCopyInto(out *VLSingleStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VLSingleStatus) GetStatusMetadata

func (cr *VLSingleStatus) GetStatusMetadata() *vmv1beta1.StatusMetadata

GetStatusMetadata returns metadata for object status

type VLStorage

type VLStorage struct {
	// RetentionPeriod for the stored logs
	// https://docs.victoriametrics.com/victorialogs/#retention
	// +optional
	// +kubebuilder:validation:Pattern:="^[0-9]+(h|d|w|y)?$"
	RetentionPeriod string `json:"retentionPeriod,omitempty"`
	// RetentionMaxDiskSpaceUsageBytes for the stored logs
	// VictoriaLogs keeps at least two last days of data in order to guarantee that the logs for the last day can be returned in queries.
	// This means that the total disk space usage may exceed the -retention.maxDiskSpaceUsageBytes,
	// if the size of the last two days of data exceeds the -retention.maxDiskSpaceUsageBytes.
	// https://docs.victoriametrics.com/victorialogs/#retention-by-disk-space-usage
	// +optional
	RetentionMaxDiskSpaceUsageBytes vmv1beta1.BytesString `json:"retentionMaxDiskSpaceUsageBytes,omitempty"`
	// FutureRetention for the stored logs
	// Log entries with timestamps bigger than now+futureRetention are rejected during data ingestion; see https://docs.victoriametrics.com/victorialogs/#retention
	// +optional
	// +kubebuilder:validation:Pattern:="^[0-9]+(h|d|w|y)?$"
	FutureRetention string `json:"futureRetention,omitempty"`
	// LogNewStreams Whether to log creation of new streams; this can be useful for debugging of high cardinality issues with log streams; see https://docs.victoriametrics.com/victorialogs/keyconcepts/#stream-fields
	LogNewStreams bool `json:"logNewStreams,omitempty"`
	// Whether to log all the ingested log entries; this can be useful for debugging of data ingestion; see https://docs.victoriametrics.com/victorialogs/data-ingestion/
	LogIngestedRows bool `json:"logIngestedRows,omitempty"`

	// PodMetadata configures Labels and Annotations which are propagated to the VLStorage pods.
	PodMetadata *vmv1beta1.EmbeddedObjectMetadata `json:"podMetadata,omitempty"`
	// LogFormat for VLStorage to be configured with.
	// default or json
	// +optional
	// +kubebuilder:validation:Enum=default;json
	LogFormat string `json:"logFormat,omitempty"`
	// LogLevel for VLStorage to be configured with.
	// +optional
	// +kubebuilder:validation:Enum=INFO;WARN;ERROR;FATAL;PANIC
	LogLevel string `json:"logLevel,omitempty"`

	// ServiceSpec that will be added to vlselect service spec
	// +optional
	ServiceSpec *vmv1beta1.AdditionalServiceSpec `json:"serviceSpec,omitempty"`
	// ServiceScrapeSpec that will be added to vlselect VMServiceScrape spec
	// +optional
	ServiceScrapeSpec *vmv1beta1.VMServiceScrapeSpec `json:"serviceScrapeSpec,omitempty"`
	// PodDisruptionBudget created by operator
	// +optional
	PodDisruptionBudget       *vmv1beta1.EmbeddedPodDisruptionBudgetSpec `json:"podDisruptionBudget,omitempty"`
	*vmv1beta1.EmbeddedProbes `json:",inline"`
	// RollingUpdateStrategy defines strategy for application updates
	// Default is OnDelete, in this case operator handles update process
	// Can be changed for RollingUpdate
	// +optional
	RollingUpdateStrategy appsv1.StatefulSetUpdateStrategyType `json:"rollingUpdateStrategy,omitempty"`
	// ClaimTemplates allows adding additional VolumeClaimTemplates for StatefulSet
	ClaimTemplates []corev1.PersistentVolumeClaim `json:"claimTemplates,omitempty"`

	// StorageDataPath - path to storage data
	// +optional
	StorageDataPath string `json:"storageDataPath,omitempty"`
	// Storage configures persistent volume for VLStorage
	// +optional
	Storage *vmv1beta1.StorageSpec `json:"storage,omitempty"`
	// PersistentVolumeClaimRetentionPolicy allows configuration of PVC retention policy
	// +optional
	PersistentVolumeClaimRetentionPolicy *appsv1.StatefulSetPersistentVolumeClaimRetentionPolicy `json:"persistentVolumeClaimRetentionPolicy,omitempty"`

	// MaintenanceInsertNodeIDs - excludes given node ids from insert requests routing, must contain pod suffixes - for pod-0, id will be 0 and etc.
	// lets say, you have pod-0, pod-1, pod-2, pod-3. to exclude pod-0 and pod-3 from insert routing, define nodeIDs: [0,3].
	// Useful at storage expanding, when you want to rebalance some data at cluster.
	// +optional
	MaintenanceInsertNodeIDs []int32 `json:"maintenanceInsertNodeIDs,omitempty"`
	// MaintenanceInsertNodeIDs - excludes given node ids from select requests routing, must contain pod suffixes - for pod-0, id will be 0 and etc.
	MaintenanceSelectNodeIDs []int32 `json:"maintenanceSelectNodeIDs,omitempty"`

	vmv1beta1.CommonDefaultableParams           `json:",inline"`
	vmv1beta1.CommonApplicationDeploymentParams `json:",inline"`

	// RollingUpdateStrategyBehavior defines customized behavior for rolling updates.
	// It applies if the RollingUpdateStrategy is set to OnDelete, which is the default.
	// +optional
	RollingUpdateStrategyBehavior *vmv1beta1.StatefulSetUpdateStrategyBehavior `json:"rollingUpdateStrategyBehavior,omitempty"`
}

VLStorage defines vlstorage component configuration at victoria-logs cluster

func (*VLStorage) DeepCopy

func (in *VLStorage) DeepCopy() *VLStorage

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VLStorage.

func (*VLStorage) DeepCopyInto

func (in *VLStorage) DeepCopyInto(out *VLStorage)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VLStorage) GetAdditionalService

func (cr *VLStorage) GetAdditionalService() *vmv1beta1.AdditionalServiceSpec

GetAdditionalService returns AdditionalServiceSpec settings

func (*VLStorage) GetExtraArgs

func (cr *VLStorage) GetExtraArgs() map[string]string

ExtraArgs returns additionally configured command-line arguments

func (*VLStorage) GetMetricPath

func (cr *VLStorage) GetMetricPath() string

GetMetricPath returns prefixed path for metric requests

func (*VLStorage) GetServiceScrape

func (cr *VLStorage) GetServiceScrape() *vmv1beta1.VMServiceScrapeSpec

ServiceScrape returns overrides for serviceScrape builder

func (*VLStorage) GetStorageVolumeName

func (cr *VLStorage) GetStorageVolumeName() string

GetStorageVolumeName returns formatted name for vlstorage volume

func (*VLStorage) Probe

func (cr *VLStorage) Probe() *vmv1beta1.EmbeddedProbes

Probe implements build.probeCRD interface

func (*VLStorage) ProbeNeedLiveness

func (*VLStorage) ProbeNeedLiveness() bool

ProbeNeedLiveness implements build.probeCRD interface

func (*VLStorage) ProbePath

func (cr *VLStorage) ProbePath() string

ProbePath implements build.probeCRD interface

func (*VLStorage) ProbePort

func (cr *VLStorage) ProbePort() string

ProbePort implements build.probeCRD interface

func (*VLStorage) ProbeScheme

func (cr *VLStorage) ProbeScheme() string

ProbeScheme implements build.probeCRD interface

type VMAnomaly added in v0.60.0

type VMAnomaly struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec VMAnomalySpec `json:"spec,omitempty"`
	// ParsedLastAppliedSpec contains last-applied configuration spec
	ParsedLastAppliedSpec *VMAnomalySpec `json:"-" yaml:"-"`

	Status VMAnomalyStatus `json:"status,omitempty"`
}

VMAnomaly is the Schema for the vmanomalies API. +operator-sdk:gen-csv:customresourcedefinitions.displayName="VMAnomaly App" +operator-sdk:gen-csv:customresourcedefinitions.resources="StatefulSet,apps" +operator-sdk:gen-csv:customresourcedefinitions.resources="Secret,v1" +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +genclient +k8s:openapi-gen=true +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:path=vmanomalies,scope=Namespaced +kubebuilder:subresource:scale:specpath=.spec.shardCount,statuspath=.status.shards,selectorpath=.status.selector +kubebuilder:printcolumn:name="Shards Count",type="integer",JSONPath=".status.shards",description="current number of shards" +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.updateStatus",description="Current status of update rollout" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"

func (*VMAnomaly) AllLabels added in v0.60.0

func (cr *VMAnomaly) AllLabels() map[string]string

AllLabels returns global labels to be applied for created objects

func (*VMAnomaly) AnnotationsFiltered added in v0.60.0

func (cr *VMAnomaly) AnnotationsFiltered() map[string]string

AnnotationsFiltered returns global annotations to be applied for created objects

func (*VMAnomaly) AsOwner added in v0.60.0

func (cr *VMAnomaly) AsOwner() []metav1.OwnerReference

AsOwner returns owner references with current object as owner

func (*VMAnomaly) DeepCopy added in v0.60.0

func (in *VMAnomaly) DeepCopy() *VMAnomaly

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAnomaly.

func (*VMAnomaly) DeepCopyInto added in v0.60.0

func (in *VMAnomaly) DeepCopyInto(out *VMAnomaly)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VMAnomaly) DeepCopyObject added in v0.60.0

func (in *VMAnomaly) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*VMAnomaly) DefaultStatusFields added in v0.60.0

func (cr *VMAnomaly) DefaultStatusFields(vs *VMAnomalyStatus)

DefaultStatusFields implements reconcile.ObjectWithDeepCopyAndStatus interface

func (*VMAnomaly) GetAdditionalService added in v0.60.0

func (cr *VMAnomaly) GetAdditionalService() *vmv1beta1.AdditionalServiceSpec

GetAdditionalService returns AdditionalServiceSpec settings

func (*VMAnomaly) GetExtraArgs added in v0.60.0

func (cr *VMAnomaly) GetExtraArgs() map[string]string

ExtraArgs returns additionally configured command-line arguments

func (*VMAnomaly) GetMetricPath added in v0.60.0

func (cr *VMAnomaly) GetMetricPath() string

GetMetricPath returns prefixed path for metric requests

func (*VMAnomaly) GetServiceAccountName added in v0.60.0

func (cr *VMAnomaly) GetServiceAccountName() string

GetServiceAccountName returns service account name for components

func (*VMAnomaly) GetServiceScrape added in v0.60.0

func (cr *VMAnomaly) GetServiceScrape() *vmv1beta1.VMServiceScrapeSpec

ServiceScrape returns overrides for serviceScrape builder

func (*VMAnomaly) GetShardCount added in v0.60.0

func (cr *VMAnomaly) GetShardCount() int

GetShardCount returns shard count for vmanomaly

func (*VMAnomaly) GetStatus added in v0.60.0

func (cr *VMAnomaly) GetStatus() *VMAnomalyStatus

GetStatus implements reconcile.ObjectWithDeepCopyAndStatus interface

func (*VMAnomaly) GetVolumeName added in v0.60.0

func (cr *VMAnomaly) GetVolumeName() string

GetVolumeName returns volume name for persistent storage

func (*VMAnomaly) HasSpecChanges added in v0.60.0

func (cr *VMAnomaly) HasSpecChanges() (bool, error)

HasSpecChanges compares spec with last applied cluster spec stored in annotation

func (*VMAnomaly) HealthPath added in v0.60.0

func (cr *VMAnomaly) HealthPath() string

HealthPath returns path for health requests

func (*VMAnomaly) IsOwnsServiceAccount added in v0.60.0

func (cr *VMAnomaly) IsOwnsServiceAccount() bool

IsOwnsServiceAccount checks if ServiceAccountName is set explicitly

func (*VMAnomaly) LastAppliedSpecAsPatch added in v0.60.0

func (cr *VMAnomaly) LastAppliedSpecAsPatch() (client.Patch, error)

LastAppliedSpecAsPatch return last applied cluster spec as patch annotation

func (*VMAnomaly) Paused added in v0.60.0

func (cr *VMAnomaly) Paused() bool

Paused checks if given component reconcile loop should be stopped

func (*VMAnomaly) PodAnnotations added in v0.60.0

func (cr *VMAnomaly) PodAnnotations() map[string]string

PodAnnotations returns annotations to be applied to Pod

func (*VMAnomaly) PodLabels added in v0.60.0

func (cr *VMAnomaly) PodLabels() map[string]string

PodLabels returns labels to applied to Pod

func (*VMAnomaly) Port added in v0.60.0

func (cr *VMAnomaly) Port() string

Port returns port for accessing anomaly

func (*VMAnomaly) PrefixedName added in v0.60.0

func (cr *VMAnomaly) PrefixedName() string

PrefixedName format name of the component with hard-coded prefix

func (*VMAnomaly) Probe added in v0.60.0

func (cr *VMAnomaly) Probe() *vmv1beta1.EmbeddedProbes

Probe implements build.probeCRD interface

func (*VMAnomaly) ProbeNeedLiveness added in v0.60.0

func (*VMAnomaly) ProbeNeedLiveness() bool

ProbeNeedLiveness implements build.probeCRD interface

func (*VMAnomaly) ProbePath added in v0.60.0

func (cr *VMAnomaly) ProbePath() string

ProbePath implements build.probeCRD interface

func (*VMAnomaly) ProbePort added in v0.60.0

func (cr *VMAnomaly) ProbePort() string

ProbePort implements build.probeCRD interface

func (*VMAnomaly) ProbeScheme added in v0.60.0

func (cr *VMAnomaly) ProbeScheme() string

ProbeScheme implements build.probeCRD interface

func (*VMAnomaly) SelectorLabels added in v0.60.0

func (cr *VMAnomaly) SelectorLabels() map[string]string

SelectorLabels returns selector labels for vmanomaly

func (*VMAnomaly) SetLastSpec added in v0.60.0

func (cr *VMAnomaly) SetLastSpec(prevSpec VMAnomalySpec)

SetLastSpec implements objectWithLastAppliedState interface

func (*VMAnomaly) UnmarshalJSON added in v0.60.0

func (cr *VMAnomaly) UnmarshalJSON(src []byte) error

UnmarshalJSON implements json.Unmarshaler interface

func (*VMAnomaly) Validate added in v0.60.0

func (cr *VMAnomaly) Validate() error

Validate performs semantic validation for component

type VMAnomalyHTTPClientSpec added in v0.60.0

type VMAnomalyHTTPClientSpec struct {
	// HealthPath defines absolute or relative URL address where to check availability of the remote webserver
	HealthPath string `json:"healthPath,omitempty" yaml:"health_path,omitempty"`
	// Timeout for the requests, passed as a string
	Timeout string `json:"timeout,omitempty" yaml:"timeout,omitempty"`
	// TenantID defines for VictoriaMetrics Cluster version only, tenants are identified by accountID, accountID:projectID or multitenant.
	TenantID string `json:"tenantID,omitempty" yaml:"tenant_id,omitempty"`
	// Basic auth defines basic authorization configuration
	BasicAuth *vmv1beta1.BasicAuth `json:"basicAuth,omitempty" yaml:"-"`
	// TLSConfig defines tls connection configuration
	TLSConfig *vmv1beta1.TLSConfig `json:"tlsConfig,omitempty" yaml:"-"`
	// BearerAuth defines authorization with Authorization: Bearer header
	BearerAuth *vmv1beta1.BearerAuth `json:"bearer,omitempty" yaml:"-"`
}

VMAnomalyHTTPClientSpec defines the desired state of VMAnomalyHTTPClient

func (*VMAnomalyHTTPClientSpec) DeepCopy added in v0.60.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAnomalyHTTPClientSpec.

func (*VMAnomalyHTTPClientSpec) DeepCopyInto added in v0.60.0

func (in *VMAnomalyHTTPClientSpec) DeepCopyInto(out *VMAnomalyHTTPClientSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VMAnomalyList added in v0.60.0

type VMAnomalyList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []VMAnomaly `json:"items"`
}

VMAnomalyList contains a list of VMAnomaly.

func (*VMAnomalyList) DeepCopy added in v0.60.0

func (in *VMAnomalyList) DeepCopy() *VMAnomalyList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAnomalyList.

func (*VMAnomalyList) DeepCopyInto added in v0.60.0

func (in *VMAnomalyList) DeepCopyInto(out *VMAnomalyList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VMAnomalyList) DeepCopyObject added in v0.60.0

func (in *VMAnomalyList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type VMAnomalyMonitoringPullSpec added in v0.60.0

type VMAnomalyMonitoringPullSpec struct {
	// Addr changes listen addr, default is 0.0.0.0
	Addr string `json:"addr,omitempty" yaml:"addr,omitempty"`
	// Port defines a port for metrics scrape
	Port string `json:"port"`
}

VMAnomalyMonitoringPullSpec defines pull monitoring configuration which is enabled by default and served at POD_IP:8490/metrics

func (*VMAnomalyMonitoringPullSpec) DeepCopy added in v0.60.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAnomalyMonitoringPullSpec.

func (*VMAnomalyMonitoringPullSpec) DeepCopyInto added in v0.60.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VMAnomalyMonitoringPushSpec added in v0.60.0

type VMAnomalyMonitoringPushSpec struct {
	// defines target url for push requests
	URL string `json:"url" yaml:"url"`
	// PushFrequency defines push interval
	PushFrequency string `json:"pushFrequency,omitempty" yaml:"push_frequency,omitempty"`
	// ExtraLabels defines a set of labels to attach to the pushed metrics
	ExtraLabels             map[string]string `json:"extraLabels,omitempty" yaml:"extra_labels,omitempty"`
	VMAnomalyHTTPClientSpec `json:",inline" yaml:",inline"`
}

VMAnomalyMonitoringPushSpec defines metrics push configuration

VMAnomaly uses prometheus text exposition format

func (*VMAnomalyMonitoringPushSpec) DeepCopy added in v0.60.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAnomalyMonitoringPushSpec.

func (*VMAnomalyMonitoringPushSpec) DeepCopyInto added in v0.60.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VMAnomalyMonitoringSpec added in v0.60.0

type VMAnomalyMonitoringSpec struct {
	Pull *VMAnomalyMonitoringPullSpec `json:"pull,omitempty" yaml:"pull,omitempty"`
	Push *VMAnomalyMonitoringPushSpec `json:"push,omitempty" yaml:"push,omitempty"`
}

VMAnomalyMonitoringSpec defines configuration for VMAnomaly monitoring See https://docs.victoriametrics.com/anomaly-detection/components/monitoring/

func (*VMAnomalyMonitoringSpec) DeepCopy added in v0.60.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAnomalyMonitoringSpec.

func (*VMAnomalyMonitoringSpec) DeepCopyInto added in v0.60.0

func (in *VMAnomalyMonitoringSpec) DeepCopyInto(out *VMAnomalyMonitoringSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VMAnomalyReadersSpec added in v0.60.0

type VMAnomalyReadersSpec struct {
	// DatasourceURL address
	// datasource must serve /api/v1/query and /api/v1/query_range APIs
	DatasourceURL string `json:"datasourceURL" yaml:"datasource_url,omitempty"`
	// Frequency of the points returned
	SamplingPeriod string `json:"samplingPeriod" yaml:"sampling_period,omitempty"`
	// Performs PromQL/MetricsQL range query
	QueryRangePath string `json:"queryRangePath,omitempty" yaml:"query_range_path,omitempty"`
	// List of strings with series selector.
	ExtraFilters []string `json:"extraFilters,omitempty" yaml:"extra_filters,omitempty"`
	// If True, then query will be performed from the last seen timestamp for a given series.
	QueryFromLastSeenTimestamp bool `json:"queryFromLastSeenTimestamp,omitempty" yaml:"query_from_last_seen_timestamp,omitempty"`
	// It allows overriding the default -search.latencyOffsetflag of VictoriaMetrics
	LatencyOffset string `json:"latencyOffset,omitempty" yaml:"latency_offset,omitempty"`
	// Optional argoverrides how search.maxPointsPerTimeseries flagimpacts vmanomaly on splitting long fitWindow queries into smaller sub-intervals
	MaxPointsPerQuery int `json:"maxPointsPerQuery,omitempty" yaml:"max_points_per_query,omitempty"`
	// Optional argumentspecifies the IANA timezone to account for local shifts, like DST, in models sensitive to seasonal patterns
	Timezone string `json:"tz,omitempty" yaml:"tz,omitempty"`
	// Optional argumentallows defining valid data ranges for input of all the queries in queries
	DataRange               []string `json:"dataRange,omitempty" yaml:"data_range,omitempty"`
	VMAnomalyHTTPClientSpec `json:",inline" yaml:",inline"`
}

VMAnomalyReadersSpec defines reader configuration for VMAnomaly

func (*VMAnomalyReadersSpec) DeepCopy added in v0.60.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAnomalyReadersSpec.

func (*VMAnomalyReadersSpec) DeepCopyInto added in v0.60.0

func (in *VMAnomalyReadersSpec) DeepCopyInto(out *VMAnomalyReadersSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VMAnomalySpec added in v0.60.0

type VMAnomalySpec struct {
	// ParsingError contents error with context if operator was failed to parse json object from kubernetes api server
	ParsingError string `json:"-" yaml:"-"`
	// PodMetadata configures Labels and Annotations which are propagated to the vmanomaly pods.
	// +optional
	PodMetadata *vmv1beta1.EmbeddedObjectMetadata `json:"podMetadata,omitempty"`
	// ManagedMetadata defines metadata that will be added to the all objects
	// created by operator for the given CustomResource
	ManagedMetadata *vmv1beta1.ManagedObjectsMetadata `json:"managedMetadata,omitempty"`
	// LogLevel for VMAnomaly to be configured with.
	// INFO, WARN, ERROR, FATAL, PANIC
	// +optional
	// +kubebuilder:validation:Enum=INFO;WARN;ERROR;FATAL;PANIC
	LogLevel string `json:"logLevel,omitempty"`
	// ServiceScrapeSpec that will be added to vmanomaly VMPodScrape spec
	// +optional
	ServiceScrapeSpec *vmv1beta1.VMServiceScrapeSpec `json:"serviceScrapeSpec,omitempty"`
	// ShardCount - numbers of shards of VMAnomaly
	// in this case operator will use 1 sts per shard with
	// replicas count according to spec.replicas.
	// +optional
	ShardCount *int `json:"shardCount,omitempty"`
	// PodDisruptionBudget created by operator
	// +optional
	PodDisruptionBudget       *vmv1beta1.EmbeddedPodDisruptionBudgetSpec `json:"podDisruptionBudget,omitempty"`
	*vmv1beta1.EmbeddedProbes `json:",inline"`
	// ConfigRawYaml - raw configuration for anomaly,
	// 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
	// VMAnomaly object, which contains configuration for this VMAnomaly,
	// configuration must be inside secret key: anomaly.yaml.
	// It must be created by user.
	// instance. Defaults to 'vmanomaly-<anomaly-name>'
	// The secret is mounted into /etc/anomaly/config.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Secret with anomaly config",xDescriptors="urn:alm:descriptor:io.kubernetes:Secret"
	ConfigSecret *corev1.SecretKeySelector `json:"configSecret,omitempty"`
	// Metrics source for VMAnomaly
	// See https://docs.victoriametrics.com/anomaly-detection/components/reader/
	Reader *VMAnomalyReadersSpec `json:"reader"`
	// Metrics destination for VMAnomaly
	// See https://docs.victoriametrics.com/anomaly-detection/components/writer/
	Writer *VMAnomalyWritersSpec `json:"writer"`
	// Storage configures storage for StatefulSet
	// +optional
	Storage *vmv1beta1.StorageSpec `json:"storage,omitempty"`
	// PersistentVolumeClaimRetentionPolicy allows configuration of PVC retention policy
	// +optional
	PersistentVolumeClaimRetentionPolicy *appsv1.StatefulSetPersistentVolumeClaimRetentionPolicy `json:"persistentVolumeClaimRetentionPolicy,omitempty"`
	// RollingUpdateStrategy allows configuration for strategyType
	// set it to RollingUpdate for disabling operator statefulSet rollingUpdate
	// +optional
	RollingUpdateStrategy appsv1.StatefulSetUpdateStrategyType `json:"rollingUpdateStrategy,omitempty"`
	// ClaimTemplates allows adding additional VolumeClaimTemplates for VMAnomaly
	ClaimTemplates []corev1.PersistentVolumeClaim `json:"claimTemplates,omitempty"`
	// Monitoring configures how expose anomaly metrics
	// See https://docs.victoriametrics.com/anomaly-detection/components/monitoring/
	Monitoring *VMAnomalyMonitoringSpec `json:"monitoring,omitempty"`
	// License allows to configure license key to be used for enterprise features.
	// Using license key is supported starting from VictoriaMetrics v1.94.0.
	// See [here](https://docs.victoriametrics.com/victoriametrics/enterprise/)
	// +optional
	License *vmv1beta1.License `json:"license,omitempty"`
	// ServiceAccountName is the name of the ServiceAccount to use to run the pods
	// +optional
	ServiceAccountName                          string `json:"serviceAccountName,omitempty"`
	vmv1beta1.CommonDefaultableParams           `json:",inline,omitempty"`
	vmv1beta1.CommonApplicationDeploymentParams `json:",inline,omitempty"`
}

VMAnomalySpec defines the desired state of VMAnomaly. +k8s:openapi-gen=true

func (*VMAnomalySpec) DeepCopy added in v0.60.0

func (in *VMAnomalySpec) DeepCopy() *VMAnomalySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAnomalySpec.

func (*VMAnomalySpec) DeepCopyInto added in v0.60.0

func (in *VMAnomalySpec) DeepCopyInto(out *VMAnomalySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VMAnomalySpec) UnmarshalJSON added in v0.60.0

func (cr *VMAnomalySpec) UnmarshalJSON(src []byte) error

UnmarshalJSON implements json.Unmarshaler interface

type VMAnomalyStatus added in v0.60.0

type VMAnomalyStatus struct {
	// Shards represents total number of vmanomaly statefulsets with uniq scrape targets
	Shards                   int32 `json:"shards,omitempty"`
	vmv1beta1.StatusMetadata `json:",inline"`
}

VMAnomalyStatus defines the observed state of VMAnomaly. +k8s:openapi-gen=true

func (*VMAnomalyStatus) DeepCopy added in v0.60.0

func (in *VMAnomalyStatus) DeepCopy() *VMAnomalyStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAnomalyStatus.

func (*VMAnomalyStatus) DeepCopyInto added in v0.60.0

func (in *VMAnomalyStatus) DeepCopyInto(out *VMAnomalyStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VMAnomalyStatus) GetStatusMetadata added in v0.60.0

func (cr *VMAnomalyStatus) GetStatusMetadata() *vmv1beta1.StatusMetadata

GetStatusMetadata returns metadata for object status

type VMAnomalyVMWriterMetricFormatSpec added in v0.60.0

type VMAnomalyVMWriterMetricFormatSpec struct {
	// Name of result metric
	// Must have a value with $VAR placeholder in it to distinguish between resulting metrics
	Name string `json:"__name__" yaml:"__name__"`
	// For is a special label with $QUERY_KEY placeholder
	For string `json:"for" yaml:"for"`
	// ExtraLabels defines additional labels to be added to the resulting metrics
	ExtraLabels map[string]string `json:"extraLabels,omitempty" yaml:"extra_labels,omitempty"`
}

VMAnomalyVMWriterMetricFormatSpec defines the desired state of VMAnomalyVMWriterMetricFormat

func (*VMAnomalyVMWriterMetricFormatSpec) DeepCopy added in v0.60.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAnomalyVMWriterMetricFormatSpec.

func (*VMAnomalyVMWriterMetricFormatSpec) DeepCopyInto added in v0.60.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VMAnomalyWritersSpec added in v0.60.0

type VMAnomalyWritersSpec struct {
	// DatasourceURL defines remote write url for write requests
	// provided endpoint must serve /api/v1/import path
	// vmanomaly joins datasourceURL + "/api/v1/import"
	DatasourceURL string `json:"datasourceURL" yaml:"datasource_url,omitempty"`
	// Metrics to save the output (in metric names or labels)
	// +optional
	MetricFormat VMAnomalyVMWriterMetricFormatSpec `json:"metricFormat,omitempty" yaml:"metric_format,omitempty"`
	// +optional
	VMAnomalyHTTPClientSpec `json:",inline,omitempty" yaml:",inline,omitempty"`
}

VMAnomalyWritersSpec defines writer configuration for VMAnomaly

func (*VMAnomalyWritersSpec) DeepCopy added in v0.60.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMAnomalyWritersSpec.

func (*VMAnomalyWritersSpec) DeepCopyInto added in v0.60.0

func (in *VMAnomalyWritersSpec) DeepCopyInto(out *VMAnomalyWritersSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VTCluster added in v0.63.0

type VTCluster struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   VTClusterSpec   `json:"spec,omitempty"`
	Status VTClusterStatus `json:"status,omitempty"`
	// ParsedLastAppliedSpec contains last-applied configuration spec
	ParsedLastAppliedSpec *VTClusterSpec `json:"-" yaml:"-"`
}

VTCluster is fast, cost-effective and scalable traces database. +kubebuilder:printcolumn:name="Insert Count",type="string",JSONPath=".spec.vtinsert.replicaCount",description="replicas of VTInsert" +kubebuilder:printcolumn:name="Storage Count",type="string",JSONPath=".spec.vtstorage.replicaCount",description="replicas of VTStorage" +kubebuilder:printcolumn:name="Select Count",type="string",JSONPath=".spec.vtselect.replicaCount",description="replicas of VTSelect" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.updateStatus",description="Current status of cluster" +genclient

func (*VTCluster) AnnotationsFiltered added in v0.63.0

func (cr *VTCluster) AnnotationsFiltered() map[string]string

AnnotationsFiltered implements finalize.crdObject interface

func (*VTCluster) AsOwner added in v0.63.0

func (cr *VTCluster) AsOwner() []metav1.OwnerReference

AsOwner returns owner references with current object as owner

func (*VTCluster) AsURL added in v0.63.0

func (cr *VTCluster) AsURL() string

AsURL implements stub for interface.

func (*VTCluster) AvailableStorageNodeIDs added in v0.63.0

func (cr *VTCluster) AvailableStorageNodeIDs(requestsType string) []int32

AvailableStorageNodeIDs returns ids of the storage nodes for the provided component

func (*VTCluster) DeepCopy added in v0.63.0

func (in *VTCluster) DeepCopy() *VTCluster

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VTCluster.

func (*VTCluster) DeepCopyInto added in v0.63.0

func (in *VTCluster) DeepCopyInto(out *VTCluster)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VTCluster) DeepCopyObject added in v0.63.0

func (in *VTCluster) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*VTCluster) DefaultStatusFields added in v0.63.0

func (cr *VTCluster) DefaultStatusFields(vs *VTClusterStatus)

DefaultStatusFields implements reconcile.ObjectWithDeepCopyAndStatus interface

func (*VTCluster) FinalAnnotations added in v0.63.0

func (cr *VTCluster) FinalAnnotations() map[string]string

FinalAnnotations returns global annotations to be applied by objects generate for vtcluster

func (*VTCluster) FinalLabels added in v0.63.0

func (cr *VTCluster) FinalLabels(selectorLabels map[string]string) map[string]string

FinalLabels adds cluster labels to the base labels and filters by prefix if needed

func (*VTCluster) GetServiceAccountName added in v0.63.0

func (cr *VTCluster) GetServiceAccountName() string

GetServiceAccountName returns service account name for all vtcluster components

func (*VTCluster) GetStatus added in v0.63.0

func (cr *VTCluster) GetStatus() *VTClusterStatus

GetStatus implements reconcile.ObjectWithDeepCopyAndStatus interface

func (*VTCluster) GetVMAuthLBName added in v0.63.0

func (cr *VTCluster) GetVMAuthLBName() string

GetVMAuthLBName returns prefixed name for the loadbalanacer components

func (*VTCluster) GetVTInsertLBName added in v0.63.0

func (cr *VTCluster) GetVTInsertLBName() string

GetVTInsertLBName returns headless proxy service name for insert component

func (*VTCluster) GetVTInsertName added in v0.63.0

func (cr *VTCluster) GetVTInsertName() string

GetVTInsertName returns insert component name

func (*VTCluster) GetVTSelectLBName added in v0.63.0

func (cr *VTCluster) GetVTSelectLBName() string

GetVTSelectLBName returns headless proxy service name for select component

func (*VTCluster) GetVTSelectName added in v0.63.0

func (cr *VTCluster) GetVTSelectName() string

GetLVSelectName returns select component name

func (*VTCluster) GetVTStorageName added in v0.63.0

func (cr *VTCluster) GetVTStorageName() string

GetVTStorageName returns select component name

func (*VTCluster) HasSpecChanges added in v0.63.0

func (cr *VTCluster) HasSpecChanges() (bool, error)

HasSpecChanges compares cluster spec with last applied cluster spec stored in annotation

func (*VTCluster) InsertURL added in v0.63.0

func (cr *VTCluster) InsertURL() string

InsertURL returns url to access VTInsert component

func (*VTCluster) IsOwnsServiceAccount added in v0.63.0

func (cr *VTCluster) IsOwnsServiceAccount() bool

func (*VTCluster) LastAppliedSpecAsPatch added in v0.63.0

func (cr *VTCluster) LastAppliedSpecAsPatch() (client.Patch, error)

LastAppliedSpecAsPatch return last applied cluster spec as patch annotation

func (*VTCluster) Paused added in v0.63.0

func (cr *VTCluster) Paused() bool

func (*VTCluster) PrefixedName added in v0.63.0

func (cr *VTCluster) PrefixedName() string

PrefixedName format name of the component with hard-coded prefix

func (*VTCluster) SelectURL added in v0.63.0

func (cr *VTCluster) SelectURL() string

SelectURL returns url to access VTSelect component

func (*VTCluster) SelectorLabels added in v0.63.0

func (cr *VTCluster) SelectorLabels() map[string]string

SelectorLabels defines labels for objects generated used by all cluster components

func (*VTCluster) SetLastSpec added in v0.63.0

func (cr *VTCluster) SetLastSpec(prevSpec VTClusterSpec)

SetLastSpec implements objectWithLastAppliedState interface

func (*VTCluster) StorageURL added in v0.63.0

func (cr *VTCluster) StorageURL() string

StorageURL returns url to access VTStorage component

func (*VTCluster) UnmarshalJSON added in v0.63.0

func (cr *VTCluster) UnmarshalJSON(src []byte) error

UnmarshalJSON implements json.Unmarshaler interface

func (*VTCluster) VMAuthLBPodAnnotations added in v0.63.0

func (cr *VTCluster) VMAuthLBPodAnnotations() map[string]string

VMAuthLBPodAnnotations returns pod annotations for vmstorage cluster component

func (*VTCluster) VMAuthLBPodLabels added in v0.63.0

func (cr *VTCluster) VMAuthLBPodLabels() map[string]string

VMAuthLBPodLabels returns pod labels for vtclusterlb-vmauth-balancer cluster component

func (*VTCluster) VMAuthLBSelectorLabels added in v0.63.0

func (cr *VTCluster) VMAuthLBSelectorLabels() map[string]string

VMAuthLBSelectorLabels defines selector labels for vmauth balancer

func (*VTCluster) VTInsertPodAnnotations added in v0.63.0

func (cr *VTCluster) VTInsertPodAnnotations() map[string]string

VTInsertPodAnnotations returns pod annotations for insert cluster component

func (*VTCluster) VTInsertPodLabels added in v0.63.0

func (cr *VTCluster) VTInsertPodLabels() map[string]string

VTInsertPodLabels returns pod labels for vtinsert cluster component

func (*VTCluster) VTInsertSelectorLabels added in v0.63.0

func (cr *VTCluster) VTInsertSelectorLabels() map[string]string

VTInsertSelectorLabels returns selector labels for insert cluster component

func (*VTCluster) VTSelectPodAnnotations added in v0.63.0

func (cr *VTCluster) VTSelectPodAnnotations() map[string]string

VTSelectPodAnnotations returns pod annotations for select cluster component

func (*VTCluster) VTSelectPodLabels added in v0.63.0

func (cr *VTCluster) VTSelectPodLabels() map[string]string

VTSelectPodLabels returns pod labels for select cluster component

func (*VTCluster) VTSelectSelectorLabels added in v0.63.0

func (cr *VTCluster) VTSelectSelectorLabels() map[string]string

VTSelectSelectorLabels returns selector labels for select cluster component

func (*VTCluster) VTStoragePodAnnotations added in v0.63.0

func (cr *VTCluster) VTStoragePodAnnotations() map[string]string

VTStoragePodAnnotations returns pod annotations for storage cluster component

func (*VTCluster) VTStoragePodLabels added in v0.63.0

func (cr *VTCluster) VTStoragePodLabels() map[string]string

VTStoragePodLabels returns pod labels for the vmstorage cluster component

func (*VTCluster) VTStorageSelectorLabels added in v0.63.0

func (cr *VTCluster) VTStorageSelectorLabels() map[string]string

VTStorageSelectorLabels returns pod labels for vtstorage cluster component

func (*VTCluster) Validate added in v0.63.0

func (cr *VTCluster) Validate() error

type VTClusterList added in v0.63.0

type VTClusterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []VTCluster `json:"items"`
}

VTClusterList contains a list of VTCluster

func (*VTClusterList) DeepCopy added in v0.63.0

func (in *VTClusterList) DeepCopy() *VTClusterList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VTClusterList.

func (*VTClusterList) DeepCopyInto added in v0.63.0

func (in *VTClusterList) DeepCopyInto(out *VTClusterList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VTClusterList) DeepCopyObject added in v0.63.0

func (in *VTClusterList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type VTClusterSpec added in v0.63.0

type VTClusterSpec struct {
	// ParsingError contents error with context if operator was failed to parse json object from kubernetes api server
	ParsingError string `json:"-" yaml:"-"`

	// ServiceAccountName is the name of the ServiceAccount to use to run the
	// VTSelect, VTInsert and VTStorage Pods.
	// +optional
	ServiceAccountName string `json:"serviceAccountName,omitempty"`

	// ClusterVersion defines default images tag for all components.
	// it can be overwritten with component specific image.tag value.
	// +optional
	ClusterVersion string `json:"clusterVersion,omitempty"`
	// ClusterDomainName defines domain name suffix for in-cluster dns addresses
	// aka .cluster.local
	// used by vtinsert and vtselect to build vtstorage address
	// +optional
	ClusterDomainName string `json:"clusterDomainName,omitempty"`

	// ImagePullSecrets An optional list of references to secrets in the same namespace
	// to use for pulling images from registries
	// see https://kubernetes.io/docs/concepts/containers/images/#referring-to-an-imagepullsecrets-on-a-pod
	// +optional
	ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`

	Insert  *VTInsert  `json:"insert,omitempty"`
	Select  *VTSelect  `json:"select,omitempty"`
	Storage *VTStorage `json:"storage,omitempty"`

	// Paused If set to true all actions on the underlying managed objects are not
	// going to be performed, except for delete actions.
	// +optional
	Paused bool `json:"paused,omitempty"`
	// UseStrictSecurity enables strict security mode for component
	// it restricts disk writes access
	// uses non-root user out of the box
	// drops not needed security permissions
	// +optional
	UseStrictSecurity *bool `json:"useStrictSecurity,omitempty"`

	// RequestsLoadBalancer configures load-balancing for vtinsert and vtselect requests.
	// It helps to evenly spread load across pods.
	// Usually it's not possible with Kubernetes TCP-based services.
	RequestsLoadBalancer vmv1beta1.VMAuthLoadBalancer `json:"requestsLoadBalancer,omitempty"`
	// ManagedMetadata defines metadata that will be added to the all objects
	// created by operator for the given CustomResource
	ManagedMetadata *vmv1beta1.ManagedObjectsMetadata `json:"managedMetadata,omitempty"`
}

VTClusterSpec defines the desired state of VTCluster

func (*VTClusterSpec) DeepCopy added in v0.63.0

func (in *VTClusterSpec) DeepCopy() *VTClusterSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VTClusterSpec.

func (*VTClusterSpec) DeepCopyInto added in v0.63.0

func (in *VTClusterSpec) DeepCopyInto(out *VTClusterSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VTClusterSpec) UnmarshalJSON added in v0.63.0

func (cr *VTClusterSpec) UnmarshalJSON(src []byte) error

UnmarshalJSON implements json.Unmarshaler interface

type VTClusterStatus added in v0.63.0

type VTClusterStatus struct {
	vmv1beta1.StatusMetadata `json:",inline"`
}

VTClusterStatus defines the observed state of VTCluster

func (*VTClusterStatus) DeepCopy added in v0.63.0

func (in *VTClusterStatus) DeepCopy() *VTClusterStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VTClusterStatus.

func (*VTClusterStatus) DeepCopyInto added in v0.63.0

func (in *VTClusterStatus) DeepCopyInto(out *VTClusterStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VTClusterStatus) GetStatusMetadata added in v0.63.0

func (cr *VTClusterStatus) GetStatusMetadata() *vmv1beta1.StatusMetadata

GetStatusMetadata returns metadata for object status

type VTInsert added in v0.63.0

type VTInsert struct {
	// PodMetadata configures Labels and Annotations which are propagated to the VTSelect pods.
	PodMetadata *vmv1beta1.EmbeddedObjectMetadata `json:"podMetadata,omitempty"`
	// LogFormat for VTSelect to be configured with.
	// default or json
	// +optional
	// +kubebuilder:validation:Enum=default;json
	LogFormat string `json:"logFormat,omitempty"`
	// LogLevel for VTSelect to be configured with.
	// +optional
	// +kubebuilder:validation:Enum=INFO;WARN;ERROR;FATAL;PANIC
	LogLevel string `json:"logLevel,omitempty"`

	// ServiceSpec that will be added to vtselect service spec
	// +optional
	ServiceSpec *vmv1beta1.AdditionalServiceSpec `json:"serviceSpec,omitempty"`
	// ServiceScrapeSpec that will be added to vtselect VMServiceScrape spec
	// +optional
	ServiceScrapeSpec *vmv1beta1.VMServiceScrapeSpec `json:"serviceScrapeSpec,omitempty"`
	// PodDisruptionBudget created by operator
	// +optional
	PodDisruptionBudget       *vmv1beta1.EmbeddedPodDisruptionBudgetSpec `json:"podDisruptionBudget,omitempty"`
	*vmv1beta1.EmbeddedProbes `json:",inline"`
	// Configures horizontal pod autoscaling.
	// +optional
	HPA *vmv1beta1.EmbeddedHPA `json:"hpa,omitempty"`

	// UpdateStrategy - overrides default update strategy.
	// +kubebuilder:validation:Enum=Recreate;RollingUpdate
	// +optional
	UpdateStrategy *appsv1.DeploymentStrategyType `json:"updateStrategy,omitempty"`
	// RollingUpdate - overrides deployment update params.
	// +optional
	RollingUpdate *appsv1.RollingUpdateDeployment `json:"rollingUpdate,omitempty"`

	vmv1beta1.CommonDefaultableParams           `json:",inline"`
	vmv1beta1.CommonApplicationDeploymentParams `json:",inline"`
}

VTInsert defines vtinsert component configuration at victoria-traces cluster

func (*VTInsert) DeepCopy added in v0.63.0

func (in *VTInsert) DeepCopy() *VTInsert

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VTInsert.

func (*VTInsert) DeepCopyInto added in v0.63.0

func (in *VTInsert) DeepCopyInto(out *VTInsert)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VTInsert) GetAdditionalService added in v0.63.0

func (cr *VTInsert) GetAdditionalService() *vmv1beta1.AdditionalServiceSpec

GetAdditionalService returns AdditionalServiceSpec settings

func (*VTInsert) GetExtraArgs added in v0.63.0

func (cr *VTInsert) GetExtraArgs() map[string]string

ExtraArgs returns additionally configured command-line arguments

func (*VTInsert) GetMetricPath added in v0.63.0

func (cr *VTInsert) GetMetricPath() string

GetMetricPath returns prefixed path for metric requests

func (*VTInsert) GetServiceScrape added in v0.63.0

func (cr *VTInsert) GetServiceScrape() *vmv1beta1.VMServiceScrapeSpec

ServiceScrape returns overrides for serviceScrape builder

func (*VTInsert) Probe added in v0.63.0

func (cr *VTInsert) Probe() *vmv1beta1.EmbeddedProbes

Probe implements build.probeCRD interface

func (*VTInsert) ProbeNeedLiveness added in v0.63.0

func (*VTInsert) ProbeNeedLiveness() bool

ProbeNeedLiveness implements build.probeCRD interface

func (*VTInsert) ProbePath added in v0.63.0

func (cr *VTInsert) ProbePath() string

ProbePath implements build.probeCRD interface

func (*VTInsert) ProbePort added in v0.63.0

func (cr *VTInsert) ProbePort() string

ProbePort implements build.probeCRD interface

func (*VTInsert) ProbeScheme added in v0.63.0

func (cr *VTInsert) ProbeScheme() string

ProbeScheme implements build.probeCRD interface

type VTSelect added in v0.63.0

type VTSelect struct {
	// PodMetadata configures Labels and Annotations which are propagated to the VTSelect pods.
	PodMetadata *vmv1beta1.EmbeddedObjectMetadata `json:"podMetadata,omitempty"`
	// LogFormat for VTSelect to be configured with.
	// default or json
	// +optional
	// +kubebuilder:validation:Enum=default;json
	LogFormat string `json:"logFormat,omitempty"`
	// LogLevel for VTSelect to be configured with.
	// +optional
	// +kubebuilder:validation:Enum=INFO;WARN;ERROR;FATAL;PANIC
	LogLevel string `json:"logLevel,omitempty"`

	// ServiceSpec that will be added to vtselect service spec
	// +optional
	ServiceSpec *vmv1beta1.AdditionalServiceSpec `json:"serviceSpec,omitempty"`
	// ServiceScrapeSpec that will be added to vtselect VMServiceScrape spec
	// +optional
	ServiceScrapeSpec *vmv1beta1.VMServiceScrapeSpec `json:"serviceScrapeSpec,omitempty"`
	// PodDisruptionBudget created by operator
	// +optional
	PodDisruptionBudget       *vmv1beta1.EmbeddedPodDisruptionBudgetSpec `json:"podDisruptionBudget,omitempty"`
	*vmv1beta1.EmbeddedProbes `json:",inline"`
	// Configures horizontal pod autoscaling.
	// +optional
	HPA *vmv1beta1.EmbeddedHPA `json:"hpa,omitempty"`

	// UpdateStrategy - overrides default update strategy.
	// +kubebuilder:validation:Enum=Recreate;RollingUpdate
	// +optional
	UpdateStrategy *appsv1.DeploymentStrategyType `json:"updateStrategy,omitempty"`
	// RollingUpdate - overrides deployment update params.
	// +optional
	RollingUpdate *appsv1.RollingUpdateDeployment `json:"rollingUpdate,omitempty"`

	vmv1beta1.CommonDefaultableParams           `json:",inline"`
	vmv1beta1.CommonApplicationDeploymentParams `json:",inline"`
}

VTSelect defines vtselect component configuration at victoria-traces cluster

func (*VTSelect) DeepCopy added in v0.63.0

func (in *VTSelect) DeepCopy() *VTSelect

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VTSelect.

func (*VTSelect) DeepCopyInto added in v0.63.0

func (in *VTSelect) DeepCopyInto(out *VTSelect)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VTSelect) GetAdditionalService added in v0.63.0

func (cr *VTSelect) GetAdditionalService() *vmv1beta1.AdditionalServiceSpec

GetAdditionalService returns AdditionalServiceSpec settings

func (*VTSelect) GetExtraArgs added in v0.63.0

func (cr *VTSelect) GetExtraArgs() map[string]string

ExtraArgs returns additionally configured command-line arguments

func (*VTSelect) GetMetricPath added in v0.63.0

func (cr *VTSelect) GetMetricPath() string

GetMetricPath returns prefixed path for metric requests

func (*VTSelect) GetServiceScrape added in v0.63.0

func (cr *VTSelect) GetServiceScrape() *vmv1beta1.VMServiceScrapeSpec

ServiceScrape returns overrides for serviceScrape builder

func (*VTSelect) Probe added in v0.63.0

func (cr *VTSelect) Probe() *vmv1beta1.EmbeddedProbes

Probe implements build.probeCRD interface

func (*VTSelect) ProbeNeedLiveness added in v0.63.0

func (*VTSelect) ProbeNeedLiveness() bool

ProbeNeedLiveness implements build.probeCRD interface

func (*VTSelect) ProbePath added in v0.63.0

func (cr *VTSelect) ProbePath() string

ProbePath implements build.probeCRD interface

func (*VTSelect) ProbePort added in v0.63.0

func (cr *VTSelect) ProbePort() string

ProbePort implements build.probeCRD interface

func (*VTSelect) ProbeScheme added in v0.63.0

func (cr *VTSelect) ProbeScheme() string

ProbeScheme implements build.probeCRD interface

type VTSingle added in v0.63.0

type VTSingle struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec VTSingleSpec `json:"spec,omitempty"`
	// ParsedLastAppliedSpec contains last-applied configuration spec
	ParsedLastAppliedSpec *VTSingleSpec `json:"-" yaml:"-"`

	Status VTSingleStatus `json:"status,omitempty"`
}

VTSingle is fast, cost-effective and scalable traces database. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +operator-sdk:gen-csv:customresourcedefinitions.displayName="VTSingle 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:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:path=vtsingles,scope=Namespaced +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.status",description="Current status of traces instance update process" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" VTSingle is the Schema for the API

func (*VTSingle) AllLabels added in v0.63.0

func (cr *VTSingle) AllLabels() map[string]string

AllLabels returns combination of selector and managed labels

func (*VTSingle) AnnotationsFiltered added in v0.63.0

func (cr *VTSingle) AnnotationsFiltered() map[string]string

AnnotationsFiltered returns global annotations to be applied for created objects

func (*VTSingle) AsOwner added in v0.63.0

func (r *VTSingle) AsOwner() []metav1.OwnerReference

AsOwner returns owner references with current object as owner

func (*VTSingle) AsURL added in v0.63.0

func (cr *VTSingle) AsURL() string

AsURL returns URL for components access

func (*VTSingle) DeepCopy added in v0.63.0

func (in *VTSingle) DeepCopy() *VTSingle

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VTSingle.

func (*VTSingle) DeepCopyInto added in v0.63.0

func (in *VTSingle) DeepCopyInto(out *VTSingle)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VTSingle) DeepCopyObject added in v0.63.0

func (in *VTSingle) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*VTSingle) DefaultStatusFields added in v0.63.0

func (cr *VTSingle) DefaultStatusFields(vs *VTSingleStatus)

DefaultStatusFields implements reconcile.ObjectWithDeepCopyAndStatus interface

func (*VTSingle) GetAdditionalService added in v0.63.0

func (cr *VTSingle) GetAdditionalService() *vmv1beta1.AdditionalServiceSpec

GetAdditionalService returns AdditionalServiceSpec settings

func (*VTSingle) GetExtraArgs added in v0.63.0

func (cr *VTSingle) GetExtraArgs() map[string]string

GetExtraArgs returns additionally configured command-line arguments

func (*VTSingle) GetMetricPath added in v0.63.0

func (cr *VTSingle) GetMetricPath() string

GetMetricPath returns prefixed path for metric requests

func (*VTSingle) GetServiceAccountName added in v0.63.0

func (cr *VTSingle) GetServiceAccountName() string

GetServiceAccountName returns service account name for components

func (*VTSingle) GetServiceScrape added in v0.63.0

func (cr *VTSingle) GetServiceScrape() *vmv1beta1.VMServiceScrapeSpec

GetServiceScrape returns overrides for serviceScrape builder

func (*VTSingle) GetStatus added in v0.63.0

func (cr *VTSingle) GetStatus() *VTSingleStatus

GetStatus implements reconcile.ObjectWithDeepCopyAndStatus interface

func (*VTSingle) HasSpecChanges added in v0.63.0

func (cr *VTSingle) HasSpecChanges() (bool, error)

HasSpecChanges compares vtsingle spec with last applied vtsingle spec stored in annotation

func (*VTSingle) IsOwnsServiceAccount added in v0.63.0

func (cr *VTSingle) IsOwnsServiceAccount() bool

IsOwnsServiceAccount checks if ServiceAccountName is set explicitly

func (*VTSingle) LastAppliedSpecAsPatch added in v0.63.0

func (cr *VTSingle) LastAppliedSpecAsPatch() (client.Patch, error)

LastAppliedSpecAsPatch return last applied vtsingle spec as patch annotation

func (*VTSingle) Paused added in v0.63.0

func (cr *VTSingle) Paused() bool

func (*VTSingle) PodAnnotations added in v0.63.0

func (r *VTSingle) PodAnnotations() map[string]string

func (*VTSingle) PodLabels added in v0.63.0

func (cr *VTSingle) PodLabels() map[string]string

PodLabels returns labels attached to the podMetadata

func (*VTSingle) PrefixedName added in v0.63.0

func (cr *VTSingle) PrefixedName() string

PrefixedName format name of the component with hard-coded prefix

func (*VTSingle) Probe added in v0.63.0

func (cr *VTSingle) Probe() *vmv1beta1.EmbeddedProbes

Probe implements build.probeCRD interface

func (*VTSingle) ProbeNeedLiveness added in v0.63.0

func (cr *VTSingle) ProbeNeedLiveness() bool

ProbeNeedLiveness implements build.probeCRD interface

func (*VTSingle) ProbePath added in v0.63.0

func (cr *VTSingle) ProbePath() string

ProbePath implements build.probeCRD interface

func (*VTSingle) ProbePort added in v0.63.0

func (cr *VTSingle) ProbePort() string

ProbePort implements build.probeCRD interface

func (*VTSingle) ProbeScheme added in v0.63.0

func (cr *VTSingle) ProbeScheme() string

ProbeScheme implements build.probeCRD interface

func (*VTSingle) SelectorLabels added in v0.63.0

func (cr *VTSingle) SelectorLabels() map[string]string

SelectorLabels returns unique labels for object

func (*VTSingle) SetLastSpec added in v0.63.0

func (cr *VTSingle) SetLastSpec(prevSpec VTSingleSpec)

SetLastSpec implements objectWithLastAppliedState interface

func (*VTSingle) UnmarshalJSON added in v0.63.0

func (cr *VTSingle) UnmarshalJSON(src []byte) error

UnmarshalJSON implements json.Unmarshaler interface

func (*VTSingle) Validate added in v0.63.0

func (cr *VTSingle) Validate() error

Validate checks if spec is correct

type VTSingleList added in v0.63.0

type VTSingleList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []VTSingle `json:"items"`
}

VTSingleList contains a list of VTSingle

func (*VTSingleList) DeepCopy added in v0.63.0

func (in *VTSingleList) DeepCopy() *VTSingleList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VTSingleList.

func (*VTSingleList) DeepCopyInto added in v0.63.0

func (in *VTSingleList) DeepCopyInto(out *VTSingleList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VTSingleList) DeepCopyObject added in v0.63.0

func (in *VTSingleList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type VTSingleSpec added in v0.63.0

type VTSingleSpec struct {
	// ParsingError contents error with context if operator was failed to parse json object from kubernetes api server
	ParsingError string `json:"-" yaml:"-"`

	// PodMetadata configures Labels and Annotations which are propagated to the VTSingle pods.
	// +optional
	PodMetadata *vmv1beta1.EmbeddedObjectMetadata `json:"podMetadata,omitempty"`
	// ManagedMetadata defines metadata that will be added to the all objects
	// created by operator for the given CustomResource
	ManagedMetadata *vmv1beta1.ManagedObjectsMetadata `json:"managedMetadata,omitempty"`

	vmv1beta1.CommonDefaultableParams           `json:",inline,omitempty"`
	vmv1beta1.CommonApplicationDeploymentParams `json:",inline,omitempty"`

	// LogLevel for VictoriaTraces to be configured with.
	// +optional
	// +kubebuilder:validation:Enum=INFO;WARN;ERROR;FATAL;PANIC
	LogLevel string `json:"logLevel,omitempty"`
	// LogFormat for VTSingle to be configured with.
	// +optional
	// +kubebuilder:validation:Enum=default;json
	LogFormat string `json:"logFormat,omitempty"`
	// StorageDataPath disables spec.storage option and overrides arg for victoria-traces binary --storageDataPath,
	// its users responsibility to mount proper device into given path.
	// +optional
	StorageDataPath string `json:"storageDataPath,omitempty"`
	// Storage is the definition of how storage will be used by the VTSingle
	// by default it`s empty dir
	// +optional
	Storage *corev1.PersistentVolumeClaimSpec `json:"storage,omitempty"`
	// StorageMeta defines annotations and labels attached to PVC for given vtsingle CR
	// +optional
	StorageMetadata vmv1beta1.EmbeddedObjectMetadata `json:"storageMetadata,omitempty"`
	// RetentionPeriod for the stored traces
	// https://docs.victoriametrics.com/victoriatraces/#configure-and-run-victoriatraces
	// +optional
	// +kubebuilder:validation:Pattern:="^[0-9]+(h|d|w|y)?$"
	RetentionPeriod string `json:"retentionPeriod,omitempty"`
	// RetentionMaxDiskSpaceUsageBytes for the stored traces
	// VictoriaTraces keeps at least two last days of data in order to guarantee that the traces for the last day can be returned in queries.
	// This means that the total disk space usage may exceed the -retention.maxDiskSpaceUsageBytes,
	// if the size of the last two days of data exceeds the -retention.maxDiskSpaceUsageBytes.
	// https://docs.victoriametrics.com/victoriatraces/#configure-and-run-victoriatraces
	// +optional
	RetentionMaxDiskSpaceUsageBytes vmv1beta1.BytesString `json:"retentionMaxDiskSpaceUsageBytes,omitempty"`
	// FutureRetention for the stored traces
	// Log entries with timestamps bigger than now+futureRetention are rejected during data ingestion;
	// see https://docs.victoriametrics.com/victoriatraces/#configure-and-run-victoriatraces
	// +optional
	// +kubebuilder:validation:Pattern:="^[0-9]+(h|d|y)?$"
	FutureRetention string `json:"futureRetention,omitempty"`
	// LogNewStreams Whether to log creation of new streams; this can be useful for debugging of high cardinality issues with log streams;
	// see https://docs.victoriametrics.com/victoriatraces/#configure-and-run-victoriatraces
	LogNewStreams bool `json:"logNewStreams,omitempty"`
	// Whether to log all the ingested log entries; this can be useful for debugging of data ingestion;
	// see https://docs.victoriametrics.com/victoriatraces/#configure-and-run-victoriatraces
	LogIngestedRows bool `json:"logIngestedRows,omitempty"`
	// ServiceSpec that will be added to vtsingle service spec
	// +optional
	ServiceSpec *vmv1beta1.AdditionalServiceSpec `json:"serviceSpec,omitempty"`
	// ServiceScrapeSpec that will be added to vtsingle VMServiceScrape spec
	// +optional
	ServiceScrapeSpec *vmv1beta1.VMServiceScrapeSpec `json:"serviceScrapeSpec,omitempty"`
	// LivenessProbe that will be added to VTSingle pod
	*vmv1beta1.EmbeddedProbes `json:",inline"`

	// ServiceAccountName is the name of the ServiceAccount to use to run the pods
	// +optional
	ServiceAccountName string `json:"serviceAccountName,omitempty"`
}

VTSingleSpec defines the desired state of VTSingle +k8s:openapi-gen=true

func (*VTSingleSpec) DeepCopy added in v0.63.0

func (in *VTSingleSpec) DeepCopy() *VTSingleSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VTSingleSpec.

func (*VTSingleSpec) DeepCopyInto added in v0.63.0

func (in *VTSingleSpec) DeepCopyInto(out *VTSingleSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VTSingleSpec) UnmarshalJSON added in v0.63.0

func (cr *VTSingleSpec) UnmarshalJSON(src []byte) error

UnmarshalJSON implements json.Unmarshaler interface

type VTSingleStatus added in v0.63.0

type VTSingleStatus struct {
	vmv1beta1.StatusMetadata `json:",inline"`
}

VTSingleStatus defines the observed state of VTSingle

func (*VTSingleStatus) DeepCopy added in v0.63.0

func (in *VTSingleStatus) DeepCopy() *VTSingleStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VTSingleStatus.

func (*VTSingleStatus) DeepCopyInto added in v0.63.0

func (in *VTSingleStatus) DeepCopyInto(out *VTSingleStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VTSingleStatus) GetStatusMetadata added in v0.63.0

func (cr *VTSingleStatus) GetStatusMetadata() *vmv1beta1.StatusMetadata

GetStatusMetadata returns metadata for object status

type VTStorage added in v0.63.0

type VTStorage struct {
	// RetentionPeriod for the stored traces
	// https://docs.victoriametrics.com/victoriatraces/#configure-and-run-victoriatraces
	// +optional
	// +kubebuilder:validation:Pattern:="^[0-9]+(h|d|w|y)?$"
	RetentionPeriod string `json:"retentionPeriod,omitempty"`
	// RetentionMaxDiskSpaceUsageBytes for the stored traces
	// VictoriaTraces keeps at least two last days of data in order to guarantee that the traces for the last day can be returned in queries.
	// This means that the total disk space usage may exceed the -retention.maxDiskSpaceUsageBytes,
	// if the size of the last two days of data exceeds the -retention.maxDiskSpaceUsageBytes.
	// https://docs.victoriametrics.com/victoriatraces/#configure-and-run-victoriatraces
	// +optional
	RetentionMaxDiskSpaceUsageBytes vmv1beta1.BytesString `json:"retentionMaxDiskSpaceUsageBytes,omitempty"`
	// FutureRetention for the stored traces
	// Log entries with timestamps bigger than now+futureRetention are rejected during data ingestion
	// see https://docs.victoriametrics.com/victoriatraces/#configure-and-run-victoriatraces
	// +optional
	// +kubebuilder:validation:Pattern:="^[0-9]+(h|d|w|y)?$"
	FutureRetention string `json:"futureRetention,omitempty"`
	// LogNewStreams Whether to log creation of new streams; this can be useful for debugging of high cardinality issues with log streams
	// see https://docs.victoriametrics.com/victoriatraces/#configure-and-run-victoriatraces
	LogNewStreams bool `json:"logNewStreams,omitempty"`
	// Whether to log all the ingested log entries; this can be useful for debugging of data ingestion
	// see https://docs.victoriametrics.com/victoriatraces/#configure-and-run-victoriatraces
	LogIngestedRows bool `json:"logIngestedRows,omitempty"`

	// PodMetadata configures Labels and Annotations which are propagated to the VTStorage pods.
	PodMetadata *vmv1beta1.EmbeddedObjectMetadata `json:"podMetadata,omitempty"`
	// LogFormat for VTStorage to be configured with.
	// default or json
	// +optional
	// +kubebuilder:validation:Enum=default;json
	LogFormat string `json:"logFormat,omitempty"`
	// LogLevel for VTStorage to be configured with.
	// +optional
	// +kubebuilder:validation:Enum=INFO;WARN;ERROR;FATAL;PANIC
	LogLevel string `json:"logLevel,omitempty"`

	// ServiceSpec that will be added to vtselect service spec
	// +optional
	ServiceSpec *vmv1beta1.AdditionalServiceSpec `json:"serviceSpec,omitempty"`
	// ServiceScrapeSpec that will be added to vtselect VMServiceScrape spec
	// +optional
	ServiceScrapeSpec *vmv1beta1.VMServiceScrapeSpec `json:"serviceScrapeSpec,omitempty"`
	// PodDisruptionBudget created by operator
	// +optional
	PodDisruptionBudget       *vmv1beta1.EmbeddedPodDisruptionBudgetSpec `json:"podDisruptionBudget,omitempty"`
	*vmv1beta1.EmbeddedProbes `json:",inline"`
	// RollingUpdateStrategy defines strategy for application updates
	// Default is OnDelete, in this case operator handles update process
	// Can be changed for RollingUpdate
	// +optional
	RollingUpdateStrategy appsv1.StatefulSetUpdateStrategyType `json:"rollingUpdateStrategy,omitempty"`
	// ClaimTemplates allows adding additional VolumeClaimTemplates for StatefulSet
	ClaimTemplates []corev1.PersistentVolumeClaim `json:"claimTemplates,omitempty"`

	// StorageDataPath - path to storage data
	// +optional
	StorageDataPath string `json:"storageDataPath,omitempty"`
	// Storage configures persistent volume for VTStorage
	// +optional
	Storage *vmv1beta1.StorageSpec `json:"storage,omitempty"`
	// PersistentVolumeClaimRetentionPolicy allows configuration of PVC retention policy
	// +optional
	PersistentVolumeClaimRetentionPolicy *appsv1.StatefulSetPersistentVolumeClaimRetentionPolicy `json:"persistentVolumeClaimRetentionPolicy,omitempty"`

	// MaintenanceInsertNodeIDs - excludes given node ids from insert requests routing, must contain pod suffixes - for pod-0, id will be 0 and etc.
	// lets say, you have pod-0, pod-1, pod-2, pod-3. to exclude pod-0 and pod-3 from insert routing, define nodeIDs: [0,3].
	// Useful at storage expanding, when you want to rebalance some data at cluster.
	// +optional
	MaintenanceInsertNodeIDs []int32 `json:"maintenanceInsertNodeIDs,omitempty"`
	// MaintenanceInsertNodeIDs - excludes given node ids from select requests routing, must contain pod suffixes - for pod-0, id will be 0 and etc.
	MaintenanceSelectNodeIDs []int32 `json:"maintenanceSelectNodeIDs,omitempty"`

	vmv1beta1.CommonDefaultableParams           `json:",inline"`
	vmv1beta1.CommonApplicationDeploymentParams `json:",inline"`

	// RollingUpdateStrategyBehavior defines customized behavior for rolling updates.
	// It applies if the RollingUpdateStrategy is set to OnDelete, which is the default.
	// +optional
	RollingUpdateStrategyBehavior *vmv1beta1.StatefulSetUpdateStrategyBehavior `json:"rollingUpdateStrategyBehavior,omitempty"`
}

VTStorage defines vtstorage component configuration at victoria-traces cluster

func (*VTStorage) DeepCopy added in v0.63.0

func (in *VTStorage) DeepCopy() *VTStorage

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VTStorage.

func (*VTStorage) DeepCopyInto added in v0.63.0

func (in *VTStorage) DeepCopyInto(out *VTStorage)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VTStorage) GetAdditionalService added in v0.63.0

func (cr *VTStorage) GetAdditionalService() *vmv1beta1.AdditionalServiceSpec

GetAdditionalService returns AdditionalServiceSpec settings

func (*VTStorage) GetExtraArgs added in v0.63.0

func (cr *VTStorage) GetExtraArgs() map[string]string

ExtraArgs returns additionally configured command-line arguments

func (*VTStorage) GetMetricPath added in v0.63.0

func (cr *VTStorage) GetMetricPath() string

GetMetricPath returns prefixed path for metric requests

func (*VTStorage) GetServiceScrape added in v0.63.0

func (cr *VTStorage) GetServiceScrape() *vmv1beta1.VMServiceScrapeSpec

ServiceScrape returns overrides for serviceScrape builder

func (*VTStorage) GetStorageVolumeName added in v0.63.0

func (cr *VTStorage) GetStorageVolumeName() string

GetStorageVolumeName returns formatted name for vtstorage volume

func (*VTStorage) Probe added in v0.63.0

func (cr *VTStorage) Probe() *vmv1beta1.EmbeddedProbes

Probe implements build.probeCRD interface

func (*VTStorage) ProbeNeedLiveness added in v0.63.0

func (*VTStorage) ProbeNeedLiveness() bool

ProbeNeedLiveness implements build.probeCRD interface

func (*VTStorage) ProbePath added in v0.63.0

func (cr *VTStorage) ProbePath() string

ProbePath implements build.probeCRD interface

func (*VTStorage) ProbePort added in v0.63.0

func (cr *VTStorage) ProbePort() string

ProbePort implements build.probeCRD interface

func (*VTStorage) ProbeScheme added in v0.63.0

func (cr *VTStorage) ProbeScheme() string

ProbeScheme implements build.probeCRD interface

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL