mirror of
https://github.com/bpg/terraform-provider-proxmox.git
synced 2025-07-01 11:02:59 +00:00
feat(lxc): add support for keyctl
and fuse
features (#537)
This commit is contained in:
parent
5ecf135398
commit
8ce9006eed
@ -200,6 +200,10 @@ output "ubuntu_container_public_key" {
|
|||||||
- `features` - (Optional) The container features
|
- `features` - (Optional) The container features
|
||||||
- `nesting` - (Optional) Whether the container is nested (defaults
|
- `nesting` - (Optional) Whether the container is nested (defaults
|
||||||
to `false`)
|
to `false`)
|
||||||
|
- `fuse` - (Optional) Whether the container supports FUSE mounts (defaults
|
||||||
|
to `false`)
|
||||||
|
- `keyctl` - (Optional) Whether the container supports `keyctl()` system call (defaults
|
||||||
|
to `false`)
|
||||||
|
|
||||||
## Attribute Reference
|
## Attribute Reference
|
||||||
|
|
||||||
|
@ -45,6 +45,8 @@ const (
|
|||||||
dvResourceVirtualEnvironmentContainerDiskDatastoreID = "local"
|
dvResourceVirtualEnvironmentContainerDiskDatastoreID = "local"
|
||||||
dvResourceVirtualEnvironmentContainerDiskSize = 4
|
dvResourceVirtualEnvironmentContainerDiskSize = 4
|
||||||
dvResourceVirtualEnvironmentContainerFeaturesNesting = false
|
dvResourceVirtualEnvironmentContainerFeaturesNesting = false
|
||||||
|
dvResourceVirtualEnvironmentContainerFeaturesKeyControl = false
|
||||||
|
dvResourceVirtualEnvironmentContainerFeaturesFUSE = false
|
||||||
dvResourceVirtualEnvironmentContainerMemoryDedicated = 512
|
dvResourceVirtualEnvironmentContainerMemoryDedicated = 512
|
||||||
dvResourceVirtualEnvironmentContainerMemorySwap = 0
|
dvResourceVirtualEnvironmentContainerMemorySwap = 0
|
||||||
dvResourceVirtualEnvironmentContainerMountPointACL = false
|
dvResourceVirtualEnvironmentContainerMountPointACL = false
|
||||||
@ -87,6 +89,8 @@ const (
|
|||||||
mkResourceVirtualEnvironmentContainerDiskSize = "size"
|
mkResourceVirtualEnvironmentContainerDiskSize = "size"
|
||||||
mkResourceVirtualEnvironmentContainerFeatures = "features"
|
mkResourceVirtualEnvironmentContainerFeatures = "features"
|
||||||
mkResourceVirtualEnvironmentContainerFeaturesNesting = "nesting"
|
mkResourceVirtualEnvironmentContainerFeaturesNesting = "nesting"
|
||||||
|
mkResourceVirtualEnvironmentContainerFeaturesKeyControl = "keyctl"
|
||||||
|
mkResourceVirtualEnvironmentContainerFeaturesFUSE = "fuse"
|
||||||
mkResourceVirtualEnvironmentContainerInitialization = "initialization"
|
mkResourceVirtualEnvironmentContainerInitialization = "initialization"
|
||||||
mkResourceVirtualEnvironmentContainerInitializationDNS = "dns"
|
mkResourceVirtualEnvironmentContainerInitializationDNS = "dns"
|
||||||
mkResourceVirtualEnvironmentContainerInitializationDNSDomain = "domain"
|
mkResourceVirtualEnvironmentContainerInitializationDNSDomain = "domain"
|
||||||
@ -308,7 +312,9 @@ func Container() *schema.Resource {
|
|||||||
DefaultFunc: func() (interface{}, error) {
|
DefaultFunc: func() (interface{}, error) {
|
||||||
return []interface{}{
|
return []interface{}{
|
||||||
map[string]interface{}{
|
map[string]interface{}{
|
||||||
mkResourceVirtualEnvironmentContainerFeaturesNesting: dvResourceVirtualEnvironmentContainerFeaturesNesting,
|
mkResourceVirtualEnvironmentContainerFeaturesNesting: dvResourceVirtualEnvironmentContainerFeaturesNesting,
|
||||||
|
mkResourceVirtualEnvironmentContainerFeaturesKeyControl: dvResourceVirtualEnvironmentContainerFeaturesKeyControl,
|
||||||
|
mkResourceVirtualEnvironmentContainerFeaturesFUSE: dvResourceVirtualEnvironmentContainerFeaturesFUSE,
|
||||||
},
|
},
|
||||||
}, nil
|
}, nil
|
||||||
},
|
},
|
||||||
@ -321,6 +327,20 @@ func Container() *schema.Resource {
|
|||||||
ForceNew: true,
|
ForceNew: true,
|
||||||
Default: dvResourceVirtualEnvironmentContainerFeaturesNesting,
|
Default: dvResourceVirtualEnvironmentContainerFeaturesNesting,
|
||||||
},
|
},
|
||||||
|
mkResourceVirtualEnvironmentContainerFeaturesKeyControl: {
|
||||||
|
Type: schema.TypeBool,
|
||||||
|
Description: "Whether the container supports `keyctl()` system call",
|
||||||
|
Optional: true,
|
||||||
|
ForceNew: true,
|
||||||
|
Default: dvResourceVirtualEnvironmentContainerFeaturesKeyControl,
|
||||||
|
},
|
||||||
|
mkResourceVirtualEnvironmentContainerFeaturesFUSE: {
|
||||||
|
Type: schema.TypeBool,
|
||||||
|
Description: "Whether the container supports FUSE mounts",
|
||||||
|
Optional: true,
|
||||||
|
ForceNew: true,
|
||||||
|
Default: dvResourceVirtualEnvironmentContainerFeaturesFUSE,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
MaxItems: 1,
|
MaxItems: 1,
|
||||||
@ -1194,8 +1214,13 @@ func containerCreateCustom(ctx context.Context, d *schema.ResourceData, m interf
|
|||||||
}
|
}
|
||||||
|
|
||||||
nesting := types2.CustomBool(featuresBlock[mkResourceVirtualEnvironmentContainerFeaturesNesting].(bool))
|
nesting := types2.CustomBool(featuresBlock[mkResourceVirtualEnvironmentContainerFeaturesNesting].(bool))
|
||||||
|
keyctl := types2.CustomBool(featuresBlock[mkResourceVirtualEnvironmentContainerFeaturesKeyControl].(bool))
|
||||||
|
fuse := types2.CustomBool(featuresBlock[mkResourceVirtualEnvironmentContainerFeaturesFUSE].(bool))
|
||||||
|
|
||||||
features := containers.CustomFeatures{
|
features := containers.CustomFeatures{
|
||||||
Nesting: &nesting,
|
Nesting: &nesting,
|
||||||
|
KeyControl: &keyctl,
|
||||||
|
FUSE: &fuse,
|
||||||
}
|
}
|
||||||
|
|
||||||
initialization := d.Get(mkResourceVirtualEnvironmentContainerInitialization).([]interface{})
|
initialization := d.Get(mkResourceVirtualEnvironmentContainerInitialization).([]interface{})
|
||||||
|
@ -113,10 +113,14 @@ func TestContainerSchema(t *testing.T) {
|
|||||||
|
|
||||||
test.AssertOptionalArguments(t, featuresSchema, []string{
|
test.AssertOptionalArguments(t, featuresSchema, []string{
|
||||||
mkResourceVirtualEnvironmentContainerFeaturesNesting,
|
mkResourceVirtualEnvironmentContainerFeaturesNesting,
|
||||||
|
mkResourceVirtualEnvironmentContainerFeaturesKeyControl,
|
||||||
|
mkResourceVirtualEnvironmentContainerFeaturesFUSE,
|
||||||
})
|
})
|
||||||
|
|
||||||
test.AssertValueTypes(t, featuresSchema, map[string]schema.ValueType{
|
test.AssertValueTypes(t, featuresSchema, map[string]schema.ValueType{
|
||||||
mkResourceVirtualEnvironmentContainerFeaturesNesting: schema.TypeBool,
|
mkResourceVirtualEnvironmentContainerFeaturesNesting: schema.TypeBool,
|
||||||
|
mkResourceVirtualEnvironmentContainerFeaturesKeyControl: schema.TypeBool,
|
||||||
|
mkResourceVirtualEnvironmentContainerFeaturesFUSE: schema.TypeBool,
|
||||||
})
|
})
|
||||||
|
|
||||||
initializationSchema := test.AssertNestedSchemaExistence(
|
initializationSchema := test.AssertNestedSchemaExistence(
|
||||||
|
Loading…
Reference in New Issue
Block a user