diff --git a/api/types/kustomization.go b/api/types/kustomization.go index 6caa296644..85c78057d7 100644 --- a/api/types/kustomization.go +++ b/api/types/kustomization.go @@ -191,6 +191,7 @@ const ( deprecatedPatchesStrategicMergeMessage = "# Warning: 'patchesStrategicMerge' is deprecated. Please use 'patches' instead." + " " + deprecatedWarningToRunEditFix deprecatedVarsMessage = "# Warning: 'vars' is deprecated. Please use 'replacements' instead." + " " + deprecatedWarningToRunEditFixExperimential deprecatedCommonLabelsWarningMessage = "# Warning: 'commonLabels' is deprecated. Please use 'labels' instead." + " " + deprecatedWarningToRunEditFix + deprecationWarningAPIVersionandKind = "# Warning: 'apiVersion' and 'kind' fields are required in future releases. Please set it explicitly." ) // CheckDeprecatedFields check deprecated field is used or not. @@ -214,6 +215,9 @@ func (k *Kustomization) CheckDeprecatedFields() *[]string { if k.Vars != nil { warningMessages = append(warningMessages, deprecatedVarsMessage) } + if k.APIVersion == "" || k.Kind == "" { + warningMessages = append(warningMessages, deprecationWarningAPIVersionandKind) + } return &warningMessages } diff --git a/api/types/kustomization_test.go b/api/types/kustomization_test.go index f39455f7ec..e12df528cd 100644 --- a/api/types/kustomization_test.go +++ b/api/types/kustomization_test.go @@ -25,6 +25,10 @@ func TestKustomization_CheckDeprecatedFields(t *testing.T) { { name: "using_bases", k: Kustomization{ + TypeMeta: TypeMeta{ + APIVersion: "kustomize.config.k8s.io/v1beta1", + Kind: "Kustomization", + }, Bases: []string{"base"}, }, want: &[]string{deprecatedBaseWarningMessage}, @@ -32,6 +36,10 @@ func TestKustomization_CheckDeprecatedFields(t *testing.T) { { name: "using_CommonLabels", k: Kustomization{ + TypeMeta: TypeMeta{ + APIVersion: "kustomize.config.k8s.io/v1beta1", + Kind: "Kustomization", + }, CommonLabels: map[string]string{}, }, want: &[]string{deprecatedCommonLabelsWarningMessage}, @@ -39,6 +47,10 @@ func TestKustomization_CheckDeprecatedFields(t *testing.T) { { name: "using_ImageTags", k: Kustomization{ + TypeMeta: TypeMeta{ + APIVersion: "kustomize.config.k8s.io/v1beta1", + Kind: "Kustomization", + }, ImageTags: []Image{}, }, want: &[]string{deprecatedImageTagsWarningMessage}, @@ -46,6 +58,10 @@ func TestKustomization_CheckDeprecatedFields(t *testing.T) { { name: "usingPatchesJson6902", k: Kustomization{ + TypeMeta: TypeMeta{ + APIVersion: "kustomize.config.k8s.io/v1beta1", + Kind: "Kustomization", + }, PatchesJson6902: []Patch{}, }, want: &[]string{deprecatedPatchesJson6902Message}, @@ -53,6 +69,10 @@ func TestKustomization_CheckDeprecatedFields(t *testing.T) { { name: "usingPatchesStrategicMerge", k: Kustomization{ + TypeMeta: TypeMeta{ + APIVersion: "kustomize.config.k8s.io/v1beta1", + Kind: "Kustomization", + }, PatchesStrategicMerge: []PatchStrategicMerge{}, }, want: &[]string{deprecatedPatchesStrategicMergeMessage}, @@ -60,10 +80,21 @@ func TestKustomization_CheckDeprecatedFields(t *testing.T) { { name: "usingVar", k: Kustomization{ + TypeMeta: TypeMeta{ + APIVersion: "kustomize.config.k8s.io/v1beta1", + Kind: "Kustomization", + }, Vars: []Var{}, }, want: &[]string{deprecatedVarsMessage}, }, + { + name: "usingAPIVersionandKind", + k: Kustomization{ + TypeMeta: TypeMeta{}, + }, + want: &[]string{deprecationWarningAPIVersionandKind}, + }, { name: "usingAll", k: Kustomization{ @@ -73,6 +104,7 @@ func TestKustomization_CheckDeprecatedFields(t *testing.T) { PatchesJson6902: []Patch{}, PatchesStrategicMerge: []PatchStrategicMerge{}, Vars: []Var{}, + TypeMeta: TypeMeta{}, }, want: &[]string{ deprecatedBaseWarningMessage, @@ -81,6 +113,7 @@ func TestKustomization_CheckDeprecatedFields(t *testing.T) { deprecatedPatchesJson6902Message, deprecatedPatchesStrategicMergeMessage, deprecatedVarsMessage, + deprecationWarningAPIVersionandKind, }, }, }