kubernetes: k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction Index | Files | Directories

package podtolerationrestriction

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

Package podtolerationrestriction is a plugin that first verifies any conflict between a pod's tolerations and its namespace's tolerations, and rejects the pod if there's a conflict. If there's no conflict, the pod's tolerations are merged with its namespace's toleration. Resulting pod's tolerations are verified against its namespace's whitelist of tolerations. If the verification is successful, the pod is admitted otherwise rejected. If a namespace does not have associated default or whitelist of tolerations, then cluster level default or whitelist of tolerations are used instead if specified. Tolerations to a namespace are assigned via scheduler.alpha.kubernetes.io/defaultTolerations and scheduler.alpha.kubernetes.io/tolerationsWhitelist annotations keys.


Package Files

admission.go config.go doc.go


const (
    NSDefaultTolerations string = "scheduler.alpha.kubernetes.io/defaultTolerations"
    NSWLTolerations      string = "scheduler.alpha.kubernetes.io/tolerationsWhitelist"

The annotation keys for default and whitelist of tolerations

const PluginName = "PodTolerationRestriction"

PluginName is a string with the name of the plugin

func Register Uses

func Register(plugins *admission.Plugins)

Register registers a plugin

type Plugin Uses

type Plugin struct {
    // contains filtered or unexported fields

Plugin contains the client used by the admission controller

func NewPodTolerationsPlugin Uses

func NewPodTolerationsPlugin(pluginConfig *pluginapi.Configuration) *Plugin

NewPodTolerationsPlugin initializes a Plugin

func (*Plugin) Admit Uses

func (p *Plugin) Admit(ctx context.Context, a admission.Attributes, o admission.ObjectInterfaces) error

Admit checks the admission policy and triggers corresponding actions

func (*Plugin) SetExternalKubeClientSet Uses

func (p *Plugin) SetExternalKubeClientSet(client kubernetes.Interface)

SetExternalKubeClientSet sets th client

func (*Plugin) SetExternalKubeInformerFactory Uses

func (p *Plugin) SetExternalKubeInformerFactory(f informers.SharedInformerFactory)

SetExternalKubeInformerFactory initializes the Informer Factory

func (*Plugin) Validate Uses

func (p *Plugin) Validate(ctx context.Context, a admission.Attributes, o admission.ObjectInterfaces) error

Validate we can obtain a whitelist of tolerations

func (*Plugin) ValidateInitialization Uses

func (p *Plugin) ValidateInitialization() error

ValidateInitialization checks the object is properly initialized


apis/podtolerationrestriction/installPackage install installs the experimental API group, making it available as an option to all of the API encoding/decoding machinery.
apis/podtolerationrestriction/v1alpha1Package v1alpha1 is the v1alpha1 version of the API.

Package podtolerationrestriction imports 24 packages (graph) and is imported by 63 packages. Updated 2020-06-30. Refresh now. Tools for package owners.