Switch to build managed image instead of VHD (#8167) (#8208)

This commit is contained in:
Vasilii Polikarpov
2023-08-31 16:21:15 +02:00
committed by GitHub
parent d09a712b71
commit 8077d7b42b
14 changed files with 350 additions and 169 deletions

View File

@@ -5,8 +5,7 @@
"client_cert_path": "{{env `ARM_CLIENT_CERT_PATH`}}",
"subscription_id": "{{env `ARM_SUBSCRIPTION_ID`}}",
"tenant_id": "{{env `ARM_TENANT_ID`}}",
"resource_group": "{{env `ARM_RESOURCE_GROUP`}}",
"storage_account": "{{env `ARM_STORAGE_ACCOUNT`}}",
"managed_image_resource_group_name": "{{env `ARM_RESOURCE_GROUP`}}",
"build_resource_group_name": "{{env `BUILD_RESOURCE_GROUP_NAME`}}",
"temp_resource_group_name": "{{env `TEMP_RESOURCE_GROUP_NAME`}}",
"location": "{{env `ARM_RESOURCE_LOCATION`}}",
@@ -20,7 +19,7 @@
"installer_script_folder": "/imagegeneration/installers",
"helper_script_folder": "/imagegeneration/helpers",
"vm_size": "Standard_D4s_v4",
"capture_name_prefix": "packer",
"managed_image_name": "packer-ubuntu20-dev",
"image_version": "dev",
"image_os": "ubuntu20",
"run_validation_diskspace": "false",
@@ -40,12 +39,10 @@
"tenant_id": "{{user `tenant_id`}}",
"location": "{{user `location`}}",
"vm_size": "{{user `vm_size`}}",
"resource_group_name": "{{user `resource_group`}}",
"storage_account": "{{user `storage_account`}}",
"managed_image_name": "{{user `managed_image_name`}}",
"managed_image_resource_group_name": "{{user `managed_image_resource_group_name`}}",
"build_resource_group_name": "{{user `build_resource_group_name`}}",
"temp_resource_group_name": "{{user `temp_resource_group_name`}}",
"capture_container_name": "images",
"capture_name_prefix": "{{user `capture_name_prefix`}}",
"virtual_network_name": "{{user `virtual_network_name`}}",
"virtual_network_resource_group_name": "{{user `virtual_network_resource_group_name`}}",
"virtual_network_subnet_name": "{{user `virtual_network_subnet_name`}}",

View File

@@ -1,3 +1,6 @@
locals {
managed_image_name = var.managed_image_name != "" ? var.managed_image_name : "packer-${var.image_os}-${var.image_version}"
}
variable "allowed_inbound_ip_addresses" {
type = list(string)
@@ -14,9 +17,9 @@ variable "build_resource_group_name" {
default = "${env("BUILD_RESOURCE_GROUP_NAME")}"
}
variable "capture_name_prefix" {
variable "managed_image_name" {
type = string
default = "packer"
default = ""
}
variable "client_id" {
@@ -95,7 +98,7 @@ variable "private_virtual_network_with_public_ip" {
default = false
}
variable "resource_group" {
variable "managed_image_resource_group_name" {
type = string
default = "${env("ARM_RESOURCE_GROUP")}"
}
@@ -105,11 +108,6 @@ variable "run_validation_diskspace" {
default = false
}
variable "storage_account" {
type = string
default = "${env("ARM_STORAGE_ACCOUNT")}"
}
variable "subscription_id" {
type = string
default = "${env("ARM_SUBSCRIPTION_ID")}"
@@ -145,11 +143,9 @@ variable "vm_size" {
default = "Standard_D4s_v4"
}
source "azure-arm" "build_vhd" {
source "azure-arm" "build_image" {
allowed_inbound_ip_addresses = "${var.allowed_inbound_ip_addresses}"
build_resource_group_name = "${var.build_resource_group_name}"
capture_container_name = "images"
capture_name_prefix = "${var.capture_name_prefix}"
client_id = "${var.client_id}"
client_secret = "${var.client_secret}"
client_cert_path = "${var.client_cert_path}"
@@ -160,8 +156,8 @@ source "azure-arm" "build_vhd" {
os_disk_size_gb = "86"
os_type = "Linux"
private_virtual_network_with_public_ip = "${var.private_virtual_network_with_public_ip}"
resource_group_name = "${var.resource_group}"
storage_account = "${var.storage_account}"
managed_image_name = "${local.managed_image_name}"
managed_image_resource_group_name = "${var.managed_image_resource_group_name}"
subscription_id = "${var.subscription_id}"
temp_resource_group_name = "${var.temp_resource_group_name}"
tenant_id = "${var.tenant_id}"
@@ -180,7 +176,7 @@ source "azure-arm" "build_vhd" {
}
build {
sources = ["source.azure-arm.build_vhd"]
sources = ["source.azure-arm.build_image"]
provisioner "shell" {
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"

View File

@@ -7,6 +7,8 @@ locals {
helper_script_folder = "/imagegeneration/helpers"
installer_script_folder = "/imagegeneration/installers"
imagedata_file = "/imagegeneration/imagedata.json"
managed_image_name = var.managed_image_name != "" ? var.managed_image_name : "packer-${var.image_os}-${var.image_version}"
}
variable "allowed_inbound_ip_addresses" {
@@ -24,9 +26,9 @@ variable "build_resource_group_name" {
default = "${env("BUILD_RESOURCE_GROUP_NAME")}"
}
variable "capture_name_prefix" {
variable "managed_image_name" {
type = string
default = "packer"
default = ""
}
variable "client_id" {
@@ -70,7 +72,7 @@ variable "private_virtual_network_with_public_ip" {
default = false
}
variable "resource_group" {
variable "managed_image_resource_group_name" {
type = string
default = "${env("ARM_RESOURCE_GROUP")}"
}
@@ -80,11 +82,6 @@ variable "run_validation_diskspace" {
default = false
}
variable "storage_account" {
type = string
default = "${env("ARM_STORAGE_ACCOUNT")}"
}
variable "subscription_id" {
type = string
default = "${env("ARM_SUBSCRIPTION_ID")}"
@@ -120,7 +117,7 @@ variable "vm_size" {
default = "Standard_D4s_v4"
}
source "azure-arm" "build_vhd" {
source "azure-arm" "build_image" {
location = "${var.location}"
// Auth
@@ -136,10 +133,8 @@ source "azure-arm" "build_vhd" {
image_sku = "22_04-lts"
// Target location
storage_account = "${var.storage_account}"
resource_group_name = "${var.resource_group}"
capture_container_name = "images"
capture_name_prefix = "${var.capture_name_prefix}"
managed_image_name = "${local.managed_image_name}"
managed_image_resource_group_name = "${var.managed_image_resource_group_name}"
// Resource group for VM
build_resource_group_name = "${var.build_resource_group_name}"
@@ -167,7 +162,7 @@ source "azure-arm" "build_vhd" {
}
build {
sources = ["source.azure-arm.build_vhd"]
sources = ["source.azure-arm.build_image"]
// Create folder to store temporary data
provisioner "shell" {