From 53ab2d6c3cfc5a019f06a41b4d44bee84ffb6c80 Mon Sep 17 00:00:00 2001 From: Michael Taufen Date: Tue, 2 Jan 2018 10:33:07 -0800 Subject: [PATCH] Kubelet flags take precedence This changes the Kubelet configuration flag precedence order so that flags take precedence over config from files/ConfigMaps. See #56171 for rationale. Note: Feature gates accumulate with the following precedence (greater number overrides lesser number): 1. file-based config 2. dynamic cofig 3. flag-based config Kubernetes-commit: 42589266407e32fdf716d1fef689f0aee7142cd9 --- pkg/util/flag/BUILD | 1 + pkg/util/flag/noop.go | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 pkg/util/flag/noop.go diff --git a/pkg/util/flag/BUILD b/pkg/util/flag/BUILD index 25bf080aa..f6aae4b33 100644 --- a/pkg/util/flag/BUILD +++ b/pkg/util/flag/BUILD @@ -32,6 +32,7 @@ go_library( "map_string_bool.go", "map_string_string.go", "namedcertkey_flag.go", + "noop.go", "omitempty.go", "string_flag.go", "tristate.go", diff --git a/pkg/util/flag/noop.go b/pkg/util/flag/noop.go new file mode 100644 index 000000000..03f7f14c0 --- /dev/null +++ b/pkg/util/flag/noop.go @@ -0,0 +1,41 @@ +/* +Copyright 2018 The Kubernetes Authors. + +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 flag + +import ( + goflag "flag" + "github.com/spf13/pflag" +) + +// NoOp implements goflag.Value and plfag.Value, +// but has a noop Set implementation +type NoOp struct{} + +var _ goflag.Value = NoOp{} +var _ pflag.Value = NoOp{} + +func (NoOp) String() string { + return "" +} + +func (NoOp) Set(val string) error { + return nil +} + +func (NoOp) Type() string { + return "NoOp" +}