ruleset

package
v1.6.10 Latest Latest
Warning

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

Go to latest
Published: Jan 28, 2026 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type APIRuleProvider

type APIRuleProvider struct {
	// contains filtered or unexported fields
}

APIRuleProvider is a thread-safe in-memory RuleProvider implementation that can be mutated via API calls while the Controller reads from it concurrently.

func NewAPIRuleProvider

func NewAPIRuleProvider() *APIRuleProvider

NewAPIRuleProvider creates a new APIRuleProvider with an empty RuleSet

func (*APIRuleProvider) AddNetwork

func (a *APIRuleProvider) AddNetwork(net Network) error

AddNetwork adds a new network with validation

func (*APIRuleProvider) AddPolicy

func (a *APIRuleProvider) AddPolicy(networkName string, pol Policy) error

AddPolicy adds a new policy to a network

func (*APIRuleProvider) DeleteNetwork

func (a *APIRuleProvider) DeleteNetwork(name string) error

DeleteNetwork removes a network by name

func (*APIRuleProvider) DeletePolicy

func (a *APIRuleProvider) DeletePolicy(networkName string, index int) error

DeletePolicy removes a policy at a specific index

func (*APIRuleProvider) Get

func (a *APIRuleProvider) Get() *RuleSet

Get returns a deep copy of the current RuleSet to prevent data races

func (*APIRuleProvider) GetNetwork

func (a *APIRuleProvider) GetNetwork(name string) (*Network, error)

GetNetwork returns a copy of a network by name

func (*APIRuleProvider) GetNetworks

func (a *APIRuleProvider) GetNetworks() []Network

GetNetworks returns a copy of the networks slice

func (*APIRuleProvider) GetPolicies

func (a *APIRuleProvider) GetPolicies(networkName string) ([]Policy, error)

GetPolicies returns a copy of policies for a network

func (*APIRuleProvider) LoadFromRuleSet

func (a *APIRuleProvider) LoadFromRuleSet(rs *RuleSet) error

LoadFromRuleSet loads rules from an existing RuleSet (used for seeding from config file)

func (*APIRuleProvider) RegisterObserver added in v1.6.1

func (a *APIRuleProvider) RegisterObserver(observer NetworkObserver)

RegisterObserver registers a NetworkObserver to receive network lifecycle events

func (*APIRuleProvider) UpdateNetwork

func (a *APIRuleProvider) UpdateNetwork(name string, net Network) error

UpdateNetwork updates an existing network

func (*APIRuleProvider) UpdatePolicy

func (a *APIRuleProvider) UpdatePolicy(networkName string, index int, pol Policy) error

UpdatePolicy updates a policy at a specific index

type CIDRString

type CIDRString struct {
	net.IPNet
}

func (CIDRString) MarshalJSON

func (c CIDRString) MarshalJSON() ([]byte, error)

func (*CIDRString) UnmarshalYAML

func (ip *CIDRString) UnmarshalYAML(unmarshal func(interface{}) error) error

type Network

type Network struct {
	Name     string     `json:"name"`
	CIDR     CIDRString `json:"cidr"`
	Policies []Policy   `json:"policies"`
	// Kubernetes integration fields (optional, for integration-managed networks)
	IntegrationID string `json:"integration_id,omitempty"`
	Namespace     string `json:"namespace,omitempty"`
	LabelSelector string `json:"label_selector,omitempty"`
}

type NetworkObserver added in v1.6.1

type NetworkObserver interface {
	OnNetworkCreated(network Network) error
	OnNetworkUpdated(old, new Network) error
	OnNetworkDeleted(network Network) error
}

NetworkObserver interface for observing network lifecycle events Used by K8s WatcherManager to coordinate PodWatcher lifecycles

type Policy

type Policy struct {
	Hostname string `json:"hostname"`
	Regexp   *regexp.Regexp
	Ports    []uint16   `json:"ports"`
	IP       string     `json:"ip"`
	CIDR     CIDRString `json:"cidr"`
}

type RuleProvider

type RuleProvider interface {
	Get() *RuleSet
}

type RuleSet

type RuleSet struct {
	Networks []Network `json:"networks"`
}

func (*RuleSet) HostAllowed

func (r *RuleSet) HostAllowed(sourceAddr net.IP, hostname string) bool

func (*RuleSet) Prepare

func (r *RuleSet) Prepare() error

Jump to

Keyboard shortcuts

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