Rename MasterConfiguration to InitConfiguration in v1alpha3, but support both names for this release of kubeadm

This commit is contained in:
Lucas Käldström 2018-07-09 04:55:45 +03:00
parent 52f0591ad9
commit c48dfa6fe9
No known key found for this signature in database
GPG Key ID: 3FA3783D77751514
9 changed files with 18 additions and 11 deletions

View File

@ -58,9 +58,9 @@ func Resource(resource string) schema.GroupResource {
func addKnownTypes(scheme *runtime.Scheme) error { func addKnownTypes(scheme *runtime.Scheme) error {
scheme.AddKnownTypes(SchemeGroupVersion, scheme.AddKnownTypes(SchemeGroupVersion,
&InitConfiguration{},
&NodeConfiguration{}, &NodeConfiguration{},
) )
scheme.AddKnownTypeWithName(SchemeGroupVersion.WithKind("MasterConfiguration"), &InitConfiguration{})
metav1.AddToGroupVersion(scheme, SchemeGroupVersion) metav1.AddToGroupVersion(scheme, SchemeGroupVersion)
return nil return nil
} }

View File

@ -47,7 +47,8 @@ import (
) )
var ( var (
availableAPIObjects = []string{constants.InitConfigurationKind, constants.NodeConfigurationKind} defaultAPIObjects = []string{constants.InitConfigurationKind, constants.NodeConfigurationKind}
availableAPIObjects = []string{constants.InitConfigurationKind, constants.MasterConfigurationKind, constants.NodeConfigurationKind}
// sillyToken is only set statically to make kubeadm not randomize the token on every run // sillyToken is only set statically to make kubeadm not randomize the token on every run
sillyToken = kubeadmapiv1alpha3.BootstrapToken{ sillyToken = kubeadmapiv1alpha3.BootstrapToken{
Token: &kubeadmapiv1alpha3.BootstrapTokenString{ Token: &kubeadmapiv1alpha3.BootstrapTokenString{
@ -105,7 +106,7 @@ func NewCmdConfigPrintDefault(out io.Writer) *cobra.Command {
`), sillyToken), `), sillyToken),
Run: func(cmd *cobra.Command, args []string) { Run: func(cmd *cobra.Command, args []string) {
if len(apiObjects) == 0 { if len(apiObjects) == 0 {
apiObjects = availableAPIObjects apiObjects = defaultAPIObjects
} }
allBytes := [][]byte{} allBytes := [][]byte{}
for _, apiObject := range apiObjects { for _, apiObject := range apiObjects {
@ -125,7 +126,7 @@ func getDefaultAPIObjectBytes(apiObject string) ([]byte, error) {
var internalcfg runtime.Object var internalcfg runtime.Object
var err error var err error
switch apiObject { switch apiObject {
case constants.InitConfigurationKind: case constants.InitConfigurationKind, constants.MasterConfigurationKind:
internalcfg, err = configutil.ConfigFileAndDefaultsToInternalConfig("", &kubeadmapiv1alpha3.InitConfiguration{ internalcfg, err = configutil.ConfigFileAndDefaultsToInternalConfig("", &kubeadmapiv1alpha3.InitConfiguration{
API: kubeadmapiv1alpha3.API{AdvertiseAddress: "1.2.3.4"}, API: kubeadmapiv1alpha3.API{AdvertiseAddress: "1.2.3.4"},
BootstrapTokens: []kubeadmapiv1alpha3.BootstrapToken{sillyToken}, BootstrapTokens: []kubeadmapiv1alpha3.BootstrapToken{sillyToken},

View File

@ -289,6 +289,10 @@ const (
// InitConfigurationKind is the string kind value for the InitConfiguration struct // InitConfigurationKind is the string kind value for the InitConfiguration struct
InitConfigurationKind = "InitConfiguration" InitConfigurationKind = "InitConfiguration"
// MasterConfigurationKind is the string kind value for the v1alpha2-named MasterConfiguration struct
// In v1alpha3 and higher, this struct is now named InitConfiguration
MasterConfigurationKind = "MasterConfiguration"
// NodeConfigurationKind is the string kind value for the InitConfiguration struct // NodeConfigurationKind is the string kind value for the InitConfiguration struct
NodeConfigurationKind = "NodeConfiguration" NodeConfigurationKind = "NodeConfiguration"

View File

@ -45,7 +45,7 @@ func AnyConfigFileAndDefaultsToInternal(cfgPath string) (runtime.Object, error)
} }
// First, check if the gvk list has InitConfiguration and in that case try to unmarshal it // First, check if the gvk list has InitConfiguration and in that case try to unmarshal it
if kubeadmutil.GroupVersionKindsHasInitConfiguration(gvks) { if kubeadmutil.GroupVersionKindsHasInitConfiguration(gvks...) {
return ConfigFileAndDefaultsToInternalConfig(cfgPath, &kubeadmapiv1alpha3.InitConfiguration{}) return ConfigFileAndDefaultsToInternalConfig(cfgPath, &kubeadmapiv1alpha3.InitConfiguration{})
} }
if kubeadmutil.GroupVersionKindsHasNodeConfiguration(gvks) { if kubeadmutil.GroupVersionKindsHasNodeConfiguration(gvks) {

View File

@ -163,7 +163,7 @@ func BytesToInternalConfig(b []byte) (*kubeadmapi.InitConfiguration, error) {
continue continue
} }
if gvk.Kind == kubeadmconstants.InitConfigurationKind { if kubeadmutil.GroupVersionKindsHasInitConfiguration(gvk) {
if err := runtime.DecodeInto(kubeadmscheme.Codecs.UniversalDecoder(), fileContent, internalcfg); err != nil { if err := runtime.DecodeInto(kubeadmscheme.Codecs.UniversalDecoder(), fileContent, internalcfg); err != nil {
return nil, err return nil, err
} }

View File

@ -24,7 +24,7 @@ etcd:
dataDir: /var/lib/etcd dataDir: /var/lib/etcd
image: "" image: ""
imageRepository: k8s.gcr.io imageRepository: k8s.gcr.io
kind: MasterConfiguration kind: InitConfiguration
kubernetesVersion: v1.10.2 kubernetesVersion: v1.10.2
networking: networking:
dnsDomain: cluster.local dnsDomain: cluster.local

View File

@ -22,7 +22,7 @@ etcd:
dataDir: /var/lib/etcd dataDir: /var/lib/etcd
image: "" image: ""
imageRepository: my-company.com imageRepository: my-company.com
kind: MasterConfiguration kind: InitConfiguration
kubernetesVersion: v1.10.2 kubernetesVersion: v1.10.2
networking: networking:
dnsDomain: cluster.global dnsDomain: cluster.global

View File

@ -148,8 +148,10 @@ func GroupVersionKindsHasKind(gvks []schema.GroupVersionKind, kind string) bool
} }
// GroupVersionKindsHasInitConfiguration returns whether the following gvk slice contains a InitConfiguration object // GroupVersionKindsHasInitConfiguration returns whether the following gvk slice contains a InitConfiguration object
func GroupVersionKindsHasInitConfiguration(gvks []schema.GroupVersionKind) bool { func GroupVersionKindsHasInitConfiguration(gvks ...schema.GroupVersionKind) bool {
return GroupVersionKindsHasKind(gvks, constants.InitConfigurationKind) // Finding a MasterConfiguration kind is also okay, as it will decode and convert into an InitConfiguration struct eventually
// TODO: When we remove support for the v1alpha2 API, remove support for MasterConfiguration
return GroupVersionKindsHasKind(gvks, constants.InitConfigurationKind) || GroupVersionKindsHasKind(gvks, constants.MasterConfigurationKind)
} }
// GroupVersionKindsHasNodeConfiguration returns whether the following gvk slice contains a NodeConfiguration object // GroupVersionKindsHasNodeConfiguration returns whether the following gvk slice contains a NodeConfiguration object

View File

@ -366,7 +366,7 @@ func TestGroupVersionKindsHasInitConfiguration(t *testing.T) {
for _, rt := range tests { for _, rt := range tests {
t.Run(rt.name, func(t2 *testing.T) { t.Run(rt.name, func(t2 *testing.T) {
actual := GroupVersionKindsHasInitConfiguration(rt.gvks) actual := GroupVersionKindsHasInitConfiguration(rt.gvks...)
if rt.expected != actual { if rt.expected != actual {
t2.Errorf("expected gvks has InitConfiguration: %t\n\tactual: %t\n", rt.expected, actual) t2.Errorf("expected gvks has InitConfiguration: %t\n\tactual: %t\n", rt.expected, actual)
} }