Merge pull request #65477 from pusher/fix-client-ca-hook

Minimize writes to the client CA ConfigMap during API server start up
This commit is contained in:
k8s-ci-robot 2018-10-17 11:56:30 -07:00 committed by GitHub
commit 7c17beb639
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 2 deletions

View File

@ -19,6 +19,7 @@ package master
import (
"encoding/json"
"fmt"
"reflect"
"time"
apierrors "k8s.io/apimachinery/pkg/api/errors"
@ -131,7 +132,9 @@ func writeConfigMap(client coreclient.ConfigMapsGetter, name string, data map[st
return err
}
existing.Data = data
_, err = client.ConfigMaps(metav1.NamespaceSystem).Update(existing)
if !reflect.DeepEqual(existing.Data, data) {
existing.Data = data
_, err = client.ConfigMaps(metav1.NamespaceSystem).Update(existing)
}
return err
}

View File

@ -186,6 +186,30 @@ func TestWriteClientCAs(t *testing.T) {
},
},
},
{
name: "skip on no change",
hook: ClientCARegistrationHook{
RequestHeaderUsernameHeaders: []string{},
RequestHeaderGroupHeaders: []string{},
RequestHeaderExtraHeaderPrefixes: []string{},
RequestHeaderCA: []byte("bar"),
RequestHeaderAllowedNames: []string{},
},
preexistingObjs: []runtime.Object{
&api.ConfigMap{
ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceSystem, Name: "extension-apiserver-authentication"},
Data: map[string]string{
"requestheader-username-headers": `[]`,
"requestheader-group-headers": `[]`,
"requestheader-extra-headers-prefix": `[]`,
"requestheader-client-ca-file": "bar",
"requestheader-allowed-names": `[]`,
},
},
},
expectedConfigMaps: map[string]*api.ConfigMap{},
expectUpdate: false,
},
}
for _, test := range tests {