volman

package module
v0.0.0-...-bcd8266 Latest Latest
Warning

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

Go to latest
Published: Apr 8, 2024 License: Apache-2.0 Imports: 1 Imported by: 21

README

Cloud Foundry Volume Services

On Cloud Foundry, applications connect to services via a service marketplace. Each service has a Service Broker, with encapsulates the logic for creating, managing, and binding services to applications. Until recently, the only data services that have been allowed were ones with a network-based connection, such as a SQL database. With Volume Services, we've added the ability to attach data services that have a filesystem-based interface.

Currently, we have platform support for Shared Volumes. Shared Volumes are distributed filesystems, such as NFS-based systems, which allow all instances of an application to share the same mounted volume simultaneously and access it concurrently.

This feature adds two new concepts to CF: Volume Mounts on Service Brokers and Volume Drivers on Diego Cells, which are described below.

For more information on CF Volume Services, please refer to this introductory document.

Reporting issues and requesting features

Please report all issues and feature requests in cloudfoundry/diego-release.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Discoverer

type Discoverer interface {
	Discover(logger lager.Logger) (map[string]Plugin, error)
}

type InfoResponse

type InfoResponse struct {
	Name string `json:"name"`
}

type ListDriversResponse

type ListDriversResponse struct {
	Drivers []InfoResponse `json:"drivers"`
}

type Manager

type Manager interface {
	ListDrivers(logger lager.Logger) (ListDriversResponse, error)
	Mount(logger lager.Logger, driverId string, volumeId string, containerId string, config map[string]interface{}) (MountResponse, error)
	Unmount(logger lager.Logger, driverId string, volumeId string, containerId string) error
}

type MountRequest

type MountRequest struct {
	DriverId string                 `json:"driverId"`
	VolumeId string                 `json:"volumeId"`
	Config   map[string]interface{} `json:"config"`
}

type MountResponse

type MountResponse struct {
	Path string `json:"path"`
}

type Plugin

type Plugin interface {
	ListVolumes(logger lager.Logger) ([]string, error)
	Mount(logger lager.Logger, volumeId string, config map[string]interface{}) (MountResponse, error)
	Unmount(logger lager.Logger, volumeId string) error
	Matches(lager.Logger, PluginSpec) bool
	GetPluginSpec() PluginSpec
}

type PluginRegistry

type PluginRegistry interface {
	Plugin(id string) (Plugin, bool)
	Plugins() map[string]Plugin
	Set(plugins map[string]Plugin)
	Keys() []string
}

type PluginSpec

type PluginSpec struct {
	Name            string     `json:"Name"`
	Address         string     `json:"Addr"`
	TLSConfig       *TLSConfig `json:"TLSConfig"`
	UniqueVolumeIds bool
}

type SafeError

type SafeError struct {
	SafeDescription string `json:"SafeDescription"`
}

func (SafeError) Error

func (s SafeError) Error() string

type TLSConfig

type TLSConfig struct {
	InsecureSkipVerify bool   `json:"InsecureSkipVerify"`
	CAFile             string `json:"CAFile"`
	CertFile           string `json:"CertFile"`
	KeyFile            string `json:"KeyFile"`
}

type UnmountRequest

type UnmountRequest struct {
	DriverId string `json:"driverId"`
	VolumeId string `json:"volumeId"`
}

Directories

Path Synopsis
Code generated by counterfeiter.
Code generated by counterfeiter.

Jump to

Keyboard shortcuts

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