77 "context"
88 "encoding/json"
99 "errors"
10+ "fmt"
1011 "strings"
1112
1213 gardencorev1beta1 "github.com/gardener/gardener/pkg/apis/core/v1beta1"
@@ -136,8 +137,7 @@ func (o *OCI) GetVersions(ctx context.Context) ([]SourceImage, error) {
136137 defer o .sema .Release (1 )
137138 _ , reader , err := o .repo .FetchReference (ctx , tag )
138139 if err != nil {
139- o .log .V (1 ).Info ("skipping tag: failed to fetch manifest" , "tag" , tag , "error" , err )
140- out <- Result [SourceImage ]{}
140+ out <- Result [SourceImage ]{err : fmt .Errorf ("tag %s: failed to fetch manifest: %w" , tag , err )}
141141 return
142142 }
143143 defer reader .Close ()
@@ -146,14 +146,12 @@ func (o *OCI) GetVersions(ctx context.Context) ([]SourceImage, error) {
146146 }{}
147147 err = json .NewDecoder (reader ).Decode (& manifest )
148148 if err != nil {
149- o .log .V (1 ).Info ("skipping tag: failed to decode manifest" , "tag" , tag , "error" , err )
150- out <- Result [SourceImage ]{}
149+ out <- Result [SourceImage ]{err : fmt .Errorf ("tag %s: failed to decode manifest: %w" , tag , err )}
151150 return
152151 }
153152 arch , ok := manifest .Annotations ["architecture" ]
154153 if ! ok {
155- o .log .V (1 ).Info ("skipping tag: architecture annotation not found" , "tag" , tag )
156- out <- Result [SourceImage ]{}
154+ out <- Result [SourceImage ]{err : fmt .Errorf ("tag %s: architecture annotation not found" , tag )}
157155 return
158156 }
159157 var capabilities gardencorev1beta1.Capabilities
@@ -182,18 +180,23 @@ func (o *OCI) GetVersions(ctx context.Context) ([]SourceImage, error) {
182180 }
183181
184182 images := []SourceImage {}
185- errs := []error {}
183+ var skipped []error
184+ var errs []error
186185 for range tags {
187186 result := <- out
188187 if result .err != nil {
189- errs = append (errs , result .err )
190- continue
191- }
192- if result .value .Version == "" {
188+ if ctx .Err () != nil {
189+ errs = append (errs , result .err )
190+ } else {
191+ skipped = append (skipped , result .err )
192+ }
193193 continue
194194 }
195195 images = append (images , result .value )
196196 }
197+ if len (skipped ) > 0 {
198+ o .log .V (1 ).Info ("skipped tags with errors" , "count" , len (skipped ), "errors" , errors .Join (skipped ... ))
199+ }
197200 if len (images ) == 0 && len (tags ) > 0 {
198201 return nil , fmt .Errorf ("all %d tags were skipped; possible registry issue" , len (tags ))
199202 }
0 commit comments