mirror of
https://github.com/bpg/terraform-provider-proxmox.git
synced 2025-08-22 19:38:35 +00:00
Continued work on VM resource
This commit is contained in:
parent
08e389dac8
commit
f69339966a
@ -334,6 +334,7 @@ This resource doesn't expose any additional attributes.
|
|||||||
* `gateway` - (Optional) The IPv6 gateway (must be omitted when `dhcp` is used as the address)
|
* `gateway` - (Optional) The IPv6 gateway (must be omitted when `dhcp` is used as the address)
|
||||||
* `user_account` - (Required) The user account configuration
|
* `user_account` - (Required) The user account configuration
|
||||||
* `keys` - (Required) The SSH keys
|
* `keys` - (Required) The SSH keys
|
||||||
|
* `password` - (Optional) The SSH password
|
||||||
* `username` - (Required) The SSH username
|
* `username` - (Required) The SSH username
|
||||||
* `cpu` - (Optional) The CPU configuration
|
* `cpu` - (Optional) The CPU configuration
|
||||||
* `cores` - (Optional) The number of CPU cores (defaults to `1`)
|
* `cores` - (Optional) The number of CPU cores (defaults to `1`)
|
||||||
|
@ -12,6 +12,7 @@ resource "proxmox_virtual_environment_vm" "example" {
|
|||||||
|
|
||||||
user_account {
|
user_account {
|
||||||
keys = ["${trimspace(tls_private_key.example.public_key_openssh)}"]
|
keys = ["${trimspace(tls_private_key.example.public_key_openssh)}"]
|
||||||
|
password = "proxmoxtf"
|
||||||
username = "ubuntu"
|
username = "ubuntu"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -43,3 +44,7 @@ resource "tls_private_key" "example" {
|
|||||||
algorithm = "RSA"
|
algorithm = "RSA"
|
||||||
rsa_bits = 2048
|
rsa_bits = 2048
|
||||||
}
|
}
|
||||||
|
|
||||||
|
output "resource_proxmox_virtual_environment_vm_example_id" {
|
||||||
|
value = "${proxmox_virtual_environment_vm.example.id}"
|
||||||
|
}
|
||||||
|
@ -15,35 +15,36 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
dvResourceVirtualEnvironmentVMAgentEnabled = false
|
dvResourceVirtualEnvironmentVMAgentEnabled = false
|
||||||
dvResourceVirtualEnvironmentVMAgentTrim = false
|
dvResourceVirtualEnvironmentVMAgentTrim = false
|
||||||
dvResourceVirtualEnvironmentVMAgentType = "virtio"
|
dvResourceVirtualEnvironmentVMAgentType = "virtio"
|
||||||
dvResourceVirtualEnvironmentVMCDROMEnabled = false
|
dvResourceVirtualEnvironmentVMCDROMEnabled = false
|
||||||
dvResourceVirtualEnvironmentVMCDROMFileID = ""
|
dvResourceVirtualEnvironmentVMCDROMFileID = ""
|
||||||
dvResourceVirtualEnvironmentVMCloudInitDNSDomain = ""
|
dvResourceVirtualEnvironmentVMCloudInitDNSDomain = ""
|
||||||
dvResourceVirtualEnvironmentVMCloudInitDNSServer = ""
|
dvResourceVirtualEnvironmentVMCloudInitDNSServer = ""
|
||||||
dvResourceVirtualEnvironmentVMCPUCores = 1
|
dvResourceVirtualEnvironmentVMCloudInitUserAccountPassword = ""
|
||||||
dvResourceVirtualEnvironmentVMCPUHotplugged = 0
|
dvResourceVirtualEnvironmentVMCPUCores = 1
|
||||||
dvResourceVirtualEnvironmentVMCPUSockets = 1
|
dvResourceVirtualEnvironmentVMCPUHotplugged = 0
|
||||||
dvResourceVirtualEnvironmentVMDescription = ""
|
dvResourceVirtualEnvironmentVMCPUSockets = 1
|
||||||
dvResourceVirtualEnvironmentVMDiskDatastoreID = "local-lvm"
|
dvResourceVirtualEnvironmentVMDescription = ""
|
||||||
dvResourceVirtualEnvironmentVMDiskEnabled = true
|
dvResourceVirtualEnvironmentVMDiskDatastoreID = "local-lvm"
|
||||||
dvResourceVirtualEnvironmentVMDiskFileFormat = "qcow2"
|
dvResourceVirtualEnvironmentVMDiskEnabled = true
|
||||||
dvResourceVirtualEnvironmentVMDiskFileID = ""
|
dvResourceVirtualEnvironmentVMDiskFileFormat = "qcow2"
|
||||||
dvResourceVirtualEnvironmentVMDiskSize = 8
|
dvResourceVirtualEnvironmentVMDiskFileID = ""
|
||||||
dvResourceVirtualEnvironmentVMKeyboardLayout = "en-us"
|
dvResourceVirtualEnvironmentVMDiskSize = 8
|
||||||
dvResourceVirtualEnvironmentVMMemoryDedicated = 512
|
dvResourceVirtualEnvironmentVMKeyboardLayout = "en-us"
|
||||||
dvResourceVirtualEnvironmentVMMemoryFloating = 0
|
dvResourceVirtualEnvironmentVMMemoryDedicated = 512
|
||||||
dvResourceVirtualEnvironmentVMMemoryShared = 0
|
dvResourceVirtualEnvironmentVMMemoryFloating = 0
|
||||||
dvResourceVirtualEnvironmentVMName = ""
|
dvResourceVirtualEnvironmentVMMemoryShared = 0
|
||||||
dvResourceVirtualEnvironmentVMNetworkDeviceBridge = "vmbr0"
|
dvResourceVirtualEnvironmentVMName = ""
|
||||||
dvResourceVirtualEnvironmentVMNetworkDeviceEnabled = true
|
dvResourceVirtualEnvironmentVMNetworkDeviceBridge = "vmbr0"
|
||||||
dvResourceVirtualEnvironmentVMNetworkDeviceMACAddress = ""
|
dvResourceVirtualEnvironmentVMNetworkDeviceEnabled = true
|
||||||
dvResourceVirtualEnvironmentVMNetworkDeviceModel = "virtio"
|
dvResourceVirtualEnvironmentVMNetworkDeviceMACAddress = ""
|
||||||
dvResourceVirtualEnvironmentVMNetworkDeviceVLANID = -1
|
dvResourceVirtualEnvironmentVMNetworkDeviceModel = "virtio"
|
||||||
dvResourceVirtualEnvironmentVMOSType = "other"
|
dvResourceVirtualEnvironmentVMNetworkDeviceVLANID = -1
|
||||||
dvResourceVirtualEnvironmentVMPoolID = ""
|
dvResourceVirtualEnvironmentVMOSType = "other"
|
||||||
dvResourceVirtualEnvironmentVMVMID = -1
|
dvResourceVirtualEnvironmentVMPoolID = ""
|
||||||
|
dvResourceVirtualEnvironmentVMVMID = -1
|
||||||
|
|
||||||
mkResourceVirtualEnvironmentVMAgent = "agent"
|
mkResourceVirtualEnvironmentVMAgent = "agent"
|
||||||
mkResourceVirtualEnvironmentVMAgentEnabled = "enabled"
|
mkResourceVirtualEnvironmentVMAgentEnabled = "enabled"
|
||||||
@ -65,6 +66,7 @@ const (
|
|||||||
mkResourceVirtualEnvironmentVMCloudInitIPConfigIPv6Gateway = "gateway"
|
mkResourceVirtualEnvironmentVMCloudInitIPConfigIPv6Gateway = "gateway"
|
||||||
mkResourceVirtualEnvironmentVMCloudInitUserAccount = "user_account"
|
mkResourceVirtualEnvironmentVMCloudInitUserAccount = "user_account"
|
||||||
mkResourceVirtualEnvironmentVMCloudInitUserAccountKeys = "keys"
|
mkResourceVirtualEnvironmentVMCloudInitUserAccountKeys = "keys"
|
||||||
|
mkResourceVirtualEnvironmentVMCloudInitUserAccountPassword = "password"
|
||||||
mkResourceVirtualEnvironmentVMCloudInitUserAccountUsername = "username"
|
mkResourceVirtualEnvironmentVMCloudInitUserAccountUsername = "username"
|
||||||
mkResourceVirtualEnvironmentVMCPU = "cpu"
|
mkResourceVirtualEnvironmentVMCPU = "cpu"
|
||||||
mkResourceVirtualEnvironmentVMCPUCores = "cores"
|
mkResourceVirtualEnvironmentVMCPUCores = "cores"
|
||||||
@ -291,6 +293,12 @@ func resourceVirtualEnvironmentVM() *schema.Resource {
|
|||||||
Description: "The SSH keys",
|
Description: "The SSH keys",
|
||||||
Elem: &schema.Schema{Type: schema.TypeString},
|
Elem: &schema.Schema{Type: schema.TypeString},
|
||||||
},
|
},
|
||||||
|
mkResourceVirtualEnvironmentVMCloudInitUserAccountPassword: {
|
||||||
|
Type: schema.TypeString,
|
||||||
|
Optional: true,
|
||||||
|
Description: "The SSH password",
|
||||||
|
Default: dvResourceVirtualEnvironmentVMCloudInitUserAccountPassword,
|
||||||
|
},
|
||||||
mkResourceVirtualEnvironmentVMCloudInitUserAccountUsername: {
|
mkResourceVirtualEnvironmentVMCloudInitUserAccountUsername: {
|
||||||
Type: schema.TypeString,
|
Type: schema.TypeString,
|
||||||
Required: true,
|
Required: true,
|
||||||
@ -680,6 +688,12 @@ func resourceVirtualEnvironmentVMCreate(d *schema.ResourceData, m interface{}) e
|
|||||||
cloudInitConfig.SSHKeys = &sshKeys
|
cloudInitConfig.SSHKeys = &sshKeys
|
||||||
}
|
}
|
||||||
|
|
||||||
|
password := cloudInitUserAccountBlock[mkResourceVirtualEnvironmentVMCloudInitUserAccountPassword].(string)
|
||||||
|
|
||||||
|
if password != "" {
|
||||||
|
cloudInitConfig.Password = &password
|
||||||
|
}
|
||||||
|
|
||||||
username := cloudInitUserAccountBlock[mkResourceVirtualEnvironmentVMCloudInitUserAccountUsername].(string)
|
username := cloudInitUserAccountBlock[mkResourceVirtualEnvironmentVMCloudInitUserAccountUsername].(string)
|
||||||
|
|
||||||
cloudInitConfig.Username = &username
|
cloudInitConfig.Username = &username
|
||||||
|
@ -191,12 +191,18 @@ func TestResourceVirtualEnvironmentVMSchema(t *testing.T) {
|
|||||||
mkResourceVirtualEnvironmentVMCloudInitUserAccountUsername,
|
mkResourceVirtualEnvironmentVMCloudInitUserAccountUsername,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
testOptionalArguments(t, cloudInitUserAccountSchema, []string{
|
||||||
|
mkResourceVirtualEnvironmentVMCloudInitUserAccountPassword,
|
||||||
|
})
|
||||||
|
|
||||||
testSchemaValueTypes(t, cloudInitUserAccountSchema, []string{
|
testSchemaValueTypes(t, cloudInitUserAccountSchema, []string{
|
||||||
mkResourceVirtualEnvironmentVMCloudInitUserAccountKeys,
|
mkResourceVirtualEnvironmentVMCloudInitUserAccountKeys,
|
||||||
|
mkResourceVirtualEnvironmentVMCloudInitUserAccountPassword,
|
||||||
mkResourceVirtualEnvironmentVMCloudInitUserAccountUsername,
|
mkResourceVirtualEnvironmentVMCloudInitUserAccountUsername,
|
||||||
}, []schema.ValueType{
|
}, []schema.ValueType{
|
||||||
schema.TypeList,
|
schema.TypeList,
|
||||||
schema.TypeString,
|
schema.TypeString,
|
||||||
|
schema.TypeString,
|
||||||
})
|
})
|
||||||
|
|
||||||
cpuSchema := testNestedSchemaExistence(t, s, mkResourceVirtualEnvironmentVMCPU)
|
cpuSchema := testNestedSchemaExistence(t, s, mkResourceVirtualEnvironmentVMCPU)
|
||||||
|
Loading…
Reference in New Issue
Block a user