Skip to content

Commit fb2b87a

Browse files
Merge pull request #15459 from smarterclayton/fix_auth_master
Automatic merge from submit-queue Properly authorize controller API requests We were using the wrong client when the controller authorizes.
2 parents f652040 + 73f3a4a commit fb2b87a

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

pkg/cmd/server/origin/master.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import (
2121
genericroutes "k8s.io/apiserver/pkg/server/routes"
2222
authzwebhook "k8s.io/apiserver/plugin/pkg/authorizer/webhook"
2323
clientgoclientset "k8s.io/client-go/kubernetes"
24-
kclientsetinternal "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
2524
kubeapiserver "k8s.io/kubernetes/pkg/master"
2625
kcorestorage "k8s.io/kubernetes/pkg/registry/core/rest"
2726

@@ -262,7 +261,7 @@ func (c *MasterConfig) buildHandlerChain(assetConfig *AssetConfig) (func(http.Ha
262261
}
263262

264263
// TODO refactor this out of this package and split apiserver and controllers for good!
265-
func RunControllerServer(servingInfo configapi.HTTPServingInfo, kubeInternal kclientsetinternal.Interface) error {
264+
func RunControllerServer(servingInfo configapi.HTTPServingInfo, kubeExternal clientgoclientset.Interface) error {
266265
clientCAs, err := getClientCertCAPool(servingInfo)
267266
if err != nil {
268267
return err
@@ -276,12 +275,12 @@ func RunControllerServer(servingInfo configapi.HTTPServingInfo, kubeInternal kcl
276275
genericroutes.MetricsWithReset{}.Install(mux)
277276

278277
// TODO: replace me with a service account for controller manager
279-
tokenReview := clientgoclientset.New(kubeInternal.Authentication().RESTClient()).AuthenticationV1beta1().TokenReviews()
278+
tokenReview := kubeExternal.AuthenticationV1beta1().TokenReviews()
280279
authn, err := serverauthenticator.NewRemoteAuthenticator(tokenReview, clientCAs, 5*time.Minute)
281280
if err != nil {
282281
return err
283282
}
284-
sarClient := clientgoclientset.New(kubeInternal.Authorization().RESTClient()).AuthorizationV1beta1().SubjectAccessReviews()
283+
sarClient := kubeExternal.AuthorizationV1beta1().SubjectAccessReviews()
285284
remoteAuthz, err := authzwebhook.NewFromInterface(sarClient, 5*time.Minute, 5*time.Minute)
286285
if err != nil {
287286
return err

pkg/cmd/server/start/start_master.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323
"k8s.io/apimachinery/pkg/util/sets"
2424
"k8s.io/apimachinery/pkg/util/wait"
2525
utilwait "k8s.io/apimachinery/pkg/util/wait"
26+
clientgoclientset "k8s.io/client-go/kubernetes"
2627
aggregatorinstall "k8s.io/kube-aggregator/pkg/apis/apiregistration/install"
2728
kapi "k8s.io/kubernetes/pkg/api"
2829
"k8s.io/kubernetes/pkg/capabilities"
@@ -419,7 +420,11 @@ func (m *Master) Start() error {
419420
if err != nil {
420421
return err
421422
}
422-
kubeInternal, _, err := configapi.GetInternalKubeClient(m.config.MasterClients.OpenShiftLoopbackKubeConfig, m.config.MasterClients.OpenShiftLoopbackClientConnectionOverrides)
423+
_, config, err := configapi.GetExternalKubeClient(m.config.MasterClients.OpenShiftLoopbackKubeConfig, m.config.MasterClients.OpenShiftLoopbackClientConnectionOverrides)
424+
if err != nil {
425+
return err
426+
}
427+
clientGoKubeExternal, err := clientgoclientset.NewForConfig(config)
423428
if err != nil {
424429
return err
425430
}
@@ -436,7 +441,7 @@ func (m *Master) Start() error {
436441
}
437442
glog.Infof("Using images from %q", imageTemplate.ExpandOrDie("<component>"))
438443

439-
if err := origin.RunControllerServer(m.config.ServingInfo, kubeInternal); err != nil {
444+
if err := origin.RunControllerServer(m.config.ServingInfo, clientGoKubeExternal); err != nil {
440445
return err
441446
}
442447
}

0 commit comments

Comments
 (0)