subscription: new package for subscription options
Move the subscription options from distro to its own package. Now we can import the manifest package into the distro package (instead of the other way around) so we can work with the manifest.Manifest type in distro.
This commit is contained in:
parent
ea305d9c0f
commit
0f925c445c
16 changed files with 95 additions and 81 deletions
|
|
@ -21,6 +21,7 @@ import (
|
|||
"github.com/osbuild/osbuild-composer/internal/osbuild"
|
||||
"github.com/osbuild/osbuild-composer/internal/ostree"
|
||||
"github.com/osbuild/osbuild-composer/internal/rpmmd"
|
||||
"github.com/osbuild/osbuild-composer/internal/subscription"
|
||||
"github.com/osbuild/osbuild-composer/internal/target"
|
||||
"github.com/osbuild/osbuild-composer/internal/worker"
|
||||
"github.com/osbuild/osbuild-composer/internal/worker/clienterrors"
|
||||
|
|
@ -446,7 +447,7 @@ func (h *apiHandlers) PostCompose(ctx echo.Context) error {
|
|||
if request.Customizations.Subscription.Rhc != nil {
|
||||
rhc = *request.Customizations.Subscription.Rhc
|
||||
}
|
||||
imageOptions.Subscription = &distro.SubscriptionImageOptions{
|
||||
imageOptions.Subscription = &subscription.ImageOptions{
|
||||
Organization: request.Customizations.Subscription.Organization,
|
||||
ActivationKey: request.Customizations.Subscription.ActivationKey,
|
||||
ServerUrl: request.Customizations.Subscription.ServerUrl,
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import (
|
|||
"github.com/osbuild/osbuild-composer/internal/container"
|
||||
"github.com/osbuild/osbuild-composer/internal/disk"
|
||||
"github.com/osbuild/osbuild-composer/internal/rpmmd"
|
||||
"github.com/osbuild/osbuild-composer/internal/subscription"
|
||||
)
|
||||
|
||||
const (
|
||||
|
|
@ -146,7 +147,7 @@ type ImageType interface {
|
|||
type ImageOptions struct {
|
||||
Size uint64
|
||||
OSTree OSTreeImageOptions
|
||||
Subscription *SubscriptionImageOptions
|
||||
Subscription *subscription.ImageOptions
|
||||
Facts *FactsImageOptions
|
||||
}
|
||||
|
||||
|
|
@ -176,18 +177,6 @@ type OSTreeImageOptions struct {
|
|||
RHSM bool
|
||||
}
|
||||
|
||||
// The SubscriptionImageOptions specify subscription-specific image options
|
||||
// ServerUrl denotes the host to register the system with
|
||||
// BaseUrl specifies the repository URL for DNF
|
||||
type SubscriptionImageOptions struct {
|
||||
Organization string
|
||||
ActivationKey string
|
||||
ServerUrl string
|
||||
BaseUrl string
|
||||
Insights bool
|
||||
Rhc bool
|
||||
}
|
||||
|
||||
// The FactsImageOptions specify things to be stored into the Insights facts
|
||||
// storage. This mostly relates to how the build of the image was performed.
|
||||
type FactsImageOptions struct {
|
||||
|
|
|
|||
|
|
@ -6,13 +6,7 @@ import (
|
|||
|
||||
"github.com/osbuild/osbuild-composer/internal/osbuild"
|
||||
"github.com/osbuild/osbuild-composer/internal/shell"
|
||||
)
|
||||
|
||||
type RHSMSubscriptionStatus string
|
||||
|
||||
const (
|
||||
RHSMConfigWithSubscription RHSMSubscriptionStatus = "with-subscription"
|
||||
RHSMConfigNoSubscription RHSMSubscriptionStatus = "no-subscription"
|
||||
"github.com/osbuild/osbuild-composer/internal/subscription"
|
||||
)
|
||||
|
||||
// ImageConfig represents a (default) configuration applied to the image
|
||||
|
|
@ -43,7 +37,7 @@ type ImageConfig struct {
|
|||
|
||||
// for RHSM configuration, we need to potentially distinguish the case
|
||||
// when the user want the image to be subscribed on first boot and when not
|
||||
RHSMConfig map[RHSMSubscriptionStatus]*osbuild.RHSMStageOptions
|
||||
RHSMConfig map[subscription.RHSMStatus]*osbuild.RHSMStageOptions
|
||||
SystemdLogind []*osbuild.SystemdLogindStageOptions
|
||||
CloudInit []*osbuild.CloudInitStageOptions
|
||||
Modprobe []*osbuild.ModprobeStageOptions
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import (
|
|||
"github.com/osbuild/osbuild-composer/internal/distro"
|
||||
"github.com/osbuild/osbuild-composer/internal/osbuild"
|
||||
"github.com/osbuild/osbuild-composer/internal/rpmmd"
|
||||
"github.com/osbuild/osbuild-composer/internal/subscription"
|
||||
)
|
||||
|
||||
var azureRhuiImgType = imageType{
|
||||
|
|
@ -151,8 +152,8 @@ var azureDefaultImgConfig = &distro.ImageConfig{
|
|||
RDEnableSwap: common.ToPtr(false),
|
||||
},
|
||||
},
|
||||
RHSMConfig: map[distro.RHSMSubscriptionStatus]*osbuild.RHSMStageOptions{
|
||||
distro.RHSMConfigNoSubscription: {
|
||||
RHSMConfig: map[subscription.RHSMStatus]*osbuild.RHSMStageOptions{
|
||||
subscription.RHSMConfigNoSubscription: {
|
||||
YumPlugins: &osbuild.RHSMStageOptionsDnfPlugins{
|
||||
SubscriptionManager: &osbuild.RHSMStageOptionsDnfPlugin{
|
||||
Enabled: false,
|
||||
|
|
@ -167,7 +168,7 @@ var azureDefaultImgConfig = &distro.ImageConfig{
|
|||
},
|
||||
},
|
||||
},
|
||||
distro.RHSMConfigWithSubscription: {
|
||||
subscription.RHSMConfigWithSubscription: {
|
||||
SubMan: &osbuild.RHSMStageOptionsSubMan{
|
||||
Rhsmcertd: &osbuild.SubManConfigRHSMCERTDSection{
|
||||
AutoRegistration: common.ToPtr(true),
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import (
|
|||
"github.com/osbuild/osbuild-composer/internal/distro"
|
||||
"github.com/osbuild/osbuild-composer/internal/osbuild"
|
||||
"github.com/osbuild/osbuild-composer/internal/rpmmd"
|
||||
"github.com/osbuild/osbuild-composer/internal/subscription"
|
||||
)
|
||||
|
||||
var qcow2ImgType = imageType{
|
||||
|
|
@ -53,8 +54,8 @@ var qcow2DefaultImgConfig = &distro.ImageConfig{
|
|||
},
|
||||
},
|
||||
},
|
||||
RHSMConfig: map[distro.RHSMSubscriptionStatus]*osbuild.RHSMStageOptions{
|
||||
distro.RHSMConfigNoSubscription: {
|
||||
RHSMConfig: map[subscription.RHSMStatus]*osbuild.RHSMStageOptions{
|
||||
subscription.RHSMConfigNoSubscription: {
|
||||
YumPlugins: &osbuild.RHSMStageOptionsDnfPlugins{
|
||||
ProductID: &osbuild.RHSMStageOptionsDnfPlugin{
|
||||
Enabled: false,
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import (
|
|||
"github.com/osbuild/osbuild-composer/internal/distro"
|
||||
"github.com/osbuild/osbuild-composer/internal/osbuild"
|
||||
"github.com/osbuild/osbuild-composer/internal/rpmmd"
|
||||
"github.com/osbuild/osbuild-composer/internal/subscription"
|
||||
)
|
||||
|
||||
func amiImgTypeX86_64(rd distribution) imageType {
|
||||
|
|
@ -222,8 +223,8 @@ func baseEc2ImageConfig() *distro.ImageConfig {
|
|||
},
|
||||
},
|
||||
},
|
||||
RHSMConfig: map[distro.RHSMSubscriptionStatus]*osbuild.RHSMStageOptions{
|
||||
distro.RHSMConfigNoSubscription: {
|
||||
RHSMConfig: map[subscription.RHSMStatus]*osbuild.RHSMStageOptions{
|
||||
subscription.RHSMConfigNoSubscription: {
|
||||
// RHBZ#1932802
|
||||
SubMan: &osbuild.RHSMStageOptionsSubMan{
|
||||
Rhsmcertd: &osbuild.SubManConfigRHSMCERTDSection{
|
||||
|
|
@ -234,7 +235,7 @@ func baseEc2ImageConfig() *distro.ImageConfig {
|
|||
},
|
||||
},
|
||||
},
|
||||
distro.RHSMConfigWithSubscription: {
|
||||
subscription.RHSMConfigWithSubscription: {
|
||||
// RHBZ#1932802
|
||||
SubMan: &osbuild.RHSMStageOptionsSubMan{
|
||||
Rhsmcertd: &osbuild.SubManConfigRHSMCERTDSection{
|
||||
|
|
@ -319,14 +320,14 @@ func defaultEc2ImageConfig(rd distribution) *distro.ImageConfig {
|
|||
if rd.isRHEL() && common.VersionLessThan(rd.osVersion, "9.1") {
|
||||
ic = appendRHSM(ic)
|
||||
// Disable RHSM redhat.repo management
|
||||
rhsmConf := ic.RHSMConfig[distro.RHSMConfigNoSubscription]
|
||||
rhsmConf := ic.RHSMConfig[subscription.RHSMConfigNoSubscription]
|
||||
rhsmConf.SubMan.Rhsm = &osbuild.SubManConfigRHSMSection{ManageRepos: common.ToPtr(false)}
|
||||
ic.RHSMConfig[distro.RHSMConfigNoSubscription] = rhsmConf
|
||||
ic.RHSMConfig[subscription.RHSMConfigNoSubscription] = rhsmConf
|
||||
}
|
||||
// The RHSM configuration should not be applied since 8.7, but it is instead done by installing the redhat-cloud-client-configuration package.
|
||||
// See COMPOSER-1804 for more information.
|
||||
rhel87PlusEc2ImageConfigOverride := &distro.ImageConfig{
|
||||
RHSMConfig: map[distro.RHSMSubscriptionStatus]*osbuild.RHSMStageOptions{},
|
||||
RHSMConfig: map[subscription.RHSMStatus]*osbuild.RHSMStageOptions{},
|
||||
}
|
||||
if !common.VersionLessThan(rd.osVersion, "8.7") {
|
||||
ic = rhel87PlusEc2ImageConfigOverride.InheritFrom(ic)
|
||||
|
|
@ -464,8 +465,8 @@ func rhelEc2SapPackageSet(t *imageType) rpmmd.PackageSet {
|
|||
// Used for RHEL distros.
|
||||
func appendRHSM(ic *distro.ImageConfig) *distro.ImageConfig {
|
||||
rhsm := &distro.ImageConfig{
|
||||
RHSMConfig: map[distro.RHSMSubscriptionStatus]*osbuild.RHSMStageOptions{
|
||||
distro.RHSMConfigNoSubscription: {
|
||||
RHSMConfig: map[subscription.RHSMStatus]*osbuild.RHSMStageOptions{
|
||||
subscription.RHSMConfigNoSubscription: {
|
||||
// RHBZ#1932802
|
||||
SubMan: &osbuild.RHSMStageOptionsSubMan{
|
||||
Rhsmcertd: &osbuild.SubManConfigRHSMCERTDSection{
|
||||
|
|
@ -480,7 +481,7 @@ func appendRHSM(ic *distro.ImageConfig) *distro.ImageConfig {
|
|||
// confusing.
|
||||
},
|
||||
},
|
||||
distro.RHSMConfigWithSubscription: {
|
||||
subscription.RHSMConfigWithSubscription: {
|
||||
// RHBZ#1932802
|
||||
SubMan: &osbuild.RHSMStageOptionsSubMan{
|
||||
Rhsmcertd: &osbuild.SubManConfigRHSMCERTDSection{
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import (
|
|||
"github.com/osbuild/osbuild-composer/internal/osbuild"
|
||||
"github.com/osbuild/osbuild-composer/internal/rpmmd"
|
||||
"github.com/osbuild/osbuild-composer/internal/shell"
|
||||
"github.com/osbuild/osbuild-composer/internal/subscription"
|
||||
)
|
||||
|
||||
const defaultAzureKernelOptions = "ro crashkernel=auto console=tty1 console=ttyS0 earlyprintk=ttyS0 rootdelay=300"
|
||||
|
|
@ -623,8 +624,8 @@ var defaultAzureByosImageConfig = &distro.ImageConfig{
|
|||
GPGKeyFiles: []string{
|
||||
"/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release",
|
||||
},
|
||||
RHSMConfig: map[distro.RHSMSubscriptionStatus]*osbuild.RHSMStageOptions{
|
||||
distro.RHSMConfigNoSubscription: {
|
||||
RHSMConfig: map[subscription.RHSMStatus]*osbuild.RHSMStageOptions{
|
||||
subscription.RHSMConfigNoSubscription: {
|
||||
SubMan: &osbuild.RHSMStageOptionsSubMan{
|
||||
Rhsmcertd: &osbuild.SubManConfigRHSMCERTDSection{
|
||||
AutoRegistration: common.ToPtr(true),
|
||||
|
|
@ -638,7 +639,7 @@ var defaultAzureByosImageConfig = &distro.ImageConfig{
|
|||
// confusing.
|
||||
},
|
||||
},
|
||||
distro.RHSMConfigWithSubscription: {
|
||||
subscription.RHSMConfigWithSubscription: {
|
||||
SubMan: &osbuild.RHSMStageOptionsSubMan{
|
||||
Rhsmcertd: &osbuild.SubManConfigRHSMCERTDSection{
|
||||
AutoRegistration: common.ToPtr(true),
|
||||
|
|
@ -656,8 +657,8 @@ var defaultAzureRhuiImageConfig = &distro.ImageConfig{
|
|||
"/etc/pki/rpm-gpg/RPM-GPG-KEY-microsoft-azure-release",
|
||||
"/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release",
|
||||
},
|
||||
RHSMConfig: map[distro.RHSMSubscriptionStatus]*osbuild.RHSMStageOptions{
|
||||
distro.RHSMConfigNoSubscription: {
|
||||
RHSMConfig: map[subscription.RHSMStatus]*osbuild.RHSMStageOptions{
|
||||
subscription.RHSMConfigNoSubscription: {
|
||||
DnfPlugins: &osbuild.RHSMStageOptionsDnfPlugins{
|
||||
SubscriptionManager: &osbuild.RHSMStageOptionsDnfPlugin{
|
||||
Enabled: false,
|
||||
|
|
@ -672,7 +673,7 @@ var defaultAzureRhuiImageConfig = &distro.ImageConfig{
|
|||
},
|
||||
},
|
||||
},
|
||||
distro.RHSMConfigWithSubscription: {
|
||||
subscription.RHSMConfigWithSubscription: {
|
||||
SubMan: &osbuild.RHSMStageOptionsSubMan{
|
||||
Rhsmcertd: &osbuild.SubManConfigRHSMCERTDSection{
|
||||
AutoRegistration: common.ToPtr(true),
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import (
|
|||
"github.com/osbuild/osbuild-composer/internal/distro"
|
||||
"github.com/osbuild/osbuild-composer/internal/osbuild"
|
||||
"github.com/osbuild/osbuild-composer/internal/rpmmd"
|
||||
"github.com/osbuild/osbuild-composer/internal/subscription"
|
||||
)
|
||||
|
||||
const gceKernelOptions = "net.ifnames=0 biosdevname=0 scsi_mod.use_blk_mq=Y crashkernel=auto console=ttyS0,38400n8d"
|
||||
|
|
@ -156,8 +157,8 @@ func defaultGceByosImageConfig(rd distribution) *distro.ImageConfig {
|
|||
}
|
||||
|
||||
if rd.isRHEL() {
|
||||
ic.RHSMConfig = map[distro.RHSMSubscriptionStatus]*osbuild.RHSMStageOptions{
|
||||
distro.RHSMConfigNoSubscription: {
|
||||
ic.RHSMConfig = map[subscription.RHSMStatus]*osbuild.RHSMStageOptions{
|
||||
subscription.RHSMConfigNoSubscription: {
|
||||
SubMan: &osbuild.RHSMStageOptionsSubMan{
|
||||
Rhsmcertd: &osbuild.SubManConfigRHSMCERTDSection{
|
||||
AutoRegistration: common.ToPtr(true),
|
||||
|
|
@ -171,7 +172,7 @@ func defaultGceByosImageConfig(rd distribution) *distro.ImageConfig {
|
|||
// confusing.
|
||||
},
|
||||
},
|
||||
distro.RHSMConfigWithSubscription: {
|
||||
subscription.RHSMConfigWithSubscription: {
|
||||
SubMan: &osbuild.RHSMStageOptionsSubMan{
|
||||
Rhsmcertd: &osbuild.SubManConfigRHSMCERTDSection{
|
||||
AutoRegistration: common.ToPtr(true),
|
||||
|
|
@ -187,8 +188,8 @@ func defaultGceByosImageConfig(rd distribution) *distro.ImageConfig {
|
|||
|
||||
func defaultGceRhuiImageConfig(rd distribution) *distro.ImageConfig {
|
||||
ic := &distro.ImageConfig{
|
||||
RHSMConfig: map[distro.RHSMSubscriptionStatus]*osbuild.RHSMStageOptions{
|
||||
distro.RHSMConfigNoSubscription: {
|
||||
RHSMConfig: map[subscription.RHSMStatus]*osbuild.RHSMStageOptions{
|
||||
subscription.RHSMConfigNoSubscription: {
|
||||
SubMan: &osbuild.RHSMStageOptionsSubMan{
|
||||
Rhsmcertd: &osbuild.SubManConfigRHSMCERTDSection{
|
||||
AutoRegistration: common.ToPtr(true),
|
||||
|
|
@ -198,7 +199,7 @@ func defaultGceRhuiImageConfig(rd distribution) *distro.ImageConfig {
|
|||
},
|
||||
},
|
||||
},
|
||||
distro.RHSMConfigWithSubscription: {
|
||||
subscription.RHSMConfigWithSubscription: {
|
||||
SubMan: &osbuild.RHSMStageOptionsSubMan{
|
||||
Rhsmcertd: &osbuild.SubManConfigRHSMCERTDSection{
|
||||
AutoRegistration: common.ToPtr(true),
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import (
|
|||
"github.com/osbuild/osbuild-composer/internal/distro"
|
||||
"github.com/osbuild/osbuild-composer/internal/osbuild"
|
||||
"github.com/osbuild/osbuild-composer/internal/rpmmd"
|
||||
"github.com/osbuild/osbuild-composer/internal/subscription"
|
||||
)
|
||||
|
||||
func qcow2ImgType(rd distribution) imageType {
|
||||
|
|
@ -29,8 +30,8 @@ func qcow2ImgType(rd distribution) imageType {
|
|||
}
|
||||
|
||||
if rd.isRHEL() {
|
||||
it.defaultImageConfig.RHSMConfig = map[distro.RHSMSubscriptionStatus]*osbuild.RHSMStageOptions{
|
||||
distro.RHSMConfigNoSubscription: {
|
||||
it.defaultImageConfig.RHSMConfig = map[subscription.RHSMStatus]*osbuild.RHSMStageOptions{
|
||||
subscription.RHSMConfigNoSubscription: {
|
||||
DnfPlugins: &osbuild.RHSMStageOptionsDnfPlugins{
|
||||
ProductID: &osbuild.RHSMStageOptionsDnfPlugin{
|
||||
Enabled: false,
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import (
|
|||
"github.com/osbuild/osbuild-composer/internal/distro"
|
||||
"github.com/osbuild/osbuild-composer/internal/osbuild"
|
||||
"github.com/osbuild/osbuild-composer/internal/rpmmd"
|
||||
"github.com/osbuild/osbuild-composer/internal/subscription"
|
||||
)
|
||||
|
||||
const amiKernelOptions = "console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295"
|
||||
|
|
@ -257,9 +258,9 @@ func defaultEc2ImageConfig(osVersion string, rhsm bool) *distro.ImageConfig {
|
|||
if rhsm && common.VersionLessThan(osVersion, "9.1") {
|
||||
ic = appendRHSM(ic)
|
||||
// Disable RHSM redhat.repo management
|
||||
rhsmConf := ic.RHSMConfig[distro.RHSMConfigNoSubscription]
|
||||
rhsmConf := ic.RHSMConfig[subscription.RHSMConfigNoSubscription]
|
||||
rhsmConf.SubMan.Rhsm = &osbuild.SubManConfigRHSMSection{ManageRepos: common.ToPtr(false)}
|
||||
ic.RHSMConfig[distro.RHSMConfigNoSubscription] = rhsmConf
|
||||
ic.RHSMConfig[subscription.RHSMConfigNoSubscription] = rhsmConf
|
||||
}
|
||||
return ic
|
||||
}
|
||||
|
|
@ -428,8 +429,8 @@ func mkEC2ImgTypeAarch64(osVersion string, rhsm bool) imageType {
|
|||
// Used for RHEL distros.
|
||||
func appendRHSM(ic *distro.ImageConfig) *distro.ImageConfig {
|
||||
rhsm := &distro.ImageConfig{
|
||||
RHSMConfig: map[distro.RHSMSubscriptionStatus]*osbuild.RHSMStageOptions{
|
||||
distro.RHSMConfigNoSubscription: {
|
||||
RHSMConfig: map[subscription.RHSMStatus]*osbuild.RHSMStageOptions{
|
||||
subscription.RHSMConfigNoSubscription: {
|
||||
// RHBZ#1932802
|
||||
SubMan: &osbuild.RHSMStageOptionsSubMan{
|
||||
Rhsmcertd: &osbuild.SubManConfigRHSMCERTDSection{
|
||||
|
|
@ -444,7 +445,7 @@ func appendRHSM(ic *distro.ImageConfig) *distro.ImageConfig {
|
|||
// confusing.
|
||||
},
|
||||
},
|
||||
distro.RHSMConfigWithSubscription: {
|
||||
subscription.RHSMConfigWithSubscription: {
|
||||
// RHBZ#1932802
|
||||
SubMan: &osbuild.RHSMStageOptionsSubMan{
|
||||
Rhsmcertd: &osbuild.SubManConfigRHSMCERTDSection{
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import (
|
|||
"github.com/osbuild/osbuild-composer/internal/distro"
|
||||
"github.com/osbuild/osbuild-composer/internal/osbuild"
|
||||
"github.com/osbuild/osbuild-composer/internal/rpmmd"
|
||||
"github.com/osbuild/osbuild-composer/internal/subscription"
|
||||
)
|
||||
|
||||
var (
|
||||
|
|
@ -532,8 +533,8 @@ var defaultAzureByosImageConfig = &distro.ImageConfig{
|
|||
GPGKeyFiles: []string{
|
||||
"/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release",
|
||||
},
|
||||
RHSMConfig: map[distro.RHSMSubscriptionStatus]*osbuild.RHSMStageOptions{
|
||||
distro.RHSMConfigNoSubscription: {
|
||||
RHSMConfig: map[subscription.RHSMStatus]*osbuild.RHSMStageOptions{
|
||||
subscription.RHSMConfigNoSubscription: {
|
||||
SubMan: &osbuild.RHSMStageOptionsSubMan{
|
||||
Rhsmcertd: &osbuild.SubManConfigRHSMCERTDSection{
|
||||
AutoRegistration: common.ToPtr(true),
|
||||
|
|
@ -547,7 +548,7 @@ var defaultAzureByosImageConfig = &distro.ImageConfig{
|
|||
// confusing.
|
||||
},
|
||||
},
|
||||
distro.RHSMConfigWithSubscription: {
|
||||
subscription.RHSMConfigWithSubscription: {
|
||||
SubMan: &osbuild.RHSMStageOptionsSubMan{
|
||||
Rhsmcertd: &osbuild.SubManConfigRHSMCERTDSection{
|
||||
AutoRegistration: common.ToPtr(true),
|
||||
|
|
@ -565,8 +566,8 @@ var defaultAzureRhuiImageConfig = &distro.ImageConfig{
|
|||
"/etc/pki/rpm-gpg/RPM-GPG-KEY-microsoft-azure-release",
|
||||
"/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release",
|
||||
},
|
||||
RHSMConfig: map[distro.RHSMSubscriptionStatus]*osbuild.RHSMStageOptions{
|
||||
distro.RHSMConfigNoSubscription: {
|
||||
RHSMConfig: map[subscription.RHSMStatus]*osbuild.RHSMStageOptions{
|
||||
subscription.RHSMConfigNoSubscription: {
|
||||
DnfPlugins: &osbuild.RHSMStageOptionsDnfPlugins{
|
||||
SubscriptionManager: &osbuild.RHSMStageOptionsDnfPlugin{
|
||||
Enabled: false,
|
||||
|
|
@ -581,7 +582,7 @@ var defaultAzureRhuiImageConfig = &distro.ImageConfig{
|
|||
},
|
||||
},
|
||||
},
|
||||
distro.RHSMConfigWithSubscription: {
|
||||
subscription.RHSMConfigWithSubscription: {
|
||||
SubMan: &osbuild.RHSMStageOptionsSubMan{
|
||||
Rhsmcertd: &osbuild.SubManConfigRHSMCERTDSection{
|
||||
AutoRegistration: common.ToPtr(true),
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import (
|
|||
"github.com/osbuild/osbuild-composer/internal/distro"
|
||||
"github.com/osbuild/osbuild-composer/internal/osbuild"
|
||||
"github.com/osbuild/osbuild-composer/internal/rpmmd"
|
||||
"github.com/osbuild/osbuild-composer/internal/subscription"
|
||||
)
|
||||
|
||||
const gceKernelOptions = "net.ifnames=0 biosdevname=0 scsi_mod.use_blk_mq=Y console=ttyS0,38400n8d"
|
||||
|
|
@ -154,8 +155,8 @@ func baseGCEImageConfig(rhsm bool) *distro.ImageConfig {
|
|||
}
|
||||
|
||||
if rhsm {
|
||||
ic.RHSMConfig = map[distro.RHSMSubscriptionStatus]*osbuild.RHSMStageOptions{
|
||||
distro.RHSMConfigNoSubscription: {
|
||||
ic.RHSMConfig = map[subscription.RHSMStatus]*osbuild.RHSMStageOptions{
|
||||
subscription.RHSMConfigNoSubscription: {
|
||||
SubMan: &osbuild.RHSMStageOptionsSubMan{
|
||||
Rhsmcertd: &osbuild.SubManConfigRHSMCERTDSection{
|
||||
AutoRegistration: common.ToPtr(true),
|
||||
|
|
@ -169,7 +170,7 @@ func baseGCEImageConfig(rhsm bool) *distro.ImageConfig {
|
|||
// confusing.
|
||||
},
|
||||
},
|
||||
distro.RHSMConfigWithSubscription: {
|
||||
subscription.RHSMConfigWithSubscription: {
|
||||
SubMan: &osbuild.RHSMStageOptionsSubMan{
|
||||
Rhsmcertd: &osbuild.SubManConfigRHSMCERTDSection{
|
||||
AutoRegistration: common.ToPtr(true),
|
||||
|
|
@ -185,8 +186,8 @@ func baseGCEImageConfig(rhsm bool) *distro.ImageConfig {
|
|||
|
||||
func defaultGceRhuiImageConfig(rhsm bool) *distro.ImageConfig {
|
||||
ic := &distro.ImageConfig{
|
||||
RHSMConfig: map[distro.RHSMSubscriptionStatus]*osbuild.RHSMStageOptions{
|
||||
distro.RHSMConfigNoSubscription: {
|
||||
RHSMConfig: map[subscription.RHSMStatus]*osbuild.RHSMStageOptions{
|
||||
subscription.RHSMConfigNoSubscription: {
|
||||
SubMan: &osbuild.RHSMStageOptionsSubMan{
|
||||
Rhsmcertd: &osbuild.SubManConfigRHSMCERTDSection{
|
||||
AutoRegistration: common.ToPtr(true),
|
||||
|
|
@ -196,7 +197,7 @@ func defaultGceRhuiImageConfig(rhsm bool) *distro.ImageConfig {
|
|||
},
|
||||
},
|
||||
},
|
||||
distro.RHSMConfigWithSubscription: {
|
||||
subscription.RHSMConfigWithSubscription: {
|
||||
SubMan: &osbuild.RHSMStageOptionsSubMan{
|
||||
Rhsmcertd: &osbuild.SubManConfigRHSMCERTDSection{
|
||||
AutoRegistration: common.ToPtr(true),
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import (
|
|||
"github.com/osbuild/osbuild-composer/internal/distro"
|
||||
"github.com/osbuild/osbuild-composer/internal/osbuild"
|
||||
"github.com/osbuild/osbuild-composer/internal/rpmmd"
|
||||
"github.com/osbuild/osbuild-composer/internal/subscription"
|
||||
)
|
||||
|
||||
var (
|
||||
|
|
@ -132,8 +133,8 @@ func qcowImageConfig(d distribution) *distro.ImageConfig {
|
|||
DefaultTarget: common.ToPtr("multi-user.target"),
|
||||
}
|
||||
if d.isRHEL() {
|
||||
ic.RHSMConfig = map[distro.RHSMSubscriptionStatus]*osbuild.RHSMStageOptions{
|
||||
distro.RHSMConfigNoSubscription: {
|
||||
ic.RHSMConfig = map[subscription.RHSMStatus]*osbuild.RHSMStageOptions{
|
||||
subscription.RHSMConfigNoSubscription: {
|
||||
DnfPlugins: &osbuild.RHSMStageOptionsDnfPlugins{
|
||||
ProductID: &osbuild.RHSMStageOptionsDnfPlugin{
|
||||
Enabled: false,
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ import (
|
|||
"github.com/osbuild/osbuild-composer/internal/common"
|
||||
"github.com/osbuild/osbuild-composer/internal/container"
|
||||
"github.com/osbuild/osbuild-composer/internal/disk"
|
||||
"github.com/osbuild/osbuild-composer/internal/distro"
|
||||
"github.com/osbuild/osbuild-composer/internal/environment"
|
||||
"github.com/osbuild/osbuild-composer/internal/fsnode"
|
||||
"github.com/osbuild/osbuild-composer/internal/osbuild"
|
||||
|
|
@ -16,6 +15,7 @@ import (
|
|||
"github.com/osbuild/osbuild-composer/internal/platform"
|
||||
"github.com/osbuild/osbuild-composer/internal/rpmmd"
|
||||
"github.com/osbuild/osbuild-composer/internal/shell"
|
||||
"github.com/osbuild/osbuild-composer/internal/subscription"
|
||||
"github.com/osbuild/osbuild-composer/internal/users"
|
||||
"github.com/osbuild/osbuild-composer/internal/workload"
|
||||
)
|
||||
|
|
@ -120,8 +120,8 @@ type OSCustomizations struct {
|
|||
LeapSecTZ *string
|
||||
FactAPIType string
|
||||
|
||||
Subscription *distro.SubscriptionImageOptions
|
||||
RHSMConfig map[distro.RHSMSubscriptionStatus]*osbuild.RHSMStageOptions
|
||||
Subscription *subscription.ImageOptions
|
||||
RHSMConfig map[subscription.RHSMStatus]*osbuild.RHSMStageOptions
|
||||
|
||||
// Custom directories and files to create in the image
|
||||
Directories []*fsnode.Directory
|
||||
|
|
@ -519,11 +519,11 @@ func (p *OS) serialize() osbuild.Pipeline {
|
|||
WaitForNetwork: true,
|
||||
}))
|
||||
|
||||
if rhsmConfig, exists := p.RHSMConfig[distro.RHSMConfigWithSubscription]; exists {
|
||||
if rhsmConfig, exists := p.RHSMConfig[subscription.RHSMConfigWithSubscription]; exists {
|
||||
pipeline.AddStage(osbuild.NewRHSMStage(rhsmConfig))
|
||||
}
|
||||
} else {
|
||||
if rhsmConfig, exists := p.RHSMConfig[distro.RHSMConfigNoSubscription]; exists {
|
||||
if rhsmConfig, exists := p.RHSMConfig[subscription.RHSMConfigNoSubscription]; exists {
|
||||
pipeline.AddStage(osbuild.NewRHSMStage(rhsmConfig))
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,11 +3,11 @@ package manifest
|
|||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/osbuild/osbuild-composer/internal/distro"
|
||||
"github.com/osbuild/osbuild-composer/internal/osbuild"
|
||||
"github.com/osbuild/osbuild-composer/internal/platform"
|
||||
"github.com/osbuild/osbuild-composer/internal/rpmmd"
|
||||
"github.com/osbuild/osbuild-composer/internal/runner"
|
||||
"github.com/osbuild/osbuild-composer/internal/subscription"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
|
@ -69,7 +69,7 @@ func CheckPkgSetInclude(t *testing.T, pkgSetChain []rpmmd.PackageSet, pkgs []str
|
|||
|
||||
func TestSubscriptionManagerCommands(t *testing.T) {
|
||||
os := NewTestOS()
|
||||
os.Subscription = &distro.SubscriptionImageOptions{
|
||||
os.Subscription = &subscription.ImageOptions{
|
||||
Organization: "2040324",
|
||||
ActivationKey: "my-secret-key",
|
||||
ServerUrl: "subscription.rhsm.redhat.com",
|
||||
|
|
@ -83,7 +83,7 @@ func TestSubscriptionManagerCommands(t *testing.T) {
|
|||
|
||||
func TestSubscriptionManagerInsightsCommands(t *testing.T) {
|
||||
os := NewTestOS()
|
||||
os.Subscription = &distro.SubscriptionImageOptions{
|
||||
os.Subscription = &subscription.ImageOptions{
|
||||
Organization: "2040324",
|
||||
ActivationKey: "my-secret-key",
|
||||
ServerUrl: "subscription.rhsm.redhat.com",
|
||||
|
|
@ -100,7 +100,7 @@ func TestSubscriptionManagerInsightsCommands(t *testing.T) {
|
|||
|
||||
func TestRhcInsightsCommands(t *testing.T) {
|
||||
os := NewTestOS()
|
||||
os.Subscription = &distro.SubscriptionImageOptions{
|
||||
os.Subscription = &subscription.ImageOptions{
|
||||
Organization: "2040324",
|
||||
ActivationKey: "my-secret-key",
|
||||
ServerUrl: "subscription.rhsm.redhat.com",
|
||||
|
|
@ -118,7 +118,7 @@ func TestRhcInsightsCommands(t *testing.T) {
|
|||
|
||||
func TestSubscriptionManagerPackages(t *testing.T) {
|
||||
os := NewTestOS()
|
||||
os.Subscription = &distro.SubscriptionImageOptions{
|
||||
os.Subscription = &subscription.ImageOptions{
|
||||
Organization: "2040324",
|
||||
ActivationKey: "my-secret-key",
|
||||
ServerUrl: "subscription.rhsm.redhat.com",
|
||||
|
|
@ -130,7 +130,7 @@ func TestSubscriptionManagerPackages(t *testing.T) {
|
|||
|
||||
func TestSubscriptionManagerInsightsPackages(t *testing.T) {
|
||||
os := NewTestOS()
|
||||
os.Subscription = &distro.SubscriptionImageOptions{
|
||||
os.Subscription = &subscription.ImageOptions{
|
||||
Organization: "2040324",
|
||||
ActivationKey: "my-secret-key",
|
||||
ServerUrl: "subscription.rhsm.redhat.com",
|
||||
|
|
@ -142,7 +142,7 @@ func TestSubscriptionManagerInsightsPackages(t *testing.T) {
|
|||
|
||||
func TestRhcInsightsPackages(t *testing.T) {
|
||||
os := NewTestOS()
|
||||
os.Subscription = &distro.SubscriptionImageOptions{
|
||||
os.Subscription = &subscription.ImageOptions{
|
||||
Organization: "2040324",
|
||||
ActivationKey: "my-secret-key",
|
||||
ServerUrl: "subscription.rhsm.redhat.com",
|
||||
|
|
|
|||
20
internal/subscription/subscription.go
Normal file
20
internal/subscription/subscription.go
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
package subscription
|
||||
|
||||
// The ImageOptions specify subscription-specific image options
|
||||
// ServerUrl denotes the host to register the system with
|
||||
// BaseUrl specifies the repository URL for DNF
|
||||
type ImageOptions struct {
|
||||
Organization string
|
||||
ActivationKey string
|
||||
ServerUrl string
|
||||
BaseUrl string
|
||||
Insights bool
|
||||
Rhc bool
|
||||
}
|
||||
|
||||
type RHSMStatus string
|
||||
|
||||
const (
|
||||
RHSMConfigWithSubscription RHSMStatus = "with-subscription"
|
||||
RHSMConfigNoSubscription RHSMStatus = "no-subscription"
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue