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