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:
parent
5ecf135398
commit
8ce9006eed
@ -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
|
||||
|
||||
|
@ -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{})
|
||||
|
@ -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(
|
||||
|
Loading…
Reference in New Issue
Block a user