Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
9f906618
Commit
9f906618
authored
Apr 04, 2018
by
Dr. Stefan Schimanski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
apiserver: enforce shared RequestContextMapper in delegation chain
parent
90d3b5a8
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
65 additions
and
81 deletions
+65
-81
server.go
cmd/kube-apiserver/app/server.go
+3
-3
insecure_handler.go
pkg/kubeapiserver/server/insecure_handler.go
+9
-9
master_openapi_test.go
pkg/master/master_openapi_test.go
+1
-1
master_test.go
pkg/master/master_test.go
+1
-2
apiserver.go
...k8s.io/apiextensions-apiserver/pkg/apiserver/apiserver.go
+1
-1
start.go
...rc/k8s.io/apiextensions-apiserver/pkg/cmd/server/start.go
+1
-1
start.go
...extensions-apiserver/test/integration/testserver/start.go
+1
-1
config.go
staging/src/k8s.io/apiserver/pkg/server/config.go
+19
-24
config_test.go
staging/src/k8s.io/apiserver/pkg/server/config_test.go
+1
-4
genericapiserver.go
staging/src/k8s.io/apiserver/pkg/server/genericapiserver.go
+11
-13
genericapiserver_test.go
.../src/k8s.io/apiserver/pkg/server/genericapiserver_test.go
+10
-12
BUILD
staging/src/k8s.io/apiserver/pkg/server/options/BUILD
+0
-1
serving_test.go
...g/src/k8s.io/apiserver/pkg/server/options/serving_test.go
+1
-3
apiserver.go
...ing/src/k8s.io/kube-aggregator/pkg/apiserver/apiserver.go
+1
-1
start.go
staging/src/k8s.io/kube-aggregator/pkg/cmd/server/start.go
+1
-1
apiserver.go
...ng/src/k8s.io/sample-apiserver/pkg/apiserver/apiserver.go
+1
-1
etcd_storage_path_test.go
test/integration/etcd/etcd_storage_path_test.go
+1
-1
apiserver_test.go
test/integration/examples/apiserver_test.go
+1
-1
master_utils.go
test/integration/framework/master_utils.go
+1
-1
No files found.
cmd/kube-apiserver/app/server.go
View file @
9f906618
...
@@ -166,7 +166,7 @@ func CreateServerChain(completedOptions completedServerRunOptions, stopCh <-chan
...
@@ -166,7 +166,7 @@ func CreateServerChain(completedOptions completedServerRunOptions, stopCh <-chan
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
apiExtensionsServer
,
err
:=
createAPIExtensionsServer
(
apiExtensionsConfig
,
genericapiserver
.
EmptyDelegate
)
apiExtensionsServer
,
err
:=
createAPIExtensionsServer
(
apiExtensionsConfig
,
genericapiserver
.
NewEmptyDelegate
()
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
...
@@ -180,7 +180,7 @@ func CreateServerChain(completedOptions completedServerRunOptions, stopCh <-chan
...
@@ -180,7 +180,7 @@ func CreateServerChain(completedOptions completedServerRunOptions, stopCh <-chan
// just start the API server as is because clients don't get built correctly when you do this
// just start the API server as is because clients don't get built correctly when you do this
if
len
(
os
.
Getenv
(
"KUBE_API_VERSIONS"
))
>
0
{
if
len
(
os
.
Getenv
(
"KUBE_API_VERSIONS"
))
>
0
{
if
insecureServingOptions
!=
nil
{
if
insecureServingOptions
!=
nil
{
insecureHandlerChain
:=
kubeserver
.
BuildInsecureHandlerChain
(
kubeAPIServer
.
GenericAPIServer
.
UnprotectedHandler
(),
kubeAPIServerConfig
.
GenericConfig
)
insecureHandlerChain
:=
kubeserver
.
BuildInsecureHandlerChain
(
kubeAPIServer
.
GenericAPIServer
.
UnprotectedHandler
(),
kubeAPIServerConfig
.
GenericConfig
,
kubeAPIServer
.
GenericAPIServer
.
RequestContextMapper
()
)
if
err
:=
kubeserver
.
NonBlockingRun
(
insecureServingOptions
,
insecureHandlerChain
,
kubeAPIServerConfig
.
GenericConfig
.
RequestTimeout
,
stopCh
);
err
!=
nil
{
if
err
:=
kubeserver
.
NonBlockingRun
(
insecureServingOptions
,
insecureHandlerChain
,
kubeAPIServerConfig
.
GenericConfig
.
RequestTimeout
,
stopCh
);
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
...
@@ -208,7 +208,7 @@ func CreateServerChain(completedOptions completedServerRunOptions, stopCh <-chan
...
@@ -208,7 +208,7 @@ func CreateServerChain(completedOptions completedServerRunOptions, stopCh <-chan
}
}
if
insecureServingOptions
!=
nil
{
if
insecureServingOptions
!=
nil
{
insecureHandlerChain
:=
kubeserver
.
BuildInsecureHandlerChain
(
aggregatorServer
.
GenericAPIServer
.
UnprotectedHandler
(),
kubeAPIServerConfig
.
GenericConfig
)
insecureHandlerChain
:=
kubeserver
.
BuildInsecureHandlerChain
(
aggregatorServer
.
GenericAPIServer
.
UnprotectedHandler
(),
kubeAPIServerConfig
.
GenericConfig
,
aggregatorServer
.
GenericAPIServer
.
RequestContextMapper
()
)
if
err
:=
kubeserver
.
NonBlockingRun
(
insecureServingOptions
,
insecureHandlerChain
,
kubeAPIServerConfig
.
GenericConfig
.
RequestTimeout
,
stopCh
);
err
!=
nil
{
if
err
:=
kubeserver
.
NonBlockingRun
(
insecureServingOptions
,
insecureHandlerChain
,
kubeAPIServerConfig
.
GenericConfig
.
RequestTimeout
,
stopCh
);
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
...
...
pkg/kubeapiserver/server/insecure_handler.go
View file @
9f906618
...
@@ -38,20 +38,20 @@ import (
...
@@ -38,20 +38,20 @@ import (
// You shouldn't be using this. It makes sig-auth sad.
// You shouldn't be using this. It makes sig-auth sad.
// InsecureServingInfo *ServingInfo
// InsecureServingInfo *ServingInfo
func
BuildInsecureHandlerChain
(
apiHandler
http
.
Handler
,
c
*
server
.
Config
)
http
.
Handler
{
func
BuildInsecureHandlerChain
(
apiHandler
http
.
Handler
,
c
*
server
.
Config
,
contextMapper
apirequest
.
RequestContextMapper
)
http
.
Handler
{
handler
:=
apiHandler
handler
:=
apiHandler
if
utilfeature
.
DefaultFeatureGate
.
Enabled
(
features
.
AdvancedAuditing
)
{
if
utilfeature
.
DefaultFeatureGate
.
Enabled
(
features
.
AdvancedAuditing
)
{
handler
=
genericapifilters
.
WithAudit
(
handler
,
c
.
RequestC
ontextMapper
,
c
.
AuditBackend
,
c
.
AuditPolicyChecker
,
c
.
LongRunningFunc
)
handler
=
genericapifilters
.
WithAudit
(
handler
,
contextMapper
,
c
.
AuditBackend
,
c
.
AuditPolicyChecker
,
c
.
LongRunningFunc
)
}
else
{
}
else
{
handler
=
genericapifilters
.
WithLegacyAudit
(
handler
,
c
.
RequestC
ontextMapper
,
c
.
LegacyAuditWriter
)
handler
=
genericapifilters
.
WithLegacyAudit
(
handler
,
contextMapper
,
c
.
LegacyAuditWriter
)
}
}
handler
=
genericapifilters
.
WithAuthentication
(
handler
,
c
.
RequestC
ontextMapper
,
insecureSuperuser
{},
nil
)
handler
=
genericapifilters
.
WithAuthentication
(
handler
,
contextMapper
,
insecureSuperuser
{},
nil
)
handler
=
genericfilters
.
WithCORS
(
handler
,
c
.
CorsAllowedOriginList
,
nil
,
nil
,
nil
,
"true"
)
handler
=
genericfilters
.
WithCORS
(
handler
,
c
.
CorsAllowedOriginList
,
nil
,
nil
,
nil
,
"true"
)
handler
=
genericfilters
.
WithTimeoutForNonLongRunningRequests
(
handler
,
c
.
RequestC
ontextMapper
,
c
.
LongRunningFunc
,
c
.
RequestTimeout
)
handler
=
genericfilters
.
WithTimeoutForNonLongRunningRequests
(
handler
,
contextMapper
,
c
.
LongRunningFunc
,
c
.
RequestTimeout
)
handler
=
genericfilters
.
WithMaxInFlightLimit
(
handler
,
c
.
MaxRequestsInFlight
,
c
.
MaxMutatingRequestsInFlight
,
c
.
RequestC
ontextMapper
,
c
.
LongRunningFunc
)
handler
=
genericfilters
.
WithMaxInFlightLimit
(
handler
,
c
.
MaxRequestsInFlight
,
c
.
MaxMutatingRequestsInFlight
,
contextMapper
,
c
.
LongRunningFunc
)
handler
=
genericfilters
.
WithWaitGroup
(
handler
,
c
.
RequestC
ontextMapper
,
c
.
LongRunningFunc
,
c
.
HandlerChainWaitGroup
)
handler
=
genericfilters
.
WithWaitGroup
(
handler
,
contextMapper
,
c
.
LongRunningFunc
,
c
.
HandlerChainWaitGroup
)
handler
=
genericapifilters
.
WithRequestInfo
(
handler
,
server
.
NewRequestInfoResolver
(
c
),
c
.
RequestC
ontextMapper
)
handler
=
genericapifilters
.
WithRequestInfo
(
handler
,
server
.
NewRequestInfoResolver
(
c
),
contextMapper
)
handler
=
apirequest
.
WithRequestContext
(
handler
,
c
.
RequestC
ontextMapper
)
handler
=
apirequest
.
WithRequestContext
(
handler
,
contextMapper
)
handler
=
genericfilters
.
WithPanicRecovery
(
handler
)
handler
=
genericfilters
.
WithPanicRecovery
(
handler
)
return
handler
return
handler
...
...
pkg/master/master_openapi_test.go
View file @
9f906618
...
@@ -54,7 +54,7 @@ func TestValidOpenAPISpec(t *testing.T) {
...
@@ -54,7 +54,7 @@ func TestValidOpenAPISpec(t *testing.T) {
}
}
config
.
GenericConfig
.
SwaggerConfig
=
genericapiserver
.
DefaultSwaggerConfig
()
config
.
GenericConfig
.
SwaggerConfig
=
genericapiserver
.
DefaultSwaggerConfig
()
master
,
err
:=
config
.
Complete
(
sharedInformers
)
.
New
(
genericapiserver
.
EmptyDelegate
)
master
,
err
:=
config
.
Complete
(
sharedInformers
)
.
New
(
genericapiserver
.
NewEmptyDelegate
()
)
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Fatalf
(
"Error in bringing up the master: %v"
,
err
)
t
.
Fatalf
(
"Error in bringing up the master: %v"
,
err
)
}
}
...
...
pkg/master/master_test.go
View file @
9f906618
...
@@ -106,7 +106,6 @@ func setUp(t *testing.T) (*etcdtesting.EtcdTestServer, Config, informers.SharedI
...
@@ -106,7 +106,6 @@ func setUp(t *testing.T) (*etcdtesting.EtcdTestServer, Config, informers.SharedI
config
.
GenericConfig
.
LoopbackClientConfig
=
&
restclient
.
Config
{
APIPath
:
"/api"
,
ContentConfig
:
restclient
.
ContentConfig
{
NegotiatedSerializer
:
legacyscheme
.
Codecs
}}
config
.
GenericConfig
.
LoopbackClientConfig
=
&
restclient
.
Config
{
APIPath
:
"/api"
,
ContentConfig
:
restclient
.
ContentConfig
{
NegotiatedSerializer
:
legacyscheme
.
Codecs
}}
config
.
GenericConfig
.
PublicAddress
=
net
.
ParseIP
(
"192.168.10.4"
)
config
.
GenericConfig
.
PublicAddress
=
net
.
ParseIP
(
"192.168.10.4"
)
config
.
GenericConfig
.
LegacyAPIGroupPrefixes
=
sets
.
NewString
(
"/api"
)
config
.
GenericConfig
.
LegacyAPIGroupPrefixes
=
sets
.
NewString
(
"/api"
)
config
.
GenericConfig
.
RequestContextMapper
=
genericapirequest
.
NewRequestContextMapper
()
config
.
GenericConfig
.
LoopbackClientConfig
=
&
restclient
.
Config
{
APIPath
:
"/api"
,
ContentConfig
:
restclient
.
ContentConfig
{
NegotiatedSerializer
:
legacyscheme
.
Codecs
}}
config
.
GenericConfig
.
LoopbackClientConfig
=
&
restclient
.
Config
{
APIPath
:
"/api"
,
ContentConfig
:
restclient
.
ContentConfig
{
NegotiatedSerializer
:
legacyscheme
.
Codecs
}}
config
.
ExtraConfig
.
KubeletClientConfig
=
kubeletclient
.
KubeletClientConfig
{
Port
:
10250
}
config
.
ExtraConfig
.
KubeletClientConfig
=
kubeletclient
.
KubeletClientConfig
{
Port
:
10250
}
config
.
ExtraConfig
.
ProxyTransport
=
utilnet
.
SetTransportDefaults
(
&
http
.
Transport
{
config
.
ExtraConfig
.
ProxyTransport
=
utilnet
.
SetTransportDefaults
(
&
http
.
Transport
{
...
@@ -185,7 +184,7 @@ func TestCertificatesRestStorageStrategies(t *testing.T) {
...
@@ -185,7 +184,7 @@ func TestCertificatesRestStorageStrategies(t *testing.T) {
func
newMaster
(
t
*
testing
.
T
)
(
*
Master
,
*
etcdtesting
.
EtcdTestServer
,
Config
,
*
assert
.
Assertions
)
{
func
newMaster
(
t
*
testing
.
T
)
(
*
Master
,
*
etcdtesting
.
EtcdTestServer
,
Config
,
*
assert
.
Assertions
)
{
etcdserver
,
config
,
sharedInformers
,
assert
:=
setUp
(
t
)
etcdserver
,
config
,
sharedInformers
,
assert
:=
setUp
(
t
)
master
,
err
:=
config
.
Complete
(
sharedInformers
)
.
New
(
genericapiserver
.
EmptyDelegate
)
master
,
err
:=
config
.
Complete
(
sharedInformers
)
.
New
(
genericapiserver
.
NewEmptyDelegate
()
)
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Fatalf
(
"Error in bringing up the master: %v"
,
err
)
t
.
Fatalf
(
"Error in bringing up the master: %v"
,
err
)
}
}
...
...
staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/apiserver.go
View file @
9f906618
...
@@ -197,7 +197,7 @@ func (c completedConfig) New(delegationTarget genericapiserver.DelegationTarget)
...
@@ -197,7 +197,7 @@ func (c completedConfig) New(delegationTarget genericapiserver.DelegationTarget)
return
s
,
nil
return
s
,
nil
}
}
crdController
:=
NewDiscoveryController
(
s
.
Informers
.
Apiextensions
()
.
InternalVersion
()
.
CustomResourceDefinitions
(),
versionDiscoveryHandler
,
groupDiscoveryHandler
,
c
.
GenericConfig
.
RequestContextMapper
)
crdController
:=
NewDiscoveryController
(
s
.
Informers
.
Apiextensions
()
.
InternalVersion
()
.
CustomResourceDefinitions
(),
versionDiscoveryHandler
,
groupDiscoveryHandler
,
delegationTarget
.
RequestContextMapper
()
)
namingController
:=
status
.
NewNamingConditionController
(
s
.
Informers
.
Apiextensions
()
.
InternalVersion
()
.
CustomResourceDefinitions
(),
crdClient
.
Apiextensions
())
namingController
:=
status
.
NewNamingConditionController
(
s
.
Informers
.
Apiextensions
()
.
InternalVersion
()
.
CustomResourceDefinitions
(),
crdClient
.
Apiextensions
())
finalizingController
:=
finalizer
.
NewCRDFinalizer
(
finalizingController
:=
finalizer
.
NewCRDFinalizer
(
s
.
Informers
.
Apiextensions
()
.
InternalVersion
()
.
CustomResourceDefinitions
(),
s
.
Informers
.
Apiextensions
()
.
InternalVersion
()
.
CustomResourceDefinitions
(),
...
...
staging/src/k8s.io/apiextensions-apiserver/pkg/cmd/server/start.go
View file @
9f906618
...
@@ -137,7 +137,7 @@ func (o CustomResourceDefinitionsServerOptions) RunCustomResourceDefinitionsServ
...
@@ -137,7 +137,7 @@ func (o CustomResourceDefinitionsServerOptions) RunCustomResourceDefinitionsServ
return
err
return
err
}
}
server
,
err
:=
config
.
Complete
()
.
New
(
genericapiserver
.
EmptyDelegate
)
server
,
err
:=
config
.
Complete
()
.
New
(
genericapiserver
.
NewEmptyDelegate
()
)
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
...
...
staging/src/k8s.io/apiextensions-apiserver/test/integration/testserver/start.go
View file @
9f906618
...
@@ -90,7 +90,7 @@ func DefaultServerConfig() (*extensionsapiserver.Config, error) {
...
@@ -90,7 +90,7 @@ func DefaultServerConfig() (*extensionsapiserver.Config, error) {
func
StartServer
(
config
*
extensionsapiserver
.
Config
)
(
chan
struct
{},
*
rest
.
Config
,
error
)
{
func
StartServer
(
config
*
extensionsapiserver
.
Config
)
(
chan
struct
{},
*
rest
.
Config
,
error
)
{
stopCh
:=
make
(
chan
struct
{})
stopCh
:=
make
(
chan
struct
{})
server
,
err
:=
config
.
Complete
()
.
New
(
genericapiserver
.
EmptyDelegate
)
server
,
err
:=
config
.
Complete
()
.
New
(
genericapiserver
.
NewEmptyDelegate
()
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
nil
,
err
return
nil
,
nil
,
err
}
}
...
...
staging/src/k8s.io/apiserver/pkg/server/config.go
View file @
9f906618
...
@@ -127,7 +127,7 @@ type Config struct {
...
@@ -127,7 +127,7 @@ type Config struct {
//===========================================================================
//===========================================================================
// BuildHandlerChainFunc allows you to build custom handler chains by decorating the apiHandler.
// BuildHandlerChainFunc allows you to build custom handler chains by decorating the apiHandler.
BuildHandlerChainFunc
func
(
apiHandler
http
.
Handler
,
c
*
Config
)
(
secure
http
.
Handler
)
BuildHandlerChainFunc
func
(
apiHandler
http
.
Handler
,
c
*
Config
,
contextMapper
apirequest
.
RequestContextMapper
)
(
secure
http
.
Handler
)
// HandlerChainWaitGroup allows you to wait for all chain handlers exit after the server shutdown.
// HandlerChainWaitGroup allows you to wait for all chain handlers exit after the server shutdown.
HandlerChainWaitGroup
*
utilwaitgroup
.
SafeWaitGroup
HandlerChainWaitGroup
*
utilwaitgroup
.
SafeWaitGroup
// DiscoveryAddresses is used to build the IPs pass to discovery. If nil, the ExternalAddress is
// DiscoveryAddresses is used to build the IPs pass to discovery. If nil, the ExternalAddress is
...
@@ -138,9 +138,6 @@ type Config struct {
...
@@ -138,9 +138,6 @@ type Config struct {
// LegacyAPIGroupPrefixes is used to set up URL parsing for authorization and for validating requests
// LegacyAPIGroupPrefixes is used to set up URL parsing for authorization and for validating requests
// to InstallLegacyAPIGroup. New API servers don't generally have legacy groups at all.
// to InstallLegacyAPIGroup. New API servers don't generally have legacy groups at all.
LegacyAPIGroupPrefixes
sets
.
String
LegacyAPIGroupPrefixes
sets
.
String
// RequestContextMapper maps requests to contexts. Exported so downstream consumers can provider their own mappers
// TODO confirm that anyone downstream actually uses this and doesn't just need an accessor
RequestContextMapper
apirequest
.
RequestContextMapper
// RequestInfoResolver is used to assign attributes (used by admission and authorization) based on a request URL.
// RequestInfoResolver is used to assign attributes (used by admission and authorization) based on a request URL.
// Use-cases that are like kubelets may need to customize this.
// Use-cases that are like kubelets may need to customize this.
RequestInfoResolver
apirequest
.
RequestInfoResolver
RequestInfoResolver
apirequest
.
RequestInfoResolver
...
@@ -253,7 +250,6 @@ func NewConfig(codecs serializer.CodecFactory) *Config {
...
@@ -253,7 +250,6 @@ func NewConfig(codecs serializer.CodecFactory) *Config {
return
&
Config
{
return
&
Config
{
Serializer
:
codecs
,
Serializer
:
codecs
,
ReadWritePort
:
443
,
ReadWritePort
:
443
,
RequestContextMapper
:
apirequest
.
NewRequestContextMapper
(),
BuildHandlerChainFunc
:
DefaultBuildHandlerChain
,
BuildHandlerChainFunc
:
DefaultBuildHandlerChain
,
HandlerChainWaitGroup
:
new
(
utilwaitgroup
.
SafeWaitGroup
),
HandlerChainWaitGroup
:
new
(
utilwaitgroup
.
SafeWaitGroup
),
LegacyAPIGroupPrefixes
:
sets
.
NewString
(
DefaultLegacyAPIPrefix
),
LegacyAPIGroupPrefixes
:
sets
.
NewString
(
DefaultLegacyAPIPrefix
),
...
@@ -447,9 +443,8 @@ func (c *RecommendedConfig) Complete() CompletedConfig {
...
@@ -447,9 +443,8 @@ func (c *RecommendedConfig) Complete() CompletedConfig {
// New creates a new server which logically combines the handling chain with the passed server.
// New creates a new server which logically combines the handling chain with the passed server.
// name is used to differentiate for logging. The handler chain in particular can be difficult as it starts delgating.
// name is used to differentiate for logging. The handler chain in particular can be difficult as it starts delgating.
// delegationTarget may not be nil.
func
(
c
completedConfig
)
New
(
name
string
,
delegationTarget
DelegationTarget
)
(
*
GenericAPIServer
,
error
)
{
func
(
c
completedConfig
)
New
(
name
string
,
delegationTarget
DelegationTarget
)
(
*
GenericAPIServer
,
error
)
{
// The delegationTarget and the config must agree on the RequestContextMapper
if
c
.
Serializer
==
nil
{
if
c
.
Serializer
==
nil
{
return
nil
,
fmt
.
Errorf
(
"Genericapiserver.New() called with config.Serializer == nil"
)
return
nil
,
fmt
.
Errorf
(
"Genericapiserver.New() called with config.Serializer == nil"
)
}
}
...
@@ -457,17 +452,17 @@ func (c completedConfig) New(name string, delegationTarget DelegationTarget) (*G
...
@@ -457,17 +452,17 @@ func (c completedConfig) New(name string, delegationTarget DelegationTarget) (*G
return
nil
,
fmt
.
Errorf
(
"Genericapiserver.New() called with config.LoopbackClientConfig == nil"
)
return
nil
,
fmt
.
Errorf
(
"Genericapiserver.New() called with config.LoopbackClientConfig == nil"
)
}
}
contextMapper
:=
delegationTarget
.
RequestContextMapper
()
handlerChainBuilder
:=
func
(
handler
http
.
Handler
)
http
.
Handler
{
handlerChainBuilder
:=
func
(
handler
http
.
Handler
)
http
.
Handler
{
return
c
.
BuildHandlerChainFunc
(
handler
,
c
.
Config
)
return
c
.
BuildHandlerChainFunc
(
handler
,
c
.
Config
,
contextMapper
)
}
}
apiServerHandler
:=
NewAPIServerHandler
(
name
,
c
.
RequestC
ontextMapper
,
c
.
Serializer
,
handlerChainBuilder
,
delegationTarget
.
UnprotectedHandler
())
apiServerHandler
:=
NewAPIServerHandler
(
name
,
contextMapper
,
c
.
Serializer
,
handlerChainBuilder
,
delegationTarget
.
UnprotectedHandler
())
s
:=
&
GenericAPIServer
{
s
:=
&
GenericAPIServer
{
discoveryAddresses
:
c
.
DiscoveryAddresses
,
discoveryAddresses
:
c
.
DiscoveryAddresses
,
LoopbackClientConfig
:
c
.
LoopbackClientConfig
,
LoopbackClientConfig
:
c
.
LoopbackClientConfig
,
legacyAPIGroupPrefixes
:
c
.
LegacyAPIGroupPrefixes
,
legacyAPIGroupPrefixes
:
c
.
LegacyAPIGroupPrefixes
,
admissionControl
:
c
.
AdmissionControl
,
admissionControl
:
c
.
AdmissionControl
,
requestContextMapper
:
c
.
RequestContextMapper
,
Serializer
:
c
.
Serializer
,
Serializer
:
c
.
Serializer
,
AuditBackend
:
c
.
AuditBackend
,
AuditBackend
:
c
.
AuditBackend
,
delegationTarget
:
delegationTarget
,
delegationTarget
:
delegationTarget
,
...
@@ -492,7 +487,7 @@ func (c completedConfig) New(name string, delegationTarget DelegationTarget) (*G
...
@@ -492,7 +487,7 @@ func (c completedConfig) New(name string, delegationTarget DelegationTarget) (*G
healthzChecks
:
c
.
HealthzChecks
,
healthzChecks
:
c
.
HealthzChecks
,
DiscoveryGroupManager
:
discovery
.
NewRootAPIsHandler
(
c
.
DiscoveryAddresses
,
c
.
Serializer
,
c
.
RequestC
ontextMapper
),
DiscoveryGroupManager
:
discovery
.
NewRootAPIsHandler
(
c
.
DiscoveryAddresses
,
c
.
Serializer
,
contextMapper
),
enableAPIResponseCompression
:
c
.
EnableAPIResponseCompression
,
enableAPIResponseCompression
:
c
.
EnableAPIResponseCompression
,
}
}
...
@@ -547,25 +542,25 @@ func (c completedConfig) New(name string, delegationTarget DelegationTarget) (*G
...
@@ -547,25 +542,25 @@ func (c completedConfig) New(name string, delegationTarget DelegationTarget) (*G
return
s
,
nil
return
s
,
nil
}
}
func
DefaultBuildHandlerChain
(
apiHandler
http
.
Handler
,
c
*
Config
)
http
.
Handler
{
func
DefaultBuildHandlerChain
(
apiHandler
http
.
Handler
,
c
*
Config
,
contextMapper
apirequest
.
RequestContextMapper
)
http
.
Handler
{
handler
:=
genericapifilters
.
WithAuthorization
(
apiHandler
,
c
.
RequestC
ontextMapper
,
c
.
Authorization
.
Authorizer
,
c
.
Serializer
)
handler
:=
genericapifilters
.
WithAuthorization
(
apiHandler
,
contextMapper
,
c
.
Authorization
.
Authorizer
,
c
.
Serializer
)
handler
=
genericfilters
.
WithMaxInFlightLimit
(
handler
,
c
.
MaxRequestsInFlight
,
c
.
MaxMutatingRequestsInFlight
,
c
.
RequestC
ontextMapper
,
c
.
LongRunningFunc
)
handler
=
genericfilters
.
WithMaxInFlightLimit
(
handler
,
c
.
MaxRequestsInFlight
,
c
.
MaxMutatingRequestsInFlight
,
contextMapper
,
c
.
LongRunningFunc
)
handler
=
genericapifilters
.
WithImpersonation
(
handler
,
c
.
RequestC
ontextMapper
,
c
.
Authorization
.
Authorizer
,
c
.
Serializer
)
handler
=
genericapifilters
.
WithImpersonation
(
handler
,
contextMapper
,
c
.
Authorization
.
Authorizer
,
c
.
Serializer
)
if
utilfeature
.
DefaultFeatureGate
.
Enabled
(
features
.
AdvancedAuditing
)
{
if
utilfeature
.
DefaultFeatureGate
.
Enabled
(
features
.
AdvancedAuditing
)
{
handler
=
genericapifilters
.
WithAudit
(
handler
,
c
.
RequestC
ontextMapper
,
c
.
AuditBackend
,
c
.
AuditPolicyChecker
,
c
.
LongRunningFunc
)
handler
=
genericapifilters
.
WithAudit
(
handler
,
contextMapper
,
c
.
AuditBackend
,
c
.
AuditPolicyChecker
,
c
.
LongRunningFunc
)
}
else
{
}
else
{
handler
=
genericapifilters
.
WithLegacyAudit
(
handler
,
c
.
RequestC
ontextMapper
,
c
.
LegacyAuditWriter
)
handler
=
genericapifilters
.
WithLegacyAudit
(
handler
,
contextMapper
,
c
.
LegacyAuditWriter
)
}
}
failedHandler
:=
genericapifilters
.
Unauthorized
(
c
.
RequestC
ontextMapper
,
c
.
Serializer
,
c
.
Authentication
.
SupportsBasicAuth
)
failedHandler
:=
genericapifilters
.
Unauthorized
(
contextMapper
,
c
.
Serializer
,
c
.
Authentication
.
SupportsBasicAuth
)
if
utilfeature
.
DefaultFeatureGate
.
Enabled
(
features
.
AdvancedAuditing
)
{
if
utilfeature
.
DefaultFeatureGate
.
Enabled
(
features
.
AdvancedAuditing
)
{
failedHandler
=
genericapifilters
.
WithFailedAuthenticationAudit
(
failedHandler
,
c
.
RequestC
ontextMapper
,
c
.
AuditBackend
,
c
.
AuditPolicyChecker
)
failedHandler
=
genericapifilters
.
WithFailedAuthenticationAudit
(
failedHandler
,
contextMapper
,
c
.
AuditBackend
,
c
.
AuditPolicyChecker
)
}
}
handler
=
genericapifilters
.
WithAuthentication
(
handler
,
c
.
RequestC
ontextMapper
,
c
.
Authentication
.
Authenticator
,
failedHandler
)
handler
=
genericapifilters
.
WithAuthentication
(
handler
,
contextMapper
,
c
.
Authentication
.
Authenticator
,
failedHandler
)
handler
=
genericfilters
.
WithCORS
(
handler
,
c
.
CorsAllowedOriginList
,
nil
,
nil
,
nil
,
"true"
)
handler
=
genericfilters
.
WithCORS
(
handler
,
c
.
CorsAllowedOriginList
,
nil
,
nil
,
nil
,
"true"
)
handler
=
genericfilters
.
WithTimeoutForNonLongRunningRequests
(
handler
,
c
.
RequestC
ontextMapper
,
c
.
LongRunningFunc
,
c
.
RequestTimeout
)
handler
=
genericfilters
.
WithTimeoutForNonLongRunningRequests
(
handler
,
contextMapper
,
c
.
LongRunningFunc
,
c
.
RequestTimeout
)
handler
=
genericfilters
.
WithWaitGroup
(
handler
,
c
.
RequestC
ontextMapper
,
c
.
LongRunningFunc
,
c
.
HandlerChainWaitGroup
)
handler
=
genericfilters
.
WithWaitGroup
(
handler
,
contextMapper
,
c
.
LongRunningFunc
,
c
.
HandlerChainWaitGroup
)
handler
=
genericapifilters
.
WithRequestInfo
(
handler
,
c
.
RequestInfoResolver
,
c
.
RequestC
ontextMapper
)
handler
=
genericapifilters
.
WithRequestInfo
(
handler
,
c
.
RequestInfoResolver
,
contextMapper
)
handler
=
apirequest
.
WithRequestContext
(
handler
,
c
.
RequestC
ontextMapper
)
handler
=
apirequest
.
WithRequestContext
(
handler
,
contextMapper
)
handler
=
genericfilters
.
WithPanicRecovery
(
handler
)
handler
=
genericfilters
.
WithPanicRecovery
(
handler
)
return
handler
return
handler
}
}
...
...
staging/src/k8s.io/apiserver/pkg/server/config_test.go
View file @
9f906618
...
@@ -26,7 +26,6 @@ import (
...
@@ -26,7 +26,6 @@ import (
"testing"
"testing"
"k8s.io/apimachinery/pkg/util/sets"
"k8s.io/apimachinery/pkg/util/sets"
genericapirequest
"k8s.io/apiserver/pkg/endpoints/request"
"k8s.io/apiserver/pkg/server/healthz"
"k8s.io/apiserver/pkg/server/healthz"
"k8s.io/client-go/informers"
"k8s.io/client-go/informers"
"k8s.io/client-go/kubernetes/fake"
"k8s.io/client-go/kubernetes/fake"
...
@@ -36,7 +35,6 @@ import (
...
@@ -36,7 +35,6 @@ import (
func
TestNewWithDelegate
(
t
*
testing
.
T
)
{
func
TestNewWithDelegate
(
t
*
testing
.
T
)
{
delegateConfig
:=
NewConfig
(
codecs
)
delegateConfig
:=
NewConfig
(
codecs
)
delegateConfig
.
PublicAddress
=
net
.
ParseIP
(
"192.168.10.4"
)
delegateConfig
.
PublicAddress
=
net
.
ParseIP
(
"192.168.10.4"
)
delegateConfig
.
RequestContextMapper
=
genericapirequest
.
NewRequestContextMapper
()
delegateConfig
.
LegacyAPIGroupPrefixes
=
sets
.
NewString
(
"/api"
)
delegateConfig
.
LegacyAPIGroupPrefixes
=
sets
.
NewString
(
"/api"
)
delegateConfig
.
LoopbackClientConfig
=
&
rest
.
Config
{}
delegateConfig
.
LoopbackClientConfig
=
&
rest
.
Config
{}
delegateConfig
.
SwaggerConfig
=
DefaultSwaggerConfig
()
delegateConfig
.
SwaggerConfig
=
DefaultSwaggerConfig
()
...
@@ -50,7 +48,7 @@ func TestNewWithDelegate(t *testing.T) {
...
@@ -50,7 +48,7 @@ func TestNewWithDelegate(t *testing.T) {
}))
}))
sharedInformers
:=
informers
.
NewSharedInformerFactory
(
clientset
,
delegateConfig
.
LoopbackClientConfig
.
Timeout
)
sharedInformers
:=
informers
.
NewSharedInformerFactory
(
clientset
,
delegateConfig
.
LoopbackClientConfig
.
Timeout
)
delegateServer
,
err
:=
delegateConfig
.
Complete
(
sharedInformers
)
.
New
(
"test"
,
EmptyDelegate
)
delegateServer
,
err
:=
delegateConfig
.
Complete
(
sharedInformers
)
.
New
(
"test"
,
NewEmptyDelegate
()
)
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Fatal
(
err
)
t
.
Fatal
(
err
)
}
}
...
@@ -67,7 +65,6 @@ func TestNewWithDelegate(t *testing.T) {
...
@@ -67,7 +65,6 @@ func TestNewWithDelegate(t *testing.T) {
wrappingConfig
:=
NewConfig
(
codecs
)
wrappingConfig
:=
NewConfig
(
codecs
)
wrappingConfig
.
PublicAddress
=
net
.
ParseIP
(
"192.168.10.4"
)
wrappingConfig
.
PublicAddress
=
net
.
ParseIP
(
"192.168.10.4"
)
wrappingConfig
.
RequestContextMapper
=
genericapirequest
.
NewRequestContextMapper
()
wrappingConfig
.
LegacyAPIGroupPrefixes
=
sets
.
NewString
(
"/api"
)
wrappingConfig
.
LegacyAPIGroupPrefixes
=
sets
.
NewString
(
"/api"
)
wrappingConfig
.
LoopbackClientConfig
=
&
rest
.
Config
{}
wrappingConfig
.
LoopbackClientConfig
=
&
rest
.
Config
{}
wrappingConfig
.
SwaggerConfig
=
DefaultSwaggerConfig
()
wrappingConfig
.
SwaggerConfig
=
DefaultSwaggerConfig
()
...
...
staging/src/k8s.io/apiserver/pkg/server/genericapiserver.go
View file @
9f906618
...
@@ -95,9 +95,7 @@ type GenericAPIServer struct {
...
@@ -95,9 +95,7 @@ type GenericAPIServer struct {
// admissionControl is used to build the RESTStorage that backs an API Group.
// admissionControl is used to build the RESTStorage that backs an API Group.
admissionControl
admission
.
Interface
admissionControl
admission
.
Interface
// requestContextMapper provides a way to get the context for a request. It may be nil.
// SecureServingInfo holds configuration of the TLS server.
requestContextMapper
apirequest
.
RequestContextMapper
SecureServingInfo
*
SecureServingInfo
SecureServingInfo
*
SecureServingInfo
// ExternalAddress is the address (hostname or IP and port) that should be used in
// ExternalAddress is the address (hostname or IP and port) that should be used in
...
@@ -146,7 +144,7 @@ type GenericAPIServer struct {
...
@@ -146,7 +144,7 @@ type GenericAPIServer struct {
// if the client requests it via Accept-Encoding
// if the client requests it via Accept-Encoding
enableAPIResponseCompression
bool
enableAPIResponseCompression
bool
// delegationTarget is the next delegate in the chain
or nil
// delegationTarget is the next delegate in the chain
. This is never nil.
delegationTarget
DelegationTarget
delegationTarget
DelegationTarget
// HandlerChainWaitGroup allows you to wait for all chain handlers finish after the server shutdown.
// HandlerChainWaitGroup allows you to wait for all chain handlers finish after the server shutdown.
...
@@ -200,14 +198,16 @@ func (s *GenericAPIServer) NextDelegate() DelegationTarget {
...
@@ -200,14 +198,16 @@ func (s *GenericAPIServer) NextDelegate() DelegationTarget {
return
s
.
delegationTarget
return
s
.
delegationTarget
}
}
var
EmptyDelegate
=
emptyDelegate
{
requestContextMapper
:
apirequest
.
NewRequestContextMapper
(),
}
type
emptyDelegate
struct
{
type
emptyDelegate
struct
{
requestContextMapper
apirequest
.
RequestContextMapper
requestContextMapper
apirequest
.
RequestContextMapper
}
}
func
NewEmptyDelegate
()
DelegationTarget
{
return
emptyDelegate
{
requestContextMapper
:
apirequest
.
NewRequestContextMapper
(),
}
}
func
(
s
emptyDelegate
)
UnprotectedHandler
()
http
.
Handler
{
func
(
s
emptyDelegate
)
UnprotectedHandler
()
http
.
Handler
{
return
nil
return
nil
}
}
...
@@ -230,10 +230,8 @@ func (s emptyDelegate) NextDelegate() DelegationTarget {
...
@@ -230,10 +230,8 @@ func (s emptyDelegate) NextDelegate() DelegationTarget {
return
nil
return
nil
}
}
// RequestContextMapper is exposed so that third party resource storage can be build in a different location.
// TODO refactor third party resource storage
func
(
s
*
GenericAPIServer
)
RequestContextMapper
()
apirequest
.
RequestContextMapper
{
func
(
s
*
GenericAPIServer
)
RequestContextMapper
()
apirequest
.
RequestContextMapper
{
return
s
.
requestContextMapper
return
s
.
delegationTarget
.
RequestContextMapper
()
}
}
// preparedGenericAPIServer is a private wrapper that enforces a call of PrepareRun() before Run can be invoked.
// preparedGenericAPIServer is a private wrapper that enforces a call of PrepareRun() before Run can be invoked.
...
@@ -366,7 +364,7 @@ func (s *GenericAPIServer) InstallLegacyAPIGroup(apiPrefix string, apiGroupInfo
...
@@ -366,7 +364,7 @@ func (s *GenericAPIServer) InstallLegacyAPIGroup(apiPrefix string, apiGroupInfo
}
}
// Install the version handler.
// Install the version handler.
// Add a handler at /<apiPrefix> to enumerate the supported api versions.
// Add a handler at /<apiPrefix> to enumerate the supported api versions.
s
.
Handler
.
GoRestfulContainer
.
Add
(
discovery
.
NewLegacyRootAPIHandler
(
s
.
discoveryAddresses
,
s
.
Serializer
,
apiPrefix
,
apiVersions
,
s
.
requestContextMapper
)
.
WebService
())
s
.
Handler
.
GoRestfulContainer
.
Add
(
discovery
.
NewLegacyRootAPIHandler
(
s
.
discoveryAddresses
,
s
.
Serializer
,
apiPrefix
,
apiVersions
,
s
.
delegationTarget
.
RequestContextMapper
()
)
.
WebService
())
return
nil
return
nil
}
}
...
@@ -411,7 +409,7 @@ func (s *GenericAPIServer) InstallAPIGroup(apiGroupInfo *APIGroupInfo) error {
...
@@ -411,7 +409,7 @@ func (s *GenericAPIServer) InstallAPIGroup(apiGroupInfo *APIGroupInfo) error {
}
}
s
.
DiscoveryGroupManager
.
AddGroup
(
apiGroup
)
s
.
DiscoveryGroupManager
.
AddGroup
(
apiGroup
)
s
.
Handler
.
GoRestfulContainer
.
Add
(
discovery
.
NewAPIGroupHandler
(
s
.
Serializer
,
apiGroup
,
s
.
requestContextMapper
)
.
WebService
())
s
.
Handler
.
GoRestfulContainer
.
Add
(
discovery
.
NewAPIGroupHandler
(
s
.
Serializer
,
apiGroup
,
s
.
delegationTarget
.
RequestContextMapper
()
)
.
WebService
())
return
nil
return
nil
}
}
...
...
staging/src/k8s.io/apiserver/pkg/server/genericapiserver_test.go
View file @
9f906618
...
@@ -84,7 +84,6 @@ func init() {
...
@@ -84,7 +84,6 @@ func init() {
func
setUp
(
t
*
testing
.
T
)
(
Config
,
*
assert
.
Assertions
)
{
func
setUp
(
t
*
testing
.
T
)
(
Config
,
*
assert
.
Assertions
)
{
config
:=
NewConfig
(
codecs
)
config
:=
NewConfig
(
codecs
)
config
.
PublicAddress
=
net
.
ParseIP
(
"192.168.10.4"
)
config
.
PublicAddress
=
net
.
ParseIP
(
"192.168.10.4"
)
config
.
RequestContextMapper
=
apirequest
.
NewRequestContextMapper
()
config
.
LegacyAPIGroupPrefixes
=
sets
.
NewString
(
"/api"
)
config
.
LegacyAPIGroupPrefixes
=
sets
.
NewString
(
"/api"
)
config
.
LoopbackClientConfig
=
&
restclient
.
Config
{}
config
.
LoopbackClientConfig
=
&
restclient
.
Config
{}
...
@@ -111,7 +110,7 @@ func setUp(t *testing.T) (Config, *assert.Assertions) {
...
@@ -111,7 +110,7 @@ func setUp(t *testing.T) (Config, *assert.Assertions) {
func
newMaster
(
t
*
testing
.
T
)
(
*
GenericAPIServer
,
Config
,
*
assert
.
Assertions
)
{
func
newMaster
(
t
*
testing
.
T
)
(
*
GenericAPIServer
,
Config
,
*
assert
.
Assertions
)
{
config
,
assert
:=
setUp
(
t
)
config
,
assert
:=
setUp
(
t
)
s
,
err
:=
config
.
Complete
(
nil
)
.
New
(
"test"
,
EmptyDelegate
)
s
,
err
:=
config
.
Complete
(
nil
)
.
New
(
"test"
,
NewEmptyDelegate
()
)
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Fatalf
(
"Error in bringing up the server: %v"
,
err
)
t
.
Fatalf
(
"Error in bringing up the server: %v"
,
err
)
}
}
...
@@ -126,7 +125,6 @@ func TestNew(t *testing.T) {
...
@@ -126,7 +125,6 @@ func TestNew(t *testing.T) {
// Verify many of the variables match their config counterparts
// Verify many of the variables match their config counterparts
assert
.
Equal
(
s
.
legacyAPIGroupPrefixes
,
config
.
LegacyAPIGroupPrefixes
)
assert
.
Equal
(
s
.
legacyAPIGroupPrefixes
,
config
.
LegacyAPIGroupPrefixes
)
assert
.
Equal
(
s
.
admissionControl
,
config
.
AdmissionControl
)
assert
.
Equal
(
s
.
admissionControl
,
config
.
AdmissionControl
)
assert
.
Equal
(
s
.
RequestContextMapper
(),
config
.
RequestContextMapper
)
// these values get defaulted
// these values get defaulted
assert
.
Equal
(
net
.
JoinHostPort
(
config
.
PublicAddress
.
String
(),
"443"
),
s
.
ExternalAddress
)
assert
.
Equal
(
net
.
JoinHostPort
(
config
.
PublicAddress
.
String
(),
"443"
),
s
.
ExternalAddress
)
...
@@ -141,7 +139,7 @@ func TestInstallAPIGroups(t *testing.T) {
...
@@ -141,7 +139,7 @@ func TestInstallAPIGroups(t *testing.T) {
config
.
LegacyAPIGroupPrefixes
=
sets
.
NewString
(
"/apiPrefix"
)
config
.
LegacyAPIGroupPrefixes
=
sets
.
NewString
(
"/apiPrefix"
)
config
.
DiscoveryAddresses
=
discovery
.
DefaultAddresses
{
DefaultAddress
:
"ExternalAddress"
}
config
.
DiscoveryAddresses
=
discovery
.
DefaultAddresses
{
DefaultAddress
:
"ExternalAddress"
}
s
,
err
:=
config
.
Complete
(
nil
)
.
New
(
"test"
,
EmptyDelegate
)
s
,
err
:=
config
.
Complete
(
nil
)
.
New
(
"test"
,
NewEmptyDelegate
()
)
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Fatalf
(
"Error in bringing up the server: %v"
,
err
)
t
.
Fatalf
(
"Error in bringing up the server: %v"
,
err
)
}
}
...
@@ -333,7 +331,7 @@ func TestCustomHandlerChain(t *testing.T) {
...
@@ -333,7 +331,7 @@ func TestCustomHandlerChain(t *testing.T) {
var
protected
,
called
bool
var
protected
,
called
bool
config
.
BuildHandlerChainFunc
=
func
(
apiHandler
http
.
Handler
,
c
*
Config
)
http
.
Handler
{
config
.
BuildHandlerChainFunc
=
func
(
apiHandler
http
.
Handler
,
c
*
Config
,
contextMapper
apirequest
.
RequestContextMapper
)
http
.
Handler
{
return
http
.
HandlerFunc
(
func
(
w
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
return
http
.
HandlerFunc
(
func
(
w
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
protected
=
true
protected
=
true
apiHandler
.
ServeHTTP
(
w
,
req
)
apiHandler
.
ServeHTTP
(
w
,
req
)
...
@@ -343,7 +341,7 @@ func TestCustomHandlerChain(t *testing.T) {
...
@@ -343,7 +341,7 @@ func TestCustomHandlerChain(t *testing.T) {
called
=
true
called
=
true
})
})
s
,
err
:=
config
.
Complete
(
nil
)
.
New
(
"test"
,
EmptyDelegate
)
s
,
err
:=
config
.
Complete
(
nil
)
.
New
(
"test"
,
NewEmptyDelegate
()
)
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Fatalf
(
"Error in bringing up the server: %v"
,
err
)
t
.
Fatalf
(
"Error in bringing up the server: %v"
,
err
)
}
}
...
@@ -397,7 +395,7 @@ func TestNotRestRoutesHaveAuth(t *testing.T) {
...
@@ -397,7 +395,7 @@ func TestNotRestRoutesHaveAuth(t *testing.T) {
kubeVersion
:=
fakeVersion
()
kubeVersion
:=
fakeVersion
()
config
.
Version
=
&
kubeVersion
config
.
Version
=
&
kubeVersion
s
,
err
:=
config
.
Complete
(
nil
)
.
New
(
"test"
,
EmptyDelegate
)
s
,
err
:=
config
.
Complete
(
nil
)
.
New
(
"test"
,
NewEmptyDelegate
()
)
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Fatalf
(
"Error in bringing up the server: %v"
,
err
)
t
.
Fatalf
(
"Error in bringing up the server: %v"
,
err
)
}
}
...
@@ -509,10 +507,10 @@ func TestGracefulShutdown(t *testing.T) {
...
@@ -509,10 +507,10 @@ func TestGracefulShutdown(t *testing.T) {
wg
:=
sync
.
WaitGroup
{}
wg
:=
sync
.
WaitGroup
{}
wg
.
Add
(
1
)
wg
.
Add
(
1
)
config
.
BuildHandlerChainFunc
=
func
(
apiHandler
http
.
Handler
,
c
*
Config
)
http
.
Handler
{
config
.
BuildHandlerChainFunc
=
func
(
apiHandler
http
.
Handler
,
c
*
Config
,
contextMapper
apirequest
.
RequestContextMapper
)
http
.
Handler
{
handler
:=
genericfilters
.
WithWaitGroup
(
apiHandler
,
c
.
RequestC
ontextMapper
,
c
.
LongRunningFunc
,
c
.
HandlerChainWaitGroup
)
handler
:=
genericfilters
.
WithWaitGroup
(
apiHandler
,
contextMapper
,
c
.
LongRunningFunc
,
c
.
HandlerChainWaitGroup
)
handler
=
genericapifilters
.
WithRequestInfo
(
handler
,
c
.
RequestInfoResolver
,
c
.
RequestC
ontextMapper
)
handler
=
genericapifilters
.
WithRequestInfo
(
handler
,
c
.
RequestInfoResolver
,
contextMapper
)
handler
=
apirequest
.
WithRequestContext
(
handler
,
c
.
RequestC
ontextMapper
)
handler
=
apirequest
.
WithRequestContext
(
handler
,
contextMapper
)
return
handler
return
handler
}
}
...
@@ -523,7 +521,7 @@ func TestGracefulShutdown(t *testing.T) {
...
@@ -523,7 +521,7 @@ func TestGracefulShutdown(t *testing.T) {
graceShutdown
=
true
graceShutdown
=
true
})
})
s
,
err
:=
config
.
Complete
(
nil
)
.
New
(
"test"
,
EmptyDelegate
)
s
,
err
:=
config
.
Complete
(
nil
)
.
New
(
"test"
,
NewEmptyDelegate
()
)
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Fatalf
(
"Error in bringing up the server: %v"
,
err
)
t
.
Fatalf
(
"Error in bringing up the server: %v"
,
err
)
}
}
...
...
staging/src/k8s.io/apiserver/pkg/server/options/BUILD
View file @
9f906618
...
@@ -89,7 +89,6 @@ go_test(
...
@@ -89,7 +89,6 @@ go_test(
"//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/version:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/version:go_default_library",
"//vendor/k8s.io/apiserver/pkg/admission:go_default_library",
"//vendor/k8s.io/apiserver/pkg/admission:go_default_library",
"//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library",
"//vendor/k8s.io/apiserver/pkg/server:go_default_library",
"//vendor/k8s.io/apiserver/pkg/server:go_default_library",
"//vendor/k8s.io/apiserver/pkg/util/flag:go_default_library",
"//vendor/k8s.io/apiserver/pkg/util/flag:go_default_library",
"//vendor/k8s.io/client-go/discovery:go_default_library",
"//vendor/k8s.io/client-go/discovery:go_default_library",
...
...
staging/src/k8s.io/apiserver/pkg/server/options/serving_test.go
View file @
9f906618
...
@@ -42,7 +42,6 @@ import (
...
@@ -42,7 +42,6 @@ import (
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/serializer"
"k8s.io/apimachinery/pkg/runtime/serializer"
"k8s.io/apimachinery/pkg/version"
"k8s.io/apimachinery/pkg/version"
genericapirequest
"k8s.io/apiserver/pkg/endpoints/request"
"k8s.io/apiserver/pkg/server"
"k8s.io/apiserver/pkg/server"
.
"k8s.io/apiserver/pkg/server"
.
"k8s.io/apiserver/pkg/server"
utilflag
"k8s.io/apiserver/pkg/util/flag"
utilflag
"k8s.io/apiserver/pkg/util/flag"
...
@@ -55,7 +54,6 @@ func setUp(t *testing.T) Config {
...
@@ -55,7 +54,6 @@ func setUp(t *testing.T) Config {
codecs
:=
serializer
.
NewCodecFactory
(
scheme
)
codecs
:=
serializer
.
NewCodecFactory
(
scheme
)
config
:=
NewConfig
(
codecs
)
config
:=
NewConfig
(
codecs
)
config
.
RequestContextMapper
=
genericapirequest
.
NewRequestContextMapper
()
return
*
config
return
*
config
}
}
...
@@ -497,7 +495,7 @@ NextTest:
...
@@ -497,7 +495,7 @@ NextTest:
return
return
}
}
s
,
err
:=
config
.
Complete
(
nil
)
.
New
(
"test"
,
server
.
EmptyDelegate
)
s
,
err
:=
config
.
Complete
(
nil
)
.
New
(
"test"
,
server
.
NewEmptyDelegate
()
)
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Errorf
(
"%q - failed creating the server: %v"
,
title
,
err
)
t
.
Errorf
(
"%q - failed creating the server: %v"
,
title
,
err
)
return
return
...
...
staging/src/k8s.io/kube-aggregator/pkg/apiserver/apiserver.go
View file @
9f906618
...
@@ -158,7 +158,7 @@ func (c completedConfig) NewWithDelegate(delegationTarget genericapiserver.Deleg
...
@@ -158,7 +158,7 @@ func (c completedConfig) NewWithDelegate(delegationTarget genericapiserver.Deleg
s
:=
&
APIAggregator
{
s
:=
&
APIAggregator
{
GenericAPIServer
:
genericServer
,
GenericAPIServer
:
genericServer
,
delegateHandler
:
delegationTarget
.
UnprotectedHandler
(),
delegateHandler
:
delegationTarget
.
UnprotectedHandler
(),
contextMapper
:
c
.
GenericConfig
.
RequestContextMapper
,
contextMapper
:
genericServer
.
RequestContextMapper
()
,
proxyClientCert
:
c
.
ExtraConfig
.
ProxyClientCert
,
proxyClientCert
:
c
.
ExtraConfig
.
ProxyClientCert
,
proxyClientKey
:
c
.
ExtraConfig
.
ProxyClientKey
,
proxyClientKey
:
c
.
ExtraConfig
.
ProxyClientKey
,
proxyTransport
:
c
.
ExtraConfig
.
ProxyTransport
,
proxyTransport
:
c
.
ExtraConfig
.
ProxyTransport
,
...
...
staging/src/k8s.io/kube-aggregator/pkg/cmd/server/start.go
View file @
9f906618
...
@@ -144,7 +144,7 @@ func (o AggregatorOptions) RunAggregator(stopCh <-chan struct{}) error {
...
@@ -144,7 +144,7 @@ func (o AggregatorOptions) RunAggregator(stopCh <-chan struct{}) error {
return
err
return
err
}
}
server
,
err
:=
config
.
Complete
()
.
NewWithDelegate
(
genericapiserver
.
EmptyDelegate
)
server
,
err
:=
config
.
Complete
()
.
NewWithDelegate
(
genericapiserver
.
NewEmptyDelegate
()
)
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
...
...
staging/src/k8s.io/sample-apiserver/pkg/apiserver/apiserver.go
View file @
9f906618
...
@@ -101,7 +101,7 @@ func (cfg *Config) Complete() CompletedConfig {
...
@@ -101,7 +101,7 @@ func (cfg *Config) Complete() CompletedConfig {
// New returns a new instance of WardleServer from the given config.
// New returns a new instance of WardleServer from the given config.
func
(
c
completedConfig
)
New
()
(
*
WardleServer
,
error
)
{
func
(
c
completedConfig
)
New
()
(
*
WardleServer
,
error
)
{
genericServer
,
err
:=
c
.
GenericConfig
.
New
(
"sample-apiserver"
,
genericapiserver
.
EmptyDelegate
)
genericServer
,
err
:=
c
.
GenericConfig
.
New
(
"sample-apiserver"
,
genericapiserver
.
NewEmptyDelegate
()
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
...
...
test/integration/etcd/etcd_storage_path_test.go
View file @
9f906618
...
@@ -751,7 +751,7 @@ func startRealMasterOrDie(t *testing.T, certDir string) (*allClient, clientv3.KV
...
@@ -751,7 +751,7 @@ func startRealMasterOrDie(t *testing.T, certDir string) (*allClient, clientv3.KV
kubeAPIServerConfig
.
ExtraConfig
.
APIResourceConfigSource
=
&
allResourceSource
{}
// force enable all resources
kubeAPIServerConfig
.
ExtraConfig
.
APIResourceConfigSource
=
&
allResourceSource
{}
// force enable all resources
kubeAPIServer
,
err
:=
app
.
CreateKubeAPIServer
(
kubeAPIServerConfig
,
genericapiserver
.
EmptyDelegate
,
sharedInformers
,
versionedInformers
)
kubeAPIServer
,
err
:=
app
.
CreateKubeAPIServer
(
kubeAPIServerConfig
,
genericapiserver
.
NewEmptyDelegate
()
,
sharedInformers
,
versionedInformers
)
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Fatal
(
err
)
t
.
Fatal
(
err
)
}
}
...
...
test/integration/examples/apiserver_test.go
View file @
9f906618
...
@@ -130,7 +130,7 @@ func TestAggregatedAPIServer(t *testing.T) {
...
@@ -130,7 +130,7 @@ func TestAggregatedAPIServer(t *testing.T) {
kubeAPIServerClientConfig
.
ServerName
=
""
kubeAPIServerClientConfig
.
ServerName
=
""
kubeClientConfigValue
.
Store
(
kubeAPIServerClientConfig
)
kubeClientConfigValue
.
Store
(
kubeAPIServerClientConfig
)
kubeAPIServer
,
err
:=
app
.
CreateKubeAPIServer
(
kubeAPIServerConfig
,
genericapiserver
.
EmptyDelegate
,
sharedInformers
,
versionedInformers
)
kubeAPIServer
,
err
:=
app
.
CreateKubeAPIServer
(
kubeAPIServerConfig
,
genericapiserver
.
NewEmptyDelegate
()
,
sharedInformers
,
versionedInformers
)
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Fatal
(
err
)
t
.
Fatal
(
err
)
}
}
...
...
test/integration/framework/master_utils.go
View file @
9f906618
...
@@ -177,7 +177,7 @@ func startMasterOrDie(masterConfig *master.Config, incomingServer *httptest.Serv
...
@@ -177,7 +177,7 @@ func startMasterOrDie(masterConfig *master.Config, incomingServer *httptest.Serv
}
}
sharedInformers
:=
informers
.
NewSharedInformerFactory
(
clientset
,
masterConfig
.
GenericConfig
.
LoopbackClientConfig
.
Timeout
)
sharedInformers
:=
informers
.
NewSharedInformerFactory
(
clientset
,
masterConfig
.
GenericConfig
.
LoopbackClientConfig
.
Timeout
)
m
,
err
=
masterConfig
.
Complete
(
sharedInformers
)
.
New
(
genericapiserver
.
EmptyDelegate
)
m
,
err
=
masterConfig
.
Complete
(
sharedInformers
)
.
New
(
genericapiserver
.
NewEmptyDelegate
()
)
if
err
!=
nil
{
if
err
!=
nil
{
closeFn
()
closeFn
()
glog
.
Fatalf
(
"error in bringing up the master: %v"
,
err
)
glog
.
Fatalf
(
"error in bringing up the master: %v"
,
err
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment