Documentation ¶
Index ¶
- Constants
- Variables
- func BuildOutpostArn(segments map[string]string) string
- func GetVersionJSON() (string, error)
- func ValidateDriverOptions(options *DriverOptions) error
- func WithAwsSdkDebugLog(enableSdkDebugLog bool) func(*DriverOptions)
- func WithEndpoint(endpoint string) func(*DriverOptions)
- func WithExtraTags(extraTags map[string]string) func(*DriverOptions)
- func WithExtraVolumeTags(extraVolumeTags map[string]string) func(*DriverOptions)
- func WithKubernetesClusterID(clusterID string) func(*DriverOptions)
- func WithMode(mode Mode) func(*DriverOptions)
- func WithVolumeAttachLimit(volumeAttachLimit int64) func(*DriverOptions)
- type Driver
- func (d *Driver) ControllerExpandVolume(ctx context.Context, req *csi.ControllerExpandVolumeRequest) (*csi.ControllerExpandVolumeResponse, error)
- func (d *Driver) ControllerGetCapabilities(ctx context.Context, req *csi.ControllerGetCapabilitiesRequest) (*csi.ControllerGetCapabilitiesResponse, error)
- func (d *Driver) ControllerGetVolume(ctx context.Context, req *csi.ControllerGetVolumeRequest) (*csi.ControllerGetVolumeResponse, error)
- func (d *Driver) ControllerPublishVolume(ctx context.Context, req *csi.ControllerPublishVolumeRequest) (*csi.ControllerPublishVolumeResponse, error)
- func (d *Driver) ControllerUnpublishVolume(ctx context.Context, req *csi.ControllerUnpublishVolumeRequest) (*csi.ControllerUnpublishVolumeResponse, error)
- func (d *Driver) CreateSnapshot(ctx context.Context, req *csi.CreateSnapshotRequest) (*csi.CreateSnapshotResponse, error)
- func (d *Driver) CreateVolume(ctx context.Context, req *csi.CreateVolumeRequest) (*csi.CreateVolumeResponse, error)
- func (d *Driver) DeleteSnapshot(ctx context.Context, req *csi.DeleteSnapshotRequest) (*csi.DeleteSnapshotResponse, error)
- func (d *Driver) DeleteVolume(ctx context.Context, req *csi.DeleteVolumeRequest) (*csi.DeleteVolumeResponse, error)
- func (d *Driver) GetCapacity(ctx context.Context, req *csi.GetCapacityRequest) (*csi.GetCapacityResponse, error)
- func (d *Driver) GetPluginCapabilities(ctx context.Context, req *csi.GetPluginCapabilitiesRequest) (*csi.GetPluginCapabilitiesResponse, error)
- func (d *Driver) GetPluginInfo(ctx context.Context, req *csi.GetPluginInfoRequest) (*csi.GetPluginInfoResponse, error)
- func (d *Driver) IsBlockDevice(fullPath string) (bool, error)
- func (d *Driver) ListSnapshots(ctx context.Context, req *csi.ListSnapshotsRequest) (*csi.ListSnapshotsResponse, error)
- func (d *Driver) ListVolumes(ctx context.Context, req *csi.ListVolumesRequest) (*csi.ListVolumesResponse, error)
- func (d *Driver) NodeExpandVolume(ctx context.Context, req *csi.NodeExpandVolumeRequest) (*csi.NodeExpandVolumeResponse, error)
- func (d *Driver) NodeGetCapabilities(ctx context.Context, req *csi.NodeGetCapabilitiesRequest) (*csi.NodeGetCapabilitiesResponse, error)
- func (d *Driver) NodeGetInfo(ctx context.Context, req *csi.NodeGetInfoRequest) (*csi.NodeGetInfoResponse, error)
- func (d *Driver) NodeGetVolumeStats(ctx context.Context, req *csi.NodeGetVolumeStatsRequest) (*csi.NodeGetVolumeStatsResponse, error)
- func (d *Driver) NodePublishVolume(ctx context.Context, req *csi.NodePublishVolumeRequest) (*csi.NodePublishVolumeResponse, error)
- func (d *Driver) NodeStageVolume(ctx context.Context, req *csi.NodeStageVolumeRequest) (*csi.NodeStageVolumeResponse, error)
- func (d *Driver) NodeUnpublishVolume(ctx context.Context, req *csi.NodeUnpublishVolumeRequest) (*csi.NodeUnpublishVolumeResponse, error)
- func (d *Driver) NodeUnstageVolume(ctx context.Context, req *csi.NodeUnstageVolumeRequest) (*csi.NodeUnstageVolumeResponse, error)
- func (d *Driver) Probe(ctx context.Context, req *csi.ProbeRequest) (*csi.ProbeResponse, error)
- func (d *Driver) Run() error
- func (d *Driver) Stop()
- func (d *Driver) ValidateVolumeCapabilities(ctx context.Context, req *csi.ValidateVolumeCapabilitiesRequest) (*csi.ValidateVolumeCapabilitiesResponse, error)
- type DriverOptions
- type Mode
- type Mounter
- type NodeMounter
- func (m NodeMounter) GetDeviceNameFromMount(mountPath string) (string, int, error)
- func (m *NodeMounter) MakeDir(path string) error
- func (m *NodeMounter) MakeFile(path string) error
- func (m *NodeMounter) NeedResize(devicePath string, deviceMountPath string) (bool, error)
- func (m *NodeMounter) PathExists(path string) (bool, error)
- type VersionInfo
Constants ¶
const ( // VolumeTypeKey represents key for volume type VolumeTypeKey = "type" // IopsPerGBKey represents key for IOPS per GB IopsPerGBKey = "iopspergb" // AllowAutoIOPSPerGBIncreaseKey represents key for allowing automatic increase of IOPS AllowAutoIOPSPerGBIncreaseKey = "allowautoiopspergbincrease" // Iops represents key for IOPS for volume IopsKey = "iops" // ThroughputKey represents key for throughput ThroughputKey = "throughput" // EncryptedKey represents key for whether filesystem is encrypted EncryptedKey = "encrypted" // KmsKeyId represents key for KMS encryption key KmsKeyIDKey = "kmskeyid" // PVCNameKey contains name of the PVC for which is a volume provisioned. PVCNameKey = "csi.storage.k8s.io/pvc/name" // PVCNamespaceKey contains namespace of the PVC for which is a volume provisioned. PVCNamespaceKey = "csi.storage.k8s.io/pvc/namespace" // PVNameKey contains name of the final PV that will be used for the dynamically // provisioned volume PVNameKey = "csi.storage.k8s.io/pv/name" )
constants of keys in volume parameters
const ( // ResourceLifecycleTagPrefix is prefix of tag for provisioned EBS volume that // marks them as owned by the cluster. Used only when --cluster-id is set. ResourceLifecycleTagPrefix = "kubernetes.io/cluster/" // ResourceLifecycleOwned is the value we use when tagging resources to indicate // that the resource is considered owned and managed by the cluster, // and in particular that the lifecycle is tied to the lifecycle of the cluster. // From k8s.io/legacy-cloud-providers/aws/tags.go. ResourceLifecycleOwned = "owned" // NameTag is tag applied to provisioned EBS volume for backward compatibility with // in-tree volume plugin. Used only when --cluster-id is set. NameTag = "Name" // PVCNameTag is tag applied to provisioned EBS volume for backward compatibility // with in-tree volume plugin. Value of the tag is PVC name. It is applied only when // the external provisioner sidecar is started with --extra-create-metadata=true and // thus provides such metadata to the CSI driver. PVCNameTag = "kubernetes.io/created-for/pvc/name" // PVCNamespaceTag is tag applied to provisioned EBS volume for backward compatibility // with in-tree volume plugin. Value of the tag is PVC namespace. It is applied only when // the external provisioner sidecar is started with --extra-create-metadata=true and // thus provides such metadata to the CSI driver. PVCNamespaceTag = "kubernetes.io/created-for/pvc/namespace" // PVNameTag is tag applied to provisioned EBS volume for backward compatibility // with in-tree volume plugin. Value of the tag is PV name. It is applied only when // the external provisioner sidecar is started with --extra-create-metadata=true and // thus provides such metadata to the CSI driver. PVNameTag = "kubernetes.io/created-for/pv/name" )
constants for volume tags and their values
const ( DriverName = "ebs.csi.aws.com" AwsPartitionKey = "topology." + DriverName + "/partition" AwsAccountIDKey = "topology." + DriverName + "/account-id" AwsRegionKey = "topology." + DriverName + "/region" AwsOutpostIDKey = "topology." + DriverName + "/outpost-id" WellKnownTopologyKey = "topology.kubernetes.io/zone" // DEPRECATED Use the WellKnownTopologyKey instead TopologyKey = "topology." + DriverName + "/zone" )
const ( // FSTypeExt2 represents the ext2 filesystem type FSTypeExt2 = "ext2" // FSTypeExt3 represents the ext3 filesystem type FSTypeExt3 = "ext3" // FSTypeExt4 represents the ext4 filesystem type FSTypeExt4 = "ext4" // FSTypeXfs represents te xfs filesystem type FSTypeXfs = "xfs" // VolumeOperationAlreadyExists is message fmt returned to CO when there is another in-flight call on the given volumeID VolumeOperationAlreadyExists = "An operation with the given volume=%q is already in progress" )
const (
DefaultCSIEndpoint = "unix://tmp/csi.sock"
)
constants for default command line flag values
const ( // devicePathKey represents key for device path in PublishContext // devicePath is the device path where the volume is attached to DevicePathKey = "devicePath" )
constants of keys in PublishContext
const ( // VolumeAttributePartition represents key for partition config in VolumeContext // this represents the partition number on a device used to mount VolumeAttributePartition = "partition" )
constants of keys in VolumeContext
Variables ¶
var ( // NewMetadataFunc is a variable for the cloud.NewMetadata function that can // be overwritten in unit tests. NewMetadataFunc = cloud.NewMetadata // NewCloudFunc is a variable for the cloud.NewCloud function that can // be overwritten in unit tests. NewCloudFunc = cloud.NewCloud )
var (
ValidFSTypes = []string{FSTypeExt2, FSTypeExt3, FSTypeExt4, FSTypeXfs}
)
Functions ¶
func BuildOutpostArn ¶ added in v0.7.0
BuildOutpostArn returns the string representation of the outpost ARN from the given csi.TopologyRequirement.segments
func GetVersionJSON ¶ added in v0.2.0
func ValidateDriverOptions ¶ added in v0.5.0
func ValidateDriverOptions(options *DriverOptions) error
func WithAwsSdkDebugLog ¶ added in v1.0.0
func WithAwsSdkDebugLog(enableSdkDebugLog bool) func(*DriverOptions)
func WithEndpoint ¶ added in v0.5.0
func WithEndpoint(endpoint string) func(*DriverOptions)
func WithExtraTags ¶ added in v0.8.0
func WithExtraTags(extraTags map[string]string) func(*DriverOptions)
func WithExtraVolumeTags ¶ added in v0.5.0
func WithExtraVolumeTags(extraVolumeTags map[string]string) func(*DriverOptions)
func WithKubernetesClusterID ¶ added in v0.6.0
func WithKubernetesClusterID(clusterID string) func(*DriverOptions)
func WithMode ¶ added in v0.5.0
func WithMode(mode Mode) func(*DriverOptions)
func WithVolumeAttachLimit ¶ added in v0.6.0
func WithVolumeAttachLimit(volumeAttachLimit int64) func(*DriverOptions)
Types ¶
type Driver ¶
type Driver struct {
// contains filtered or unexported fields
}
func NewDriver ¶
func NewDriver(options ...func(*DriverOptions)) (*Driver, error)
func (*Driver) ControllerExpandVolume ¶ added in v0.4.0
func (d *Driver) ControllerExpandVolume(ctx context.Context, req *csi.ControllerExpandVolumeRequest) (*csi.ControllerExpandVolumeResponse, error)
func (*Driver) ControllerGetCapabilities ¶
func (d *Driver) ControllerGetCapabilities(ctx context.Context, req *csi.ControllerGetCapabilitiesRequest) (*csi.ControllerGetCapabilitiesResponse, error)
func (*Driver) ControllerGetVolume ¶ added in v1.0.0
func (d *Driver) ControllerGetVolume(ctx context.Context, req *csi.ControllerGetVolumeRequest) (*csi.ControllerGetVolumeResponse, error)
func (*Driver) ControllerPublishVolume ¶
func (d *Driver) ControllerPublishVolume(ctx context.Context, req *csi.ControllerPublishVolumeRequest) (*csi.ControllerPublishVolumeResponse, error)
func (*Driver) ControllerUnpublishVolume ¶
func (d *Driver) ControllerUnpublishVolume(ctx context.Context, req *csi.ControllerUnpublishVolumeRequest) (*csi.ControllerUnpublishVolumeResponse, error)
func (*Driver) CreateSnapshot ¶
func (d *Driver) CreateSnapshot(ctx context.Context, req *csi.CreateSnapshotRequest) (*csi.CreateSnapshotResponse, error)
func (*Driver) CreateVolume ¶
func (d *Driver) CreateVolume(ctx context.Context, req *csi.CreateVolumeRequest) (*csi.CreateVolumeResponse, error)
func (*Driver) DeleteSnapshot ¶
func (d *Driver) DeleteSnapshot(ctx context.Context, req *csi.DeleteSnapshotRequest) (*csi.DeleteSnapshotResponse, error)
func (*Driver) DeleteVolume ¶
func (d *Driver) DeleteVolume(ctx context.Context, req *csi.DeleteVolumeRequest) (*csi.DeleteVolumeResponse, error)
func (*Driver) GetCapacity ¶
func (d *Driver) GetCapacity(ctx context.Context, req *csi.GetCapacityRequest) (*csi.GetCapacityResponse, error)
func (*Driver) GetPluginCapabilities ¶
func (d *Driver) GetPluginCapabilities(ctx context.Context, req *csi.GetPluginCapabilitiesRequest) (*csi.GetPluginCapabilitiesResponse, error)
func (*Driver) GetPluginInfo ¶
func (d *Driver) GetPluginInfo(ctx context.Context, req *csi.GetPluginInfoRequest) (*csi.GetPluginInfoResponse, error)
func (*Driver) IsBlockDevice ¶ added in v0.9.0
IsBlock checks if the given path is a block device
func (*Driver) ListSnapshots ¶
func (d *Driver) ListSnapshots(ctx context.Context, req *csi.ListSnapshotsRequest) (*csi.ListSnapshotsResponse, error)
func (*Driver) ListVolumes ¶
func (d *Driver) ListVolumes(ctx context.Context, req *csi.ListVolumesRequest) (*csi.ListVolumesResponse, error)
func (*Driver) NodeExpandVolume ¶ added in v0.4.0
func (d *Driver) NodeExpandVolume(ctx context.Context, req *csi.NodeExpandVolumeRequest) (*csi.NodeExpandVolumeResponse, error)
func (*Driver) NodeGetCapabilities ¶
func (d *Driver) NodeGetCapabilities(ctx context.Context, req *csi.NodeGetCapabilitiesRequest) (*csi.NodeGetCapabilitiesResponse, error)
func (*Driver) NodeGetInfo ¶
func (d *Driver) NodeGetInfo(ctx context.Context, req *csi.NodeGetInfoRequest) (*csi.NodeGetInfoResponse, error)
func (*Driver) NodeGetVolumeStats ¶ added in v0.2.0
func (d *Driver) NodeGetVolumeStats(ctx context.Context, req *csi.NodeGetVolumeStatsRequest) (*csi.NodeGetVolumeStatsResponse, error)
func (*Driver) NodePublishVolume ¶
func (d *Driver) NodePublishVolume(ctx context.Context, req *csi.NodePublishVolumeRequest) (*csi.NodePublishVolumeResponse, error)
func (*Driver) NodeStageVolume ¶
func (d *Driver) NodeStageVolume(ctx context.Context, req *csi.NodeStageVolumeRequest) (*csi.NodeStageVolumeResponse, error)
func (*Driver) NodeUnpublishVolume ¶
func (d *Driver) NodeUnpublishVolume(ctx context.Context, req *csi.NodeUnpublishVolumeRequest) (*csi.NodeUnpublishVolumeResponse, error)
func (*Driver) NodeUnstageVolume ¶
func (d *Driver) NodeUnstageVolume(ctx context.Context, req *csi.NodeUnstageVolumeRequest) (*csi.NodeUnstageVolumeResponse, error)
func (*Driver) Probe ¶
func (d *Driver) Probe(ctx context.Context, req *csi.ProbeRequest) (*csi.ProbeResponse, error)
func (*Driver) ValidateVolumeCapabilities ¶
func (d *Driver) ValidateVolumeCapabilities(ctx context.Context, req *csi.ValidateVolumeCapabilitiesRequest) (*csi.ValidateVolumeCapabilitiesResponse, error)
type DriverOptions ¶ added in v0.5.0
type DriverOptions struct {
// contains filtered or unexported fields
}
type Mode ¶ added in v0.5.0
type Mode string
Mode is the operating mode of the CSI driver.
const ( // ControllerMode is the mode that only starts the controller service. ControllerMode Mode = "controller" // NodeMode is the mode that only starts the node service. NodeMode Mode = "node" // AllMode is the mode that only starts both the controller and the node service. AllMode Mode = "all" )
type Mounter ¶ added in v0.4.0
type Mounter interface { // Implemented by NodeMounter.SafeFormatAndMount mountutils.Interface FormatAndMount(source string, target string, fstype string, options []string) error // Implemented by NodeMounter.SafeFormatAndMount.Exec // TODO this won't make sense on Windows with csi-proxy utilexec.Interface // Implemented by NodeMounter below GetDeviceNameFromMount(mountPath string) (string, int, error) // TODO this won't make sense on Windows with csi-proxy MakeFile(path string) error MakeDir(path string) error PathExists(path string) (bool, error) NeedResize(devicePath string, deviceMountPath string) (bool, error) }
type NodeMounter ¶ added in v0.4.0
type NodeMounter struct { mountutils.SafeFormatAndMount utilexec.Interface }
func (NodeMounter) GetDeviceNameFromMount ¶ added in v0.10.0
func (m NodeMounter) GetDeviceNameFromMount(mountPath string) (string, int, error)
GetDeviceNameFromMount returns the volume ID for a mount path.
func (*NodeMounter) MakeDir ¶ added in v0.5.0
func (m *NodeMounter) MakeDir(path string) error
This function is mirrored in ./sanity_test.go to make sure sanity test covered this block of code Please mirror the change to func MakeFile in ./sanity_test.go
func (*NodeMounter) MakeFile ¶ added in v0.5.0
func (m *NodeMounter) MakeFile(path string) error
This function is mirrored in ./sanity_test.go to make sure sanity test covered this block of code Please mirror the change to func MakeFile in ./sanity_test.go
func (*NodeMounter) NeedResize ¶ added in v1.0.0
func (m *NodeMounter) NeedResize(devicePath string, deviceMountPath string) (bool, error)
TODO: use common util from vendor kubernetes/mount-util
func (*NodeMounter) PathExists ¶ added in v0.10.0
func (m *NodeMounter) PathExists(path string) (bool, error)
This function is mirrored in ./sanity_test.go to make sure sanity test covered this block of code Please mirror the change to func MakeFile in ./sanity_test.go
type VersionInfo ¶ added in v0.2.0
type VersionInfo struct { DriverVersion string `json:"driverVersion"` GitCommit string `json:"gitCommit"` BuildDate string `json:"buildDate"` GoVersion string `json:"goVersion"` Compiler string `json:"compiler"` Platform string `json:"platform"` }
func GetVersion ¶ added in v0.2.0
func GetVersion() VersionInfo