0
0
mirror of https://github.com/bpg/terraform-provider-proxmox.git synced 2025-06-30 18:42:58 +00:00

feat(lxc): add support for keyctl and fuse features (#537)

This commit is contained in:
Simon Caron 2023-09-04 10:44:49 -04:00 committed by GitHub
parent 5ecf135398
commit 8ce9006eed
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 36 additions and 3 deletions

View File

@ -200,6 +200,10 @@ output "ubuntu_container_public_key" {
- `features` - (Optional) The container features
- `nesting` - (Optional) Whether the container is nested (defaults
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

View File

@ -45,6 +45,8 @@ const (
dvResourceVirtualEnvironmentContainerDiskDatastoreID = "local"
dvResourceVirtualEnvironmentContainerDiskSize = 4
dvResourceVirtualEnvironmentContainerFeaturesNesting = false
dvResourceVirtualEnvironmentContainerFeaturesKeyControl = false
dvResourceVirtualEnvironmentContainerFeaturesFUSE = false
dvResourceVirtualEnvironmentContainerMemoryDedicated = 512
dvResourceVirtualEnvironmentContainerMemorySwap = 0
dvResourceVirtualEnvironmentContainerMountPointACL = false
@ -87,6 +89,8 @@ const (
mkResourceVirtualEnvironmentContainerDiskSize = "size"
mkResourceVirtualEnvironmentContainerFeatures = "features"
mkResourceVirtualEnvironmentContainerFeaturesNesting = "nesting"
mkResourceVirtualEnvironmentContainerFeaturesKeyControl = "keyctl"
mkResourceVirtualEnvironmentContainerFeaturesFUSE = "fuse"
mkResourceVirtualEnvironmentContainerInitialization = "initialization"
mkResourceVirtualEnvironmentContainerInitializationDNS = "dns"
mkResourceVirtualEnvironmentContainerInitializationDNSDomain = "domain"
@ -308,7 +312,9 @@ func Container() *schema.Resource {
DefaultFunc: func() (interface{}, error) {
return []interface{}{
map[string]interface{}{
mkResourceVirtualEnvironmentContainerFeaturesNesting: dvResourceVirtualEnvironmentContainerFeaturesNesting,
mkResourceVirtualEnvironmentContainerFeaturesNesting: dvResourceVirtualEnvironmentContainerFeaturesNesting,
mkResourceVirtualEnvironmentContainerFeaturesKeyControl: dvResourceVirtualEnvironmentContainerFeaturesKeyControl,
mkResourceVirtualEnvironmentContainerFeaturesFUSE: dvResourceVirtualEnvironmentContainerFeaturesFUSE,
},
}, nil
},
@ -321,6 +327,20 @@ func Container() *schema.Resource {
ForceNew: true,
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,
@ -1194,8 +1214,13 @@ func containerCreateCustom(ctx context.Context, d *schema.ResourceData, m interf
}
nesting := types2.CustomBool(featuresBlock[mkResourceVirtualEnvironmentContainerFeaturesNesting].(bool))
keyctl := types2.CustomBool(featuresBlock[mkResourceVirtualEnvironmentContainerFeaturesKeyControl].(bool))
fuse := types2.CustomBool(featuresBlock[mkResourceVirtualEnvironmentContainerFeaturesFUSE].(bool))
features := containers.CustomFeatures{
Nesting: &nesting,
Nesting: &nesting,
KeyControl: &keyctl,
FUSE: &fuse,
}
initialization := d.Get(mkResourceVirtualEnvironmentContainerInitialization).([]interface{})

View File

@ -113,10 +113,14 @@ func TestContainerSchema(t *testing.T) {
test.AssertOptionalArguments(t, featuresSchema, []string{
mkResourceVirtualEnvironmentContainerFeaturesNesting,
mkResourceVirtualEnvironmentContainerFeaturesKeyControl,
mkResourceVirtualEnvironmentContainerFeaturesFUSE,
})
test.AssertValueTypes(t, featuresSchema, map[string]schema.ValueType{
mkResourceVirtualEnvironmentContainerFeaturesNesting: schema.TypeBool,
mkResourceVirtualEnvironmentContainerFeaturesNesting: schema.TypeBool,
mkResourceVirtualEnvironmentContainerFeaturesKeyControl: schema.TypeBool,
mkResourceVirtualEnvironmentContainerFeaturesFUSE: schema.TypeBool,
})
initializationSchema := test.AssertNestedSchemaExistence(