mirror of
https://github.com/bpg/terraform-provider-proxmox.git
synced 2025-07-04 21:14:05 +00:00
fix(vm): remove qcow2
as the default for disk.file_format
(#1862)
No more need to explicitly set `file_format = "raw"` when defining new disks! Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
This commit is contained in:
parent
03f2079902
commit
af46a9c71a
@ -36,7 +36,6 @@ resource "proxmox_virtual_environment_vm" "ubuntu_template" {
|
||||
|
||||
efi_disk {
|
||||
datastore_id = "local"
|
||||
file_format = "raw"
|
||||
type = "4m"
|
||||
}
|
||||
|
||||
|
@ -273,11 +273,11 @@ output "ubuntu_vm_public_key" {
|
||||
- `discard` - (Optional) Whether to pass discard/trim requests to the
|
||||
underlying storage. Supported values are `on`/`ignore` (defaults
|
||||
to `ignore`).
|
||||
- `file_format` - (Optional) The file format (defaults to `qcow2`).
|
||||
- `file_format` - (Optional) The file format.
|
||||
- `qcow2` - QEMU Disk Image v2.
|
||||
- `raw` - Raw Disk Image.
|
||||
- `vmdk` - VMware Disk Image.
|
||||
- `file_id` - (Optional) The file ID for a disk image. The ID format is
|
||||
- `file_id` - (Optional) The file ID for a disk image when importing a disk into VM. The ID format is
|
||||
`<datastore_id>:<content_type>/<file_name>`, for example `local:iso/centos8.img`. Can be also taken from
|
||||
`proxmox_virtual_environment_download_file` resource.
|
||||
- `interface` - (Required) The disk interface for Proxmox, currently `scsi`,
|
||||
@ -685,14 +685,12 @@ resource "proxmox_virtual_environment_vm" "data_vm" {
|
||||
|
||||
disk {
|
||||
datastore_id = "local-zfs"
|
||||
file_format = "raw"
|
||||
interface = "scsi0"
|
||||
size = 1
|
||||
}
|
||||
|
||||
disk {
|
||||
datastore_id = "local-zfs"
|
||||
file_format = "raw"
|
||||
interface = "scsi1"
|
||||
size = 4
|
||||
}
|
||||
@ -702,7 +700,6 @@ resource "proxmox_virtual_environment_vm" "data_user_vm" {
|
||||
# boot disk
|
||||
disk {
|
||||
datastore_id = "local-zfs"
|
||||
file_format = "raw"
|
||||
interface = "scsi0"
|
||||
size = 8
|
||||
}
|
||||
|
@ -31,7 +31,6 @@ resource "proxmox_virtual_environment_vm" "example_template" {
|
||||
|
||||
efi_disk {
|
||||
datastore_id = local.datastore_id
|
||||
file_format = "raw"
|
||||
type = "4m"
|
||||
}
|
||||
|
||||
@ -42,7 +41,6 @@ resource "proxmox_virtual_environment_vm" "example_template" {
|
||||
|
||||
disk {
|
||||
datastore_id = local.datastore_id
|
||||
file_format = "raw"
|
||||
interface = "ide0"
|
||||
size = 8
|
||||
}
|
||||
@ -61,7 +59,6 @@ resource "proxmox_virtual_environment_vm" "example_template" {
|
||||
# datastore_id = "nfs"
|
||||
# interface = "scsi1"
|
||||
# discard = "ignore"
|
||||
# file_format = "raw"
|
||||
# }
|
||||
|
||||
initialization {
|
||||
@ -166,7 +163,6 @@ resource "proxmox_virtual_environment_vm" "example" {
|
||||
|
||||
efi_disk {
|
||||
datastore_id = local.datastore_id
|
||||
file_format = "raw"
|
||||
type = "4m"
|
||||
}
|
||||
|
||||
@ -234,13 +230,11 @@ resource "proxmox_virtual_environment_vm" "data_vm" {
|
||||
|
||||
disk {
|
||||
datastore_id = local.datastore_id
|
||||
file_format = "raw"
|
||||
interface = "scsi0"
|
||||
size = 1
|
||||
}
|
||||
disk {
|
||||
datastore_id = local.datastore_id
|
||||
file_format = "raw"
|
||||
interface = "scsi1"
|
||||
size = 4
|
||||
}
|
||||
|
@ -19,7 +19,6 @@ resource "proxmox_virtual_environment_vm" "ubuntu_template" {
|
||||
|
||||
efi_disk {
|
||||
datastore_id = "local"
|
||||
file_format = "raw"
|
||||
type = "4m"
|
||||
}
|
||||
|
||||
|
@ -34,8 +34,6 @@ func TestAccResourceVMDisks(t *testing.T) {
|
||||
name = "test-disk"
|
||||
|
||||
disk {
|
||||
// note: default qcow2 is not supported by lvm (?)
|
||||
file_format = "raw"
|
||||
datastore_id = "local-lvm"
|
||||
interface = "virtio0"
|
||||
size = 8
|
||||
@ -67,8 +65,6 @@ func TestAccResourceVMDisks(t *testing.T) {
|
||||
name = "test-disk"
|
||||
|
||||
disk {
|
||||
// note: default qcow2 is not supported by lvm (?)
|
||||
file_format = "raw"
|
||||
datastore_id = "local-lvm"
|
||||
interface = "virtio0"
|
||||
serial = "-dead_beef-"
|
||||
@ -155,7 +151,6 @@ func TestAccResourceVMDisks(t *testing.T) {
|
||||
template = "true"
|
||||
|
||||
disk {
|
||||
file_format = "raw"
|
||||
datastore_id = "local-lvm"
|
||||
interface = "virtio0"
|
||||
size = 8
|
||||
@ -190,13 +185,11 @@ func TestAccResourceVMDisks(t *testing.T) {
|
||||
template = "true"
|
||||
|
||||
disk {
|
||||
file_format = "raw"
|
||||
datastore_id = "local-lvm"
|
||||
interface = "virtio0"
|
||||
size = 8
|
||||
}
|
||||
disk {
|
||||
file_format = "raw"
|
||||
datastore_id = "local-lvm"
|
||||
interface = "scsi0"
|
||||
size = 8
|
||||
@ -222,7 +215,6 @@ func TestAccResourceVMDisks(t *testing.T) {
|
||||
name = "test-disk"
|
||||
|
||||
disk {
|
||||
file_format = "raw"
|
||||
datastore_id = "local-lvm"
|
||||
interface = "scsi0"
|
||||
size = 8
|
||||
@ -241,14 +233,12 @@ func TestAccResourceVMDisks(t *testing.T) {
|
||||
name = "test-disk"
|
||||
|
||||
disk {
|
||||
file_format = "raw"
|
||||
datastore_id = "local-lvm"
|
||||
interface = "scsi0"
|
||||
size = 8
|
||||
}
|
||||
|
||||
disk {
|
||||
file_format = "raw"
|
||||
datastore_id = "local-lvm"
|
||||
interface = "scsi1"
|
||||
size = 8
|
||||
@ -279,14 +269,12 @@ func TestAccResourceVMDisks(t *testing.T) {
|
||||
name = "test-disk"
|
||||
|
||||
disk {
|
||||
file_format = "raw"
|
||||
datastore_id = "local-lvm"
|
||||
interface = "scsi0"
|
||||
size = 8
|
||||
}
|
||||
|
||||
disk {
|
||||
file_format = "raw"
|
||||
datastore_id = "local-lvm"
|
||||
interface = "scsi1"
|
||||
size = 8
|
||||
@ -307,7 +295,6 @@ func TestAccResourceVMDisks(t *testing.T) {
|
||||
name = "test-disk"
|
||||
|
||||
disk {
|
||||
file_format = "raw"
|
||||
datastore_id = "local-lvm"
|
||||
interface = "scsi0"
|
||||
size = 8
|
||||
@ -349,7 +336,6 @@ func TestAccResourceVMDisks(t *testing.T) {
|
||||
name = "test-disks-ide"
|
||||
|
||||
disk {
|
||||
file_format = "raw"
|
||||
datastore_id = "local-lvm"
|
||||
interface = "ide0"
|
||||
size = 8
|
||||
@ -368,13 +354,11 @@ func TestAccResourceVMDisks(t *testing.T) {
|
||||
name = "test-disks-ide"
|
||||
|
||||
disk {
|
||||
file_format = "raw"
|
||||
datastore_id = "local-lvm"
|
||||
interface = "ide0"
|
||||
size = 8
|
||||
}
|
||||
disk {
|
||||
file_format = "raw"
|
||||
datastore_id = "local-lvm"
|
||||
interface = "ide1"
|
||||
size = 8
|
||||
@ -402,7 +386,6 @@ func TestAccResourceVMDisks(t *testing.T) {
|
||||
template = "true"
|
||||
|
||||
disk {
|
||||
file_format = "raw"
|
||||
datastore_id = "local-lvm"
|
||||
interface = "scsi0"
|
||||
size = 8
|
||||
@ -451,7 +434,6 @@ func TestAccResourceVMDisks(t *testing.T) {
|
||||
template = "true"
|
||||
|
||||
disk {
|
||||
file_format = "raw"
|
||||
datastore_id = "local-lvm"
|
||||
interface = "virtio0"
|
||||
size = 8
|
||||
@ -498,7 +480,6 @@ func TestAccResourceVMDisks(t *testing.T) {
|
||||
template = "true"
|
||||
|
||||
disk {
|
||||
file_format = "raw"
|
||||
datastore_id = "local-lvm"
|
||||
interface = "virtio0"
|
||||
size = 8
|
||||
@ -514,7 +495,6 @@ func TestAccResourceVMDisks(t *testing.T) {
|
||||
}
|
||||
|
||||
disk {
|
||||
file_format = "raw"
|
||||
datastore_id = "local-lvm"
|
||||
interface = "scsi0"
|
||||
size = 10
|
||||
@ -543,7 +523,6 @@ func TestAccResourceVMDisks(t *testing.T) {
|
||||
disk {
|
||||
datastore_id = "local-lvm"
|
||||
interface = "virtio0"
|
||||
file_format = "raw"
|
||||
size = 20
|
||||
}
|
||||
}
|
||||
@ -591,7 +570,6 @@ func TestAccResourceVMDisks(t *testing.T) {
|
||||
disk {
|
||||
datastore_id = "local-lvm"
|
||||
interface = "virtio0"
|
||||
file_format = "raw"
|
||||
size = 20
|
||||
}
|
||||
}
|
||||
@ -604,7 +582,6 @@ func TestAccResourceVMDisks(t *testing.T) {
|
||||
disk {
|
||||
datastore_id = "tank"
|
||||
interface = "virtio0"
|
||||
file_format = "raw"
|
||||
size = 20
|
||||
}
|
||||
}`),
|
||||
|
@ -39,8 +39,8 @@ func GetInfo(resp *vms.GetResponseData, d *schema.ResourceData) vms.CustomStorag
|
||||
|
||||
for k, v := range storageDevices {
|
||||
if v != nil && diskMap[k] != nil {
|
||||
if d, ok := diskMap[k].(map[string]interface{}); ok {
|
||||
if fileID, ok := d[mkDiskFileID].(string); ok && fileID != "" {
|
||||
if disk, ok := diskMap[k].(map[string]interface{}); ok {
|
||||
if fileID, ok := disk[mkDiskFileID].(string); ok && fileID != "" {
|
||||
v.FileID = &fileID
|
||||
}
|
||||
}
|
||||
@ -195,15 +195,11 @@ func GetDiskDeviceObjects(
|
||||
return diskDeviceObjects, fmt.Errorf("error getting disk speed block: %w", err)
|
||||
}
|
||||
|
||||
if fileFormat == "" {
|
||||
fileFormat = dvDiskFileFormat
|
||||
}
|
||||
|
||||
if pathInDatastore != "" {
|
||||
if datastoreID != "" {
|
||||
diskDevice.FileVolume = fmt.Sprintf("%s:%s", datastoreID, pathInDatastore)
|
||||
} else {
|
||||
// FileVolume is absolute path in the host filesystem
|
||||
// FileVolume is the absolute path in the host filesystem
|
||||
diskDevice.FileVolume = pathInDatastore
|
||||
}
|
||||
} else {
|
||||
@ -216,11 +212,14 @@ func GetDiskDeviceObjects(
|
||||
diskDevice.DatastoreID = &datastoreID
|
||||
diskDevice.Discard = &discard
|
||||
diskDevice.FileID = &fileID
|
||||
diskDevice.Format = &fileFormat
|
||||
diskDevice.Replicate = &replicate
|
||||
diskDevice.Serial = &serial
|
||||
diskDevice.Size = types.DiskSizeFromGigabytes(int64(size))
|
||||
|
||||
if fileFormat != "" {
|
||||
diskDevice.Format = &fileFormat
|
||||
}
|
||||
|
||||
if !strings.HasPrefix(diskInterface, "virtio") {
|
||||
diskDevice.SSD = &ssd
|
||||
}
|
||||
@ -316,7 +315,8 @@ func createCustomDisk(
|
||||
iface string,
|
||||
disk vms.CustomStorageDevice,
|
||||
) error {
|
||||
fileFormat := dvDiskFileFormat
|
||||
// use "old default" specifically here.
|
||||
fileFormat := "qcow2"
|
||||
if disk.Format != nil && *disk.Format != "" {
|
||||
fileFormat = *disk.Format
|
||||
}
|
||||
@ -332,7 +332,7 @@ func createCustomDisk(
|
||||
fmt.Sprintf(`disk_options="%s"`, disk.EncodeOptions()),
|
||||
fmt.Sprintf(`disk_interface="%s"`, iface),
|
||||
`source_image=$(try_sudo "pvesm path $file_id")`,
|
||||
`imported_disk="$(try_sudo "qm importdisk $vm_id $source_image $datastore_id_target -format $file_format" | grep "unused0" | cut -d ":" -f 3 | cut -d "'" -f 1)"`,
|
||||
`imported_disk="$(try_sudo "qm disk import $vm_id $source_image $datastore_id_target -format $file_format" | grep "unused0" | cut -d ":" -f 3 | cut -d "'" -f 1)"`,
|
||||
`disk_id="${datastore_id_target}:$imported_disk,${disk_options}"`,
|
||||
`try_sudo "qm set $vm_id -${disk_interface} $disk_id"`,
|
||||
}
|
||||
@ -399,8 +399,6 @@ func Read(
|
||||
disk[mkDiskPathInDatastore] = pathInDatastore
|
||||
|
||||
if dd.Format == nil {
|
||||
disk[mkDiskFileFormat] = dvDiskFileFormat
|
||||
|
||||
if datastoreID != "" {
|
||||
// disk format may not be returned by config API if it is default for the storage, and that may be different
|
||||
// from the default qcow2, so we need to read it from the storage API to make sure we have the correct value
|
||||
|
@ -17,7 +17,6 @@ import (
|
||||
const (
|
||||
dvDiskInterface = "scsi0"
|
||||
dvDiskDatastoreID = "local-lvm"
|
||||
dvDiskFileFormat = "qcow2"
|
||||
dvDiskSize = 8
|
||||
dvDiskAIO = "io_uring"
|
||||
dvDiskDiscard = "ignore"
|
||||
|
Loading…
Reference in New Issue
Block a user