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
10bb353a
Unverified
Commit
10bb353a
authored
Jan 08, 2019
by
Kubernetes Prow Robot
Committed by
GitHub
Jan 08, 2019
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #72529 from liggitt/use-overridden-context-namespace
Use overridden context when determining if default namespace came from config
parents
5a708017
f1939909
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
49 additions
and
18 deletions
+49
-18
merged_client_builder.go
...k8s.io/client-go/tools/clientcmd/merged_client_builder.go
+6
-1
merged_client_builder_test.go
...o/client-go/tools/clientcmd/merged_client_builder_test.go
+43
-17
No files found.
staging/src/k8s.io/client-go/tools/clientcmd/merged_client_builder.go
View file @
10bb353a
...
@@ -150,7 +150,12 @@ func (config *DeferredLoadingClientConfig) Namespace() (string, bool, error) {
...
@@ -150,7 +150,12 @@ func (config *DeferredLoadingClientConfig) Namespace() (string, bool, error) {
// if we got a default namespace, determine whether it was explicit or implicit
// if we got a default namespace, determine whether it was explicit or implicit
if
raw
,
err
:=
mergedKubeConfig
.
RawConfig
();
err
==
nil
{
if
raw
,
err
:=
mergedKubeConfig
.
RawConfig
();
err
==
nil
{
if
context
:=
raw
.
Contexts
[
raw
.
CurrentContext
];
context
!=
nil
&&
len
(
context
.
Namespace
)
>
0
{
// determine the current context
currentContext
:=
raw
.
CurrentContext
if
config
.
overrides
!=
nil
&&
len
(
config
.
overrides
.
CurrentContext
)
>
0
{
currentContext
=
config
.
overrides
.
CurrentContext
}
if
context
:=
raw
.
Contexts
[
currentContext
];
context
!=
nil
&&
len
(
context
.
Namespace
)
>
0
{
return
ns
,
false
,
nil
return
ns
,
false
,
nil
}
}
}
}
...
...
staging/src/k8s.io/client-go/tools/clientcmd/merged_client_builder_test.go
View file @
10bb353a
...
@@ -38,6 +38,7 @@ func (l *testLoader) Load() (*clientcmdapi.Config, error) {
...
@@ -38,6 +38,7 @@ func (l *testLoader) Load() (*clientcmdapi.Config, error) {
}
}
type
testClientConfig
struct
{
type
testClientConfig
struct
{
rawconfig
*
clientcmdapi
.
Config
config
*
restclient
.
Config
config
*
restclient
.
Config
namespace
string
namespace
string
namespaceSpecified
bool
namespaceSpecified
bool
...
@@ -45,7 +46,10 @@ type testClientConfig struct {
...
@@ -45,7 +46,10 @@ type testClientConfig struct {
}
}
func
(
c
*
testClientConfig
)
RawConfig
()
(
clientcmdapi
.
Config
,
error
)
{
func
(
c
*
testClientConfig
)
RawConfig
()
(
clientcmdapi
.
Config
,
error
)
{
return
clientcmdapi
.
Config
{},
fmt
.
Errorf
(
"unexpected call"
)
if
c
.
rawconfig
==
nil
{
return
clientcmdapi
.
Config
{},
fmt
.
Errorf
(
"unexpected call"
)
}
return
*
c
.
rawconfig
,
nil
}
}
func
(
c
*
testClientConfig
)
ClientConfig
()
(
*
restclient
.
Config
,
error
)
{
func
(
c
*
testClientConfig
)
ClientConfig
()
(
*
restclient
.
Config
,
error
)
{
return
c
.
config
,
c
.
err
return
c
.
config
,
c
.
err
...
@@ -224,10 +228,11 @@ func TestInClusterConfigNamespace(t *testing.T) {
...
@@ -224,10 +228,11 @@ func TestInClusterConfigNamespace(t *testing.T) {
testCases
:=
map
[
string
]
struct
{
testCases
:=
map
[
string
]
struct
{
clientConfig
*
testClientConfig
clientConfig
*
testClientConfig
icc
*
testICC
icc
*
testICC
overrides
*
ConfigOverrides
checkedICC
bool
checkedICC
bool
result
string
result
string
o
k
bool
o
verridden
bool
err
error
err
error
}{
}{
"in-cluster checked on empty error"
:
{
"in-cluster checked on empty error"
:
{
...
@@ -256,8 +261,8 @@ func TestInClusterConfigNamespace(t *testing.T) {
...
@@ -256,8 +261,8 @@ func TestInClusterConfigNamespace(t *testing.T) {
clientConfig
:
&
testClientConfig
{
namespace
:
"test"
,
namespaceSpecified
:
true
},
clientConfig
:
&
testClientConfig
{
namespace
:
"test"
,
namespaceSpecified
:
true
},
icc
:
&
testICC
{},
icc
:
&
testICC
{},
result
:
"test"
,
result
:
"test"
,
o
k
:
true
,
o
verridden
:
true
,
},
},
"in-cluster checked when namespace is not specified, but is defaulted"
:
{
"in-cluster checked when namespace is not specified, but is defaulted"
:
{
...
@@ -266,7 +271,7 @@ func TestInClusterConfigNamespace(t *testing.T) {
...
@@ -266,7 +271,7 @@ func TestInClusterConfigNamespace(t *testing.T) {
checkedICC
:
true
,
checkedICC
:
true
,
result
:
"test"
,
result
:
"test"
,
o
k
:
false
,
o
verridden
:
false
,
},
},
"in-cluster error returned when config is empty"
:
{
"in-cluster error returned when config is empty"
:
{
...
@@ -294,7 +299,7 @@ func TestInClusterConfigNamespace(t *testing.T) {
...
@@ -294,7 +299,7 @@ func TestInClusterConfigNamespace(t *testing.T) {
checkedICC
:
true
,
checkedICC
:
true
,
result
:
"test"
,
result
:
"test"
,
o
k
:
true
,
o
verridden
:
true
,
},
},
"in-cluster config returned when config is empty and namespace is defaulted but not explicitly set"
:
{
"in-cluster config returned when config is empty and namespace is defaulted but not explicitly set"
:
{
...
@@ -309,20 +314,41 @@ func TestInClusterConfigNamespace(t *testing.T) {
...
@@ -309,20 +314,41 @@ func TestInClusterConfigNamespace(t *testing.T) {
checkedICC
:
true
,
checkedICC
:
true
,
result
:
"test"
,
result
:
"test"
,
ok
:
false
,
overridden
:
false
,
},
"overridden context used to verify explicit namespace in config"
:
{
clientConfig
:
&
testClientConfig
{
namespace
:
"default"
,
namespaceSpecified
:
false
,
// a namespace that comes from a context is not considered overridden
rawconfig
:
&
clientcmdapi
.
Config
{
Contexts
:
map
[
string
]
*
clientcmdapi
.
Context
{
"overridden-context"
:
{
Namespace
:
"default"
}}},
},
overrides
:
&
ConfigOverrides
{
CurrentContext
:
"overridden-context"
},
icc
:
&
testICC
{
possible
:
true
,
testClientConfig
:
testClientConfig
{
namespace
:
"icc"
,
namespaceSpecified
:
false
,
// a namespace that comes from icc is not considered overridden
},
},
checkedICC
:
true
,
result
:
"default"
,
overridden
:
false
,
// a namespace that comes from a context is not considered overridden
},
},
}
}
for
name
,
test
:=
range
testCases
{
for
name
,
test
:=
range
testCases
{
c
:=
&
DeferredLoadingClientConfig
{
icc
:
test
.
icc
}
t
.
Run
(
name
,
func
(
t
*
testing
.
T
)
{
c
.
clientConfig
=
test
.
clientConfig
c
:=
&
DeferredLoadingClientConfig
{
icc
:
test
.
icc
,
overrides
:
test
.
overrides
}
c
.
clientConfig
=
test
.
clientConfig
ns
,
ok
,
err
:=
c
.
Namespace
()
if
test
.
icc
.
called
!=
test
.
checkedICC
{
ns
,
overridden
,
err
:=
c
.
Namespace
()
t
.
Errorf
(
"%s: unexpected in-cluster-config call %t"
,
name
,
test
.
icc
.
called
)
if
test
.
icc
.
called
!=
test
.
checkedICC
{
}
t
.
Errorf
(
"%s: unexpected in-cluster-config call %t"
,
name
,
test
.
icc
.
called
)
if
err
!=
test
.
err
||
ns
!=
test
.
result
||
ok
!=
test
.
ok
{
}
t
.
Errorf
(
"%s: unexpected result: %v %s %t"
,
name
,
err
,
ns
,
ok
)
if
err
!=
test
.
err
||
ns
!=
test
.
result
||
overridden
!=
test
.
overridden
{
}
t
.
Errorf
(
"%s: unexpected result: %v %s %t"
,
name
,
err
,
ns
,
overridden
)
}
})
}
}
}
}
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