KubeletConfiguration should be a member of MasterConfiguration

This commit is contained in:
xiangpengzhao
2017-11-16 19:32:01 +08:00
parent 880648f3f1
commit c365e179e6
6 changed files with 67 additions and 33 deletions

View File

@@ -24,6 +24,8 @@ 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"
utilpointer "k8s.io/kubernetes/pkg/util/pointer"
) )
// Funcs returns the fuzzer functions for the kubeadm apis. // Funcs returns the fuzzer functions for the kubeadm apis.
@@ -39,20 +41,41 @@ func Funcs(codecs runtimeserializer.CodecFactory) []interface{} {
obj.Networking.DNSDomain = "foo" obj.Networking.DNSDomain = "foo"
obj.AuthorizationModes = []string{"foo"} obj.AuthorizationModes = []string{"foo"}
obj.CertificatesDir = "foo" obj.CertificatesDir = "foo"
obj.APIServerCertSANs = []string{} obj.APIServerCertSANs = []string{"foo"}
obj.Token = "foo" obj.Token = "foo"
obj.Etcd.Image = "foo" obj.Etcd.Image = "foo"
obj.Etcd.DataDir = "foo" obj.Etcd.DataDir = "foo"
obj.ImageRepository = "foo" obj.ImageRepository = "foo"
obj.CIImageRepository = "" obj.CIImageRepository = ""
obj.UnifiedControlPlaneImage = "foo" obj.UnifiedControlPlaneImage = "foo"
obj.FeatureGates = map[string]bool{} obj.FeatureGates = map[string]bool{"foo": true}
obj.APIServerExtraArgs = map[string]string{"foo": "foo"}
obj.APIServerExtraVolumes = []kubeadm.HostPathMount{{
Name: "foo",
HostPath: "foo",
MountPath: "foo",
}}
obj.Etcd.ExtraArgs = map[string]string{"foo": "foo"}
obj.Etcd.SelfHosted = &kubeadm.SelfHostedEtcd{ obj.Etcd.SelfHosted = &kubeadm.SelfHostedEtcd{
CertificatesDir: "/etc/kubernetes/pki/etcd", CertificatesDir: "/etc/kubernetes/pki/etcd",
ClusterServiceName: "etcd-cluster", ClusterServiceName: "etcd-cluster",
EtcdVersion: "v0.1.0", EtcdVersion: "v0.1.0",
OperatorVersion: "v0.1.0", OperatorVersion: "v0.1.0",
} }
obj.KubeletConfiguration = kubeadm.KubeletConfiguration{
BaseConfig: &kubeletconfigv1alpha1.KubeletConfiguration{
PodManifestPath: "foo",
AllowPrivileged: utilpointer.BoolPtr(true),
ClusterDNS: []string{"foo"},
ClusterDomain: "foo",
Authorization: kubeletconfigv1alpha1.KubeletAuthorization{Mode: "foo"},
Authentication: kubeletconfigv1alpha1.KubeletAuthentication{
X509: kubeletconfigv1alpha1.KubeletX509Authentication{ClientCAFile: "foo"},
},
CAdvisorPort: utilpointer.Int32Ptr(0),
},
}
kubeletconfigv1alpha1.SetDefaults_KubeletConfiguration(obj.KubeletConfiguration.BaseConfig)
}, },
func(obj *kubeadm.NodeConfiguration, c fuzz.Continue) { func(obj *kubeadm.NodeConfiguration, c fuzz.Continue) {
c.FuzzNoCustom(obj) c.FuzzNoCustom(obj)

View File

@@ -28,13 +28,14 @@ import (
type MasterConfiguration struct { type MasterConfiguration struct {
metav1.TypeMeta metav1.TypeMeta
API API API API
Etcd Etcd Etcd Etcd
Networking Networking KubeletConfiguration KubeletConfiguration
KubernetesVersion string Networking Networking
CloudProvider string KubernetesVersion string
NodeName string CloudProvider string
AuthorizationModes []string NodeName string
AuthorizationModes []string
Token string Token string
TokenTTL *metav1.Duration TokenTTL *metav1.Duration

View File

@@ -104,6 +104,7 @@ func SetDefaults_MasterConfiguration(obj *MasterConfiguration) {
} }
SetDefaultsEtcdSelfHosted(obj) SetDefaultsEtcdSelfHosted(obj)
SetDefaults_KubeletConfiguration(obj)
} }
// SetDefaults_NodeConfiguration assigns default values to a regular node // SetDefaults_NodeConfiguration assigns default values to a regular node
@@ -150,26 +151,29 @@ func SetDefaultsEtcdSelfHosted(obj *MasterConfiguration) {
} }
// SetDefaults_KubeletConfiguration assigns default values to kubelet // SetDefaults_KubeletConfiguration assigns default values to kubelet
func SetDefaults_KubeletConfiguration(obj *KubeletConfiguration) { func SetDefaults_KubeletConfiguration(obj *MasterConfiguration) {
if obj.BaseConfig.PodManifestPath == "" { if obj.KubeletConfiguration.BaseConfig == nil {
obj.BaseConfig.PodManifestPath = DefaultManifestsDir obj.KubeletConfiguration.BaseConfig = &kubeletconfigv1alpha1.KubeletConfiguration{}
} }
if obj.BaseConfig.AllowPrivileged == nil { if obj.KubeletConfiguration.BaseConfig.PodManifestPath == "" {
obj.BaseConfig.AllowPrivileged = utilpointer.BoolPtr(true) obj.KubeletConfiguration.BaseConfig.PodManifestPath = DefaultManifestsDir
} }
if obj.BaseConfig.ClusterDNS == nil { if obj.KubeletConfiguration.BaseConfig.AllowPrivileged == nil {
obj.BaseConfig.ClusterDNS = []string{DefaultClusterDNSIP} obj.KubeletConfiguration.BaseConfig.AllowPrivileged = utilpointer.BoolPtr(true)
} }
if obj.BaseConfig.ClusterDomain == "" { if obj.KubeletConfiguration.BaseConfig.ClusterDNS == nil {
obj.BaseConfig.ClusterDomain = DefaultServiceDNSDomain obj.KubeletConfiguration.BaseConfig.ClusterDNS = []string{DefaultClusterDNSIP}
} }
if obj.BaseConfig.Authorization.Mode == "" { if obj.KubeletConfiguration.BaseConfig.ClusterDomain == "" {
obj.BaseConfig.Authorization.Mode = kubeletconfigv1alpha1.KubeletAuthorizationModeWebhook obj.KubeletConfiguration.BaseConfig.ClusterDomain = DefaultServiceDNSDomain
} }
if obj.BaseConfig.Authentication.X509.ClientCAFile == "" { if obj.KubeletConfiguration.BaseConfig.Authorization.Mode == "" {
obj.BaseConfig.Authentication.X509.ClientCAFile = DefaultCACertPath obj.KubeletConfiguration.BaseConfig.Authorization.Mode = kubeletconfigv1alpha1.KubeletAuthorizationModeWebhook
} }
if obj.BaseConfig.CAdvisorPort == nil { if obj.KubeletConfiguration.BaseConfig.Authentication.X509.ClientCAFile == "" {
obj.BaseConfig.CAdvisorPort = utilpointer.Int32Ptr(0) obj.KubeletConfiguration.BaseConfig.Authentication.X509.ClientCAFile = DefaultCACertPath
}
if obj.KubeletConfiguration.BaseConfig.CAdvisorPort == nil {
obj.KubeletConfiguration.BaseConfig.CAdvisorPort = utilpointer.Int32Ptr(0)
} }
} }

View File

@@ -28,13 +28,14 @@ import (
type MasterConfiguration struct { type MasterConfiguration struct {
metav1.TypeMeta `json:",inline"` metav1.TypeMeta `json:",inline"`
API API `json:"api"` API API `json:"api"`
Etcd Etcd `json:"etcd"` Etcd Etcd `json:"etcd"`
Networking Networking `json:"networking"` KubeletConfiguration KubeletConfiguration `json:"kubeletConfiguration"`
KubernetesVersion string `json:"kubernetesVersion"` Networking Networking `json:"networking"`
CloudProvider string `json:"cloudProvider"` KubernetesVersion string `json:"kubernetesVersion"`
NodeName string `json:"nodeName"` CloudProvider string `json:"cloudProvider"`
AuthorizationModes []string `json:"authorizationModes,omitempty"` NodeName string `json:"nodeName"`
AuthorizationModes []string `json:"authorizationModes,omitempty"`
Token string `json:"token"` Token string `json:"token"`
TokenTTL *metav1.Duration `json:"tokenTTL,omitempty"` TokenTTL *metav1.Duration `json:"tokenTTL,omitempty"`

View File

@@ -355,8 +355,7 @@ func (i *Init) Run(out io.Writer) error {
if err != nil { if err != nil {
return err return err
} }
kubeletConfig := &kubeadmapiext.KubeletConfiguration{} kubeletBytes, err := kubeadmutil.MarshalToYamlForCodecs(i.cfg.KubeletConfiguration.BaseConfig, kubeletconfigv1alpha1.SchemeGroupVersion, *kubeletCodecs)
kubeletBytes, err := kubeadmutil.MarshalToYamlForCodecs(kubeletConfig.BaseConfig, kubeletconfigv1alpha1.SchemeGroupVersion, *kubeletCodecs)
if err != nil { if err != nil {
return err return err
} }

View File

@@ -51,6 +51,8 @@ func TestPrintConfiguration(t *testing.T) {
image: "" image: ""
keyFile: "" keyFile: ""
imageRepository: "" imageRepository: ""
kubeletConfiguration:
baseConfig: null
kubernetesVersion: v1.7.1 kubernetesVersion: v1.7.1
networking: networking:
dnsDomain: "" dnsDomain: ""
@@ -82,6 +84,8 @@ func TestPrintConfiguration(t *testing.T) {
image: "" image: ""
keyFile: "" keyFile: ""
imageRepository: "" imageRepository: ""
kubeletConfiguration:
baseConfig: null
kubernetesVersion: v1.7.1 kubernetesVersion: v1.7.1
networking: networking:
dnsDomain: "" dnsDomain: ""
@@ -123,6 +127,8 @@ func TestPrintConfiguration(t *testing.T) {
etcdVersion: v0.1.0 etcdVersion: v0.1.0
operatorVersion: v0.1.0 operatorVersion: v0.1.0
imageRepository: "" imageRepository: ""
kubeletConfiguration:
baseConfig: null
kubernetesVersion: v1.7.1 kubernetesVersion: v1.7.1
networking: networking:
dnsDomain: "" dnsDomain: ""