volman

package module
v0.0.0-...-3458c24 Latest Latest
Warning

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

Go to latest
Published: Dec 10, 2024 License: Apache-2.0 Imports: 1 Imported by: 24

README

Volman

Go Report Card Go Reference

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.

[!NOTE]

This repository should be imported as code.cloudfoundry.org/volman.

Docs

Contributing

See the Contributing.md for more information on how to contribute.

Working Group Charter

This repository is maintained by App Runtime Platform under Diego area.

[!IMPORTANT]

Content in this file is managed by the CI task sync-readme and is generated by CI following a convention.

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