resourcequota

package
v1.14.9 Latest Latest
Warning

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

Go to latest
Published: Nov 9, 2019 License: Apache-2.0 Imports: 34 Imported by: 0

Documentation

Overview

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

Index

Constants

View Source
const PluginName = "ResourceQuota"

Variables

This section is empty.

Functions

func CheckRequest added in v1.12.0

CheckRequest is a static version of quotaEvaluator.checkRequest, possible to be called from outside.

func IsDefaultDeny added in v1.3.0

func IsDefaultDeny(err error) bool

IsDefaultDeny returns true if the error is defaultDeny

func LoadConfiguration added in v1.6.0

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

LoadConfiguration loads the provided configuration.

func Register added in v1.7.0

func Register(plugins *admission.Plugins)

Register registers a plugin

Types

type Evaluator added in v1.4.0

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 added in v1.4.0

func NewQuotaEvaluator(quotaAccessor QuotaAccessor, ignoredResources map[schema.GroupResource]struct{}, quotaRegistry quota.Registry, lockAcquisitionFunc func([]corev1.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 added in v1.4.0

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 *corev1.ResourceQuota) error

	// GetQuotas gets all possible quotas for a given namespace
	GetQuotas(namespace string) ([]corev1.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.

type QuotaAdmission added in v1.9.0

type QuotaAdmission struct {
	*admission.Handler
	// contains filtered or unexported fields
}

QuotaAdmission implements an admission controller that can enforce quota constraints

func NewResourceQuota

func NewResourceQuota(config *resourcequotaapi.Configuration, numEvaluators int, stopCh <-chan struct{}) (*QuotaAdmission, 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 (*QuotaAdmission) SetExternalKubeClientSet added in v1.13.0

func (a *QuotaAdmission) SetExternalKubeClientSet(client kubernetes.Interface)

func (*QuotaAdmission) SetExternalKubeInformerFactory added in v1.13.0

func (a *QuotaAdmission) SetExternalKubeInformerFactory(f informers.SharedInformerFactory)

func (*QuotaAdmission) SetQuotaConfiguration added in v1.9.0

func (a *QuotaAdmission) SetQuotaConfiguration(c quota.Configuration)

func (*QuotaAdmission) Validate added in v1.9.0

Validate makes admission decisions while enforcing quota

func (*QuotaAdmission) ValidateInitialization added in v1.9.0

func (a *QuotaAdmission) ValidateInitialization() error

ValidateInitialization ensures an authorizer is set.

Directories

Path Synopsis
apis
resourcequota/install
Package install installs the experimental API group, making it available as an option to all of the API encoding/decoding machinery.
Package install installs the experimental API group, making it available as an option to all of the API encoding/decoding machinery.
resourcequota/v1alpha1
Package v1alpha1 is the v1alpha1 version of the API.
Package v1alpha1 is the v1alpha1 version of the API.
resourcequota/v1beta1
Package v1beta1 is the v1beta1 version of the API.
Package v1beta1 is the v1beta1 version of the API.

Jump to

Keyboard shortcuts

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