mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 03:41:45 +00:00
forward globally declared cadvisor housekeeping flags
This commit is contained in:
parent
bf1bb5d309
commit
622a28c021
51
contrib/mesos/pkg/flagutil/cadvisor.go
Normal file
51
contrib/mesos/pkg/flagutil/cadvisor.go
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2016 The Kubernetes Authors 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package flagutil
|
||||||
|
|
||||||
|
import (
|
||||||
|
"flag"
|
||||||
|
|
||||||
|
// TODO(jdef) kill this once cadvisor flags are no longer configured by
|
||||||
|
// global variables. Importing it this way guarantees that the global flag
|
||||||
|
// variables are initialized.
|
||||||
|
_ "github.com/google/cadvisor/manager"
|
||||||
|
// kubelet attempts to customize default values for some cadvisor flags, so
|
||||||
|
// make sure that we pick these up.
|
||||||
|
_ "k8s.io/kubernetes/pkg/kubelet/cadvisor"
|
||||||
|
)
|
||||||
|
|
||||||
|
// FlagFunc retrieves a specific flag instance; returns nil if the flag is not configured.
|
||||||
|
type FlagFunc func() *flag.Flag
|
||||||
|
|
||||||
|
// NameValue returns the name and value of a flag, if it exists, otherwise empty strings.
|
||||||
|
func (ff FlagFunc) NameValue() (name, value string) {
|
||||||
|
if f := ff(); f != nil {
|
||||||
|
name, value = f.Name, f.Value.String()
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func flagFunc(name string) FlagFunc { return func() *flag.Flag { return flag.Lookup(name) } }
|
||||||
|
|
||||||
|
// Cadvisor fields return the configured values of cadvisor global flags
|
||||||
|
var Cadvisor = struct {
|
||||||
|
HousekeepingInterval FlagFunc
|
||||||
|
GlobalHousekeepingInterval FlagFunc
|
||||||
|
}{
|
||||||
|
flagFunc("housekeeping_interval"),
|
||||||
|
flagFunc("global_housekeeping_interval"),
|
||||||
|
}
|
@ -33,6 +33,7 @@ import (
|
|||||||
"gopkg.in/natefinch/lumberjack.v2"
|
"gopkg.in/natefinch/lumberjack.v2"
|
||||||
kubeletapp "k8s.io/kubernetes/cmd/kubelet/app"
|
kubeletapp "k8s.io/kubernetes/cmd/kubelet/app"
|
||||||
exservice "k8s.io/kubernetes/contrib/mesos/pkg/executor/service"
|
exservice "k8s.io/kubernetes/contrib/mesos/pkg/executor/service"
|
||||||
|
"k8s.io/kubernetes/contrib/mesos/pkg/flagutil"
|
||||||
"k8s.io/kubernetes/contrib/mesos/pkg/hyperkube"
|
"k8s.io/kubernetes/contrib/mesos/pkg/hyperkube"
|
||||||
"k8s.io/kubernetes/contrib/mesos/pkg/minion/config"
|
"k8s.io/kubernetes/contrib/mesos/pkg/minion/config"
|
||||||
"k8s.io/kubernetes/contrib/mesos/pkg/minion/tasks"
|
"k8s.io/kubernetes/contrib/mesos/pkg/minion/tasks"
|
||||||
@ -177,9 +178,18 @@ func (ms *MinionServer) launchExecutorServer(containerID string) <-chan struct{}
|
|||||||
|
|
||||||
// disable resource-container; mesos slave doesn't like sub-containers yet
|
// disable resource-container; mesos slave doesn't like sub-containers yet
|
||||||
executorArgs = append(executorArgs, "--kubelet-cgroups=")
|
executorArgs = append(executorArgs, "--kubelet-cgroups=")
|
||||||
if ms.cgroupRoot != "" {
|
|
||||||
executorArgs = append(executorArgs, "--cgroup-root="+ms.cgroupRoot)
|
appendOptional := func(name, value string) {
|
||||||
|
if value != "" {
|
||||||
|
executorArgs = append(executorArgs, "--"+name+"="+value)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
appendOptional("cgroup-root", ms.cgroupRoot)
|
||||||
|
|
||||||
|
// forward global cadvisor flag values to the executor
|
||||||
|
// TODO(jdef) remove this code once cadvisor global flags have been cleaned up
|
||||||
|
appendOptional(flagutil.Cadvisor.HousekeepingInterval.NameValue())
|
||||||
|
appendOptional(flagutil.Cadvisor.GlobalHousekeepingInterval.NameValue())
|
||||||
|
|
||||||
// forward containerID so that the executor may pass it along to containers that it launches
|
// forward containerID so that the executor may pass it along to containers that it launches
|
||||||
var ctidOpt tasks.Option
|
var ctidOpt tasks.Option
|
||||||
|
@ -50,6 +50,7 @@ import (
|
|||||||
|
|
||||||
"k8s.io/kubernetes/contrib/mesos/pkg/election"
|
"k8s.io/kubernetes/contrib/mesos/pkg/election"
|
||||||
execcfg "k8s.io/kubernetes/contrib/mesos/pkg/executor/config"
|
execcfg "k8s.io/kubernetes/contrib/mesos/pkg/executor/config"
|
||||||
|
"k8s.io/kubernetes/contrib/mesos/pkg/flagutil"
|
||||||
"k8s.io/kubernetes/contrib/mesos/pkg/hyperkube"
|
"k8s.io/kubernetes/contrib/mesos/pkg/hyperkube"
|
||||||
minioncfg "k8s.io/kubernetes/contrib/mesos/pkg/minion/config"
|
minioncfg "k8s.io/kubernetes/contrib/mesos/pkg/minion/config"
|
||||||
"k8s.io/kubernetes/contrib/mesos/pkg/podutil"
|
"k8s.io/kubernetes/contrib/mesos/pkg/podutil"
|
||||||
@ -495,6 +496,10 @@ func (s *SchedulerServer) prepareExecutorInfo(hks hyperkube.Interface) (*mesos.E
|
|||||||
appendOptional("host-network-sources", s.kubeletHostNetworkSources)
|
appendOptional("host-network-sources", s.kubeletHostNetworkSources)
|
||||||
appendOptional("network-plugin", s.kubeletNetworkPluginName)
|
appendOptional("network-plugin", s.kubeletNetworkPluginName)
|
||||||
|
|
||||||
|
// TODO(jdef) this code depends on poorly scoped cadvisor flags, will need refactoring soon
|
||||||
|
appendOptional(flagutil.Cadvisor.HousekeepingInterval.NameValue())
|
||||||
|
appendOptional(flagutil.Cadvisor.GlobalHousekeepingInterval.NameValue())
|
||||||
|
|
||||||
log.V(1).Infof("prepared executor command %q with args '%+v'", ci.GetValue(), ci.Arguments)
|
log.V(1).Infof("prepared executor command %q with args '%+v'", ci.GetValue(), ci.Arguments)
|
||||||
|
|
||||||
// Create mesos scheduler driver.
|
// Create mesos scheduler driver.
|
||||||
|
Loading…
Reference in New Issue
Block a user