// newReinvocationHandler creates a handler that wraps the provided admission chain and reinvokes it // if needed according to re-invocation policy of the webhooks. func newReinvocationHandler(admissionChain Interface) Interface { … } type reinvoker … // Admit performs an admission control check using the wrapped admission chain, reinvoking the // admission chain if needed according to the reinvocation policy. Plugins are expected to check // the admission attributes' reinvocation context against their reinvocation policy to decide if // they should re-run, and to update the reinvocation context if they perform any mutations. func (r *reinvoker) Admit(ctx context.Context, a Attributes, o ObjectInterfaces) error { … } // Validate performs an admission control check using the wrapped admission chain, and returns immediately on first error. func (r *reinvoker) Validate(ctx context.Context, a Attributes, o ObjectInterfaces) error { … } // Handles will return true if any of the admission chain handlers handle the given operation. func (r *reinvoker) Handles(operation Operation) bool { … }