csi

package
v9.4.18+incompatible Latest Latest
Warning

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

Go to latest
Published: Jun 9, 2022 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Overview

Package csi is CSI driver interface for OSD Copyright 2017 Portworx

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Package csi is CSI driver interface for OSD Copyright 2017 Portworx

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Package csi is CSI driver interface for OSD Copyright 2017 Portworx

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Package csi is CSI driver interface for OSD Copyright 2017 Portworx

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewOsdCsiServer

func NewOsdCsiServer(config *OsdCsiServerConfig) (grpcserver.Server, error)

NewOsdCsiServer creates a gRPC CSI complient server on the specified port and transport.

Types

type OsdCsiServer

type OsdCsiServer struct {
	csi.ControllerServer
	csi.NodeServer
	csi.IdentityServer

	*grpcserver.GrpcServer
	// contains filtered or unexported fields
}

OsdCsiServer is a OSD CSI compliant server which proxies CSI requests for a single specific driver

func (*OsdCsiServer) ControllerGetCapabilities

ControllerGetCapabilities is a CSI API functions which returns to the caller the capabilities of the OSD CSI driver.

func (*OsdCsiServer) ControllerPublishVolume

ControllerPublishVolume is a CSI API implements the attachment of a volume on to a node.

func (*OsdCsiServer) ControllerUnpublishVolume

ControllerUnpublishVolume is a CSI API which implements the detaching of a volume onto a node.

func (*OsdCsiServer) CreateSnapshot

CreateSnapshot is a CSI implementation to create a snapshot from the volume

func (*OsdCsiServer) CreateVolume

CreateVolume is a CSI API which creates a volume on OSD This function supports snapshots if the parent volume id is supplied in the parameters.

func (*OsdCsiServer) DeleteSnapshot

DeleteSnapshot is a CSI implementation to delete a snapshot

func (*OsdCsiServer) DeleteVolume

DeleteVolume is a CSI API which deletes a volume

func (*OsdCsiServer) GetPluginCapabilities

GetPluginCapabilities is a CSI API

func (*OsdCsiServer) GetPluginInfo

GetPluginInfo is a CSI API which returns the information about the plugin. This includes name, version, and any other OSD specific information

func (*OsdCsiServer) ListSnapshots

ListSnapshots is not supported (we can add this later)

func (*OsdCsiServer) ListVolumes

ListVolumes is a CSI API which returns to the caller all volume ids on this cluster. This includes ids created by CSI and ids created using other interfaces. This is important because the user could be requesting to mount a OSD volume created using non-CSI interfaces.

This call does not yet implement tokens to due to the following issue: https://github.com/container-storage-interface/spec/issues/138

func (*OsdCsiServer) NodeGetCapabilities

NodeGetCapabilities is a CSI API function which seems to be setup for future patches

func (*OsdCsiServer) NodeGetId

func (s *OsdCsiServer) NodeGetId(
	ctx context.Context,
	req *csi.NodeGetIdRequest,
) (*csi.NodeGetIdResponse, error)

NodeGetId is a CSI API which gets the PX NodeId for the local node

func (*OsdCsiServer) NodeGetInfo

func (*OsdCsiServer) NodePublishVolume

NodePublishVolume is a CSI API call which mounts the volume on the specified target path on the node.

TODO: Support READ ONLY Mounts

func (*OsdCsiServer) NodeUnpublishVolume

NodeUnpublishVolume is a CSI API call which unmounts the volume.

func (*OsdCsiServer) Probe

func (s *OsdCsiServer) Probe(
	ctx context.Context,
	req *csi.ProbeRequest,
) (*csi.ProbeResponse, error)

Probe is a CSI API

func (*OsdCsiServer) Start

func (s *OsdCsiServer) Start() error

Start is used to start the server. It will return an error if the server is already running.

func (*OsdCsiServer) ValidateVolumeCapabilities

ValidateVolumeCapabilities is a CSI API used by container orchestration systems to make sure a volume specification is validiated by the CSI driver. Note: The method used here to return errors is still not part of the spec. See: https://github.com/container-storage-interface/spec/pull/115 Discussion: https://groups.google.com/forum/#!topic/kubernetes-sig-storage-wg-csi/TpTrNFbRa1I

type OsdCsiServerConfig

type OsdCsiServerConfig struct {
	Net        string
	Address    string
	DriverName string
	Cluster    cluster.Cluster

	// Name to be reported back to the CO. If not provided,
	// the name will be in the format of <driver>.openstorage.org
	CsiDriverName string
}

OsdCsiServerConfig provides the configuration to the the gRPC CSI server created by NewOsdCsiServer()

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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