From 396b2cb84f68f837fc7988ad6273a64ddf30145e Mon Sep 17 00:00:00 2001 From: Brandt Keller Date: Fri, 14 Feb 2025 17:40:35 +0000 Subject: [PATCH] feat(publish): create vars --- src/internal/packager2/publish.go | 33 +++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/src/internal/packager2/publish.go b/src/internal/packager2/publish.go index e3778a615f..ed67a6bbba 100644 --- a/src/internal/packager2/publish.go +++ b/src/internal/packager2/publish.go @@ -7,6 +7,7 @@ import ( "context" "fmt" + "github.com/defenseunicorns/pkg/oci" "github.com/zarf-dev/zarf/src/internal/packager2/layout" "github.com/zarf-dev/zarf/src/pkg/zoci" "oras.land/oras-go/v2/registry" @@ -19,6 +20,7 @@ type PublishOpts struct { SigningKeyPath string SigningKeyPassword string SkipSignatureValidation bool + WithPlainHTTP bool } // Takes directory/tar file & OCI Registry @@ -35,27 +37,38 @@ func Publish(ctx context.Context, opts PublishOpts) error { return fmt.Errorf("path must be specified") } + // TODO skeleton and flavors during publish // TODO Create skeleton locally cOpts := layout.CreateOptions{ - Flavor: "", - RegistryOverrides: nil, - SigningKeyPath: "", - SigningKeyPassword: "", - SetVariables: nil, - SkipSBOM: false, - DifferentialPackagePath: "", + SigningKeyPath: opts.SigningKeyPath, + SigningKeyPassword: opts.SigningKeyPassword, } // TODO Resolve compiler errors - layout.CreateSkeleton(ctx, packagePath, cOpts) + buildPath, err := layout.CreateSkeleton(ctx, opts.Path, cOpts) + if err != nil { + return err + } + + layoutOpt := layout.PackageLayoutOptions{ + SkipSignatureValidation: opts.SkipSignatureValidation, + IsPartial: true, + } + pkgLayout, err := layout.LoadFromTar(ctx, buildPath, layoutOpt) + if err != nil { + return err + } + + // TODO can we convert from packager types to packager2 types // TODO Do publish to remote + // TODO Resolve compiler errors - rem, err := zoci.NewRemote(ctx, url, platform, mods) + rem, err := zoci.NewRemote(ctx, opts.Registry.String(), zoci.PlatformForSkeleton(), oci.WithPlainHTTP(opts.WithPlainHTTP)) if err != nil { return err } // TODO(mkcp): Resolve compiler errors - err = rem.PublishPackage(ctx, pkg, paths, concurrency) + err = rem.PublishPackage(ctx, &pkgLayout.Pkg, paths, concurrency) if err != nil { return err }