From 2203dd2faed8edc2e4a69baab2bcf84f5721e4e7 Mon Sep 17 00:00:00 2001 From: Humble Chirammal Date: Tue, 4 Feb 2020 15:55:54 +0530 Subject: [PATCH] Make fstype configurable in external provisioner At present the fstype is set to `ext4` if nothing is passed in storage-class. However a SP could prefer to have different fstype for many reasons for their driver/volumes. This patch enables SP who is using the external-provisioner to choose the default fstype which they want to have it. Fix# https://github.com/kubernetes-csi/external-provisioner/issues/328 Signed-off-by: Humble Chirammal --- cmd/csi-provisioner/csi-provisioner.go | 3 +++ pkg/controller/controller.go | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/cmd/csi-provisioner/csi-provisioner.go b/cmd/csi-provisioner/csi-provisioner.go index ea4bc7efda..046d2f62b6 100644 --- a/cmd/csi-provisioner/csi-provisioner.go +++ b/cmd/csi-provisioner/csi-provisioner.go @@ -32,6 +32,7 @@ import ( "github.com/kubernetes-csi/csi-lib-utils/leaderelection" "github.com/kubernetes-csi/csi-lib-utils/metrics" ctrl "github.com/kubernetes-csi/external-provisioner/pkg/controller" + provisionercontroller "github.com/kubernetes-csi/external-provisioner/pkg/controller" snapclientset "github.com/kubernetes-csi/external-snapshotter/pkg/client/clientset/versioned" "sigs.k8s.io/sig-storage-lib-external-provisioner/controller" @@ -89,6 +90,8 @@ func main() { flag.Var(utilflag.NewMapStringBool(&featureGates), "feature-gates", "A set of key=value pairs that describe feature gates for alpha/experimental features. "+ "Options are:\n"+strings.Join(utilfeature.DefaultFeatureGate.KnownFeatures(), "\n")) + flag.StringVar(&provisionercontroller.DefaultFSType, "default-fstype", "ext4", "Specify the filesystem type of the volume. If not specified, external-provisioner will set default as `ext4`.") + klog.InitFlags(nil) flag.CommandLine.AddGoFlagSet(goflag.CommandLine) flag.Set("logtostderr", "true") diff --git a/pkg/controller/controller.go b/pkg/controller/controller.go index fdb9bc4502..b4efa6b525 100644 --- a/pkg/controller/controller.go +++ b/pkg/controller/controller.go @@ -111,8 +111,6 @@ const ( backoffFactor = 1.2 backoffSteps = 10 - defaultFSType = "ext4" - snapshotKind = "VolumeSnapshot" snapshotAPIGroup = snapapi.GroupName // "snapshot.storage.k8s.io" pvcKind = "PersistentVolumeClaim" // Native types don't require an API group @@ -131,6 +129,8 @@ const ( ) var ( + DefaultFSType = "ext4" + defaultSecretParams = secretParamsMap{ name: "Default", secretNameKey: prefixedDefaultSecretNameKey, @@ -487,7 +487,7 @@ func (p *csiProvisioner) ProvisionExt(options controller.ProvisionOptions) (*v1. return nil, controller.ProvisioningFinished, fmt.Errorf("fstype specified in parameters with both \"fstype\" and \"%s\" keys", prefixedFsTypeKey) } if len(fsType) == 0 { - fsType = defaultFSType + fsType = DefaultFSType } capacity := options.PVC.Spec.Resources.Requests[v1.ResourceName(v1.ResourceStorage)]