func provideRef()

in pkg/discovery/content/provider/provider.go [106:126]


func provideRef(ctx context.Context, l zerolog.Logger, containerdStore containerd.Store, router routing.Router, ref containerd.Reference) (int, error) {
	keys := []string{}
	keys = append(keys, ref.Digest().String())
	if ref.Tag() != "" {
		keys = append(keys, ref.String())
	}

	dgsts, err := containerdStore.All(ctx, ref)
	if err != nil {
		l.Error().Err(err).Str("image", ref.Name()).Str("digest", ref.Digest().String()).Msg("could not get digests for image")
	} else {
		keys = append(keys, dgsts...)
	}

	err = router.Provide(ctx, keys)
	if err != nil {
		return 0, fmt.Errorf("could not advertise image %v: %w", ref, err)
	}

	return len(keys), nil
}