Skip to content

feat!: publish v1beta1 component configs - #5219

Merged
brandtkeller merged 79 commits into
mainfrom
publish-v1beta1-components
Aug 26, 2026
Merged

feat!: publish v1beta1 component configs#5219
brandtkeller merged 79 commits into
mainfrom
publish-v1beta1-components

Conversation

@AustinAbro321

@AustinAbro321 AustinAbro321 commented Aug 13, 2026

Copy link
Copy Markdown
Member

Description

Implements publishing for v1beta1 component configs.

There are a few notable decisions here:

  • ComponentConfigs now have a .Metadata.variant.Architecture and .Metadata.variant.Flavor field and lose the selector. See ZEP-0051: move selectors to variants on component config proposals#68
  • Component configs can be signed as regular OCI objects. Since they only have a remote representation, they won't have a checksums.txt
  • Files are copied to the OCI cache, but also duplicated on import, this takes up more space than skeleton packages. I think we could improve this in the future by hard linking the filepaths to the cache, but we'll want pkg/oci to expose the Cachepath() for a clean interface.
  • Image archives now accept a either a tar file or a directory of an oci layout. This eliminated the need to compress archives from skeleton packages before pulling the image in.
  • OnCreate actions are not allowed in remote components. We can reconsider this later, or even run them on publish, but this prevents running host actions when importing a remote component.

Breaking changes

The core of the breaking changes in this PR was to decouple the path to the package after loading is done. A new object load.ResourceSet knows how get any resource from the package given it's entry in the package spec.

  • load.PackageDefinition now returns api.PackageDefinition instead of load.ResolvedPackage, and does not pull remote resources or resolve values schemas; use load.Package when resolved resources, values, or schemas are needed.
  • load.ResolvedPackage now exposes Definition, Resources, Values, and ValuesSchema. It must be passed by pointer and closed with Close() after use.
  • assemble.AssemblePackage changed from (ctx, resolvedPackage, packagePath, opts) to (ctx, *resolvedPackage, opts).
  • assemble.AssembleSkeleton changed from (ctx, resolvedPackage, packagePath, opts) to (ctx, *resolvedPackage, opts).
  • assemble.PackageManifest and assemble.PackageChart now take *load.ResourceSet instead of a package-root path string.

Related Issue

Relates to #5165

Checklist before merging

Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>
@netlify

netlify Bot commented Aug 13, 2026

Copy link
Copy Markdown

Deploy Preview for zarf-docs canceled.

Name Link
🔨 Latest commit 02ca3c4
🔍 Latest deploy log https://app.netlify.com/projects/zarf-docs/deploys/6a8f3762788cbf00082ee313

Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>
@AustinAbro321
AustinAbro321 marked this pull request as ready for review August 18, 2026 16:33
@AustinAbro321
AustinAbro321 requested review from a team as code owners August 18, 2026 16:33
Comment thread src/pkg/component/resource_normalizer.go
AustinAbro321 and others added 4 commits August 21, 2026 09:10
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Comment thread src/pkg/component/publish.go Outdated
Comment thread src/pkg/packager/load/package.go
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Comment thread src/pkg/component/publish.go
Comment thread src/pkg/signing/cosign.go Outdated
AustinAbro321 and others added 4 commits August 25, 2026 10:13
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Signed-off-by: Austin Abro <austinabro321@gmail.com>

@brandtkeller brandtkeller left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@brandtkeller
brandtkeller added this pull request to the merge queue Aug 26, 2026
Merged via the queue into main with commit abd07dd Aug 26, 2026
31 of 32 checks passed
@brandtkeller
brandtkeller deleted the publish-v1beta1-components branch August 26, 2026 23:12
@github-project-automation github-project-automation Bot moved this to Done in Zarf Aug 26, 2026
chaospuppy pushed a commit to chaospuppy/zarf that referenced this pull request Sep 1, 2026
Signed-off-by: Austin Abro <austinabro321@gmail.com>
Co-authored-by: Brandt Keller <43887158+brandtkeller@users.noreply.github.com>
Signed-off-by: Tim Seagren <timseagren@defenseunicorns.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants