Skip to content

Commit e1b40ff

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 96573cd commit e1b40ff

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
@@ -225,6 +225,7 @@ func (t *bootcImageType) manifestForDisk(bp *blueprint.Blueprint, options distro
225225
img.Bootloader = bd.bootloader
226226
img.UnifiedKernel = bd.unifiedKernel
227227

228+
img.OSCustomizations.Subscription = options.Subscription
228229
img.OSCustomizations.Users = users.UsersFromBP(customizations.GetUsers())
229230

230231
groups, err := customizations.GetGroups()

0 commit comments

Comments
 (0)