kubernetesk8s.io/kubernetes/plugin/pkg/admission/resourcequota Index | Files | Directories

package resourcequota

import "k8s.io/kubernetes/plugin/pkg/admission/resourcequota"

resourcequota enforces all incoming requests against any applied quota in the namespace context of the request

Index

Functions

func IsDefaultDeny

func IsDefaultDeny(err error) bool

IsDefaultDeny returns true if the error is defaultDeny

func LoadConfiguration

func LoadConfiguration(config io.Reader) (*resourcequotaapi.Configuration, error)

LoadConfiguration loads the provided configuration.

func NewResourceQuota

func NewResourceQuota(config *resourcequotaapi.Configuration, numEvaluators int, stopCh <-chan struct{}) (admission.Interface, error)

NewResourceQuota configures an admission controller that can enforce quota constraints using the provided registry. The registry must have the capability to handle group/kinds that are persisted by the server this admission controller is intercepting

func Register

func Register(plugins *admission.Plugins)

Register registers a plugin

Types

type Evaluator

type Evaluator interface {
	// Evaluate takes an operation and checks to see if quota constraints are satisfied.  It returns an error if they are not.
	// The default implementation process related operations in chunks when possible.
	Evaluate(a admission.Attributes) error
}

Evaluator is used to see if quota constraints are satisfied.

func NewQuotaEvaluator

func NewQuotaEvaluator(quotaAccessor QuotaAccessor, registry quota.Registry, lockAcquisitionFunc func([]api.ResourceQuota) func(), config *resourcequotaapi.Configuration, workers int, stopCh <-chan struct{}) Evaluator

NewQuotaEvaluator configures an admission controller that can enforce quota constraints using the provided registry. The registry must have the capability to handle group/kinds that are persisted by the server this admission controller is intercepting

type QuotaAccessor

type QuotaAccessor interface {
	// UpdateQuotaStatus is called to persist final status.  This method should write to persistent storage.
	// An error indicates that write didn't complete successfully.
	UpdateQuotaStatus(newQuota *api.ResourceQuota) error

	// GetQuotas gets all possible quotas for a given namespace
	GetQuotas(namespace string) ([]api.ResourceQuota, error)
}

QuotaAccessor abstracts the get/set logic from the rest of the Evaluator. This could be a test stub, a straight passthrough, or most commonly a series of deconflicting caches.

Source Files

admission.go config.go controller.go doc.go resource_access.go

Directories

PathSynopsis
plugin/pkg/admission/resourcequota/apis
plugin/pkg/admission/resourcequota/apis/resourcequota
plugin/pkg/admission/resourcequota/apis/resourcequota/installPackage install installs the experimental API group, making it available as an option to all of the API encoding/decoding machinery.
plugin/pkg/admission/resourcequota/apis/resourcequota/v1alpha1Package v1alpha1 is the v1alpha1 version of the API.
plugin/pkg/admission/resourcequota/apis/resourcequota/validation
Version
v1.7.8
Published
Oct 5, 2017
Platform
js/wasm
Imports
35 packages
Last checked
1 minute ago

Tools for package owners.