From 824391637877a0627b402a43dc397f5162be468b Mon Sep 17 00:00:00 2001 From: ashpect Date: Wed, 15 Nov 2023 00:50:15 +0530 Subject: [PATCH] cleanup --- pkg/imgpkg/imageset/tar_image_set.go | 60 +++------------------------- pkg/imgpkg/imagetar/tar_reader.go | 42 +++++-------------- 2 files changed, 14 insertions(+), 88 deletions(-) diff --git a/pkg/imgpkg/imageset/tar_image_set.go b/pkg/imgpkg/imageset/tar_image_set.go index 10284311c..42985e2b1 100644 --- a/pkg/imgpkg/imageset/tar_image_set.go +++ b/pkg/imgpkg/imageset/tar_image_set.go @@ -8,11 +8,8 @@ import ( "io" "os" - "github.com/google/go-containerregistry/pkg/crane" regname "github.com/google/go-containerregistry/pkg/name" v1 "github.com/google/go-containerregistry/pkg/v1" - "github.com/google/go-containerregistry/pkg/v1/layout" - "github.com/google/go-containerregistry/pkg/v1/partial" "github.com/vmware-tanzu/carvel-imgpkg/pkg/imgpkg/imagedesc" "github.com/vmware-tanzu/carvel-imgpkg/pkg/imgpkg/imagetar" "github.com/vmware-tanzu/carvel-imgpkg/pkg/imgpkg/registry" @@ -132,14 +129,14 @@ func (i *TarImageSet) Import(path string, importRepo regname.Repository, registr var err error if tarisoci { - imgOrIndexes, err = imagetar.NewTarReader(path).ReadOci() + imgOrIndexes, err = imagetar.NewTarReader(path).ReadOci(importRepo.Name()) + // ---- FOR TESTING PORPOSES ---- //crane.SaveOCI(*imgOrIndexes[0].Image, "/Users/ashishkumarsingh/Desktop/stuff/ashpect/imgpkg/cmd/imgpkg/a0") } else { imgOrIndexes, err = imagetar.NewTarReader(path).Read() - fmt.Println(imgOrIndexes[0].Ref()) - //for testing - crane.SaveOCI(*imgOrIndexes[0].Image, "/Users/ashishkumarsingh/Desktop/stuff/ashpect/imgpkg/cmd/imgpkg/a0") - //crane.SaveOCI(*imgOrIndexes[1].Image, "/Users/ashishkumarsingh/Desktop/stuff/ashpect/imgpkg/cmd/imgpkg/a1") + // fmt.Println(imgOrIndexes[0].Ref()) + // ---- FOR TESTING PORPOSES ---- + //crane.SaveOCI(*imgOrIndexes[0].Image, "/Users/ashishkumarsingh/Desktop/stuff/ashpect/imgpkg/cmd/imgpkg/a0") } processedImages, err := i.imageSet.Import(imgOrIndexes, importRepo, registry) @@ -149,50 +146,3 @@ func (i *TarImageSet) Import(path string, importRepo regname.Repository, registr return processedImages, err } - -// change function to use accordingly -func loadImage(path string, index bool) (partial.WithRawManifest, error) { - // to check if path is a tarball or a directory - stat, err := os.Stat(path) - if err != nil { - return nil, err - } - - if !stat.IsDir() { - img, err := crane.Load(path) - if err != nil { - return nil, fmt.Errorf("loading %s as tarball: %w", path, err) - } - return img, nil - } - - //if the path is a oci layout directory - l, err := layout.ImageIndexFromPath(path) - if err != nil { - return nil, fmt.Errorf("loading %s as OCI layout: %w", path, err) - } - - if index { - return l, nil - } - - //append l.ImageIndex() to imgOrIndexes - - m, err := l.IndexManifest() - - if err != nil { - return nil, err - } - if len(m.Manifests) != 1 { - return nil, fmt.Errorf("layout contains %d entries, consider --index", len(m.Manifests)) - } - - desc := m.Manifests[0] - if desc.MediaType.IsImage() { - return l.Image(desc.Digest) - } else if desc.MediaType.IsIndex() { - return l.ImageIndex(desc.Digest) - } - - return nil, fmt.Errorf("layout contains non-image (mediaType: %q), consider --index", desc.MediaType) -} diff --git a/pkg/imgpkg/imagetar/tar_reader.go b/pkg/imgpkg/imagetar/tar_reader.go index 96ea6e1c9..f17a6253a 100644 --- a/pkg/imgpkg/imagetar/tar_reader.go +++ b/pkg/imgpkg/imagetar/tar_reader.go @@ -151,7 +151,7 @@ func (r TarReader) getIdsFromManifest(file tarFile) (*imagedesc.ImageRefDescript return ids, nil } -func (r TarReader) ReadOci() ([]imagedesc.ImageOrIndex, error) { +func (r TarReader) ReadOci(reponame string) ([]imagedesc.ImageOrIndex, error) { //Check if the path is a OCI layout directory stat, err := os.Stat(r.path) @@ -166,7 +166,6 @@ func (r TarReader) ReadOci() ([]imagedesc.ImageOrIndex, error) { //TODO : FromPath checks for index.json but does not check for oci-layout, so add a check for oci-layout here. - //Get the oci layout rooted in the file system at path, layout index struct l, err := layout.FromPath(r.path) if err != nil { return nil, err @@ -174,27 +173,18 @@ func (r TarReader) ReadOci() ([]imagedesc.ImageOrIndex, error) { ImageIndex, err := l.ImageIndex() - digest, err := ImageIndex.Digest() - - //fmt.Println("ImageIndex's digest :", digest) - - myImageIndex := imagedesc.ImageIndexIntermediate{ + ImageIndexIntermediate := imagedesc.ImageIndexIntermediate{ Index: ImageIndex, } - fmt.Println("ImageIndex's tag :", myImageIndex.Tag()) - fmt.Println("ImageIndex's ref :", myImageIndex.Ref()) - - //convert digest into a string + // Update ref + digest, err := ImageIndex.Digest() digestStr := digest.String() + ref := reponame + "@" + digestStr + ImageIndexIntermediate.SetRef(ref) - ref := "index.docker.io/" + "ashpect/testrepo22@" + digestStr - - //fmt.Println("Ref to be updated :", ref) - - myImageIndex.SetRef(ref) - - var i imagedesc.ImageIndexWithRef = myImageIndex + // Create and populate imageOrIndex + var i imagedesc.ImageIndexWithRef = ImageIndexIntermediate imageOrIndex := imagedesc.ImageOrIndex{ Image: nil, @@ -206,23 +196,9 @@ func (r TarReader) ReadOci() ([]imagedesc.ImageOrIndex, error) { OrigRef: "original-reference", } - //add imageOrIndex to the slice of imageOrIndex + //Add imageOrIndex to the slice of imageOrIndex var imageOrIndexSlice []imagedesc.ImageOrIndex imageOrIndexSlice = append(imageOrIndexSlice, imageOrIndex) - //imgOrIndexes = append(imgOrIndexes, imagedesc.ImageOrIndex{Index: ImageIndex}) - //Handle multiples cases when manifests in index.json are >1 - - //IMP - //ok is the bool that tells us if the image is an image or an index - //t is the v1.Image or v1.ImageIndex - // t, _ := ImageIndex.(v1.Image) - // if err != nil { - // return nil, err - // } - // ----> file := tarFile{r.path} - - //crane.SaveOCI(t, "/Users/ashishkumarsingh/Desktop/stuff/ashpect/imgpkg/cmd/imgpkg/hotstuff") - return imageOrIndexSlice, nil }