Documentation
¶
Index ¶
Constants ¶
View Source
const (
UnLimitedResource = "unlimited"
)
Variables ¶
This section is empty.
Functions ¶
func ConfigAsMetrics ¶ added in v0.62.0
func ConfigAsMetrics(r metrics.RegistererGatherer, cfg *BaseOperatorConf)
ConfigAsMetrics exposes major configuration params as prometheus metrics
func IsClusterWideAccessAllowed ¶ added in v0.34.0
func IsClusterWideAccessAllowed() bool
IsClusterWideAccessAllowed checks if cluster wide access for components is needed
Types ¶
type ApplicationDefaults ¶ added in v0.48.0
type ApplicationDefaults struct {
Image string
Version string
ConfigReloadImage string
Port string
UseDefaultResources bool
Resource struct {
Limit struct {
Mem string
Cpu string
}
Request struct {
Mem string
Cpu string
}
}
ConfigReloaderCPU string
ConfigReloaderMemory string
}
ApplicationDefaults is useful for generic default building uses the same memory as application default at config
type BaseOperatorConf ¶
type BaseOperatorConf struct {
MetricsVersion string `default:"${VM_METRICS_VERSION}" env:"VM_METRICS_VERSION,expand"`
LogsVersion string `default:"${VM_LOGS_VERSION}" env:"VM_LOGS_VERSION,expand"`
AnomalyVersion string `default:"${VM_ANOMALY_VERSION}" env:"VM_ANOMALY_VERSION,expand"`
TracesVertsion string `default:"${VM_TRACES_VERSION}" env:"VM_TRACES_VERSION,expand"`
OperatorVersion string `default:"${VM_OPERATOR_VERSION}" env:"VM_OPERATOR_VERSION,expand"`
GatewayAPIEnabled bool `default:"false" env:"VM_GATEWAY_API_ENABLED"`
// Defines a list of namespaces to be watched by operator.
// Operator don't perform any cluster wide API calls if namespaces not empty.
// In case of empty list it performs only clusterwide api calls.
WatchNamespaces []string `default:"" env:"WATCH_NAMESPACE"`
// enables custom config reloader for vmauth and vmagent,
// it should speed-up config reloading process.
UseVMConfigReloader bool `default:"true" env:"VM_USECUSTOMCONFIGRELOADER"`
// container registry name prefix, e.g. docker.io
ContainerRegistry string `default:"" env:"VM_CONTAINERREGISTRY"`
VMConfigReloaderImage string `default:"victoriametrics/operator:config-reloader-${VM_OPERATOR_VERSION}" env:"VM_CUSTOMCONFIGRELOADERIMAGE,expand"`
PSPAutoCreateEnabled bool `default:"false" env:"VM_PSPAUTOCREATEENABLED"`
EnableTCP6 bool `default:"false" env:"VM_ENABLETCP6"`
// defines global resource.limits.cpu for all config-reloader containers
ConfigReloaderLimitCPU string `default:"unlimited" env:"VM_CONFIG_RELOADER_LIMIT_CPU"`
// defines global resource.limits.memory for all config-reloader containers
ConfigReloaderLimitMemory string `default:"unlimited" env:"VM_CONFIG_RELOADER_LIMIT_MEMORY"`
// defines global resource.requests.cpu for all config-reloader containers
ConfigReloaderRequestCPU string `default:"" env:"VM_CONFIG_RELOADER_REQUEST_CPU"`
// defines global resource.requests.memory for all config-reloader containers
ConfigReloaderRequestMemory string `default:"" env:"VM_CONFIG_RELOADER_REQUEST_MEMORY"`
VLogsDefault struct {
Image string `default:"victoriametrics/victoria-logs"`
Version string `env:",expand" default:"${VM_LOGS_VERSION}"`
ConfigReloadImage string `env:"-"`
Port string `default:"9428"`
UseDefaultResources bool `default:"true" env:"USEDEFAULTRESOURCES"`
Resource struct {
Limit struct {
Mem string `default:"1500Mi"`
Cpu string `default:"1200m"`
} `prefix:"LIMIT_"`
Request struct {
Mem string `default:"500Mi"`
Cpu string `default:"150m"`
} `prefix:"REQUEST_"`
} `prefix:"RESOURCE_"`
ConfigReloaderCPU string `env:"-"`
ConfigReloaderMemory string `env:"-"`
} `prefix:"VM_VLOGSDEFAULT_"`
VLAgentDefault struct {
Image string `default:"victoriametrics/vlagent"`
Version string `env:",expand" default:"${VM_LOGS_VERSION}"`
ConfigReloadImage string `env:"-"`
Port string `default:"9429"`
UseDefaultResources bool `default:"true" env:"USEDEFAULTRESOURCES"`
Resource struct {
Limit struct {
Mem string `default:"500Mi"`
Cpu string `default:"200m"`
} `prefix:"LIMIT_"`
Request struct {
Mem string `default:"200Mi"`
Cpu string `default:"50m"`
} `prefix:"REQUEST_"`
} `prefix:"RESOURCE_"`
ConfigReloaderCPU string `env:"-"`
ConfigReloaderMemory string `env:"-"`
} `prefix:"VM_VLAGENTDEFAULT_"`
VLSingleDefault struct {
Image string `default:"victoriametrics/victoria-logs"`
Version string `env:",expand" default:"${VM_LOGS_VERSION}"`
ConfigReloadImage string `env:"-"`
Port string `default:"9428"`
UseDefaultResources bool `default:"true" env:"USEDEFAULTRESOURCES"`
Resource struct {
Limit struct {
Mem string `default:"1500Mi"`
Cpu string `default:"1200m"`
} `prefix:"LIMIT_"`
Request struct {
Mem string `default:"500Mi"`
Cpu string `default:"150m"`
} `prefix:"REQUEST_"`
} `prefix:"RESOURCE_"`
ConfigReloaderCPU string `env:"-"`
ConfigReloaderMemory string `env:"-"`
} `prefix:"VM_VLSINGLEDEFAULT_"`
VTSingleDefault struct {
Image string `default:"victoriametrics/victoria-traces"`
Version string `env:",expand" default:"${VM_TRACES_VERSION}"`
ConfigReloadImage string `env:"-"`
Port string `default:"10428"`
UseDefaultResources bool `default:"true" env:"USEDEFAULTRESOURCES"`
Resource struct {
Limit struct {
Mem string `default:"1500Mi"`
Cpu string `default:"1200m"`
} `prefix:"LIMIT_"`
Request struct {
Mem string `default:"500Mi"`
Cpu string `default:"150m"`
} `prefix:"REQUEST_"`
} `prefix:"RESOURCE_"`
ConfigReloaderCPU string `env:"-"`
ConfigReloaderMemory string `env:"-"`
} `prefix:"VM_VTSINGLEDEFAULT_"`
VMAlertDefault struct {
Image string `default:"victoriametrics/vmalert"`
Version string `env:",expand" default:"${VM_METRICS_VERSION}"`
ConfigReloadImage string `default:"jimmidyson/configmap-reload:v0.3.0" env:"CONFIGRELOADIMAGE"`
Port string `default:"8080"`
UseDefaultResources bool `default:"true" env:"USEDEFAULTRESOURCES"`
Resource struct {
Limit struct {
Mem string `default:"500Mi"`
Cpu string `default:"200m"`
} `prefix:"LIMIT_"`
Request struct {
Mem string `default:"200Mi"`
Cpu string `default:"50m"`
} `prefix:"REQUEST_"`
} `prefix:"RESOURCE_"`
// Deprecated: use VM_CONFIG_RELOADER_REQUEST_CPU instead
ConfigReloaderCPU string `default:"10m" env:"CONFIGRELOADERCPU"`
// Deprecated: use VM_CONFIG_RELOADER_REQUEST_MEMORY instead
ConfigReloaderMemory string `default:"25Mi" env:"CONFIGRELOADERMEMORY"`
} `prefix:"VM_VMALERTDEFAULT_"`
VMServiceScrapeDefault struct {
// Use endpointslices instead of endpoints as discovery role
// for vmservicescrape when generate scrape config for vmagent.
EnforceEndpointSlices bool `default:"false" env:"ENFORCEENDPOINTSLICES"`
} `prefix:"VM_VMSERVICESCRAPEDEFAULT_"`
VMAgentDefault struct {
Image string `default:"victoriametrics/vmagent"`
Version string `env:",expand" default:"${VM_METRICS_VERSION}"`
ConfigReloadImage string `default:"quay.io/prometheus-operator/prometheus-config-reloader:v0.82.1" env:"CONFIGRELOADIMAGE"`
Port string `default:"8429"`
UseDefaultResources bool `default:"true" env:"USEDEFAULTRESOURCES"`
Resource struct {
Limit struct {
Mem string `default:"500Mi"`
Cpu string `default:"200m"`
} `prefix:"LIMIT_"`
Request struct {
Mem string `default:"200Mi"`
Cpu string `default:"50m"`
} `prefix:"REQUEST_"`
} `prefix:"RESOURCE_"`
// Deprecated: use VM_CONFIG_RELOADER_REQUEST_CPU instead
ConfigReloaderCPU string `default:"10m" env:"CONFIGRELOADERCPU"`
// Deprecated: use VM_CONFIG_RELOADER_REQUEST_MEMORY instead
ConfigReloaderMemory string `default:"25Mi" env:"CONFIGRELOADERMEMORY"`
} `prefix:"VM_VMAGENTDEFAULT_"`
VMAnomalyDefault struct {
Image string `default:"victoriametrics/vmanomaly"`
Version string `env:",expand" default:"${VM_ANOMALY_VERSION}"`
ConfigReloadImage string `default:"quay.io/prometheus-operator/prometheus-config-reloader:v0.82.1" env:"CONFIGRELOADIMAGE"`
Port string `default:"8490"`
UseDefaultResources bool `default:"true" env:"USEDEFAULTRESOURCES"`
Resource struct {
Limit struct {
Mem string `default:"500Mi"`
Cpu string `default:"200m"`
} `prefix:"LIMIT_"`
Request struct {
Mem string `default:"200Mi"`
Cpu string `default:"50m"`
} `prefix:"REQUEST_"`
} `prefix:"RESOURCE_"`
// Deprecated: use VM_CONFIG_RELOADER_REQUEST_CPU instead
ConfigReloaderCPU string `default:"10m" env:"CONFIGRELOADERCPU"`
// Deprecated: use VM_CONFIG_RELOADER_REQUEST_MEMORY instead
ConfigReloaderMemory string `default:"25Mi" env:"CONFIGRELOADERMEMORY"`
} `prefix:"VM_VMANOMALYDEFAULT_"`
VMSingleDefault struct {
Image string `default:"victoriametrics/victoria-metrics"`
Version string `env:",expand" default:"${VM_METRICS_VERSION}"`
ConfigReloadImage string `env:"-"`
Port string `default:"8429"`
UseDefaultResources bool `default:"true" env:"USEDEFAULTRESOURCES"`
Resource struct {
Limit struct {
Mem string `default:"1500Mi"`
Cpu string `default:"1200m"`
} `prefix:"LIMIT_"`
Request struct {
Mem string `default:"500Mi"`
Cpu string `default:"150m"`
} `prefix:"REQUEST_"`
} `prefix:"RESOURCE_"`
ConfigReloaderCPU string `env:"-"`
ConfigReloaderMemory string `env:"-"`
} `prefix:"VM_VMSINGLEDEFAULT_"`
VMClusterDefault struct {
UseDefaultResources bool `default:"true" env:"USEDEFAULTRESOURCES"`
VMSelectDefault struct {
Image string `default:"victoriametrics/vmselect"`
Version string `env:",expand" default:"${VM_METRICS_VERSION}-cluster"`
Port string `default:"8481"`
Resource struct {
Limit struct {
Mem string `default:"1000Mi"`
Cpu string `default:"500m"`
} `prefix:"LIMIT_"`
Request struct {
Mem string `default:"500Mi"`
Cpu string `default:"100m"`
} `prefix:"REQUEST_"`
} `prefix:"RESOURCE_"`
} `prefix:"VMSELECTDEFAULT_"`
VMStorageDefault struct {
Image string `default:"victoriametrics/vmstorage"`
Version string `env:",expand" default:"${VM_METRICS_VERSION}-cluster"`
VMInsertPort string `default:"8400" env:"VMINSERTPORT"`
VMSelectPort string `default:"8401" env:"VMSELECTPORT"`
Port string `default:"8482"`
Resource struct {
Limit struct {
Mem string `default:"1500Mi"`
Cpu string `default:"1000m"`
} `prefix:"LIMIT_"`
Request struct {
Mem string `default:"500Mi"`
Cpu string `default:"250m"`
} `prefix:"REQUEST_"`
} `prefix:"RESOURCE_"`
} `prefix:"VMSTORAGEDEFAULT_"`
VMInsertDefault struct {
Image string `default:"victoriametrics/vminsert"`
Version string `env:",expand" default:"${VM_METRICS_VERSION}-cluster"`
Port string `default:"8480"`
Resource struct {
Limit struct {
Mem string `default:"500Mi"`
Cpu string `default:"500m"`
} `prefix:"LIMIT_"`
Request struct {
Mem string `default:"200Mi"`
Cpu string `default:"150m"`
} `prefix:"REQUEST_"`
} `prefix:"RESOURCE_"`
} `prefix:"VMINSERTDEFAULT_"`
} `prefix:"VM_VMCLUSTERDEFAULT_"`
VMAlertManager struct {
ConfigReloaderImage string `default:"jimmidyson/configmap-reload:v0.3.0" env:"CONFIGRELOADERIMAGE"`
// Deprecated: use VM_CONFIG_RELOADER_REQUEST_CPU instead
ConfigReloaderCPU string `default:"10m" env:"CONFIGRELOADERCPU"`
// Deprecated: use VM_CONFIG_RELOADER_REQUEST_MEMORY instead
ConfigReloaderMemory string `default:"25Mi" env:"CONFIGRELOADERMEMORY"`
AlertmanagerDefaultBaseImage string `default:"prom/alertmanager" env:"ALERTMANAGERDEFAULTBASEIMAGE"`
AlertManagerVersion string `default:"v0.29.0" env:"ALERTMANAGERVERSION"`
UseDefaultResources bool `default:"true" env:"USEDEFAULTRESOURCES"`
Resource struct {
Limit struct {
Mem string `default:"256Mi"`
Cpu string `default:"100m"`
} `prefix:"LIMIT_"`
Request struct {
Mem string `default:"56Mi"`
Cpu string `default:"30m"`
} `prefix:"REQUEST_"`
} `prefix:"RESOURCE_"`
} `prefix:"VM_VMALERTMANAGER_"`
DisableSelfServiceScrapeCreation bool `default:"false" env:"VM_DISABLESELFSERVICESCRAPECREATION"`
VMBackup struct {
Image string `default:"victoriametrics/vmbackupmanager"`
Version string `env:",expand" default:"${VM_METRICS_VERSION}-enterprise"`
Port string `default:"8300"`
UseDefaultResources bool `default:"true" env:"USEDEFAULTRESOURCES"`
Resource struct {
Limit struct {
Mem string `default:"500Mi"`
Cpu string `default:"500m"`
} `prefix:"LIMIT_"`
Request struct {
Mem string `default:"200Mi"`
Cpu string `default:"150m"`
} `prefix:"REQUEST_"`
} `prefix:"RESOURCE_"`
} `prefix:"VM_VMBACKUP_"`
VMAuthDefault struct {
Image string `default:"victoriametrics/vmauth"`
Version string `env:",expand" default:"${VM_METRICS_VERSION}"`
ConfigReloadImage string `default:"quay.io/prometheus-operator/prometheus-config-reloader:v0.82.1" env:"CONFIGRELOADIMAGE"`
Port string `default:"8427"`
UseDefaultResources bool `default:"true" env:"USEDEFAULTRESOURCES"`
Resource struct {
Limit struct {
Mem string `default:"300Mi"`
Cpu string `default:"200m"`
} `prefix:"LIMIT_"`
Request struct {
Mem string `default:"100Mi"`
Cpu string `default:"50m"`
} `prefix:"REQUEST_"`
} `prefix:"RESOURCE_"`
// Deprecated: use VM_CONFIG_RELOADER_REQUEST_CPU instead
ConfigReloaderCPU string `default:"10m" env:"CONFIGRELOADERCPU"`
// Deprecated: use VM_CONFIG_RELOADER_REQUEST_MEMORY instead
ConfigReloaderMemory string `default:"25Mi" env:"CONFIGRELOADERMEMORY"`
} `prefix:"VM_VMAUTHDEFAULT_"`
VLClusterDefault struct {
UseDefaultResources bool `default:"true" env:"USEDEFAULTRESOURCES"`
VLSelectDefault struct {
Image string `default:"victoriametrics/victoria-logs"`
Version string `env:",expand" default:"${VM_LOGS_VERSION}"`
Port string `default:"9471"`
Resource struct {
Limit struct {
Mem string `default:"1024Mi"`
Cpu string `default:"1000m"`
} `prefix:"LIMIT_"`
Request struct {
Mem string `default:"256Mi"`
Cpu string `default:"100m"`
} `prefix:"REQUEST_"`
} `prefix:"RESOURCE_"`
} `prefix:"VLSELECTDEFAULT_"`
VLStorageDefault struct {
Image string `default:"victoriametrics/victoria-logs"`
Version string `env:",expand" default:"${VM_LOGS_VERSION}"`
Port string `default:"9491"`
Resource struct {
Limit struct {
Mem string `default:"2048Mi"`
Cpu string `default:"1000m"`
} `prefix:"LIMIT_"`
Request struct {
Mem string `default:"512Mi"`
Cpu string `default:"200m"`
} `prefix:"REQUEST_"`
} `prefix:"RESOURCE_"`
} `prefix:"VLSTORAGEDEFAULT_"`
VLInsertDefault struct {
Image string `default:"victoriametrics/victoria-logs"`
Version string `env:",expand" default:"${VM_LOGS_VERSION}"`
Port string `default:"9481"`
Resource struct {
Limit struct {
Mem string `default:"1024Mi"`
Cpu string `default:"1000m"`
} `prefix:"LIMIT_"`
Request struct {
Mem string `default:"256Mi"`
Cpu string `default:"100m"`
} `prefix:"REQUEST_"`
} `prefix:"RESOURCE_"`
} `prefix:"VLINSERTDEFAULT_"`
} `prefix:"VM_VLCLUSTERDEFAULT_"`
VTClusterDefault struct {
UseDefaultResources bool `default:"true" env:"USEDEFAULTRESOURCES"`
SelectDefault struct {
Image string `default:"victoriametrics/victoria-traces"`
Version string `env:",expand" default:"${VM_TRACES_VERSION}"`
Port string `default:"10471"`
Resource struct {
Limit struct {
Mem string `default:"1024Mi"`
Cpu string `default:"1000m"`
} `prefix:"LIMIT_"`
Request struct {
Mem string `default:"256Mi"`
Cpu string `default:"100m"`
} `prefix:"REQUEST_"`
} `prefix:"RESOURCE_"`
} `prefix:"SELECT_"`
StorageDefault struct {
Image string `default:"victoriametrics/victoria-traces"`
Version string `env:",expand" default:"${VM_TRACES_VERSION}"`
Port string `default:"10491"`
Resource struct {
Limit struct {
Mem string `default:"2048Mi"`
Cpu string `default:"1000m"`
} `prefix:"LIMIT_"`
Request struct {
Mem string `default:"512Mi"`
Cpu string `default:"200m"`
} `prefix:"REQUEST_"`
} `prefix:"RESOURCE_"`
} `prefix:"STORAGE_"`
InsertDefault struct {
Image string `default:"victoriametrics/victoria-traces"`
Version string `env:",expand" default:"${VM_TRACES_VERSION}"`
Port string `default:"10481"`
Resource struct {
Limit struct {
Mem string `default:"1024Mi"`
Cpu string `default:"1000m"`
} `prefix:"LIMIT_"`
Request struct {
Mem string `default:"256Mi"`
Cpu string `default:"100m"`
} `prefix:"REQUEST_"`
} `prefix:"RESOURCE_"`
} `prefix:"INSERT_"`
} `prefix:"VM_VTCLUSTERDEFAULT_"`
EnabledPrometheusConverter struct {
PodMonitor bool `default:"true" env:"PODMONITOR"`
ServiceScrape bool `default:"true" env:"SERVICESCRAPE"`
PrometheusRule bool `default:"true" env:"PROMETHEUSRULE"`
Probe bool `default:"true" env:"PROBE"`
AlertmanagerConfig bool `default:"true" env:"ALERTMANAGERCONFIG"`
ScrapeConfig bool `default:"true" env:"SCRAPECONFIG"`
} `prefix:"VM_ENABLEDPROMETHEUSCONVERTER_"`
// adds compare-options and sync-options for prometheus objects converted by operator.
// It helps to properly use converter with ArgoCD
PrometheusConverterAddArgoCDIgnoreAnnotations bool `default:"false" env:"VM_PROMETHEUSCONVERTERADDARGOCDIGNOREANNOTATIONS"`
EnabledPrometheusConverterOwnerReferences bool `default:"false" env:"VM_ENABLEDPROMETHEUSCONVERTEROWNERREFERENCES"`
// allows filtering for converted labels, labels with matched prefix will be ignored
FilterPrometheusConverterLabelPrefixes []string `default:"" env:"VM_FILTERPROMETHEUSCONVERTERLABELPREFIXES"`
// allows filtering for converted annotations, annotations with matched prefix will be ignored
FilterPrometheusConverterAnnotationPrefixes []string `default:"" env:"VM_FILTERPROMETHEUSCONVERTERANNOTATIONPREFIXES"`
// Defines domain name suffix for in-cluster addresses
// most known ClusterDomainName is .cluster.local
ClusterDomainName string `default:"" env:"VM_CLUSTERDOMAINNAME"`
// Defines deadline for deployment/statefulset
// to transit into ready state
// to wait for transition to ready state
AppReadyTimeout time.Duration `default:"80s" env:"VM_APPREADYTIMEOUT"`
// Defines single pod deadline
// to wait for transition to ready state
PodWaitReadyTimeout time.Duration `default:"80s" env:"VM_PODWAITREADYTIMEOUT"`
// Defines poll interval for pods ready check
// at statefulset rollout update
PodWaitReadyIntervalCheck time.Duration `default:"5s" env:"VM_PODWAITREADYINTERVALCHECK"`
// configures force resync interval for VMAgent, VMAlert, VMAlertmanager and VMAuth.
ForceResyncInterval time.Duration `default:"60s" env:"VM_FORCERESYNCINTERVAL"`
// EnableStrictSecurity will add default `securityContext` to pods and containers created by operator
// Default PodSecurityContext include:
// 1. RunAsNonRoot: true
// 2. RunAsUser/RunAsGroup/FSGroup: 65534
// '65534' refers to 'nobody' in all the used default images like alpine, busybox.
// If you're using customize image, please make sure '65534' is a valid uid in there or specify SecurityContext.
// 3. FSGroupChangePolicy: &onRootMismatch
// If KubeVersion>=1.20, use `FSGroupChangePolicy="onRootMismatch"` to skip the recursive permission change
// when the root of the volume already has the correct permissions
// 4. SeccompProfile:
// type: RuntimeDefault
// Use `RuntimeDefault` seccomp profile by default, which is defined by the container runtime,
// instead of using the Unconfined (seccomp disabled) mode.
//
// Default container SecurityContext include:
// 1. AllowPrivilegeEscalation: false
// 2. ReadOnlyRootFilesystem: true
// 3. Capabilities:
// drop:
// - all
// turn off `EnableStrictSecurity` by default, see https://github.com/VictoriaMetrics/operator/issues/749 for details
EnableStrictSecurity bool `default:"false" env:"VM_ENABLESTRICTSECURITY"`
}
func MustGetBaseConfig ¶
func MustGetBaseConfig() *BaseOperatorConf
MustGetBaseConfig returns operator configuration with default values populated from env variables
func (*BaseOperatorConf) PrintDefaults ¶ added in v0.38.0
func (boc *BaseOperatorConf) PrintDefaults(format string) error
PrintDefaults prints default values for all config variables. format can be one of: table, list, json, yaml, markdown.
func (*BaseOperatorConf) ResyncAfterDuration ¶ added in v0.48.0
func (boc *BaseOperatorConf) ResyncAfterDuration() time.Duration
ResyncAfterDuration returns requeue duration for object period reconcile adds 10% jitter
func (BaseOperatorConf) Validate ¶ added in v0.10.0
func (boc BaseOperatorConf) Validate() error
Validate - validates config on best effort.
Click to show internal directories.
Click to hide internal directories.