mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-21 10:51:29 +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"
|
||||
kubeletapp "k8s.io/kubernetes/cmd/kubelet/app"
|
||||
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/minion/config"
|
||||
"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
|
||||
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
|
||||
var ctidOpt tasks.Option
|
||||
|
@ -50,6 +50,7 @@ import (
|
||||
|
||||
"k8s.io/kubernetes/contrib/mesos/pkg/election"
|
||||
execcfg "k8s.io/kubernetes/contrib/mesos/pkg/executor/config"
|
||||
"k8s.io/kubernetes/contrib/mesos/pkg/flagutil"
|
||||
"k8s.io/kubernetes/contrib/mesos/pkg/hyperkube"
|
||||
minioncfg "k8s.io/kubernetes/contrib/mesos/pkg/minion/config"
|
||||
"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("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)
|
||||
|
||||
// Create mesos scheduler driver.
|
||||
|
Loading…
Reference in New Issue
Block a user