diff --git a/cmd/kubeadm/app/apis/kubeadm/v1beta1/bootstraptokenstring.go b/cmd/kubeadm/app/apis/kubeadm/v1beta1/bootstraptokenstring.go index 97edd445407..a287a377927 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1beta1/bootstraptokenstring.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1beta1/bootstraptokenstring.go @@ -26,6 +26,7 @@ import ( bootstraputil "k8s.io/cluster-bootstrap/token/util" ) +// DEPRECATED - This group version of BootstrapTokenString is deprecated by apis/kubeadm/v1beta2/BootstrapTokenString. // BootstrapTokenString is a token of the format abcdef.abcdef0123456789 that is used // for both validation of the practically of the API server from a joining node's point // of view and as an authentication method for the node in the bootstrap phase of diff --git a/cmd/kubeadm/app/apis/kubeadm/v1beta1/doc.go b/cmd/kubeadm/app/apis/kubeadm/v1beta1/doc.go index 02a2a8777ec..cfc851a747e 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1beta1/doc.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1beta1/doc.go @@ -19,6 +19,7 @@ limitations under the License. // +k8s:deepcopy-gen=package // +k8s:conversion-gen=k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm +// Package v1beta1 has been deprecated by v1beta2 // Package v1beta1 defines the v1beta1 version of the kubeadm configuration file format. // This version graduates the configuration format to BETA and is a big step towards GA. // diff --git a/cmd/kubeadm/app/apis/kubeadm/v1beta1/types.go b/cmd/kubeadm/app/apis/kubeadm/v1beta1/types.go index 14d4ee2fc87..c33941fea07 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1beta1/types.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1beta1/types.go @@ -23,6 +23,7 @@ import ( // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// DEPRECATED - This group version of InitConfiguration is deprecated by apis/kubeadm/v1beta2/InitConfiguration. // InitConfiguration contains a list of elements that is specific "kubeadm init"-only runtime // information. type InitConfiguration struct { @@ -56,6 +57,7 @@ type InitConfiguration struct { // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// DEPRECATED - This group version of ClusterConfiguration is deprecated by apis/kubeadm/v1beta2/ClusterConfiguration. // ClusterConfiguration contains cluster-wide configuration for a kubeadm cluster type ClusterConfiguration struct { metav1.TypeMeta `json:",inline"` @@ -297,6 +299,7 @@ type ExternalEtcd struct { // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// DEPRECATED - This group version of JoinConfiguration is deprecated by apis/kubeadm/v1beta2/JoinConfiguration. // JoinConfiguration contains elements describing a particular node. type JoinConfiguration struct { metav1.TypeMeta `json:",inline"` diff --git a/cmd/kubeadm/app/util/config/common.go b/cmd/kubeadm/app/util/config/common.go index 7a0650ea37c..1c01e6eeafd 100644 --- a/cmd/kubeadm/app/util/config/common.go +++ b/cmd/kubeadm/app/util/config/common.go @@ -63,7 +63,9 @@ func validateSupportedVersion(gv schema.GroupVersion, allowDeprecated bool) erro } // Deprecated API versions are supported by us, but can only be used for migration. - deprecatedAPIVersions := map[string]struct{}{} + deprecatedAPIVersions := map[string]struct{}{ + "kubeadm.k8s.io/v1beta1": {}, + } gvString := gv.String() @@ -72,7 +74,7 @@ func validateSupportedVersion(gv schema.GroupVersion, allowDeprecated bool) erro } if _, present := deprecatedAPIVersions[gvString]; present && !allowDeprecated { - return errors.Errorf("your configuration file uses a deprecated API spec: %q. Please use 'kubeadm config migrate --old-config old.yaml --new-config new.yaml', which will write the new, similar spec using a newer API version.", gv.String()) + klog.Warningf("your configuration file uses a deprecated API spec: %q. Please use 'kubeadm config migrate --old-config old.yaml --new-config new.yaml', which will write the new, similar spec using a newer API version.", gv) } return nil diff --git a/cmd/kubeadm/app/util/config/common_test.go b/cmd/kubeadm/app/util/config/common_test.go index c0d7c0893fe..327f396baaa 100644 --- a/cmd/kubeadm/app/util/config/common_test.go +++ b/cmd/kubeadm/app/util/config/common_test.go @@ -65,6 +65,13 @@ func TestValidateSupportedVersion(t *testing.T) { allowDeprecated: true, expectedErr: true, }, + { + gv: schema.GroupVersion{ + Group: KubeadmGroupName, + Version: "v1beta1", + }, + allowDeprecated: true, + }, { gv: schema.GroupVersion{ Group: KubeadmGroupName, diff --git a/cmd/kubeadm/app/util/config/joinconfiguration_test.go b/cmd/kubeadm/app/util/config/joinconfiguration_test.go index 067bf503533..cd9649ccbcd 100644 --- a/cmd/kubeadm/app/util/config/joinconfiguration_test.go +++ b/cmd/kubeadm/app/util/config/joinconfiguration_test.go @@ -94,6 +94,8 @@ func TestLoadJoinConfigurationFromFile(t *testing.T) { return } t2.Fatalf("couldn't unmarshal test data: %v", err) + } else if rt.expectedErr { + t2.Fatalf("expected error, but no error returned") } actual, err := kubeadmutil.MarshalToYamlForCodecs(internalcfg, rt.groupVersion, scheme.Codecs)