Skip to content

The onDelete configuration is invalid and no value is assigned to the driver #858

@zzzyuan0

Description

@zzzyuan0

CSI Driver version: latest or master branch

// DriverOptions defines driver parameters specified in driver deployment
type DriverOptions struct {
	NodeID                       string
	DriverName                   string
	Endpoint                     string
	MountPermissions             uint64
	WorkingMountDir              string
	DefaultOnDeletePolicy        string
	VolStatsCacheExpireInMinutes int
	RemoveArchivedVolumePath     bool
	UseTarCommandInSnapshot      bool
}
......

func NewDriver(options *DriverOptions) *Driver {
	klog.V(2).Infof("Driver: %v version: %v", options.DriverName, driverVersion)

	n := &Driver{
		name:                         options.DriverName,
		version:                      driverVersion,
		nodeID:                       options.NodeID,
		endpoint:                     options.Endpoint,
		mountPermissions:             options.MountPermissions,
		workingMountDir:              options.WorkingMountDir,
		volStatsCacheExpireInMinutes: options.VolStatsCacheExpireInMinutes,
		removeArchivedVolumePath:     options.RemoveArchivedVolumePath,
		useTarCommandInSnapshot:      options.UseTarCommandInSnapshot,
	}

	n.AddControllerServiceCapabilities([]csi.ControllerServiceCapability_RPC_Type{
		csi.ControllerServiceCapability_RPC_CREATE_DELETE_VOLUME,
		csi.ControllerServiceCapability_RPC_SINGLE_NODE_MULTI_WRITER,
		csi.ControllerServiceCapability_RPC_CLONE_VOLUME,
		csi.ControllerServiceCapability_RPC_CREATE_DELETE_SNAPSHOT,
		csi.ControllerServiceCapability_RPC_EXPAND_VOLUME,
	})

	n.AddNodeServiceCapabilities([]csi.NodeServiceCapability_RPC_Type{
		csi.NodeServiceCapability_RPC_GET_VOLUME_STATS,
		csi.NodeServiceCapability_RPC_SINGLE_NODE_MULTI_WRITER,
		csi.NodeServiceCapability_RPC_UNKNOWN,
	})
	n.volumeLocks = NewVolumeLocks()

	if options.VolStatsCacheExpireInMinutes <= 0 {
		options.VolStatsCacheExpireInMinutes = 10 // default expire in 10 minutes
	}

	var err error
	getter := func(_ string) (interface{}, error) { return nil, nil }
	if n.volStatsCache, err = azcache.NewTimedCache(time.Duration(options.VolStatsCacheExpireInMinutes)*time.Minute, getter, false); err != nil {
		klog.Fatalf("%v", err)
	}
	if n.volDeletionCache, err = azcache.NewTimedCache(time.Minute, getter, false); err != nil {
		klog.Fatalf("%v", err)
	}
	return n
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions