resolvers

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Oct 30, 2025 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewApplicationNetworkPolicyEndpointsResolver added in v1.1.0

func NewApplicationNetworkPolicyEndpointsResolver(k8sClient client.Client, logger logr.Logger) *applicationNetworkPolicyEndpointsResolver

NewApplicationNetworkPolicyEndpointsResolver constructs a new applicationNetworkPolicyEndpointsResolver

func NewClusterNetworkPolicyEndpointsResolver added in v1.1.0

func NewClusterNetworkPolicyEndpointsResolver(k8sClient client.Client, logger logr.Logger) *clusterNetworkPolicyEndpointsResolver

NewClusterNetworkPolicyEndpointsResolver constructs a new clusterNetworkPolicyEndpointsResolver

func NewEndpointsResolver

func NewEndpointsResolver(k8sClient client.Client, logger logr.Logger) *defaultEndpointsResolver

NewEndpointsResolver constructs a new defaultEndpointsResolver

func NewPolicyReferenceResolver

func NewPolicyReferenceResolver(k8sClient client.Client, policyTracker PolicyTracker, logger logr.Logger) *defaultPolicyReferenceResolver

Types

type ApplicationNetworkPolicyEndpointsResolver added in v1.1.0

type ApplicationNetworkPolicyEndpointsResolver interface {
	// ResolveApplicationNetworkPolicy returns the resolved endpoints for the given ApplicationNetworkPolicy
	ResolveApplicationNetworkPolicy(ctx context.Context, applicationNetworkPolicy *policyinfo.ApplicationNetworkPolicy) ([]policyinfo.EndpointInfo, []policyinfo.EndpointInfo, []policyinfo.PodEndpoint, error)
}

type ClusterNetworkPolicyEndpointsResolver added in v1.1.0

type ClusterNetworkPolicyEndpointsResolver interface {
	// ResolveClusterNetworkPolicy returns the resolved endpoints for the given ClusterNetworkPolicy
	ResolveClusterNetworkPolicy(ctx context.Context, cnp *policyinfo.ClusterNetworkPolicy) ([]policyinfo.ClusterEndpointInfo, []policyinfo.ClusterEndpointInfo, []policyinfo.PodEndpoint, error)
}

type EndpointsResolver

type EndpointsResolver interface {
	// Resolve returns the resolved endpoints for the given policy ingress, egress rules and pod selector labels.
	Resolve(ctx context.Context, policy *networking.NetworkPolicy) ([]policyinfo.EndpointInfo, []policyinfo.EndpointInfo,
		[]policyinfo.PodEndpoint, error)
}

type PolicyReferenceResolver

type PolicyReferenceResolver interface {
	GetReferredPoliciesForPod(ctx context.Context, pod, podOld *corev1.Pod) ([]networking.NetworkPolicy, error)
	GetReferredPoliciesForNamespace(ctx context.Context, ns, nsOld *corev1.Namespace) ([]networking.NetworkPolicy, error)
	GetReferredPoliciesForService(ctx context.Context, svc, svcOld *corev1.Service) ([]networking.NetworkPolicy, error)
	GetReferredApplicationNetworkPoliciesForPod(ctx context.Context, pod, podOld *corev1.Pod) ([]policyinfo.ApplicationNetworkPolicy, error)
	GetReferredApplicationNetworkPoliciesForNamespace(ctx context.Context, ns, nsOld *corev1.Namespace) ([]policyinfo.ApplicationNetworkPolicy, error)
	GetReferredApplicationNetworkPoliciesForService(ctx context.Context, svc, svcOld *corev1.Service) ([]policyinfo.ApplicationNetworkPolicy, error)
	GetReferredClusterPoliciesForPod(ctx context.Context, pod, podOld *corev1.Pod) ([]policyinfo.ClusterNetworkPolicy, error)
	GetReferredClusterPoliciesForNamespace(ctx context.Context, ns, nsOld *corev1.Namespace) ([]policyinfo.ClusterNetworkPolicy, error)
	GetReferredClusterPoliciesForService(ctx context.Context, svc, svcOld *corev1.Service) ([]policyinfo.ClusterNetworkPolicy, error)
}

PolicyReferenceResolver resolves the referred network policies for a given pod, namespace or service.

type PolicyTracker added in v0.5.1

type PolicyTracker interface {
	UpdatePolicy(policy *networking.NetworkPolicy)
	RemovePolicy(policy *networking.NetworkPolicy)
	UpdateGenericPolicy(obj client.Object)
	RemoveGenericPolicy(obj client.Object)
	GetPoliciesWithNamespaceReferences() sets.Set[types.NamespacedName]
	GetPoliciesWithEgressRules() sets.Set[types.NamespacedName]
	GetApplicationNetworkPoliciesWithNamespaceReferences() sets.Set[types.NamespacedName]
	GetApplicationNetworkPoliciesWithEgressRules() sets.Set[types.NamespacedName]
}

func NewPolicyTracker added in v0.5.1

func NewPolicyTracker(logger logr.Logger) PolicyTracker

Jump to

Keyboard shortcuts

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