driver

package
v1.5.15 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 16, 2023 License: Apache-2.0 Imports: 52 Imported by: 1

Documentation

Index

Constants

View Source
const (
	ParamReservedIPV4CIDR = "reserved-ipv4-cidr"
	ParamReservedIPRange  = "reserved-ip-range"
	ParamConnectMode      = "connect-mode"

	ParamInstanceEncryptionKmsKey  = "instance-encryption-kms-key"
	ParamMultishareInstanceScLabel = "instance-storageclass-label"

	// Keys for PV and PVC parameters as reported by external-provisioner
	ParameterKeyPVCName      = "csi.storage.k8s.io/pvc/name"
	ParameterKeyPVCNamespace = "csi.storage.k8s.io/pvc/namespace"
	ParameterKeyPVName       = "csi.storage.k8s.io/pv/name"

	// User provided labels
	ParameterKeyLabels = "labels"

	TagKeyClusterName     = "storage_gke_io_cluster_name"
	TagKeyClusterLocation = "storage_gke_io_cluster_location"
)

CreateVolume parameters

View Source
const (

	// Keys for Topology.
	TopologyKeyZone = "topology.gke.io/zone"
)

Variables

This section is empty.

Functions

func IsCIDR added in v1.3.3

func IsCIDR(ipRange string) bool

IsCIDR verifies if the given ip range is a valid CIDR value.

func IsIpWithinRange added in v1.3.3

func IsIpWithinRange(ipAddress, ipRange string) (bool, error)

IsIpWithinRange checks if an ip address is within the given ip range.

Types

type FeatureLockRelease added in v1.4.1

type FeatureLockRelease struct {
	Enabled bool
	Config  *lockrelease.LockReleaseControllerConfig
}

type FeatureMaxSharesPerInstance added in v1.5.0

type FeatureMaxSharesPerInstance struct {
	Enabled                          bool
	DescOverrideMaxSharesPerInstance string
	DescOverrideMinShareSizeGB       string
	KubeClient                       *kubernetes.Clientset
	CoreInformerResync               time.Duration
}

type FeatureMultishareBackups added in v1.5.14

type FeatureMultishareBackups struct {
	Enabled bool
}

type FeatureStateful added in v1.5.0

type FeatureStateful struct {
	Enabled      bool
	KubeAPIQPS   float64
	KubeAPIBurst int
	KubeConfig   string
	ResyncPeriod time.Duration

	LeaderElection              bool
	LeaderElectionNamespace     string
	LeaderElectionLeaseDuration time.Duration
	LeaderElectionRenewDeadline time.Duration
	LeaderElectionRetryPeriod   time.Duration

	DriverClientSet *clientset.Clientset
	ShareLister     listers.ShareInfoLister
}

type GCFSDriver

type GCFSDriver struct {
	// contains filtered or unexported fields
}

func NewGCFSDriver

func NewGCFSDriver(config *GCFSDriverConfig) (*GCFSDriver, error)

func (*GCFSDriver) Run

func (driver *GCFSDriver) Run(endpoint string)

func (*GCFSDriver) ValidateControllerServiceRequest

func (driver *GCFSDriver) ValidateControllerServiceRequest(c csi.ControllerServiceCapability_RPC_Type) error

type GCFSDriverConfig

type GCFSDriverConfig struct {
	Name             string          // Driver name
	Version          string          // Driver version
	NodeName         string          // Node name
	RunController    bool            // Run CSI controller service
	RunNode          bool            // Run CSI node service
	Mounter          mount.Interface // Mount library
	Cloud            *cloud.Cloud    // Cloud provider
	MetadataService  metadataservice.Service
	EnableMultishare bool
	Reconciler       *MultishareReconciler
	Metrics          *metrics.MetricsManager
	EcfsDescription  string
	IsRegional       bool
	ClusterName      string
	FeatureOptions   *GCFSDriverFeatureOptions
}

