func resolveString()

in k8s/go/pkg/resolver/resolver.go [319:342]


func resolveString(r *yamlResolver, s string) (string, error) {
	if _, ok := r.unseen[s]; ok {
		delete(r.unseen, s)
	}
	o, ok := r.resolvedImages[s]
	if ok {
		return o, nil
	}
	t, err := name.NewTag(s, name.StrictValidation)
	if err != nil {
		return s, nil
	}
	auth, err := authn.DefaultKeychain.Resolve(t.Context())
	if err != nil {
		return s, nil
	}
	desc, err := remote.Get(t, remote.WithAuth(auth))
	if err != nil {
		return s, nil
	}
	resolved := fmt.Sprintf("%s/%s@%v", t.Context().RegistryStr(), t.Context().RepositoryStr(), desc.Digest)
	r.resolvedImages[s] = resolved
	return resolved, nil
}