Skip to content

Commit 5f7fb34

Browse files
committed
distro/generic: pass subscription options to bootc disk images
Copy the requested subscription options into the image customizations in manifestForDisk, so bootc disk images (qcow2, ami, ...) register on first boot via the machinery added in the previous commit.
1 parent ef8cc3c commit 5f7fb34

2 files changed

Lines changed: 23 additions & 0 deletions

File tree

pkg/distro/generic/bootc_image_test.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66

77
"github.com/osbuild/blueprint/pkg/blueprint"
88
"github.com/osbuild/image-builder/internal/common"
9+
"github.com/osbuild/image-builder/pkg/customizations/subscription"
910
"github.com/osbuild/image-builder/pkg/datasizes"
1011
"github.com/osbuild/image-builder/pkg/disk"
1112
"github.com/osbuild/image-builder/pkg/disk/partition"
@@ -670,3 +671,24 @@ func TestGenPartitionTableFromOSInfo(t *testing.T) {
670671
assert.NoError(t, err)
671672
assert.Contains(t, string(manifestJson), "01010101-01011-01011-01011-01010101")
672673
}
674+
675+
// Each bootc manifestFor* variant hand-copies customizations, so pin that the
676+
// disk variant does not forget to pass Subscription through.
677+
func TestManifestSubscriptionCustomization(t *testing.T) {
678+
imgType := NewTestBootcImageType(t, "qcow2")
679+
imgOpts := distro.ImageOptions{
680+
Subscription: &subscription.ImageOptions{
681+
Organization: "2040324",
682+
ActivationKey: "my-secret-key",
683+
},
684+
}
685+
686+
mf, _, err := imgType.Manifest(&blueprint.Blueprint{}, imgOpts, nil, common.ToPtr(int64(0)))
687+
assert.NoError(t, err)
688+
manifestJson, err := mf.Serialize(nil, diskContainers, nil, nil, nil)
689+
assert.NoError(t, err)
690+
691+
// assert on names, not stage types: mount units share them
692+
assert.Contains(t, string(manifestJson), "osbuild-subscription-register.service")
693+
assert.Contains(t, string(manifestJson), "/etc/osbuild-subscription-register.env")
694+
}

pkg/distro/generic/bootc_imagetype.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,7 @@ func (t *bootcImageType) manifestForDisk(bp *blueprint.Blueprint, options distro
226226
img.Bootloader = bd.bootloader
227227
img.UnifiedKernel = bd.unifiedKernel
228228

229+
img.OSCustomizations.Subscription = options.Subscription
229230
img.OSCustomizations.Users = users.UsersFromBP(customizations.GetUsers())
230231

231232
groups, err := customizations.GetGroups()

0 commit comments

Comments
 (0)