@@ -197,9 +197,32 @@ func getImageConfig(ctx context.Context, client kubernetes.Interface, container
197197 return nil , errors .Wrap (err , "cannot fetch image descriptor" )
198198 }
199199
200- image , err := descriptor .Image ()
201- if err != nil {
202- return nil , errors .Wrap (err , "cannot convert image descriptor to v1.Image" )
200+ var image v1.Image
201+ if descriptor .MediaType .IsIndex () {
202+ index , err := descriptor .ImageIndex ()
203+ if err != nil {
204+ return nil , errors .Wrap (err , "cannot get image index" )
205+ }
206+
207+ manifest , err := index .IndexManifest ()
208+ if err != nil {
209+ return nil , errors .Wrap (err , "cannot get index manifest" )
210+ }
211+
212+ if len (manifest .Manifests ) == 0 {
213+ return nil , errors .New ("no manifests found in the image index" )
214+ }
215+
216+ // Get the first available image
217+ image , err = index .Image (manifest .Manifests [0 ].Digest )
218+ if err != nil {
219+ return nil , errors .Wrap (err , "cannot get image from manifest" )
220+ }
221+ } else {
222+ image , err = descriptor .Image ()
223+ if err != nil {
224+ return nil , errors .Wrap (err , "cannot convert image descriptor to v1.Image" )
225+ }
203226 }
204227
205228 configFile , err := image .ConfigFile ()
0 commit comments