Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions api/operator/v1/vlagent_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,9 @@ type VLAgentSpec struct {
// PodDisruptionBudget created by operator
// +optional
PodDisruptionBudget *vmv1beta1.EmbeddedPodDisruptionBudgetSpec `json:"podDisruptionBudget,omitempty"`
// NetworkPolicy defines network access rules for pods created by this CR.
// +optional
NetworkPolicy *vmv1beta1.EmbeddedNetworkPolicy `json:"networkPolicy,omitempty"`
// Storage configures storage for StatefulSet
// +optional
Storage *vmv1beta1.StorageSpec `json:"storage,omitempty"`
Expand Down
9 changes: 9 additions & 0 deletions api/operator/v1/vlcluster_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,9 @@ type VLInsert struct {
// Configures vertical pod autoscaling.
// +optional
VPA *vmv1beta1.EmbeddedVPA `json:"vpa,omitempty"`
// NetworkPolicy defines network access rules for pods created by this CR.
// +optional
NetworkPolicy *vmv1beta1.EmbeddedNetworkPolicy `json:"networkPolicy,omitempty"`
// SyslogSpec defines syslog listener configuration
// +optional
SyslogSpec *SyslogServerSpec `json:"syslogSpec,omitempty"`
Expand Down Expand Up @@ -428,6 +431,9 @@ type VLSelect struct {
// Configures vertical pod autoscaling.
// +optional
VPA *vmv1beta1.EmbeddedVPA `json:"vpa,omitempty"`
// NetworkPolicy defines network access rules for pods created by this CR.
// +optional
NetworkPolicy *vmv1beta1.EmbeddedNetworkPolicy `json:"networkPolicy,omitempty"`

// UpdateStrategy - overrides default update strategy.
// +kubebuilder:validation:Enum=Recreate;RollingUpdate
Expand Down Expand Up @@ -555,6 +561,9 @@ type VLStorage struct {
// Configures vertical pod autoscaling.
// +optional
VPA *vmv1beta1.EmbeddedVPA `json:"vpa,omitempty"`
// NetworkPolicy defines network access rules for pods created by this CR.
// +optional
NetworkPolicy *vmv1beta1.EmbeddedNetworkPolicy `json:"networkPolicy,omitempty"`

// StorageDataPath - path to storage data
// +optional
Expand Down
3 changes: 3 additions & 0 deletions api/operator/v1/vlsingle_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,9 @@ type VLSingleSpec struct {
// SyslogSpec defines syslog listener configuration
// +optional
SyslogSpec *SyslogServerSpec `json:"syslogSpec,omitempty"`
// NetworkPolicy defines network access rules for pods created by this CR.
// +optional
NetworkPolicy *vmv1beta1.EmbeddedNetworkPolicy `json:"networkPolicy,omitempty"`
}

// VLSingleStatus defines the observed state of VLSingle
Expand Down
3 changes: 3 additions & 0 deletions api/operator/v1/vmanomaly_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,9 @@ type VMAnomalySpec struct {
// PodDisruptionBudget created by operator
// +optional
PodDisruptionBudget *vmv1beta1.EmbeddedPodDisruptionBudgetSpec `json:"podDisruptionBudget,omitempty"`
// NetworkPolicy defines network access rules for pods created by this CR.
// +optional
NetworkPolicy *vmv1beta1.EmbeddedNetworkPolicy `json:"networkPolicy,omitempty"`
// ConfigRawYaml - raw configuration for anomaly,
// it helps it to start without secret.
// priority -> hardcoded ConfigRaw -> ConfigRaw, provided by user -> ConfigSecret.
Expand Down
9 changes: 9 additions & 0 deletions api/operator/v1/vtcluster_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,9 @@ type VTInsert struct {
// Configures vertical pod autoscaling.
// +optional
VPA *vmv1beta1.EmbeddedVPA `json:"vpa,omitempty"`
// NetworkPolicy defines network access rules for pods created by this CR.
// +optional
NetworkPolicy *vmv1beta1.EmbeddedNetworkPolicy `json:"networkPolicy,omitempty"`

// UpdateStrategy - overrides default update strategy.
// +kubebuilder:validation:Enum=Recreate;RollingUpdate
Expand Down Expand Up @@ -335,6 +338,9 @@ type VTSelect struct {
// Configures vertical pod autoscaling.
// +optional
VPA *vmv1beta1.EmbeddedVPA `json:"vpa,omitempty"`
// NetworkPolicy defines network access rules for pods created by this CR.
// +optional
NetworkPolicy *vmv1beta1.EmbeddedNetworkPolicy `json:"networkPolicy,omitempty"`

// UpdateStrategy - overrides default update strategy.
// +kubebuilder:validation:Enum=Recreate;RollingUpdate
Expand Down Expand Up @@ -465,6 +471,9 @@ type VTStorage struct {
// Configures vertical pod autoscaling.
// +optional
VPA *vmv1beta1.EmbeddedVPA `json:"vpa,omitempty"`
// NetworkPolicy defines network access rules for pods created by this CR.
// +optional
NetworkPolicy *vmv1beta1.EmbeddedNetworkPolicy `json:"networkPolicy,omitempty"`

// StorageDataPath - path to storage data
// +optional
Expand Down
3 changes: 3 additions & 0 deletions api/operator/v1/vtsingle_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,9 @@ type VTSingleSpec struct {
// it can be overwritten with component specific image.tag value.
// +optional
ComponentVersion string `json:"componentVersion,omitempty"`
// NetworkPolicy defines network access rules for pods created by this CR.
// +optional
NetworkPolicy *vmv1beta1.EmbeddedNetworkPolicy `json:"networkPolicy,omitempty"`
}

// VTSingleStatus defines the observed state of VTSingle
Expand Down
50 changes: 50 additions & 0 deletions api/operator/v1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions api/operator/v1beta1/vmagent_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,9 @@ type VMAgentSpec struct {
// PodDisruptionBudget created by operator
// +optional
PodDisruptionBudget *EmbeddedPodDisruptionBudgetSpec `json:"podDisruptionBudget,omitempty"`
// NetworkPolicy defines network access rules for pods created by this CR.
// +optional
NetworkPolicy *EmbeddedNetworkPolicy `json:"networkPolicy,omitempty"`
// DaemonSetMode enables DaemonSet deployment mode instead of Deployment.
// Supports only VMPodScrape
// (available from v0.55.0).
Expand Down
3 changes: 3 additions & 0 deletions api/operator/v1beta1/vmalert_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,9 @@ type VMAlertSpec struct {
// PodDisruptionBudget created by operator
// +optional
PodDisruptionBudget *EmbeddedPodDisruptionBudgetSpec `json:"podDisruptionBudget,omitempty"`
// NetworkPolicy defines network access rules for pods created by this CR.
// +optional
NetworkPolicy *EmbeddedNetworkPolicy `json:"networkPolicy,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/)
Expand Down
3 changes: 3 additions & 0 deletions api/operator/v1beta1/vmalertmanager_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,9 @@ type VMAlertmanagerSpec struct {
// PodDisruptionBudget created by operator
// +optional
PodDisruptionBudget *EmbeddedPodDisruptionBudgetSpec `json:"podDisruptionBudget,omitempty"`
// NetworkPolicy defines network access rules for pods created by this CR.
// +optional
NetworkPolicy *EmbeddedNetworkPolicy `json:"networkPolicy,omitempty"`
// SelectAllByDefault changes default behavior for empty CRD selectors, such ConfigSelector.
// with selectAllByDefault: true and undefined ConfigSelector and ConfigNamespaceSelector
// Operator selects all exist alertManagerConfigs
Expand Down
3 changes: 3 additions & 0 deletions api/operator/v1beta1/vmauth_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,9 @@ type VMAuthSpec struct {
// PodDisruptionBudget created by operator
// +optional
PodDisruptionBudget *EmbeddedPodDisruptionBudgetSpec `json:"podDisruptionBudget,omitempty" yaml:"podDisruptionBudget,omitempty"`
// NetworkPolicy defines network access rules for pods created by this CR.
// +optional
NetworkPolicy *EmbeddedNetworkPolicy `json:"networkPolicy,omitempty" yaml:"networkPolicy,omitempty"`
// Ingress enables ingress configuration for VMAuth.
Ingress *EmbeddedIngress `json:"ingress,omitempty"`
// HTTPRoute enables httproute configuration for VMAuth.
Expand Down
12 changes: 12 additions & 0 deletions api/operator/v1beta1/vmcluster_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,9 @@ type VMSelect struct {
// Configures vertical pod autoscaling.
// +optional
VPA *EmbeddedVPA `json:"vpa,omitempty"`
// NetworkPolicy defines network access rules for pods created by this CR.
// +optional
NetworkPolicy *EmbeddedNetworkPolicy `json:"networkPolicy,omitempty"`

// RollingUpdateStrategy defines strategy for application updates
// Default is OnDelete, in this case operator handles update process
Expand Down Expand Up @@ -454,6 +457,9 @@ type VMInsert struct {
// Configures vertical pod autoscaling.
// +optional
VPA *EmbeddedVPA `json:"vpa,omitempty"`
// NetworkPolicy defines network access rules for pods created by this CR.
// +optional
NetworkPolicy *EmbeddedNetworkPolicy `json:"networkPolicy,omitempty"`

// Discovery overrides the cluster-level discovery config for vminsert.
// +optional
Expand Down Expand Up @@ -542,6 +548,9 @@ type VMStorage struct {
// PodDisruptionBudget created by operator
// +optional
PodDisruptionBudget *EmbeddedPodDisruptionBudgetSpec `json:"podDisruptionBudget,omitempty"`
// NetworkPolicy defines network access rules for pods created by this CR.
// +optional
NetworkPolicy *EmbeddedNetworkPolicy `json:"networkPolicy,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.
Expand Down Expand Up @@ -1121,6 +1130,9 @@ type VMAuthLoadBalancerSpec struct {
// PodDisruptionBudget created by operator
// +optional
PodDisruptionBudget *EmbeddedPodDisruptionBudgetSpec `json:"podDisruptionBudget,omitempty"`
// NetworkPolicy defines network access rules for pods created by this CR.
// +optional
NetworkPolicy *EmbeddedNetworkPolicy `json:"networkPolicy,omitempty"`

// UpdateStrategy - overrides default update strategy.
// Available from operator v0.64.0
Expand Down
12 changes: 12 additions & 0 deletions api/operator/v1beta1/vmextra_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import (
appsv1 "k8s.io/api/apps/v1"
autoscalingv2 "k8s.io/api/autoscaling/v2"
corev1 "k8s.io/api/core/v1"
networkingv1 "k8s.io/api/networking/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels"
"k8s.io/apimachinery/pkg/util/intstr"
Expand Down Expand Up @@ -497,6 +498,17 @@ func (cr *EmbeddedVPA) Validate() error {
return nil
}

// EmbeddedNetworkPolicy defines configuration for a NetworkPolicy protecting pods owned by the CR.
type EmbeddedNetworkPolicy struct {
// Ingress defines the list of ingress rules applied to pods selected by this CR.
// Each rule allows traffic which matches both the from and ports sections.
// +optional
Ingress []networkingv1.NetworkPolicyIngressRule `json:"ingress,omitempty"`
// Egress defines the list of egress rules applied to pods selected by this CR.
// +optional
Egress []networkingv1.NetworkPolicyEgressRule `json:"egress,omitempty"`
}

// DiscoverySelector can be used at CRD components discovery
type DiscoverySelector struct {
Namespace *NamespaceSelector `json:"namespaceSelector,omitempty"`
Expand Down
2 changes: 2 additions & 0 deletions api/operator/v1beta1/vmrule_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -97,9 +97,11 @@ type RuleGroup struct {
type Rule struct {
// Record represents a query, that will be recorded to dataSource
// +optional
// +kubebuilder:default=""
Record string `json:"record,omitempty" yaml:"record,omitempty"`
// Alert is a name for alert
// +optional
// +kubebuilder:default=""
Alert string `json:"alert,omitempty" yaml:"alert,omitempty"`
// Expr is query, that will be evaluated at dataSource
// +optional
Expand Down
3 changes: 3 additions & 0 deletions api/operator/v1beta1/vmsingle_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,9 @@ type VMSingleSpec struct {
// +optional
ComponentVersion string `json:"componentVersion,omitempty"`

// NetworkPolicy defines network access rules for pods created by this CR.
// +optional
NetworkPolicy *EmbeddedNetworkPolicy `json:"networkPolicy,omitempty"`
CommonRelabelParams `json:",inline,omitempty"`
CommonScrapeParams `json:",inline,omitempty"`
CommonConfigReloaderParams `json:",inline,omitempty"`
Expand Down
Loading
Loading