From c2ae6d5b406557d6c6f50694f69622502bfe1bca Mon Sep 17 00:00:00 2001 From: deads2k Date: Wed, 25 Jan 2017 07:55:15 -0500 Subject: [PATCH] remove api to util dependency hiding types --- cmd/kubelet/app/BUILD | 2 +- cmd/kubelet/app/server_test.go | 6 +-- pkg/apis/componentconfig/BUILD | 1 - pkg/apis/componentconfig/types.go | 39 +++++++++++++++++-- pkg/apis/componentconfig/v1alpha1/BUILD | 1 - .../v1alpha1/zz_generated.conversion.go | 5 +-- .../componentconfig/zz_generated.deepcopy.go | 5 +-- pkg/kubelet/BUILD | 1 - pkg/kubelet/kubelet.go | 5 +-- 9 files changed, 46 insertions(+), 19 deletions(-) diff --git a/cmd/kubelet/app/BUILD b/cmd/kubelet/app/BUILD index de96c816cd4..44288076d72 100644 --- a/cmd/kubelet/app/BUILD +++ b/cmd/kubelet/app/BUILD @@ -17,9 +17,9 @@ go_test( library = ":go_default_library", tags = ["automanaged"], deps = [ + "//pkg/apis/componentconfig:go_default_library", "//pkg/kubelet:go_default_library", "//vendor:k8s.io/apimachinery/pkg/util/diff", - "//vendor:k8s.io/apiserver/pkg/util/flag", "//vendor:k8s.io/client-go/rest", ], ) diff --git a/cmd/kubelet/app/server_test.go b/cmd/kubelet/app/server_test.go index 6b948e80d6f..2da0e104913 100644 --- a/cmd/kubelet/app/server_test.go +++ b/cmd/kubelet/app/server_test.go @@ -19,7 +19,7 @@ package app import ( "testing" - utilflag "k8s.io/apiserver/pkg/util/flag" + "k8s.io/kubernetes/pkg/apis/componentconfig" "k8s.io/kubernetes/pkg/kubelet" ) @@ -51,8 +51,8 @@ func TestValueOfAllocatableResources(t *testing.T) { } for _, test := range testCases { - kubeReservedCM := make(utilflag.ConfigurationMap) - systemReservedCM := make(utilflag.ConfigurationMap) + kubeReservedCM := make(componentconfig.ConfigurationMap) + systemReservedCM := make(componentconfig.ConfigurationMap) kubeReservedCM.Set(test.kubeReserved) systemReservedCM.Set(test.systemReserved) diff --git a/pkg/apis/componentconfig/BUILD b/pkg/apis/componentconfig/BUILD index cb9ac3e162a..3b4edc0e774 100644 --- a/pkg/apis/componentconfig/BUILD +++ b/pkg/apis/componentconfig/BUILD @@ -25,7 +25,6 @@ go_library( "//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime/schema", "//vendor:k8s.io/apimachinery/pkg/util/net", - "//vendor:k8s.io/apiserver/pkg/util/flag", ], ) diff --git a/pkg/apis/componentconfig/types.go b/pkg/apis/componentconfig/types.go index d76a82b43ba..4858cd2f5f1 100644 --- a/pkg/apis/componentconfig/types.go +++ b/pkg/apis/componentconfig/types.go @@ -17,9 +17,12 @@ limitations under the License. package componentconfig import ( + "fmt" + "sort" + "strings" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" - utilflag "k8s.io/apiserver/pkg/util/flag" "k8s.io/kubernetes/pkg/api" ) @@ -445,12 +448,12 @@ type KubeletConfiguration struct { // that describe resources reserved for non-kubernetes components. // Currently only cpu and memory are supported. [default=none] // See http://kubernetes.io/docs/user-guide/compute-resources for more detail. - SystemReserved utilflag.ConfigurationMap + SystemReserved ConfigurationMap // A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs // that describe resources reserved for kubernetes system components. // Currently only cpu and memory are supported. [default=none] // See http://kubernetes.io/docs/user-guide/compute-resources for more detail. - KubeReserved utilflag.ConfigurationMap + KubeReserved ConfigurationMap // Default behaviour for kernel tuning ProtectKernelDefaults bool // If true, Kubelet ensures a set of iptables rules are present on host. @@ -863,3 +866,33 @@ type AdmissionPluginConfiguration struct { // +optional Configuration runtime.Object } + +type ConfigurationMap map[string]string + +func (m *ConfigurationMap) String() string { + pairs := []string{} + for k, v := range *m { + pairs = append(pairs, fmt.Sprintf("%s=%s", k, v)) + } + sort.Strings(pairs) + return strings.Join(pairs, ",") +} + +func (m *ConfigurationMap) Set(value string) error { + for _, s := range strings.Split(value, ",") { + if len(s) == 0 { + continue + } + arr := strings.SplitN(s, "=", 2) + if len(arr) == 2 { + (*m)[strings.TrimSpace(arr[0])] = strings.TrimSpace(arr[1]) + } else { + (*m)[strings.TrimSpace(arr[0])] = "" + } + } + return nil +} + +func (*ConfigurationMap) Type() string { + return "mapStringString" +} diff --git a/pkg/apis/componentconfig/v1alpha1/BUILD b/pkg/apis/componentconfig/v1alpha1/BUILD index d73db72a7c0..ba7e1832126 100644 --- a/pkg/apis/componentconfig/v1alpha1/BUILD +++ b/pkg/apis/componentconfig/v1alpha1/BUILD @@ -30,7 +30,6 @@ go_library( "//vendor:k8s.io/apimachinery/pkg/conversion", "//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime/schema", - "//vendor:k8s.io/apiserver/pkg/util/flag", ], ) diff --git a/pkg/apis/componentconfig/v1alpha1/zz_generated.conversion.go b/pkg/apis/componentconfig/v1alpha1/zz_generated.conversion.go index a12773af65a..9cfd1349009 100644 --- a/pkg/apis/componentconfig/v1alpha1/zz_generated.conversion.go +++ b/pkg/apis/componentconfig/v1alpha1/zz_generated.conversion.go @@ -23,7 +23,6 @@ package v1alpha1 import ( conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - flag "k8s.io/apiserver/pkg/util/flag" api "k8s.io/kubernetes/pkg/api" v1 "k8s.io/kubernetes/pkg/api/v1" componentconfig "k8s.io/kubernetes/pkg/apis/componentconfig" @@ -464,8 +463,8 @@ func autoConvert_v1alpha1_KubeletConfiguration_To_componentconfig_KubeletConfigu if err := api.Convert_Pointer_bool_To_bool(&in.EnableControllerAttachDetach, &out.EnableControllerAttachDetach, s); err != nil { return err } - out.SystemReserved = *(*flag.ConfigurationMap)(unsafe.Pointer(&in.SystemReserved)) - out.KubeReserved = *(*flag.ConfigurationMap)(unsafe.Pointer(&in.KubeReserved)) + out.SystemReserved = *(*componentconfig.ConfigurationMap)(unsafe.Pointer(&in.SystemReserved)) + out.KubeReserved = *(*componentconfig.ConfigurationMap)(unsafe.Pointer(&in.KubeReserved)) out.ProtectKernelDefaults = in.ProtectKernelDefaults if err := api.Convert_Pointer_bool_To_bool(&in.MakeIPTablesUtilChains, &out.MakeIPTablesUtilChains, s); err != nil { return err diff --git a/pkg/apis/componentconfig/zz_generated.deepcopy.go b/pkg/apis/componentconfig/zz_generated.deepcopy.go index 3c656bfe62a..deddd2abaf8 100644 --- a/pkg/apis/componentconfig/zz_generated.deepcopy.go +++ b/pkg/apis/componentconfig/zz_generated.deepcopy.go @@ -23,7 +23,6 @@ package componentconfig import ( conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - flag "k8s.io/apiserver/pkg/util/flag" api "k8s.io/kubernetes/pkg/api" reflect "reflect" ) @@ -208,14 +207,14 @@ func DeepCopy_componentconfig_KubeletConfiguration(in interface{}, out interface } if in.SystemReserved != nil { in, out := &in.SystemReserved, &out.SystemReserved - *out = make(flag.ConfigurationMap) + *out = make(ConfigurationMap) for key, val := range *in { (*out)[key] = val } } if in.KubeReserved != nil { in, out := &in.KubeReserved, &out.KubeReserved - *out = make(flag.ConfigurationMap) + *out = make(ConfigurationMap) for key, val := range *in { (*out)[key] = val } diff --git a/pkg/kubelet/BUILD b/pkg/kubelet/BUILD index 83aa50534a6..fca6520488d 100644 --- a/pkg/kubelet/BUILD +++ b/pkg/kubelet/BUILD @@ -124,7 +124,6 @@ go_library( "//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/wait", "//vendor:k8s.io/apiserver/pkg/util/feature", - "//vendor:k8s.io/apiserver/pkg/util/flag", "//vendor:k8s.io/client-go/kubernetes", "//vendor:k8s.io/client-go/util/clock", "//vendor:k8s.io/client-go/util/flowcontrol", diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go index c25e03986fe..efc55b611f9 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -42,7 +42,6 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/wait" utilfeature "k8s.io/apiserver/pkg/util/feature" - utilflag "k8s.io/apiserver/pkg/util/flag" "k8s.io/client-go/util/clock" "k8s.io/client-go/util/flowcontrol" "k8s.io/client-go/util/integer" @@ -2146,7 +2145,7 @@ func isSyncPodWorthy(event *pleg.PodLifecycleEvent) bool { // parseResourceList parses the given configuration map into an API // ResourceList or returns an error. -func parseResourceList(m utilflag.ConfigurationMap) (v1.ResourceList, error) { +func parseResourceList(m componentconfig.ConfigurationMap) (v1.ResourceList, error) { rl := make(v1.ResourceList) for k, v := range m { switch v1.ResourceName(k) { @@ -2170,7 +2169,7 @@ func parseResourceList(m utilflag.ConfigurationMap) (v1.ResourceList, error) { // ParseReservation parses the given kubelet- and system- reservations // configuration maps into an internal Reservation instance or returns an // error. -func ParseReservation(kubeReserved, systemReserved utilflag.ConfigurationMap) (*kubetypes.Reservation, error) { +func ParseReservation(kubeReserved, systemReserved componentconfig.ConfigurationMap) (*kubetypes.Reservation, error) { reservation := new(kubetypes.Reservation) if rl, err := parseResourceList(kubeReserved); err != nil { return nil, err