diff --git a/cmd/kubeadm/app/apis/kubeadm/BUILD b/cmd/kubeadm/app/apis/kubeadm/BUILD index bf5435c077..4465aeb649 100644 --- a/cmd/kubeadm/app/apis/kubeadm/BUILD +++ b/cmd/kubeadm/app/apis/kubeadm/BUILD @@ -15,7 +15,7 @@ go_library( ], importpath = "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm", deps = [ - "//pkg/kubelet/apis/kubeletconfig/v1alpha1:go_default_library", + "//pkg/kubelet/apis/kubeletconfig/v1beta1:go_default_library", "//pkg/proxy/apis/kubeproxyconfig/v1alpha1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/cmd/kubeadm/app/apis/kubeadm/fuzzer/BUILD b/cmd/kubeadm/app/apis/kubeadm/fuzzer/BUILD index 9adebea330..1682e9d033 100644 --- a/cmd/kubeadm/app/apis/kubeadm/fuzzer/BUILD +++ b/cmd/kubeadm/app/apis/kubeadm/fuzzer/BUILD @@ -11,7 +11,7 @@ go_library( importpath = "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/fuzzer", deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", - "//pkg/kubelet/apis/kubeletconfig/v1alpha1:go_default_library", + "//pkg/kubelet/apis/kubeletconfig/v1beta1:go_default_library", "//pkg/proxy/apis/kubeproxyconfig/v1alpha1:go_default_library", "//pkg/util/pointer:go_default_library", "//vendor/github.com/google/gofuzz:go_default_library", diff --git a/cmd/kubeadm/app/apis/kubeadm/fuzzer/fuzzer.go b/cmd/kubeadm/app/apis/kubeadm/fuzzer/fuzzer.go index e6fae01351..15fdcb3f13 100644 --- a/cmd/kubeadm/app/apis/kubeadm/fuzzer/fuzzer.go +++ b/cmd/kubeadm/app/apis/kubeadm/fuzzer/fuzzer.go @@ -24,7 +24,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" - kubeletconfigv1alpha1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1" + kubeletconfigv1beta1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1beta1" kubeproxyconfigv1alpha1 "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1" utilpointer "k8s.io/kubernetes/pkg/util/pointer" ) @@ -64,17 +64,17 @@ func Funcs(codecs runtimeserializer.CodecFactory) []interface{} { OperatorVersion: "v0.1.0", } obj.KubeletConfiguration = kubeadm.KubeletConfiguration{ - BaseConfig: &kubeletconfigv1alpha1.KubeletConfiguration{ + BaseConfig: &kubeletconfigv1beta1.KubeletConfiguration{ PodManifestPath: "foo", ClusterDNS: []string{"foo"}, ClusterDomain: "foo", - Authorization: kubeletconfigv1alpha1.KubeletAuthorization{Mode: "foo"}, - Authentication: kubeletconfigv1alpha1.KubeletAuthentication{ - X509: kubeletconfigv1alpha1.KubeletX509Authentication{ClientCAFile: "foo"}, + Authorization: kubeletconfigv1beta1.KubeletAuthorization{Mode: "foo"}, + Authentication: kubeletconfigv1beta1.KubeletAuthentication{ + X509: kubeletconfigv1beta1.KubeletX509Authentication{ClientCAFile: "foo"}, }, }, } - kubeletconfigv1alpha1.SetDefaults_KubeletConfiguration(obj.KubeletConfiguration.BaseConfig) + kubeletconfigv1beta1.SetDefaults_KubeletConfiguration(obj.KubeletConfiguration.BaseConfig) obj.KubeProxy = kubeadm.KubeProxy{ Config: &kubeproxyconfigv1alpha1.KubeProxyConfiguration{ FeatureGates: "foo", diff --git a/cmd/kubeadm/app/apis/kubeadm/types.go b/cmd/kubeadm/app/apis/kubeadm/types.go index 5cadab4494..972924bc6b 100644 --- a/cmd/kubeadm/app/apis/kubeadm/types.go +++ b/cmd/kubeadm/app/apis/kubeadm/types.go @@ -19,7 +19,7 @@ package kubeadm import ( v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - kubeletconfigv1alpha1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1" + kubeletconfigv1beta1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1beta1" kubeproxyconfigv1alpha1 "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1" ) @@ -239,7 +239,7 @@ type NodeConfiguration struct { // KubeletConfiguration contains elements describing initial remote configuration of kubelet. type KubeletConfiguration struct { - BaseConfig *kubeletconfigv1alpha1.KubeletConfiguration + BaseConfig *kubeletconfigv1beta1.KubeletConfiguration } // GetControlPlaneImageRepository returns name of image repository diff --git a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/BUILD b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/BUILD index 03e3826aa0..49981a4bcf 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/BUILD +++ b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/BUILD @@ -53,7 +53,7 @@ go_library( "//cmd/kubeadm/app/constants:go_default_library", "//cmd/kubeadm/app/features:go_default_library", "//pkg/kubelet/apis/kubeletconfig/scheme:go_default_library", - "//pkg/kubelet/apis/kubeletconfig/v1alpha1:go_default_library", + "//pkg/kubelet/apis/kubeletconfig/v1beta1:go_default_library", "//pkg/proxy/apis/kubeproxyconfig/scheme:go_default_library", "//pkg/proxy/apis/kubeproxyconfig/v1alpha1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults.go b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults.go index 3a5fb047f5..4e32ab202b 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults.go @@ -25,7 +25,7 @@ import ( "k8s.io/kubernetes/cmd/kubeadm/app/constants" "k8s.io/kubernetes/cmd/kubeadm/app/features" kubeletscheme "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/scheme" - kubeletconfigv1alpha1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1" + kubeletconfigv1beta1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1beta1" kubeproxyscheme "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/scheme" kubeproxyconfigv1alpha1 "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1" ) @@ -186,7 +186,7 @@ func SetDefaultsEtcdSelfHosted(obj *MasterConfiguration) { // SetDefaults_KubeletConfiguration assigns default values to kubelet func SetDefaults_KubeletConfiguration(obj *MasterConfiguration) { if obj.KubeletConfiguration.BaseConfig == nil { - obj.KubeletConfiguration.BaseConfig = &kubeletconfigv1alpha1.KubeletConfiguration{} + obj.KubeletConfiguration.BaseConfig = &kubeletconfigv1beta1.KubeletConfiguration{} } if obj.KubeletConfiguration.BaseConfig.PodManifestPath == "" { obj.KubeletConfiguration.BaseConfig.PodManifestPath = DefaultManifestsDir @@ -203,7 +203,7 @@ func SetDefaults_KubeletConfiguration(obj *MasterConfiguration) { obj.KubeletConfiguration.BaseConfig.ClusterDomain = DefaultServiceDNSDomain } if obj.KubeletConfiguration.BaseConfig.Authorization.Mode == "" { - obj.KubeletConfiguration.BaseConfig.Authorization.Mode = kubeletconfigv1alpha1.KubeletAuthorizationModeWebhook + obj.KubeletConfiguration.BaseConfig.Authorization.Mode = kubeletconfigv1beta1.KubeletAuthorizationModeWebhook } if obj.KubeletConfiguration.BaseConfig.Authentication.X509.ClientCAFile == "" { obj.KubeletConfiguration.BaseConfig.Authentication.X509.ClientCAFile = DefaultCACertPath diff --git a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/types.go b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/types.go index 826a24bb4a..83e980b4e2 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/types.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/types.go @@ -19,7 +19,7 @@ package v1alpha1 import ( v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - kubeletconfigv1alpha1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1" + kubeletconfigv1beta1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1beta1" kubeproxyconfigv1alpha1 "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1" ) @@ -231,7 +231,7 @@ type NodeConfiguration struct { // KubeletConfiguration contains elements describing initial remote configuration of kubelet. type KubeletConfiguration struct { - BaseConfig *kubeletconfigv1alpha1.KubeletConfiguration `json:"baseConfig,omitempty"` + BaseConfig *kubeletconfigv1beta1.KubeletConfiguration `json:"baseConfig,omitempty"` } // HostPathMount contains elements describing volumes that are mounted from the diff --git a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.conversion.go b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.conversion.go index ab3c1543d8..1030fbc29e 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.conversion.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.conversion.go @@ -28,7 +28,7 @@ import ( conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" kubeadm "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" - kubeletconfig_v1alpha1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1" + v1beta1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1beta1" kubeproxyconfig_v1alpha1 "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1" ) @@ -190,7 +190,7 @@ func Convert_kubeadm_KubeProxy_To_v1alpha1_KubeProxy(in *kubeadm.KubeProxy, out } func autoConvert_v1alpha1_KubeletConfiguration_To_kubeadm_KubeletConfiguration(in *KubeletConfiguration, out *kubeadm.KubeletConfiguration, s conversion.Scope) error { - out.BaseConfig = (*kubeletconfig_v1alpha1.KubeletConfiguration)(unsafe.Pointer(in.BaseConfig)) + out.BaseConfig = (*v1beta1.KubeletConfiguration)(unsafe.Pointer(in.BaseConfig)) return nil } @@ -200,7 +200,7 @@ func Convert_v1alpha1_KubeletConfiguration_To_kubeadm_KubeletConfiguration(in *K } func autoConvert_kubeadm_KubeletConfiguration_To_v1alpha1_KubeletConfiguration(in *kubeadm.KubeletConfiguration, out *KubeletConfiguration, s conversion.Scope) error { - out.BaseConfig = (*kubeletconfig_v1alpha1.KubeletConfiguration)(unsafe.Pointer(in.BaseConfig)) + out.BaseConfig = (*v1beta1.KubeletConfiguration)(unsafe.Pointer(in.BaseConfig)) return nil } diff --git a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.deepcopy.go b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.deepcopy.go index 9964e7a211..4eb4e00864 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.deepcopy.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.deepcopy.go @@ -23,7 +23,7 @@ package v1alpha1 import ( v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" - kubeletconfig_v1alpha1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1" + v1beta1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1beta1" kubeproxyconfig_v1alpha1 "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1" ) @@ -154,7 +154,7 @@ func (in *KubeletConfiguration) DeepCopyInto(out *KubeletConfiguration) { if *in == nil { *out = nil } else { - *out = new(kubeletconfig_v1alpha1.KubeletConfiguration) + *out = new(v1beta1.KubeletConfiguration) (*in).DeepCopyInto(*out) } } diff --git a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.defaults.go b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.defaults.go index cf5182a6cf..76d671477a 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.defaults.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.defaults.go @@ -22,7 +22,7 @@ package v1alpha1 import ( runtime "k8s.io/apimachinery/pkg/runtime" - kubeletconfig_v1alpha1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1" + v1beta1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1beta1" kubeproxyconfig_v1alpha1 "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1" ) @@ -41,7 +41,7 @@ func SetObjectDefaults_MasterConfiguration(in *MasterConfiguration) { kubeproxyconfig_v1alpha1.SetDefaults_KubeProxyConfiguration(in.KubeProxy.Config) } if in.KubeletConfiguration.BaseConfig != nil { - kubeletconfig_v1alpha1.SetDefaults_KubeletConfiguration(in.KubeletConfiguration.BaseConfig) + v1beta1.SetDefaults_KubeletConfiguration(in.KubeletConfiguration.BaseConfig) } } diff --git a/cmd/kubeadm/app/apis/kubeadm/validation/BUILD b/cmd/kubeadm/app/apis/kubeadm/validation/BUILD index 01f8f8a4fc..ec4eade4c5 100644 --- a/cmd/kubeadm/app/apis/kubeadm/validation/BUILD +++ b/cmd/kubeadm/app/apis/kubeadm/validation/BUILD @@ -35,7 +35,7 @@ go_test( importpath = "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation", deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", - "//pkg/kubelet/apis/kubeletconfig/v1alpha1:go_default_library", + "//pkg/kubelet/apis/kubeletconfig/v1beta1:go_default_library", "//pkg/proxy/apis/kubeproxyconfig/v1alpha1:go_default_library", "//pkg/util/pointer:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", diff --git a/cmd/kubeadm/app/apis/kubeadm/validation/validation_test.go b/cmd/kubeadm/app/apis/kubeadm/validation/validation_test.go index 13293a2f1b..331ad37609 100644 --- a/cmd/kubeadm/app/apis/kubeadm/validation/validation_test.go +++ b/cmd/kubeadm/app/apis/kubeadm/validation/validation_test.go @@ -28,7 +28,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" - kubeletconfigv1alpha1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1" + kubeletconfigv1beta1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1beta1" kubeproxyconfigv1alpha1 "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1" utilpointer "k8s.io/kubernetes/pkg/util/pointer" ) @@ -568,7 +568,7 @@ func TestValidateIgnorePreflightErrors(t *testing.T) { func TestValidateKubeletConfiguration(t *testing.T) { successCase := &kubeadm.KubeletConfiguration{ - BaseConfig: &kubeletconfigv1alpha1.KubeletConfiguration{ + BaseConfig: &kubeletconfigv1beta1.KubeletConfiguration{ CgroupsPerQOS: utilpointer.BoolPtr(true), EnforceNodeAllocatable: []string{"pods", "system-reserved", "kube-reserved"}, SystemCgroups: "", @@ -598,7 +598,7 @@ func TestValidateKubeletConfiguration(t *testing.T) { } errorCase := &kubeadm.KubeletConfiguration{ - BaseConfig: &kubeletconfigv1alpha1.KubeletConfiguration{ + BaseConfig: &kubeletconfigv1beta1.KubeletConfiguration{ CgroupsPerQOS: utilpointer.BoolPtr(false), EnforceNodeAllocatable: []string{"pods", "system-reserved", "kube-reserved", "illegal-key"}, SystemCgroups: "/", diff --git a/cmd/kubeadm/app/apis/kubeadm/zz_generated.deepcopy.go b/cmd/kubeadm/app/apis/kubeadm/zz_generated.deepcopy.go index 8f5f85f178..93775c57a2 100644 --- a/cmd/kubeadm/app/apis/kubeadm/zz_generated.deepcopy.go +++ b/cmd/kubeadm/app/apis/kubeadm/zz_generated.deepcopy.go @@ -23,7 +23,7 @@ package kubeadm import ( v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" - kubeletconfig_v1alpha1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1" + v1beta1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1beta1" v1alpha1 "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1" ) @@ -154,7 +154,7 @@ func (in *KubeletConfiguration) DeepCopyInto(out *KubeletConfiguration) { if *in == nil { *out = nil } else { - *out = new(kubeletconfig_v1alpha1.KubeletConfiguration) + *out = new(v1beta1.KubeletConfiguration) (*in).DeepCopyInto(*out) } } diff --git a/cmd/kubeadm/app/phases/kubelet/BUILD b/cmd/kubeadm/app/phases/kubelet/BUILD index 8da2b8243e..2798057ad5 100644 --- a/cmd/kubeadm/app/phases/kubelet/BUILD +++ b/cmd/kubeadm/app/phases/kubelet/BUILD @@ -13,7 +13,7 @@ go_library( "//cmd/kubeadm/app/util/kubeconfig:go_default_library", "//pkg/apis/rbac/v1:go_default_library", "//pkg/kubelet/apis/kubeletconfig/scheme:go_default_library", - "//pkg/kubelet/apis/kubeletconfig/v1alpha1:go_default_library", + "//pkg/kubelet/apis/kubeletconfig/v1beta1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/rbac/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", @@ -33,7 +33,7 @@ go_test( deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/constants:go_default_library", - "//pkg/kubelet/apis/kubeletconfig/v1alpha1:go_default_library", + "//pkg/kubelet/apis/kubeletconfig/v1beta1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/cmd/kubeadm/app/phases/kubelet/kubelet.go b/cmd/kubeadm/app/phases/kubelet/kubelet.go index aec20293b6..13afaaa332 100644 --- a/cmd/kubeadm/app/phases/kubelet/kubelet.go +++ b/cmd/kubeadm/app/phases/kubelet/kubelet.go @@ -38,7 +38,7 @@ import ( kubeconfigutil "k8s.io/kubernetes/cmd/kubeadm/app/util/kubeconfig" rbachelper "k8s.io/kubernetes/pkg/apis/rbac/v1" kubeletconfigscheme "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/scheme" - kubeletconfigv1alpha1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1" + kubeletconfigv1beta1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1beta1" ) // CreateBaseKubeletConfiguration creates base kubelet configuration for dynamic kubelet configuration feature. @@ -50,7 +50,7 @@ func CreateBaseKubeletConfiguration(cfg *kubeadmapi.MasterConfiguration, client if err != nil { return err } - kubeletBytes, err := kubeadmutil.MarshalToYamlForCodecs(cfg.KubeletConfiguration.BaseConfig, kubeletconfigv1alpha1.SchemeGroupVersion, *kubeletCodecs) + kubeletBytes, err := kubeadmutil.MarshalToYamlForCodecs(cfg.KubeletConfiguration.BaseConfig, kubeletconfigv1beta1.SchemeGroupVersion, *kubeletCodecs) if err != nil { return err } @@ -210,7 +210,7 @@ func WriteInitKubeletConfigToDiskOnMaster(cfg *kubeadmapi.MasterConfiguration) e return err } - kubeletBytes, err := kubeadmutil.MarshalToYamlForCodecs(cfg.KubeletConfiguration.BaseConfig, kubeletconfigv1alpha1.SchemeGroupVersion, *kubeletCodecs) + kubeletBytes, err := kubeadmutil.MarshalToYamlForCodecs(cfg.KubeletConfiguration.BaseConfig, kubeletconfigv1beta1.SchemeGroupVersion, *kubeletCodecs) if err != nil { return err } diff --git a/cmd/kubeadm/app/phases/kubelet/kubelet_test.go b/cmd/kubeadm/app/phases/kubelet/kubelet_test.go index 0b38320b71..9c6935e4a8 100644 --- a/cmd/kubeadm/app/phases/kubelet/kubelet_test.go +++ b/cmd/kubeadm/app/phases/kubelet/kubelet_test.go @@ -26,7 +26,7 @@ import ( core "k8s.io/client-go/testing" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" - kubeletconfigv1alpha1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1" + kubeletconfigv1beta1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1beta1" ) func TestCreateBaseKubeletConfiguration(t *testing.T) { @@ -35,7 +35,7 @@ func TestCreateBaseKubeletConfiguration(t *testing.T) { cfg := &kubeadmapi.MasterConfiguration{ NodeName: nodeName, KubeletConfiguration: kubeadmapi.KubeletConfiguration{ - BaseConfig: &kubeletconfigv1alpha1.KubeletConfiguration{ + BaseConfig: &kubeletconfigv1beta1.KubeletConfiguration{ TypeMeta: metav1.TypeMeta{ Kind: "KubeletConfiguration", }, diff --git a/cmd/kubelet/app/BUILD b/cmd/kubelet/app/BUILD index 814a7ce430..51199d9953 100644 --- a/cmd/kubelet/app/BUILD +++ b/cmd/kubelet/app/BUILD @@ -73,7 +73,7 @@ go_library( "//pkg/kubelet:go_default_library", "//pkg/kubelet/apis/kubeletconfig:go_default_library", "//pkg/kubelet/apis/kubeletconfig/scheme:go_default_library", - "//pkg/kubelet/apis/kubeletconfig/v1alpha1:go_default_library", + "//pkg/kubelet/apis/kubeletconfig/v1beta1:go_default_library", "//pkg/kubelet/cadvisor:go_default_library", "//pkg/kubelet/certificate:go_default_library", "//pkg/kubelet/certificate/bootstrap:go_default_library", diff --git a/cmd/kubelet/app/options/BUILD b/cmd/kubelet/app/options/BUILD index b33a0fd97d..ca8bf421fe 100644 --- a/cmd/kubelet/app/options/BUILD +++ b/cmd/kubelet/app/options/BUILD @@ -57,7 +57,7 @@ go_library( "//pkg/features:go_default_library", "//pkg/kubelet/apis/kubeletconfig:go_default_library", "//pkg/kubelet/apis/kubeletconfig/scheme:go_default_library", - "//pkg/kubelet/apis/kubeletconfig/v1alpha1:go_default_library", + "//pkg/kubelet/apis/kubeletconfig/v1beta1:go_default_library", "//pkg/kubelet/apis/kubeletconfig/validation:go_default_library", "//pkg/kubelet/config:go_default_library", "//pkg/kubelet/types:go_default_library", diff --git a/cmd/kubelet/app/options/options.go b/cmd/kubelet/app/options/options.go index a4d4aa7540..c7ca8b57a4 100644 --- a/cmd/kubelet/app/options/options.go +++ b/cmd/kubelet/app/options/options.go @@ -35,7 +35,7 @@ import ( "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig" kubeletscheme "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/scheme" - "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1" + "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1beta1" kubeletconfigvalidation "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/validation" "k8s.io/kubernetes/pkg/kubelet/config" kubetypes "k8s.io/kubernetes/pkg/kubelet/types" @@ -43,6 +43,8 @@ import ( utiltaints "k8s.io/kubernetes/pkg/util/taints" ) +const defaultRootDir = "/var/lib/kubelet" + // A configuration field should go in KubeletFlags instead of KubeletConfiguration if any of these are true: // - its value will never, or cannot safely be changed during the lifetime of a node // - its value cannot be safely shared between nodes at the same time (e.g. a hostname) @@ -221,7 +223,7 @@ func NewKubeletFlags() *KubeletFlags { EnableServer: true, ContainerRuntimeOptions: *NewContainerRuntimeOptions(), CertDirectory: "/var/lib/kubelet/pki", - RootDirectory: v1alpha1.DefaultRootDir, + RootDirectory: defaultRootDir, MasterServiceNamespace: metav1.NamespaceDefault, MaxContainerCount: -1, MaxPerPodContainerCount: 1, @@ -237,7 +239,7 @@ func NewKubeletFlags() *KubeletFlags { NodeLabels: make(map[string]string), VolumePluginDir: "/usr/libexec/kubernetes/kubelet-plugins/volume/exec/", RegisterNode: true, - SeccompProfileRoot: filepath.Join(v1alpha1.DefaultRootDir, "seccomp"), + SeccompProfileRoot: filepath.Join(defaultRootDir, "seccomp"), HostNetworkSources: []string{kubetypes.AllSource}, HostPIDSources: []string{kubetypes.AllSource}, HostIPCSources: []string{kubetypes.AllSource}, @@ -263,7 +265,7 @@ func NewKubeletConfiguration() (*kubeletconfig.KubeletConfiguration, error) { if err != nil { return nil, err } - versioned := &v1alpha1.KubeletConfiguration{} + versioned := &v1beta1.KubeletConfiguration{} scheme.Default(versioned) config := &kubeletconfig.KubeletConfiguration{} if err := scheme.Convert(versioned, config, nil); err != nil { @@ -328,6 +330,7 @@ func (s *KubeletServer) AddFlags(fs *pflag.FlagSet) { func (f *KubeletFlags) AddFlags(fs *pflag.FlagSet) { f.ContainerRuntimeOptions.AddFlags(fs) + fs.StringVar(&f.KubeletConfigFile, "config", f.KubeletConfigFile, "The Kubelet will load its initial configuration from this file. The path may be absolute or relative; relative paths start at the Kubelet's current working directory. Omit this flag to use the built-in default configuration values. Command-line flags override configuration from this file.") fs.StringVar(&f.KubeConfig, "kubeconfig", f.KubeConfig, "Path to a kubeconfig file, specifying how to connect to the API server. Providing --kubeconfig enables API server mode, omitting --kubeconfig enables standalone mode.") fs.MarkDeprecated("experimental-bootstrap-kubeconfig", "Use --bootstrap-kubeconfig") @@ -366,7 +369,6 @@ func (f *KubeletFlags) AddFlags(fs *pflag.FlagSet) { fs.Int32Var(&f.CAdvisorPort, "cadvisor-port", f.CAdvisorPort, "The port of the localhost cAdvisor endpoint (set to 0 to disable)") // EXPERIMENTAL FLAGS - fs.StringVar(&f.KubeletConfigFile, "config", f.KubeletConfigFile, " The Kubelet will load its initial configuration from this file. The path may be absolute or relative; relative paths start at the Kubelet's current working directory. Omit this flag to use the built-in default configuration values. Note that the format of the config file is still Alpha.") fs.StringVar(&f.ExperimentalMounterPath, "experimental-mounter-path", f.ExperimentalMounterPath, "[Experimental] Path of mounter binary. Leave empty to use the default mount.") fs.StringSliceVar(&f.AllowedUnsafeSysctls, "experimental-allowed-unsafe-sysctls", f.AllowedUnsafeSysctls, "Comma-separated whitelist of unsafe sysctls or unsafe sysctl patterns (ending in *). Use these at your own risk.") fs.BoolVar(&f.ExperimentalKernelMemcgNotification, "experimental-kernel-memcg-notification", f.ExperimentalKernelMemcgNotification, "If enabled, the kubelet will integrate with the kernel memcg notification to determine if memory eviction thresholds are crossed rather than polling.") diff --git a/cmd/kubelet/app/server.go b/cmd/kubelet/app/server.go index 21347dba65..2599cc99a7 100644 --- a/cmd/kubelet/app/server.go +++ b/cmd/kubelet/app/server.go @@ -66,7 +66,7 @@ import ( "k8s.io/kubernetes/pkg/kubelet" kubeletconfiginternal "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig" kubeletscheme "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/scheme" - kubeletconfigv1alpha1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1" + kubeletconfigv1beta1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1beta1" "k8s.io/kubernetes/pkg/kubelet/cadvisor" kubeletcertificate "k8s.io/kubernetes/pkg/kubelet/certificate" "k8s.io/kubernetes/pkg/kubelet/certificate/bootstrap" @@ -393,7 +393,7 @@ func setConfigz(cz *configz.Config, kc *kubeletconfiginternal.KubeletConfigurati if err != nil { return err } - versioned := kubeletconfigv1alpha1.KubeletConfiguration{} + versioned := kubeletconfigv1beta1.KubeletConfiguration{} if err := scheme.Convert(kc, &versioned, nil); err != nil { return err } diff --git a/hack/.golint_failures b/hack/.golint_failures index ef9835ded8..605082ad0e 100644 --- a/hack/.golint_failures +++ b/hack/.golint_failures @@ -164,7 +164,7 @@ pkg/kubelet/apis/cri/runtime/v1alpha2 pkg/kubelet/apis/cri/testing pkg/kubelet/apis/deviceplugin/v1alpha pkg/kubelet/apis/kubeletconfig -pkg/kubelet/apis/kubeletconfig/v1alpha1 +pkg/kubelet/apis/kubeletconfig/v1beta1 pkg/kubelet/cadvisor pkg/kubelet/cadvisor/testing pkg/kubelet/client diff --git a/pkg/generated/openapi/BUILD b/pkg/generated/openapi/BUILD index 0b46155942..18f3b65391 100644 --- a/pkg/generated/openapi/BUILD +++ b/pkg/generated/openapi/BUILD @@ -14,7 +14,7 @@ openapi_library( "pkg/apis/abac/v0", "pkg/apis/abac/v1beta1", "pkg/apis/componentconfig/v1alpha1", - "pkg/kubelet/apis/kubeletconfig/v1alpha1", + "pkg/kubelet/apis/kubeletconfig/v1beta1", "pkg/proxy/apis/kubeproxyconfig/v1alpha1", "pkg/version", ], diff --git a/pkg/kubelet/apis/kubeletconfig/BUILD b/pkg/kubelet/apis/kubeletconfig/BUILD index bb8b5d591d..2771cc9f02 100644 --- a/pkg/kubelet/apis/kubeletconfig/BUILD +++ b/pkg/kubelet/apis/kubeletconfig/BUILD @@ -36,7 +36,7 @@ filegroup( ":package-srcs", "//pkg/kubelet/apis/kubeletconfig/fuzzer:all-srcs", "//pkg/kubelet/apis/kubeletconfig/scheme:all-srcs", - "//pkg/kubelet/apis/kubeletconfig/v1alpha1:all-srcs", + "//pkg/kubelet/apis/kubeletconfig/v1beta1:all-srcs", "//pkg/kubelet/apis/kubeletconfig/validation:all-srcs", ], tags = ["automanaged"], diff --git a/pkg/kubelet/apis/kubeletconfig/fuzzer/BUILD b/pkg/kubelet/apis/kubeletconfig/fuzzer/BUILD index 2790330cff..b3368f005a 100644 --- a/pkg/kubelet/apis/kubeletconfig/fuzzer/BUILD +++ b/pkg/kubelet/apis/kubeletconfig/fuzzer/BUILD @@ -7,7 +7,7 @@ go_library( visibility = ["//visibility:public"], deps = [ "//pkg/kubelet/apis/kubeletconfig:go_default_library", - "//pkg/kubelet/apis/kubeletconfig/v1alpha1:go_default_library", + "//pkg/kubelet/apis/kubeletconfig/v1beta1:go_default_library", "//pkg/kubelet/qos:go_default_library", "//pkg/kubelet/types:go_default_library", "//pkg/master/ports:go_default_library", diff --git a/pkg/kubelet/apis/kubeletconfig/fuzzer/fuzzer.go b/pkg/kubelet/apis/kubeletconfig/fuzzer/fuzzer.go index b0d57b79ae..9727632827 100644 --- a/pkg/kubelet/apis/kubeletconfig/fuzzer/fuzzer.go +++ b/pkg/kubelet/apis/kubeletconfig/fuzzer/fuzzer.go @@ -24,7 +24,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig" - "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1" + "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1beta1" "k8s.io/kubernetes/pkg/kubelet/qos" kubetypes "k8s.io/kubernetes/pkg/kubelet/types" "k8s.io/kubernetes/pkg/master/ports" @@ -75,7 +75,7 @@ func Funcs(codecs runtimeserializer.CodecFactory) []interface{} { obj.ContentType = "application/vnd.kubernetes.protobuf" obj.KubeAPIQPS = 5 obj.KubeAPIBurst = 10 - obj.HairpinMode = v1alpha1.PromiscuousBridge + obj.HairpinMode = v1beta1.PromiscuousBridge obj.EvictionHard = map[string]string{ "memory.available": "100Mi", "nodefs.available": "10%", @@ -84,11 +84,11 @@ func Funcs(codecs runtimeserializer.CodecFactory) []interface{} { } obj.EvictionPressureTransitionPeriod = metav1.Duration{Duration: 5 * time.Minute} obj.MakeIPTablesUtilChains = true - obj.IPTablesMasqueradeBit = v1alpha1.DefaultIPTablesMasqueradeBit - obj.IPTablesDropBit = v1alpha1.DefaultIPTablesDropBit + obj.IPTablesMasqueradeBit = v1beta1.DefaultIPTablesMasqueradeBit + obj.IPTablesDropBit = v1beta1.DefaultIPTablesDropBit obj.CgroupsPerQOS = true obj.CgroupDriver = "cgroupfs" - obj.EnforceNodeAllocatable = v1alpha1.DefaultNodeAllocatableEnforcement + obj.EnforceNodeAllocatable = v1beta1.DefaultNodeAllocatableEnforcement obj.ManifestURLHeader = make(map[string][]string) }, } diff --git a/pkg/kubelet/apis/kubeletconfig/register.go b/pkg/kubelet/apis/kubeletconfig/register.go index 57d16d4476..fd5d5de5f7 100644 --- a/pkg/kubelet/apis/kubeletconfig/register.go +++ b/pkg/kubelet/apis/kubeletconfig/register.go @@ -27,7 +27,7 @@ var ( ) // GroupName is the group name use in this package -const GroupName = "kubeletconfig" +const GroupName = "kubelet.config.k8s.io" // SchemeGroupVersion is group version used to register these objects var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} diff --git a/pkg/kubelet/apis/kubeletconfig/scheme/BUILD b/pkg/kubelet/apis/kubeletconfig/scheme/BUILD index 1b318508c9..7e6910400d 100644 --- a/pkg/kubelet/apis/kubeletconfig/scheme/BUILD +++ b/pkg/kubelet/apis/kubeletconfig/scheme/BUILD @@ -7,7 +7,7 @@ go_library( visibility = ["//visibility:public"], deps = [ "//pkg/kubelet/apis/kubeletconfig:go_default_library", - "//pkg/kubelet/apis/kubeletconfig/v1alpha1:go_default_library", + "//pkg/kubelet/apis/kubeletconfig/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", ], diff --git a/pkg/kubelet/apis/kubeletconfig/scheme/scheme.go b/pkg/kubelet/apis/kubeletconfig/scheme/scheme.go index 9ccb9d39f8..2afd753128 100644 --- a/pkg/kubelet/apis/kubeletconfig/scheme/scheme.go +++ b/pkg/kubelet/apis/kubeletconfig/scheme/scheme.go @@ -20,7 +20,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/serializer" "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig" - "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1" + "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1beta1" ) // Utility functions for the Kubelet's kubeletconfig API group @@ -32,7 +32,7 @@ func NewSchemeAndCodecs() (*runtime.Scheme, *serializer.CodecFactory, error) { if err := kubeletconfig.AddToScheme(scheme); err != nil { return nil, nil, err } - if err := v1alpha1.AddToScheme(scheme); err != nil { + if err := v1beta1.AddToScheme(scheme); err != nil { return nil, nil, err } codecs := serializer.NewCodecFactory(scheme) diff --git a/pkg/kubelet/apis/kubeletconfig/types.go b/pkg/kubelet/apis/kubeletconfig/types.go index a51449a037..419a4a5b03 100644 --- a/pkg/kubelet/apis/kubeletconfig/types.go +++ b/pkg/kubelet/apis/kubeletconfig/types.go @@ -40,10 +40,7 @@ const ( // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -// A configuration field should go in KubeletFlags instead of KubeletConfiguration if -// its value cannot be safely shared between nodes at the same time (e.g. a hostname) -// In general, please try to avoid adding flags or configuration fields, -// we already have a confusingly large amount of them. +// KubeletConfiguration contains the configuration for the Kubelet type KubeletConfiguration struct { metav1.TypeMeta @@ -60,8 +57,7 @@ type KubeletConfiguration struct { HTTPCheckFrequency metav1.Duration // manifestURL is the URL for accessing the container manifest ManifestURL string - // manifestURLHeader is the HTTP header to use when accessing the manifest - // URL, with the key separated from the value with a ':', as in 'key:value' + // manifestURLHeader is a map of slices with HTTP headers to use when accessing the manifestURL ManifestURLHeader map[string][]string // address is the IP address for the Kubelet to serve on (set to 0.0.0.0 // for all interfaces) @@ -75,10 +71,9 @@ type KubeletConfiguration struct { // if any, concatenated after server cert). If tlsCertFile and // tlsPrivateKeyFile are not provided, a self-signed certificate // and key are generated for the public address and saved to the directory - // passed to certDir. + // passed to the Kubelet's --cert-dir flag. TLSCertFile string - // tlsPrivateKeyFile is the file containing x509 private key matching - // tlsCertFile. + // tlsPrivateKeyFile is the file containing x509 private key matching tlsCertFile TLSPrivateKeyFile string // TLSCipherSuites is the list of allowed cipher suites for the server. // Values are from tls package constants (https://golang.org/pkg/crypto/tls/#pkg-constants). @@ -90,19 +85,19 @@ type KubeletConfiguration struct { Authentication KubeletAuthentication // authorization specifies how requests to the Kubelet's server are authorized Authorization KubeletAuthorization - // registryPullQPS is the limit of registry pulls per second. If 0, - // unlimited. Set to 0 for no limit. Defaults to 5.0. + // registryPullQPS is the limit of registry pulls per second. + // Set to 0 for no limit. RegistryPullQPS int32 - // registryBurst is the maximum size of a bursty pulls, temporarily allows - // pulls to burst to this number, while still not exceeding registryQps. - // Only used if registryQPS > 0. + // registryBurst is the maximum size of bursty pulls, temporarily allows + // pulls to burst to this number, while still not exceeding registryPullQPS. + // Only used if registryPullQPS > 0. RegistryBurst int32 // eventRecordQPS is the maximum event creations per second. If 0, there // is no limit enforced. EventRecordQPS int32 - // eventBurst is the maximum size of a bursty event records, temporarily - // allows event records to burst to this number, while still not exceeding - // event-qps. Only used if eventQps > 0 + // eventBurst is the maximum size of a burst of event creations, temporarily + // allows event creations to burst to this number, while still not exceeding + // eventRecordQPS. Only used if eventRecordQPS > 0. EventBurst int32 // enableDebuggingHandlers enables server endpoints for log collection // and local running of containers and commands @@ -111,8 +106,7 @@ type KubeletConfiguration struct { EnableContentionProfiling bool // healthzPort is the port of the localhost healthz endpoint (set to 0 to disable) HealthzPort int32 - // healthzBindAddress is the IP address for the healthz server to serve - // on. + // healthzBindAddress is the IP address for the healthz server to serve on HealthzBindAddress string // oomScoreAdj is The oom-score-adj value for kubelet process. Values // must be within the range [-1000, 1000]. @@ -121,9 +115,9 @@ type KubeletConfiguration struct { // configure all containers to search this domain in addition to the // host's search domains. ClusterDomain string - // clusterDNS is a list of IP address for a cluster DNS server. If set, + // clusterDNS is a list of IP addresses for a cluster DNS server. If set, // kubelet will configure all containers to use this for DNS resolution - // instead of the host's DNS servers + // instead of the host's DNS servers. ClusterDNS []string // streamingConnectionIdleTimeout is the maximum time a streaming connection // can be idle before the connection is automatically closed. @@ -136,43 +130,41 @@ type KubeletConfiguration struct { // garbage collected. ImageMinimumGCAge metav1.Duration // imageGCHighThresholdPercent is the percent of disk usage after which - // image garbage collection is always run. + // image garbage collection is always run. The percent is calculated as + // this field value out of 100. ImageGCHighThresholdPercent int32 // imageGCLowThresholdPercent is the percent of disk usage before which // image garbage collection is never run. Lowest disk usage to garbage - // collect to. + // collect to. The percent is calculated as this field value out of 100. ImageGCLowThresholdPercent int32 // How frequently to calculate and cache volume disk usage for all pods VolumeStatsAggPeriod metav1.Duration - // KubeletCgroups is the absolute name of cgroups to isolate the kubelet in. - // +optional + // KubeletCgroups is the absolute name of cgroups to isolate the kubelet in KubeletCgroups string - // Enable QoS based Cgroup hierarchy: top level cgroups for QoS Classes - // And all Burstable and BestEffort pods are brought up under their - // specific top level QoS cgroup. - // +optional - CgroupsPerQOS bool - // driver that the kubelet uses to manipulate cgroups on the host (cgroupfs or systemd) - // +optional - CgroupDriver string // SystemCgroups is absolute name of cgroups in which to place // all non-kernel processes that are not already in a container. Empty // for no container. Rolling back the flag requires a reboot. - // +optional SystemCgroups string // CgroupRoot is the root cgroup to use for pods. // If CgroupsPerQOS is enabled, this is the root of the QoS cgroup hierarchy. - // +optional CgroupRoot string + // Enable QoS based Cgroup hierarchy: top level cgroups for QoS Classes + // And all Burstable and BestEffort pods are brought up under their + // specific top level QoS cgroup. + CgroupsPerQOS bool + // driver that the kubelet uses to manipulate cgroups on the host (cgroupfs or systemd) + CgroupDriver string // CPUManagerPolicy is the name of the policy to use. + // Requires the CPUManager feature gate to be enabled. CPUManagerPolicy string // CPU Manager reconciliation period. + // Requires the CPUManager feature gate to be enabled. CPUManagerReconcilePeriod metav1.Duration // runtimeRequestTimeout is the timeout for all runtime requests except long running // requests - pull, logs, exec and attach. - // +optional RuntimeRequestTimeout metav1.Duration - // How should the kubelet configure the container bridge for hairpin packets. + // hairpinMode specifies how the Kubelet should configure the container + // bridge for hairpin packets. // Setting this flag allows endpoints in a Service to loadbalance back to // themselves if they should try to access their own Service. Values: // "promiscuous-bridge": make the container bridge promiscuous. @@ -191,7 +183,7 @@ type KubeletConfiguration struct { // ResolverConfig is the resolver configuration file used as the basis // for the container DNS resolution configuration. ResolverConfig string - // cpuCFSQuota is Enable CPU CFS quota enforcement for containers that + // cpuCFSQuota enables CPU CFS quota enforcement for containers that // specify CPU limits CPUCFSQuota bool // maxOpenFiles is Number of files that can be opened by Kubelet process. @@ -203,52 +195,48 @@ type KubeletConfiguration struct { // kubeAPIBurst is the burst to allow while talking with kubernetes // apiserver KubeAPIBurst int32 - // serializeImagePulls when enabled, tells the Kubelet to pull images one - // at a time. We recommend *not* changing the default value on nodes that - // run docker daemon with version < 1.9 or an Aufs storage backend. - // Issue #10959 has more details. + // serializeImagePulls when enabled, tells the Kubelet to pull images one at a time. SerializeImagePulls bool // Map of signal names to quantities that defines hard eviction thresholds. For example: {"memory.available": "300Mi"}. - // +optional EvictionHard map[string]string // Map of signal names to quantities that defines soft eviction thresholds. For example: {"memory.available": "300Mi"}. - // +optional EvictionSoft map[string]string // Map of signal names to quantities that defines grace periods for each soft eviction signal. For example: {"memory.available": "30s"}. - // +optional EvictionSoftGracePeriod map[string]string // Duration for which the kubelet has to wait before transitioning out of an eviction pressure condition. - // +optional EvictionPressureTransitionPeriod metav1.Duration // Maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met. - // +optional EvictionMaxPodGracePeriod int32 // Map of signal names to quantities that defines minimum reclaims, which describe the minimum // amount of a given resource the kubelet will reclaim when performing a pod eviction while // that resource is under pressure. For example: {"imagefs.available": "2Gi"} - // +optional EvictionMinimumReclaim map[string]string - // Maximum number of pods per core. Cannot exceed MaxPods + // podsPerCore is the maximum number of pods per core. Cannot exceed MaxPods. + // If 0, this field is ignored. PodsPerCore int32 // enableControllerAttachDetach enables the Attach/Detach controller to // manage attachment/detachment of volumes scheduled to this node, and // disables kubelet from executing any attach/detach operations EnableControllerAttachDetach bool - // Default behaviour for kernel tuning + // protectKernelDefaults, if true, causes the Kubelet to error if kernel + // flags are not as it expects. Otherwise the Kubelet will attempt to modify + // kernel flags to match its expectation. ProtectKernelDefaults bool // If true, Kubelet ensures a set of iptables rules are present on host. // These rules will serve as utility for various components, e.g. kube-proxy. // The rules will be created based on IPTablesMasqueradeBit and IPTablesDropBit. MakeIPTablesUtilChains bool - // iptablesMasqueradeBit is the bit of the iptables fwmark space to use for SNAT - // Values must be within the range [0, 31]. - // Warning: Please match the value of corresponding parameter in kube-proxy + // iptablesMasqueradeBit is the bit of the iptables fwmark space to mark for SNAT + // Values must be within the range [0, 31]. Must be different from other mark bits. + // Warning: Please match the value of the corresponding parameter in kube-proxy. // TODO: clean up IPTablesMasqueradeBit in kube-proxy IPTablesMasqueradeBit int32 - // iptablesDropBit is the bit of the iptables fwmark space to use for dropping packets. Kubelet will ensure iptables mark and drop rules. - // Values must be within the range [0, 31]. Must be different from IPTablesMasqueradeBit + // iptablesDropBit is the bit of the iptables fwmark space to mark for dropping packets. + // Values must be within the range [0, 31]. Must be different from other mark bits. IPTablesDropBit int32 - // featureGates is a map of feature names to bools that enable or disable alpha/experimental features. + // featureGates is a map of feature names to bools that enable or disable alpha/experimental + // features. This field modifies piecemeal the built-in default values from + // "k8s.io/kubernetes/pkg/features/kube_features.go". FeatureGates map[string]bool // Tells the Kubelet to fail to start if swap is enabled on the node. FailSwapOn bool @@ -257,12 +245,12 @@ type KubeletConfiguration struct { // A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs // that describe resources reserved for non-kubernetes components. - // Currently only cpu and memory are supported. [default=none] + // Currently only cpu and memory are supported. // See http://kubernetes.io/docs/user-guide/compute-resources for more detail. SystemReserved map[string]string // A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs // that describe resources reserved for kubernetes system components. - // Currently cpu, memory and local ephemeral storage for root file system are supported. [default=none] + // Currently cpu, memory and local ephemeral storage for root file system are supported. // See http://kubernetes.io/docs/user-guide/compute-resources for more detail. KubeReserved map[string]string // This flag helps kubelet identify absolute name of top level cgroup used to enforce `SystemReserved` compute resource reservation for OS system daemons. diff --git a/pkg/kubelet/apis/kubeletconfig/v1alpha1/BUILD b/pkg/kubelet/apis/kubeletconfig/v1beta1/BUILD similarity index 98% rename from pkg/kubelet/apis/kubeletconfig/v1alpha1/BUILD rename to pkg/kubelet/apis/kubeletconfig/v1beta1/BUILD index bfab5b2758..e54e8b0a34 100644 --- a/pkg/kubelet/apis/kubeletconfig/v1alpha1/BUILD +++ b/pkg/kubelet/apis/kubeletconfig/v1beta1/BUILD @@ -16,7 +16,7 @@ go_library( "zz_generated.deepcopy.go", "zz_generated.defaults.go", ], - importpath = "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1", + importpath = "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1beta1", deps = [ "//pkg/kubelet/apis/kubeletconfig:go_default_library", "//pkg/kubelet/qos:go_default_library", diff --git a/pkg/kubelet/apis/kubeletconfig/v1alpha1/defaults.go b/pkg/kubelet/apis/kubeletconfig/v1beta1/defaults.go similarity index 82% rename from pkg/kubelet/apis/kubeletconfig/v1alpha1/defaults.go rename to pkg/kubelet/apis/kubeletconfig/v1beta1/defaults.go index 95de0b47c0..3c444fc76e 100644 --- a/pkg/kubelet/apis/kubeletconfig/v1alpha1/defaults.go +++ b/pkg/kubelet/apis/kubeletconfig/v1beta1/defaults.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package v1alpha1 +package v1beta1 import ( "time" @@ -28,8 +28,6 @@ import ( ) const ( - DefaultRootDir = "/var/lib/kubelet" - DefaultIPTablesMasqueradeBit = 14 DefaultIPTablesDropBit = 15 ) @@ -45,11 +43,26 @@ func addDefaultingFuncs(scheme *kruntime.Scheme) error { } func SetDefaults_KubeletConfiguration(obj *KubeletConfiguration) { + if obj.SyncFrequency == zeroDuration { + obj.SyncFrequency = metav1.Duration{Duration: 1 * time.Minute} + } + if obj.FileCheckFrequency == zeroDuration { + obj.FileCheckFrequency = metav1.Duration{Duration: 20 * time.Second} + } + if obj.HTTPCheckFrequency == zeroDuration { + obj.HTTPCheckFrequency = metav1.Duration{Duration: 20 * time.Second} + } + if obj.Address == "" { + obj.Address = "0.0.0.0" + } + if obj.Port == 0 { + obj.Port = ports.KubeletPort + } if obj.Authentication.Anonymous.Enabled == nil { - obj.Authentication.Anonymous.Enabled = boolVar(false) + obj.Authentication.Anonymous.Enabled = utilpointer.BoolPtr(false) } if obj.Authentication.Webhook.Enabled == nil { - obj.Authentication.Webhook.Enabled = boolVar(true) + obj.Authentication.Webhook.Enabled = utilpointer.BoolPtr(true) } if obj.Authentication.Webhook.CacheTTL == zeroDuration { obj.Authentication.Webhook.CacheTTL = metav1.Duration{Duration: 2 * time.Minute} @@ -63,57 +76,67 @@ func SetDefaults_KubeletConfiguration(obj *KubeletConfiguration) { if obj.Authorization.Webhook.CacheUnauthorizedTTL == zeroDuration { obj.Authorization.Webhook.CacheUnauthorizedTTL = metav1.Duration{Duration: 30 * time.Second} } - if obj.Address == "" { - obj.Address = "0.0.0.0" + if obj.RegistryPullQPS == nil { + obj.RegistryPullQPS = utilpointer.Int32Ptr(5) } - if obj.VolumeStatsAggPeriod == zeroDuration { - obj.VolumeStatsAggPeriod = metav1.Duration{Duration: time.Minute} + if obj.RegistryBurst == 0 { + obj.RegistryBurst = 10 } - if obj.RuntimeRequestTimeout == zeroDuration { - obj.RuntimeRequestTimeout = metav1.Duration{Duration: 2 * time.Minute} - } - if obj.CPUCFSQuota == nil { - obj.CPUCFSQuota = boolVar(true) + if obj.EventRecordQPS == nil { + obj.EventRecordQPS = utilpointer.Int32Ptr(5) } if obj.EventBurst == 0 { obj.EventBurst = 10 } - if obj.EventRecordQPS == nil { - temp := int32(5) - obj.EventRecordQPS = &temp - } - if obj.EnableControllerAttachDetach == nil { - obj.EnableControllerAttachDetach = boolVar(true) - } if obj.EnableDebuggingHandlers == nil { - obj.EnableDebuggingHandlers = boolVar(true) - } - if obj.FileCheckFrequency == zeroDuration { - obj.FileCheckFrequency = metav1.Duration{Duration: 20 * time.Second} - } - if obj.HealthzBindAddress == "" { - obj.HealthzBindAddress = "127.0.0.1" + obj.EnableDebuggingHandlers = utilpointer.BoolPtr(true) } if obj.HealthzPort == nil { obj.HealthzPort = utilpointer.Int32Ptr(10248) } - if obj.HTTPCheckFrequency == zeroDuration { - obj.HTTPCheckFrequency = metav1.Duration{Duration: 20 * time.Second} + if obj.HealthzBindAddress == "" { + obj.HealthzBindAddress = "127.0.0.1" + } + if obj.OOMScoreAdj == nil { + obj.OOMScoreAdj = utilpointer.Int32Ptr(int32(qos.KubeletOOMScoreAdj)) + } + if obj.StreamingConnectionIdleTimeout == zeroDuration { + obj.StreamingConnectionIdleTimeout = metav1.Duration{Duration: 4 * time.Hour} + } + if obj.NodeStatusUpdateFrequency == zeroDuration { + obj.NodeStatusUpdateFrequency = metav1.Duration{Duration: 10 * time.Second} } if obj.ImageMinimumGCAge == zeroDuration { obj.ImageMinimumGCAge = metav1.Duration{Duration: 2 * time.Minute} } if obj.ImageGCHighThresholdPercent == nil { // default is below docker's default dm.min_free_space of 90% - temp := int32(85) - obj.ImageGCHighThresholdPercent = &temp + obj.ImageGCHighThresholdPercent = utilpointer.Int32Ptr(85) } if obj.ImageGCLowThresholdPercent == nil { - temp := int32(80) - obj.ImageGCLowThresholdPercent = &temp + obj.ImageGCLowThresholdPercent = utilpointer.Int32Ptr(80) } - if obj.MaxOpenFiles == 0 { - obj.MaxOpenFiles = 1000000 + if obj.VolumeStatsAggPeriod == zeroDuration { + obj.VolumeStatsAggPeriod = metav1.Duration{Duration: time.Minute} + } + if obj.CgroupsPerQOS == nil { + obj.CgroupsPerQOS = utilpointer.BoolPtr(true) + } + if obj.CgroupDriver == "" { + obj.CgroupDriver = "cgroupfs" + } + if obj.CPUManagerPolicy == "" { + obj.CPUManagerPolicy = "none" + } + if obj.CPUManagerReconcilePeriod == zeroDuration { + // Keep the same as default NodeStatusUpdateFrequency + obj.CPUManagerReconcilePeriod = metav1.Duration{Duration: 10 * time.Second} + } + if obj.RuntimeRequestTimeout == zeroDuration { + obj.RuntimeRequestTimeout = metav1.Duration{Duration: 2 * time.Minute} + } + if obj.HairpinMode == "" { + obj.HairpinMode = PromiscuousBridge } if obj.MaxPods == 0 { obj.MaxPods = 110 @@ -122,53 +145,26 @@ func SetDefaults_KubeletConfiguration(obj *KubeletConfiguration) { temp := int64(-1) obj.PodPidsLimit = &temp } - if obj.NodeStatusUpdateFrequency == zeroDuration { - obj.NodeStatusUpdateFrequency = metav1.Duration{Duration: 10 * time.Second} - } - if obj.CPUManagerPolicy == "" { - obj.CPUManagerPolicy = "none" - } - if obj.CPUManagerReconcilePeriod == zeroDuration { - obj.CPUManagerReconcilePeriod = obj.NodeStatusUpdateFrequency - } - if obj.OOMScoreAdj == nil { - temp := int32(qos.KubeletOOMScoreAdj) - obj.OOMScoreAdj = &temp - } - if obj.Port == 0 { - obj.Port = ports.KubeletPort - } - if obj.RegistryBurst == 0 { - obj.RegistryBurst = 10 - } - if obj.RegistryPullQPS == nil { - temp := int32(5) - obj.RegistryPullQPS = &temp - } if obj.ResolverConfig == "" { obj.ResolverConfig = kubetypes.ResolvConfDefault } - if obj.SerializeImagePulls == nil { - obj.SerializeImagePulls = boolVar(true) + if obj.CPUCFSQuota == nil { + obj.CPUCFSQuota = utilpointer.BoolPtr(true) } - if obj.StreamingConnectionIdleTimeout == zeroDuration { - obj.StreamingConnectionIdleTimeout = metav1.Duration{Duration: 4 * time.Hour} - } - if obj.SyncFrequency == zeroDuration { - obj.SyncFrequency = metav1.Duration{Duration: 1 * time.Minute} + if obj.MaxOpenFiles == 0 { + obj.MaxOpenFiles = 1000000 } if obj.ContentType == "" { obj.ContentType = "application/vnd.kubernetes.protobuf" } if obj.KubeAPIQPS == nil { - temp := int32(5) - obj.KubeAPIQPS = &temp + obj.KubeAPIQPS = utilpointer.Int32Ptr(5) } if obj.KubeAPIBurst == 0 { obj.KubeAPIBurst = 10 } - if string(obj.HairpinMode) == "" { - obj.HairpinMode = PromiscuousBridge + if obj.SerializeImagePulls == nil { + obj.SerializeImagePulls = utilpointer.BoolPtr(true) } if obj.EvictionHard == nil { obj.EvictionHard = map[string]string{ @@ -181,36 +177,22 @@ func SetDefaults_KubeletConfiguration(obj *KubeletConfiguration) { if obj.EvictionPressureTransitionPeriod == zeroDuration { obj.EvictionPressureTransitionPeriod = metav1.Duration{Duration: 5 * time.Minute} } + if obj.EnableControllerAttachDetach == nil { + obj.EnableControllerAttachDetach = utilpointer.BoolPtr(true) + } if obj.MakeIPTablesUtilChains == nil { - obj.MakeIPTablesUtilChains = boolVar(true) + obj.MakeIPTablesUtilChains = utilpointer.BoolPtr(true) } if obj.IPTablesMasqueradeBit == nil { - temp := int32(DefaultIPTablesMasqueradeBit) - obj.IPTablesMasqueradeBit = &temp + obj.IPTablesMasqueradeBit = utilpointer.Int32Ptr(DefaultIPTablesMasqueradeBit) } if obj.IPTablesDropBit == nil { - temp := int32(DefaultIPTablesDropBit) - obj.IPTablesDropBit = &temp + obj.IPTablesDropBit = utilpointer.Int32Ptr(DefaultIPTablesDropBit) } if obj.FailSwapOn == nil { obj.FailSwapOn = utilpointer.BoolPtr(true) } - if obj.CgroupsPerQOS == nil { - temp := true - obj.CgroupsPerQOS = &temp - } - if obj.CgroupDriver == "" { - obj.CgroupDriver = "cgroupfs" - } if obj.EnforceNodeAllocatable == nil { obj.EnforceNodeAllocatable = DefaultNodeAllocatableEnforcement } } - -func boolVar(b bool) *bool { - return &b -} - -var ( - defaultCfg = KubeletConfiguration{} -) diff --git a/pkg/kubelet/apis/kubeletconfig/v1alpha1/doc.go b/pkg/kubelet/apis/kubeletconfig/v1beta1/doc.go similarity index 89% rename from pkg/kubelet/apis/kubeletconfig/v1alpha1/doc.go rename to pkg/kubelet/apis/kubeletconfig/v1beta1/doc.go index eb9b391369..862aae3ecf 100644 --- a/pkg/kubelet/apis/kubeletconfig/v1alpha1/doc.go +++ b/pkg/kubelet/apis/kubeletconfig/v1beta1/doc.go @@ -19,4 +19,4 @@ limitations under the License. // +k8s:openapi-gen=true // +k8s:defaulter-gen=TypeMeta -package v1alpha1 // import "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1" +package v1beta1 // import "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1beta1" diff --git a/pkg/kubelet/apis/kubeletconfig/v1alpha1/register.go b/pkg/kubelet/apis/kubeletconfig/v1beta1/register.go similarity index 95% rename from pkg/kubelet/apis/kubeletconfig/v1alpha1/register.go rename to pkg/kubelet/apis/kubeletconfig/v1beta1/register.go index 79347d1617..306fc55e09 100644 --- a/pkg/kubelet/apis/kubeletconfig/v1alpha1/register.go +++ b/pkg/kubelet/apis/kubeletconfig/v1beta1/register.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package v1alpha1 +package v1beta1 import ( "k8s.io/apimachinery/pkg/runtime" @@ -22,10 +22,10 @@ import ( ) // GroupName is the group name use in this package -const GroupName = "kubeletconfig" +const GroupName = "kubelet.config.k8s.io" // SchemeGroupVersion is group version used to register these objects -var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"} +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1beta1"} var ( // TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api. diff --git a/pkg/kubelet/apis/kubeletconfig/v1alpha1/types.go b/pkg/kubelet/apis/kubeletconfig/v1beta1/types.go similarity index 63% rename from pkg/kubelet/apis/kubeletconfig/v1alpha1/types.go rename to pkg/kubelet/apis/kubeletconfig/v1beta1/types.go index 6fcf0213db..4036baed3f 100644 --- a/pkg/kubelet/apis/kubeletconfig/v1alpha1/types.go +++ b/pkg/kubelet/apis/kubeletconfig/v1beta1/types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package v1alpha1 +package v1beta1 import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -40,136 +40,222 @@ const ( // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -// A configuration field should go in KubeletFlags instead of KubeletConfiguration if -// its value cannot be safely shared between nodes at the same time (e.g. a hostname) -// In general, please try to avoid adding flags or configuration fields, -// we already have a confusingly large amount of them. +// KubeletConfiguration contains the configuration for the Kubelet type KubeletConfiguration struct { metav1.TypeMeta `json:",inline"` // podManifestPath is the path to the directory containing pod manifests to - // run, or the path to a single manifest file - PodManifestPath string `json:"podManifestPath"` + // run, or the path to a single manifest file. + // Default: "" + // +optional + PodManifestPath string `json:"podManifestPath,omitempty"` // syncFrequency is the max period between synchronizing running - // containers and config - SyncFrequency metav1.Duration `json:"syncFrequency"` + // containers and config. + // Default: "1m" + // +optional + SyncFrequency metav1.Duration `json:"syncFrequency,omitempty"` // fileCheckFrequency is the duration between checking config files for // new data - FileCheckFrequency metav1.Duration `json:"fileCheckFrequency"` + // Default: "20s" + // +optional + FileCheckFrequency metav1.Duration `json:"fileCheckFrequency,omitempty"` // httpCheckFrequency is the duration between checking http for new data - HTTPCheckFrequency metav1.Duration `json:"httpCheckFrequency"` + // Default: "20s" + // +optional + HTTPCheckFrequency metav1.Duration `json:"httpCheckFrequency,omitempty"` // manifestURL is the URL for accessing the container manifest - ManifestURL string `json:"manifestURL"` - // manifestURLHeader is the HTTP header to use when accessing the manifest - // URL, with the key separated from the value with a ':', as in 'key:value' - ManifestURLHeader map[string][]string `json:"manifestURLHeader"` + // Default: "" + // +optional + ManifestURL string `json:"manifestURL,omitempty"` + // manifestURLHeader is a map of slices with HTTP headers to use when accessing the manifestURL + // Default: nil + // +optional + ManifestURLHeader map[string][]string `json:"manifestURLHeader,omitempty"` // address is the IP address for the Kubelet to serve on (set to 0.0.0.0 - // for all interfaces) - Address string `json:"address"` + // for all interfaces). + // Default: "0.0.0.0" + // +optional + Address string `json:"address,omitempty"` // port is the port for the Kubelet to serve on. - Port int32 `json:"port"` + // Default: 10250 + // +optional + Port int32 `json:"port,omitempty"` // readOnlyPort is the read-only port for the Kubelet to serve on with - // no authentication/authorization. Disabled (set to 0) by default. - ReadOnlyPort int32 `json:"readOnlyPort"` + // no authentication/authorization. + // Default: 0 (disabled) + // +optional + ReadOnlyPort int32 `json:"readOnlyPort,omitempty"` // tlsCertFile is the file containing x509 Certificate for HTTPS. (CA cert, // if any, concatenated after server cert). If tlsCertFile and // tlsPrivateKeyFile are not provided, a self-signed certificate // and key are generated for the public address and saved to the directory - // passed to certDir. - TLSCertFile string `json:"tlsCertFile"` - // tlsPrivateKeyFile is the file containing x509 private key matching - // tlsCertFile. - TLSPrivateKeyFile string `json:"tlsPrivateKeyFile"` + // passed to the Kubelet's --cert-dir flag. + // Default: "" + // +optional + TLSCertFile string `json:"tlsCertFile,omitempty"` + // tlsPrivateKeyFile is the file containing x509 private key matching tlsCertFile + // Default: "" + // +optional + TLSPrivateKeyFile string `json:"tlsPrivateKeyFile,omitempty"` // TLSCipherSuites is the list of allowed cipher suites for the server. // Values are from tls package constants (https://golang.org/pkg/crypto/tls/#pkg-constants). - TLSCipherSuites []string `json:"tlsCipherSuites"` + // Default: nil + // +optional + TLSCipherSuites []string `json:"tlsCipherSuites,omitempty"` // TLSMinVersion is the minimum TLS version supported. // Values are from tls package constants (https://golang.org/pkg/crypto/tls/#pkg-constants). - TLSMinVersion string `json:"tlsMinVersion"` + // Default: "" + // +optional + TLSMinVersion string `json:"tlsMinVersion,omitempty"` // authentication specifies how requests to the Kubelet's server are authenticated + // Defaults: + // anonymous: + // enabled: false + // webhook: + // enabled: true + // cacheTTL: "2m" + // +optional Authentication KubeletAuthentication `json:"authentication"` // authorization specifies how requests to the Kubelet's server are authorized + // Defaults: + // mode: Webhook + // webhook: + // cacheAuthorizedTTL: "5m" + // cacheUnauthorizedTTL: "30s" + // +optional Authorization KubeletAuthorization `json:"authorization"` - // registryPullQPS is the limit of registry pulls per second. If 0, - // unlimited. Set to 0 for no limit. Defaults to 5.0. - RegistryPullQPS *int32 `json:"registryPullQPS"` - // registryBurst is the maximum size of a bursty pulls, temporarily allows - // pulls to burst to this number, while still not exceeding registryQps. - // Only used if registryQPS > 0. - RegistryBurst int32 `json:"registryBurst"` + // registryPullQPS is the limit of registry pulls per second. + // Set to 0 for no limit. + // Default: 5 + // +optional + RegistryPullQPS *int32 `json:"registryPullQPS,omitempty"` + // registryBurst is the maximum size of bursty pulls, temporarily allows + // pulls to burst to this number, while still not exceeding registryPullQPS. + // Only used if registryPullQPS > 0. + // Default: 10 + // +optional + RegistryBurst int32 `json:"registryBurst,omitempty"` // eventRecordQPS is the maximum event creations per second. If 0, there // is no limit enforced. - EventRecordQPS *int32 `json:"eventRecordQPS"` - // eventBurst is the maximum size of a bursty event records, temporarily - // allows event records to burst to this number, while still not exceeding - // event-qps. Only used if eventQps > 0 - EventBurst int32 `json:"eventBurst"` + // Default: 5 + // +optional + EventRecordQPS *int32 `json:"eventRecordQPS,omitempty"` + // eventBurst is the maximum size of a burst of event creations, temporarily + // allows event creations to burst to this number, while still not exceeding + // eventRecordQPS. Only used if eventRecordQPS > 0. + // Default: 10 + // +optional + EventBurst int32 `json:"eventBurst,omitempty"` // enableDebuggingHandlers enables server endpoints for log collection // and local running of containers and commands - EnableDebuggingHandlers *bool `json:"enableDebuggingHandlers"` + // Default: true + // +optional + EnableDebuggingHandlers *bool `json:"enableDebuggingHandlers,omitempty"` // enableContentionProfiling enables lock contention profiling, if enableDebuggingHandlers is true. - EnableContentionProfiling bool `json:"enableContentionProfiling"` + // Default: false + // +optional + EnableContentionProfiling bool `json:"enableContentionProfiling,omitempty"` // healthzPort is the port of the localhost healthz endpoint (set to 0 to disable) - HealthzPort *int32 `json:"healthzPort"` - // healthzBindAddress is the IP address for the healthz server to serve - // on. - HealthzBindAddress string `json:"healthzBindAddress"` + // Default: 10248 + // +optional + HealthzPort *int32 `json:"healthzPort,omitempty"` + // healthzBindAddress is the IP address for the healthz server to serve on + // Default: "127.0.0.1" + // +optional + HealthzBindAddress string `json:"healthzBindAddress,omitempty"` // oomScoreAdj is The oom-score-adj value for kubelet process. Values // must be within the range [-1000, 1000]. - OOMScoreAdj *int32 `json:"oomScoreAdj"` + // Default: -999 + // +optional + OOMScoreAdj *int32 `json:"oomScoreAdj,omitempty"` // clusterDomain is the DNS domain for this cluster. If set, kubelet will // configure all containers to search this domain in addition to the // host's search domains. - ClusterDomain string `json:"clusterDomain"` - // clusterDNS is a list of IP address for the cluster DNS server. If set, + // Default: "" + // +optional + ClusterDomain string `json:"clusterDomain,omitempty"` + // clusterDNS is a list of IP addresses for the cluster DNS server. If set, // kubelet will configure all containers to use this for DNS resolution - // instead of the host's DNS servers - ClusterDNS []string `json:"clusterDNS"` + // instead of the host's DNS servers. + // Default: nil + // +optional + ClusterDNS []string `json:"clusterDNS,omitempty"` // streamingConnectionIdleTimeout is the maximum time a streaming connection // can be idle before the connection is automatically closed. - StreamingConnectionIdleTimeout metav1.Duration `json:"streamingConnectionIdleTimeout"` + // Default: "4h" + // +optional + StreamingConnectionIdleTimeout metav1.Duration `json:"streamingConnectionIdleTimeout,omitempty"` // nodeStatusUpdateFrequency is the frequency that kubelet posts node // status to master. Note: be cautious when changing the constant, it // must work with nodeMonitorGracePeriod in nodecontroller. - NodeStatusUpdateFrequency metav1.Duration `json:"nodeStatusUpdateFrequency"` + // Default: "10s" + // +optional + NodeStatusUpdateFrequency metav1.Duration `json:"nodeStatusUpdateFrequency,omitempty"` // imageMinimumGCAge is the minimum age for an unused image before it is // garbage collected. - ImageMinimumGCAge metav1.Duration `json:"imageMinimumGCAge"` + // Default: "2m" + // +optional + ImageMinimumGCAge metav1.Duration `json:"imageMinimumGCAge,omitempty"` // imageGCHighThresholdPercent is the percent of disk usage after which // image garbage collection is always run. The percent is calculated as // this field value out of 100. - ImageGCHighThresholdPercent *int32 `json:"imageGCHighThresholdPercent"` + // Default: 85 + // +optional + ImageGCHighThresholdPercent *int32 `json:"imageGCHighThresholdPercent,omitempty"` // imageGCLowThresholdPercent is the percent of disk usage before which // image garbage collection is never run. Lowest disk usage to garbage // collect to. The percent is calculated as this field value out of 100. - ImageGCLowThresholdPercent *int32 `json:"imageGCLowThresholdPercent"` + // Default: 80 + // +optional + ImageGCLowThresholdPercent *int32 `json:"imageGCLowThresholdPercent,omitempty"` // How frequently to calculate and cache volume disk usage for all pods - VolumeStatsAggPeriod metav1.Duration `json:"volumeStatsAggPeriod"` - // kubeletCgroups is the absolute name of cgroups to isolate the kubelet in. - KubeletCgroups string `json:"kubeletCgroups"` + // Default: "1m" + // +optional + VolumeStatsAggPeriod metav1.Duration `json:"volumeStatsAggPeriod,omitempty"` + // kubeletCgroups is the absolute name of cgroups to isolate the kubelet in + // Default: "" + // +optional + KubeletCgroups string `json:"kubeletCgroups,omitempty"` // systemCgroups is absolute name of cgroups in which to place // all non-kernel processes that are not already in a container. Empty // for no container. Rolling back the flag requires a reboot. - SystemCgroups string `json:"systemCgroups"` + // Default: "" + // +optional + SystemCgroups string `json:"systemCgroups,omitempty"` // cgroupRoot is the root cgroup to use for pods. This is handled by the // container runtime on a best effort basis. - CgroupRoot string `json:"cgroupRoot"` + // Default: "" + // +optional + CgroupRoot string `json:"cgroupRoot,omitempty"` // Enable QoS based Cgroup hierarchy: top level cgroups for QoS Classes // And all Burstable and BestEffort pods are brought up under their // specific top level QoS cgroup. // +optional + // Default: true + // +optional CgroupsPerQOS *bool `json:"cgroupsPerQOS,omitempty"` // driver that the kubelet uses to manipulate cgroups on the host (cgroupfs or systemd) // +optional + // Default: "cgroupfs" + // +optional CgroupDriver string `json:"cgroupDriver,omitempty"` // CPUManagerPolicy is the name of the policy to use. - CPUManagerPolicy string `json:"cpuManagerPolicy"` + // Requires the CPUManager feature gate to be enabled. + // Default: "none" + // +optional + CPUManagerPolicy string `json:"cpuManagerPolicy,omitempty"` // CPU Manager reconciliation period. - CPUManagerReconcilePeriod metav1.Duration `json:"cpuManagerReconcilePeriod"` + // Requires the CPUManager feature gate to be enabled. + // Default: "10s" + // +optional + CPUManagerReconcilePeriod metav1.Duration `json:"cpuManagerReconcilePeriod,omitempty"` // runtimeRequestTimeout is the timeout for all runtime requests except long running // requests - pull, logs, exec and attach. - RuntimeRequestTimeout metav1.Duration `json:"runtimeRequestTimeout"` - // How should the kubelet configure the container bridge for hairpin packets. + // Default: "2m" + // +optional + RuntimeRequestTimeout metav1.Duration `json:"runtimeRequestTimeout,omitempty"` + // hairpinMode specifies how the Kubelet should configure the container + // bridge for hairpin packets. // Setting this flag allows endpoints in a Service to loadbalance back to // themselves if they should try to access their own Service. Values: // "promiscuous-bridge": make the container bridge promiscuous. @@ -177,100 +263,166 @@ type KubeletConfiguration struct { // "none": do nothing. // Generally, one must set --hairpin-mode=hairpin-veth to achieve hairpin NAT, // because promiscuous-bridge assumes the existence of a container bridge named cbr0. - HairpinMode string `json:"hairpinMode"` + // Default: "promiscuous-bridge" + // +optional + HairpinMode string `json:"hairpinMode,omitempty"` // maxPods is the number of pods that can run on this Kubelet. - MaxPods int32 `json:"maxPods"` + // Default: 110 + // +optional + MaxPods int32 `json:"maxPods,omitempty"` // The CIDR to use for pod IP addresses, only used in standalone mode. // In cluster mode, this is obtained from the master. - PodCIDR string `json:"podCIDR"` + // Default: "" + // +optional + PodCIDR string `json:"podCIDR,omitempty"` // PodPidsLimit is the maximum number of pids in any pod. - PodPidsLimit *int64 `json:"podPidsLimit"` + // Requires the SupportPodPidsLimit feature gate to be enabled. + // Default: -1 + // +optional + PodPidsLimit *int64 `json:"podPidsLimit,omitempty"` // ResolverConfig is the resolver configuration file used as the basis // for the container DNS resolution configuration. - ResolverConfig string `json:"resolvConf"` - // cpuCFSQuota is Enable CPU CFS quota enforcement for containers that - // specify CPU limits - CPUCFSQuota *bool `json:"cpuCFSQuota"` + // Default: "/etc/resolv.conf" + // +optional + ResolverConfig string `json:"resolvConf,omitempty"` + // cpuCFSQuota enables CPU CFS quota enforcement for containers that + // specify CPU limits. + // Default: true + // +optional + CPUCFSQuota *bool `json:"cpuCFSQuota,omitempty"` // maxOpenFiles is Number of files that can be opened by Kubelet process. - MaxOpenFiles int64 `json:"maxOpenFiles"` + // Default: 1000000 + // +optional + MaxOpenFiles int64 `json:"maxOpenFiles,omitempty"` // contentType is contentType of requests sent to apiserver. - ContentType string `json:"contentType"` + // Default: "application/vnd.kubernetes.protobuf" + // +optional + ContentType string `json:"contentType,omitempty"` // kubeAPIQPS is the QPS to use while talking with kubernetes apiserver - KubeAPIQPS *int32 `json:"kubeAPIQPS"` - // kubeAPIBurst is the burst to allow while talking with kubernetes - // apiserver - KubeAPIBurst int32 `json:"kubeAPIBurst"` + // Default: 5 + // +optional + KubeAPIQPS *int32 `json:"kubeAPIQPS,omitempty"` + // kubeAPIBurst is the burst to allow while talking with kubernetes apiserver + // Default: 10 + // +optional + KubeAPIBurst int32 `json:"kubeAPIBurst,omitempty"` // serializeImagePulls when enabled, tells the Kubelet to pull images one // at a time. We recommend *not* changing the default value on nodes that // run docker daemon with version < 1.9 or an Aufs storage backend. // Issue #10959 has more details. - SerializeImagePulls *bool `json:"serializeImagePulls"` + // Default: true + // +optional + SerializeImagePulls *bool `json:"serializeImagePulls,omitempty"` // Map of signal names to quantities that defines hard eviction thresholds. For example: {"memory.available": "300Mi"}. + // To explicitly disable, pass a 0% or 100% threshold on an arbitrary resource. + // Default: + // memory.available: "100Mi" + // nodefs.available: "10%" + // nodefs.inodesFree: "5%" + // imagefs.available: "15%" // +optional EvictionHard map[string]string `json:"evictionHard,omitempty"` // Map of signal names to quantities that defines soft eviction thresholds. For example: {"memory.available": "300Mi"}. + // Default: nil // +optional EvictionSoft map[string]string `json:"evictionSoft,omitempty"` // Map of signal names to quantities that defines grace periods for each soft eviction signal. For example: {"memory.available": "30s"}. + // Default: nil // +optional - EvictionSoftGracePeriod map[string]string `json:"evictionSoftGracePeriod"` + EvictionSoftGracePeriod map[string]string `json:"evictionSoftGracePeriod,omitempty"` // Duration for which the kubelet has to wait before transitioning out of an eviction pressure condition. - EvictionPressureTransitionPeriod metav1.Duration `json:"evictionPressureTransitionPeriod"` + // Default: "5m" + // +optional + EvictionPressureTransitionPeriod metav1.Duration `json:"evictionPressureTransitionPeriod,omitempty"` // Maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met. - EvictionMaxPodGracePeriod int32 `json:"evictionMaxPodGracePeriod"` + // Default: 0 + // +optional + EvictionMaxPodGracePeriod int32 `json:"evictionMaxPodGracePeriod,omitempty"` // Map of signal names to quantities that defines minimum reclaims, which describe the minimum // amount of a given resource the kubelet will reclaim when performing a pod eviction while // that resource is under pressure. For example: {"imagefs.available": "2Gi"} // +optional - EvictionMinimumReclaim map[string]string `json:"evictionMinimumReclaim"` - // Maximum number of pods per core. Cannot exceed MaxPods - PodsPerCore int32 `json:"podsPerCore"` + // Default: nil + // +optional + EvictionMinimumReclaim map[string]string `json:"evictionMinimumReclaim,omitempty"` + // podsPerCore is the maximum number of pods per core. Cannot exceed MaxPods. + // If 0, this field is ignored. + // Default: 0 + // +optional + PodsPerCore int32 `json:"podsPerCore,omitempty"` // enableControllerAttachDetach enables the Attach/Detach controller to // manage attachment/detachment of volumes scheduled to this node, and // disables kubelet from executing any attach/detach operations - EnableControllerAttachDetach *bool `json:"enableControllerAttachDetach"` - // Default behaviour for kernel tuning - ProtectKernelDefaults bool `json:"protectKernelDefaults"` + // Default: true + // +optional + EnableControllerAttachDetach *bool `json:"enableControllerAttachDetach,omitempty"` + // protectKernelDefaults, if true, causes the Kubelet to error if kernel + // flags are not as it expects. Otherwise the Kubelet will attempt to modify + // kernel flags to match its expectation. + // Default: false + // +optional + ProtectKernelDefaults bool `json:"protectKernelDefaults,omitempty"` // If true, Kubelet ensures a set of iptables rules are present on host. // These rules will serve as utility rules for various components, e.g. KubeProxy. // The rules will be created based on IPTablesMasqueradeBit and IPTablesDropBit. - MakeIPTablesUtilChains *bool `json:"makeIPTablesUtilChains"` + // Default: true + // +optional + MakeIPTablesUtilChains *bool `json:"makeIPTablesUtilChains,omitempty"` // iptablesMasqueradeBit is the bit of the iptables fwmark space to mark for SNAT // Values must be within the range [0, 31]. Must be different from other mark bits. - // Warning: Please match the value of corresponding parameter in kube-proxy + // Warning: Please match the value of the corresponding parameter in kube-proxy. // TODO: clean up IPTablesMasqueradeBit in kube-proxy - IPTablesMasqueradeBit *int32 `json:"iptablesMasqueradeBit"` + // Default: 14 + // +optional + IPTablesMasqueradeBit *int32 `json:"iptablesMasqueradeBit,omitempty"` // iptablesDropBit is the bit of the iptables fwmark space to mark for dropping packets. // Values must be within the range [0, 31]. Must be different from other mark bits. - IPTablesDropBit *int32 `json:"iptablesDropBit"` - // featureGates is a map of feature names to bools that enable or disable alpha/experimental features. + // Default: 15 + // +optional + IPTablesDropBit *int32 `json:"iptablesDropBit,omitempty"` + // featureGates is a map of feature names to bools that enable or disable alpha/experimental + // features. This field modifies piecemeal the built-in default values from + // "k8s.io/kubernetes/pkg/features/kube_features.go". + // Default: nil + // +optional FeatureGates map[string]bool `json:"featureGates,omitempty"` - // Tells the Kubelet to fail to start if swap is enabled on the node. + // failSwapOn tells the Kubelet to fail to start if swap is enabled on the node. + // Default: true + // +optional FailSwapOn *bool `json:"failSwapOn,omitempty"` /* following flags are meant for Node Allocatable */ // A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs // that describe resources reserved for non-kubernetes components. - // Currently only cpu and memory are supported. [default=none] + // Currently only cpu and memory are supported. // See http://kubernetes.io/docs/user-guide/compute-resources for more detail. - SystemReserved map[string]string `json:"systemReserved"` + // Default: nil + // +optional + SystemReserved map[string]string `json:"systemReserved,omitempty"` // A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs // that describe resources reserved for kubernetes system components. - // Currently cpu, memory and local storage for root file system are supported. [default=none] + // Currently cpu, memory and local storage for root file system are supported. // See http://kubernetes.io/docs/user-guide/compute-resources for more detail. - KubeReserved map[string]string `json:"kubeReserved"` - + // Default: nil + // +optional + KubeReserved map[string]string `json:"kubeReserved,omitempty"` // This flag helps kubelet identify absolute name of top level cgroup used to enforce `SystemReserved` compute resource reservation for OS system daemons. // Refer to [Node Allocatable](https://git.k8s.io/community/contributors/design-proposals/node/node-allocatable.md) doc for more information. + // Default: "" + // +optional SystemReservedCgroup string `json:"systemReservedCgroup,omitempty"` // This flag helps kubelet identify absolute name of top level cgroup used to enforce `KubeReserved` compute resource reservation for Kubernetes node system daemons. // Refer to [Node Allocatable](https://git.k8s.io/community/contributors/design-proposals/node/node-allocatable.md) doc for more information. + // Default: "" + // +optional KubeReservedCgroup string `json:"kubeReservedCgroup,omitempty"` // This flag specifies the various Node Allocatable enforcements that Kubelet needs to perform. // This flag accepts a list of options. Acceptable options are `none`, `pods`, `system-reserved` & `kube-reserved`. // If `none` is specified, no other options may be specified. // Refer to [Node Allocatable](https://git.k8s.io/community/contributors/design-proposals/node/node-allocatable.md) doc for more information. + // Default: ["pods"] + // +optional EnforceNodeAllocatable []string `json:"enforceNodeAllocatable,omitempty"` } @@ -287,25 +439,32 @@ type KubeletAuthorization struct { // mode is the authorization mode to apply to requests to the kubelet server. // Valid values are AlwaysAllow and Webhook. // Webhook mode uses the SubjectAccessReview API to determine authorization. - Mode KubeletAuthorizationMode `json:"mode"` + // +optional + Mode KubeletAuthorizationMode `json:"mode,omitempty"` // webhook contains settings related to Webhook authorization. + // +optional Webhook KubeletWebhookAuthorization `json:"webhook"` } type KubeletWebhookAuthorization struct { // cacheAuthorizedTTL is the duration to cache 'authorized' responses from the webhook authorizer. - CacheAuthorizedTTL metav1.Duration `json:"cacheAuthorizedTTL"` + // +optional + CacheAuthorizedTTL metav1.Duration `json:"cacheAuthorizedTTL,omitempty"` // cacheUnauthorizedTTL is the duration to cache 'unauthorized' responses from the webhook authorizer. - CacheUnauthorizedTTL metav1.Duration `json:"cacheUnauthorizedTTL"` + // +optional + CacheUnauthorizedTTL metav1.Duration `json:"cacheUnauthorizedTTL,omitempty"` } type KubeletAuthentication struct { // x509 contains settings related to x509 client certificate authentication + // +optional X509 KubeletX509Authentication `json:"x509"` // webhook contains settings related to webhook bearer token authentication + // +optional Webhook KubeletWebhookAuthentication `json:"webhook"` // anonymous contains settings related to anonymous authentication + // +optional Anonymous KubeletAnonymousAuthentication `json:"anonymous"` } @@ -313,19 +472,23 @@ type KubeletX509Authentication struct { // clientCAFile is the path to a PEM-encoded certificate bundle. If set, any request presenting a client certificate // signed by one of the authorities in the bundle is authenticated with a username corresponding to the CommonName, // and groups corresponding to the Organization in the client certificate. - ClientCAFile string `json:"clientCAFile"` + // +optional + ClientCAFile string `json:"clientCAFile,omitempty"` } type KubeletWebhookAuthentication struct { // enabled allows bearer token authentication backed by the tokenreviews.authentication.k8s.io API - Enabled *bool `json:"enabled"` + // +optional + Enabled *bool `json:"enabled,omitempty"` // cacheTTL enables caching of authentication results - CacheTTL metav1.Duration `json:"cacheTTL"` + // +optional + CacheTTL metav1.Duration `json:"cacheTTL,omitempty"` } type KubeletAnonymousAuthentication struct { // enabled allows anonymous requests to the kubelet server. // Requests that are not rejected by another authentication method are treated as anonymous requests. // Anonymous requests have a username of system:anonymous, and a group name of system:unauthenticated. - Enabled *bool `json:"enabled"` + // +optional + Enabled *bool `json:"enabled,omitempty"` } diff --git a/pkg/kubelet/apis/kubeletconfig/v1alpha1/zz_generated.conversion.go b/pkg/kubelet/apis/kubeletconfig/v1beta1/zz_generated.conversion.go similarity index 53% rename from pkg/kubelet/apis/kubeletconfig/v1alpha1/zz_generated.conversion.go rename to pkg/kubelet/apis/kubeletconfig/v1beta1/zz_generated.conversion.go index f33896e5cb..9aa24cd212 100644 --- a/pkg/kubelet/apis/kubeletconfig/v1alpha1/zz_generated.conversion.go +++ b/pkg/kubelet/apis/kubeletconfig/v1beta1/zz_generated.conversion.go @@ -18,7 +18,7 @@ limitations under the License. // This file was autogenerated by conversion-gen. Do not edit it manually! -package v1alpha1 +package v1beta1 import ( unsafe "unsafe" @@ -37,110 +37,110 @@ func init() { // Public to allow building arbitrary schemes. func RegisterConversions(scheme *runtime.Scheme) error { return scheme.AddGeneratedConversionFuncs( - Convert_v1alpha1_KubeletAnonymousAuthentication_To_kubeletconfig_KubeletAnonymousAuthentication, - Convert_kubeletconfig_KubeletAnonymousAuthentication_To_v1alpha1_KubeletAnonymousAuthentication, - Convert_v1alpha1_KubeletAuthentication_To_kubeletconfig_KubeletAuthentication, - Convert_kubeletconfig_KubeletAuthentication_To_v1alpha1_KubeletAuthentication, - Convert_v1alpha1_KubeletAuthorization_To_kubeletconfig_KubeletAuthorization, - Convert_kubeletconfig_KubeletAuthorization_To_v1alpha1_KubeletAuthorization, - Convert_v1alpha1_KubeletConfiguration_To_kubeletconfig_KubeletConfiguration, - Convert_kubeletconfig_KubeletConfiguration_To_v1alpha1_KubeletConfiguration, - Convert_v1alpha1_KubeletWebhookAuthentication_To_kubeletconfig_KubeletWebhookAuthentication, - Convert_kubeletconfig_KubeletWebhookAuthentication_To_v1alpha1_KubeletWebhookAuthentication, - Convert_v1alpha1_KubeletWebhookAuthorization_To_kubeletconfig_KubeletWebhookAuthorization, - Convert_kubeletconfig_KubeletWebhookAuthorization_To_v1alpha1_KubeletWebhookAuthorization, - Convert_v1alpha1_KubeletX509Authentication_To_kubeletconfig_KubeletX509Authentication, - Convert_kubeletconfig_KubeletX509Authentication_To_v1alpha1_KubeletX509Authentication, + Convert_v1beta1_KubeletAnonymousAuthentication_To_kubeletconfig_KubeletAnonymousAuthentication, + Convert_kubeletconfig_KubeletAnonymousAuthentication_To_v1beta1_KubeletAnonymousAuthentication, + Convert_v1beta1_KubeletAuthentication_To_kubeletconfig_KubeletAuthentication, + Convert_kubeletconfig_KubeletAuthentication_To_v1beta1_KubeletAuthentication, + Convert_v1beta1_KubeletAuthorization_To_kubeletconfig_KubeletAuthorization, + Convert_kubeletconfig_KubeletAuthorization_To_v1beta1_KubeletAuthorization, + Convert_v1beta1_KubeletConfiguration_To_kubeletconfig_KubeletConfiguration, + Convert_kubeletconfig_KubeletConfiguration_To_v1beta1_KubeletConfiguration, + Convert_v1beta1_KubeletWebhookAuthentication_To_kubeletconfig_KubeletWebhookAuthentication, + Convert_kubeletconfig_KubeletWebhookAuthentication_To_v1beta1_KubeletWebhookAuthentication, + Convert_v1beta1_KubeletWebhookAuthorization_To_kubeletconfig_KubeletWebhookAuthorization, + Convert_kubeletconfig_KubeletWebhookAuthorization_To_v1beta1_KubeletWebhookAuthorization, + Convert_v1beta1_KubeletX509Authentication_To_kubeletconfig_KubeletX509Authentication, + Convert_kubeletconfig_KubeletX509Authentication_To_v1beta1_KubeletX509Authentication, ) } -func autoConvert_v1alpha1_KubeletAnonymousAuthentication_To_kubeletconfig_KubeletAnonymousAuthentication(in *KubeletAnonymousAuthentication, out *kubeletconfig.KubeletAnonymousAuthentication, s conversion.Scope) error { +func autoConvert_v1beta1_KubeletAnonymousAuthentication_To_kubeletconfig_KubeletAnonymousAuthentication(in *KubeletAnonymousAuthentication, out *kubeletconfig.KubeletAnonymousAuthentication, s conversion.Scope) error { if err := v1.Convert_Pointer_bool_To_bool(&in.Enabled, &out.Enabled, s); err != nil { return err } return nil } -// Convert_v1alpha1_KubeletAnonymousAuthentication_To_kubeletconfig_KubeletAnonymousAuthentication is an autogenerated conversion function. -func Convert_v1alpha1_KubeletAnonymousAuthentication_To_kubeletconfig_KubeletAnonymousAuthentication(in *KubeletAnonymousAuthentication, out *kubeletconfig.KubeletAnonymousAuthentication, s conversion.Scope) error { - return autoConvert_v1alpha1_KubeletAnonymousAuthentication_To_kubeletconfig_KubeletAnonymousAuthentication(in, out, s) +// Convert_v1beta1_KubeletAnonymousAuthentication_To_kubeletconfig_KubeletAnonymousAuthentication is an autogenerated conversion function. +func Convert_v1beta1_KubeletAnonymousAuthentication_To_kubeletconfig_KubeletAnonymousAuthentication(in *KubeletAnonymousAuthentication, out *kubeletconfig.KubeletAnonymousAuthentication, s conversion.Scope) error { + return autoConvert_v1beta1_KubeletAnonymousAuthentication_To_kubeletconfig_KubeletAnonymousAuthentication(in, out, s) } -func autoConvert_kubeletconfig_KubeletAnonymousAuthentication_To_v1alpha1_KubeletAnonymousAuthentication(in *kubeletconfig.KubeletAnonymousAuthentication, out *KubeletAnonymousAuthentication, s conversion.Scope) error { +func autoConvert_kubeletconfig_KubeletAnonymousAuthentication_To_v1beta1_KubeletAnonymousAuthentication(in *kubeletconfig.KubeletAnonymousAuthentication, out *KubeletAnonymousAuthentication, s conversion.Scope) error { if err := v1.Convert_bool_To_Pointer_bool(&in.Enabled, &out.Enabled, s); err != nil { return err } return nil } -// Convert_kubeletconfig_KubeletAnonymousAuthentication_To_v1alpha1_KubeletAnonymousAuthentication is an autogenerated conversion function. -func Convert_kubeletconfig_KubeletAnonymousAuthentication_To_v1alpha1_KubeletAnonymousAuthentication(in *kubeletconfig.KubeletAnonymousAuthentication, out *KubeletAnonymousAuthentication, s conversion.Scope) error { - return autoConvert_kubeletconfig_KubeletAnonymousAuthentication_To_v1alpha1_KubeletAnonymousAuthentication(in, out, s) +// Convert_kubeletconfig_KubeletAnonymousAuthentication_To_v1beta1_KubeletAnonymousAuthentication is an autogenerated conversion function. +func Convert_kubeletconfig_KubeletAnonymousAuthentication_To_v1beta1_KubeletAnonymousAuthentication(in *kubeletconfig.KubeletAnonymousAuthentication, out *KubeletAnonymousAuthentication, s conversion.Scope) error { + return autoConvert_kubeletconfig_KubeletAnonymousAuthentication_To_v1beta1_KubeletAnonymousAuthentication(in, out, s) } -func autoConvert_v1alpha1_KubeletAuthentication_To_kubeletconfig_KubeletAuthentication(in *KubeletAuthentication, out *kubeletconfig.KubeletAuthentication, s conversion.Scope) error { - if err := Convert_v1alpha1_KubeletX509Authentication_To_kubeletconfig_KubeletX509Authentication(&in.X509, &out.X509, s); err != nil { +func autoConvert_v1beta1_KubeletAuthentication_To_kubeletconfig_KubeletAuthentication(in *KubeletAuthentication, out *kubeletconfig.KubeletAuthentication, s conversion.Scope) error { + if err := Convert_v1beta1_KubeletX509Authentication_To_kubeletconfig_KubeletX509Authentication(&in.X509, &out.X509, s); err != nil { return err } - if err := Convert_v1alpha1_KubeletWebhookAuthentication_To_kubeletconfig_KubeletWebhookAuthentication(&in.Webhook, &out.Webhook, s); err != nil { + if err := Convert_v1beta1_KubeletWebhookAuthentication_To_kubeletconfig_KubeletWebhookAuthentication(&in.Webhook, &out.Webhook, s); err != nil { return err } - if err := Convert_v1alpha1_KubeletAnonymousAuthentication_To_kubeletconfig_KubeletAnonymousAuthentication(&in.Anonymous, &out.Anonymous, s); err != nil { + if err := Convert_v1beta1_KubeletAnonymousAuthentication_To_kubeletconfig_KubeletAnonymousAuthentication(&in.Anonymous, &out.Anonymous, s); err != nil { return err } return nil } -// Convert_v1alpha1_KubeletAuthentication_To_kubeletconfig_KubeletAuthentication is an autogenerated conversion function. -func Convert_v1alpha1_KubeletAuthentication_To_kubeletconfig_KubeletAuthentication(in *KubeletAuthentication, out *kubeletconfig.KubeletAuthentication, s conversion.Scope) error { - return autoConvert_v1alpha1_KubeletAuthentication_To_kubeletconfig_KubeletAuthentication(in, out, s) +// Convert_v1beta1_KubeletAuthentication_To_kubeletconfig_KubeletAuthentication is an autogenerated conversion function. +func Convert_v1beta1_KubeletAuthentication_To_kubeletconfig_KubeletAuthentication(in *KubeletAuthentication, out *kubeletconfig.KubeletAuthentication, s conversion.Scope) error { + return autoConvert_v1beta1_KubeletAuthentication_To_kubeletconfig_KubeletAuthentication(in, out, s) } -func autoConvert_kubeletconfig_KubeletAuthentication_To_v1alpha1_KubeletAuthentication(in *kubeletconfig.KubeletAuthentication, out *KubeletAuthentication, s conversion.Scope) error { - if err := Convert_kubeletconfig_KubeletX509Authentication_To_v1alpha1_KubeletX509Authentication(&in.X509, &out.X509, s); err != nil { +func autoConvert_kubeletconfig_KubeletAuthentication_To_v1beta1_KubeletAuthentication(in *kubeletconfig.KubeletAuthentication, out *KubeletAuthentication, s conversion.Scope) error { + if err := Convert_kubeletconfig_KubeletX509Authentication_To_v1beta1_KubeletX509Authentication(&in.X509, &out.X509, s); err != nil { return err } - if err := Convert_kubeletconfig_KubeletWebhookAuthentication_To_v1alpha1_KubeletWebhookAuthentication(&in.Webhook, &out.Webhook, s); err != nil { + if err := Convert_kubeletconfig_KubeletWebhookAuthentication_To_v1beta1_KubeletWebhookAuthentication(&in.Webhook, &out.Webhook, s); err != nil { return err } - if err := Convert_kubeletconfig_KubeletAnonymousAuthentication_To_v1alpha1_KubeletAnonymousAuthentication(&in.Anonymous, &out.Anonymous, s); err != nil { + if err := Convert_kubeletconfig_KubeletAnonymousAuthentication_To_v1beta1_KubeletAnonymousAuthentication(&in.Anonymous, &out.Anonymous, s); err != nil { return err } return nil } -// Convert_kubeletconfig_KubeletAuthentication_To_v1alpha1_KubeletAuthentication is an autogenerated conversion function. -func Convert_kubeletconfig_KubeletAuthentication_To_v1alpha1_KubeletAuthentication(in *kubeletconfig.KubeletAuthentication, out *KubeletAuthentication, s conversion.Scope) error { - return autoConvert_kubeletconfig_KubeletAuthentication_To_v1alpha1_KubeletAuthentication(in, out, s) +// Convert_kubeletconfig_KubeletAuthentication_To_v1beta1_KubeletAuthentication is an autogenerated conversion function. +func Convert_kubeletconfig_KubeletAuthentication_To_v1beta1_KubeletAuthentication(in *kubeletconfig.KubeletAuthentication, out *KubeletAuthentication, s conversion.Scope) error { + return autoConvert_kubeletconfig_KubeletAuthentication_To_v1beta1_KubeletAuthentication(in, out, s) } -func autoConvert_v1alpha1_KubeletAuthorization_To_kubeletconfig_KubeletAuthorization(in *KubeletAuthorization, out *kubeletconfig.KubeletAuthorization, s conversion.Scope) error { +func autoConvert_v1beta1_KubeletAuthorization_To_kubeletconfig_KubeletAuthorization(in *KubeletAuthorization, out *kubeletconfig.KubeletAuthorization, s conversion.Scope) error { out.Mode = kubeletconfig.KubeletAuthorizationMode(in.Mode) - if err := Convert_v1alpha1_KubeletWebhookAuthorization_To_kubeletconfig_KubeletWebhookAuthorization(&in.Webhook, &out.Webhook, s); err != nil { + if err := Convert_v1beta1_KubeletWebhookAuthorization_To_kubeletconfig_KubeletWebhookAuthorization(&in.Webhook, &out.Webhook, s); err != nil { return err } return nil } -// Convert_v1alpha1_KubeletAuthorization_To_kubeletconfig_KubeletAuthorization is an autogenerated conversion function. -func Convert_v1alpha1_KubeletAuthorization_To_kubeletconfig_KubeletAuthorization(in *KubeletAuthorization, out *kubeletconfig.KubeletAuthorization, s conversion.Scope) error { - return autoConvert_v1alpha1_KubeletAuthorization_To_kubeletconfig_KubeletAuthorization(in, out, s) +// Convert_v1beta1_KubeletAuthorization_To_kubeletconfig_KubeletAuthorization is an autogenerated conversion function. +func Convert_v1beta1_KubeletAuthorization_To_kubeletconfig_KubeletAuthorization(in *KubeletAuthorization, out *kubeletconfig.KubeletAuthorization, s conversion.Scope) error { + return autoConvert_v1beta1_KubeletAuthorization_To_kubeletconfig_KubeletAuthorization(in, out, s) } -func autoConvert_kubeletconfig_KubeletAuthorization_To_v1alpha1_KubeletAuthorization(in *kubeletconfig.KubeletAuthorization, out *KubeletAuthorization, s conversion.Scope) error { +func autoConvert_kubeletconfig_KubeletAuthorization_To_v1beta1_KubeletAuthorization(in *kubeletconfig.KubeletAuthorization, out *KubeletAuthorization, s conversion.Scope) error { out.Mode = KubeletAuthorizationMode(in.Mode) - if err := Convert_kubeletconfig_KubeletWebhookAuthorization_To_v1alpha1_KubeletWebhookAuthorization(&in.Webhook, &out.Webhook, s); err != nil { + if err := Convert_kubeletconfig_KubeletWebhookAuthorization_To_v1beta1_KubeletWebhookAuthorization(&in.Webhook, &out.Webhook, s); err != nil { return err } return nil } -// Convert_kubeletconfig_KubeletAuthorization_To_v1alpha1_KubeletAuthorization is an autogenerated conversion function. -func Convert_kubeletconfig_KubeletAuthorization_To_v1alpha1_KubeletAuthorization(in *kubeletconfig.KubeletAuthorization, out *KubeletAuthorization, s conversion.Scope) error { - return autoConvert_kubeletconfig_KubeletAuthorization_To_v1alpha1_KubeletAuthorization(in, out, s) +// Convert_kubeletconfig_KubeletAuthorization_To_v1beta1_KubeletAuthorization is an autogenerated conversion function. +func Convert_kubeletconfig_KubeletAuthorization_To_v1beta1_KubeletAuthorization(in *kubeletconfig.KubeletAuthorization, out *KubeletAuthorization, s conversion.Scope) error { + return autoConvert_kubeletconfig_KubeletAuthorization_To_v1beta1_KubeletAuthorization(in, out, s) } -func autoConvert_v1alpha1_KubeletConfiguration_To_kubeletconfig_KubeletConfiguration(in *KubeletConfiguration, out *kubeletconfig.KubeletConfiguration, s conversion.Scope) error { +func autoConvert_v1beta1_KubeletConfiguration_To_kubeletconfig_KubeletConfiguration(in *KubeletConfiguration, out *kubeletconfig.KubeletConfiguration, s conversion.Scope) error { out.PodManifestPath = in.PodManifestPath out.SyncFrequency = in.SyncFrequency out.FileCheckFrequency = in.FileCheckFrequency @@ -154,10 +154,10 @@ func autoConvert_v1alpha1_KubeletConfiguration_To_kubeletconfig_KubeletConfigura out.TLSPrivateKeyFile = in.TLSPrivateKeyFile out.TLSCipherSuites = *(*[]string)(unsafe.Pointer(&in.TLSCipherSuites)) out.TLSMinVersion = in.TLSMinVersion - if err := Convert_v1alpha1_KubeletAuthentication_To_kubeletconfig_KubeletAuthentication(&in.Authentication, &out.Authentication, s); err != nil { + if err := Convert_v1beta1_KubeletAuthentication_To_kubeletconfig_KubeletAuthentication(&in.Authentication, &out.Authentication, s); err != nil { return err } - if err := Convert_v1alpha1_KubeletAuthorization_To_kubeletconfig_KubeletAuthorization(&in.Authorization, &out.Authorization, s); err != nil { + if err := Convert_v1beta1_KubeletAuthorization_To_kubeletconfig_KubeletAuthorization(&in.Authorization, &out.Authorization, s); err != nil { return err } if err := v1.Convert_Pointer_int32_To_int32(&in.RegistryPullQPS, &out.RegistryPullQPS, s); err != nil { @@ -252,12 +252,12 @@ func autoConvert_v1alpha1_KubeletConfiguration_To_kubeletconfig_KubeletConfigura return nil } -// Convert_v1alpha1_KubeletConfiguration_To_kubeletconfig_KubeletConfiguration is an autogenerated conversion function. -func Convert_v1alpha1_KubeletConfiguration_To_kubeletconfig_KubeletConfiguration(in *KubeletConfiguration, out *kubeletconfig.KubeletConfiguration, s conversion.Scope) error { - return autoConvert_v1alpha1_KubeletConfiguration_To_kubeletconfig_KubeletConfiguration(in, out, s) +// Convert_v1beta1_KubeletConfiguration_To_kubeletconfig_KubeletConfiguration is an autogenerated conversion function. +func Convert_v1beta1_KubeletConfiguration_To_kubeletconfig_KubeletConfiguration(in *KubeletConfiguration, out *kubeletconfig.KubeletConfiguration, s conversion.Scope) error { + return autoConvert_v1beta1_KubeletConfiguration_To_kubeletconfig_KubeletConfiguration(in, out, s) } -func autoConvert_kubeletconfig_KubeletConfiguration_To_v1alpha1_KubeletConfiguration(in *kubeletconfig.KubeletConfiguration, out *KubeletConfiguration, s conversion.Scope) error { +func autoConvert_kubeletconfig_KubeletConfiguration_To_v1beta1_KubeletConfiguration(in *kubeletconfig.KubeletConfiguration, out *KubeletConfiguration, s conversion.Scope) error { out.PodManifestPath = in.PodManifestPath out.SyncFrequency = in.SyncFrequency out.FileCheckFrequency = in.FileCheckFrequency @@ -271,10 +271,10 @@ func autoConvert_kubeletconfig_KubeletConfiguration_To_v1alpha1_KubeletConfigura out.TLSPrivateKeyFile = in.TLSPrivateKeyFile out.TLSCipherSuites = *(*[]string)(unsafe.Pointer(&in.TLSCipherSuites)) out.TLSMinVersion = in.TLSMinVersion - if err := Convert_kubeletconfig_KubeletAuthentication_To_v1alpha1_KubeletAuthentication(&in.Authentication, &out.Authentication, s); err != nil { + if err := Convert_kubeletconfig_KubeletAuthentication_To_v1beta1_KubeletAuthentication(&in.Authentication, &out.Authentication, s); err != nil { return err } - if err := Convert_kubeletconfig_KubeletAuthorization_To_v1alpha1_KubeletAuthorization(&in.Authorization, &out.Authorization, s); err != nil { + if err := Convert_kubeletconfig_KubeletAuthorization_To_v1beta1_KubeletAuthorization(&in.Authorization, &out.Authorization, s); err != nil { return err } if err := v1.Convert_int32_To_Pointer_int32(&in.RegistryPullQPS, &out.RegistryPullQPS, s); err != nil { @@ -309,12 +309,12 @@ func autoConvert_kubeletconfig_KubeletConfiguration_To_v1alpha1_KubeletConfigura } out.VolumeStatsAggPeriod = in.VolumeStatsAggPeriod out.KubeletCgroups = in.KubeletCgroups + out.SystemCgroups = in.SystemCgroups + out.CgroupRoot = in.CgroupRoot if err := v1.Convert_bool_To_Pointer_bool(&in.CgroupsPerQOS, &out.CgroupsPerQOS, s); err != nil { return err } out.CgroupDriver = in.CgroupDriver - out.SystemCgroups = in.SystemCgroups - out.CgroupRoot = in.CgroupRoot out.CPUManagerPolicy = in.CPUManagerPolicy out.CPUManagerReconcilePeriod = in.CPUManagerReconcilePeriod out.RuntimeRequestTimeout = in.RuntimeRequestTimeout @@ -369,12 +369,12 @@ func autoConvert_kubeletconfig_KubeletConfiguration_To_v1alpha1_KubeletConfigura return nil } -// Convert_kubeletconfig_KubeletConfiguration_To_v1alpha1_KubeletConfiguration is an autogenerated conversion function. -func Convert_kubeletconfig_KubeletConfiguration_To_v1alpha1_KubeletConfiguration(in *kubeletconfig.KubeletConfiguration, out *KubeletConfiguration, s conversion.Scope) error { - return autoConvert_kubeletconfig_KubeletConfiguration_To_v1alpha1_KubeletConfiguration(in, out, s) +// Convert_kubeletconfig_KubeletConfiguration_To_v1beta1_KubeletConfiguration is an autogenerated conversion function. +func Convert_kubeletconfig_KubeletConfiguration_To_v1beta1_KubeletConfiguration(in *kubeletconfig.KubeletConfiguration, out *KubeletConfiguration, s conversion.Scope) error { + return autoConvert_kubeletconfig_KubeletConfiguration_To_v1beta1_KubeletConfiguration(in, out, s) } -func autoConvert_v1alpha1_KubeletWebhookAuthentication_To_kubeletconfig_KubeletWebhookAuthentication(in *KubeletWebhookAuthentication, out *kubeletconfig.KubeletWebhookAuthentication, s conversion.Scope) error { +func autoConvert_v1beta1_KubeletWebhookAuthentication_To_kubeletconfig_KubeletWebhookAuthentication(in *KubeletWebhookAuthentication, out *kubeletconfig.KubeletWebhookAuthentication, s conversion.Scope) error { if err := v1.Convert_Pointer_bool_To_bool(&in.Enabled, &out.Enabled, s); err != nil { return err } @@ -382,12 +382,12 @@ func autoConvert_v1alpha1_KubeletWebhookAuthentication_To_kubeletconfig_KubeletW return nil } -// Convert_v1alpha1_KubeletWebhookAuthentication_To_kubeletconfig_KubeletWebhookAuthentication is an autogenerated conversion function. -func Convert_v1alpha1_KubeletWebhookAuthentication_To_kubeletconfig_KubeletWebhookAuthentication(in *KubeletWebhookAuthentication, out *kubeletconfig.KubeletWebhookAuthentication, s conversion.Scope) error { - return autoConvert_v1alpha1_KubeletWebhookAuthentication_To_kubeletconfig_KubeletWebhookAuthentication(in, out, s) +// Convert_v1beta1_KubeletWebhookAuthentication_To_kubeletconfig_KubeletWebhookAuthentication is an autogenerated conversion function. +func Convert_v1beta1_KubeletWebhookAuthentication_To_kubeletconfig_KubeletWebhookAuthentication(in *KubeletWebhookAuthentication, out *kubeletconfig.KubeletWebhookAuthentication, s conversion.Scope) error { + return autoConvert_v1beta1_KubeletWebhookAuthentication_To_kubeletconfig_KubeletWebhookAuthentication(in, out, s) } -func autoConvert_kubeletconfig_KubeletWebhookAuthentication_To_v1alpha1_KubeletWebhookAuthentication(in *kubeletconfig.KubeletWebhookAuthentication, out *KubeletWebhookAuthentication, s conversion.Scope) error { +func autoConvert_kubeletconfig_KubeletWebhookAuthentication_To_v1beta1_KubeletWebhookAuthentication(in *kubeletconfig.KubeletWebhookAuthentication, out *KubeletWebhookAuthentication, s conversion.Scope) error { if err := v1.Convert_bool_To_Pointer_bool(&in.Enabled, &out.Enabled, s); err != nil { return err } @@ -395,49 +395,49 @@ func autoConvert_kubeletconfig_KubeletWebhookAuthentication_To_v1alpha1_KubeletW return nil } -// Convert_kubeletconfig_KubeletWebhookAuthentication_To_v1alpha1_KubeletWebhookAuthentication is an autogenerated conversion function. -func Convert_kubeletconfig_KubeletWebhookAuthentication_To_v1alpha1_KubeletWebhookAuthentication(in *kubeletconfig.KubeletWebhookAuthentication, out *KubeletWebhookAuthentication, s conversion.Scope) error { - return autoConvert_kubeletconfig_KubeletWebhookAuthentication_To_v1alpha1_KubeletWebhookAuthentication(in, out, s) +// Convert_kubeletconfig_KubeletWebhookAuthentication_To_v1beta1_KubeletWebhookAuthentication is an autogenerated conversion function. +func Convert_kubeletconfig_KubeletWebhookAuthentication_To_v1beta1_KubeletWebhookAuthentication(in *kubeletconfig.KubeletWebhookAuthentication, out *KubeletWebhookAuthentication, s conversion.Scope) error { + return autoConvert_kubeletconfig_KubeletWebhookAuthentication_To_v1beta1_KubeletWebhookAuthentication(in, out, s) } -func autoConvert_v1alpha1_KubeletWebhookAuthorization_To_kubeletconfig_KubeletWebhookAuthorization(in *KubeletWebhookAuthorization, out *kubeletconfig.KubeletWebhookAuthorization, s conversion.Scope) error { +func autoConvert_v1beta1_KubeletWebhookAuthorization_To_kubeletconfig_KubeletWebhookAuthorization(in *KubeletWebhookAuthorization, out *kubeletconfig.KubeletWebhookAuthorization, s conversion.Scope) error { out.CacheAuthorizedTTL = in.CacheAuthorizedTTL out.CacheUnauthorizedTTL = in.CacheUnauthorizedTTL return nil } -// Convert_v1alpha1_KubeletWebhookAuthorization_To_kubeletconfig_KubeletWebhookAuthorization is an autogenerated conversion function. -func Convert_v1alpha1_KubeletWebhookAuthorization_To_kubeletconfig_KubeletWebhookAuthorization(in *KubeletWebhookAuthorization, out *kubeletconfig.KubeletWebhookAuthorization, s conversion.Scope) error { - return autoConvert_v1alpha1_KubeletWebhookAuthorization_To_kubeletconfig_KubeletWebhookAuthorization(in, out, s) +// Convert_v1beta1_KubeletWebhookAuthorization_To_kubeletconfig_KubeletWebhookAuthorization is an autogenerated conversion function. +func Convert_v1beta1_KubeletWebhookAuthorization_To_kubeletconfig_KubeletWebhookAuthorization(in *KubeletWebhookAuthorization, out *kubeletconfig.KubeletWebhookAuthorization, s conversion.Scope) error { + return autoConvert_v1beta1_KubeletWebhookAuthorization_To_kubeletconfig_KubeletWebhookAuthorization(in, out, s) } -func autoConvert_kubeletconfig_KubeletWebhookAuthorization_To_v1alpha1_KubeletWebhookAuthorization(in *kubeletconfig.KubeletWebhookAuthorization, out *KubeletWebhookAuthorization, s conversion.Scope) error { +func autoConvert_kubeletconfig_KubeletWebhookAuthorization_To_v1beta1_KubeletWebhookAuthorization(in *kubeletconfig.KubeletWebhookAuthorization, out *KubeletWebhookAuthorization, s conversion.Scope) error { out.CacheAuthorizedTTL = in.CacheAuthorizedTTL out.CacheUnauthorizedTTL = in.CacheUnauthorizedTTL return nil } -// Convert_kubeletconfig_KubeletWebhookAuthorization_To_v1alpha1_KubeletWebhookAuthorization is an autogenerated conversion function. -func Convert_kubeletconfig_KubeletWebhookAuthorization_To_v1alpha1_KubeletWebhookAuthorization(in *kubeletconfig.KubeletWebhookAuthorization, out *KubeletWebhookAuthorization, s conversion.Scope) error { - return autoConvert_kubeletconfig_KubeletWebhookAuthorization_To_v1alpha1_KubeletWebhookAuthorization(in, out, s) +// Convert_kubeletconfig_KubeletWebhookAuthorization_To_v1beta1_KubeletWebhookAuthorization is an autogenerated conversion function. +func Convert_kubeletconfig_KubeletWebhookAuthorization_To_v1beta1_KubeletWebhookAuthorization(in *kubeletconfig.KubeletWebhookAuthorization, out *KubeletWebhookAuthorization, s conversion.Scope) error { + return autoConvert_kubeletconfig_KubeletWebhookAuthorization_To_v1beta1_KubeletWebhookAuthorization(in, out, s) } -func autoConvert_v1alpha1_KubeletX509Authentication_To_kubeletconfig_KubeletX509Authentication(in *KubeletX509Authentication, out *kubeletconfig.KubeletX509Authentication, s conversion.Scope) error { +func autoConvert_v1beta1_KubeletX509Authentication_To_kubeletconfig_KubeletX509Authentication(in *KubeletX509Authentication, out *kubeletconfig.KubeletX509Authentication, s conversion.Scope) error { out.ClientCAFile = in.ClientCAFile return nil } -// Convert_v1alpha1_KubeletX509Authentication_To_kubeletconfig_KubeletX509Authentication is an autogenerated conversion function. -func Convert_v1alpha1_KubeletX509Authentication_To_kubeletconfig_KubeletX509Authentication(in *KubeletX509Authentication, out *kubeletconfig.KubeletX509Authentication, s conversion.Scope) error { - return autoConvert_v1alpha1_KubeletX509Authentication_To_kubeletconfig_KubeletX509Authentication(in, out, s) +// Convert_v1beta1_KubeletX509Authentication_To_kubeletconfig_KubeletX509Authentication is an autogenerated conversion function. +func Convert_v1beta1_KubeletX509Authentication_To_kubeletconfig_KubeletX509Authentication(in *KubeletX509Authentication, out *kubeletconfig.KubeletX509Authentication, s conversion.Scope) error { + return autoConvert_v1beta1_KubeletX509Authentication_To_kubeletconfig_KubeletX509Authentication(in, out, s) } -func autoConvert_kubeletconfig_KubeletX509Authentication_To_v1alpha1_KubeletX509Authentication(in *kubeletconfig.KubeletX509Authentication, out *KubeletX509Authentication, s conversion.Scope) error { +func autoConvert_kubeletconfig_KubeletX509Authentication_To_v1beta1_KubeletX509Authentication(in *kubeletconfig.KubeletX509Authentication, out *KubeletX509Authentication, s conversion.Scope) error { out.ClientCAFile = in.ClientCAFile return nil } -// Convert_kubeletconfig_KubeletX509Authentication_To_v1alpha1_KubeletX509Authentication is an autogenerated conversion function. -func Convert_kubeletconfig_KubeletX509Authentication_To_v1alpha1_KubeletX509Authentication(in *kubeletconfig.KubeletX509Authentication, out *KubeletX509Authentication, s conversion.Scope) error { - return autoConvert_kubeletconfig_KubeletX509Authentication_To_v1alpha1_KubeletX509Authentication(in, out, s) +// Convert_kubeletconfig_KubeletX509Authentication_To_v1beta1_KubeletX509Authentication is an autogenerated conversion function. +func Convert_kubeletconfig_KubeletX509Authentication_To_v1beta1_KubeletX509Authentication(in *kubeletconfig.KubeletX509Authentication, out *KubeletX509Authentication, s conversion.Scope) error { + return autoConvert_kubeletconfig_KubeletX509Authentication_To_v1beta1_KubeletX509Authentication(in, out, s) } diff --git a/pkg/kubelet/apis/kubeletconfig/v1alpha1/zz_generated.deepcopy.go b/pkg/kubelet/apis/kubeletconfig/v1beta1/zz_generated.deepcopy.go similarity index 99% rename from pkg/kubelet/apis/kubeletconfig/v1alpha1/zz_generated.deepcopy.go rename to pkg/kubelet/apis/kubeletconfig/v1beta1/zz_generated.deepcopy.go index 98e8b9fa0f..14811c68d6 100644 --- a/pkg/kubelet/apis/kubeletconfig/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/kubelet/apis/kubeletconfig/v1beta1/zz_generated.deepcopy.go @@ -18,7 +18,7 @@ limitations under the License. // This file was autogenerated by deepcopy-gen. Do not edit it manually! -package v1alpha1 +package v1beta1 import ( runtime "k8s.io/apimachinery/pkg/runtime" diff --git a/pkg/kubelet/apis/kubeletconfig/v1alpha1/zz_generated.defaults.go b/pkg/kubelet/apis/kubeletconfig/v1beta1/zz_generated.defaults.go similarity index 98% rename from pkg/kubelet/apis/kubeletconfig/v1alpha1/zz_generated.defaults.go rename to pkg/kubelet/apis/kubeletconfig/v1beta1/zz_generated.defaults.go index 739dadbd60..a78c8907a0 100644 --- a/pkg/kubelet/apis/kubeletconfig/v1alpha1/zz_generated.defaults.go +++ b/pkg/kubelet/apis/kubeletconfig/v1beta1/zz_generated.defaults.go @@ -18,7 +18,7 @@ limitations under the License. // This file was autogenerated by defaulter-gen. Do not edit it manually! -package v1alpha1 +package v1beta1 import ( runtime "k8s.io/apimachinery/pkg/runtime" diff --git a/pkg/kubelet/kubeletconfig/checkpoint/BUILD b/pkg/kubelet/kubeletconfig/checkpoint/BUILD index 96ac5db59d..3de4cd1daf 100644 --- a/pkg/kubelet/kubeletconfig/checkpoint/BUILD +++ b/pkg/kubelet/kubeletconfig/checkpoint/BUILD @@ -18,7 +18,7 @@ go_test( deps = [ "//pkg/kubelet/apis/kubeletconfig:go_default_library", "//pkg/kubelet/apis/kubeletconfig/scheme:go_default_library", - "//pkg/kubelet/apis/kubeletconfig/v1alpha1:go_default_library", + "//pkg/kubelet/apis/kubeletconfig/v1beta1:go_default_library", "//pkg/kubelet/kubeletconfig/util/codec:go_default_library", "//pkg/kubelet/kubeletconfig/util/test:go_default_library", "//vendor/github.com/davecgh/go-spew/spew:go_default_library", diff --git a/pkg/kubelet/kubeletconfig/checkpoint/configmap.go b/pkg/kubelet/kubeletconfig/checkpoint/configmap.go index 7472384889..076e7ed33d 100644 --- a/pkg/kubelet/kubeletconfig/checkpoint/configmap.go +++ b/pkg/kubelet/kubeletconfig/checkpoint/configmap.go @@ -65,7 +65,6 @@ func (c *configMapCheckpoint) Parse() (*kubeletconfig.KubeletConfiguration, erro return nil, fmt.Errorf(emptyCfgErr) } - // TODO(mtaufen): Once the KubeletConfiguration type is decomposed, extend this to a key for each sub-object config, ok := c.configMap.Data[configMapConfigKey] if !ok { return nil, fmt.Errorf("key %q not found in ConfigMap", configMapConfigKey) diff --git a/pkg/kubelet/kubeletconfig/checkpoint/configmap_test.go b/pkg/kubelet/kubeletconfig/checkpoint/configmap_test.go index 98d8a37eb2..a60f34aa6b 100644 --- a/pkg/kubelet/kubeletconfig/checkpoint/configmap_test.go +++ b/pkg/kubelet/kubeletconfig/checkpoint/configmap_test.go @@ -28,7 +28,7 @@ import ( "k8s.io/apimachinery/pkg/types" "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig" kubeletscheme "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/scheme" - kubeletconfigv1alpha1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1" + kubeletconfigv1beta1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1beta1" utiltest "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/test" ) @@ -94,7 +94,7 @@ func TestConfigMapCheckpointParse(t *testing.T) { } // get the built-in default configuration - external := &kubeletconfigv1alpha1.KubeletConfiguration{} + external := &kubeletconfigv1beta1.KubeletConfiguration{} kubeletScheme.Default(external) defaultConfig := &kubeletconfig.KubeletConfiguration{} err = kubeletScheme.Convert(external, defaultConfig, nil) @@ -119,19 +119,19 @@ func TestConfigMapCheckpointParse(t *testing.T) { "kubelet": "{*"}}, nil, "failed to decode"}, // invalid object {"missing kind", &apiv1.ConfigMap{Data: map[string]string{ - "kubelet": `{"apiVersion":"kubeletconfig/v1alpha1"}`}}, nil, "failed to decode"}, + "kubelet": `{"apiVersion":"kubelet.config.k8s.io/v1beta1"}`}}, nil, "failed to decode"}, {"missing version", &apiv1.ConfigMap{Data: map[string]string{ "kubelet": `{"kind":"KubeletConfiguration"}`}}, nil, "failed to decode"}, {"unregistered kind", &apiv1.ConfigMap{Data: map[string]string{ - "kubelet": `{"kind":"BogusKind","apiVersion":"kubeletconfig/v1alpha1"}`}}, nil, "failed to decode"}, + "kubelet": `{"kind":"BogusKind","apiVersion":"kubelet.config.k8s.io/v1beta1"}`}}, nil, "failed to decode"}, {"unregistered version", &apiv1.ConfigMap{Data: map[string]string{ "kubelet": `{"kind":"KubeletConfiguration","apiVersion":"bogusversion"}`}}, nil, "failed to decode"}, // empty object with correct kind and version should result in the defaults for that kind and version {"default from yaml", &apiv1.ConfigMap{Data: map[string]string{ "kubelet": `kind: KubeletConfiguration -apiVersion: kubeletconfig/v1alpha1`}}, defaultConfig, ""}, +apiVersion: kubelet.config.k8s.io/v1beta1`}}, defaultConfig, ""}, {"default from json", &apiv1.ConfigMap{Data: map[string]string{ - "kubelet": `{"kind":"KubeletConfiguration","apiVersion":"kubeletconfig/v1alpha1"}`}}, defaultConfig, ""}, + "kubelet": `{"kind":"KubeletConfiguration","apiVersion":"kubelet.config.k8s.io/v1beta1"}`}}, defaultConfig, ""}, } for _, c := range cases { cpt := &configMapCheckpoint{kubeletCodecs, c.cm} diff --git a/pkg/kubelet/kubeletconfig/configfiles/BUILD b/pkg/kubelet/kubeletconfig/configfiles/BUILD index db3b6cd824..6754ddfc71 100644 --- a/pkg/kubelet/kubeletconfig/configfiles/BUILD +++ b/pkg/kubelet/kubeletconfig/configfiles/BUILD @@ -40,7 +40,7 @@ go_test( deps = [ "//pkg/kubelet/apis/kubeletconfig:go_default_library", "//pkg/kubelet/apis/kubeletconfig/scheme:go_default_library", - "//pkg/kubelet/apis/kubeletconfig/v1alpha1:go_default_library", + "//pkg/kubelet/apis/kubeletconfig/v1beta1:go_default_library", "//pkg/kubelet/kubeletconfig/util/files:go_default_library", "//pkg/kubelet/kubeletconfig/util/test:go_default_library", "//pkg/util/filesystem:go_default_library", diff --git a/pkg/kubelet/kubeletconfig/configfiles/configfiles_test.go b/pkg/kubelet/kubeletconfig/configfiles/configfiles_test.go index 77f20373ea..327e91a1e4 100644 --- a/pkg/kubelet/kubeletconfig/configfiles/configfiles_test.go +++ b/pkg/kubelet/kubeletconfig/configfiles/configfiles_test.go @@ -24,7 +24,7 @@ import ( apiequality "k8s.io/apimachinery/pkg/api/equality" "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig" kubeletscheme "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/scheme" - kubeletconfigv1alpha1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1" + kubeletconfigv1beta1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1beta1" utilfiles "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/files" utiltest "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/test" utilfs "k8s.io/kubernetes/pkg/util/filesystem" @@ -71,7 +71,7 @@ func TestLoad(t *testing.T) { // invalid object { "missing kind", - newString(`{"apiVersion":"kubeletconfig/v1alpha1"}`), + newString(`{"apiVersion":"kubelet.config.k8s.io/v1beta1"}`), nil, "failed to decode", }, @@ -83,7 +83,7 @@ func TestLoad(t *testing.T) { }, { "unregistered kind", - newString(`{"kind":"BogusKind","apiVersion":"kubeletconfig/v1alpha1"}`), + newString(`{"kind":"BogusKind","apiVersion":"kubelet.config.k8s.io/v1beta1"}`), nil, "failed to decode", }, @@ -98,13 +98,13 @@ func TestLoad(t *testing.T) { { "default from yaml", newString(`kind: KubeletConfiguration -apiVersion: kubeletconfig/v1alpha1`), +apiVersion: kubelet.config.k8s.io/v1beta1`), newConfig(t), "", }, { "default from json", - newString(`{"kind":"KubeletConfiguration","apiVersion":"kubeletconfig/v1alpha1"}`), + newString(`{"kind":"KubeletConfiguration","apiVersion":"kubelet.config.k8s.io/v1beta1"}`), newConfig(t), "", }, @@ -113,7 +113,7 @@ apiVersion: kubeletconfig/v1alpha1`), { "yaml, relative path is resolved", newString(fmt.Sprintf(`kind: KubeletConfiguration -apiVersion: kubeletconfig/v1alpha1 +apiVersion: kubelet.config.k8s.io/v1beta1 podManifestPath: %s`, relativePath)), func() *kubeletconfig.KubeletConfiguration { kc := newConfig(t) @@ -124,7 +124,7 @@ podManifestPath: %s`, relativePath)), }, { "json, relative path is resolved", - newString(fmt.Sprintf(`{"kind":"KubeletConfiguration","apiVersion":"kubeletconfig/v1alpha1","podManifestPath":"%s"}`, relativePath)), + newString(fmt.Sprintf(`{"kind":"KubeletConfiguration","apiVersion":"kubelet.config.k8s.io/v1beta1","podManifestPath":"%s"}`, relativePath)), func() *kubeletconfig.KubeletConfiguration { kc := newConfig(t) kc.PodManifestPath = filepath.Join(configDir, relativePath) @@ -155,7 +155,6 @@ podManifestPath: %s`, relativePath)), t.Fatalf("expect %#v but got %#v", *c.expect, *kc) } }) - } } @@ -204,7 +203,7 @@ func newConfig(t *testing.T) *kubeletconfig.KubeletConfiguration { t.Fatalf("unexpected error: %v", err) } // get the built-in default configuration - external := &kubeletconfigv1alpha1.KubeletConfiguration{} + external := &kubeletconfigv1beta1.KubeletConfiguration{} kubeletScheme.Default(external) kc := &kubeletconfig.KubeletConfiguration{} err = kubeletScheme.Convert(external, kc, nil) diff --git a/test/e2e_node/BUILD b/test/e2e_node/BUILD index 4de856da16..370c64dfbb 100644 --- a/test/e2e_node/BUILD +++ b/test/e2e_node/BUILD @@ -33,7 +33,7 @@ go_library( "//pkg/kubelet/apis/deviceplugin/v1alpha:go_default_library", "//pkg/kubelet/apis/kubeletconfig:go_default_library", "//pkg/kubelet/apis/kubeletconfig/scheme:go_default_library", - "//pkg/kubelet/apis/kubeletconfig/v1alpha1:go_default_library", + "//pkg/kubelet/apis/kubeletconfig/v1beta1:go_default_library", "//pkg/kubelet/apis/stats/v1alpha1:go_default_library", "//pkg/kubelet/cm/devicemanager:go_default_library", "//pkg/kubelet/metrics:go_default_library", diff --git a/test/e2e_node/services/BUILD b/test/e2e_node/services/BUILD index e0ab73e37d..f5992b2eba 100644 --- a/test/e2e_node/services/BUILD +++ b/test/e2e_node/services/BUILD @@ -28,7 +28,7 @@ go_library( "//pkg/features:go_default_library", "//pkg/kubelet/apis/kubeletconfig:go_default_library", "//pkg/kubelet/apis/kubeletconfig/scheme:go_default_library", - "//pkg/kubelet/apis/kubeletconfig/v1alpha1:go_default_library", + "//pkg/kubelet/apis/kubeletconfig/v1beta1:go_default_library", "//test/e2e/framework:go_default_library", "//test/e2e_node/builder:go_default_library", "//vendor/github.com/coreos/etcd/etcdserver:go_default_library", diff --git a/test/e2e_node/services/kubelet.go b/test/e2e_node/services/kubelet.go index e1cd23a36c..dafa52b20a 100644 --- a/test/e2e_node/services/kubelet.go +++ b/test/e2e_node/services/kubelet.go @@ -38,7 +38,7 @@ import ( "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig" "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/scheme" - "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1" + "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1beta1" "k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e_node/builder" ) @@ -357,7 +357,7 @@ func addKubeletConfigFlags(cmdArgs *[]string, kc *kubeletconfig.KubeletConfigura // writeKubeletConfigFile writes the kubelet config file based on the args and returns the filename func writeKubeletConfigFile(internal *kubeletconfig.KubeletConfiguration, path string) error { // extract the KubeletConfiguration and convert to versioned - versioned := &v1alpha1.KubeletConfiguration{} + versioned := &v1beta1.KubeletConfiguration{} scheme, _, err := scheme.NewSchemeAndCodecs() if err != nil { return err @@ -397,7 +397,7 @@ func newKubeletConfigJSONEncoder() (runtime.Encoder, error) { if !ok { return nil, fmt.Errorf("unsupported media type %q", mediaType) } - return kubeletCodecs.EncoderForVersion(info.Serializer, v1alpha1.SchemeGroupVersion), nil + return kubeletCodecs.EncoderForVersion(info.Serializer, v1beta1.SchemeGroupVersion), nil } // createPodManifestDirectory creates pod manifest directory. diff --git a/test/e2e_node/util.go b/test/e2e_node/util.go index bf4bc28020..51578f439e 100644 --- a/test/e2e_node/util.go +++ b/test/e2e_node/util.go @@ -39,7 +39,7 @@ import ( internalapi "k8s.io/kubernetes/pkg/kubelet/apis/cri" "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig" kubeletscheme "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/scheme" - kubeletconfigv1alpha1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1" + kubeletconfigv1beta1 "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1beta1" stats "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" kubeletmetrics "k8s.io/kubernetes/pkg/kubelet/metrics" "k8s.io/kubernetes/pkg/kubelet/remote" @@ -257,9 +257,9 @@ func pollConfigz(timeout time.Duration, pollInterval time.Duration) *http.Respon // Decodes the http response from /configz and returns a kubeletconfig.KubeletConfiguration (internal type). func decodeConfigz(resp *http.Response) (*kubeletconfig.KubeletConfiguration, error) { // This hack because /configz reports the following structure: - // {"kubeletconfig": {the JSON representation of kubeletconfigv1alpha1.KubeletConfiguration}} + // {"kubeletconfig": {the JSON representation of kubeletconfigv1beta1.KubeletConfiguration}} type configzWrapper struct { - ComponentConfig kubeletconfigv1alpha1.KubeletConfiguration `json:"kubeletconfig"` + ComponentConfig kubeletconfigv1beta1.KubeletConfiguration `json:"kubeletconfig"` } configz := configzWrapper{} @@ -298,7 +298,7 @@ func newKubeletConfigMap(name string, internalKC *kubeletconfig.KubeletConfigura scheme, _, err := kubeletscheme.NewSchemeAndCodecs() framework.ExpectNoError(err) - versioned := &kubeletconfigv1alpha1.KubeletConfiguration{} + versioned := &kubeletconfigv1beta1.KubeletConfiguration{} err = scheme.Convert(internalKC, versioned, nil) framework.ExpectNoError(err) @@ -360,7 +360,7 @@ func newKubeletConfigJSONEncoder() (runtime.Encoder, error) { if !ok { return nil, fmt.Errorf("unsupported media type %q", mediaType) } - return kubeletCodecs.EncoderForVersion(info.Serializer, kubeletconfigv1alpha1.SchemeGroupVersion), nil + return kubeletCodecs.EncoderForVersion(info.Serializer, kubeletconfigv1beta1.SchemeGroupVersion), nil } // runCommand runs the cmd and returns the combined stdout and stderr, or an