mirror of
https://github.com/vagrant-libvirt/vagrant-libvirt.git
synced 2025-01-08 15:03:06 -06:00
Support volume size resize configuration
Allow control of the volume size to be increased from the box default virtual_size value so that it is possible to use a box configured with a minimal initial disk size and create virtual guests with larger disk sizes. Warn the user and ignore sizes that are less than the box size, and inform them that a manual filesystem resize will be needed to take advantage of the additional available disk space. fixes: #37
This commit is contained in:
parent
313c56e254
commit
d4c72212eb
@ -170,6 +170,7 @@ end
|
|||||||
* `video_vram` - Used by some graphics card types to vary the amount of RAM dedicated to video. Defaults to 9216.
|
* `video_vram` - Used by some graphics card types to vary the amount of RAM dedicated to video. Defaults to 9216.
|
||||||
* `machine` - Sets machine type. Equivalent to qemu `-machine`. Use `qemu-system-x86_64 -machine help` to get a list of supported machines.
|
* `machine` - Sets machine type. Equivalent to qemu `-machine`. Use `qemu-system-x86_64 -machine help` to get a list of supported machines.
|
||||||
* `machine_arch` - Sets machine architecture. This helps libvirt to determine the correct emulator type. Possible values depend on your version of qemu. For possible values, see which emulator executable `qemu-system-*` your system provides. Common examples are `aarch64`, `alpha`, `arm`, `cris`, `i386`, `lm32`, `m68k`, `microblaze`, `microblazeel`, `mips`, `mips64`, `mips64el`, `mipsel`, `moxie`, `or32`, `ppc`, `ppc64`, `ppcemb`, `s390x`, `sh4`, `sh4eb`, `sparc`, `sparc64`, `tricore`, `unicore32`, `x86_64`, `xtensa`, `xtensaeb`.
|
* `machine_arch` - Sets machine architecture. This helps libvirt to determine the correct emulator type. Possible values depend on your version of qemu. For possible values, see which emulator executable `qemu-system-*` your system provides. Common examples are `aarch64`, `alpha`, `arm`, `cris`, `i386`, `lm32`, `m68k`, `microblaze`, `microblazeel`, `mips`, `mips64`, `mips64el`, `mipsel`, `moxie`, `or32`, `ppc`, `ppc64`, `ppcemb`, `s390x`, `sh4`, `sh4eb`, `sparc`, `sparc64`, `tricore`, `unicore32`, `x86_64`, `xtensa`, `xtensaeb`.
|
||||||
|
* `machine_virtual_size` - Sets the disk size for the machine overriding the default specified in the box. Allows boxes to defined with a minimal size disk by default and to be grown to a larger size at creation time. Will ignore sizes smaller than the size specified by the box metadata. Note that currently there is no support for automatically resizing the filesystem to take advantage of the larger disk.
|
||||||
* `boot` - Change the boot order and enables the boot menu. Possible options are "hd" or "network". Defaults to "hd" with boot menu disabled.
|
* `boot` - Change the boot order and enables the boot menu. Possible options are "hd" or "network". Defaults to "hd" with boot menu disabled.
|
||||||
|
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@ module VagrantPlugins
|
|||||||
env[:ui].info(" -- Memory: #{@memory_size / 1024}M")
|
env[:ui].info(" -- Memory: #{@memory_size / 1024}M")
|
||||||
env[:ui].info(" -- Base box: #{env[:machine].box.name}")
|
env[:ui].info(" -- Base box: #{env[:machine].box.name}")
|
||||||
env[:ui].info(" -- Storage pool: #{@storage_pool_name}")
|
env[:ui].info(" -- Storage pool: #{@storage_pool_name}")
|
||||||
env[:ui].info(" -- Image: #{@domain_volume_path}")
|
env[:ui].info(" -- Image: #{@domain_volume_path} (#{env[:box_virtual_size]}G)")
|
||||||
env[:ui].info(" -- Volume Cache: #{@domain_volume_cache}")
|
env[:ui].info(" -- Volume Cache: #{@domain_volume_cache}")
|
||||||
env[:ui].info(" -- Kernel: #{@kernel}")
|
env[:ui].info(" -- Kernel: #{@kernel}")
|
||||||
env[:ui].info(" -- Initrd: #{@initrd}")
|
env[:ui].info(" -- Initrd: #{@initrd}")
|
||||||
|
@ -34,8 +34,8 @@ module VagrantPlugins
|
|||||||
env[:libvirt_compute].volumes.all, env[:box_volume_name])
|
env[:libvirt_compute].volumes.all, env[:box_volume_name])
|
||||||
@backing_file = box_volume.path
|
@backing_file = box_volume.path
|
||||||
|
|
||||||
# Virtual size of image. Same as box image size.
|
# Virtual size of image. Take value worked out by HandleBoxImage
|
||||||
@capacity = env[:machine].box.metadata['virtual_size'] #G
|
@capacity = env[:box_virtual_size] #G
|
||||||
|
|
||||||
# Create new volume from xml template. Fog currently doesn't support
|
# Create new volume from xml template. Fog currently doesn't support
|
||||||
# volume snapshots directly.
|
# volume snapshots directly.
|
||||||
|
@ -37,6 +37,23 @@ module VagrantPlugins
|
|||||||
env[:box_volume_name] = env[:machine].box.name.to_s.dup.gsub("/", "-VAGRANTSLASH-")
|
env[:box_volume_name] = env[:machine].box.name.to_s.dup.gsub("/", "-VAGRANTSLASH-")
|
||||||
env[:box_volume_name] << "_vagrant_box_image_#{env[:machine].box.version.to_s rescue ''}.img"
|
env[:box_volume_name] << "_vagrant_box_image_#{env[:machine].box.version.to_s rescue ''}.img"
|
||||||
|
|
||||||
|
# Override box_virtual_size
|
||||||
|
if config.machine_virtual_size
|
||||||
|
if config.machine_virtual_size < box_virtual_size
|
||||||
|
# Warn that a virtual size less than the box metadata size
|
||||||
|
# is not supported and will be ignored
|
||||||
|
env[:ui].warn I18n.t(
|
||||||
|
'vagrant_libvirt.warnings.ignoring_virtual_size_too_small',
|
||||||
|
requested: config.machine_virtual_size, minimum: box_virtual_size
|
||||||
|
)
|
||||||
|
else
|
||||||
|
env[:ui].info I18n.t('vagrant_libvirt.manual_resize_required')
|
||||||
|
box_virtual_size = config.machine_virtual_size
|
||||||
|
end
|
||||||
|
end
|
||||||
|
# save for use by later actions
|
||||||
|
env[:box_virtual_size] = box_virtual_size
|
||||||
|
|
||||||
# while inside the synchronize block take care not to call the next
|
# while inside the synchronize block take care not to call the next
|
||||||
# action in the chain, as must exit this block first to prevent
|
# action in the chain, as must exit this block first to prevent
|
||||||
# locking all subsequent actions as well.
|
# locking all subsequent actions as well.
|
||||||
|
@ -58,6 +58,7 @@ module VagrantPlugins
|
|||||||
attr_accessor :boot_order
|
attr_accessor :boot_order
|
||||||
attr_accessor :machine_type
|
attr_accessor :machine_type
|
||||||
attr_accessor :machine_arch
|
attr_accessor :machine_arch
|
||||||
|
attr_accessor :machine_virtual_size
|
||||||
attr_accessor :disk_bus
|
attr_accessor :disk_bus
|
||||||
attr_accessor :nic_model_type
|
attr_accessor :nic_model_type
|
||||||
attr_accessor :nested
|
attr_accessor :nested
|
||||||
@ -98,6 +99,7 @@ module VagrantPlugins
|
|||||||
@cpu_mode = UNSET_VALUE
|
@cpu_mode = UNSET_VALUE
|
||||||
@machine_type = UNSET_VALUE
|
@machine_type = UNSET_VALUE
|
||||||
@machine_arch = UNSET_VALUE
|
@machine_arch = UNSET_VALUE
|
||||||
|
@machine_virtual_size = UNSET_VALUE
|
||||||
@disk_bus = UNSET_VALUE
|
@disk_bus = UNSET_VALUE
|
||||||
@nic_model_type = UNSET_VALUE
|
@nic_model_type = UNSET_VALUE
|
||||||
@nested = UNSET_VALUE
|
@nested = UNSET_VALUE
|
||||||
@ -287,6 +289,7 @@ module VagrantPlugins
|
|||||||
@cpu_mode = 'host-model' if @cpu_mode == UNSET_VALUE
|
@cpu_mode = 'host-model' if @cpu_mode == UNSET_VALUE
|
||||||
@machine_type = nil if @machine_type == UNSET_VALUE
|
@machine_type = nil if @machine_type == UNSET_VALUE
|
||||||
@machine_arch = nil if @machine_arch == UNSET_VALUE
|
@machine_arch = nil if @machine_arch == UNSET_VALUE
|
||||||
|
@machine_virtual_size = nil if @machine_virtual_size == UNSET_VALUE
|
||||||
@disk_bus = 'virtio' if @disk_bus == UNSET_VALUE
|
@disk_bus = 'virtio' if @disk_bus == UNSET_VALUE
|
||||||
@nic_model_type = 'virtio' if @nic_model_type == UNSET_VALUE
|
@nic_model_type = 'virtio' if @nic_model_type == UNSET_VALUE
|
||||||
@nested = false if @nested == UNSET_VALUE
|
@nested = false if @nested == UNSET_VALUE
|
||||||
|
@ -12,6 +12,9 @@ en:
|
|||||||
Checking if volume is available.
|
Checking if volume is available.
|
||||||
creating_domain: |-
|
creating_domain: |-
|
||||||
Creating domain with the following settings...
|
Creating domain with the following settings...
|
||||||
|
manual_resize_required: |-
|
||||||
|
Created volume larger than box defaults, will require manual resizing of
|
||||||
|
filesystems to utilize.
|
||||||
uploading_volume: |-
|
uploading_volume: |-
|
||||||
Uploading base box image as volume into libvirt storage...
|
Uploading base box image as volume into libvirt storage...
|
||||||
creating_domain_volume: |-
|
creating_domain_volume: |-
|
||||||
@ -47,6 +50,11 @@ en:
|
|||||||
remove_stale_volume: |-
|
remove_stale_volume: |-
|
||||||
Remove stale volume...
|
Remove stale volume...
|
||||||
|
|
||||||
|
warnings:
|
||||||
|
ignoring_virtual_size_too_small: |-
|
||||||
|
Ignoring requested virtual disk size of '%{requested}' as it is below
|
||||||
|
the minimum box image size of '%{box_virtual_size}'.
|
||||||
|
|
||||||
errors:
|
errors:
|
||||||
package_not_supported: Not support package for libvirt. Create box manualy.
|
package_not_supported: Not support package for libvirt. Create box manualy.
|
||||||
fog_error: |-
|
fog_error: |-
|
||||||
|
Loading…
Reference in New Issue
Block a user