added missing forwarding of flags to KubeletConfig

This commit is contained in:
James DeFelice 2015-10-02 23:36:22 +00:00
parent 54e99d9f52
commit e00a1b8e9e

View File

@ -17,6 +17,7 @@ limitations under the License.
package service package service
import ( import (
"fmt"
"math/rand" "math/rand"
"net" "net"
"net/http" "net/http"
@ -43,6 +44,7 @@ import (
"k8s.io/kubernetes/pkg/kubelet" "k8s.io/kubernetes/pkg/kubelet"
"k8s.io/kubernetes/pkg/kubelet/cadvisor" "k8s.io/kubernetes/pkg/kubelet/cadvisor"
kconfig "k8s.io/kubernetes/pkg/kubelet/config" kconfig "k8s.io/kubernetes/pkg/kubelet/config"
kubecontainer "k8s.io/kubernetes/pkg/kubelet/container"
"k8s.io/kubernetes/pkg/kubelet/dockertools" "k8s.io/kubernetes/pkg/kubelet/dockertools"
"k8s.io/kubernetes/pkg/util" "k8s.io/kubernetes/pkg/util"
utilio "k8s.io/kubernetes/pkg/util/io" utilio "k8s.io/kubernetes/pkg/util/io"
@ -136,6 +138,16 @@ func (s *KubeletExecutorServer) Run(hks hyperkube.Interface, _ []string) error {
return err return err
} }
hostPIDSources, err := kubelet.GetValidatedSources(strings.Split(s.HostPIDSources, ","))
if err != nil {
return err
}
hostIPCSources, err := kubelet.GetValidatedSources(strings.Split(s.HostIPCSources, ","))
if err != nil {
return err
}
tlsOptions, err := s.InitializeTLS() tlsOptions, err := s.InitializeTLS()
if err != nil { if err != nil {
return err return err
@ -159,59 +171,75 @@ func (s *KubeletExecutorServer) Run(hks hyperkube.Interface, _ []string) error {
dockerExecHandler = &dockertools.NativeExecHandler{} dockerExecHandler = &dockertools.NativeExecHandler{}
} }
manifestURLHeader := make(http.Header)
if s.ManifestURLHeader != "" {
pieces := strings.Split(s.ManifestURLHeader, ":")
if len(pieces) != 2 {
return fmt.Errorf("manifest-url-header must have a single ':' key-value separator, got %q", s.ManifestURLHeader)
}
manifestURLHeader.Set(pieces[0], pieces[1])
}
kcfg := app.KubeletConfig{ kcfg := app.KubeletConfig{
Address: s.Address, Address: s.Address,
AllowPrivileged: s.AllowPrivileged, AllowPrivileged: s.AllowPrivileged,
HostNetworkSources: hostNetworkSources, CAdvisorInterface: cAdvisorInterface,
HostnameOverride: s.HostnameOverride, CgroupRoot: s.CgroupRoot,
RootDirectory: s.RootDirectory, Cloud: nil, // TODO(jdef) Cloud, specifying null here because we don't want all kubelets polling mesos-master; need to account for this in the cloudprovider impl
ClusterDNS: s.ClusterDNS,
ClusterDomain: s.ClusterDomain,
// ConfigFile: "" // ConfigFile: ""
// ManifestURL: "" ConfigureCBR0: s.ConfigureCBR0,
FileCheckFrequency: s.FileCheckFrequency, ContainerRuntime: s.ContainerRuntime,
CPUCFSQuota: s.CPUCFSQuota,
DiskSpacePolicy: diskSpacePolicy,
DockerClient: dockertools.ConnectToDockerOrDie(s.DockerEndpoint),
DockerDaemonContainer: s.DockerDaemonContainer,
DockerExecHandler: dockerExecHandler,
EnableDebuggingHandlers: s.EnableDebuggingHandlers,
EnableServer: s.EnableServer,
EventBurst: s.EventBurst,
EventRecordQPS: s.EventRecordQPS,
FileCheckFrequency: s.FileCheckFrequency,
HostnameOverride: s.HostnameOverride,
HostNetworkSources: hostNetworkSources,
HostPIDSources: hostPIDSources,
HostIPCSources: hostIPCSources,
// HTTPCheckFrequency // HTTPCheckFrequency
PodInfraContainerImage: s.PodInfraContainerImage, ImageGCPolicy: imageGCPolicy,
SyncFrequency: s.SyncFrequency, KubeClient: apiclient,
RegistryPullQPS: s.RegistryPullQPS, // ManifestURL: ""
RegistryBurst: s.RegistryBurst, ManifestURLHeader: manifestURLHeader,
MinimumGCAge: s.MinimumGCAge, MasterServiceNamespace: s.MasterServiceNamespace,
MaxPerPodContainerCount: s.MaxPerPodContainerCount, MaxContainerCount: s.MaxContainerCount,
MaxContainerCount: s.MaxContainerCount, MaxOpenFiles: s.MaxOpenFiles,
RegisterNode: s.RegisterNode, MaxPerPodContainerCount: s.MaxPerPodContainerCount,
// StandaloneMode: false MaxPods: s.MaxPods,
ClusterDomain: s.ClusterDomain, MinimumGCAge: s.MinimumGCAge,
ClusterDNS: s.ClusterDNS, Mounter: mounter,
Runonce: s.RunOnce, NetworkPluginName: s.NetworkPluginName,
Port: s.Port, NetworkPlugins: app.ProbeNetworkPlugins(s.NetworkPluginDir),
ReadOnlyPort: s.ReadOnlyPort,
CAdvisorInterface: cAdvisorInterface,
EnableServer: s.EnableServer,
EnableDebuggingHandlers: s.EnableDebuggingHandlers,
DockerClient: dockertools.ConnectToDockerOrDie(s.DockerEndpoint),
KubeClient: apiclient,
MasterServiceNamespace: s.MasterServiceNamespace,
VolumePlugins: app.ProbeVolumePlugins(),
NetworkPlugins: app.ProbeNetworkPlugins(s.NetworkPluginDir),
NetworkPluginName: s.NetworkPluginName,
StreamingConnectionIdleTimeout: s.StreamingConnectionIdleTimeout,
TLSOptions: tlsOptions,
ImageGCPolicy: imageGCPolicy,
DiskSpacePolicy: diskSpacePolicy,
Cloud: nil, // TODO(jdef) Cloud, specifying null here because we don't want all kubelets polling mesos-master; need to account for this in the cloudprovider impl
NodeStatusUpdateFrequency: s.NodeStatusUpdateFrequency, NodeStatusUpdateFrequency: s.NodeStatusUpdateFrequency,
OOMAdjuster: oomAdjuster, OOMAdjuster: oomAdjuster,
ResourceContainer: s.ResourceContainer, OSInterface: kubecontainer.RealOS{},
CgroupRoot: s.CgroupRoot, PodCIDR: s.PodCIDR,
ContainerRuntime: s.ContainerRuntime, PodInfraContainerImage: s.PodInfraContainerImage,
Mounter: mounter, Port: s.Port,
DockerDaemonContainer: s.DockerDaemonContainer, ReadOnlyPort: s.ReadOnlyPort,
SystemContainer: s.SystemContainer, RegisterNode: s.RegisterNode,
ConfigureCBR0: s.ConfigureCBR0, RegistryBurst: s.RegistryBurst,
MaxPods: s.MaxPods, RegistryPullQPS: s.RegistryPullQPS,
DockerExecHandler: dockerExecHandler, ResolverConfig: s.ResolverConfig,
ResolverConfig: s.ResolverConfig, ResourceContainer: s.ResourceContainer,
CPUCFSQuota: s.CPUCFSQuota, RootDirectory: s.RootDirectory,
Writer: writer, Runonce: s.RunOnce,
MaxOpenFiles: s.MaxOpenFiles, // StandaloneMode: false
StreamingConnectionIdleTimeout: s.StreamingConnectionIdleTimeout,
SyncFrequency: s.SyncFrequency,
SystemContainer: s.SystemContainer,
TLSOptions: tlsOptions,
VolumePlugins: app.ProbeVolumePlugins(),
Writer: writer,
} }
kcfg.NodeName = kcfg.Hostname kcfg.NodeName = kcfg.Hostname