package namespace

import "k8s.io/apiserver/pkg/admission/plugin/webhook/predicates/namespace"

Package namespace defines the utilities that are used by the webhook plugin to decide if a webhook should be applied to an object based on its namespace.

Index

Types

type Matcher

type Matcher struct {
	NamespaceLister corelisters.NamespaceLister
	Client          clientset.Interface
}

Matcher decides if a request is exempted by the NamespaceSelector of a webhook configuration.

func (*Matcher) GetNamespace

func (m *Matcher) GetNamespace(name string) (*v1.Namespace, error)

func (*Matcher) GetNamespaceLabels

func (m *Matcher) GetNamespaceLabels(attr admission.Attributes) (map[string]string, error)

GetNamespaceLabels gets the labels of the namespace related to the attr.

func (*Matcher) MatchNamespaceSelector

func (m *Matcher) MatchNamespaceSelector(p NamespaceSelectorProvider, attr admission.Attributes) (bool, *apierrors.StatusError)

MatchNamespaceSelector decideds whether the request matches the namespaceSelctor of the webhook. Only when they match, the webhook is called.

func (*Matcher) Validate

func (m *Matcher) Validate() error

Validate checks if the Matcher has a NamespaceLister and Client.

type NamespaceSelectorProvider

type NamespaceSelectorProvider interface {
	// GetNamespaceSelector gets the webhook NamespaceSelector field.
	GetParsedNamespaceSelector() (labels.Selector, error)
}

Source Files

doc.go matcher.go

Version
v0.33.0 (latest)
Published
Apr 23, 2025
Platform
linux/amd64
Imports
11 packages
Last checked
1 hour ago

Tools for package owners.