Merge pull request #14415 from mesosphere/sttts-code-dedup-kubelet-init

Preparation for Mesos kubelet code-deduplication
This commit is contained in:
Alex Robinson
2015-10-05 14:43:06 -07:00
4 changed files with 18 additions and 10 deletions

View File

@@ -238,7 +238,7 @@ func startComponents(firstManifestURL, secondManifestURL string) (string, string
10*time.Second, /* SyncFrequency */
40 /* MaxPods */)
kubeletapp.RunKubelet(kcfg, nil)
kubeletapp.RunKubelet(kcfg)
// Kubelet (machine)
// Create a second kubelet so that the guestbook example's two redis slaves both
// have a place they can schedule.
@@ -270,7 +270,7 @@ func startComponents(firstManifestURL, secondManifestURL string) (string, string
40 /* MaxPods */)
kubeletapp.RunKubelet(kcfg, nil)
kubeletapp.RunKubelet(kcfg)
return apiServer.URL, configFilePath
}

View File

@@ -455,7 +455,7 @@ func (s *KubeletServer) Run(kcfg *KubeletConfig) error {
glog.Warning(err)
}
if err := RunKubelet(kcfg, nil); err != nil {
if err := RunKubelet(kcfg); err != nil {
return err
}
@@ -663,7 +663,7 @@ func SimpleKubelet(client *client.Client,
// 2 Kubelet binary
// 3 Standalone 'kubernetes' binary
// Eventually, #2 will be replaced with instances of #3
func RunKubelet(kcfg *KubeletConfig, builder KubeletBuilder) error {
func RunKubelet(kcfg *KubeletConfig) error {
kcfg.Hostname = nodeutil.GetHostname(kcfg.HostnameOverride)
if len(kcfg.NodeName) == 0 {
@@ -712,8 +712,9 @@ func RunKubelet(kcfg *KubeletConfig, builder KubeletBuilder) error {
credentialprovider.SetPreferredDockercfgPath(kcfg.RootDirectory)
builder := kcfg.Builder
if builder == nil {
builder = createAndInitKubelet
builder = CreateAndInitKubelet
}
if kcfg.OSInterface == nil {
kcfg.OSInterface = kubecontainer.RealOS{}
@@ -782,6 +783,7 @@ func makePodSourceConfig(kc *KubeletConfig) *config.PodConfig {
type KubeletConfig struct {
Address net.IP
AllowPrivileged bool
Builder KubeletBuilder
CAdvisorInterface cadvisor.Interface
CgroupRoot string
Cloud cloudprovider.Interface
@@ -824,6 +826,7 @@ type KubeletConfig struct {
OOMAdjuster *oom.OOMAdjuster
OSInterface kubecontainer.OSInterface
PodCIDR string
PodConfig *config.PodConfig
PodInfraContainerImage string
Port uint
ReadOnlyPort uint
@@ -846,7 +849,7 @@ type KubeletConfig struct {
VolumePlugins []volume.VolumePlugin
}
func createAndInitKubelet(kc *KubeletConfig) (k KubeletBootstrap, pc *config.PodConfig, err error) {
func CreateAndInitKubelet(kc *KubeletConfig) (k KubeletBootstrap, pc *config.PodConfig, err error) {
// TODO: block until all sources have delivered at least one update to the channel, or break the sync loop
// up into "per source" synchronizations
// TODO: KubeletConfig.KubeClient should be a client interface, but client interface misses certain methods
@@ -867,7 +870,10 @@ func createAndInitKubelet(kc *KubeletConfig) (k KubeletBootstrap, pc *config.Pod
KubeletEndpoint: api.DaemonEndpoint{Port: int(kc.Port)},
}
pc = kc.PodConfig
if pc == nil {
pc = makePodSourceConfig(kc)
}
k, err = kubelet.NewMainKubelet(
kc.Hostname,
kc.NodeName,

View File

@@ -130,7 +130,7 @@ func main() {
10*time.Second, /* SyncFrequency */
40, /* MaxPods */
)
kubeletapp.RunKubelet(kcfg, nil)
kubeletapp.RunKubelet(kcfg)
select {}
}

View File

@@ -218,9 +218,11 @@ func (s *KubeletExecutorServer) Run(hks hyperkube.Interface, _ []string) error {
kcfg.NodeName = kcfg.Hostname
err = app.RunKubelet(&kcfg, app.KubeletBuilder(func(kc *app.KubeletConfig) (app.KubeletBootstrap, *kconfig.PodConfig, error) {
kcfg.Builder = app.KubeletBuilder(func(kc *app.KubeletConfig) (app.KubeletBootstrap, *kconfig.PodConfig, error) {
return s.createAndInitKubelet(kc, hks, clientConfig)
}))
})
err = app.RunKubelet(&kcfg)
if err != nil {
return err
}