mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-26 21:17:23 +00:00
Merge pull request #3997 from smarterclayton/make_master_index_optional
Make master index optional when master is used in other contexts
This commit is contained in:
commit
9992abdfcf
@ -66,17 +66,21 @@ import (
|
|||||||
|
|
||||||
// Config is a structure used to configure a Master.
|
// Config is a structure used to configure a Master.
|
||||||
type Config struct {
|
type Config struct {
|
||||||
Client *client.Client
|
Client *client.Client
|
||||||
Cloud cloudprovider.Interface
|
Cloud cloudprovider.Interface
|
||||||
EtcdHelper tools.EtcdHelper
|
EtcdHelper tools.EtcdHelper
|
||||||
EventTTL time.Duration
|
EventTTL time.Duration
|
||||||
MinionRegexp string
|
MinionRegexp string
|
||||||
KubeletClient client.KubeletClient
|
KubeletClient client.KubeletClient
|
||||||
PortalNet *net.IPNet
|
PortalNet *net.IPNet
|
||||||
EnableLogsSupport bool
|
EnableLogsSupport bool
|
||||||
EnableUISupport bool
|
EnableUISupport bool
|
||||||
EnableSwaggerSupport bool
|
// allow downstream consumers to disable swagger
|
||||||
EnableV1Beta3 bool
|
EnableSwaggerSupport bool
|
||||||
|
// allow v1beta3 to be conditionally enabled
|
||||||
|
EnableV1Beta3 bool
|
||||||
|
// allow downstream consumers to disable the index route
|
||||||
|
EnableIndex bool
|
||||||
APIPrefix string
|
APIPrefix string
|
||||||
CorsAllowedOriginList util.StringList
|
CorsAllowedOriginList util.StringList
|
||||||
Authenticator authenticator.Request
|
Authenticator authenticator.Request
|
||||||
@ -418,7 +422,10 @@ func (m *Master) init(c *Config) {
|
|||||||
|
|
||||||
// Register root handler.
|
// Register root handler.
|
||||||
// We do not register this using restful Webservice since we do not want to surface this in api docs.
|
// We do not register this using restful Webservice since we do not want to surface this in api docs.
|
||||||
m.mux.HandleFunc("/", apiserver.IndexHandler(m.handlerContainer, m.muxHelper))
|
// Allow master to be embedded in contexts which already have something registered at the root
|
||||||
|
if c.EnableIndex {
|
||||||
|
m.mux.HandleFunc("/", apiserver.IndexHandler(m.handlerContainer, m.muxHelper))
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: use go-restful
|
// TODO: use go-restful
|
||||||
apiserver.InstallValidator(m.muxHelper, func() map[string]apiserver.Server { return m.getServersToValidate(c) })
|
apiserver.InstallValidator(m.muxHelper, func() map[string]apiserver.Server { return m.getServersToValidate(c) })
|
||||||
|
@ -247,6 +247,7 @@ func (s *APIServer) Run(_ []string) error {
|
|||||||
EnableLogsSupport: s.EnableLogsSupport,
|
EnableLogsSupport: s.EnableLogsSupport,
|
||||||
EnableUISupport: true,
|
EnableUISupport: true,
|
||||||
EnableSwaggerSupport: true,
|
EnableSwaggerSupport: true,
|
||||||
|
EnableIndex: true,
|
||||||
APIPrefix: s.APIPrefix,
|
APIPrefix: s.APIPrefix,
|
||||||
CorsAllowedOriginList: s.CorsAllowedOriginList,
|
CorsAllowedOriginList: s.CorsAllowedOriginList,
|
||||||
ReadOnlyPort: s.ReadOnlyPort,
|
ReadOnlyPort: s.ReadOnlyPort,
|
||||||
|
@ -107,6 +107,7 @@ func RunApiServer(cl *client.Client, etcdClient tools.EtcdClient, addr net.IP, p
|
|||||||
},
|
},
|
||||||
EnableLogsSupport: false,
|
EnableLogsSupport: false,
|
||||||
EnableSwaggerSupport: true,
|
EnableSwaggerSupport: true,
|
||||||
|
EnableIndex: true,
|
||||||
APIPrefix: "/api",
|
APIPrefix: "/api",
|
||||||
Authorizer: apiserver.NewAlwaysAllowAuthorizer(),
|
Authorizer: apiserver.NewAlwaysAllowAuthorizer(),
|
||||||
|
|
||||||
|
@ -302,6 +302,7 @@ func TestAuthModeAlwaysAllow(t *testing.T) {
|
|||||||
KubeletClient: client.FakeKubeletClient{},
|
KubeletClient: client.FakeKubeletClient{},
|
||||||
EnableLogsSupport: false,
|
EnableLogsSupport: false,
|
||||||
EnableUISupport: false,
|
EnableUISupport: false,
|
||||||
|
EnableIndex: true,
|
||||||
APIPrefix: "/api",
|
APIPrefix: "/api",
|
||||||
Authorizer: apiserver.NewAlwaysAllowAuthorizer(),
|
Authorizer: apiserver.NewAlwaysAllowAuthorizer(),
|
||||||
AdmissionControl: admit.NewAlwaysAdmit(),
|
AdmissionControl: admit.NewAlwaysAdmit(),
|
||||||
@ -353,6 +354,7 @@ func TestAuthModeAlwaysDeny(t *testing.T) {
|
|||||||
KubeletClient: client.FakeKubeletClient{},
|
KubeletClient: client.FakeKubeletClient{},
|
||||||
EnableLogsSupport: false,
|
EnableLogsSupport: false,
|
||||||
EnableUISupport: false,
|
EnableUISupport: false,
|
||||||
|
EnableIndex: true,
|
||||||
APIPrefix: "/api",
|
APIPrefix: "/api",
|
||||||
Authorizer: apiserver.NewAlwaysDenyAuthorizer(),
|
Authorizer: apiserver.NewAlwaysDenyAuthorizer(),
|
||||||
AdmissionControl: admit.NewAlwaysAdmit(),
|
AdmissionControl: admit.NewAlwaysAdmit(),
|
||||||
@ -418,6 +420,7 @@ func TestAliceNotForbiddenOrUnauthorized(t *testing.T) {
|
|||||||
KubeletClient: client.FakeKubeletClient{},
|
KubeletClient: client.FakeKubeletClient{},
|
||||||
EnableLogsSupport: false,
|
EnableLogsSupport: false,
|
||||||
EnableUISupport: false,
|
EnableUISupport: false,
|
||||||
|
EnableIndex: true,
|
||||||
APIPrefix: "/api",
|
APIPrefix: "/api",
|
||||||
Authenticator: getTestTokenAuth(),
|
Authenticator: getTestTokenAuth(),
|
||||||
Authorizer: allowAliceAuthorizer{},
|
Authorizer: allowAliceAuthorizer{},
|
||||||
@ -478,6 +481,7 @@ func TestBobIsForbidden(t *testing.T) {
|
|||||||
KubeletClient: client.FakeKubeletClient{},
|
KubeletClient: client.FakeKubeletClient{},
|
||||||
EnableLogsSupport: false,
|
EnableLogsSupport: false,
|
||||||
EnableUISupport: false,
|
EnableUISupport: false,
|
||||||
|
EnableIndex: true,
|
||||||
APIPrefix: "/api",
|
APIPrefix: "/api",
|
||||||
Authenticator: getTestTokenAuth(),
|
Authenticator: getTestTokenAuth(),
|
||||||
Authorizer: allowAliceAuthorizer{},
|
Authorizer: allowAliceAuthorizer{},
|
||||||
@ -538,6 +542,7 @@ func TestUnknownUserIsUnauthorized(t *testing.T) {
|
|||||||
KubeletClient: client.FakeKubeletClient{},
|
KubeletClient: client.FakeKubeletClient{},
|
||||||
EnableLogsSupport: false,
|
EnableLogsSupport: false,
|
||||||
EnableUISupport: false,
|
EnableUISupport: false,
|
||||||
|
EnableIndex: true,
|
||||||
APIPrefix: "/api",
|
APIPrefix: "/api",
|
||||||
Authenticator: getTestTokenAuth(),
|
Authenticator: getTestTokenAuth(),
|
||||||
Authorizer: allowAliceAuthorizer{},
|
Authorizer: allowAliceAuthorizer{},
|
||||||
@ -617,6 +622,7 @@ func TestNamespaceAuthorization(t *testing.T) {
|
|||||||
KubeletClient: client.FakeKubeletClient{},
|
KubeletClient: client.FakeKubeletClient{},
|
||||||
EnableLogsSupport: false,
|
EnableLogsSupport: false,
|
||||||
EnableUISupport: false,
|
EnableUISupport: false,
|
||||||
|
EnableIndex: true,
|
||||||
APIPrefix: "/api",
|
APIPrefix: "/api",
|
||||||
Authenticator: getTestTokenAuth(),
|
Authenticator: getTestTokenAuth(),
|
||||||
Authorizer: a,
|
Authorizer: a,
|
||||||
@ -701,6 +707,7 @@ func TestKindAuthorization(t *testing.T) {
|
|||||||
KubeletClient: client.FakeKubeletClient{},
|
KubeletClient: client.FakeKubeletClient{},
|
||||||
EnableLogsSupport: false,
|
EnableLogsSupport: false,
|
||||||
EnableUISupport: false,
|
EnableUISupport: false,
|
||||||
|
EnableIndex: true,
|
||||||
APIPrefix: "/api",
|
APIPrefix: "/api",
|
||||||
Authenticator: getTestTokenAuth(),
|
Authenticator: getTestTokenAuth(),
|
||||||
Authorizer: a,
|
Authorizer: a,
|
||||||
@ -779,6 +786,7 @@ func TestReadOnlyAuthorization(t *testing.T) {
|
|||||||
KubeletClient: client.FakeKubeletClient{},
|
KubeletClient: client.FakeKubeletClient{},
|
||||||
EnableLogsSupport: false,
|
EnableLogsSupport: false,
|
||||||
EnableUISupport: false,
|
EnableUISupport: false,
|
||||||
|
EnableIndex: true,
|
||||||
APIPrefix: "/api",
|
APIPrefix: "/api",
|
||||||
Authenticator: getTestTokenAuth(),
|
Authenticator: getTestTokenAuth(),
|
||||||
Authorizer: a,
|
Authorizer: a,
|
||||||
|
Loading…
Reference in New Issue
Block a user