diff --git a/internal/kubernetes/storage/v1/storageclass/generate.go b/internal/kubernetes/storage/v1/storageclass/generate.go index 3808190f..8f66365c 100644 --- a/internal/kubernetes/storage/v1/storageclass/generate.go +++ b/internal/kubernetes/storage/v1/storageclass/generate.go @@ -11,18 +11,22 @@ import ( // Generate the StorageClass. func Generate(d *schema.ResourceData) storagev1.StorageClass { var ( - name = d.Get(FieldName).(string) - rawLabels = d.Get(FieldLabels).(map[string]interface{}) - provisioner = d.Get(FieldProvisioner).(string) - parameters = d.Get(FieldParameters).(map[string]interface{}) + name = d.Get(FieldName).(string) + rawLabels = d.Get(FieldLabels).(map[string]interface{}) + provisioner = d.Get(FieldProvisioner).(string) + parameters = d.Get(FieldParameters).(map[string]interface{}) + mountOptions = d.Get(FieldMountOptions).([]interface{}) ) - return storagev1.StorageClass{ + class := storagev1.StorageClass{ ObjectMeta: metav1.ObjectMeta{ Name: name, Labels: interfaceutils.ExpandMap(rawLabels), }, - Provisioner: provisioner, - Parameters: interfaceutils.ExpandMap(parameters), + Provisioner: provisioner, + MountOptions: interfaceutils.ExpandSlice(mountOptions), + Parameters: interfaceutils.ExpandMap(parameters), } + + return class } diff --git a/internal/kubernetes/storage/v1/storageclass/read.go b/internal/kubernetes/storage/v1/storageclass/read.go index 17b176ee..7286b9ae 100644 --- a/internal/kubernetes/storage/v1/storageclass/read.go +++ b/internal/kubernetes/storage/v1/storageclass/read.go @@ -32,6 +32,7 @@ func Read(d *schema.ResourceData, m interface{}) error { d.Set(FieldLabels, storageclass.ObjectMeta.Labels) d.Set(FieldProvisioner, storageclass.Provisioner) + d.Set(FieldMountOptions, storageclass.MountOptions) d.Set(FieldParameters, storageclass.Parameters) return nil diff --git a/internal/kubernetes/storage/v1/storageclass/resource.go b/internal/kubernetes/storage/v1/storageclass/resource.go index fbd52739..660dc833 100644 --- a/internal/kubernetes/storage/v1/storageclass/resource.go +++ b/internal/kubernetes/storage/v1/storageclass/resource.go @@ -12,7 +12,9 @@ const ( // FieldLabels is a field identifier. FieldLabels = "labels" // FieldProvisioner is a field identifier. - FieldProvisioner = "storage_provisioner" + FieldProvisioner = "provisioner" + // FieldMountOptions is a field identifier. + FieldMountOptions = "mount_options" // FieldParameters is a field identifier. FieldParameters = "parameters" ) @@ -26,11 +28,11 @@ func Resource() *schema.Resource { Delete: Delete, Schema: map[string]*schema.Schema{ - FieldName: &schema.Schema{ + FieldName: { Type: schema.TypeString, Required: true, }, - FieldLabels: &schema.Schema{ + FieldLabels: { Type: schema.TypeMap, Optional: true, }, @@ -38,7 +40,14 @@ func Resource() *schema.Resource { Type: schema.TypeString, Required: true, }, - FieldParameters: &schema.Schema{ + FieldMountOptions: { + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + FieldParameters: { Type: schema.TypeMap, Optional: true, },