Skip to content

Commit 25ec6d9

Browse files
authored
Merge pull request #12714 from nrb/fix-metadata-kind
🌱 Allow metadata.yaml's Kind to be empty
2 parents a4bb8b8 + b7a7cb1 commit 25ec6d9

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

cmd/clusterctl/client/repository/metadata_client.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,9 @@ func validateMetadata(metadata *clusterctlv1.Metadata, providerLabel string) err
113113
metadata.APIVersion, providerLabel, clusterctlv1.GroupVersion.String())
114114
}
115115

116-
if metadata.Kind != "Metadata" {
116+
// v1.11 started enforcing the Metadata Kind, but several providers did not actually have the field serialized.
117+
// Ratchet validation so that an empty Kind is accepted.
118+
if metadata.Kind != "Metadata" && metadata.Kind != "" {
117119
return errors.Errorf("invalid provider metadata: unexpected kind %q for provider %s (expected \"Metadata\")",
118120
metadata.Kind, providerLabel)
119121
}

cmd/clusterctl/client/repository/metadata_client_test.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,20 @@ func Test_validateMetadata(t *testing.T) {
188188
wantErr: true,
189189
errMessage: "invalid provider metadata: unexpected kind \"WrongKind\" for provider infra-test (expected \"Metadata\")",
190190
},
191+
{
192+
name: "empty kind passes validation",
193+
metadata: &clusterctlv1.Metadata{
194+
TypeMeta: metav1.TypeMeta{
195+
APIVersion: clusterctlv1.GroupVersion.String(),
196+
Kind: "",
197+
},
198+
ReleaseSeries: []clusterctlv1.ReleaseSeries{
199+
{Major: 1, Minor: 0, Contract: "v1beta1"},
200+
},
201+
},
202+
providerLabel: "infra-test",
203+
wantErr: false,
204+
},
191205
{
192206
name: "empty releaseSeries",
193207
metadata: &clusterctlv1.Metadata{

0 commit comments

Comments
 (0)