Skip to content

Commit b7a7cb1

Browse files
committed
Allow metadata.yaml's Kind to be empty
clusterctl v1.11 started validating that the metadata.yaml file had a `kind: Metadata` value. However, many providers hadn't populated this field at all, resulting in errors evaluating them. This change allows the field to be empty or missing, in addition to the primary value. Signed-off-by: Nolan Brubaker <[email protected]>
1 parent 79a5e28 commit b7a7cb1

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)