type GCFSDriverFeatureOptions added in v1.4.1

type GCFSDriverFeatureOptions struct {
	// FeatureLockRelease will enable the NFS lock release feature if sets to true.
	FeatureLockRelease *FeatureLockRelease
	// FeatureMaxSharesPerInstance will enable CSI driver to pack configurable number of max shares per Filestore instance (multishare)
	FeatureMaxSharesPerInstance *FeatureMaxSharesPerInstance
	FeatureStateful             *FeatureStateful
	FeatureMultishareBackups    *FeatureMultishareBackups
}

type MultishareController added in v1.2.0

type MultishareController struct {
	// contains filtered or unexported fields
}

MultishareController handles CSI calls for volumes which use Filestore multishare instances.

func NewMultishareController added in v1.2.0

func NewMultishareController(config *controllerServerConfig) *MultishareController

func (*MultishareController) ControllerExpandVolume added in v1.2.0

func (*MultishareController) CreateSnapshot added in v1.5.14

func (*MultishareController) CreateVolume added in v1.2.0

func (*MultishareController) DeleteVolume added in v1.2.0

func (*MultishareController) GetShareMaxSizeFromPV added in v1.5.0

func (m *MultishareController) GetShareMaxSizeFromPV(ctx context.Context, volHandle string) (int64, error)

func (*MultishareController) Run added in v1.5.0

func (m *MultishareController) Run(stopCh <-chan struct{})

type MultishareOpsManager added in v1.2.0

type MultishareOpsManager struct {
	sync.Mutex // Lock to perform thread safe multishare operations.
	// contains filtered or unexported fields
}

MultishareOpsManager manages the lifecycle of all instance and share operations.

func NewMultishareOpsManager added in v1.2.0

func NewMultishareOpsManager(cloud *cloud.Cloud, mcs *MultishareController) *MultishareOpsManager

type MultishareReconciler added in v1.5.0

type MultishareReconciler struct {
	// contains filtered or unexported fields
}

func NewMultishareReconciler added in v1.5.0

func NewMultishareReconciler(
	clientset clientset.Interface,
	config *GCFSDriverConfig,
	shareInformer informers.ShareInfoInformer,
	instanceInformar informers.InstanceInfoInformer,
	scLister storageListers.StorageClassLister,
) *MultishareReconciler

func (*MultishareReconciler) Run added in v1.5.0

func (recon *MultishareReconciler) Run(stopCh <-chan struct{})

type MultishareStatefulController added in v1.5.0

type MultishareStatefulController struct {
	// contains filtered or unexported fields
}

MultishareController handles CSI calls for volumes which use Filestore multishare instances.

func NewMultishareStatefulController added in v1.5.0

func NewMultishareStatefulController(config *controllerServerConfig) *MultishareStatefulController

func (*MultishareStatefulController) ControllerExpandVolume added in v1.5.0

func (*MultishareStatefulController) CreateVolume added in v1.5.0

func (*MultishareStatefulController) DeleteVolume added in v1.5.0

type NonBlockingGRPCServer

type NonBlockingGRPCServer interface {
	// Start services at the endpoint
	Start(endpoint string, ids csi.IdentityServer, cs csi.ControllerServer, ns csi.NodeServer)
	// Waits for the service to stop
	Wait()
	// Stops the service gracefully
	Stop()
	// Stops the service forcefully
	ForceStop()
}

Defines Non blocking GRPC server interfaces

func NewNonBlockingGRPCServer

func NewNonBlockingGRPCServer() NonBlockingGRPCServer

type Op added in v1.5.0

type Op struct {
	Id     string
	Type   util.OperationType
	Target string
	Err    error
}

type OpInfo added in v1.2.0

type OpInfo struct {
	Id     string
	Type   util.OperationType
	Target string
}

type Workflow added in v1.2.0

type Workflow struct {
	// contains filtered or unexported fields
}

A workflow is defined as a sequence of steps to safely initiate instance or share operations.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL