type NamespaceSelectorProvider … type Matcher … func (m *Matcher) GetNamespace(name string) (*v1.Namespace, error) { … } // Validate checks if the Matcher has a NamespaceLister and Client. func (m *Matcher) Validate() error { … } // GetNamespaceLabels gets the labels of the namespace related to the attr. func (m *Matcher) GetNamespaceLabels(attr admission.Attributes) (map[string]string, error) { … } // MatchNamespaceSelector decideds whether the request matches the // namespaceSelctor of the webhook. Only when they match, the webhook is called. func (m *Matcher) MatchNamespaceSelector(p NamespaceSelectorProvider, attr admission.Attributes) (bool, *apierrors.StatusError) { … }