This commit is contained in:
Ubuntu 2019-06-06 23:37:55 +00:00
commit bf075d20c3
1 changed files with 33 additions and 3 deletions

View File

@ -73,6 +73,15 @@ type SharedImageGallery struct {
ImageVersion string `mapstructure:"image_version"` ImageVersion string `mapstructure:"image_version"`
} }
type SharedImageGalleryDestination struct {
SigDestinationSubscription string `mapstructure:"subscription"`
SigDestinationResourceGroup string `mapstructure:"resource_group"`
SigDestinationGalleryName string `mapstructure:"gallery_name"`
SigDestinationImageName string `mapstructure:"image_name"`
SigDestinationImageVersion string `mapstructure:"image_version"`
SigDestinationReplicationRegions []string `mapstructure:"replication_regions"`
}
type Config struct { type Config struct {
common.PackerConfig `mapstructure:",squash"` common.PackerConfig `mapstructure:",squash"`
@ -86,6 +95,9 @@ type Config struct {
// Shared Gallery // Shared Gallery
SharedGallery SharedImageGallery `mapstructure:"shared_image_gallery"` SharedGallery SharedImageGallery `mapstructure:"shared_image_gallery"`
// Shared Gallery Destination
SharedGalleryDestination SharedImageGalleryDestination `mapstructure:"shared_image_gallery_destination"`
// Compute // Compute
ImagePublisher string `mapstructure:"image_publisher"` ImagePublisher string `mapstructure:"image_publisher"`
ImageOffer string `mapstructure:"image_offer"` ImageOffer string `mapstructure:"image_offer"`
@ -559,16 +571,16 @@ func assertRequiredParametersSet(c *Config, errs *packer.MultiError) {
} }
} else if c.ImageUrl == "" && c.ImagePublisher == "" { } else if c.ImageUrl == "" && c.ImagePublisher == "" {
if c.CustomManagedImageResourceGroupName == "" { if c.CustomManagedImageResourceGroupName == "" {
errs = packer.MultiErrorAppend(errs, fmt.Errorf("An custom_managed_image_resource_group_name must be specified")) errs = packer.MultiErrorAppend(errs, fmt.Errorf("A custom_managed_image_resource_group_name must be specified"))
} }
if c.CustomManagedImageName == "" { if c.CustomManagedImageName == "" {
errs = packer.MultiErrorAppend(errs, fmt.Errorf("A custom_managed_image_name must be specified")) errs = packer.MultiErrorAppend(errs, fmt.Errorf("A custom_managed_image_name must be specified"))
} }
if c.ManagedImageResourceGroupName == "" { if c.ManagedImageResourceGroupName == "" {
errs = packer.MultiErrorAppend(errs, fmt.Errorf("An managed_image_resource_group_name must be specified")) errs = packer.MultiErrorAppend(errs, fmt.Errorf("A managed_image_resource_group_name must be specified"))
} }
if c.ManagedImageName == "" { if c.ManagedImageName == "" {
errs = packer.MultiErrorAppend(errs, fmt.Errorf("An managed_image_name must be specified")) errs = packer.MultiErrorAppend(errs, fmt.Errorf("A managed_image_name must be specified"))
} }
} else { } else {
if c.ImagePublisher != "" || c.ImageOffer != "" || c.ImageSku != "" || c.ImageVersion != "" { if c.ImagePublisher != "" || c.ImageOffer != "" || c.ImageSku != "" || c.ImageVersion != "" {
@ -623,6 +635,24 @@ func assertRequiredParametersSet(c *Config, errs *packer.MultiError) {
} }
} }
if c.SharedGalleryDestination.SigDestinationGalleryName != "" {
if c.SharedGalleryDestination.SigDestinationSubscription == "" {
errs = packer.MultiErrorAppend(errs, fmt.Errorf("A subscription must be specified for shared_image_gallery_destination"))
}
if c.SharedGalleryDestination.SigDestinationResourceGroup == "" {
errs = packer.MultiErrorAppend(errs, fmt.Errorf("A resource_group must be specified for shared_image_gallery_destination"))
}
if c.SharedGalleryDestination.SigDestinationImageName == "" {
errs = packer.MultiErrorAppend(errs, fmt.Errorf("An image_name must be specified for shared_image_gallery_destination"))
}
if c.SharedGalleryDestination.SigDestinationImageVersion == "" {
errs = packer.MultiErrorAppend(errs, fmt.Errorf("An image_version must be specified for shared_image_gallery_destination"))
}
if len(c.SharedGalleryDestination.SigDestinationReplicationRegions) == 0 {
errs = packer.MultiErrorAppend(errs, fmt.Errorf("A list of replication_regions must be specified for shared_image_gallery_destination"))
}
}
if c.ManagedImageOSDiskSnapshotName != "" { if c.ManagedImageOSDiskSnapshotName != "" {
if ok, err := assertManagedImageOSDiskSnapshotName(c.ManagedImageOSDiskSnapshotName, "managed_image_os_disk_snapshot_name"); !ok { if ok, err := assertManagedImageOSDiskSnapshotName(c.ManagedImageOSDiskSnapshotName, "managed_image_os_disk_snapshot_name"); !ok {
errs = packer.MultiErrorAppend(errs, err) errs = packer.MultiErrorAppend(errs, err)