mirror of
https://github.com/bpg/terraform-provider-proxmox.git
synced 2025-06-30 18:42:58 +00:00
adding citype support
This commit is contained in:
parent
eb06704896
commit
fd85eb85cb
@ -55,6 +55,7 @@ const (
|
|||||||
dvResourceVirtualEnvironmentVMInitializationIPConfigIPv6Gateway = ""
|
dvResourceVirtualEnvironmentVMInitializationIPConfigIPv6Gateway = ""
|
||||||
dvResourceVirtualEnvironmentVMInitializationUserAccountPassword = ""
|
dvResourceVirtualEnvironmentVMInitializationUserAccountPassword = ""
|
||||||
dvResourceVirtualEnvironmentVMInitializationUserDataFileID = ""
|
dvResourceVirtualEnvironmentVMInitializationUserDataFileID = ""
|
||||||
|
dvResourceVirtualEnvironmentVMInitializationType = ""
|
||||||
dvResourceVirtualEnvironmentVMKeyboardLayout = "en-us"
|
dvResourceVirtualEnvironmentVMKeyboardLayout = "en-us"
|
||||||
dvResourceVirtualEnvironmentVMMemoryDedicated = 512
|
dvResourceVirtualEnvironmentVMMemoryDedicated = 512
|
||||||
dvResourceVirtualEnvironmentVMMemoryFloating = 0
|
dvResourceVirtualEnvironmentVMMemoryFloating = 0
|
||||||
@ -131,6 +132,7 @@ const (
|
|||||||
mkResourceVirtualEnvironmentVMInitializationIPConfigIPv6 = "ipv6"
|
mkResourceVirtualEnvironmentVMInitializationIPConfigIPv6 = "ipv6"
|
||||||
mkResourceVirtualEnvironmentVMInitializationIPConfigIPv6Address = "address"
|
mkResourceVirtualEnvironmentVMInitializationIPConfigIPv6Address = "address"
|
||||||
mkResourceVirtualEnvironmentVMInitializationIPConfigIPv6Gateway = "gateway"
|
mkResourceVirtualEnvironmentVMInitializationIPConfigIPv6Gateway = "gateway"
|
||||||
|
mkResourceVirtualEnvironmentVMInitializationType = "type"
|
||||||
mkResourceVirtualEnvironmentVMInitializationUserAccount = "user_account"
|
mkResourceVirtualEnvironmentVMInitializationUserAccount = "user_account"
|
||||||
mkResourceVirtualEnvironmentVMInitializationUserAccountKeys = "keys"
|
mkResourceVirtualEnvironmentVMInitializationUserAccountKeys = "keys"
|
||||||
mkResourceVirtualEnvironmentVMInitializationUserAccountPassword = "password"
|
mkResourceVirtualEnvironmentVMInitializationUserAccountPassword = "password"
|
||||||
@ -674,6 +676,14 @@ func resourceVirtualEnvironmentVM() *schema.Resource {
|
|||||||
Default: dvResourceVirtualEnvironmentVMInitializationUserDataFileID,
|
Default: dvResourceVirtualEnvironmentVMInitializationUserDataFileID,
|
||||||
ValidateFunc: getFileIDValidator(),
|
ValidateFunc: getFileIDValidator(),
|
||||||
},
|
},
|
||||||
|
mkResourceVirtualEnvironmentVMInitializationType: {
|
||||||
|
Type: schema.TypeString,
|
||||||
|
Description: "The cloud-init configuration format",
|
||||||
|
Optional: true,
|
||||||
|
ForceNew: true,
|
||||||
|
Default: dvResourceVirtualEnvironmentVMInitializationType,
|
||||||
|
ValidateFunc: getCloudInitTypeValidator(),
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
MaxItems: 1,
|
MaxItems: 1,
|
||||||
@ -1854,6 +1864,12 @@ func resourceVirtualEnvironmentVMGetCloudInitConfig(d *schema.ResourceData, m in
|
|||||||
UserVolume: &initializationUserDataFileID,
|
UserVolume: &initializationUserDataFileID,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
initializationType := initializationBlock[mkResourceVirtualEnvironmentVMInitializationType].(string)
|
||||||
|
|
||||||
|
if initializationType != "" {
|
||||||
|
initializationConfig.Type = &initializationType
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return initializationConfig, nil
|
return initializationConfig, nil
|
||||||
@ -2555,6 +2571,12 @@ func resourceVirtualEnvironmentVMReadCustom(d *schema.ResourceData, m interface{
|
|||||||
initialization[mkResourceVirtualEnvironmentVMInitializationUserDataFileID] = ""
|
initialization[mkResourceVirtualEnvironmentVMInitializationUserDataFileID] = ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if vmConfig.CloudInitType != nil {
|
||||||
|
initialization[mkResourceVirtualEnvironmentVMInitializationType] = *vmConfig.CloudInitType
|
||||||
|
} else if len(initialization) > 0 {
|
||||||
|
initialization[mkResourceVirtualEnvironmentVMInitializationType] = ""
|
||||||
|
}
|
||||||
|
|
||||||
currentInitialization := d.Get(mkResourceVirtualEnvironmentVMInitialization).([]interface{})
|
currentInitialization := d.Get(mkResourceVirtualEnvironmentVMInitialization).([]interface{})
|
||||||
|
|
||||||
if len(clone) > 0 {
|
if len(clone) > 0 {
|
||||||
|
@ -370,6 +370,13 @@ func getVMIDValidator() schema.SchemaValidateFunc {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getCloudInitTypeValidator() schema.SchemaValidateFunc {
|
||||||
|
return validation.StringInSlice([]string{
|
||||||
|
"configdrive2",
|
||||||
|
"nocloud",
|
||||||
|
}, false)
|
||||||
|
}
|
||||||
|
|
||||||
func testComputedAttributes(t *testing.T, s *schema.Resource, keys []string) {
|
func testComputedAttributes(t *testing.T, s *schema.Resource, keys []string) {
|
||||||
for _, v := range keys {
|
for _, v := range keys {
|
||||||
if s.Schema[v] == nil {
|
if s.Schema[v] == nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user