mirror of https://github.com/k3s-io/k3s
Move the kubeletconfig v1alpha1 API to beta, rename to kubelet.config.k8s.io
parent
6535c955bf
commit
9ebaf5e7d2
|
@ -15,7 +15,7 @@ go_library(
|
||||||
],
|
],
|
||||||
importpath = "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm",
|
importpath = "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm",
|
||||||
deps = [
|
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",
|
"//pkg/proxy/apis/kubeproxyconfig/v1alpha1:go_default_library",
|
||||||
"//vendor/k8s.io/api/core/v1: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/apis/meta/v1:go_default_library",
|
||||||
|
|
|
@ -11,7 +11,7 @@ go_library(
|
||||||
importpath = "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/fuzzer",
|
importpath = "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/fuzzer",
|
||||||
deps = [
|
deps = [
|
||||||
"//cmd/kubeadm/app/apis/kubeadm:go_default_library",
|
"//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/proxy/apis/kubeproxyconfig/v1alpha1:go_default_library",
|
||||||
"//pkg/util/pointer:go_default_library",
|
"//pkg/util/pointer:go_default_library",
|
||||||
"//vendor/github.com/google/gofuzz:go_default_library",
|
"//vendor/github.com/google/gofuzz:go_default_library",
|
||||||
|
|
|
@ -24,7 +24,7 @@ import (
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer"
|
runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer"
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
"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"
|
kubeproxyconfigv1alpha1 "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1"
|
||||||
utilpointer "k8s.io/kubernetes/pkg/util/pointer"
|
utilpointer "k8s.io/kubernetes/pkg/util/pointer"
|
||||||
)
|
)
|
||||||
|
@ -64,17 +64,17 @@ func Funcs(codecs runtimeserializer.CodecFactory) []interface{} {
|
||||||
OperatorVersion: "v0.1.0",
|
OperatorVersion: "v0.1.0",
|
||||||
}
|
}
|
||||||
obj.KubeletConfiguration = kubeadm.KubeletConfiguration{
|
obj.KubeletConfiguration = kubeadm.KubeletConfiguration{
|
||||||
BaseConfig: &kubeletconfigv1alpha1.KubeletConfiguration{
|
BaseConfig: &kubeletconfigv1beta1.KubeletConfiguration{
|
||||||
PodManifestPath: "foo",
|
PodManifestPath: "foo",
|
||||||
ClusterDNS: []string{"foo"},
|
ClusterDNS: []string{"foo"},
|
||||||
ClusterDomain: "foo",
|
ClusterDomain: "foo",
|
||||||
Authorization: kubeletconfigv1alpha1.KubeletAuthorization{Mode: "foo"},
|
Authorization: kubeletconfigv1beta1.KubeletAuthorization{Mode: "foo"},
|
||||||
Authentication: kubeletconfigv1alpha1.KubeletAuthentication{
|
Authentication: kubeletconfigv1beta1.KubeletAuthentication{
|
||||||
X509: kubeletconfigv1alpha1.KubeletX509Authentication{ClientCAFile: "foo"},
|
X509: kubeletconfigv1beta1.KubeletX509Authentication{ClientCAFile: "foo"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
kubeletconfigv1alpha1.SetDefaults_KubeletConfiguration(obj.KubeletConfiguration.BaseConfig)
|
kubeletconfigv1beta1.SetDefaults_KubeletConfiguration(obj.KubeletConfiguration.BaseConfig)
|
||||||
obj.KubeProxy = kubeadm.KubeProxy{
|
obj.KubeProxy = kubeadm.KubeProxy{
|
||||||
Config: &kubeproxyconfigv1alpha1.KubeProxyConfiguration{
|
Config: &kubeproxyconfigv1alpha1.KubeProxyConfiguration{
|
||||||
FeatureGates: "foo",
|
FeatureGates: "foo",
|
||||||
|
|
|
@ -19,7 +19,7 @@ package kubeadm
|
||||||
import (
|
import (
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/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"
|
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.
|
// KubeletConfiguration contains elements describing initial remote configuration of kubelet.
|
||||||
type KubeletConfiguration struct {
|
type KubeletConfiguration struct {
|
||||||
BaseConfig *kubeletconfigv1alpha1.KubeletConfiguration
|
BaseConfig *kubeletconfigv1beta1.KubeletConfiguration
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetControlPlaneImageRepository returns name of image repository
|
// GetControlPlaneImageRepository returns name of image repository
|
||||||
|
|
|
@ -53,7 +53,7 @@ go_library(
|
||||||
"//cmd/kubeadm/app/constants:go_default_library",
|
"//cmd/kubeadm/app/constants:go_default_library",
|
||||||
"//cmd/kubeadm/app/features:go_default_library",
|
"//cmd/kubeadm/app/features:go_default_library",
|
||||||
"//pkg/kubelet/apis/kubeletconfig/scheme: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/scheme:go_default_library",
|
||||||
"//pkg/proxy/apis/kubeproxyconfig/v1alpha1:go_default_library",
|
"//pkg/proxy/apis/kubeproxyconfig/v1alpha1:go_default_library",
|
||||||
"//vendor/k8s.io/api/core/v1:go_default_library",
|
"//vendor/k8s.io/api/core/v1:go_default_library",
|
||||||
|
|
|
@ -25,7 +25,7 @@ import (
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
"k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/features"
|
"k8s.io/kubernetes/cmd/kubeadm/app/features"
|
||||||
kubeletscheme "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/scheme"
|
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"
|
kubeproxyscheme "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/scheme"
|
||||||
kubeproxyconfigv1alpha1 "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1"
|
kubeproxyconfigv1alpha1 "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1"
|
||||||
)
|
)
|
||||||
|
@ -186,7 +186,7 @@ func SetDefaultsEtcdSelfHosted(obj *MasterConfiguration) {
|
||||||
// SetDefaults_KubeletConfiguration assigns default values to kubelet
|
// SetDefaults_KubeletConfiguration assigns default values to kubelet
|
||||||
func SetDefaults_KubeletConfiguration(obj *MasterConfiguration) {
|
func SetDefaults_KubeletConfiguration(obj *MasterConfiguration) {
|
||||||
if obj.KubeletConfiguration.BaseConfig == nil {
|
if obj.KubeletConfiguration.BaseConfig == nil {
|
||||||
obj.KubeletConfiguration.BaseConfig = &kubeletconfigv1alpha1.KubeletConfiguration{}
|
obj.KubeletConfiguration.BaseConfig = &kubeletconfigv1beta1.KubeletConfiguration{}
|
||||||
}
|
}
|
||||||
if obj.KubeletConfiguration.BaseConfig.PodManifestPath == "" {
|
if obj.KubeletConfiguration.BaseConfig.PodManifestPath == "" {
|
||||||
obj.KubeletConfiguration.BaseConfig.PodManifestPath = DefaultManifestsDir
|
obj.KubeletConfiguration.BaseConfig.PodManifestPath = DefaultManifestsDir
|
||||||
|
@ -203,7 +203,7 @@ func SetDefaults_KubeletConfiguration(obj *MasterConfiguration) {
|
||||||
obj.KubeletConfiguration.BaseConfig.ClusterDomain = DefaultServiceDNSDomain
|
obj.KubeletConfiguration.BaseConfig.ClusterDomain = DefaultServiceDNSDomain
|
||||||
}
|
}
|
||||||
if obj.KubeletConfiguration.BaseConfig.Authorization.Mode == "" {
|
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 == "" {
|
if obj.KubeletConfiguration.BaseConfig.Authentication.X509.ClientCAFile == "" {
|
||||||
obj.KubeletConfiguration.BaseConfig.Authentication.X509.ClientCAFile = DefaultCACertPath
|
obj.KubeletConfiguration.BaseConfig.Authentication.X509.ClientCAFile = DefaultCACertPath
|
||||||
|
|
|
@ -19,7 +19,7 @@ package v1alpha1
|
||||||
import (
|
import (
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/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"
|
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.
|
// KubeletConfiguration contains elements describing initial remote configuration of kubelet.
|
||||||
type KubeletConfiguration struct {
|
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
|
// HostPathMount contains elements describing volumes that are mounted from the
|
||||||
|
|
|
@ -28,7 +28,7 @@ import (
|
||||||
conversion "k8s.io/apimachinery/pkg/conversion"
|
conversion "k8s.io/apimachinery/pkg/conversion"
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||||
kubeadm "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
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"
|
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 {
|
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
|
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 {
|
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
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ package v1alpha1
|
||||||
import (
|
import (
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
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"
|
kubeproxyconfig_v1alpha1 "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -154,7 +154,7 @@ func (in *KubeletConfiguration) DeepCopyInto(out *KubeletConfiguration) {
|
||||||
if *in == nil {
|
if *in == nil {
|
||||||
*out = nil
|
*out = nil
|
||||||
} else {
|
} else {
|
||||||
*out = new(kubeletconfig_v1alpha1.KubeletConfiguration)
|
*out = new(v1beta1.KubeletConfiguration)
|
||||||
(*in).DeepCopyInto(*out)
|
(*in).DeepCopyInto(*out)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,7 @@ package v1alpha1
|
||||||
|
|
||||||
import (
|
import (
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
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"
|
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)
|
kubeproxyconfig_v1alpha1.SetDefaults_KubeProxyConfiguration(in.KubeProxy.Config)
|
||||||
}
|
}
|
||||||
if in.KubeletConfiguration.BaseConfig != nil {
|
if in.KubeletConfiguration.BaseConfig != nil {
|
||||||
kubeletconfig_v1alpha1.SetDefaults_KubeletConfiguration(in.KubeletConfiguration.BaseConfig)
|
v1beta1.SetDefaults_KubeletConfiguration(in.KubeletConfiguration.BaseConfig)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ go_test(
|
||||||
importpath = "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation",
|
importpath = "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation",
|
||||||
deps = [
|
deps = [
|
||||||
"//cmd/kubeadm/app/apis/kubeadm:go_default_library",
|
"//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/proxy/apis/kubeproxyconfig/v1alpha1:go_default_library",
|
||||||
"//pkg/util/pointer:go_default_library",
|
"//pkg/util/pointer:go_default_library",
|
||||||
"//vendor/github.com/spf13/pflag:go_default_library",
|
"//vendor/github.com/spf13/pflag:go_default_library",
|
||||||
|
|
|
@ -28,7 +28,7 @@ import (
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/util/validation/field"
|
"k8s.io/apimachinery/pkg/util/validation/field"
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
"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"
|
kubeproxyconfigv1alpha1 "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1"
|
||||||
utilpointer "k8s.io/kubernetes/pkg/util/pointer"
|
utilpointer "k8s.io/kubernetes/pkg/util/pointer"
|
||||||
)
|
)
|
||||||
|
@ -568,7 +568,7 @@ func TestValidateIgnorePreflightErrors(t *testing.T) {
|
||||||
|
|
||||||
func TestValidateKubeletConfiguration(t *testing.T) {
|
func TestValidateKubeletConfiguration(t *testing.T) {
|
||||||
successCase := &kubeadm.KubeletConfiguration{
|
successCase := &kubeadm.KubeletConfiguration{
|
||||||
BaseConfig: &kubeletconfigv1alpha1.KubeletConfiguration{
|
BaseConfig: &kubeletconfigv1beta1.KubeletConfiguration{
|
||||||
CgroupsPerQOS: utilpointer.BoolPtr(true),
|
CgroupsPerQOS: utilpointer.BoolPtr(true),
|
||||||
EnforceNodeAllocatable: []string{"pods", "system-reserved", "kube-reserved"},
|
EnforceNodeAllocatable: []string{"pods", "system-reserved", "kube-reserved"},
|
||||||
SystemCgroups: "",
|
SystemCgroups: "",
|
||||||
|
@ -598,7 +598,7 @@ func TestValidateKubeletConfiguration(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
errorCase := &kubeadm.KubeletConfiguration{
|
errorCase := &kubeadm.KubeletConfiguration{
|
||||||
BaseConfig: &kubeletconfigv1alpha1.KubeletConfiguration{
|
BaseConfig: &kubeletconfigv1beta1.KubeletConfiguration{
|
||||||
CgroupsPerQOS: utilpointer.BoolPtr(false),
|
CgroupsPerQOS: utilpointer.BoolPtr(false),
|
||||||
EnforceNodeAllocatable: []string{"pods", "system-reserved", "kube-reserved", "illegal-key"},
|
EnforceNodeAllocatable: []string{"pods", "system-reserved", "kube-reserved", "illegal-key"},
|
||||||
SystemCgroups: "/",
|
SystemCgroups: "/",
|
||||||
|
|
|
@ -23,7 +23,7 @@ package kubeadm
|
||||||
import (
|
import (
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
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"
|
v1alpha1 "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -154,7 +154,7 @@ func (in *KubeletConfiguration) DeepCopyInto(out *KubeletConfiguration) {
|
||||||
if *in == nil {
|
if *in == nil {
|
||||||
*out = nil
|
*out = nil
|
||||||
} else {
|
} else {
|
||||||
*out = new(kubeletconfig_v1alpha1.KubeletConfiguration)
|
*out = new(v1beta1.KubeletConfiguration)
|
||||||
(*in).DeepCopyInto(*out)
|
(*in).DeepCopyInto(*out)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@ go_library(
|
||||||
"//cmd/kubeadm/app/util/kubeconfig:go_default_library",
|
"//cmd/kubeadm/app/util/kubeconfig:go_default_library",
|
||||||
"//pkg/apis/rbac/v1:go_default_library",
|
"//pkg/apis/rbac/v1:go_default_library",
|
||||||
"//pkg/kubelet/apis/kubeletconfig/scheme: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/core/v1:go_default_library",
|
||||||
"//vendor/k8s.io/api/rbac/v1:go_default_library",
|
"//vendor/k8s.io/api/rbac/v1:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library",
|
||||||
|
@ -33,7 +33,7 @@ go_test(
|
||||||
deps = [
|
deps = [
|
||||||
"//cmd/kubeadm/app/apis/kubeadm:go_default_library",
|
"//cmd/kubeadm/app/apis/kubeadm:go_default_library",
|
||||||
"//cmd/kubeadm/app/constants: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/api/core/v1:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
||||||
|
|
|
@ -38,7 +38,7 @@ import (
|
||||||
kubeconfigutil "k8s.io/kubernetes/cmd/kubeadm/app/util/kubeconfig"
|
kubeconfigutil "k8s.io/kubernetes/cmd/kubeadm/app/util/kubeconfig"
|
||||||
rbachelper "k8s.io/kubernetes/pkg/apis/rbac/v1"
|
rbachelper "k8s.io/kubernetes/pkg/apis/rbac/v1"
|
||||||
kubeletconfigscheme "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/scheme"
|
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.
|
// CreateBaseKubeletConfiguration creates base kubelet configuration for dynamic kubelet configuration feature.
|
||||||
|
@ -50,7 +50,7 @@ func CreateBaseKubeletConfiguration(cfg *kubeadmapi.MasterConfiguration, client
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
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 {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -210,7 +210,7 @@ func WriteInitKubeletConfigToDiskOnMaster(cfg *kubeadmapi.MasterConfiguration) e
|
||||||
return err
|
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 {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,7 +26,7 @@ import (
|
||||||
core "k8s.io/client-go/testing"
|
core "k8s.io/client-go/testing"
|
||||||
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
||||||
kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
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) {
|
func TestCreateBaseKubeletConfiguration(t *testing.T) {
|
||||||
|
@ -35,7 +35,7 @@ func TestCreateBaseKubeletConfiguration(t *testing.T) {
|
||||||
cfg := &kubeadmapi.MasterConfiguration{
|
cfg := &kubeadmapi.MasterConfiguration{
|
||||||
NodeName: nodeName,
|
NodeName: nodeName,
|
||||||
KubeletConfiguration: kubeadmapi.KubeletConfiguration{
|
KubeletConfiguration: kubeadmapi.KubeletConfiguration{
|
||||||
BaseConfig: &kubeletconfigv1alpha1.KubeletConfiguration{
|
BaseConfig: &kubeletconfigv1beta1.KubeletConfiguration{
|
||||||
TypeMeta: metav1.TypeMeta{
|
TypeMeta: metav1.TypeMeta{
|
||||||
Kind: "KubeletConfiguration",
|
Kind: "KubeletConfiguration",
|
||||||
},
|
},
|
||||||
|
|
|
@ -73,7 +73,7 @@ go_library(
|
||||||
"//pkg/kubelet:go_default_library",
|
"//pkg/kubelet:go_default_library",
|
||||||
"//pkg/kubelet/apis/kubeletconfig:go_default_library",
|
"//pkg/kubelet/apis/kubeletconfig:go_default_library",
|
||||||
"//pkg/kubelet/apis/kubeletconfig/scheme: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/cadvisor:go_default_library",
|
||||||
"//pkg/kubelet/certificate:go_default_library",
|
"//pkg/kubelet/certificate:go_default_library",
|
||||||
"//pkg/kubelet/certificate/bootstrap:go_default_library",
|
"//pkg/kubelet/certificate/bootstrap:go_default_library",
|
||||||
|
|
|
@ -57,7 +57,7 @@ go_library(
|
||||||
"//pkg/features:go_default_library",
|
"//pkg/features:go_default_library",
|
||||||
"//pkg/kubelet/apis/kubeletconfig:go_default_library",
|
"//pkg/kubelet/apis/kubeletconfig:go_default_library",
|
||||||
"//pkg/kubelet/apis/kubeletconfig/scheme: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/apis/kubeletconfig/validation:go_default_library",
|
||||||
"//pkg/kubelet/config:go_default_library",
|
"//pkg/kubelet/config:go_default_library",
|
||||||
"//pkg/kubelet/types:go_default_library",
|
"//pkg/kubelet/types:go_default_library",
|
||||||
|
|
|
@ -35,7 +35,7 @@ import (
|
||||||
"k8s.io/kubernetes/pkg/features"
|
"k8s.io/kubernetes/pkg/features"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig"
|
"k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig"
|
||||||
kubeletscheme "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/scheme"
|
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"
|
kubeletconfigvalidation "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/validation"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/config"
|
"k8s.io/kubernetes/pkg/kubelet/config"
|
||||||
kubetypes "k8s.io/kubernetes/pkg/kubelet/types"
|
kubetypes "k8s.io/kubernetes/pkg/kubelet/types"
|
||||||
|
@ -43,6 +43,8 @@ import (
|
||||||
utiltaints "k8s.io/kubernetes/pkg/util/taints"
|
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:
|
// 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 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)
|
// - 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,
|
EnableServer: true,
|
||||||
ContainerRuntimeOptions: *NewContainerRuntimeOptions(),
|
ContainerRuntimeOptions: *NewContainerRuntimeOptions(),
|
||||||
CertDirectory: "/var/lib/kubelet/pki",
|
CertDirectory: "/var/lib/kubelet/pki",
|
||||||
RootDirectory: v1alpha1.DefaultRootDir,
|
RootDirectory: defaultRootDir,
|
||||||
MasterServiceNamespace: metav1.NamespaceDefault,
|
MasterServiceNamespace: metav1.NamespaceDefault,
|
||||||
MaxContainerCount: -1,
|
MaxContainerCount: -1,
|
||||||
MaxPerPodContainerCount: 1,
|
MaxPerPodContainerCount: 1,
|
||||||
|
@ -237,7 +239,7 @@ func NewKubeletFlags() *KubeletFlags {
|
||||||
NodeLabels: make(map[string]string),
|
NodeLabels: make(map[string]string),
|
||||||
VolumePluginDir: "/usr/libexec/kubernetes/kubelet-plugins/volume/exec/",
|
VolumePluginDir: "/usr/libexec/kubernetes/kubelet-plugins/volume/exec/",
|
||||||
RegisterNode: true,
|
RegisterNode: true,
|
||||||
SeccompProfileRoot: filepath.Join(v1alpha1.DefaultRootDir, "seccomp"),
|
SeccompProfileRoot: filepath.Join(defaultRootDir, "seccomp"),
|
||||||
HostNetworkSources: []string{kubetypes.AllSource},
|
HostNetworkSources: []string{kubetypes.AllSource},
|
||||||
HostPIDSources: []string{kubetypes.AllSource},
|
HostPIDSources: []string{kubetypes.AllSource},
|
||||||
HostIPCSources: []string{kubetypes.AllSource},
|
HostIPCSources: []string{kubetypes.AllSource},
|
||||||
|
@ -263,7 +265,7 @@ func NewKubeletConfiguration() (*kubeletconfig.KubeletConfiguration, error) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
versioned := &v1alpha1.KubeletConfiguration{}
|
versioned := &v1beta1.KubeletConfiguration{}
|
||||||
scheme.Default(versioned)
|
scheme.Default(versioned)
|
||||||
config := &kubeletconfig.KubeletConfiguration{}
|
config := &kubeletconfig.KubeletConfiguration{}
|
||||||
if err := scheme.Convert(versioned, config, nil); err != nil {
|
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) {
|
func (f *KubeletFlags) AddFlags(fs *pflag.FlagSet) {
|
||||||
f.ContainerRuntimeOptions.AddFlags(fs)
|
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.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")
|
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)")
|
fs.Int32Var(&f.CAdvisorPort, "cadvisor-port", f.CAdvisorPort, "The port of the localhost cAdvisor endpoint (set to 0 to disable)")
|
||||||
|
|
||||||
// EXPERIMENTAL FLAGS
|
// EXPERIMENTAL FLAGS
|
||||||
fs.StringVar(&f.KubeletConfigFile, "config", f.KubeletConfigFile, "<Warning: Alpha feature> 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.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.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.")
|
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.")
|
||||||
|
|
|
@ -66,7 +66,7 @@ import (
|
||||||
"k8s.io/kubernetes/pkg/kubelet"
|
"k8s.io/kubernetes/pkg/kubelet"
|
||||||
kubeletconfiginternal "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig"
|
kubeletconfiginternal "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig"
|
||||||
kubeletscheme "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/scheme"
|
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"
|
"k8s.io/kubernetes/pkg/kubelet/cadvisor"
|
||||||
kubeletcertificate "k8s.io/kubernetes/pkg/kubelet/certificate"
|
kubeletcertificate "k8s.io/kubernetes/pkg/kubelet/certificate"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/certificate/bootstrap"
|
"k8s.io/kubernetes/pkg/kubelet/certificate/bootstrap"
|
||||||
|
@ -393,7 +393,7 @@ func setConfigz(cz *configz.Config, kc *kubeletconfiginternal.KubeletConfigurati
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
versioned := kubeletconfigv1alpha1.KubeletConfiguration{}
|
versioned := kubeletconfigv1beta1.KubeletConfiguration{}
|
||||||
if err := scheme.Convert(kc, &versioned, nil); err != nil {
|
if err := scheme.Convert(kc, &versioned, nil); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
@ -164,7 +164,7 @@ pkg/kubelet/apis/cri/runtime/v1alpha2
|
||||||
pkg/kubelet/apis/cri/testing
|
pkg/kubelet/apis/cri/testing
|
||||||
pkg/kubelet/apis/deviceplugin/v1alpha
|
pkg/kubelet/apis/deviceplugin/v1alpha
|
||||||
pkg/kubelet/apis/kubeletconfig
|
pkg/kubelet/apis/kubeletconfig
|
||||||
pkg/kubelet/apis/kubeletconfig/v1alpha1
|
pkg/kubelet/apis/kubeletconfig/v1beta1
|
||||||
pkg/kubelet/cadvisor
|
pkg/kubelet/cadvisor
|
||||||
pkg/kubelet/cadvisor/testing
|
pkg/kubelet/cadvisor/testing
|
||||||
pkg/kubelet/client
|
pkg/kubelet/client
|
||||||
|
|
|
@ -14,7 +14,7 @@ openapi_library(
|
||||||
"pkg/apis/abac/v0",
|
"pkg/apis/abac/v0",
|
||||||
"pkg/apis/abac/v1beta1",
|
"pkg/apis/abac/v1beta1",
|
||||||
"pkg/apis/componentconfig/v1alpha1",
|
"pkg/apis/componentconfig/v1alpha1",
|
||||||
"pkg/kubelet/apis/kubeletconfig/v1alpha1",
|
"pkg/kubelet/apis/kubeletconfig/v1beta1",
|
||||||
"pkg/proxy/apis/kubeproxyconfig/v1alpha1",
|
"pkg/proxy/apis/kubeproxyconfig/v1alpha1",
|
||||||
"pkg/version",
|
"pkg/version",
|
||||||
],
|
],
|
||||||
|
|
|
@ -36,7 +36,7 @@ filegroup(
|
||||||
":package-srcs",
|
":package-srcs",
|
||||||
"//pkg/kubelet/apis/kubeletconfig/fuzzer:all-srcs",
|
"//pkg/kubelet/apis/kubeletconfig/fuzzer:all-srcs",
|
||||||
"//pkg/kubelet/apis/kubeletconfig/scheme: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",
|
"//pkg/kubelet/apis/kubeletconfig/validation:all-srcs",
|
||||||
],
|
],
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
|
|
|
@ -7,7 +7,7 @@ go_library(
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/kubelet/apis/kubeletconfig:go_default_library",
|
"//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/qos:go_default_library",
|
||||||
"//pkg/kubelet/types:go_default_library",
|
"//pkg/kubelet/types:go_default_library",
|
||||||
"//pkg/master/ports:go_default_library",
|
"//pkg/master/ports:go_default_library",
|
||||||
|
|
|
@ -24,7 +24,7 @@ import (
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer"
|
runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig"
|
"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"
|
"k8s.io/kubernetes/pkg/kubelet/qos"
|
||||||
kubetypes "k8s.io/kubernetes/pkg/kubelet/types"
|
kubetypes "k8s.io/kubernetes/pkg/kubelet/types"
|
||||||
"k8s.io/kubernetes/pkg/master/ports"
|
"k8s.io/kubernetes/pkg/master/ports"
|
||||||
|
@ -75,7 +75,7 @@ func Funcs(codecs runtimeserializer.CodecFactory) []interface{} {
|
||||||
obj.ContentType = "application/vnd.kubernetes.protobuf"
|
obj.ContentType = "application/vnd.kubernetes.protobuf"
|
||||||
obj.KubeAPIQPS = 5
|
obj.KubeAPIQPS = 5
|
||||||
obj.KubeAPIBurst = 10
|
obj.KubeAPIBurst = 10
|
||||||
obj.HairpinMode = v1alpha1.PromiscuousBridge
|
obj.HairpinMode = v1beta1.PromiscuousBridge
|
||||||
obj.EvictionHard = map[string]string{
|
obj.EvictionHard = map[string]string{
|
||||||
"memory.available": "100Mi",
|
"memory.available": "100Mi",
|
||||||
"nodefs.available": "10%",
|
"nodefs.available": "10%",
|
||||||
|
@ -84,11 +84,11 @@ func Funcs(codecs runtimeserializer.CodecFactory) []interface{} {
|
||||||
}
|
}
|
||||||
obj.EvictionPressureTransitionPeriod = metav1.Duration{Duration: 5 * time.Minute}
|
obj.EvictionPressureTransitionPeriod = metav1.Duration{Duration: 5 * time.Minute}
|
||||||
obj.MakeIPTablesUtilChains = true
|
obj.MakeIPTablesUtilChains = true
|
||||||
obj.IPTablesMasqueradeBit = v1alpha1.DefaultIPTablesMasqueradeBit
|
obj.IPTablesMasqueradeBit = v1beta1.DefaultIPTablesMasqueradeBit
|
||||||
obj.IPTablesDropBit = v1alpha1.DefaultIPTablesDropBit
|
obj.IPTablesDropBit = v1beta1.DefaultIPTablesDropBit
|
||||||
obj.CgroupsPerQOS = true
|
obj.CgroupsPerQOS = true
|
||||||
obj.CgroupDriver = "cgroupfs"
|
obj.CgroupDriver = "cgroupfs"
|
||||||
obj.EnforceNodeAllocatable = v1alpha1.DefaultNodeAllocatableEnforcement
|
obj.EnforceNodeAllocatable = v1beta1.DefaultNodeAllocatableEnforcement
|
||||||
obj.ManifestURLHeader = make(map[string][]string)
|
obj.ManifestURLHeader = make(map[string][]string)
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,7 @@ var (
|
||||||
)
|
)
|
||||||
|
|
||||||
// GroupName is the group name use in this package
|
// 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
|
// SchemeGroupVersion is group version used to register these objects
|
||||||
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal}
|
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal}
|
||||||
|
|
|
@ -7,7 +7,7 @@ go_library(
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/kubelet/apis/kubeletconfig:go_default_library",
|
"//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:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library",
|
||||||
],
|
],
|
||||||
|
|
|
@ -20,7 +20,7 @@ import (
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/apimachinery/pkg/runtime/serializer"
|
"k8s.io/apimachinery/pkg/runtime/serializer"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig"
|
"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
|
// 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 {
|
if err := kubeletconfig.AddToScheme(scheme); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
if err := v1alpha1.AddToScheme(scheme); err != nil {
|
if err := v1beta1.AddToScheme(scheme); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
codecs := serializer.NewCodecFactory(scheme)
|
codecs := serializer.NewCodecFactory(scheme)
|
||||||
|
|
|
@ -40,10 +40,7 @@ const (
|
||||||
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||||
|
|
||||||
// A configuration field should go in KubeletFlags instead of KubeletConfiguration if
|
// KubeletConfiguration contains the configuration for the Kubelet
|
||||||
// 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.
|
|
||||||
type KubeletConfiguration struct {
|
type KubeletConfiguration struct {
|
||||||
metav1.TypeMeta
|
metav1.TypeMeta
|
||||||
|
|
||||||
|
@ -60,8 +57,7 @@ type KubeletConfiguration struct {
|
||||||
HTTPCheckFrequency metav1.Duration
|
HTTPCheckFrequency metav1.Duration
|
||||||
// manifestURL is the URL for accessing the container manifest
|
// manifestURL is the URL for accessing the container manifest
|
||||||
ManifestURL string
|
ManifestURL string
|
||||||
// manifestURLHeader is the HTTP header to use when accessing the manifest
|
// manifestURLHeader is a map of slices with HTTP headers to use when accessing the manifestURL
|
||||||
// URL, with the key separated from the value with a ':', as in 'key:value'
|
|
||||||
ManifestURLHeader map[string][]string
|
ManifestURLHeader map[string][]string
|
||||||
// address is the IP address for the Kubelet to serve on (set to 0.0.0.0
|
// address is the IP address for the Kubelet to serve on (set to 0.0.0.0
|
||||||
// for all interfaces)
|
// for all interfaces)
|
||||||
|
@ -75,10 +71,9 @@ type KubeletConfiguration struct {
|
||||||
// if any, concatenated after server cert). If tlsCertFile and
|
// if any, concatenated after server cert). If tlsCertFile and
|
||||||
// tlsPrivateKeyFile are not provided, a self-signed certificate
|
// tlsPrivateKeyFile are not provided, a self-signed certificate
|
||||||
// and key are generated for the public address and saved to the directory
|
// 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
|
TLSCertFile string
|
||||||
// tlsPrivateKeyFile is the file containing x509 private key matching
|
// tlsPrivateKeyFile is the file containing x509 private key matching tlsCertFile
|
||||||
// tlsCertFile.
|
|
||||||
TLSPrivateKeyFile string
|
TLSPrivateKeyFile string
|
||||||
// TLSCipherSuites is the list of allowed cipher suites for the server.
|
// 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).
|
// Values are from tls package constants (https://golang.org/pkg/crypto/tls/#pkg-constants).
|
||||||
|
@ -90,19 +85,19 @@ type KubeletConfiguration struct {
|
||||||
Authentication KubeletAuthentication
|
Authentication KubeletAuthentication
|
||||||
// authorization specifies how requests to the Kubelet's server are authorized
|
// authorization specifies how requests to the Kubelet's server are authorized
|
||||||
Authorization KubeletAuthorization
|
Authorization KubeletAuthorization
|
||||||
// registryPullQPS is the limit of registry pulls per second. If 0,
|
// registryPullQPS is the limit of registry pulls per second.
|
||||||
// unlimited. Set to 0 for no limit. Defaults to 5.0.
|
// Set to 0 for no limit.
|
||||||
RegistryPullQPS int32
|
RegistryPullQPS int32
|
||||||
// registryBurst is the maximum size of a bursty pulls, temporarily allows
|
// registryBurst is the maximum size of bursty pulls, temporarily allows
|
||||||
// pulls to burst to this number, while still not exceeding registryQps.
|
// pulls to burst to this number, while still not exceeding registryPullQPS.
|
||||||
// Only used if registryQPS > 0.
|
// Only used if registryPullQPS > 0.
|
||||||
RegistryBurst int32
|
RegistryBurst int32
|
||||||
// eventRecordQPS is the maximum event creations per second. If 0, there
|
// eventRecordQPS is the maximum event creations per second. If 0, there
|
||||||
// is no limit enforced.
|
// is no limit enforced.
|
||||||
EventRecordQPS int32
|
EventRecordQPS int32
|
||||||
// eventBurst is the maximum size of a bursty event records, temporarily
|
// eventBurst is the maximum size of a burst of event creations, temporarily
|
||||||
// allows event records to burst to this number, while still not exceeding
|
// allows event creations to burst to this number, while still not exceeding
|
||||||
// event-qps. Only used if eventQps > 0
|
// eventRecordQPS. Only used if eventRecordQPS > 0.
|
||||||
EventBurst int32
|
EventBurst int32
|
||||||
// enableDebuggingHandlers enables server endpoints for log collection
|
// enableDebuggingHandlers enables server endpoints for log collection
|
||||||
// and local running of containers and commands
|
// and local running of containers and commands
|
||||||
|
@ -111,8 +106,7 @@ type KubeletConfiguration struct {
|
||||||
EnableContentionProfiling bool
|
EnableContentionProfiling bool
|
||||||
// healthzPort is the port of the localhost healthz endpoint (set to 0 to disable)
|
// healthzPort is the port of the localhost healthz endpoint (set to 0 to disable)
|
||||||
HealthzPort int32
|
HealthzPort int32
|
||||||
// healthzBindAddress is the IP address for the healthz server to serve
|
// healthzBindAddress is the IP address for the healthz server to serve on
|
||||||
// on.
|
|
||||||
HealthzBindAddress string
|
HealthzBindAddress string
|
||||||
// oomScoreAdj is The oom-score-adj value for kubelet process. Values
|
// oomScoreAdj is The oom-score-adj value for kubelet process. Values
|
||||||
// must be within the range [-1000, 1000].
|
// 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
|
// configure all containers to search this domain in addition to the
|
||||||
// host's search domains.
|
// host's search domains.
|
||||||
ClusterDomain string
|
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
|
// 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
|
ClusterDNS []string
|
||||||
// streamingConnectionIdleTimeout is the maximum time a streaming connection
|
// streamingConnectionIdleTimeout is the maximum time a streaming connection
|
||||||
// can be idle before the connection is automatically closed.
|
// can be idle before the connection is automatically closed.
|
||||||
|
@ -136,43 +130,41 @@ type KubeletConfiguration struct {
|
||||||
// garbage collected.
|
// garbage collected.
|
||||||
ImageMinimumGCAge metav1.Duration
|
ImageMinimumGCAge metav1.Duration
|
||||||
// imageGCHighThresholdPercent is the percent of disk usage after which
|
// 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
|
ImageGCHighThresholdPercent int32
|
||||||
// imageGCLowThresholdPercent is the percent of disk usage before which
|
// imageGCLowThresholdPercent is the percent of disk usage before which
|
||||||
// image garbage collection is never run. Lowest disk usage to garbage
|
// 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
|
ImageGCLowThresholdPercent int32
|
||||||
// How frequently to calculate and cache volume disk usage for all pods
|
// How frequently to calculate and cache volume disk usage for all pods
|
||||||
VolumeStatsAggPeriod metav1.Duration
|
VolumeStatsAggPeriod metav1.Duration
|
||||||
// KubeletCgroups is the absolute name of cgroups to isolate the kubelet in.
|
// KubeletCgroups is the absolute name of cgroups to isolate the kubelet in
|
||||||
// +optional
|
|
||||||
KubeletCgroups string
|
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
|
// SystemCgroups is absolute name of cgroups in which to place
|
||||||
// all non-kernel processes that are not already in a container. Empty
|
// all non-kernel processes that are not already in a container. Empty
|
||||||
// for no container. Rolling back the flag requires a reboot.
|
// for no container. Rolling back the flag requires a reboot.
|
||||||
// +optional
|
|
||||||
SystemCgroups string
|
SystemCgroups string
|
||||||
// CgroupRoot is the root cgroup to use for pods.
|
// CgroupRoot is the root cgroup to use for pods.
|
||||||
// If CgroupsPerQOS is enabled, this is the root of the QoS cgroup hierarchy.
|
// If CgroupsPerQOS is enabled, this is the root of the QoS cgroup hierarchy.
|
||||||
// +optional
|
|
||||||
CgroupRoot string
|
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.
|
// CPUManagerPolicy is the name of the policy to use.
|
||||||
|
// Requires the CPUManager feature gate to be enabled.
|
||||||
CPUManagerPolicy string
|
CPUManagerPolicy string
|
||||||
// CPU Manager reconciliation period.
|
// CPU Manager reconciliation period.
|
||||||
|
// Requires the CPUManager feature gate to be enabled.
|
||||||
CPUManagerReconcilePeriod metav1.Duration
|
CPUManagerReconcilePeriod metav1.Duration
|
||||||
// runtimeRequestTimeout is the timeout for all runtime requests except long running
|
// runtimeRequestTimeout is the timeout for all runtime requests except long running
|
||||||
// requests - pull, logs, exec and attach.
|
// requests - pull, logs, exec and attach.
|
||||||
// +optional
|
|
||||||
RuntimeRequestTimeout metav1.Duration
|
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
|
// Setting this flag allows endpoints in a Service to loadbalance back to
|
||||||
// themselves if they should try to access their own Service. Values:
|
// themselves if they should try to access their own Service. Values:
|
||||||
// "promiscuous-bridge": make the container bridge promiscuous.
|
// "promiscuous-bridge": make the container bridge promiscuous.
|
||||||
|
@ -191,7 +183,7 @@ type KubeletConfiguration struct {
|
||||||
// ResolverConfig is the resolver configuration file used as the basis
|
// ResolverConfig is the resolver configuration file used as the basis
|
||||||
// for the container DNS resolution configuration.
|
// for the container DNS resolution configuration.
|
||||||
ResolverConfig string
|
ResolverConfig string
|
||||||
// cpuCFSQuota is Enable CPU CFS quota enforcement for containers that
|
// cpuCFSQuota enables CPU CFS quota enforcement for containers that
|
||||||
// specify CPU limits
|
// specify CPU limits
|
||||||
CPUCFSQuota bool
|
CPUCFSQuota bool
|
||||||
// maxOpenFiles is Number of files that can be opened by Kubelet process.
|
// 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
|
// kubeAPIBurst is the burst to allow while talking with kubernetes
|
||||||
// apiserver
|
// apiserver
|
||||||
KubeAPIBurst int32
|
KubeAPIBurst int32
|
||||||
// serializeImagePulls when enabled, tells the Kubelet to pull images one
|
// serializeImagePulls when enabled, tells the Kubelet to pull images one at a time.
|
||||||
// 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
|
SerializeImagePulls bool
|
||||||
// Map of signal names to quantities that defines hard eviction thresholds. For example: {"memory.available": "300Mi"}.
|
// Map of signal names to quantities that defines hard eviction thresholds. For example: {"memory.available": "300Mi"}.
|
||||||
// +optional
|
|
||||||
EvictionHard map[string]string
|
EvictionHard map[string]string
|
||||||
// Map of signal names to quantities that defines soft eviction thresholds. For example: {"memory.available": "300Mi"}.
|
// Map of signal names to quantities that defines soft eviction thresholds. For example: {"memory.available": "300Mi"}.
|
||||||
// +optional
|
|
||||||
EvictionSoft map[string]string
|
EvictionSoft map[string]string
|
||||||
// Map of signal names to quantities that defines grace periods for each soft eviction signal. For example: {"memory.available": "30s"}.
|
// 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
|
EvictionSoftGracePeriod map[string]string
|
||||||
// Duration for which the kubelet has to wait before transitioning out of an eviction pressure condition.
|
// Duration for which the kubelet has to wait before transitioning out of an eviction pressure condition.
|
||||||
// +optional
|
|
||||||
EvictionPressureTransitionPeriod metav1.Duration
|
EvictionPressureTransitionPeriod metav1.Duration
|
||||||
// Maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met.
|
// Maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met.
|
||||||
// +optional
|
|
||||||
EvictionMaxPodGracePeriod int32
|
EvictionMaxPodGracePeriod int32
|
||||||
// Map of signal names to quantities that defines minimum reclaims, which describe the minimum
|
// 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
|
// 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"}
|
// that resource is under pressure. For example: {"imagefs.available": "2Gi"}
|
||||||
// +optional
|
|
||||||
EvictionMinimumReclaim map[string]string
|
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
|
PodsPerCore int32
|
||||||
// enableControllerAttachDetach enables the Attach/Detach controller to
|
// enableControllerAttachDetach enables the Attach/Detach controller to
|
||||||
// manage attachment/detachment of volumes scheduled to this node, and
|
// manage attachment/detachment of volumes scheduled to this node, and
|
||||||
// disables kubelet from executing any attach/detach operations
|
// disables kubelet from executing any attach/detach operations
|
||||||
EnableControllerAttachDetach bool
|
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
|
ProtectKernelDefaults bool
|
||||||
// If true, Kubelet ensures a set of iptables rules are present on host.
|
// 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.
|
// These rules will serve as utility for various components, e.g. kube-proxy.
|
||||||
// The rules will be created based on IPTablesMasqueradeBit and IPTablesDropBit.
|
// The rules will be created based on IPTablesMasqueradeBit and IPTablesDropBit.
|
||||||
MakeIPTablesUtilChains bool
|
MakeIPTablesUtilChains bool
|
||||||
// iptablesMasqueradeBit is the bit of the iptables fwmark space to use for SNAT
|
// iptablesMasqueradeBit is the bit of the iptables fwmark space to mark for SNAT
|
||||||
// Values must be within the range [0, 31].
|
// 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
|
// TODO: clean up IPTablesMasqueradeBit in kube-proxy
|
||||||
IPTablesMasqueradeBit int32
|
IPTablesMasqueradeBit int32
|
||||||
// iptablesDropBit is the bit of the iptables fwmark space to use for dropping packets. Kubelet will ensure iptables mark and drop rules.
|
// 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 IPTablesMasqueradeBit
|
// Values must be within the range [0, 31]. Must be different from other mark bits.
|
||||||
IPTablesDropBit int32
|
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
|
FeatureGates map[string]bool
|
||||||
// Tells the Kubelet to fail to start if swap is enabled on the node.
|
// Tells the Kubelet to fail to start if swap is enabled on the node.
|
||||||
FailSwapOn bool
|
FailSwapOn bool
|
||||||
|
@ -257,12 +245,12 @@ type KubeletConfiguration struct {
|
||||||
|
|
||||||
// A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs
|
// A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs
|
||||||
// that describe resources reserved for non-kubernetes components.
|
// 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.
|
// See http://kubernetes.io/docs/user-guide/compute-resources for more detail.
|
||||||
SystemReserved map[string]string
|
SystemReserved map[string]string
|
||||||
// A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs
|
// A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs
|
||||||
// that describe resources reserved for kubernetes system components.
|
// 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.
|
// See http://kubernetes.io/docs/user-guide/compute-resources for more detail.
|
||||||
KubeReserved map[string]string
|
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.
|
// This flag helps kubelet identify absolute name of top level cgroup used to enforce `SystemReserved` compute resource reservation for OS system daemons.
|
||||||
|
|
|
@ -16,7 +16,7 @@ go_library(
|
||||||
"zz_generated.deepcopy.go",
|
"zz_generated.deepcopy.go",
|
||||||
"zz_generated.defaults.go",
|
"zz_generated.defaults.go",
|
||||||
],
|
],
|
||||||
importpath = "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1",
|
importpath = "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1beta1",
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/kubelet/apis/kubeletconfig:go_default_library",
|
"//pkg/kubelet/apis/kubeletconfig:go_default_library",
|
||||||
"//pkg/kubelet/qos:go_default_library",
|
"//pkg/kubelet/qos:go_default_library",
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package v1alpha1
|
package v1beta1
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
|
@ -28,8 +28,6 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
DefaultRootDir = "/var/lib/kubelet"
|
|
||||||
|
|
||||||
DefaultIPTablesMasqueradeBit = 14
|
DefaultIPTablesMasqueradeBit = 14
|
||||||
DefaultIPTablesDropBit = 15
|
DefaultIPTablesDropBit = 15
|
||||||
)
|
)
|
||||||
|
@ -45,11 +43,26 @@ func addDefaultingFuncs(scheme *kruntime.Scheme) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func SetDefaults_KubeletConfiguration(obj *KubeletConfiguration) {
|
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 {
|
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 {
|
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 {
|
if obj.Authentication.Webhook.CacheTTL == zeroDuration {
|
||||||
obj.Authentication.Webhook.CacheTTL = metav1.Duration{Duration: 2 * time.Minute}
|
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 {
|
if obj.Authorization.Webhook.CacheUnauthorizedTTL == zeroDuration {
|
||||||
obj.Authorization.Webhook.CacheUnauthorizedTTL = metav1.Duration{Duration: 30 * time.Second}
|
obj.Authorization.Webhook.CacheUnauthorizedTTL = metav1.Duration{Duration: 30 * time.Second}
|
||||||
}
|
}
|
||||||
if obj.Address == "" {
|
if obj.RegistryPullQPS == nil {
|
||||||
obj.Address = "0.0.0.0"
|
obj.RegistryPullQPS = utilpointer.Int32Ptr(5)
|
||||||
}
|
}
|
||||||
if obj.VolumeStatsAggPeriod == zeroDuration {
|
if obj.RegistryBurst == 0 {
|
||||||
obj.VolumeStatsAggPeriod = metav1.Duration{Duration: time.Minute}
|
obj.RegistryBurst = 10
|
||||||
}
|
}
|
||||||
if obj.RuntimeRequestTimeout == zeroDuration {
|
if obj.EventRecordQPS == nil {
|
||||||
obj.RuntimeRequestTimeout = metav1.Duration{Duration: 2 * time.Minute}
|
obj.EventRecordQPS = utilpointer.Int32Ptr(5)
|
||||||
}
|
|
||||||
if obj.CPUCFSQuota == nil {
|
|
||||||
obj.CPUCFSQuota = boolVar(true)
|
|
||||||
}
|
}
|
||||||
if obj.EventBurst == 0 {
|
if obj.EventBurst == 0 {
|
||||||
obj.EventBurst = 10
|
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 {
|
if obj.EnableDebuggingHandlers == nil {
|
||||||
obj.EnableDebuggingHandlers = boolVar(true)
|
obj.EnableDebuggingHandlers = utilpointer.BoolPtr(true)
|
||||||
}
|
|
||||||
if obj.FileCheckFrequency == zeroDuration {
|
|
||||||
obj.FileCheckFrequency = metav1.Duration{Duration: 20 * time.Second}
|
|
||||||
}
|
|
||||||
if obj.HealthzBindAddress == "" {
|
|
||||||
obj.HealthzBindAddress = "127.0.0.1"
|
|
||||||
}
|
}
|
||||||
if obj.HealthzPort == nil {
|
if obj.HealthzPort == nil {
|
||||||
obj.HealthzPort = utilpointer.Int32Ptr(10248)
|
obj.HealthzPort = utilpointer.Int32Ptr(10248)
|
||||||
}
|
}
|
||||||
if obj.HTTPCheckFrequency == zeroDuration {
|
if obj.HealthzBindAddress == "" {
|
||||||
obj.HTTPCheckFrequency = metav1.Duration{Duration: 20 * time.Second}
|
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 {
|
if obj.ImageMinimumGCAge == zeroDuration {
|
||||||
obj.ImageMinimumGCAge = metav1.Duration{Duration: 2 * time.Minute}
|
obj.ImageMinimumGCAge = metav1.Duration{Duration: 2 * time.Minute}
|
||||||
}
|
}
|
||||||
if obj.ImageGCHighThresholdPercent == nil {
|
if obj.ImageGCHighThresholdPercent == nil {
|
||||||
// default is below docker's default dm.min_free_space of 90%
|
// default is below docker's default dm.min_free_space of 90%
|
||||||
temp := int32(85)
|
obj.ImageGCHighThresholdPercent = utilpointer.Int32Ptr(85)
|
||||||
obj.ImageGCHighThresholdPercent = &temp
|
|
||||||
}
|
}
|
||||||
if obj.ImageGCLowThresholdPercent == nil {
|
if obj.ImageGCLowThresholdPercent == nil {
|
||||||
temp := int32(80)
|
obj.ImageGCLowThresholdPercent = utilpointer.Int32Ptr(80)
|
||||||
obj.ImageGCLowThresholdPercent = &temp
|
|
||||||
}
|
}
|
||||||
if obj.MaxOpenFiles == 0 {
|
if obj.VolumeStatsAggPeriod == zeroDuration {
|
||||||
obj.MaxOpenFiles = 1000000
|
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 {
|
if obj.MaxPods == 0 {
|
||||||
obj.MaxPods = 110
|
obj.MaxPods = 110
|
||||||
|
@ -122,53 +145,26 @@ func SetDefaults_KubeletConfiguration(obj *KubeletConfiguration) {
|
||||||
temp := int64(-1)
|
temp := int64(-1)
|
||||||
obj.PodPidsLimit = &temp
|
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 == "" {
|
if obj.ResolverConfig == "" {
|
||||||
obj.ResolverConfig = kubetypes.ResolvConfDefault
|
obj.ResolverConfig = kubetypes.ResolvConfDefault
|
||||||
}
|
}
|
||||||
if obj.SerializeImagePulls == nil {
|
if obj.CPUCFSQuota == nil {
|
||||||
obj.SerializeImagePulls = boolVar(true)
|
obj.CPUCFSQuota = utilpointer.BoolPtr(true)
|
||||||
}
|
}
|
||||||
if obj.StreamingConnectionIdleTimeout == zeroDuration {
|
if obj.MaxOpenFiles == 0 {
|
||||||
obj.StreamingConnectionIdleTimeout = metav1.Duration{Duration: 4 * time.Hour}
|
obj.MaxOpenFiles = 1000000
|
||||||
}
|
|
||||||
if obj.SyncFrequency == zeroDuration {
|
|
||||||
obj.SyncFrequency = metav1.Duration{Duration: 1 * time.Minute}
|
|
||||||
}
|
}
|
||||||
if obj.ContentType == "" {
|
if obj.ContentType == "" {
|
||||||
obj.ContentType = "application/vnd.kubernetes.protobuf"
|
obj.ContentType = "application/vnd.kubernetes.protobuf"
|
||||||
}
|
}
|
||||||
if obj.KubeAPIQPS == nil {
|
if obj.KubeAPIQPS == nil {
|
||||||
temp := int32(5)
|
obj.KubeAPIQPS = utilpointer.Int32Ptr(5)
|
||||||
obj.KubeAPIQPS = &temp
|
|
||||||
}
|
}
|
||||||
if obj.KubeAPIBurst == 0 {
|
if obj.KubeAPIBurst == 0 {
|
||||||
obj.KubeAPIBurst = 10
|
obj.KubeAPIBurst = 10
|
||||||
}
|
}
|
||||||
if string(obj.HairpinMode) == "" {
|
if obj.SerializeImagePulls == nil {
|
||||||
obj.HairpinMode = PromiscuousBridge
|
obj.SerializeImagePulls = utilpointer.BoolPtr(true)
|
||||||
}
|
}
|
||||||
if obj.EvictionHard == nil {
|
if obj.EvictionHard == nil {
|
||||||
obj.EvictionHard = map[string]string{
|
obj.EvictionHard = map[string]string{
|
||||||
|
@ -181,36 +177,22 @@ func SetDefaults_KubeletConfiguration(obj *KubeletConfiguration) {
|
||||||
if obj.EvictionPressureTransitionPeriod == zeroDuration {
|
if obj.EvictionPressureTransitionPeriod == zeroDuration {
|
||||||
obj.EvictionPressureTransitionPeriod = metav1.Duration{Duration: 5 * time.Minute}
|
obj.EvictionPressureTransitionPeriod = metav1.Duration{Duration: 5 * time.Minute}
|
||||||
}
|
}
|
||||||
|
if obj.EnableControllerAttachDetach == nil {
|
||||||
|
obj.EnableControllerAttachDetach = utilpointer.BoolPtr(true)
|
||||||
|
}
|
||||||
if obj.MakeIPTablesUtilChains == nil {
|
if obj.MakeIPTablesUtilChains == nil {
|
||||||
obj.MakeIPTablesUtilChains = boolVar(true)
|
obj.MakeIPTablesUtilChains = utilpointer.BoolPtr(true)
|
||||||
}
|
}
|
||||||
if obj.IPTablesMasqueradeBit == nil {
|
if obj.IPTablesMasqueradeBit == nil {
|
||||||
temp := int32(DefaultIPTablesMasqueradeBit)
|
obj.IPTablesMasqueradeBit = utilpointer.Int32Ptr(DefaultIPTablesMasqueradeBit)
|
||||||
obj.IPTablesMasqueradeBit = &temp
|
|
||||||
}
|
}
|
||||||
if obj.IPTablesDropBit == nil {
|
if obj.IPTablesDropBit == nil {
|
||||||
temp := int32(DefaultIPTablesDropBit)
|
obj.IPTablesDropBit = utilpointer.Int32Ptr(DefaultIPTablesDropBit)
|
||||||
obj.IPTablesDropBit = &temp
|
|
||||||
}
|
}
|
||||||
if obj.FailSwapOn == nil {
|
if obj.FailSwapOn == nil {
|
||||||
obj.FailSwapOn = utilpointer.BoolPtr(true)
|
obj.FailSwapOn = utilpointer.BoolPtr(true)
|
||||||
}
|
}
|
||||||
if obj.CgroupsPerQOS == nil {
|
|
||||||
temp := true
|
|
||||||
obj.CgroupsPerQOS = &temp
|
|
||||||
}
|
|
||||||
if obj.CgroupDriver == "" {
|
|
||||||
obj.CgroupDriver = "cgroupfs"
|
|
||||||
}
|
|
||||||
if obj.EnforceNodeAllocatable == nil {
|
if obj.EnforceNodeAllocatable == nil {
|
||||||
obj.EnforceNodeAllocatable = DefaultNodeAllocatableEnforcement
|
obj.EnforceNodeAllocatable = DefaultNodeAllocatableEnforcement
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func boolVar(b bool) *bool {
|
|
||||||
return &b
|
|
||||||
}
|
|
||||||
|
|
||||||
var (
|
|
||||||
defaultCfg = KubeletConfiguration{}
|
|
||||||
)
|
|
|
@ -19,4 +19,4 @@ limitations under the License.
|
||||||
// +k8s:openapi-gen=true
|
// +k8s:openapi-gen=true
|
||||||
// +k8s:defaulter-gen=TypeMeta
|
// +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"
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package v1alpha1
|
package v1beta1
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
|
@ -22,10 +22,10 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
// GroupName is the group name use in this package
|
// 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
|
// 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 (
|
var (
|
||||||
// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.
|
// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package v1alpha1
|
package v1beta1
|
||||||
|
|
||||||
import (
|
import (
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
@ -40,136 +40,222 @@ const (
|
||||||
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||||
|
|
||||||
// A configuration field should go in KubeletFlags instead of KubeletConfiguration if
|
// KubeletConfiguration contains the configuration for the Kubelet
|
||||||
// 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.
|
|
||||||
type KubeletConfiguration struct {
|
type KubeletConfiguration struct {
|
||||||
metav1.TypeMeta `json:",inline"`
|
metav1.TypeMeta `json:",inline"`
|
||||||
|
|
||||||
// podManifestPath is the path to the directory containing pod manifests to
|
// podManifestPath is the path to the directory containing pod manifests to
|
||||||
// run, or the path to a single manifest file
|
// run, or the path to a single manifest file.
|
||||||
PodManifestPath string `json:"podManifestPath"`
|
// Default: ""
|
||||||
|
// +optional
|
||||||
|
PodManifestPath string `json:"podManifestPath,omitempty"`
|
||||||
// syncFrequency is the max period between synchronizing running
|
// syncFrequency is the max period between synchronizing running
|
||||||
// containers and config
|
// containers and config.
|
||||||
SyncFrequency metav1.Duration `json:"syncFrequency"`
|
// Default: "1m"
|
||||||
|
// +optional
|
||||||
|
SyncFrequency metav1.Duration `json:"syncFrequency,omitempty"`
|
||||||
// fileCheckFrequency is the duration between checking config files for
|
// fileCheckFrequency is the duration between checking config files for
|
||||||
// new data
|
// 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 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 is the URL for accessing the container manifest
|
||||||
ManifestURL string `json:"manifestURL"`
|
// Default: ""
|
||||||
// manifestURLHeader is the HTTP header to use when accessing the manifest
|
// +optional
|
||||||
// URL, with the key separated from the value with a ':', as in 'key:value'
|
ManifestURL string `json:"manifestURL,omitempty"`
|
||||||
ManifestURLHeader map[string][]string `json:"manifestURLHeader"`
|
// 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
|
// address is the IP address for the Kubelet to serve on (set to 0.0.0.0
|
||||||
// for all interfaces)
|
// for all interfaces).
|
||||||
Address string `json:"address"`
|
// Default: "0.0.0.0"
|
||||||
|
// +optional
|
||||||
|
Address string `json:"address,omitempty"`
|
||||||
// port is the port for the Kubelet to serve on.
|
// 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
|
// readOnlyPort is the read-only port for the Kubelet to serve on with
|
||||||
// no authentication/authorization. Disabled (set to 0) by default.
|
// no authentication/authorization.
|
||||||
ReadOnlyPort int32 `json:"readOnlyPort"`
|
// Default: 0 (disabled)
|
||||||
|
// +optional
|
||||||
|
ReadOnlyPort int32 `json:"readOnlyPort,omitempty"`
|
||||||
// tlsCertFile is the file containing x509 Certificate for HTTPS. (CA cert,
|
// tlsCertFile is the file containing x509 Certificate for HTTPS. (CA cert,
|
||||||
// if any, concatenated after server cert). If tlsCertFile and
|
// if any, concatenated after server cert). If tlsCertFile and
|
||||||
// tlsPrivateKeyFile are not provided, a self-signed certificate
|
// tlsPrivateKeyFile are not provided, a self-signed certificate
|
||||||
// and key are generated for the public address and saved to the directory
|
// 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 `json:"tlsCertFile"`
|
// Default: ""
|
||||||
// tlsPrivateKeyFile is the file containing x509 private key matching
|
// +optional
|
||||||
// tlsCertFile.
|
TLSCertFile string `json:"tlsCertFile,omitempty"`
|
||||||
TLSPrivateKeyFile string `json:"tlsPrivateKeyFile"`
|
// 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.
|
// 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).
|
// 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.
|
// TLSMinVersion is the minimum TLS version supported.
|
||||||
// Values are from tls package constants (https://golang.org/pkg/crypto/tls/#pkg-constants).
|
// 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
|
// 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"`
|
Authentication KubeletAuthentication `json:"authentication"`
|
||||||
// authorization specifies how requests to the Kubelet's server are authorized
|
// authorization specifies how requests to the Kubelet's server are authorized
|
||||||
|
// Defaults:
|
||||||
|
// mode: Webhook
|
||||||
|
// webhook:
|
||||||
|
// cacheAuthorizedTTL: "5m"
|
||||||
|
// cacheUnauthorizedTTL: "30s"
|
||||||
|
// +optional
|
||||||
Authorization KubeletAuthorization `json:"authorization"`
|
Authorization KubeletAuthorization `json:"authorization"`
|
||||||
// registryPullQPS is the limit of registry pulls per second. If 0,
|
// registryPullQPS is the limit of registry pulls per second.
|
||||||
// unlimited. Set to 0 for no limit. Defaults to 5.0.
|
// Set to 0 for no limit.
|
||||||
RegistryPullQPS *int32 `json:"registryPullQPS"`
|
// Default: 5
|
||||||
// registryBurst is the maximum size of a bursty pulls, temporarily allows
|
// +optional
|
||||||
// pulls to burst to this number, while still not exceeding registryQps.
|
RegistryPullQPS *int32 `json:"registryPullQPS,omitempty"`
|
||||||
// Only used if registryQPS > 0.
|
// registryBurst is the maximum size of bursty pulls, temporarily allows
|
||||||
RegistryBurst int32 `json:"registryBurst"`
|
// 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
|
// eventRecordQPS is the maximum event creations per second. If 0, there
|
||||||
// is no limit enforced.
|
// is no limit enforced.
|
||||||
EventRecordQPS *int32 `json:"eventRecordQPS"`
|
// Default: 5
|
||||||
// eventBurst is the maximum size of a bursty event records, temporarily
|
// +optional
|
||||||
// allows event records to burst to this number, while still not exceeding
|
EventRecordQPS *int32 `json:"eventRecordQPS,omitempty"`
|
||||||
// event-qps. Only used if eventQps > 0
|
// eventBurst is the maximum size of a burst of event creations, temporarily
|
||||||
EventBurst int32 `json:"eventBurst"`
|
// 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
|
// enableDebuggingHandlers enables server endpoints for log collection
|
||||||
// and local running of containers and commands
|
// 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 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 is the port of the localhost healthz endpoint (set to 0 to disable)
|
||||||
HealthzPort *int32 `json:"healthzPort"`
|
// Default: 10248
|
||||||
// healthzBindAddress is the IP address for the healthz server to serve
|
// +optional
|
||||||
// on.
|
HealthzPort *int32 `json:"healthzPort,omitempty"`
|
||||||
HealthzBindAddress string `json:"healthzBindAddress"`
|
// 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
|
// oomScoreAdj is The oom-score-adj value for kubelet process. Values
|
||||||
// must be within the range [-1000, 1000].
|
// 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
|
// clusterDomain is the DNS domain for this cluster. If set, kubelet will
|
||||||
// configure all containers to search this domain in addition to the
|
// configure all containers to search this domain in addition to the
|
||||||
// host's search domains.
|
// host's search domains.
|
||||||
ClusterDomain string `json:"clusterDomain"`
|
// Default: ""
|
||||||
// clusterDNS is a list of IP address for the cluster DNS server. If set,
|
// +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
|
// 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 `json:"clusterDNS"`
|
// Default: nil
|
||||||
|
// +optional
|
||||||
|
ClusterDNS []string `json:"clusterDNS,omitempty"`
|
||||||
// streamingConnectionIdleTimeout is the maximum time a streaming connection
|
// streamingConnectionIdleTimeout is the maximum time a streaming connection
|
||||||
// can be idle before the connection is automatically closed.
|
// 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
|
// nodeStatusUpdateFrequency is the frequency that kubelet posts node
|
||||||
// status to master. Note: be cautious when changing the constant, it
|
// status to master. Note: be cautious when changing the constant, it
|
||||||
// must work with nodeMonitorGracePeriod in nodecontroller.
|
// 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
|
// imageMinimumGCAge is the minimum age for an unused image before it is
|
||||||
// garbage collected.
|
// 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
|
// imageGCHighThresholdPercent is the percent of disk usage after which
|
||||||
// image garbage collection is always run. The percent is calculated as
|
// image garbage collection is always run. The percent is calculated as
|
||||||
// this field value out of 100.
|
// 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
|
// imageGCLowThresholdPercent is the percent of disk usage before which
|
||||||
// image garbage collection is never run. Lowest disk usage to garbage
|
// image garbage collection is never run. Lowest disk usage to garbage
|
||||||
// collect to. The percent is calculated as this field value out of 100.
|
// 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
|
// How frequently to calculate and cache volume disk usage for all pods
|
||||||
VolumeStatsAggPeriod metav1.Duration `json:"volumeStatsAggPeriod"`
|
// Default: "1m"
|
||||||
// kubeletCgroups is the absolute name of cgroups to isolate the kubelet in.
|
// +optional
|
||||||
KubeletCgroups string `json:"kubeletCgroups"`
|
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
|
// systemCgroups is absolute name of cgroups in which to place
|
||||||
// all non-kernel processes that are not already in a container. Empty
|
// all non-kernel processes that are not already in a container. Empty
|
||||||
// for no container. Rolling back the flag requires a reboot.
|
// 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
|
// cgroupRoot is the root cgroup to use for pods. This is handled by the
|
||||||
// container runtime on a best effort basis.
|
// 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
|
// Enable QoS based Cgroup hierarchy: top level cgroups for QoS Classes
|
||||||
// And all Burstable and BestEffort pods are brought up under their
|
// And all Burstable and BestEffort pods are brought up under their
|
||||||
// specific top level QoS cgroup.
|
// specific top level QoS cgroup.
|
||||||
// +optional
|
// +optional
|
||||||
|
// Default: true
|
||||||
|
// +optional
|
||||||
CgroupsPerQOS *bool `json:"cgroupsPerQOS,omitempty"`
|
CgroupsPerQOS *bool `json:"cgroupsPerQOS,omitempty"`
|
||||||
// driver that the kubelet uses to manipulate cgroups on the host (cgroupfs or systemd)
|
// driver that the kubelet uses to manipulate cgroups on the host (cgroupfs or systemd)
|
||||||
// +optional
|
// +optional
|
||||||
|
// Default: "cgroupfs"
|
||||||
|
// +optional
|
||||||
CgroupDriver string `json:"cgroupDriver,omitempty"`
|
CgroupDriver string `json:"cgroupDriver,omitempty"`
|
||||||
// CPUManagerPolicy is the name of the policy to use.
|
// 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.
|
// 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
|
// runtimeRequestTimeout is the timeout for all runtime requests except long running
|
||||||
// requests - pull, logs, exec and attach.
|
// requests - pull, logs, exec and attach.
|
||||||
RuntimeRequestTimeout metav1.Duration `json:"runtimeRequestTimeout"`
|
// Default: "2m"
|
||||||
// How should the kubelet configure the container bridge for hairpin packets.
|
// +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
|
// Setting this flag allows endpoints in a Service to loadbalance back to
|
||||||
// themselves if they should try to access their own Service. Values:
|
// themselves if they should try to access their own Service. Values:
|
||||||
// "promiscuous-bridge": make the container bridge promiscuous.
|
// "promiscuous-bridge": make the container bridge promiscuous.
|
||||||
|
@ -177,100 +263,166 @@ type KubeletConfiguration struct {
|
||||||
// "none": do nothing.
|
// "none": do nothing.
|
||||||
// Generally, one must set --hairpin-mode=hairpin-veth to achieve hairpin NAT,
|
// Generally, one must set --hairpin-mode=hairpin-veth to achieve hairpin NAT,
|
||||||
// because promiscuous-bridge assumes the existence of a container bridge named cbr0.
|
// 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 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.
|
// The CIDR to use for pod IP addresses, only used in standalone mode.
|
||||||
// In cluster mode, this is obtained from the master.
|
// 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 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
|
// ResolverConfig is the resolver configuration file used as the basis
|
||||||
// for the container DNS resolution configuration.
|
// for the container DNS resolution configuration.
|
||||||
ResolverConfig string `json:"resolvConf"`
|
// Default: "/etc/resolv.conf"
|
||||||
// cpuCFSQuota is Enable CPU CFS quota enforcement for containers that
|
// +optional
|
||||||
// specify CPU limits
|
ResolverConfig string `json:"resolvConf,omitempty"`
|
||||||
CPUCFSQuota *bool `json:"cpuCFSQuota"`
|
// 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 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 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 is the QPS to use while talking with kubernetes apiserver
|
||||||
KubeAPIQPS *int32 `json:"kubeAPIQPS"`
|
// Default: 5
|
||||||
// kubeAPIBurst is the burst to allow while talking with kubernetes
|
// +optional
|
||||||
// apiserver
|
KubeAPIQPS *int32 `json:"kubeAPIQPS,omitempty"`
|
||||||
KubeAPIBurst int32 `json:"kubeAPIBurst"`
|
// 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
|
// serializeImagePulls when enabled, tells the Kubelet to pull images one
|
||||||
// at a time. We recommend *not* changing the default value on nodes that
|
// 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.
|
// run docker daemon with version < 1.9 or an Aufs storage backend.
|
||||||
// Issue #10959 has more details.
|
// 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"}.
|
// 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
|
// +optional
|
||||||
EvictionHard map[string]string `json:"evictionHard,omitempty"`
|
EvictionHard map[string]string `json:"evictionHard,omitempty"`
|
||||||
// Map of signal names to quantities that defines soft eviction thresholds. For example: {"memory.available": "300Mi"}.
|
// Map of signal names to quantities that defines soft eviction thresholds. For example: {"memory.available": "300Mi"}.
|
||||||
|
// Default: nil
|
||||||
// +optional
|
// +optional
|
||||||
EvictionSoft map[string]string `json:"evictionSoft,omitempty"`
|
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"}.
|
// Map of signal names to quantities that defines grace periods for each soft eviction signal. For example: {"memory.available": "30s"}.
|
||||||
|
// Default: nil
|
||||||
// +optional
|
// +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.
|
// 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.
|
// 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
|
// 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
|
// 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"}
|
// that resource is under pressure. For example: {"imagefs.available": "2Gi"}
|
||||||
// +optional
|
// +optional
|
||||||
EvictionMinimumReclaim map[string]string `json:"evictionMinimumReclaim"`
|
// Default: nil
|
||||||
// Maximum number of pods per core. Cannot exceed MaxPods
|
// +optional
|
||||||
PodsPerCore int32 `json:"podsPerCore"`
|
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
|
// enableControllerAttachDetach enables the Attach/Detach controller to
|
||||||
// manage attachment/detachment of volumes scheduled to this node, and
|
// manage attachment/detachment of volumes scheduled to this node, and
|
||||||
// disables kubelet from executing any attach/detach operations
|
// disables kubelet from executing any attach/detach operations
|
||||||
EnableControllerAttachDetach *bool `json:"enableControllerAttachDetach"`
|
// Default: true
|
||||||
// Default behaviour for kernel tuning
|
// +optional
|
||||||
ProtectKernelDefaults bool `json:"protectKernelDefaults"`
|
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.
|
// 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.
|
// These rules will serve as utility rules for various components, e.g. KubeProxy.
|
||||||
// The rules will be created based on IPTablesMasqueradeBit and IPTablesDropBit.
|
// 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
|
// 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.
|
// 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
|
// 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.
|
// 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.
|
// Values must be within the range [0, 31]. Must be different from other mark bits.
|
||||||
IPTablesDropBit *int32 `json:"iptablesDropBit"`
|
// Default: 15
|
||||||
// featureGates is a map of feature names to bools that enable or disable alpha/experimental features.
|
// +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"`
|
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"`
|
FailSwapOn *bool `json:"failSwapOn,omitempty"`
|
||||||
|
|
||||||
/* following flags are meant for Node Allocatable */
|
/* following flags are meant for Node Allocatable */
|
||||||
|
|
||||||
// A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs
|
// A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs
|
||||||
// that describe resources reserved for non-kubernetes components.
|
// 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.
|
// 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
|
// A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs
|
||||||
// that describe resources reserved for kubernetes system components.
|
// 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.
|
// 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.
|
// 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.
|
// 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"`
|
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.
|
// 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.
|
// 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"`
|
KubeReservedCgroup string `json:"kubeReservedCgroup,omitempty"`
|
||||||
// This flag specifies the various Node Allocatable enforcements that Kubelet needs to perform.
|
// 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`.
|
// 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.
|
// 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.
|
// 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"`
|
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.
|
// mode is the authorization mode to apply to requests to the kubelet server.
|
||||||
// Valid values are AlwaysAllow and Webhook.
|
// Valid values are AlwaysAllow and Webhook.
|
||||||
// Webhook mode uses the SubjectAccessReview API to determine authorization.
|
// 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.
|
// webhook contains settings related to Webhook authorization.
|
||||||
|
// +optional
|
||||||
Webhook KubeletWebhookAuthorization `json:"webhook"`
|
Webhook KubeletWebhookAuthorization `json:"webhook"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type KubeletWebhookAuthorization struct {
|
type KubeletWebhookAuthorization struct {
|
||||||
// cacheAuthorizedTTL is the duration to cache 'authorized' responses from the webhook authorizer.
|
// 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 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 {
|
type KubeletAuthentication struct {
|
||||||
// x509 contains settings related to x509 client certificate authentication
|
// x509 contains settings related to x509 client certificate authentication
|
||||||
|
// +optional
|
||||||
X509 KubeletX509Authentication `json:"x509"`
|
X509 KubeletX509Authentication `json:"x509"`
|
||||||
// webhook contains settings related to webhook bearer token authentication
|
// webhook contains settings related to webhook bearer token authentication
|
||||||
|
// +optional
|
||||||
Webhook KubeletWebhookAuthentication `json:"webhook"`
|
Webhook KubeletWebhookAuthentication `json:"webhook"`
|
||||||
// anonymous contains settings related to anonymous authentication
|
// anonymous contains settings related to anonymous authentication
|
||||||
|
// +optional
|
||||||
Anonymous KubeletAnonymousAuthentication `json:"anonymous"`
|
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
|
// 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,
|
// 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.
|
// and groups corresponding to the Organization in the client certificate.
|
||||||
ClientCAFile string `json:"clientCAFile"`
|
// +optional
|
||||||
|
ClientCAFile string `json:"clientCAFile,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type KubeletWebhookAuthentication struct {
|
type KubeletWebhookAuthentication struct {
|
||||||
// enabled allows bearer token authentication backed by the tokenreviews.authentication.k8s.io API
|
// 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 enables caching of authentication results
|
||||||
CacheTTL metav1.Duration `json:"cacheTTL"`
|
// +optional
|
||||||
|
CacheTTL metav1.Duration `json:"cacheTTL,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type KubeletAnonymousAuthentication struct {
|
type KubeletAnonymousAuthentication struct {
|
||||||
// enabled allows anonymous requests to the kubelet server.
|
// enabled allows anonymous requests to the kubelet server.
|
||||||
// Requests that are not rejected by another authentication method are treated as anonymous requests.
|
// 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.
|
// 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"`
|
||||||
}
|
}
|
|
@ -18,7 +18,7 @@ limitations under the License.
|
||||||
|
|
||||||
// This file was autogenerated by conversion-gen. Do not edit it manually!
|
// This file was autogenerated by conversion-gen. Do not edit it manually!
|
||||||
|
|
||||||
package v1alpha1
|
package v1beta1
|
||||||
|
|
||||||
import (
|
import (
|
||||||
unsafe "unsafe"
|
unsafe "unsafe"
|
||||||
|
@ -37,110 +37,110 @@ func init() {
|
||||||
// Public to allow building arbitrary schemes.
|
// Public to allow building arbitrary schemes.
|
||||||
func RegisterConversions(scheme *runtime.Scheme) error {
|
func RegisterConversions(scheme *runtime.Scheme) error {
|
||||||
return scheme.AddGeneratedConversionFuncs(
|
return scheme.AddGeneratedConversionFuncs(
|
||||||
Convert_v1alpha1_KubeletAnonymousAuthentication_To_kubeletconfig_KubeletAnonymousAuthentication,
|
Convert_v1beta1_KubeletAnonymousAuthentication_To_kubeletconfig_KubeletAnonymousAuthentication,
|
||||||
Convert_kubeletconfig_KubeletAnonymousAuthentication_To_v1alpha1_KubeletAnonymousAuthentication,
|
Convert_kubeletconfig_KubeletAnonymousAuthentication_To_v1beta1_KubeletAnonymousAuthentication,
|
||||||
Convert_v1alpha1_KubeletAuthentication_To_kubeletconfig_KubeletAuthentication,
|
Convert_v1beta1_KubeletAuthentication_To_kubeletconfig_KubeletAuthentication,
|
||||||
Convert_kubeletconfig_KubeletAuthentication_To_v1alpha1_KubeletAuthentication,
|
Convert_kubeletconfig_KubeletAuthentication_To_v1beta1_KubeletAuthentication,
|
||||||
Convert_v1alpha1_KubeletAuthorization_To_kubeletconfig_KubeletAuthorization,
|
Convert_v1beta1_KubeletAuthorization_To_kubeletconfig_KubeletAuthorization,
|
||||||
Convert_kubeletconfig_KubeletAuthorization_To_v1alpha1_KubeletAuthorization,
|
Convert_kubeletconfig_KubeletAuthorization_To_v1beta1_KubeletAuthorization,
|
||||||
Convert_v1alpha1_KubeletConfiguration_To_kubeletconfig_KubeletConfiguration,
|
Convert_v1beta1_KubeletConfiguration_To_kubeletconfig_KubeletConfiguration,
|
||||||
Convert_kubeletconfig_KubeletConfiguration_To_v1alpha1_KubeletConfiguration,
|
Convert_kubeletconfig_KubeletConfiguration_To_v1beta1_KubeletConfiguration,
|
||||||
Convert_v1alpha1_KubeletWebhookAuthentication_To_kubeletconfig_KubeletWebhookAuthentication,
|
Convert_v1beta1_KubeletWebhookAuthentication_To_kubeletconfig_KubeletWebhookAuthentication,
|
||||||
Convert_kubeletconfig_KubeletWebhookAuthentication_To_v1alpha1_KubeletWebhookAuthentication,
|
Convert_kubeletconfig_KubeletWebhookAuthentication_To_v1beta1_KubeletWebhookAuthentication,
|
||||||
Convert_v1alpha1_KubeletWebhookAuthorization_To_kubeletconfig_KubeletWebhookAuthorization,
|
Convert_v1beta1_KubeletWebhookAuthorization_To_kubeletconfig_KubeletWebhookAuthorization,
|
||||||
Convert_kubeletconfig_KubeletWebhookAuthorization_To_v1alpha1_KubeletWebhookAuthorization,
|
Convert_kubeletconfig_KubeletWebhookAuthorization_To_v1beta1_KubeletWebhookAuthorization,
|
||||||
Convert_v1alpha1_KubeletX509Authentication_To_kubeletconfig_KubeletX509Authentication,
|
Convert_v1beta1_KubeletX509Authentication_To_kubeletconfig_KubeletX509Authentication,
|
||||||
Convert_kubeletconfig_KubeletX509Authentication_To_v1alpha1_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 {
|
if err := v1.Convert_Pointer_bool_To_bool(&in.Enabled, &out.Enabled, s); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Convert_v1alpha1_KubeletAnonymousAuthentication_To_kubeletconfig_KubeletAnonymousAuthentication is an autogenerated conversion function.
|
// Convert_v1beta1_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 {
|
func Convert_v1beta1_KubeletAnonymousAuthentication_To_kubeletconfig_KubeletAnonymousAuthentication(in *KubeletAnonymousAuthentication, out *kubeletconfig.KubeletAnonymousAuthentication, s conversion.Scope) error {
|
||||||
return autoConvert_v1alpha1_KubeletAnonymousAuthentication_To_kubeletconfig_KubeletAnonymousAuthentication(in, out, s)
|
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 {
|
if err := v1.Convert_bool_To_Pointer_bool(&in.Enabled, &out.Enabled, s); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Convert_kubeletconfig_KubeletAnonymousAuthentication_To_v1alpha1_KubeletAnonymousAuthentication is an autogenerated conversion function.
|
// Convert_kubeletconfig_KubeletAnonymousAuthentication_To_v1beta1_KubeletAnonymousAuthentication is an autogenerated conversion function.
|
||||||
func Convert_kubeletconfig_KubeletAnonymousAuthentication_To_v1alpha1_KubeletAnonymousAuthentication(in *kubeletconfig.KubeletAnonymousAuthentication, out *KubeletAnonymousAuthentication, s conversion.Scope) error {
|
func Convert_kubeletconfig_KubeletAnonymousAuthentication_To_v1beta1_KubeletAnonymousAuthentication(in *kubeletconfig.KubeletAnonymousAuthentication, out *KubeletAnonymousAuthentication, s conversion.Scope) error {
|
||||||
return autoConvert_kubeletconfig_KubeletAnonymousAuthentication_To_v1alpha1_KubeletAnonymousAuthentication(in, out, s)
|
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 {
|
func autoConvert_v1beta1_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 {
|
if err := Convert_v1beta1_KubeletX509Authentication_To_kubeletconfig_KubeletX509Authentication(&in.X509, &out.X509, s); err != nil {
|
||||||
return err
|
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
|
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 err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Convert_v1alpha1_KubeletAuthentication_To_kubeletconfig_KubeletAuthentication is an autogenerated conversion function.
|
// Convert_v1beta1_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 {
|
func Convert_v1beta1_KubeletAuthentication_To_kubeletconfig_KubeletAuthentication(in *KubeletAuthentication, out *kubeletconfig.KubeletAuthentication, s conversion.Scope) error {
|
||||||
return autoConvert_v1alpha1_KubeletAuthentication_To_kubeletconfig_KubeletAuthentication(in, out, s)
|
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 {
|
func autoConvert_kubeletconfig_KubeletAuthentication_To_v1beta1_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 {
|
if err := Convert_kubeletconfig_KubeletX509Authentication_To_v1beta1_KubeletX509Authentication(&in.X509, &out.X509, s); err != nil {
|
||||||
return err
|
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
|
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 err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Convert_kubeletconfig_KubeletAuthentication_To_v1alpha1_KubeletAuthentication is an autogenerated conversion function.
|
// Convert_kubeletconfig_KubeletAuthentication_To_v1beta1_KubeletAuthentication is an autogenerated conversion function.
|
||||||
func Convert_kubeletconfig_KubeletAuthentication_To_v1alpha1_KubeletAuthentication(in *kubeletconfig.KubeletAuthentication, out *KubeletAuthentication, s conversion.Scope) error {
|
func Convert_kubeletconfig_KubeletAuthentication_To_v1beta1_KubeletAuthentication(in *kubeletconfig.KubeletAuthentication, out *KubeletAuthentication, s conversion.Scope) error {
|
||||||
return autoConvert_kubeletconfig_KubeletAuthentication_To_v1alpha1_KubeletAuthentication(in, out, s)
|
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)
|
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 err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Convert_v1alpha1_KubeletAuthorization_To_kubeletconfig_KubeletAuthorization is an autogenerated conversion function.
|
// Convert_v1beta1_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 {
|
func Convert_v1beta1_KubeletAuthorization_To_kubeletconfig_KubeletAuthorization(in *KubeletAuthorization, out *kubeletconfig.KubeletAuthorization, s conversion.Scope) error {
|
||||||
return autoConvert_v1alpha1_KubeletAuthorization_To_kubeletconfig_KubeletAuthorization(in, out, s)
|
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)
|
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 err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Convert_kubeletconfig_KubeletAuthorization_To_v1alpha1_KubeletAuthorization is an autogenerated conversion function.
|
// Convert_kubeletconfig_KubeletAuthorization_To_v1beta1_KubeletAuthorization is an autogenerated conversion function.
|
||||||
func Convert_kubeletconfig_KubeletAuthorization_To_v1alpha1_KubeletAuthorization(in *kubeletconfig.KubeletAuthorization, out *KubeletAuthorization, s conversion.Scope) error {
|
func Convert_kubeletconfig_KubeletAuthorization_To_v1beta1_KubeletAuthorization(in *kubeletconfig.KubeletAuthorization, out *KubeletAuthorization, s conversion.Scope) error {
|
||||||
return autoConvert_kubeletconfig_KubeletAuthorization_To_v1alpha1_KubeletAuthorization(in, out, s)
|
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.PodManifestPath = in.PodManifestPath
|
||||||
out.SyncFrequency = in.SyncFrequency
|
out.SyncFrequency = in.SyncFrequency
|
||||||
out.FileCheckFrequency = in.FileCheckFrequency
|
out.FileCheckFrequency = in.FileCheckFrequency
|
||||||
|
@ -154,10 +154,10 @@ func autoConvert_v1alpha1_KubeletConfiguration_To_kubeletconfig_KubeletConfigura
|
||||||
out.TLSPrivateKeyFile = in.TLSPrivateKeyFile
|
out.TLSPrivateKeyFile = in.TLSPrivateKeyFile
|
||||||
out.TLSCipherSuites = *(*[]string)(unsafe.Pointer(&in.TLSCipherSuites))
|
out.TLSCipherSuites = *(*[]string)(unsafe.Pointer(&in.TLSCipherSuites))
|
||||||
out.TLSMinVersion = in.TLSMinVersion
|
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
|
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
|
return err
|
||||||
}
|
}
|
||||||
if err := v1.Convert_Pointer_int32_To_int32(&in.RegistryPullQPS, &out.RegistryPullQPS, s); err != nil {
|
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
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Convert_v1alpha1_KubeletConfiguration_To_kubeletconfig_KubeletConfiguration is an autogenerated conversion function.
|
// Convert_v1beta1_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 {
|
func Convert_v1beta1_KubeletConfiguration_To_kubeletconfig_KubeletConfiguration(in *KubeletConfiguration, out *kubeletconfig.KubeletConfiguration, s conversion.Scope) error {
|
||||||
return autoConvert_v1alpha1_KubeletConfiguration_To_kubeletconfig_KubeletConfiguration(in, out, s)
|
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.PodManifestPath = in.PodManifestPath
|
||||||
out.SyncFrequency = in.SyncFrequency
|
out.SyncFrequency = in.SyncFrequency
|
||||||
out.FileCheckFrequency = in.FileCheckFrequency
|
out.FileCheckFrequency = in.FileCheckFrequency
|
||||||
|
@ -271,10 +271,10 @@ func autoConvert_kubeletconfig_KubeletConfiguration_To_v1alpha1_KubeletConfigura
|
||||||
out.TLSPrivateKeyFile = in.TLSPrivateKeyFile
|
out.TLSPrivateKeyFile = in.TLSPrivateKeyFile
|
||||||
out.TLSCipherSuites = *(*[]string)(unsafe.Pointer(&in.TLSCipherSuites))
|
out.TLSCipherSuites = *(*[]string)(unsafe.Pointer(&in.TLSCipherSuites))
|
||||||
out.TLSMinVersion = in.TLSMinVersion
|
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
|
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
|
return err
|
||||||
}
|
}
|
||||||
if err := v1.Convert_int32_To_Pointer_int32(&in.RegistryPullQPS, &out.RegistryPullQPS, s); err != nil {
|
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.VolumeStatsAggPeriod = in.VolumeStatsAggPeriod
|
||||||
out.KubeletCgroups = in.KubeletCgroups
|
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 {
|
if err := v1.Convert_bool_To_Pointer_bool(&in.CgroupsPerQOS, &out.CgroupsPerQOS, s); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
out.CgroupDriver = in.CgroupDriver
|
out.CgroupDriver = in.CgroupDriver
|
||||||
out.SystemCgroups = in.SystemCgroups
|
|
||||||
out.CgroupRoot = in.CgroupRoot
|
|
||||||
out.CPUManagerPolicy = in.CPUManagerPolicy
|
out.CPUManagerPolicy = in.CPUManagerPolicy
|
||||||
out.CPUManagerReconcilePeriod = in.CPUManagerReconcilePeriod
|
out.CPUManagerReconcilePeriod = in.CPUManagerReconcilePeriod
|
||||||
out.RuntimeRequestTimeout = in.RuntimeRequestTimeout
|
out.RuntimeRequestTimeout = in.RuntimeRequestTimeout
|
||||||
|
@ -369,12 +369,12 @@ func autoConvert_kubeletconfig_KubeletConfiguration_To_v1alpha1_KubeletConfigura
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Convert_kubeletconfig_KubeletConfiguration_To_v1alpha1_KubeletConfiguration is an autogenerated conversion function.
|
// Convert_kubeletconfig_KubeletConfiguration_To_v1beta1_KubeletConfiguration is an autogenerated conversion function.
|
||||||
func Convert_kubeletconfig_KubeletConfiguration_To_v1alpha1_KubeletConfiguration(in *kubeletconfig.KubeletConfiguration, out *KubeletConfiguration, s conversion.Scope) error {
|
func Convert_kubeletconfig_KubeletConfiguration_To_v1beta1_KubeletConfiguration(in *kubeletconfig.KubeletConfiguration, out *KubeletConfiguration, s conversion.Scope) error {
|
||||||
return autoConvert_kubeletconfig_KubeletConfiguration_To_v1alpha1_KubeletConfiguration(in, out, s)
|
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 {
|
if err := v1.Convert_Pointer_bool_To_bool(&in.Enabled, &out.Enabled, s); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -382,12 +382,12 @@ func autoConvert_v1alpha1_KubeletWebhookAuthentication_To_kubeletconfig_KubeletW
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Convert_v1alpha1_KubeletWebhookAuthentication_To_kubeletconfig_KubeletWebhookAuthentication is an autogenerated conversion function.
|
// Convert_v1beta1_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 {
|
func Convert_v1beta1_KubeletWebhookAuthentication_To_kubeletconfig_KubeletWebhookAuthentication(in *KubeletWebhookAuthentication, out *kubeletconfig.KubeletWebhookAuthentication, s conversion.Scope) error {
|
||||||
return autoConvert_v1alpha1_KubeletWebhookAuthentication_To_kubeletconfig_KubeletWebhookAuthentication(in, out, s)
|
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 {
|
if err := v1.Convert_bool_To_Pointer_bool(&in.Enabled, &out.Enabled, s); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -395,49 +395,49 @@ func autoConvert_kubeletconfig_KubeletWebhookAuthentication_To_v1alpha1_KubeletW
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Convert_kubeletconfig_KubeletWebhookAuthentication_To_v1alpha1_KubeletWebhookAuthentication is an autogenerated conversion function.
|
// Convert_kubeletconfig_KubeletWebhookAuthentication_To_v1beta1_KubeletWebhookAuthentication is an autogenerated conversion function.
|
||||||
func Convert_kubeletconfig_KubeletWebhookAuthentication_To_v1alpha1_KubeletWebhookAuthentication(in *kubeletconfig.KubeletWebhookAuthentication, out *KubeletWebhookAuthentication, s conversion.Scope) error {
|
func Convert_kubeletconfig_KubeletWebhookAuthentication_To_v1beta1_KubeletWebhookAuthentication(in *kubeletconfig.KubeletWebhookAuthentication, out *KubeletWebhookAuthentication, s conversion.Scope) error {
|
||||||
return autoConvert_kubeletconfig_KubeletWebhookAuthentication_To_v1alpha1_KubeletWebhookAuthentication(in, out, s)
|
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.CacheAuthorizedTTL = in.CacheAuthorizedTTL
|
||||||
out.CacheUnauthorizedTTL = in.CacheUnauthorizedTTL
|
out.CacheUnauthorizedTTL = in.CacheUnauthorizedTTL
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Convert_v1alpha1_KubeletWebhookAuthorization_To_kubeletconfig_KubeletWebhookAuthorization is an autogenerated conversion function.
|
// Convert_v1beta1_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 {
|
func Convert_v1beta1_KubeletWebhookAuthorization_To_kubeletconfig_KubeletWebhookAuthorization(in *KubeletWebhookAuthorization, out *kubeletconfig.KubeletWebhookAuthorization, s conversion.Scope) error {
|
||||||
return autoConvert_v1alpha1_KubeletWebhookAuthorization_To_kubeletconfig_KubeletWebhookAuthorization(in, out, s)
|
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.CacheAuthorizedTTL = in.CacheAuthorizedTTL
|
||||||
out.CacheUnauthorizedTTL = in.CacheUnauthorizedTTL
|
out.CacheUnauthorizedTTL = in.CacheUnauthorizedTTL
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Convert_kubeletconfig_KubeletWebhookAuthorization_To_v1alpha1_KubeletWebhookAuthorization is an autogenerated conversion function.
|
// Convert_kubeletconfig_KubeletWebhookAuthorization_To_v1beta1_KubeletWebhookAuthorization is an autogenerated conversion function.
|
||||||
func Convert_kubeletconfig_KubeletWebhookAuthorization_To_v1alpha1_KubeletWebhookAuthorization(in *kubeletconfig.KubeletWebhookAuthorization, out *KubeletWebhookAuthorization, s conversion.Scope) error {
|
func Convert_kubeletconfig_KubeletWebhookAuthorization_To_v1beta1_KubeletWebhookAuthorization(in *kubeletconfig.KubeletWebhookAuthorization, out *KubeletWebhookAuthorization, s conversion.Scope) error {
|
||||||
return autoConvert_kubeletconfig_KubeletWebhookAuthorization_To_v1alpha1_KubeletWebhookAuthorization(in, out, s)
|
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
|
out.ClientCAFile = in.ClientCAFile
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Convert_v1alpha1_KubeletX509Authentication_To_kubeletconfig_KubeletX509Authentication is an autogenerated conversion function.
|
// Convert_v1beta1_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 {
|
func Convert_v1beta1_KubeletX509Authentication_To_kubeletconfig_KubeletX509Authentication(in *KubeletX509Authentication, out *kubeletconfig.KubeletX509Authentication, s conversion.Scope) error {
|
||||||
return autoConvert_v1alpha1_KubeletX509Authentication_To_kubeletconfig_KubeletX509Authentication(in, out, s)
|
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
|
out.ClientCAFile = in.ClientCAFile
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Convert_kubeletconfig_KubeletX509Authentication_To_v1alpha1_KubeletX509Authentication is an autogenerated conversion function.
|
// Convert_kubeletconfig_KubeletX509Authentication_To_v1beta1_KubeletX509Authentication is an autogenerated conversion function.
|
||||||
func Convert_kubeletconfig_KubeletX509Authentication_To_v1alpha1_KubeletX509Authentication(in *kubeletconfig.KubeletX509Authentication, out *KubeletX509Authentication, s conversion.Scope) error {
|
func Convert_kubeletconfig_KubeletX509Authentication_To_v1beta1_KubeletX509Authentication(in *kubeletconfig.KubeletX509Authentication, out *KubeletX509Authentication, s conversion.Scope) error {
|
||||||
return autoConvert_kubeletconfig_KubeletX509Authentication_To_v1alpha1_KubeletX509Authentication(in, out, s)
|
return autoConvert_kubeletconfig_KubeletX509Authentication_To_v1beta1_KubeletX509Authentication(in, out, s)
|
||||||
}
|
}
|
|
@ -18,7 +18,7 @@ limitations under the License.
|
||||||
|
|
||||||
// This file was autogenerated by deepcopy-gen. Do not edit it manually!
|
// This file was autogenerated by deepcopy-gen. Do not edit it manually!
|
||||||
|
|
||||||
package v1alpha1
|
package v1beta1
|
||||||
|
|
||||||
import (
|
import (
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
runtime "k8s.io/apimachinery/pkg/runtime"
|
|
@ -18,7 +18,7 @@ limitations under the License.
|
||||||
|
|
||||||
// This file was autogenerated by defaulter-gen. Do not edit it manually!
|
// This file was autogenerated by defaulter-gen. Do not edit it manually!
|
||||||
|
|
||||||
package v1alpha1
|
package v1beta1
|
||||||
|
|
||||||
import (
|
import (
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
runtime "k8s.io/apimachinery/pkg/runtime"
|
|
@ -18,7 +18,7 @@ go_test(
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/kubelet/apis/kubeletconfig:go_default_library",
|
"//pkg/kubelet/apis/kubeletconfig:go_default_library",
|
||||||
"//pkg/kubelet/apis/kubeletconfig/scheme: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/codec:go_default_library",
|
||||||
"//pkg/kubelet/kubeletconfig/util/test:go_default_library",
|
"//pkg/kubelet/kubeletconfig/util/test:go_default_library",
|
||||||
"//vendor/github.com/davecgh/go-spew/spew:go_default_library",
|
"//vendor/github.com/davecgh/go-spew/spew:go_default_library",
|
||||||
|
|
|
@ -65,7 +65,6 @@ func (c *configMapCheckpoint) Parse() (*kubeletconfig.KubeletConfiguration, erro
|
||||||
return nil, fmt.Errorf(emptyCfgErr)
|
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]
|
config, ok := c.configMap.Data[configMapConfigKey]
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil, fmt.Errorf("key %q not found in ConfigMap", configMapConfigKey)
|
return nil, fmt.Errorf("key %q not found in ConfigMap", configMapConfigKey)
|
||||||
|
|
|
@ -28,7 +28,7 @@ import (
|
||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig"
|
"k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig"
|
||||||
kubeletscheme "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/scheme"
|
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"
|
utiltest "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/test"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ func TestConfigMapCheckpointParse(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// get the built-in default configuration
|
// get the built-in default configuration
|
||||||
external := &kubeletconfigv1alpha1.KubeletConfiguration{}
|
external := &kubeletconfigv1beta1.KubeletConfiguration{}
|
||||||
kubeletScheme.Default(external)
|
kubeletScheme.Default(external)
|
||||||
defaultConfig := &kubeletconfig.KubeletConfiguration{}
|
defaultConfig := &kubeletconfig.KubeletConfiguration{}
|
||||||
err = kubeletScheme.Convert(external, defaultConfig, nil)
|
err = kubeletScheme.Convert(external, defaultConfig, nil)
|
||||||
|
@ -119,19 +119,19 @@ func TestConfigMapCheckpointParse(t *testing.T) {
|
||||||
"kubelet": "{*"}}, nil, "failed to decode"},
|
"kubelet": "{*"}}, nil, "failed to decode"},
|
||||||
// invalid object
|
// invalid object
|
||||||
{"missing kind", &apiv1.ConfigMap{Data: map[string]string{
|
{"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{
|
{"missing version", &apiv1.ConfigMap{Data: map[string]string{
|
||||||
"kubelet": `{"kind":"KubeletConfiguration"}`}}, nil, "failed to decode"},
|
"kubelet": `{"kind":"KubeletConfiguration"}`}}, nil, "failed to decode"},
|
||||||
{"unregistered kind", &apiv1.ConfigMap{Data: map[string]string{
|
{"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{
|
{"unregistered version", &apiv1.ConfigMap{Data: map[string]string{
|
||||||
"kubelet": `{"kind":"KubeletConfiguration","apiVersion":"bogusversion"}`}}, nil, "failed to decode"},
|
"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
|
// 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{
|
{"default from yaml", &apiv1.ConfigMap{Data: map[string]string{
|
||||||
"kubelet": `kind: KubeletConfiguration
|
"kubelet": `kind: KubeletConfiguration
|
||||||
apiVersion: kubeletconfig/v1alpha1`}}, defaultConfig, ""},
|
apiVersion: kubelet.config.k8s.io/v1beta1`}}, defaultConfig, ""},
|
||||||
{"default from json", &apiv1.ConfigMap{Data: map[string]string{
|
{"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 {
|
for _, c := range cases {
|
||||||
cpt := &configMapCheckpoint{kubeletCodecs, c.cm}
|
cpt := &configMapCheckpoint{kubeletCodecs, c.cm}
|
||||||
|
|
|
@ -40,7 +40,7 @@ go_test(
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/kubelet/apis/kubeletconfig:go_default_library",
|
"//pkg/kubelet/apis/kubeletconfig:go_default_library",
|
||||||
"//pkg/kubelet/apis/kubeletconfig/scheme: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/files:go_default_library",
|
||||||
"//pkg/kubelet/kubeletconfig/util/test:go_default_library",
|
"//pkg/kubelet/kubeletconfig/util/test:go_default_library",
|
||||||
"//pkg/util/filesystem:go_default_library",
|
"//pkg/util/filesystem:go_default_library",
|
||||||
|
|
|
@ -24,7 +24,7 @@ import (
|
||||||
apiequality "k8s.io/apimachinery/pkg/api/equality"
|
apiequality "k8s.io/apimachinery/pkg/api/equality"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig"
|
"k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig"
|
||||||
kubeletscheme "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/scheme"
|
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"
|
utilfiles "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/files"
|
||||||
utiltest "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/test"
|
utiltest "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/test"
|
||||||
utilfs "k8s.io/kubernetes/pkg/util/filesystem"
|
utilfs "k8s.io/kubernetes/pkg/util/filesystem"
|
||||||
|
@ -71,7 +71,7 @@ func TestLoad(t *testing.T) {
|
||||||
// invalid object
|
// invalid object
|
||||||
{
|
{
|
||||||
"missing kind",
|
"missing kind",
|
||||||
newString(`{"apiVersion":"kubeletconfig/v1alpha1"}`),
|
newString(`{"apiVersion":"kubelet.config.k8s.io/v1beta1"}`),
|
||||||
nil,
|
nil,
|
||||||
"failed to decode",
|
"failed to decode",
|
||||||
},
|
},
|
||||||
|
@ -83,7 +83,7 @@ func TestLoad(t *testing.T) {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"unregistered kind",
|
"unregistered kind",
|
||||||
newString(`{"kind":"BogusKind","apiVersion":"kubeletconfig/v1alpha1"}`),
|
newString(`{"kind":"BogusKind","apiVersion":"kubelet.config.k8s.io/v1beta1"}`),
|
||||||
nil,
|
nil,
|
||||||
"failed to decode",
|
"failed to decode",
|
||||||
},
|
},
|
||||||
|
@ -98,13 +98,13 @@ func TestLoad(t *testing.T) {
|
||||||
{
|
{
|
||||||
"default from yaml",
|
"default from yaml",
|
||||||
newString(`kind: KubeletConfiguration
|
newString(`kind: KubeletConfiguration
|
||||||
apiVersion: kubeletconfig/v1alpha1`),
|
apiVersion: kubelet.config.k8s.io/v1beta1`),
|
||||||
newConfig(t),
|
newConfig(t),
|
||||||
"",
|
"",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"default from json",
|
"default from json",
|
||||||
newString(`{"kind":"KubeletConfiguration","apiVersion":"kubeletconfig/v1alpha1"}`),
|
newString(`{"kind":"KubeletConfiguration","apiVersion":"kubelet.config.k8s.io/v1beta1"}`),
|
||||||
newConfig(t),
|
newConfig(t),
|
||||||
"",
|
"",
|
||||||
},
|
},
|
||||||
|
@ -113,7 +113,7 @@ apiVersion: kubeletconfig/v1alpha1`),
|
||||||
{
|
{
|
||||||
"yaml, relative path is resolved",
|
"yaml, relative path is resolved",
|
||||||
newString(fmt.Sprintf(`kind: KubeletConfiguration
|
newString(fmt.Sprintf(`kind: KubeletConfiguration
|
||||||
apiVersion: kubeletconfig/v1alpha1
|
apiVersion: kubelet.config.k8s.io/v1beta1
|
||||||
podManifestPath: %s`, relativePath)),
|
podManifestPath: %s`, relativePath)),
|
||||||
func() *kubeletconfig.KubeletConfiguration {
|
func() *kubeletconfig.KubeletConfiguration {
|
||||||
kc := newConfig(t)
|
kc := newConfig(t)
|
||||||
|
@ -124,7 +124,7 @@ podManifestPath: %s`, relativePath)),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"json, relative path is resolved",
|
"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 {
|
func() *kubeletconfig.KubeletConfiguration {
|
||||||
kc := newConfig(t)
|
kc := newConfig(t)
|
||||||
kc.PodManifestPath = filepath.Join(configDir, relativePath)
|
kc.PodManifestPath = filepath.Join(configDir, relativePath)
|
||||||
|
@ -155,7 +155,6 @@ podManifestPath: %s`, relativePath)),
|
||||||
t.Fatalf("expect %#v but got %#v", *c.expect, *kc)
|
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)
|
t.Fatalf("unexpected error: %v", err)
|
||||||
}
|
}
|
||||||
// get the built-in default configuration
|
// get the built-in default configuration
|
||||||
external := &kubeletconfigv1alpha1.KubeletConfiguration{}
|
external := &kubeletconfigv1beta1.KubeletConfiguration{}
|
||||||
kubeletScheme.Default(external)
|
kubeletScheme.Default(external)
|
||||||
kc := &kubeletconfig.KubeletConfiguration{}
|
kc := &kubeletconfig.KubeletConfiguration{}
|
||||||
err = kubeletScheme.Convert(external, kc, nil)
|
err = kubeletScheme.Convert(external, kc, nil)
|
||||||
|
|
|
@ -33,7 +33,7 @@ go_library(
|
||||||
"//pkg/kubelet/apis/deviceplugin/v1alpha:go_default_library",
|
"//pkg/kubelet/apis/deviceplugin/v1alpha:go_default_library",
|
||||||
"//pkg/kubelet/apis/kubeletconfig:go_default_library",
|
"//pkg/kubelet/apis/kubeletconfig:go_default_library",
|
||||||
"//pkg/kubelet/apis/kubeletconfig/scheme: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/apis/stats/v1alpha1:go_default_library",
|
||||||
"//pkg/kubelet/cm/devicemanager:go_default_library",
|
"//pkg/kubelet/cm/devicemanager:go_default_library",
|
||||||
"//pkg/kubelet/metrics:go_default_library",
|
"//pkg/kubelet/metrics:go_default_library",
|
||||||
|
|
|
@ -28,7 +28,7 @@ go_library(
|
||||||
"//pkg/features:go_default_library",
|
"//pkg/features:go_default_library",
|
||||||
"//pkg/kubelet/apis/kubeletconfig:go_default_library",
|
"//pkg/kubelet/apis/kubeletconfig:go_default_library",
|
||||||
"//pkg/kubelet/apis/kubeletconfig/scheme: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/framework:go_default_library",
|
||||||
"//test/e2e_node/builder:go_default_library",
|
"//test/e2e_node/builder:go_default_library",
|
||||||
"//vendor/github.com/coreos/etcd/etcdserver:go_default_library",
|
"//vendor/github.com/coreos/etcd/etcdserver:go_default_library",
|
||||||
|
|
|
@ -38,7 +38,7 @@ import (
|
||||||
"k8s.io/kubernetes/pkg/features"
|
"k8s.io/kubernetes/pkg/features"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig"
|
"k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/scheme"
|
"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/framework"
|
||||||
"k8s.io/kubernetes/test/e2e_node/builder"
|
"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
|
// writeKubeletConfigFile writes the kubelet config file based on the args and returns the filename
|
||||||
func writeKubeletConfigFile(internal *kubeletconfig.KubeletConfiguration, path string) error {
|
func writeKubeletConfigFile(internal *kubeletconfig.KubeletConfiguration, path string) error {
|
||||||
// extract the KubeletConfiguration and convert to versioned
|
// extract the KubeletConfiguration and convert to versioned
|
||||||
versioned := &v1alpha1.KubeletConfiguration{}
|
versioned := &v1beta1.KubeletConfiguration{}
|
||||||
scheme, _, err := scheme.NewSchemeAndCodecs()
|
scheme, _, err := scheme.NewSchemeAndCodecs()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -397,7 +397,7 @@ func newKubeletConfigJSONEncoder() (runtime.Encoder, error) {
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil, fmt.Errorf("unsupported media type %q", mediaType)
|
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.
|
// createPodManifestDirectory creates pod manifest directory.
|
||||||
|
|
|
@ -39,7 +39,7 @@ import (
|
||||||
internalapi "k8s.io/kubernetes/pkg/kubelet/apis/cri"
|
internalapi "k8s.io/kubernetes/pkg/kubelet/apis/cri"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig"
|
"k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig"
|
||||||
kubeletscheme "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/scheme"
|
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"
|
stats "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1"
|
||||||
kubeletmetrics "k8s.io/kubernetes/pkg/kubelet/metrics"
|
kubeletmetrics "k8s.io/kubernetes/pkg/kubelet/metrics"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/remote"
|
"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).
|
// Decodes the http response from /configz and returns a kubeletconfig.KubeletConfiguration (internal type).
|
||||||
func decodeConfigz(resp *http.Response) (*kubeletconfig.KubeletConfiguration, error) {
|
func decodeConfigz(resp *http.Response) (*kubeletconfig.KubeletConfiguration, error) {
|
||||||
// This hack because /configz reports the following structure:
|
// 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 {
|
type configzWrapper struct {
|
||||||
ComponentConfig kubeletconfigv1alpha1.KubeletConfiguration `json:"kubeletconfig"`
|
ComponentConfig kubeletconfigv1beta1.KubeletConfiguration `json:"kubeletconfig"`
|
||||||
}
|
}
|
||||||
|
|
||||||
configz := configzWrapper{}
|
configz := configzWrapper{}
|
||||||
|
@ -298,7 +298,7 @@ func newKubeletConfigMap(name string, internalKC *kubeletconfig.KubeletConfigura
|
||||||
scheme, _, err := kubeletscheme.NewSchemeAndCodecs()
|
scheme, _, err := kubeletscheme.NewSchemeAndCodecs()
|
||||||
framework.ExpectNoError(err)
|
framework.ExpectNoError(err)
|
||||||
|
|
||||||
versioned := &kubeletconfigv1alpha1.KubeletConfiguration{}
|
versioned := &kubeletconfigv1beta1.KubeletConfiguration{}
|
||||||
err = scheme.Convert(internalKC, versioned, nil)
|
err = scheme.Convert(internalKC, versioned, nil)
|
||||||
framework.ExpectNoError(err)
|
framework.ExpectNoError(err)
|
||||||
|
|
||||||
|
@ -360,7 +360,7 @@ func newKubeletConfigJSONEncoder() (runtime.Encoder, error) {
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil, fmt.Errorf("unsupported media type %q", mediaType)
|
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
|
// runCommand runs the cmd and returns the combined stdout and stderr, or an
|
||||||
|
|
Loading…
Reference in New Issue