func()

in pkg/artifacts/registry.go [26:53]


func (p *RegistryPuller) Pull(ctx context.Context, ref, clusterName string) ([]byte, error) {
	art, err := registry.ParseArtifactFromURI(ref)
	if err != nil {
		return nil, err
	}

	certificates, err := registry.GetClusterCertificate(clusterName)
	if err != nil {
		p.log.Info("problem getting certificate file", "error", err.Error())
	}

	var store *registry.DockerCredentialStore
	configFile, err := registry.CredentialsConfigLoad()
	if err != nil {
		p.log.Info("problem getting credential file", "error", err.Error())
	} else {
		store = registry.NewDockerCredentialStore(configFile)
	}

	sc := registry.NewStorageContext(art.Registry, store, certificates, false)
	remoteRegistry, err := remote.NewRegistry(art.Registry)
	if err != nil {
		return nil, err
	}
	client := registry.NewOCIRegistry(sc, remoteRegistry)

	return registry.PullBytes(ctx, client, *art)
}