Merge pull request #67 from in0rdr/feature/pool

Support setting pool for new VMs and clones (cloud-init)
This commit is contained in:
Grant Gongaware 2019-07-14 08:15:05 -07:00 committed by GitHub
commit 8ef7113418
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 0 deletions

View File

@ -68,6 +68,10 @@ resource "proxmox_vm_qemu" "cloudinit-test" {
target_node = "proxmox1-xx"
clone = "ci-ubuntu-template"
# The destination resource pool for the new VM
pool = "pool0"
storage = "local"
cores = 3
sockets = 1
@ -105,6 +109,10 @@ resource "proxmox_vm_qemu" "prepprovision-test" {
target_node = "proxmox1-xx"
clone = "terraform-ubuntu1404-template"
# The destination resource pool for the new VM
pool = "pool0"
cores = 3
sockets = 1
memory = 2560

View File

@ -13,6 +13,9 @@ resource "proxmox_vm_qemu" "cloudinit-test" {
# this might not include the FQDN
target_node = "proxmox-server02"
# The destination resource pool for the new VM
pool = "pool0"
# The template name to clone this vm from
clone = "linux-cloudinit-template"

View File

@ -342,6 +342,10 @@ func resourceVmQemu() *schema.Resource {
Default: true,
ConflictsWith: []string{"ssh_forward_ip", "ssh_user", "ssh_private_key", "os_type", "os_network_config"},
},
"pool": {
Type: schema.TypeString,
Optional: true,
},
},
}
}
@ -391,6 +395,7 @@ func resourceVmQemuCreate(d *schema.ResourceData, meta interface{}) error {
forceCreate := d.Get("force_create").(bool)
targetNode := d.Get("target_node").(string)
pool := d.Get("pool").(string)
if dupVmr != nil && forceCreate {
pmParallelEnd(pconf)
@ -411,7 +416,12 @@ func resourceVmQemuCreate(d *schema.ResourceData, meta interface{}) error {
}
vmr = pxapi.NewVmRef(nextid)
// set target node and pool
vmr.SetNode(targetNode)
if pool != "" {
vmr.SetPool(pool)
}
// check if ISO or clone
if d.Get("clone").(string) != "" {
sourceVmr, err := client.GetVmRefByName(d.Get("clone").(string))
@ -630,6 +640,7 @@ func resourceVmQemuRead(d *schema.ResourceData, meta interface{}) error {
d.Set("bridge", config.QemuBrige)
d.Set("vlan", config.QemuVlanTag)
d.Set("mac", config.QemuMacAddr)
d.Set("pool", vmr.Pool())
pmParallelEnd(pconf)
return nil