diff --git a/internal/distro/rhel7/distro.go b/internal/distro/rhel7/distro.go index 4f0f61b79..17ded1f02 100644 --- a/internal/distro/rhel7/distro.go +++ b/internal/distro/rhel7/distro.go @@ -423,7 +423,7 @@ func (t *imageType) Manifest(customizations *blueprint.Customizations, osbuild.Manifest{ Version: "2", Pipelines: pipelines, - Sources: osbuild.GenSources(allPackageSpecs, nil, nil), + Sources: osbuild.GenSources(allPackageSpecs, nil, nil, containers), }, ) } diff --git a/internal/distro/rhel8/distro.go b/internal/distro/rhel8/distro.go index b3d530068..1331945b6 100644 --- a/internal/distro/rhel8/distro.go +++ b/internal/distro/rhel8/distro.go @@ -554,7 +554,7 @@ func (t *imageType) Manifest(customizations *blueprint.Customizations, osbuild.Manifest{ Version: "2", Pipelines: pipelines, - Sources: osbuild.GenSources(allPackageSpecs, commits, inlineData), + Sources: osbuild.GenSources(allPackageSpecs, commits, inlineData, containers), }, ) } diff --git a/internal/distro/rhel90/distro.go b/internal/distro/rhel90/distro.go index 290d61504..611ef359d 100644 --- a/internal/distro/rhel90/distro.go +++ b/internal/distro/rhel90/distro.go @@ -488,7 +488,7 @@ func (t *imageType) Manifest(customizations *blueprint.Customizations, osbuild.Manifest{ Version: "2", Pipelines: pipelines, - Sources: osbuild.GenSources(allPackageSpecs, commits, inlineData), + Sources: osbuild.GenSources(allPackageSpecs, commits, inlineData, containers), }, ) } diff --git a/internal/manifest/manifest.go b/internal/manifest/manifest.go index 678e22610..bbff67aeb 100644 --- a/internal/manifest/manifest.go +++ b/internal/manifest/manifest.go @@ -84,7 +84,7 @@ func (m Manifest) Serialize(packageSets map[string][]rpmmd.PackageSpec) (distro. osbuild.Manifest{ Version: "2", Pipelines: pipelines, - Sources: osbuild.GenSources(packages, commits, inline), + Sources: osbuild.GenSources(packages, commits, inline, nil), }, ) } diff --git a/internal/osbuild/source.go b/internal/osbuild/source.go index b67c2231c..68c4d1587 100644 --- a/internal/osbuild/source.go +++ b/internal/osbuild/source.go @@ -4,6 +4,7 @@ import ( "encoding/json" "errors" + "github.com/osbuild/osbuild-composer/internal/container" "github.com/osbuild/osbuild-composer/internal/ostree" "github.com/osbuild/osbuild-composer/internal/rpmmd" ) @@ -53,7 +54,7 @@ func (sources *Sources) UnmarshalJSON(data []byte) error { return nil } -func GenSources(packages []rpmmd.PackageSpec, ostreeCommits []ostree.CommitSource, inlineData []string) Sources { +func GenSources(packages []rpmmd.PackageSpec, ostreeCommits []ostree.CommitSource, inlineData []string, containers []container.Spec) Sources { sources := Sources{} curl := &CurlSource{ Items: make(map[string]CurlSourceItem), @@ -94,5 +95,14 @@ func GenSources(packages []rpmmd.PackageSpec, ostreeCommits []ostree.CommitSourc sources["org.osbuild.inline"] = ils } + skopeo := NewSkopeoSource() + for _, c := range containers { + skopeo.AddItem(c.Source, c.Digest, c.ImageID, c.TLSVerify) + } + + if len(skopeo.Items) > 0 { + sources["org.osbuild.skopeo"] = skopeo + } + return sources }