svcip

package
v2.9.0 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	ExternalIPCIDRs   []string
	LoadBalancerCIDRs []string
	ClusterIPCIDRs    []string
	StrictValidation  bool
	EnableIPv4        bool
	EnableIPv6        bool
}

Config holds the raw CIDR strings and feature flags needed to construct a Validator.

type Filter

type Filter interface {
	FilterExternalIPs(ips []string, svcName, svcNamespace string) []string
	FilterLoadBalancerIPs(ips []string, svcName, svcNamespace string) []string
}

Filter validates individual service IPs against configured CIDR ranges and strict mode settings.

type RangeQuerier

type RangeQuerier interface {
	ExternalIPRanges(families ...v1core.IPFamily) []net.IPNet
	LoadBalancerIPRanges(families ...v1core.IPFamily) []net.IPNet
	ClusterIPRanges(families ...v1core.IPFamily) []net.IPNet
}

RangeQuerier provides read access to parsed CIDR ranges, optionally filtered by IP family. Calling with no families returns all ranges. Calling with one or more families returns only ranges matching those families.

type Validator

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

Validator implements both RangeQuerier and Filter. It parses all CIDRs once at construction time, classifies them by IP family, and validates them against the enabled protocol configuration.

func NewValidator

func NewValidator(cfg Config) (*Validator, error)

NewValidator parses all CIDR strings, classifies them by IP family, and validates that each CIDR's family matches the enabled protocol configuration. It returns an error if any CIDR string is invalid, if a CIDR's family conflicts with the enabled protocols, or if ClusterIP CIDR constraints are violated (must be non-empty, max 2).

func (*Validator) ClusterIPRanges

func (v *Validator) ClusterIPRanges(families ...v1core.IPFamily) []net.IPNet

ClusterIPRanges returns the parsed ClusterIP CIDR ranges, optionally filtered by IP family.

func (*Validator) ExternalIPRanges

func (v *Validator) ExternalIPRanges(families ...v1core.IPFamily) []net.IPNet

ExternalIPRanges returns the parsed ExternalIP CIDR ranges, optionally filtered by IP family.

func (*Validator) FilterExternalIPs

func (v *Validator) FilterExternalIPs(ips []string, svcName, svcNamespace string) []string

FilterExternalIPs validates externalIPs against configured CIDR ranges and ClusterIP ranges. When strict mode is enabled and no ranges are configured, all IPs are rejected (default-deny). When strict mode is disabled, all IPs pass through unfiltered.

func (*Validator) FilterLoadBalancerIPs

func (v *Validator) FilterLoadBalancerIPs(ips []string, svcName, svcNamespace string) []string

FilterLoadBalancerIPs validates loadBalancerIPs against configured CIDR ranges and ClusterIP ranges. When strict mode is enabled and no ranges are configured, all IPs are rejected (default-deny). When strict mode is disabled, all IPs pass through unfiltered.

func (*Validator) LoadBalancerIPRanges

func (v *Validator) LoadBalancerIPRanges(families ...v1core.IPFamily) []net.IPNet

LoadBalancerIPRanges returns the parsed LoadBalancerIP CIDR ranges, optionally filtered by family.

func (*Validator) LogStatus

func (v *Validator) LogStatus()

LogStatus logs the current strict IP validation configuration at startup.

Jump to

Keyboard shortcuts

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