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
d0a725a5
Commit
d0a725a5
authored
Nov 18, 2016
by
Chao Xu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
master, genericapiserver, registry
parent
4f3d0e3b
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
41 additions
and
22 deletions
+41
-22
config.go
pkg/genericapiserver/config.go
+2
-1
master.go
pkg/master/master.go
+8
-7
master_test.go
pkg/master/master_test.go
+18
-8
etcd.go
pkg/registry/core/node/etcd/etcd.go
+9
-2
etcd_test.go
pkg/registry/core/pod/etcd/etcd_test.go
+4
-4
No files found.
pkg/genericapiserver/config.go
View file @
d0a725a5
...
@@ -37,6 +37,7 @@ import (
...
@@ -37,6 +37,7 @@ import (
"k8s.io/kubernetes/pkg/admission"
"k8s.io/kubernetes/pkg/admission"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/api/v1"
apiserverfilters
"k8s.io/kubernetes/pkg/apiserver/filters"
apiserverfilters
"k8s.io/kubernetes/pkg/apiserver/filters"
apiserveropenapi
"k8s.io/kubernetes/pkg/apiserver/openapi"
apiserveropenapi
"k8s.io/kubernetes/pkg/apiserver/openapi"
"k8s.io/kubernetes/pkg/apiserver/request"
"k8s.io/kubernetes/pkg/apiserver/request"
...
@@ -522,7 +523,7 @@ func DefaultAndValidateRunOptions(options *options.ServerRunOptions) {
...
@@ -522,7 +523,7 @@ func DefaultAndValidateRunOptions(options *options.ServerRunOptions) {
glog
.
Warningf
(
"Unable to obtain external host address from cloud provider: %v"
,
err
)
glog
.
Warningf
(
"Unable to obtain external host address from cloud provider: %v"
,
err
)
}
else
{
}
else
{
for
_
,
addr
:=
range
addrs
{
for
_
,
addr
:=
range
addrs
{
if
addr
.
Type
==
api
.
NodeExternalIP
{
if
addr
.
Type
==
v1
.
NodeExternalIP
{
options
.
ExternalHost
=
addr
.
Address
options
.
ExternalHost
=
addr
.
Address
}
}
}
}
...
...
pkg/master/master.go
View file @
d0a725a5
...
@@ -38,6 +38,7 @@ import (
...
@@ -38,6 +38,7 @@ import (
rbacapi
"k8s.io/kubernetes/pkg/apis/rbac/v1alpha1"
rbacapi
"k8s.io/kubernetes/pkg/apis/rbac/v1alpha1"
storageapiv1beta1
"k8s.io/kubernetes/pkg/apis/storage/v1beta1"
storageapiv1beta1
"k8s.io/kubernetes/pkg/apis/storage/v1beta1"
coreclient
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion"
coreclient
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion"
corev1client
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5/typed/core/v1"
"k8s.io/kubernetes/pkg/genericapiserver"
"k8s.io/kubernetes/pkg/genericapiserver"
"k8s.io/kubernetes/pkg/genericapiserver/options"
"k8s.io/kubernetes/pkg/genericapiserver/options"
"k8s.io/kubernetes/pkg/healthz"
"k8s.io/kubernetes/pkg/healthz"
...
@@ -258,7 +259,7 @@ func (c completedConfig) New() (*Master, error) {
...
@@ -258,7 +259,7 @@ func (c completedConfig) New() (*Master, error) {
m
.
InstallAPIs
(
c
.
Config
.
GenericConfig
.
APIResourceConfigSource
,
restOptionsFactory
.
NewFor
,
restStorageProviders
...
)
m
.
InstallAPIs
(
c
.
Config
.
GenericConfig
.
APIResourceConfigSource
,
restOptionsFactory
.
NewFor
,
restStorageProviders
...
)
if
c
.
Tunneler
!=
nil
{
if
c
.
Tunneler
!=
nil
{
m
.
installTunneler
(
c
.
Tunneler
,
coreclient
.
NewForConfigOrDie
(
c
.
GenericConfig
.
LoopbackClientConfig
)
.
Nodes
())
m
.
installTunneler
(
c
.
Tunneler
,
core
v1
client
.
NewForConfigOrDie
(
c
.
GenericConfig
.
LoopbackClientConfig
)
.
Nodes
())
}
}
return
m
,
nil
return
m
,
nil
...
@@ -283,7 +284,7 @@ func (m *Master) InstallLegacyAPI(c *Config, restOptionsGetter genericapiserver.
...
@@ -283,7 +284,7 @@ func (m *Master) InstallLegacyAPI(c *Config, restOptionsGetter genericapiserver.
}
}
}
}
func
(
m
*
Master
)
installTunneler
(
tunneler
genericapiserver
.
Tunneler
,
nodeClient
coreclient
.
NodeInterface
)
{
func
(
m
*
Master
)
installTunneler
(
tunneler
genericapiserver
.
Tunneler
,
nodeClient
core
v1
client
.
NodeInterface
)
{
tunneler
.
Run
(
nodeAddressProvider
{
nodeClient
}
.
externalAddresses
)
tunneler
.
Run
(
nodeAddressProvider
{
nodeClient
}
.
externalAddresses
)
m
.
GenericAPIServer
.
AddHealthzChecks
(
healthz
.
NamedCheck
(
"SSH Tunnel Check"
,
genericapiserver
.
TunnelSyncHealthChecker
(
tunneler
)))
m
.
GenericAPIServer
.
AddHealthzChecks
(
healthz
.
NamedCheck
(
"SSH Tunnel Check"
,
genericapiserver
.
TunnelSyncHealthChecker
(
tunneler
)))
prometheus
.
NewGaugeFunc
(
prometheus
.
GaugeOpts
{
prometheus
.
NewGaugeFunc
(
prometheus
.
GaugeOpts
{
...
@@ -352,15 +353,15 @@ func (f restOptionsFactory) NewFor(resource unversioned.GroupResource) generic.R
...
@@ -352,15 +353,15 @@ func (f restOptionsFactory) NewFor(resource unversioned.GroupResource) generic.R
}
}
type
nodeAddressProvider
struct
{
type
nodeAddressProvider
struct
{
nodeClient
coreclient
.
NodeInterface
nodeClient
core
v1
client
.
NodeInterface
}
}
func
(
n
nodeAddressProvider
)
externalAddresses
()
(
addresses
[]
string
,
err
error
)
{
func
(
n
nodeAddressProvider
)
externalAddresses
()
(
addresses
[]
string
,
err
error
)
{
preferredAddressTypes
:=
[]
api
.
NodeAddressType
{
preferredAddressTypes
:=
[]
api
v1
.
NodeAddressType
{
api
.
NodeExternalIP
,
api
v1
.
NodeExternalIP
,
api
.
NodeLegacyHostIP
,
api
v1
.
NodeLegacyHostIP
,
}
}
nodes
,
err
:=
n
.
nodeClient
.
List
(
api
.
ListOptions
{})
nodes
,
err
:=
n
.
nodeClient
.
List
(
api
v1
.
ListOptions
{})
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
...
...
pkg/master/master_test.go
View file @
d0a725a5
...
@@ -42,12 +42,11 @@ import (
...
@@ -42,12 +42,11 @@ import (
"k8s.io/kubernetes/pkg/apis/extensions"
"k8s.io/kubernetes/pkg/apis/extensions"
extensionsapiv1beta1
"k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
extensionsapiv1beta1
"k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
"k8s.io/kubernetes/pkg/apis/rbac"
"k8s.io/kubernetes/pkg/apis/rbac"
"k8s.io/kubernetes/pkg/client/clientset_generated/
internalclientset
/fake"
"k8s.io/kubernetes/pkg/client/clientset_generated/
release_1_5
/fake"
"k8s.io/kubernetes/pkg/client/restclient"
"k8s.io/kubernetes/pkg/client/restclient"
openapigen
"k8s.io/kubernetes/pkg/generated/openapi"
openapigen
"k8s.io/kubernetes/pkg/generated/openapi"
"k8s.io/kubernetes/pkg/genericapiserver"
"k8s.io/kubernetes/pkg/genericapiserver"
kubeletclient
"k8s.io/kubernetes/pkg/kubelet/client"
kubeletclient
"k8s.io/kubernetes/pkg/kubelet/client"
"k8s.io/kubernetes/pkg/registry/registrytest"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/runtime"
etcdtesting
"k8s.io/kubernetes/pkg/storage/etcd/testing"
etcdtesting
"k8s.io/kubernetes/pkg/storage/etcd/testing"
utilnet
"k8s.io/kubernetes/pkg/util/net"
utilnet
"k8s.io/kubernetes/pkg/util/net"
...
@@ -173,25 +172,36 @@ func (*fakeEndpointReconciler) ReconcileEndpoints(serviceName string, ip net.IP,
...
@@ -173,25 +172,36 @@ func (*fakeEndpointReconciler) ReconcileEndpoints(serviceName string, ip net.IP,
return
nil
return
nil
}
}
func
makeNodeList
(
nodes
[]
string
,
nodeResources
apiv1
.
NodeResources
)
*
apiv1
.
NodeList
{
list
:=
apiv1
.
NodeList
{
Items
:
make
([]
apiv1
.
Node
,
len
(
nodes
)),
}
for
i
:=
range
nodes
{
list
.
Items
[
i
]
.
Name
=
nodes
[
i
]
list
.
Items
[
i
]
.
Status
.
Capacity
=
nodeResources
.
Capacity
}
return
&
list
}
// TestGetNodeAddresses verifies that proper results are returned
// TestGetNodeAddresses verifies that proper results are returned
// when requesting node addresses.
// when requesting node addresses.
func
TestGetNodeAddresses
(
t
*
testing
.
T
)
{
func
TestGetNodeAddresses
(
t
*
testing
.
T
)
{
assert
:=
assert
.
New
(
t
)
assert
:=
assert
.
New
(
t
)
fakeNodeClient
:=
fake
.
NewSimpleClientset
(
registrytest
.
MakeNodeList
([]
string
{
"node1"
,
"node2"
},
api
.
NodeResources
{}))
.
Core
()
.
Nodes
()
fakeNodeClient
:=
fake
.
NewSimpleClientset
(
makeNodeList
([]
string
{
"node1"
,
"node2"
},
apiv1
.
NodeResources
{}))
.
Core
()
.
Nodes
()
addressProvider
:=
nodeAddressProvider
{
fakeNodeClient
}
addressProvider
:=
nodeAddressProvider
{
fakeNodeClient
}
// Fail case (no addresses associated with nodes)
// Fail case (no addresses associated with nodes)
nodes
,
_
:=
fakeNodeClient
.
List
(
api
.
ListOptions
{})
nodes
,
_
:=
fakeNodeClient
.
List
(
api
v1
.
ListOptions
{})
addrs
,
err
:=
addressProvider
.
externalAddresses
()
addrs
,
err
:=
addressProvider
.
externalAddresses
()
assert
.
Error
(
err
,
"addresses should have caused an error as there are no addresses."
)
assert
.
Error
(
err
,
"addresses should have caused an error as there are no addresses."
)
assert
.
Equal
([]
string
(
nil
),
addrs
)
assert
.
Equal
([]
string
(
nil
),
addrs
)
// Pass case with External type IP
// Pass case with External type IP
nodes
,
_
=
fakeNodeClient
.
List
(
api
.
ListOptions
{})
nodes
,
_
=
fakeNodeClient
.
List
(
api
v1
.
ListOptions
{})
for
index
:=
range
nodes
.
Items
{
for
index
:=
range
nodes
.
Items
{
nodes
.
Items
[
index
]
.
Status
.
Addresses
=
[]
api
.
NodeAddress
{{
Type
:
api
.
NodeExternalIP
,
Address
:
"127.0.0.1"
}}
nodes
.
Items
[
index
]
.
Status
.
Addresses
=
[]
api
v1
.
NodeAddress
{{
Type
:
apiv1
.
NodeExternalIP
,
Address
:
"127.0.0.1"
}}
fakeNodeClient
.
Update
(
&
nodes
.
Items
[
index
])
fakeNodeClient
.
Update
(
&
nodes
.
Items
[
index
])
}
}
addrs
,
err
=
addressProvider
.
externalAddresses
()
addrs
,
err
=
addressProvider
.
externalAddresses
()
...
@@ -199,9 +209,9 @@ func TestGetNodeAddresses(t *testing.T) {
...
@@ -199,9 +209,9 @@ func TestGetNodeAddresses(t *testing.T) {
assert
.
Equal
([]
string
{
"127.0.0.1"
,
"127.0.0.1"
},
addrs
)
assert
.
Equal
([]
string
{
"127.0.0.1"
,
"127.0.0.1"
},
addrs
)
// Pass case with LegacyHost type IP
// Pass case with LegacyHost type IP
nodes
,
_
=
fakeNodeClient
.
List
(
api
.
ListOptions
{})
nodes
,
_
=
fakeNodeClient
.
List
(
api
v1
.
ListOptions
{})
for
index
:=
range
nodes
.
Items
{
for
index
:=
range
nodes
.
Items
{
nodes
.
Items
[
index
]
.
Status
.
Addresses
=
[]
api
.
NodeAddress
{{
Type
:
api
.
NodeLegacyHostIP
,
Address
:
"127.0.0.2"
}}
nodes
.
Items
[
index
]
.
Status
.
Addresses
=
[]
api
v1
.
NodeAddress
{{
Type
:
apiv1
.
NodeLegacyHostIP
,
Address
:
"127.0.0.2"
}}
fakeNodeClient
.
Update
(
&
nodes
.
Items
[
index
])
fakeNodeClient
.
Update
(
&
nodes
.
Items
[
index
])
}
}
addrs
,
err
=
addressProvider
.
externalAddresses
()
addrs
,
err
=
addressProvider
.
externalAddresses
()
...
...
pkg/registry/core/node/etcd/etcd.go
View file @
d0a725a5
...
@@ -23,6 +23,7 @@ import (
...
@@ -23,6 +23,7 @@ import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/rest"
"k8s.io/kubernetes/pkg/api/rest"
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/kubelet/client"
"k8s.io/kubernetes/pkg/kubelet/client"
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/core/node"
"k8s.io/kubernetes/pkg/registry/core/node"
...
@@ -115,7 +116,7 @@ func NewStorage(opts generic.RESTOptions, kubeletClientConfig client.KubeletClie
...
@@ -115,7 +116,7 @@ func NewStorage(opts generic.RESTOptions, kubeletClientConfig client.KubeletClie
proxyREST
:=
&
noderest
.
ProxyREST
{
Store
:
store
,
ProxyTransport
:
proxyTransport
}
proxyREST
:=
&
noderest
.
ProxyREST
{
Store
:
store
,
ProxyTransport
:
proxyTransport
}
// Build a NodeGetter that looks up nodes using the REST handler
// Build a NodeGetter that looks up nodes using the REST handler
nodeGetter
:=
client
.
NodeGetterFunc
(
func
(
nodeName
string
)
(
*
api
.
Node
,
error
)
{
nodeGetter
:=
client
.
NodeGetterFunc
(
func
(
nodeName
string
)
(
*
v1
.
Node
,
error
)
{
obj
,
err
:=
nodeREST
.
Get
(
api
.
NewContext
(),
nodeName
)
obj
,
err
:=
nodeREST
.
Get
(
api
.
NewContext
(),
nodeName
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
...
@@ -124,7 +125,13 @@ func NewStorage(opts generic.RESTOptions, kubeletClientConfig client.KubeletClie
...
@@ -124,7 +125,13 @@ func NewStorage(opts generic.RESTOptions, kubeletClientConfig client.KubeletClie
if
!
ok
{
if
!
ok
{
return
nil
,
fmt
.
Errorf
(
"unexpected type %T"
,
obj
)
return
nil
,
fmt
.
Errorf
(
"unexpected type %T"
,
obj
)
}
}
return
node
,
nil
// TODO: Remove the conversion. Consider only return the NodeAddresses
externalNode
:=
&
v1
.
Node
{}
err
=
v1
.
Convert_api_Node_To_v1_Node
(
node
,
externalNode
,
nil
)
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"failed to convert to v1.Node: %v"
,
err
)
}
return
externalNode
,
nil
})
})
connectionInfoGetter
,
err
:=
client
.
NewNodeConnectionInfoGetter
(
nodeGetter
,
kubeletClientConfig
)
connectionInfoGetter
,
err
:=
client
.
NewNodeConnectionInfoGetter
(
nodeGetter
,
kubeletClientConfig
)
if
err
!=
nil
{
if
err
!=
nil
{
...
...
pkg/registry/core/pod/etcd/etcd_test.go
View file @
d0a725a5
...
@@ -63,7 +63,7 @@ func validNewPod() *api.Pod {
...
@@ -63,7 +63,7 @@ func validNewPod() *api.Pod {
ImagePullPolicy
:
api
.
PullAlways
,
ImagePullPolicy
:
api
.
PullAlways
,
TerminationMessagePath
:
api
.
TerminationMessagePathDefault
,
TerminationMessagePath
:
api
.
TerminationMessagePathDefault
,
SecurityContext
:
securitycontext
.
ValidSecurityContextWithContainerDefaults
(),
SecurityContext
:
securitycontext
.
Valid
Internal
SecurityContextWithContainerDefaults
(),
},
},
},
},
SecurityContext
:
&
api
.
PodSecurityContext
{},
SecurityContext
:
&
api
.
PodSecurityContext
{},
...
@@ -658,7 +658,7 @@ func TestEtcdUpdateScheduled(t *testing.T) {
...
@@ -658,7 +658,7 @@ func TestEtcdUpdateScheduled(t *testing.T) {
{
{
Name
:
"foobar"
,
Name
:
"foobar"
,
Image
:
"foo:v1"
,
Image
:
"foo:v1"
,
SecurityContext
:
securitycontext
.
ValidSecurityContextWithContainerDefaults
(),
SecurityContext
:
securitycontext
.
Valid
Internal
SecurityContextWithContainerDefaults
(),
},
},
},
},
SecurityContext
:
&
api
.
PodSecurityContext
{},
SecurityContext
:
&
api
.
PodSecurityContext
{},
...
@@ -683,7 +683,7 @@ func TestEtcdUpdateScheduled(t *testing.T) {
...
@@ -683,7 +683,7 @@ func TestEtcdUpdateScheduled(t *testing.T) {
Image
:
"foo:v2"
,
Image
:
"foo:v2"
,
ImagePullPolicy
:
api
.
PullIfNotPresent
,
ImagePullPolicy
:
api
.
PullIfNotPresent
,
TerminationMessagePath
:
api
.
TerminationMessagePathDefault
,
TerminationMessagePath
:
api
.
TerminationMessagePathDefault
,
SecurityContext
:
securitycontext
.
ValidSecurityContextWithContainerDefaults
(),
SecurityContext
:
securitycontext
.
Valid
Internal
SecurityContextWithContainerDefaults
(),
}},
}},
RestartPolicy
:
api
.
RestartPolicyAlways
,
RestartPolicy
:
api
.
RestartPolicyAlways
,
DNSPolicy
:
api
.
DNSClusterFirst
,
DNSPolicy
:
api
.
DNSClusterFirst
,
...
@@ -727,7 +727,7 @@ func TestEtcdUpdateStatus(t *testing.T) {
...
@@ -727,7 +727,7 @@ func TestEtcdUpdateStatus(t *testing.T) {
Containers
:
[]
api
.
Container
{
Containers
:
[]
api
.
Container
{
{
{
Image
:
"foo:v1"
,
Image
:
"foo:v1"
,
SecurityContext
:
securitycontext
.
ValidSecurityContextWithContainerDefaults
(),
SecurityContext
:
securitycontext
.
Valid
Internal
SecurityContextWithContainerDefaults
(),
},
},
},
},
SecurityContext
:
&
api
.
PodSecurityContext
{},
SecurityContext
:
&
api
.
PodSecurityContext
{},
...
...
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