Documentation
¶
Index ¶
Constants ¶
const (
UnLimitedResource = "unlimited"
)
Variables ¶
var WatchNamespaceEnvVar = "WATCH_NAMESPACE"
WatchNamespaceEnvVar is the constant for env variable WATCH_NAMESPACE which specifies the Namespace to watch. An empty value means the operator is running with cluster scope.
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
func MustGetWatchNamespaces ¶ added in v0.42.0
func MustGetWatchNamespaces() []string
MustGetWatchNamespaces returns 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
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:"v1.123.0" env:"METRICS_VERSION"`
LogsVersion string `default:"v1.28.0" env:"LOGS_VERSION"`
AnomalyVersion string `default:"v1.25.2" env:"ANOMALY_VERSION"`
// enables custom config reloader for vmauth and vmagent,
// it should speed-up config reloading process.
UseCustomConfigReloader bool `default:"false" env:"USECUSTOMCONFIGRELOADER"`
// container registry name prefix, e.g. docker.io
ContainerRegistry string `default:"" env:"CONTAINERREGISTRY"`
CustomConfigReloaderImage string `default:"victoriametrics/operator:config-reloader-v0.62.0" env:"CUSTOMCONFIGRELOADERIMAGE"`
PSPAutoCreateEnabled bool `default:"false" env:"PSPAUTOCREATEENABLED"`
// defines global resource.limits.cpu for all config-reloader containers
ConfigReloaderLimitCPU string `default:"unlimited"`
// defines global resource.limits.memory for all config-reloader containers
ConfigReloaderLimitMemory string `default:"unlimited"`
// defines global resource.requests.cpu for all config-reloader containers
ConfigReloaderRequestCPU string `default:""`
// defines global resource.requests.memory for all config-reloader containers
ConfigReloaderRequestMemory string `default:""`
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:"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:"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:"VLSINGLEDEFAULT_"`
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:"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:"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:"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:"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:"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:"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.28.1" env:"ALERTMANAGERVERSION"`
LocalHost string `default:"127.0.0.1" env:"LOCALHOST"`
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:"VMALERTMANAGER_"`
DisableSelfServiceScrapeCreation bool `default:"false" env:"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:"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:"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:"VLCLUSTERDEFAULT_"`
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:"ENABLEDPROMETHEUSCONVERTER_"`
FilterChildLabelPrefixes []string `default:"" env:"FILTERCHILDLABELPREFIXES"`
FilterChildAnnotationPrefixes []string `default:"" env:"FILTERCHILDANNOTATIONPREFIXES"`
// 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:"PROMETHEUSCONVERTERADDARGOCDIGNOREANNOTATIONS"`
EnabledPrometheusConverterOwnerReferences bool `default:"false" env:"ENABLEDPROMETHEUSCONVERTEROWNERREFERENCES"`
// allows filtering for converted labels, labels with matched prefix will be ignored
FilterPrometheusConverterLabelPrefixes []string `default:"" env:"FILTERPROMETHEUSCONVERTERLABELPREFIXES"`
// allows filtering for converted annotations, annotations with matched prefix will be ignored
FilterPrometheusConverterAnnotationPrefixes []string `default:"" env:"FILTERPROMETHEUSCONVERTERANNOTATIONPREFIXES"`
// Defines domain name suffix for in-cluster addresses
// most known ClusterDomainName is .cluster.local
ClusterDomainName string `default:"" env:"CLUSTERDOMAINNAME"`
// Defines deadline for deployment/statefulset
// to transit into ready state
// to wait for transition to ready state
AppReadyTimeout time.Duration `default:"80s" env:"APPREADYTIMEOUT"`
// Defines single pod deadline
// to wait for transition to ready state
PodWaitReadyTimeout time.Duration `default:"80s" env:"PODWAITREADYTIMEOUT"`
// Defines poll interval for pods ready check
// at statefulset rollout update
PodWaitReadyIntervalCheck time.Duration `default:"5s" env:"PODWAITREADYINTERVALCHECK"`
// configures force resync interval for VMAgent, VMAlert, VMAlertmanager and VMAuth.
ForceResyncInterval time.Duration `default:"60s" env:"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:"ENABLESTRICTSECURITY"`
// contains filtered or unexported fields
}
func MustGetBaseConfig ¶
func MustGetBaseConfig() *BaseOperatorConf
MustGetBaseConfig returns operator configuration with default values populated from env variables
func (*BaseOperatorConf) CustomConfigReloaderImageVersion ¶ added in v0.43.0
func (boc *BaseOperatorConf) CustomConfigReloaderImageVersion() *version.Version
CustomConfigReloaderImageVersion returns version of custom config-reloader
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.