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" "sort"
"sync" "sync"
"k8s.io/api/admissionregistration/v1" v1 "k8s.io/api/admissionregistration/v1"
"k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/labels"
utilruntime "k8s.io/apimachinery/pkg/util/runtime" utilruntime "k8s.io/apimachinery/pkg/util/runtime"
"k8s.io/apiserver/pkg/admission/plugin/webhook" "k8s.io/apiserver/pkg/admission/plugin/webhook"
@ -106,10 +106,15 @@ func (m *mutatingWebhookConfigurationManager) getConfiguration() ([]webhook.Webh
if err != nil { if err != nil {
return []webhook.WebhookAccessor{}, err 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 // 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 // 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. // 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 name string
args args args args
numberOfCreations int numberOfCreations int
// number of refreshes are number of times we pulled a webhook configuration // number of refreshes are number of times we recrated a webhook accessor
// from the cache without having to create new ones from scratch. // instead of pulling from the cache.
numberOfRefreshes int numberOfRefreshes int
finalNumberOfWebhookAccessors int finalNumberOfWebhookAccessors int
}{ }{

View File

@ -106,10 +106,15 @@ func (v *validatingWebhookConfigurationManager) getConfiguration() ([]webhook.We
if err != nil { if err != nil {
return []webhook.WebhookAccessor{}, err 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) sort.SliceStable(configurations, ValidatingWebhookConfigurationSorter(configurations).ByName)
accessors := []webhook.WebhookAccessor{} accessors := []webhook.WebhookAccessor{}
for _, c := range configurations { for _, c := range configurations {

View File

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

View File

@ -123,7 +123,6 @@ func (m *mutatingWebhookAccessor) GetRESTClient(clientManager *webhookutil.Clien
return m.client, m.clientErr 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 { func (m *mutatingWebhookAccessor) GetCompiledMatcher(compiler cel.FilterCompiler) matchconditions.Matcher {
m.compileMatcher.Do(func() { m.compileMatcher.Do(func() {
expressions := make([]cel.ExpressionAccessor, len(m.MutatingWebhook.MatchConditions)) expressions := make([]cel.ExpressionAccessor, len(m.MutatingWebhook.MatchConditions))