Improve naming and code comments

This commit is contained in:
Amine 2023-07-12 16:20:14 +01:00
parent 28b6c90696
commit 0695853a30
5 changed files with 19 additions and 10 deletions

View File

@ -21,7 +21,7 @@ import (
"sort"
"sync"
"k8s.io/api/admissionregistration/v1"
v1 "k8s.io/api/admissionregistration/v1"
"k8s.io/apimachinery/pkg/labels"
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
"k8s.io/apiserver/pkg/admission/plugin/webhook"
@ -106,10 +106,15 @@ func (m *mutatingWebhookConfigurationManager) getConfiguration() ([]webhook.Webh
if err != nil {
return []webhook.WebhookAccessor{}, err
}
return m.smartReloadMutatingWebhookConfigurations(configurations), nil
return m.getMutatingWebhookConfigurations(configurations), nil
}
func (m *mutatingWebhookConfigurationManager) smartReloadMutatingWebhookConfigurations(configurations []*v1.MutatingWebhookConfiguration) []webhook.WebhookAccessor {
// getMutatingWebhookConfigurations returns the webhook accessors for a given list of
// mutating webhook configurations.
//
// This function will, first, try to load the webhook accessors from the cache and avoid
// recreating them, which can be expessive (requiring CEL expression recompilation).
func (m *mutatingWebhookConfigurationManager) getMutatingWebhookConfigurations(configurations []*v1.MutatingWebhookConfiguration) []webhook.WebhookAccessor {
// The internal order of webhooks for each configuration is provided by the user
// but configurations themselves can be in any order. As we are going to run these
// webhooks in serial, they are sorted here to have a deterministic order.

View File

@ -118,8 +118,8 @@ func TestGetMutatingWebhookConfigSmartReload(t *testing.T) {
name string
args args
numberOfCreations int
// number of refreshes are number of times we pulled a webhook configuration
// from the cache without having to create new ones from scratch.
// number of refreshes are number of times we recrated a webhook accessor
// instead of pulling from the cache.
numberOfRefreshes int
finalNumberOfWebhookAccessors int
}{

View File

@ -106,10 +106,15 @@ func (v *validatingWebhookConfigurationManager) getConfiguration() ([]webhook.We
if err != nil {
return []webhook.WebhookAccessor{}, err
}
return v.smartReloadValidatingWebhookConfigurations(configurations), nil
return v.getValidatingWebhookConfigurations(configurations), nil
}
func (v *validatingWebhookConfigurationManager) smartReloadValidatingWebhookConfigurations(configurations []*v1.ValidatingWebhookConfiguration) []webhook.WebhookAccessor {
// getMutatingWebhookConfigurations returns the webhook accessors for a given list of
// mutating webhook configurations.
//
// This function will, first, try to load the webhook accessors from the cache and avoid
// recreating them, which can be expessive (requiring CEL expression recompilation).
func (v *validatingWebhookConfigurationManager) getValidatingWebhookConfigurations(configurations []*v1.ValidatingWebhookConfiguration) []webhook.WebhookAccessor {
sort.SliceStable(configurations, ValidatingWebhookConfigurationSorter(configurations).ByName)
accessors := []webhook.WebhookAccessor{}
for _, c := range configurations {

View File

@ -118,8 +118,8 @@ func TestGetValidatingWebhookConfigSmartReload(t *testing.T) {
name string
args args
numberOfCreations int
// number of refreshes are number of times we pulled a webhook configuration
// from the cache without having to create new ones from scratch.
// number of refreshes are number of times we recrated a webhook accessor
// instead of pulling from the cache.
numberOfRefreshes int
finalNumberOfWebhookAccessors int
}{

View File

@ -123,7 +123,6 @@ func (m *mutatingWebhookAccessor) GetRESTClient(clientManager *webhookutil.Clien
return m.client, m.clientErr
}
// TODO: graduation to beta: resolve the fact that we rebuild ALL items whenever ANY config changes in NewMutatingWebhookConfigurationManager and NewValidatingWebhookConfigurationManager ... now that we're doing CEL compilation, we probably want to avoid that
func (m *mutatingWebhookAccessor) GetCompiledMatcher(compiler cel.FilterCompiler) matchconditions.Matcher {
m.compileMatcher.Do(func() {
expressions := make([]cel.ExpressionAccessor, len(m.MutatingWebhook.MatchConditions))