mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	Cleaning up duplicate master config inits
This commit is contained in:
		@@ -19,7 +19,6 @@ limitations under the License.
 | 
				
			|||||||
package main
 | 
					package main
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"errors"
 | 
					 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"io/ioutil"
 | 
						"io/ioutil"
 | 
				
			||||||
	"net"
 | 
						"net"
 | 
				
			||||||
@@ -37,10 +36,8 @@ import (
 | 
				
			|||||||
	kubeletapp "k8s.io/kubernetes/cmd/kubelet/app"
 | 
						kubeletapp "k8s.io/kubernetes/cmd/kubelet/app"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/api"
 | 
						"k8s.io/kubernetes/pkg/api"
 | 
				
			||||||
	apierrors "k8s.io/kubernetes/pkg/api/errors"
 | 
						apierrors "k8s.io/kubernetes/pkg/api/errors"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/api/latest"
 | 
					 | 
				
			||||||
	"k8s.io/kubernetes/pkg/api/testapi"
 | 
						"k8s.io/kubernetes/pkg/api/testapi"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/api/unversioned"
 | 
						"k8s.io/kubernetes/pkg/api/unversioned"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/apiserver"
 | 
					 | 
				
			||||||
	"k8s.io/kubernetes/pkg/client/record"
 | 
						"k8s.io/kubernetes/pkg/client/record"
 | 
				
			||||||
	client "k8s.io/kubernetes/pkg/client/unversioned"
 | 
						client "k8s.io/kubernetes/pkg/client/unversioned"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/controller"
 | 
						"k8s.io/kubernetes/pkg/controller"
 | 
				
			||||||
@@ -55,17 +52,16 @@ import (
 | 
				
			|||||||
	kubetypes "k8s.io/kubernetes/pkg/kubelet/types"
 | 
						kubetypes "k8s.io/kubernetes/pkg/kubelet/types"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/labels"
 | 
						"k8s.io/kubernetes/pkg/labels"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/master"
 | 
						"k8s.io/kubernetes/pkg/master"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/storage/etcd/etcdtest"
 | 
					 | 
				
			||||||
	"k8s.io/kubernetes/pkg/util"
 | 
						"k8s.io/kubernetes/pkg/util"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/util/sets"
 | 
						"k8s.io/kubernetes/pkg/util/sets"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/util/wait"
 | 
						"k8s.io/kubernetes/pkg/util/wait"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/volume/empty_dir"
 | 
						"k8s.io/kubernetes/pkg/volume/empty_dir"
 | 
				
			||||||
	"k8s.io/kubernetes/plugin/pkg/admission/admit"
 | 
					 | 
				
			||||||
	"k8s.io/kubernetes/plugin/pkg/scheduler"
 | 
						"k8s.io/kubernetes/plugin/pkg/scheduler"
 | 
				
			||||||
	_ "k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider"
 | 
						_ "k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider"
 | 
				
			||||||
	"k8s.io/kubernetes/plugin/pkg/scheduler/factory"
 | 
						"k8s.io/kubernetes/plugin/pkg/scheduler/factory"
 | 
				
			||||||
	"k8s.io/kubernetes/test/e2e"
 | 
						"k8s.io/kubernetes/test/e2e"
 | 
				
			||||||
	"k8s.io/kubernetes/test/integration"
 | 
						"k8s.io/kubernetes/test/integration"
 | 
				
			||||||
 | 
						"k8s.io/kubernetes/test/integration/framework"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/coreos/go-etcd/etcd"
 | 
						"github.com/coreos/go-etcd/etcd"
 | 
				
			||||||
	"github.com/golang/glog"
 | 
						"github.com/golang/glog"
 | 
				
			||||||
@@ -83,12 +79,6 @@ var (
 | 
				
			|||||||
	maxTestTimeout = time.Minute * 10
 | 
						maxTestTimeout = time.Minute * 10
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type fakeKubeletClient struct{}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (fakeKubeletClient) GetConnectionInfo(ctx api.Context, nodeName string) (string, uint, http.RoundTripper, error) {
 | 
					 | 
				
			||||||
	return "", 0, nil, errors.New("Not Implemented")
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
type delegateHandler struct {
 | 
					type delegateHandler struct {
 | 
				
			||||||
	delegate http.Handler
 | 
						delegate http.Handler
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -140,21 +130,6 @@ func startComponents(firstManifestURL, secondManifestURL string) (string, string
 | 
				
			|||||||
	// We will fix this by supporting multiple group versions in Config
 | 
						// We will fix this by supporting multiple group versions in Config
 | 
				
			||||||
	cl.ExtensionsClient = client.NewExtensionsOrDie(&client.Config{Host: apiServer.URL, GroupVersion: testapi.Extensions.GroupVersion()})
 | 
						cl.ExtensionsClient = client.NewExtensionsOrDie(&client.Config{Host: apiServer.URL, GroupVersion: testapi.Extensions.GroupVersion()})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	storageVersions := make(map[string]string)
 | 
					 | 
				
			||||||
	etcdStorage, err := master.NewEtcdStorage(etcdClient, latest.GroupOrDie("").InterfacesFor, testapi.Default.GroupAndVersion(), etcdtest.PathPrefix())
 | 
					 | 
				
			||||||
	storageVersions[""] = testapi.Default.GroupAndVersion()
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		glog.Fatalf("Unable to get etcd storage: %v", err)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	expEtcdStorage, err := master.NewEtcdStorage(etcdClient, latest.GroupOrDie("extensions").InterfacesFor, testapi.Extensions.GroupAndVersion(), etcdtest.PathPrefix())
 | 
					 | 
				
			||||||
	storageVersions["extensions"] = testapi.Extensions.GroupAndVersion()
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		glog.Fatalf("Unable to get etcd storage for experimental: %v", err)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	storageDestinations := master.NewStorageDestinations()
 | 
					 | 
				
			||||||
	storageDestinations.AddAPIGroup("", etcdStorage)
 | 
					 | 
				
			||||||
	storageDestinations.AddAPIGroup("extensions", expEtcdStorage)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// Master
 | 
						// Master
 | 
				
			||||||
	host, port, err := net.SplitHostPort(strings.TrimLeft(apiServer.URL, "http://"))
 | 
						host, port, err := net.SplitHostPort(strings.TrimLeft(apiServer.URL, "http://"))
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
@@ -177,22 +152,15 @@ func startComponents(firstManifestURL, secondManifestURL string) (string, string
 | 
				
			|||||||
			"Fail to get a valid public address for master.", err)
 | 
								"Fail to get a valid public address for master.", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						masterConfig := framework.NewMasterConfig()
 | 
				
			||||||
 | 
						masterConfig.EnableCoreControllers = true
 | 
				
			||||||
 | 
						masterConfig.EnableProfiling = true
 | 
				
			||||||
 | 
						masterConfig.ReadWritePort = portNumber
 | 
				
			||||||
 | 
						masterConfig.PublicAddress = hostIP
 | 
				
			||||||
 | 
						masterConfig.CacheTimeout = 2 * time.Second
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Create a master and install handlers into mux.
 | 
						// Create a master and install handlers into mux.
 | 
				
			||||||
	m := master.New(&master.Config{
 | 
						m := master.New(masterConfig)
 | 
				
			||||||
		StorageDestinations:   storageDestinations,
 | 
					 | 
				
			||||||
		KubeletClient:         fakeKubeletClient{},
 | 
					 | 
				
			||||||
		EnableCoreControllers: true,
 | 
					 | 
				
			||||||
		EnableLogsSupport:     false,
 | 
					 | 
				
			||||||
		EnableProfiling:       true,
 | 
					 | 
				
			||||||
		APIPrefix:             "/api",
 | 
					 | 
				
			||||||
		APIGroupPrefix:        "/apis",
 | 
					 | 
				
			||||||
		Authorizer:            apiserver.NewAlwaysAllowAuthorizer(),
 | 
					 | 
				
			||||||
		AdmissionControl:      admit.NewAlwaysAdmit(),
 | 
					 | 
				
			||||||
		ReadWritePort:         portNumber,
 | 
					 | 
				
			||||||
		PublicAddress:         hostIP,
 | 
					 | 
				
			||||||
		CacheTimeout:          2 * time.Second,
 | 
					 | 
				
			||||||
		StorageVersions:       storageVersions,
 | 
					 | 
				
			||||||
	})
 | 
					 | 
				
			||||||
	handler.delegate = m.Handler
 | 
						handler.delegate = m.Handler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Scheduler
 | 
						// Scheduler
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -387,42 +387,14 @@ func TestAuthModeAlwaysAllow(t *testing.T) {
 | 
				
			|||||||
	framework.DeleteAllEtcdKeys()
 | 
						framework.DeleteAllEtcdKeys()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Set up a master
 | 
						// Set up a master
 | 
				
			||||||
	etcdStorage, err := framework.NewEtcdStorage()
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		t.Fatalf("unexpected error: %v", err)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	expEtcdStorage, err := framework.NewExtensionsEtcdStorage(nil)
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		t.Fatalf("unexpected error: %v", err)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	storageDestinations := master.NewStorageDestinations()
 | 
					 | 
				
			||||||
	storageDestinations.AddAPIGroup("", etcdStorage)
 | 
					 | 
				
			||||||
	storageDestinations.AddAPIGroup("extensions", expEtcdStorage)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	storageVersions := make(map[string]string)
 | 
					 | 
				
			||||||
	storageVersions[""] = testapi.Default.Version()
 | 
					 | 
				
			||||||
	storageVersions["extensions"] = testapi.Extensions.GroupAndVersion()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	var m *master.Master
 | 
						var m *master.Master
 | 
				
			||||||
	s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
 | 
						s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
 | 
				
			||||||
		m.Handler.ServeHTTP(w, req)
 | 
							m.Handler.ServeHTTP(w, req)
 | 
				
			||||||
	}))
 | 
						}))
 | 
				
			||||||
	defer s.Close()
 | 
						defer s.Close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	m = master.New(&master.Config{
 | 
						masterConfig := framework.NewIntegrationTestMasterConfig()
 | 
				
			||||||
		StorageDestinations:   storageDestinations,
 | 
						m = master.New(masterConfig)
 | 
				
			||||||
		KubeletClient:         client.FakeKubeletClient{},
 | 
					 | 
				
			||||||
		EnableCoreControllers: true,
 | 
					 | 
				
			||||||
		EnableLogsSupport:     false,
 | 
					 | 
				
			||||||
		EnableUISupport:       false,
 | 
					 | 
				
			||||||
		EnableIndex:           true,
 | 
					 | 
				
			||||||
		APIPrefix:             "/api",
 | 
					 | 
				
			||||||
		Authorizer:            apiserver.NewAlwaysAllowAuthorizer(),
 | 
					 | 
				
			||||||
		AdmissionControl:      admit.NewAlwaysAdmit(),
 | 
					 | 
				
			||||||
		StorageVersions:       storageVersions,
 | 
					 | 
				
			||||||
		PublicAddress:         net.ParseIP("192.168.10.4"),
 | 
					 | 
				
			||||||
	})
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	transport := http.DefaultTransport
 | 
						transport := http.DefaultTransport
 | 
				
			||||||
	previousResourceVersion := make(map[string]float64)
 | 
						previousResourceVersion := make(map[string]float64)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -33,14 +33,11 @@ import (
 | 
				
			|||||||
	"k8s.io/kubernetes/pkg/api/resource"
 | 
						"k8s.io/kubernetes/pkg/api/resource"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/api/testapi"
 | 
						"k8s.io/kubernetes/pkg/api/testapi"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/api/unversioned"
 | 
						"k8s.io/kubernetes/pkg/api/unversioned"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/apiserver"
 | 
					 | 
				
			||||||
	"k8s.io/kubernetes/pkg/client/record"
 | 
						"k8s.io/kubernetes/pkg/client/record"
 | 
				
			||||||
	client "k8s.io/kubernetes/pkg/client/unversioned"
 | 
						client "k8s.io/kubernetes/pkg/client/unversioned"
 | 
				
			||||||
	kubeletclient "k8s.io/kubernetes/pkg/kubelet/client"
 | 
					 | 
				
			||||||
	"k8s.io/kubernetes/pkg/master"
 | 
						"k8s.io/kubernetes/pkg/master"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/util"
 | 
						"k8s.io/kubernetes/pkg/util"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/util/wait"
 | 
						"k8s.io/kubernetes/pkg/util/wait"
 | 
				
			||||||
	"k8s.io/kubernetes/plugin/pkg/admission/admit"
 | 
					 | 
				
			||||||
	"k8s.io/kubernetes/plugin/pkg/scheduler"
 | 
						"k8s.io/kubernetes/plugin/pkg/scheduler"
 | 
				
			||||||
	_ "k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider"
 | 
						_ "k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider"
 | 
				
			||||||
	schedulerapi "k8s.io/kubernetes/plugin/pkg/scheduler/api"
 | 
						schedulerapi "k8s.io/kubernetes/plugin/pkg/scheduler/api"
 | 
				
			||||||
@@ -188,23 +185,6 @@ func machine_3_Prioritizer(pod *api.Pod, nodes *api.NodeList) (*schedulerapi.Hos
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func TestSchedulerExtender(t *testing.T) {
 | 
					func TestSchedulerExtender(t *testing.T) {
 | 
				
			||||||
	etcdStorage, err := framework.NewEtcdStorage()
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		t.Fatalf("Couldn't create etcd storage: %v", err)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	expEtcdStorage, err := framework.NewExtensionsEtcdStorage(nil)
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		t.Fatalf("unexpected error: %v", err)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	storageDestinations := master.NewStorageDestinations()
 | 
					 | 
				
			||||||
	storageDestinations.AddAPIGroup("", etcdStorage)
 | 
					 | 
				
			||||||
	storageDestinations.AddAPIGroup("extensions", expEtcdStorage)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	storageVersions := make(map[string]string)
 | 
					 | 
				
			||||||
	storageVersions[""] = testapi.Default.Version()
 | 
					 | 
				
			||||||
	storageVersions["extensions"] = testapi.Extensions.GroupAndVersion()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	framework.DeleteAllEtcdKeys()
 | 
						framework.DeleteAllEtcdKeys()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	var m *master.Master
 | 
						var m *master.Master
 | 
				
			||||||
@@ -213,18 +193,8 @@ func TestSchedulerExtender(t *testing.T) {
 | 
				
			|||||||
	}))
 | 
						}))
 | 
				
			||||||
	defer s.Close()
 | 
						defer s.Close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	m = master.New(&master.Config{
 | 
						masterConfig := framework.NewIntegrationTestMasterConfig()
 | 
				
			||||||
		StorageDestinations:   storageDestinations,
 | 
						m = master.New(masterConfig)
 | 
				
			||||||
		KubeletClient:         kubeletclient.FakeKubeletClient{},
 | 
					 | 
				
			||||||
		EnableCoreControllers: true,
 | 
					 | 
				
			||||||
		EnableLogsSupport:     false,
 | 
					 | 
				
			||||||
		EnableUISupport:       false,
 | 
					 | 
				
			||||||
		EnableIndex:           true,
 | 
					 | 
				
			||||||
		APIPrefix:             "/api",
 | 
					 | 
				
			||||||
		Authorizer:            apiserver.NewAlwaysAllowAuthorizer(),
 | 
					 | 
				
			||||||
		AdmissionControl:      admit.NewAlwaysAdmit(),
 | 
					 | 
				
			||||||
		StorageVersions:       storageVersions,
 | 
					 | 
				
			||||||
	})
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	restClient := client.NewOrDie(&client.Config{Host: s.URL, GroupVersion: testapi.Default.GroupVersion()})
 | 
						restClient := client.NewOrDie(&client.Config{Host: s.URL, GroupVersion: testapi.Default.GroupVersion()})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,6 +18,7 @@ package framework
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"io/ioutil"
 | 
						"io/ioutil"
 | 
				
			||||||
 | 
						"net"
 | 
				
			||||||
	"net/http"
 | 
						"net/http"
 | 
				
			||||||
	"net/http/httptest"
 | 
						"net/http/httptest"
 | 
				
			||||||
	"runtime"
 | 
						"runtime"
 | 
				
			||||||
@@ -126,40 +127,52 @@ func startMasterOrDie(masterConfig *master.Config) (*master.Master, *httptest.Se
 | 
				
			|||||||
	}))
 | 
						}))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if masterConfig == nil {
 | 
						if masterConfig == nil {
 | 
				
			||||||
		etcdClient := NewEtcdClient()
 | 
							masterConfig = NewMasterConfig()
 | 
				
			||||||
		storageVersions := make(map[string]string)
 | 
							masterConfig.EnableProfiling = true
 | 
				
			||||||
		etcdStorage, err := master.NewEtcdStorage(etcdClient, latest.GroupOrDie("").InterfacesFor, latest.GroupOrDie("").GroupVersion.String(), etcdtest.PathPrefix())
 | 
							masterConfig.EnableSwaggerSupport = true
 | 
				
			||||||
		storageVersions[""] = latest.GroupOrDie("").GroupVersion.String()
 | 
					 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			glog.Fatalf("Failed to create etcd storage for master %v", err)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		expEtcdStorage, err := NewExtensionsEtcdStorage(etcdClient)
 | 
					 | 
				
			||||||
		storageVersions["extensions"] = testapi.Extensions.GroupAndVersion()
 | 
					 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			glog.Fatalf("Failed to create etcd storage for master %v", err)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		storageDestinations := master.NewStorageDestinations()
 | 
					 | 
				
			||||||
		storageDestinations.AddAPIGroup("", etcdStorage)
 | 
					 | 
				
			||||||
		storageDestinations.AddAPIGroup("extensions", expEtcdStorage)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		masterConfig = &master.Config{
 | 
					 | 
				
			||||||
			StorageDestinations:  storageDestinations,
 | 
					 | 
				
			||||||
			StorageVersions:      storageVersions,
 | 
					 | 
				
			||||||
			KubeletClient:        kubeletclient.FakeKubeletClient{},
 | 
					 | 
				
			||||||
			EnableLogsSupport:    false,
 | 
					 | 
				
			||||||
			EnableProfiling:      true,
 | 
					 | 
				
			||||||
			EnableSwaggerSupport: true,
 | 
					 | 
				
			||||||
			EnableUISupport:      false,
 | 
					 | 
				
			||||||
			APIPrefix:            "/api",
 | 
					 | 
				
			||||||
			APIGroupPrefix:       "/apis",
 | 
					 | 
				
			||||||
			Authorizer:           apiserver.NewAlwaysAllowAuthorizer(),
 | 
					 | 
				
			||||||
			AdmissionControl:     admit.NewAlwaysAdmit(),
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	m = master.New(masterConfig)
 | 
						m = master.New(masterConfig)
 | 
				
			||||||
	return m, s
 | 
						return m, s
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Returns a basic master config.
 | 
				
			||||||
 | 
					func NewMasterConfig() *master.Config {
 | 
				
			||||||
 | 
						etcdClient := NewEtcdClient()
 | 
				
			||||||
 | 
						storageVersions := make(map[string]string)
 | 
				
			||||||
 | 
						etcdStorage, err := master.NewEtcdStorage(etcdClient, latest.GroupOrDie("").InterfacesFor, testapi.Default.GroupAndVersion(), etcdtest.PathPrefix())
 | 
				
			||||||
 | 
						storageVersions[""] = testapi.Default.GroupAndVersion()
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							glog.Fatalf("Failed to create etcd storage for master %v", err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						expEtcdStorage, err := NewExtensionsEtcdStorage(etcdClient)
 | 
				
			||||||
 | 
						storageVersions["extensions"] = testapi.Extensions.GroupAndVersion()
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							glog.Fatalf("Failed to create etcd storage for master %v", err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						storageDestinations := master.NewStorageDestinations()
 | 
				
			||||||
 | 
						storageDestinations.AddAPIGroup("", etcdStorage)
 | 
				
			||||||
 | 
						storageDestinations.AddAPIGroup("extensions", expEtcdStorage)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return &master.Config{
 | 
				
			||||||
 | 
							StorageDestinations: storageDestinations,
 | 
				
			||||||
 | 
							StorageVersions:     storageVersions,
 | 
				
			||||||
 | 
							KubeletClient:       kubeletclient.FakeKubeletClient{},
 | 
				
			||||||
 | 
							APIPrefix:           "/api",
 | 
				
			||||||
 | 
							APIGroupPrefix:      "/apis",
 | 
				
			||||||
 | 
							Authorizer:          apiserver.NewAlwaysAllowAuthorizer(),
 | 
				
			||||||
 | 
							AdmissionControl:    admit.NewAlwaysAdmit(),
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Returns the master config appropriate for most integration tests.
 | 
				
			||||||
 | 
					func NewIntegrationTestMasterConfig() *master.Config {
 | 
				
			||||||
 | 
						masterConfig := NewMasterConfig()
 | 
				
			||||||
 | 
						masterConfig.EnableCoreControllers = true
 | 
				
			||||||
 | 
						masterConfig.EnableIndex = true
 | 
				
			||||||
 | 
						masterConfig.PublicAddress = net.ParseIP("192.168.10.4")
 | 
				
			||||||
 | 
						return masterConfig
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (m *MasterComponents) stopRCManager() {
 | 
					func (m *MasterComponents) stopRCManager() {
 | 
				
			||||||
	close(m.rcStopCh)
 | 
						close(m.rcStopCh)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,7 +22,6 @@ package integration
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"net"
 | 
					 | 
				
			||||||
	"net/http"
 | 
						"net/http"
 | 
				
			||||||
	"net/http/httptest"
 | 
						"net/http/httptest"
 | 
				
			||||||
	"sync"
 | 
						"sync"
 | 
				
			||||||
@@ -34,15 +33,12 @@ import (
 | 
				
			|||||||
	"k8s.io/kubernetes/pkg/api/resource"
 | 
						"k8s.io/kubernetes/pkg/api/resource"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/api/testapi"
 | 
						"k8s.io/kubernetes/pkg/api/testapi"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/api/unversioned"
 | 
						"k8s.io/kubernetes/pkg/api/unversioned"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/apiserver"
 | 
					 | 
				
			||||||
	"k8s.io/kubernetes/pkg/client/cache"
 | 
						"k8s.io/kubernetes/pkg/client/cache"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/client/record"
 | 
						"k8s.io/kubernetes/pkg/client/record"
 | 
				
			||||||
	client "k8s.io/kubernetes/pkg/client/unversioned"
 | 
						client "k8s.io/kubernetes/pkg/client/unversioned"
 | 
				
			||||||
	kubeletclient "k8s.io/kubernetes/pkg/kubelet/client"
 | 
					 | 
				
			||||||
	"k8s.io/kubernetes/pkg/master"
 | 
						"k8s.io/kubernetes/pkg/master"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/util"
 | 
						"k8s.io/kubernetes/pkg/util"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/util/wait"
 | 
						"k8s.io/kubernetes/pkg/util/wait"
 | 
				
			||||||
	"k8s.io/kubernetes/plugin/pkg/admission/admit"
 | 
					 | 
				
			||||||
	"k8s.io/kubernetes/plugin/pkg/scheduler"
 | 
						"k8s.io/kubernetes/plugin/pkg/scheduler"
 | 
				
			||||||
	_ "k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider"
 | 
						_ "k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider"
 | 
				
			||||||
	"k8s.io/kubernetes/plugin/pkg/scheduler/factory"
 | 
						"k8s.io/kubernetes/plugin/pkg/scheduler/factory"
 | 
				
			||||||
@@ -57,23 +53,6 @@ type nodeStateManager struct {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func TestUnschedulableNodes(t *testing.T) {
 | 
					func TestUnschedulableNodes(t *testing.T) {
 | 
				
			||||||
	etcdStorage, err := framework.NewEtcdStorage()
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		t.Fatalf("Couldn't create etcd storage: %v", err)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	expEtcdStorage, err := framework.NewExtensionsEtcdStorage(nil)
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		t.Fatalf("unexpected error: %v", err)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	storageDestinations := master.NewStorageDestinations()
 | 
					 | 
				
			||||||
	storageDestinations.AddAPIGroup("", etcdStorage)
 | 
					 | 
				
			||||||
	storageDestinations.AddAPIGroup("extensions", expEtcdStorage)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	storageVersions := make(map[string]string)
 | 
					 | 
				
			||||||
	storageVersions[""] = testapi.Default.Version()
 | 
					 | 
				
			||||||
	storageVersions["extensions"] = testapi.Extensions.GroupAndVersion()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	framework.DeleteAllEtcdKeys()
 | 
						framework.DeleteAllEtcdKeys()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	var m *master.Master
 | 
						var m *master.Master
 | 
				
			||||||
@@ -82,19 +61,8 @@ func TestUnschedulableNodes(t *testing.T) {
 | 
				
			|||||||
	}))
 | 
						}))
 | 
				
			||||||
	defer s.Close()
 | 
						defer s.Close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	m = master.New(&master.Config{
 | 
						masterConfig := framework.NewIntegrationTestMasterConfig()
 | 
				
			||||||
		StorageDestinations:   storageDestinations,
 | 
						m = master.New(masterConfig)
 | 
				
			||||||
		KubeletClient:         kubeletclient.FakeKubeletClient{},
 | 
					 | 
				
			||||||
		EnableCoreControllers: true,
 | 
					 | 
				
			||||||
		EnableLogsSupport:     false,
 | 
					 | 
				
			||||||
		EnableUISupport:       false,
 | 
					 | 
				
			||||||
		EnableIndex:           true,
 | 
					 | 
				
			||||||
		APIPrefix:             "/api",
 | 
					 | 
				
			||||||
		Authorizer:            apiserver.NewAlwaysAllowAuthorizer(),
 | 
					 | 
				
			||||||
		AdmissionControl:      admit.NewAlwaysAdmit(),
 | 
					 | 
				
			||||||
		StorageVersions:       storageVersions,
 | 
					 | 
				
			||||||
		PublicAddress:         net.ParseIP("192.168.10.4"),
 | 
					 | 
				
			||||||
	})
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	restClient := client.NewOrDie(&client.Config{Host: s.URL, GroupVersion: testapi.Default.GroupVersion()})
 | 
						restClient := client.NewOrDie(&client.Config{Host: s.URL, GroupVersion: testapi.Default.GroupVersion()})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -308,23 +276,6 @@ func DoTestUnschedulableNodes(t *testing.T, restClient *client.Client, nodeStore
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func BenchmarkScheduling(b *testing.B) {
 | 
					func BenchmarkScheduling(b *testing.B) {
 | 
				
			||||||
	etcdStorage, err := framework.NewEtcdStorage()
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		b.Fatalf("Couldn't create etcd storage: %v", err)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	expEtcdStorage, err := framework.NewExtensionsEtcdStorage(nil)
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		b.Fatalf("unexpected error: %v", err)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	storageDestinations := master.NewStorageDestinations()
 | 
					 | 
				
			||||||
	storageDestinations.AddAPIGroup("", etcdStorage)
 | 
					 | 
				
			||||||
	storageDestinations.AddAPIGroup("extensions", expEtcdStorage)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	storageVersions := make(map[string]string)
 | 
					 | 
				
			||||||
	storageVersions[""] = testapi.Default.Version()
 | 
					 | 
				
			||||||
	storageVersions["extensions"] = testapi.Extensions.GroupAndVersion()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	framework.DeleteAllEtcdKeys()
 | 
						framework.DeleteAllEtcdKeys()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	var m *master.Master
 | 
						var m *master.Master
 | 
				
			||||||
@@ -333,19 +284,8 @@ func BenchmarkScheduling(b *testing.B) {
 | 
				
			|||||||
	}))
 | 
						}))
 | 
				
			||||||
	defer s.Close()
 | 
						defer s.Close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	m = master.New(&master.Config{
 | 
						masterConfig := framework.NewIntegrationTestMasterConfig()
 | 
				
			||||||
		StorageDestinations:   storageDestinations,
 | 
						m = master.New(masterConfig)
 | 
				
			||||||
		KubeletClient:         kubeletclient.FakeKubeletClient{},
 | 
					 | 
				
			||||||
		EnableCoreControllers: true,
 | 
					 | 
				
			||||||
		EnableLogsSupport:     false,
 | 
					 | 
				
			||||||
		EnableUISupport:       false,
 | 
					 | 
				
			||||||
		EnableIndex:           true,
 | 
					 | 
				
			||||||
		APIPrefix:             "/api",
 | 
					 | 
				
			||||||
		Authorizer:            apiserver.NewAlwaysAllowAuthorizer(),
 | 
					 | 
				
			||||||
		AdmissionControl:      admit.NewAlwaysAdmit(),
 | 
					 | 
				
			||||||
		StorageVersions:       storageVersions,
 | 
					 | 
				
			||||||
		PublicAddress:         net.ParseIP("192.168.10.4"),
 | 
					 | 
				
			||||||
	})
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	c := client.NewOrDie(&client.Config{
 | 
						c := client.NewOrDie(&client.Config{
 | 
				
			||||||
		Host:         s.URL,
 | 
							Host:         s.URL,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,18 +21,14 @@ package integration
 | 
				
			|||||||
// This file tests use of the secrets API resource.
 | 
					// This file tests use of the secrets API resource.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"net"
 | 
					 | 
				
			||||||
	"net/http"
 | 
						"net/http"
 | 
				
			||||||
	"net/http/httptest"
 | 
						"net/http/httptest"
 | 
				
			||||||
	"testing"
 | 
						"testing"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/api"
 | 
						"k8s.io/kubernetes/pkg/api"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/api/testapi"
 | 
						"k8s.io/kubernetes/pkg/api/testapi"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/apiserver"
 | 
					 | 
				
			||||||
	client "k8s.io/kubernetes/pkg/client/unversioned"
 | 
						client "k8s.io/kubernetes/pkg/client/unversioned"
 | 
				
			||||||
	kubeletclient "k8s.io/kubernetes/pkg/kubelet/client"
 | 
					 | 
				
			||||||
	"k8s.io/kubernetes/pkg/master"
 | 
						"k8s.io/kubernetes/pkg/master"
 | 
				
			||||||
	"k8s.io/kubernetes/plugin/pkg/admission/admit"
 | 
					 | 
				
			||||||
	"k8s.io/kubernetes/test/integration/framework"
 | 
						"k8s.io/kubernetes/test/integration/framework"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -49,42 +45,14 @@ func deleteSecretOrErrorf(t *testing.T, c *client.Client, ns, name string) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// TestSecrets tests apiserver-side behavior of creation of secret objects and their use by pods.
 | 
					// TestSecrets tests apiserver-side behavior of creation of secret objects and their use by pods.
 | 
				
			||||||
func TestSecrets(t *testing.T) {
 | 
					func TestSecrets(t *testing.T) {
 | 
				
			||||||
	etcdStorage, err := framework.NewEtcdStorage()
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		t.Fatalf("unexpected error: %v", err)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	expEtcdStorage, err := framework.NewExtensionsEtcdStorage(nil)
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		t.Fatalf("unexpected error: %v", err)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	storageDestinations := master.NewStorageDestinations()
 | 
					 | 
				
			||||||
	storageDestinations.AddAPIGroup("", etcdStorage)
 | 
					 | 
				
			||||||
	storageDestinations.AddAPIGroup("extensions", expEtcdStorage)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	storageVersions := make(map[string]string)
 | 
					 | 
				
			||||||
	storageVersions[""] = testapi.Default.Version()
 | 
					 | 
				
			||||||
	storageVersions["extensions"] = testapi.Extensions.GroupAndVersion()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	var m *master.Master
 | 
						var m *master.Master
 | 
				
			||||||
	s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
 | 
						s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
 | 
				
			||||||
		m.Handler.ServeHTTP(w, req)
 | 
							m.Handler.ServeHTTP(w, req)
 | 
				
			||||||
	}))
 | 
						}))
 | 
				
			||||||
	defer s.Close()
 | 
						defer s.Close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	m = master.New(&master.Config{
 | 
						masterConfig := framework.NewIntegrationTestMasterConfig()
 | 
				
			||||||
		StorageDestinations:   storageDestinations,
 | 
						m = master.New(masterConfig)
 | 
				
			||||||
		KubeletClient:         kubeletclient.FakeKubeletClient{},
 | 
					 | 
				
			||||||
		EnableCoreControllers: true,
 | 
					 | 
				
			||||||
		EnableLogsSupport:     false,
 | 
					 | 
				
			||||||
		EnableUISupport:       false,
 | 
					 | 
				
			||||||
		EnableIndex:           true,
 | 
					 | 
				
			||||||
		APIPrefix:             "/api",
 | 
					 | 
				
			||||||
		Authorizer:            apiserver.NewAlwaysAllowAuthorizer(),
 | 
					 | 
				
			||||||
		AdmissionControl:      admit.NewAlwaysAdmit(),
 | 
					 | 
				
			||||||
		StorageVersions:       storageVersions,
 | 
					 | 
				
			||||||
		PublicAddress:         net.ParseIP("192.168.10.4"),
 | 
					 | 
				
			||||||
	})
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	framework.DeleteAllEtcdKeys()
 | 
						framework.DeleteAllEtcdKeys()
 | 
				
			||||||
	client := client.NewOrDie(&client.Config{Host: s.URL, GroupVersion: testapi.Default.GroupVersion()})
 | 
						client := client.NewOrDie(&client.Config{Host: s.URL, GroupVersion: testapi.Default.GroupVersion()})
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -42,7 +42,6 @@ import (
 | 
				
			|||||||
	client "k8s.io/kubernetes/pkg/client/unversioned"
 | 
						client "k8s.io/kubernetes/pkg/client/unversioned"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/controller/serviceaccount"
 | 
						"k8s.io/kubernetes/pkg/controller/serviceaccount"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/fields"
 | 
						"k8s.io/kubernetes/pkg/fields"
 | 
				
			||||||
	kubeletclient "k8s.io/kubernetes/pkg/kubelet/client"
 | 
					 | 
				
			||||||
	"k8s.io/kubernetes/pkg/labels"
 | 
						"k8s.io/kubernetes/pkg/labels"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/master"
 | 
						"k8s.io/kubernetes/pkg/master"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/util/sets"
 | 
						"k8s.io/kubernetes/pkg/util/sets"
 | 
				
			||||||
@@ -341,25 +340,6 @@ func startServiceAccountTestServer(t *testing.T) (*client.Client, client.Config,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	deleteAllEtcdKeys()
 | 
						deleteAllEtcdKeys()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Etcd
 | 
					 | 
				
			||||||
	etcdStorage, err := framework.NewEtcdStorage()
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		t.Fatalf("unexpected error: %v", err)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	expEtcdStorage, err := framework.NewExtensionsEtcdStorage(nil)
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		t.Fatalf("unexpected error: %v", err)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	storageDestinations := master.NewStorageDestinations()
 | 
					 | 
				
			||||||
	storageDestinations.AddAPIGroup("", etcdStorage)
 | 
					 | 
				
			||||||
	storageDestinations.AddAPIGroup("extensions", expEtcdStorage)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	storageVersions := make(map[string]string)
 | 
					 | 
				
			||||||
	storageVersions[""] = testapi.Default.Version()
 | 
					 | 
				
			||||||
	storageVersions["extensions"] = testapi.Extensions.GroupAndVersion()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// Listener
 | 
						// Listener
 | 
				
			||||||
	var m *master.Master
 | 
						var m *master.Master
 | 
				
			||||||
	apiServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
 | 
						apiServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
 | 
				
			||||||
@@ -380,7 +360,7 @@ func startServiceAccountTestServer(t *testing.T) (*client.Client, client.Config,
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
		return nil, false, nil
 | 
							return nil, false, nil
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
	serviceAccountKey, err := rsa.GenerateKey(rand.Reader, 2048)
 | 
						serviceAccountKey, _ := rsa.GenerateKey(rand.Reader, 2048)
 | 
				
			||||||
	serviceAccountTokenGetter := serviceaccount.NewGetterFromClient(rootClient)
 | 
						serviceAccountTokenGetter := serviceaccount.NewGetterFromClient(rootClient)
 | 
				
			||||||
	serviceAccountTokenAuth := serviceaccount.JWTTokenAuthenticator([]*rsa.PublicKey{&serviceAccountKey.PublicKey}, true, serviceAccountTokenGetter)
 | 
						serviceAccountTokenAuth := serviceaccount.JWTTokenAuthenticator([]*rsa.PublicKey{&serviceAccountKey.PublicKey}, true, serviceAccountTokenGetter)
 | 
				
			||||||
	authenticator := union.New(
 | 
						authenticator := union.New(
 | 
				
			||||||
@@ -423,19 +403,14 @@ func startServiceAccountTestServer(t *testing.T) (*client.Client, client.Config,
 | 
				
			|||||||
	// Set up admission plugin to auto-assign serviceaccounts to pods
 | 
						// Set up admission plugin to auto-assign serviceaccounts to pods
 | 
				
			||||||
	serviceAccountAdmission := serviceaccountadmission.NewServiceAccount(rootClient)
 | 
						serviceAccountAdmission := serviceaccountadmission.NewServiceAccount(rootClient)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						masterConfig := framework.NewMasterConfig()
 | 
				
			||||||
 | 
						masterConfig.EnableIndex = true
 | 
				
			||||||
 | 
						masterConfig.Authenticator = authenticator
 | 
				
			||||||
 | 
						masterConfig.Authorizer = authorizer
 | 
				
			||||||
 | 
						masterConfig.AdmissionControl = serviceAccountAdmission
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Create a master and install handlers into mux.
 | 
						// Create a master and install handlers into mux.
 | 
				
			||||||
	m = master.New(&master.Config{
 | 
						m = master.New(masterConfig)
 | 
				
			||||||
		StorageDestinations: storageDestinations,
 | 
					 | 
				
			||||||
		KubeletClient:       kubeletclient.FakeKubeletClient{},
 | 
					 | 
				
			||||||
		EnableLogsSupport:   false,
 | 
					 | 
				
			||||||
		EnableUISupport:     false,
 | 
					 | 
				
			||||||
		EnableIndex:         true,
 | 
					 | 
				
			||||||
		APIPrefix:           "/api",
 | 
					 | 
				
			||||||
		Authenticator:       authenticator,
 | 
					 | 
				
			||||||
		Authorizer:          authorizer,
 | 
					 | 
				
			||||||
		AdmissionControl:    serviceAccountAdmission,
 | 
					 | 
				
			||||||
		StorageVersions:     storageVersions,
 | 
					 | 
				
			||||||
	})
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Start the service account and service account token controllers
 | 
						// Start the service account and service account token controllers
 | 
				
			||||||
	tokenController := serviceaccount.NewTokensController(rootClient, serviceaccount.TokensControllerOptions{TokenGenerator: serviceaccount.JWTTokenGenerator(serviceAccountKey)})
 | 
						tokenController := serviceaccount.NewTokensController(rootClient, serviceaccount.TokensControllerOptions{TokenGenerator: serviceaccount.JWTTokenGenerator(serviceAccountKey)})
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user