Package runtimeclass contains an admission controller for modifying and validating new Pods to take RuntimeClass into account. For RuntimeClass definitions which describe an overhead associated with running a pod, this admission controller will set the pod.Spec.Overhead field accordingly. This field should only be set through this controller, so vaidation will be carried out to ensure the pod's value matches what is defined in the coresponding RuntimeClass.
const PluginName = "RuntimeClass"
PluginName indicates name of admission plugin.
Register registers a plugin
RuntimeClass is an implementation of admission.Interface. It looks at all new pods and sets pod.Spec.Overhead if a RuntimeClass is specified which defines an Overhead. If pod.Spec.Overhead is set but a RuntimeClass with matching overhead is not specified, the pod is rejected.
NewRuntimeClass creates a new RuntimeClass admission control handler
func (r *RuntimeClass) Admit(ctx context.Context, attributes admission.Attributes, o admission.ObjectInterfaces) error
Admit makes an admission decision based on the request attributes
InspectFeatureGates allows setting bools without taking a dep on a global variable
SetExternalKubeClientSet sets the client for the plugin
SetExternalKubeInformerFactory implements the WantsExternalKubeInformerFactory interface.
func (r *RuntimeClass) Validate(ctx context.Context, attributes admission.Attributes, o admission.ObjectInterfaces) error
Validate makes sure that pod adhere's to RuntimeClass's definition
ValidateInitialization implements the WantsExternalKubeInformerFactory interface.