Skip to content

Commit cc7122c

Browse files
committed
improve: add available release series to metadata validation error message
When a provider version doesn't match any release series in the metadata, the error message now includes the list of available release series. This helps users understand whether the metadata was properly retrieved and what versions are actually supported. This change makes troubleshooting easier, especially in cases where GOPROXY settings affect metadata retrieval. Signed-off-by: kahirokunn <[email protected]>
1 parent 2fbb798 commit cc7122c

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

cmd/clusterctl/client/cluster/installer.go

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package cluster
1818

1919
import (
2020
"context"
21+
"fmt"
2122
"sort"
2223
"strings"
2324
"time"
@@ -320,7 +321,21 @@ func (i *providerInstaller) getProviderContract(ctx context.Context, providerIns
320321

321322
releaseSeries := latestMetadata.GetReleaseSeriesForVersion(currentVersion)
322323
if releaseSeries == nil {
323-
return "", errors.Errorf("invalid provider metadata: version %s for the provider %s does not match any release series", provider.Version, provider.InstanceName())
324+
availableSeries := []string{}
325+
for _, series := range latestMetadata.ReleaseSeries {
326+
availableSeries = append(availableSeries, fmt.Sprintf("%d.%d", series.Major, series.Minor))
327+
}
328+
329+
var errorMsg string
330+
if len(availableSeries) > 0 {
331+
errorMsg = fmt.Sprintf("invalid provider metadata: version %s for the provider %s does not match any release series. Available series: [%s]",
332+
provider.Version, provider.InstanceName(), strings.Join(availableSeries, ", "))
333+
} else {
334+
errorMsg = fmt.Sprintf("invalid provider metadata: version %s for the provider %s does not match any release series. No release series found in metadata",
335+
provider.Version, provider.InstanceName())
336+
}
337+
338+
return "", errors.New(errorMsg)
324339
}
325340

326341
compatibleContracts := i.getCompatibleContractVersions(i.currentContractVersion)

0 commit comments

Comments
 (0)