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
f1939909
Commit
f1939909
authored
Jan 03, 2019
by
Jordan Liggitt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Use overridden config when determining if default namespace came from config
parent
dba49e60
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 @
f1939909
...
...
@@ -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
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
}
}
...
...
staging/src/k8s.io/client-go/tools/clientcmd/merged_client_builder_test.go
View file @
f1939909
...
...
@@ -38,6 +38,7 @@ func (l *testLoader) Load() (*clientcmdapi.Config, error) {
}
type
testClientConfig
struct
{
rawconfig
*
clientcmdapi
.
Config
config
*
restclient
.
Config
namespace
string
namespaceSpecified
bool
...
...
@@ -45,7 +46,10 @@ type testClientConfig struct {
}
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
)
{
return
c
.
config
,
c
.
err
...
...
@@ -224,10 +228,11 @@ func TestInClusterConfigNamespace(t *testing.T) {
testCases
:=
map
[
string
]
struct
{
clientConfig
*
testClientConfig
icc
*
testICC
overrides
*
ConfigOverrides
checkedICC
bool
result
string
o
k
bool
o
verridden
bool
err
error
}{
"in-cluster checked on empty error"
:
{
...
...
@@ -256,8 +261,8 @@ func TestInClusterConfigNamespace(t *testing.T) {
clientConfig
:
&
testClientConfig
{
namespace
:
"test"
,
namespaceSpecified
:
true
},
icc
:
&
testICC
{},
result
:
"test"
,
o
k
:
true
,
result
:
"test"
,
o
verridden
:
true
,
},
"in-cluster checked when namespace is not specified, but is defaulted"
:
{
...
...
@@ -266,7 +271,7 @@ func TestInClusterConfigNamespace(t *testing.T) {
checkedICC
:
true
,
result
:
"test"
,
o
k
:
false
,
o
verridden
:
false
,
},
"in-cluster error returned when config is empty"
:
{
...
...
@@ -294,7 +299,7 @@ func TestInClusterConfigNamespace(t *testing.T) {
checkedICC
:
true
,
result
:
"test"
,
o
k
:
true
,
o
verridden
:
true
,
},
"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) {
checkedICC
:
true
,
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
{
c
:=
&
DeferredLoadingClientConfig
{
icc
:
test
.
icc
}
c
.
clientConfig
=
test
.
clientConfig
ns
,
ok
,
err
:=
c
.
Namespace
()
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
)
}
t
.
Run
(
name
,
func
(
t
*
testing
.
T
)
{
c
:=
&
DeferredLoadingClientConfig
{
icc
:
test
.
icc
,
overrides
:
test
.
overrides
}
c
.
clientConfig
=
test
.
clientConfig
ns
,
overridden
,
err
:=
c
.
Namespace
()
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
||
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