const PluginName … // Register registers a plugin func Register(plugins *admission.Plugins) { … } type Plugin … // SetAuthorizer sets the authorizer. func (p *Plugin) SetAuthorizer(authz authorizer.Authorizer) { … } // ValidateInitialization ensures an authorizer is set. func (p *Plugin) ValidateInitialization() error { … } var _ … var _ … // NewPlugin creates a new CSR approval admission plugin func NewPlugin() *Plugin { … } var csrGroupResource … // Validate verifies that the requesting user has permission to sign // CertificateSigningRequests for the specified signerName. func (p *Plugin) Validate(ctx context.Context, a admission.Attributes, o admission.ObjectInterfaces) error { … }