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
11be6811
Commit
11be6811
authored
Apr 30, 2015
by
Yu-Ju Hong
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #7563 from vmarmol/runtime-pre
Move lifecycle handlers to their own subpackage
parents
d03b5299
238b3c6f
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
42 additions
and
19 deletions
+42
-19
kubelet.go
pkg/kubelet/kubelet.go
+3
-6
kubelet_test.go
pkg/kubelet/kubelet_test.go
+6
-5
doc.go
pkg/kubelet/lifecycle/doc.go
+18
-0
handlers.go
pkg/kubelet/lifecycle/handlers.go
+8
-7
handlers_test.go
pkg/kubelet/lifecycle/handlers_test.go
+1
-1
types.go
pkg/kubelet/types/types.go
+6
-0
No files found.
pkg/kubelet/kubelet.go
View file @
11be6811
...
...
@@ -41,6 +41,7 @@ import (
kubecontainer
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/container"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/dockertools"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/envvars"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/lifecycle"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/metrics"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/network"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/prober"
...
...
@@ -260,7 +261,7 @@ func NewMainKubelet(
klet
.
podManager
=
newBasicPodManager
(
klet
.
kubeClient
)
klet
.
prober
=
prober
.
New
(
klet
.
runner
,
klet
.
readinessManager
,
klet
.
containerRefManager
,
klet
.
recorder
)
klet
.
handlerRunner
=
n
ewHandlerRunner
(
klet
.
httpClient
,
klet
.
runner
,
klet
.
containerManager
)
klet
.
handlerRunner
=
lifecycle
.
N
ewHandlerRunner
(
klet
.
httpClient
,
klet
.
runner
,
klet
.
containerManager
)
// TODO(vmarmol): Remove when the circular dependency is removed :(
containerManager
.
Prober
=
klet
.
prober
...
...
@@ -291,10 +292,6 @@ func NewMainKubelet(
return
klet
,
nil
}
type
httpGetter
interface
{
Get
(
url
string
)
(
*
http
.
Response
,
error
)
}
type
serviceLister
interface
{
List
()
(
api
.
ServiceList
,
error
)
}
...
...
@@ -326,7 +323,7 @@ type Kubelet struct {
// Optional, defaults to simple Docker implementation
runner
prober
.
ContainerCommandRunner
// Optional, client for http requests, defaults to empty client
httpClient
h
ttpGetter
httpClient
kubeletTypes
.
H
ttpGetter
// cAdvisor used for container information.
cadvisor
cadvisor
.
Interface
...
...
pkg/kubelet/kubelet_test.go
View file @
11be6811
...
...
@@ -43,6 +43,7 @@ import (
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/container"
kubecontainer
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/container"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/dockertools"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/lifecycle"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/metrics"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/network"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/prober"
...
...
@@ -121,7 +122,7 @@ func newTestKubelet(t *testing.T) *TestKubelet {
kubelet
.
containerManager
.
Puller
=
&
dockertools
.
FakeDockerPuller
{}
kubelet
.
prober
=
prober
.
New
(
nil
,
kubelet
.
readinessManager
,
kubelet
.
containerRefManager
,
kubelet
.
recorder
)
kubelet
.
containerManager
.
Prober
=
kubelet
.
prober
kubelet
.
handlerRunner
=
n
ewHandlerRunner
(
&
fakeHTTP
{},
&
fakeContainerCommandRunner
{},
kubelet
.
containerManager
)
kubelet
.
handlerRunner
=
lifecycle
.
N
ewHandlerRunner
(
&
fakeHTTP
{},
&
fakeContainerCommandRunner
{},
kubelet
.
containerManager
)
kubelet
.
volumeManager
=
newVolumeManager
()
kubelet
.
runtimeHooks
=
newKubeletRuntimeHooks
(
kubelet
.
recorder
)
return
&
TestKubelet
{
kubelet
,
fakeDocker
,
mockCadvisor
,
fakeKubeClient
,
waitGroup
,
fakeMirrorClient
}
...
...
@@ -787,7 +788,7 @@ func TestSyncPodsWithPodInfraCreatesContainerCallsHandler(t *testing.T) {
waitGroup
:=
testKubelet
.
waitGroup
fakeHttp
:=
fakeHTTP
{}
kubelet
.
httpClient
=
&
fakeHttp
kubelet
.
handlerRunner
=
n
ewHandlerRunner
(
kubelet
.
httpClient
,
&
fakeContainerCommandRunner
{},
kubelet
.
containerManager
)
kubelet
.
handlerRunner
=
lifecycle
.
N
ewHandlerRunner
(
kubelet
.
httpClient
,
&
fakeContainerCommandRunner
{},
kubelet
.
containerManager
)
pods
:=
[]
*
api
.
Pod
{
{
ObjectMeta
:
api
.
ObjectMeta
{
...
...
@@ -1744,7 +1745,7 @@ func TestRunHandlerExec(t *testing.T) {
kubelet
:=
testKubelet
.
kubelet
fakeDocker
:=
testKubelet
.
fakeDocker
kubelet
.
runner
=
&
fakeCommandRunner
kubelet
.
handlerRunner
=
n
ewHandlerRunner
(
&
fakeHTTP
{},
kubelet
.
runner
,
kubelet
.
containerManager
)
kubelet
.
handlerRunner
=
lifecycle
.
N
ewHandlerRunner
(
&
fakeHTTP
{},
kubelet
.
runner
,
kubelet
.
containerManager
)
containerID
:=
"abc1234"
podName
:=
"podFoo"
...
...
@@ -1799,7 +1800,7 @@ func TestRunHandlerHttp(t *testing.T) {
testKubelet
:=
newTestKubelet
(
t
)
kubelet
:=
testKubelet
.
kubelet
kubelet
.
httpClient
=
&
fakeHttp
kubelet
.
handlerRunner
=
n
ewHandlerRunner
(
kubelet
.
httpClient
,
&
fakeContainerCommandRunner
{},
kubelet
.
containerManager
)
kubelet
.
handlerRunner
=
lifecycle
.
N
ewHandlerRunner
(
kubelet
.
httpClient
,
&
fakeContainerCommandRunner
{},
kubelet
.
containerManager
)
containerID
:=
"abc1234"
podName
:=
"podFoo"
...
...
@@ -1867,7 +1868,7 @@ func TestSyncPodEventHandlerFails(t *testing.T) {
kubelet
.
httpClient
=
&
fakeHTTP
{
err
:
fmt
.
Errorf
(
"test error"
),
}
kubelet
.
handlerRunner
=
n
ewHandlerRunner
(
kubelet
.
httpClient
,
&
fakeContainerCommandRunner
{},
kubelet
.
containerManager
)
kubelet
.
handlerRunner
=
lifecycle
.
N
ewHandlerRunner
(
kubelet
.
httpClient
,
&
fakeContainerCommandRunner
{},
kubelet
.
containerManager
)
pods
:=
[]
*
api
.
Pod
{
{
...
...
pkg/kubelet/lifecycle/doc.go
0 → 100644
View file @
11be6811
/*
Copyright 2015 Google Inc. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// Handlers for pod lifecycle events.
package
lifecycle
pkg/kubelet/handlers.go
→
pkg/kubelet/
lifecycle/
handlers.go
View file @
11be6811
...
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
package
kubelet
package
lifecycle
import
(
"fmt"
...
...
@@ -25,19 +25,20 @@ import (
kubecontainer
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/container"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/dockertools"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/prober"
kubeletTypes
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/types"
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
"github.com/golang/glog"
)
type
h
andlerRunner
struct
{
httpGetter
h
ttpGetter
type
H
andlerRunner
struct
{
httpGetter
kubeletTypes
.
H
ttpGetter
commandRunner
prober
.
ContainerCommandRunner
containerManager
*
dockertools
.
DockerManager
}
// TODO(yifan): Merge commandRunner and containerManager once containerManager implements the ContainerCommandRunner interface.
func
newHandlerRunner
(
httpGetter
h
ttpGetter
,
commandRunner
prober
.
ContainerCommandRunner
,
containerManager
*
dockertools
.
DockerManager
)
kubecontainer
.
HandlerRunner
{
return
&
h
andlerRunner
{
func
NewHandlerRunner
(
httpGetter
kubeletTypes
.
H
ttpGetter
,
commandRunner
prober
.
ContainerCommandRunner
,
containerManager
*
dockertools
.
DockerManager
)
kubecontainer
.
HandlerRunner
{
return
&
H
andlerRunner
{
httpGetter
:
httpGetter
,
commandRunner
:
commandRunner
,
containerManager
:
containerManager
,
...
...
@@ -45,7 +46,7 @@ func newHandlerRunner(httpGetter httpGetter, commandRunner prober.ContainerComma
}
// TODO(yifan): Use a strong type for containerID.
func
(
hr
*
h
andlerRunner
)
Run
(
containerID
string
,
pod
*
api
.
Pod
,
container
*
api
.
Container
,
handler
*
api
.
Handler
)
error
{
func
(
hr
*
H
andlerRunner
)
Run
(
containerID
string
,
pod
*
api
.
Pod
,
container
*
api
.
Container
,
handler
*
api
.
Handler
)
error
{
switch
{
case
handler
.
Exec
!=
nil
:
_
,
err
:=
hr
.
commandRunner
.
RunInContainer
(
containerID
,
handler
.
Exec
.
Command
)
...
...
@@ -84,7 +85,7 @@ func resolvePort(portReference util.IntOrString, container *api.Container) (int,
return
-
1
,
fmt
.
Errorf
(
"couldn't find port: %v in %v"
,
portReference
,
container
)
}
func
(
hr
*
h
andlerRunner
)
runHTTPHandler
(
pod
*
api
.
Pod
,
container
*
api
.
Container
,
handler
*
api
.
Handler
)
error
{
func
(
hr
*
H
andlerRunner
)
runHTTPHandler
(
pod
*
api
.
Pod
,
container
*
api
.
Container
,
handler
*
api
.
Handler
)
error
{
host
:=
handler
.
HTTPGet
.
Host
if
len
(
host
)
==
0
{
status
,
err
:=
hr
.
containerManager
.
GetPodStatus
(
pod
)
...
...
pkg/kubelet/handlers_test.go
→
pkg/kubelet/
lifecycle/
handlers_test.go
View file @
11be6811
...
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
package
kubelet
package
lifecycle
import
(
"testing"
...
...
pkg/kubelet/types/
docker
.go
→
pkg/kubelet/types/
types
.go
View file @
11be6811
...
...
@@ -16,5 +16,11 @@ limitations under the License.
package
types
import
"net/http"
// DockerID is an ID of docker container. It is a type to make it clear when we're working with docker container Ids
type
DockerID
string
type
HttpGetter
interface
{
Get
(
url
string
)
(
*
http
.
Response
,
error
)
}
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