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 @@ -253,6 +253,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 @@ -440,6 +443,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 @@ -567,6 +573,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 @@ -115,6 +115,9 @@ type VLSingleSpec 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"`
}

// 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 @@ -64,6 +64,9 @@ type VMAnomalySpec struct {
// VPA defines configuration for the VerticalPodAutoscaler.
// +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"`
// 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 @@ -248,6 +248,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 @@ -347,6 +350,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 @@ -477,6 +483,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 @@ -109,6 +109,9 @@ type VTSingleSpec 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"`
}

// 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
// Cannot be used with statefulMode
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 @@ -138,6 +138,9 @@ type VMAlertSpec 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"`
// 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 @@ -383,6 +383,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 @@ -466,6 +469,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 @@ -554,6 +560,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 @@ -1117,6 +1126,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.
// +kubebuilder:validation:Enum=Recreate;RollingUpdate
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 @@ -535,6 +536,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
3 changes: 3 additions & 0 deletions api/operator/v1beta1/vmsingle_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,9 @@ type VMSingleSpec struct {
// +optional
VPA *EmbeddedVPA `json:"vpa,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