Documentation ¶
Overview ¶
Package framework is the common package that any plugin client will need to import, for example, both plugin authors and Velero core.
Index ¶
- func Handshake() plugin.HandshakeConfig
- func ValidateObjectStoreConfigKeys(config map[string]string, validKeys ...string) error
- func ValidateVolumeSnapshotterConfigKeys(config map[string]string, validKeys ...string) error
- type ActionResolver
- type BackupItemActionGRPCClient
- type BackupItemActionGRPCServer
- func (s *BackupItemActionGRPCServer) AppliesTo(ctx context.Context, req *protobiav1.BackupItemActionAppliesToRequest) (response *protobiav1.BackupItemActionAppliesToResponse, err error)
- func (s *BackupItemActionGRPCServer) Execute(ctx context.Context, req *protobiav1.ExecuteRequest) (response *protobiav1.ExecuteResponse, err error)
- type BackupItemActionPlugin
- type BackupItemActionResolver
- type BackupItemActionResolverV2
- type BackupItemResolvedAction
- type BackupItemResolvedActionV2
- type CloseFunc
- type DeleteItemActionGRPCClient
- type DeleteItemActionGRPCServer
- func (s *DeleteItemActionGRPCServer) AppliesTo(ctx context.Context, req *proto.DeleteItemActionAppliesToRequest) (response *proto.DeleteItemActionAppliesToResponse, err error)
- func (s *DeleteItemActionGRPCServer) Execute(ctx context.Context, req *proto.DeleteItemActionExecuteRequest) (_ *proto.Empty, err error)
- type DeleteItemActionPlugin
- type DeleteItemActionResolver
- type DeleteItemResolvedAction
- type Interface
- type ObjectStoreGRPCClient
- func (c *ObjectStoreGRPCClient) CreateSignedURL(bucket, key string, ttl time.Duration) (string, error)
- func (c *ObjectStoreGRPCClient) DeleteObject(bucket, key string) error
- func (c *ObjectStoreGRPCClient) GetObject(bucket, key string) (io.ReadCloser, error)
- func (c *ObjectStoreGRPCClient) Init(config map[string]string) error
- func (c *ObjectStoreGRPCClient) ListCommonPrefixes(bucket, prefix, delimiter string) ([]string, error)
- func (c *ObjectStoreGRPCClient) ListObjects(bucket, prefix string) ([]string, error)
- func (c *ObjectStoreGRPCClient) ObjectExists(bucket, key string) (bool, error)
- func (c *ObjectStoreGRPCClient) PutObject(bucket, key string, body io.Reader) error
- type ObjectStoreGRPCServer
- func (s *ObjectStoreGRPCServer) CreateSignedURL(ctx context.Context, req *proto.CreateSignedURLRequest) (response *proto.CreateSignedURLResponse, err error)
- func (s *ObjectStoreGRPCServer) DeleteObject(ctx context.Context, req *proto.DeleteObjectRequest) (response *proto.Empty, err error)
- func (s *ObjectStoreGRPCServer) GetObject(req *proto.GetObjectRequest, stream proto.ObjectStore_GetObjectServer) (err error)
- func (s *ObjectStoreGRPCServer) Init(ctx context.Context, req *proto.ObjectStoreInitRequest) (response *proto.Empty, err error)
- func (s *ObjectStoreGRPCServer) ListCommonPrefixes(ctx context.Context, req *proto.ListCommonPrefixesRequest) (response *proto.ListCommonPrefixesResponse, err error)
- func (s *ObjectStoreGRPCServer) ListObjects(ctx context.Context, req *proto.ListObjectsRequest) (response *proto.ListObjectsResponse, err error)
- func (s *ObjectStoreGRPCServer) ObjectExists(ctx context.Context, req *proto.ObjectExistsRequest) (response *proto.ObjectExistsResponse, err error)
- func (s *ObjectStoreGRPCServer) PutObject(stream proto.ObjectStore_PutObjectServer) (err error)
- type ObjectStorePlugin
- type PluginIdentifier
- type PluginLister
- type PluginListerGRPCClient
- type PluginListerGRPCServer
- type PluginListerPlugin
- type ReceiveFunc
- type ResolvedAction
- type RestoreItemActionGRPCClient
- type RestoreItemActionGRPCServer
- func (s *RestoreItemActionGRPCServer) AppliesTo(ctx context.Context, req *proto.RestoreItemActionAppliesToRequest) (response *proto.RestoreItemActionAppliesToResponse, err error)
- func (s *RestoreItemActionGRPCServer) Execute(ctx context.Context, req *proto.RestoreItemActionExecuteRequest) (response *proto.RestoreItemActionExecuteResponse, err error)
- type RestoreItemActionPlugin
- type RestoreItemActionResolver
- type RestoreItemActionResolverV2
- type RestoreItemResolvedAction
- type RestoreItemResolvedActionV2
- type Server
- type StreamReadCloser
- type VolumeSnapshotterGRPCClient
- func (c *VolumeSnapshotterGRPCClient) CreateSnapshot(volumeID, volumeAZ string, tags map[string]string) (string, error)
- func (c *VolumeSnapshotterGRPCClient) CreateVolumeFromSnapshot(snapshotID, volumeType, volumeAZ string, iops *int64) (string, error)
- func (c *VolumeSnapshotterGRPCClient) DeleteSnapshot(snapshotID string) error
- func (c *VolumeSnapshotterGRPCClient) GetVolumeID(pv runtime.Unstructured) (string, error)
- func (c *VolumeSnapshotterGRPCClient) GetVolumeInfo(volumeID, volumeAZ string) (string, *int64, error)
- func (c *VolumeSnapshotterGRPCClient) Init(config map[string]string) error
- func (c *VolumeSnapshotterGRPCClient) SetVolumeID(pv runtime.Unstructured, volumeID string) (runtime.Unstructured, error)
- type VolumeSnapshotterGRPCServer
- func (s *VolumeSnapshotterGRPCServer) CreateSnapshot(ctx context.Context, req *proto.CreateSnapshotRequest) (response *proto.CreateSnapshotResponse, err error)
- func (s *VolumeSnapshotterGRPCServer) CreateVolumeFromSnapshot(ctx context.Context, req *proto.CreateVolumeRequest) (response *proto.CreateVolumeResponse, err error)
- func (s *VolumeSnapshotterGRPCServer) DeleteSnapshot(ctx context.Context, req *proto.DeleteSnapshotRequest) (response *proto.Empty, err error)
- func (s *VolumeSnapshotterGRPCServer) GetVolumeID(ctx context.Context, req *proto.GetVolumeIDRequest) (response *proto.GetVolumeIDResponse, err error)
- func (s *VolumeSnapshotterGRPCServer) GetVolumeInfo(ctx context.Context, req *proto.GetVolumeInfoRequest) (response *proto.GetVolumeInfoResponse, err error)
- func (s *VolumeSnapshotterGRPCServer) Init(ctx context.Context, req *proto.VolumeSnapshotterInitRequest) (response *proto.Empty, err error)
- func (s *VolumeSnapshotterGRPCServer) SetVolumeID(ctx context.Context, req *proto.SetVolumeIDRequest) (response *proto.SetVolumeIDResponse, err error)
- type VolumeSnapshotterPlugin
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Handshake ¶
func Handshake() plugin.HandshakeConfig
Handshake returns the configuration information that allows go-plugin clients and servers to perform a handshake.
func ValidateObjectStoreConfigKeys ¶ added in v1.2.0
ValidateObjectStoreConfigKeys ensures that an object store's config is valid by making sure each `config` key is in the `validKeys` list. The special keys "bucket" and "prefix" are always considered valid.
func ValidateVolumeSnapshotterConfigKeys ¶ added in v1.2.0
ValidateVolumeSnapshotterConfigKeys ensures that a volume snapshotter's config is valid by making sure each `config` key is in the `validKeys` list.
Types ¶
type ActionResolver ¶ added in v1.8.0
type ActionResolver interface {
ResolveAction(helper discovery.Helper, action velero.Applicable, log logrus.FieldLogger) (ResolvedAction, error)
}
type BackupItemActionGRPCClient ¶
type BackupItemActionGRPCClient struct { *common.ClientBase // contains filtered or unexported fields }
BackupItemActionGRPCClient implements the backup/ItemAction interface and uses a gRPC client to make calls to the plugin server.
func (*BackupItemActionGRPCClient) AppliesTo ¶
func (c *BackupItemActionGRPCClient) AppliesTo() (velero.ResourceSelector, error)
func (*BackupItemActionGRPCClient) Execute ¶
func (c *BackupItemActionGRPCClient) Execute(item runtime.Unstructured, backup *api.Backup) (runtime.Unstructured, []velero.ResourceIdentifier, error)
type BackupItemActionGRPCServer ¶
type BackupItemActionGRPCServer struct {
// contains filtered or unexported fields
}
BackupItemActionGRPCServer implements the proto-generated BackupItemAction interface, and accepts gRPC calls and forwards them to an implementation of the pluggable interface.
func (*BackupItemActionGRPCServer) AppliesTo ¶
func (s *BackupItemActionGRPCServer) AppliesTo( ctx context.Context, req *protobiav1.BackupItemActionAppliesToRequest) ( response *protobiav1.BackupItemActionAppliesToResponse, err error)
func (*BackupItemActionGRPCServer) Execute ¶
func (s *BackupItemActionGRPCServer) Execute( ctx context.Context, req *protobiav1.ExecuteRequest) (response *protobiav1.ExecuteResponse, err error)
type BackupItemActionPlugin ¶
type BackupItemActionPlugin struct { plugin.NetRPCUnsupportedPlugin *common.PluginBase }
BackupItemActionPlugin is an implementation of go-plugin's Plugin interface with support for gRPC for the backup/ItemAction interface.
func NewBackupItemActionPlugin ¶
func NewBackupItemActionPlugin(options ...common.PluginOption) *BackupItemActionPlugin
NewBackupItemActionPlugin constructs a BackupItemActionPlugin.
func (*BackupItemActionPlugin) GRPCClient ¶
func (p *BackupItemActionPlugin) GRPCClient(_ context.Context, _ *plugin.GRPCBroker, clientConn *grpc.ClientConn) (interface{}, error)
GRPCClient returns a clientDispenser for BackupItemAction gRPC clients.
func (*BackupItemActionPlugin) GRPCServer ¶
func (p *BackupItemActionPlugin) GRPCServer(_ *plugin.GRPCBroker, server *grpc.Server) error
GRPCServer registers a BackupItemAction gRPC server.
type BackupItemActionResolver ¶ added in v1.8.0
type BackupItemActionResolver struct {
// contains filtered or unexported fields
}
func NewBackupItemActionResolver ¶ added in v1.8.0
func NewBackupItemActionResolver(actions []biav1.BackupItemAction) BackupItemActionResolver
func (BackupItemActionResolver) ResolveActions ¶ added in v1.8.0
func (recv BackupItemActionResolver) ResolveActions(helper discovery.Helper, log logrus.FieldLogger) ([]BackupItemResolvedAction, error)
type BackupItemActionResolverV2 ¶ added in v1.11.0
type BackupItemActionResolverV2 struct {
// contains filtered or unexported fields
}
func NewBackupItemActionResolverV2 ¶ added in v1.11.0
func NewBackupItemActionResolverV2(actions []biav2.BackupItemAction) BackupItemActionResolverV2
func (BackupItemActionResolverV2) ResolveActions ¶ added in v1.11.0
func (recv BackupItemActionResolverV2) ResolveActions(helper discovery.Helper, log logrus.FieldLogger) ([]BackupItemResolvedActionV2, error)
type BackupItemResolvedAction ¶ added in v1.8.0
type BackupItemResolvedAction struct { biav1.BackupItemAction // contains filtered or unexported fields }
func (BackupItemResolvedAction) ShouldUse ¶ added in v1.8.0
func (recv BackupItemResolvedAction) ShouldUse(groupResource schema.GroupResource, namespace string, metadata metav1.Object, log logrus.FieldLogger) bool
type BackupItemResolvedActionV2 ¶ added in v1.11.0
type BackupItemResolvedActionV2 struct { biav2.BackupItemAction // contains filtered or unexported fields }
func (BackupItemResolvedActionV2) ShouldUse ¶ added in v1.11.0
func (recv BackupItemResolvedActionV2) ShouldUse(groupResource schema.GroupResource, namespace string, metadata metav1.Object, log logrus.FieldLogger) bool
type CloseFunc ¶
type CloseFunc func() error
CloseFunc is used to signal to the source of data that the StreamReadCloser has been closed.
type DeleteItemActionGRPCClient ¶ added in v1.5.0
type DeleteItemActionGRPCClient struct { *common.ClientBase // contains filtered or unexported fields }
DeleteItemActionGRPCClient implements the backup/ItemAction interface and uses a gRPC client to make calls to the plugin server.
func (*DeleteItemActionGRPCClient) AppliesTo ¶ added in v1.5.0
func (c *DeleteItemActionGRPCClient) AppliesTo() (velero.ResourceSelector, error)
func (*DeleteItemActionGRPCClient) Execute ¶ added in v1.5.0
func (c *DeleteItemActionGRPCClient) Execute(input *velero.DeleteItemActionExecuteInput) error
type DeleteItemActionGRPCServer ¶ added in v1.5.0
type DeleteItemActionGRPCServer struct {
// contains filtered or unexported fields
}
DeleteItemActionGRPCServer implements the proto-generated DeleteItemActionServer interface, and accepts gRPC calls and forwards them to an implementation of the pluggable interface.
func (*DeleteItemActionGRPCServer) AppliesTo ¶ added in v1.5.0
func (s *DeleteItemActionGRPCServer) AppliesTo(ctx context.Context, req *proto.DeleteItemActionAppliesToRequest) (response *proto.DeleteItemActionAppliesToResponse, err error)
func (*DeleteItemActionGRPCServer) Execute ¶ added in v1.5.0
func (s *DeleteItemActionGRPCServer) Execute(ctx context.Context, req *proto.DeleteItemActionExecuteRequest) (_ *proto.Empty, err error)
type DeleteItemActionPlugin ¶ added in v1.5.0
type DeleteItemActionPlugin struct { plugin.NetRPCUnsupportedPlugin *common.PluginBase }
RestoreItemActionPlugin is an implementation of go-plugin's Plugin interface with support for gRPC for the restore/ItemAction interface.
func NewDeleteItemActionPlugin ¶ added in v1.5.0
func NewDeleteItemActionPlugin(options ...common.PluginOption) *DeleteItemActionPlugin
NewDeleteItemActionPlugin constructs a DeleteItemActionPlugin.
func (*DeleteItemActionPlugin) GRPCClient ¶ added in v1.5.0
func (p *DeleteItemActionPlugin) GRPCClient(_ context.Context, _ *plugin.GRPCBroker, clientConn *grpc.ClientConn) (interface{}, error)
GRPCClient returns a RestoreItemAction gRPC client.
func (*DeleteItemActionPlugin) GRPCServer ¶ added in v1.5.0
func (p *DeleteItemActionPlugin) GRPCServer(_ *plugin.GRPCBroker, server *grpc.Server) error
GRPCServer registers a DeleteItemAction gRPC server.
type DeleteItemActionResolver ¶ added in v1.8.0
type DeleteItemActionResolver struct {
// contains filtered or unexported fields
}
func NewDeleteItemActionResolver ¶ added in v1.8.0
func NewDeleteItemActionResolver(actions []velero.DeleteItemAction) DeleteItemActionResolver
func (DeleteItemActionResolver) ResolveActions ¶ added in v1.8.0
func (recv DeleteItemActionResolver) ResolveActions(helper discovery.Helper, log logrus.FieldLogger) ([]DeleteItemResolvedAction, error)
type DeleteItemResolvedAction ¶ added in v1.8.0
type DeleteItemResolvedAction struct { velero.DeleteItemAction // contains filtered or unexported fields }
func (DeleteItemResolvedAction) ShouldUse ¶ added in v1.8.0
func (recv DeleteItemResolvedAction) ShouldUse(groupResource schema.GroupResource, namespace string, metadata metav1.Object, log logrus.FieldLogger) bool
type Interface ¶
type Interface interface { plugin.Plugin // names returns a list of all the registered implementations for this plugin (such as "pod" and "pvc" for // BackupItemAction). Names() []string }
Interface represents a Velero plugin.
type ObjectStoreGRPCClient ¶
type ObjectStoreGRPCClient struct { *common.ClientBase // contains filtered or unexported fields }
ObjectStoreGRPCClient implements the ObjectStore interface and uses a gRPC client to make calls to the plugin server.
func (*ObjectStoreGRPCClient) CreateSignedURL ¶
func (c *ObjectStoreGRPCClient) CreateSignedURL(bucket, key string, ttl time.Duration) (string, error)
CreateSignedURL creates a pre-signed URL for the given bucket and key that expires after ttl.
func (*ObjectStoreGRPCClient) DeleteObject ¶
func (c *ObjectStoreGRPCClient) DeleteObject(bucket, key string) error
DeleteObject removes object with the specified key from the given bucket.
func (*ObjectStoreGRPCClient) GetObject ¶
func (c *ObjectStoreGRPCClient) GetObject(bucket, key string) (io.ReadCloser, error)
GetObject retrieves the object with the given key from the specified bucket in object storage.
func (*ObjectStoreGRPCClient) Init ¶
func (c *ObjectStoreGRPCClient) Init(config map[string]string) error
Init prepares the ObjectStore for usage using the provided map of configuration key-value pairs. It returns an error if the ObjectStore cannot be initialized from the provided config.
func (*ObjectStoreGRPCClient) ListCommonPrefixes ¶
func (c *ObjectStoreGRPCClient) ListCommonPrefixes(bucket, prefix, delimiter string) ([]string, error)
ListCommonPrefixes gets a list of all object key prefixes that come after the provided prefix and before the provided delimiter (this is often used to simulate a directory hierarchy in object storage).
func (*ObjectStoreGRPCClient) ListObjects ¶
func (c *ObjectStoreGRPCClient) ListObjects(bucket, prefix string) ([]string, error)
ListObjects gets a list of all objects in bucket that have the same prefix.
func (*ObjectStoreGRPCClient) ObjectExists ¶
func (c *ObjectStoreGRPCClient) ObjectExists(bucket, key string) (bool, error)
ObjectExists checks if there is an object with the given key in the object storage bucket.
type ObjectStoreGRPCServer ¶
type ObjectStoreGRPCServer struct {
// contains filtered or unexported fields
}
ObjectStoreGRPCServer implements the proto-generated ObjectStoreServer interface, and accepts gRPC calls and forwards them to an implementation of the pluggable interface.
func (*ObjectStoreGRPCServer) CreateSignedURL ¶
func (s *ObjectStoreGRPCServer) CreateSignedURL(ctx context.Context, req *proto.CreateSignedURLRequest) (response *proto.CreateSignedURLResponse, err error)
CreateSignedURL creates a pre-signed URL for the given bucket and key that expires after ttl.
func (*ObjectStoreGRPCServer) DeleteObject ¶
func (s *ObjectStoreGRPCServer) DeleteObject(ctx context.Context, req *proto.DeleteObjectRequest) (response *proto.Empty, err error)
DeleteObject removes object with the specified key from the given bucket.
func (*ObjectStoreGRPCServer) GetObject ¶
func (s *ObjectStoreGRPCServer) GetObject(req *proto.GetObjectRequest, stream proto.ObjectStore_GetObjectServer) (err error)
GetObject retrieves the object with the given key from the specified bucket in object storage.
func (*ObjectStoreGRPCServer) Init ¶
func (s *ObjectStoreGRPCServer) Init(ctx context.Context, req *proto.ObjectStoreInitRequest) (response *proto.Empty, err error)
Init prepares the ObjectStore for usage using the provided map of configuration key-value pairs. It returns an error if the ObjectStore cannot be initialized from the provided config.
func (*ObjectStoreGRPCServer) ListCommonPrefixes ¶
func (s *ObjectStoreGRPCServer) ListCommonPrefixes(ctx context.Context, req *proto.ListCommonPrefixesRequest) (response *proto.ListCommonPrefixesResponse, err error)
ListCommonPrefixes gets a list of all object key prefixes that start with the specified prefix and stop at the next instance of the provided delimiter (this is often used to simulate a directory hierarchy in object storage).
func (*ObjectStoreGRPCServer) ListObjects ¶
func (s *ObjectStoreGRPCServer) ListObjects(ctx context.Context, req *proto.ListObjectsRequest) (response *proto.ListObjectsResponse, err error)
ListObjects gets a list of all objects in bucket that have the same prefix.
func (*ObjectStoreGRPCServer) ObjectExists ¶
func (s *ObjectStoreGRPCServer) ObjectExists(ctx context.Context, req *proto.ObjectExistsRequest) (response *proto.ObjectExistsResponse, err error)
ObjectExists checks if there is an object with the given key in the object storage bucket.
func (*ObjectStoreGRPCServer) PutObject ¶
func (s *ObjectStoreGRPCServer) PutObject(stream proto.ObjectStore_PutObjectServer) (err error)
PutObject creates a new object using the data in body within the specified object storage bucket with the given key.
type ObjectStorePlugin ¶
type ObjectStorePlugin struct { plugin.NetRPCUnsupportedPlugin *common.PluginBase }
ObjectStorePlugin is an implementation of go-plugin's Plugin interface with support for gRPC for the cloudprovider/ObjectStore interface.
func NewObjectStorePlugin ¶
func NewObjectStorePlugin(options ...common.PluginOption) *ObjectStorePlugin
NewObjectStorePlugin construct an ObjectStorePlugin.
func (*ObjectStorePlugin) GRPCClient ¶
func (p *ObjectStorePlugin) GRPCClient(_ context.Context, _ *plugin.GRPCBroker, clientConn *grpc.ClientConn) (interface{}, error)
GRPCClient returns an ObjectStore gRPC client.
func (*ObjectStorePlugin) GRPCServer ¶
func (p *ObjectStorePlugin) GRPCServer(_ *plugin.GRPCBroker, server *grpc.Server) error
GRPCServer registers an ObjectStore gRPC server.
type PluginIdentifier ¶
type PluginIdentifier struct { Command string Kind common.PluginKind Name string }
PluginIdentifier uniquely identifies a plugin by command, kind, and name.
type PluginLister ¶
type PluginLister interface {
ListPlugins() ([]PluginIdentifier, error)
}
PluginLister lists plugins.
func NewPluginLister ¶
func NewPluginLister(plugins ...PluginIdentifier) PluginLister
NewPluginLister returns a new PluginLister for plugins.
type PluginListerGRPCClient ¶
type PluginListerGRPCClient struct {
// contains filtered or unexported fields
}
PluginListerGRPCClient implements PluginLister and uses a gRPC client to make calls to the plugin server.
func (*PluginListerGRPCClient) ListPlugins ¶
func (c *PluginListerGRPCClient) ListPlugins() ([]PluginIdentifier, error)
ListPlugins uses the gRPC client to request the list of plugins from the server. It translates the protobuf response to []PluginIdentifier.
type PluginListerGRPCServer ¶
type PluginListerGRPCServer struct {
// contains filtered or unexported fields
}
PluginListerGRPCServer implements the proto-generated PluginLister gRPC service interface. It accepts gRPC calls, forwards them to impl, and translates the responses to protobuf.
func (*PluginListerGRPCServer) ListPlugins ¶
func (s *PluginListerGRPCServer) ListPlugins(ctx context.Context, req *proto.Empty) (*proto.ListPluginsResponse, error)
ListPlugins returns a list of registered plugins, delegating to s.impl to perform the listing.
type PluginListerPlugin ¶
type PluginListerPlugin struct { plugin.NetRPCUnsupportedPlugin // contains filtered or unexported fields }
PluginListerPlugin is a go-plugin Plugin for a PluginLister.
func NewPluginListerPlugin ¶
func NewPluginListerPlugin(impl PluginLister) *PluginListerPlugin
NewPluginListerPlugin creates a new PluginListerPlugin with impl as the server-side implementation.
func (*PluginListerPlugin) GRPCClient ¶
func (p *PluginListerPlugin) GRPCClient(_ context.Context, _ *plugin.GRPCBroker, clientConn *grpc.ClientConn) (interface{}, error)
GRPCClient returns a PluginLister gRPC client.
func (*PluginListerPlugin) GRPCServer ¶
func (p *PluginListerPlugin) GRPCServer(_ *plugin.GRPCBroker, server *grpc.Server) error
GRPCServer registers a PluginLister gRPC server.
type ReceiveFunc ¶
ReceiveFunc is a function that either returns a slice of an arbitrary number of bytes OR an error. Returning an io.EOF means there is no more data to be read; any other error is considered an actual error.
type ResolvedAction ¶ added in v1.8.0
type ResolvedAction interface { // ShouldUse returns true if the resolved namespaces, resource names and labels match those passed in the parameters. // metadata is optional and may be nil ShouldUse(groupResource schema.GroupResource, namespace string, metadata metav1.Object, log logrus.FieldLogger) bool }
ResolvedAction is an action that has had the namespaces, resources names and labels to include or exclude resolved
type RestoreItemActionGRPCClient ¶
type RestoreItemActionGRPCClient struct { *common.ClientBase // contains filtered or unexported fields }
RestoreItemActionGRPCClient implements the backup/ItemAction interface and uses a gRPC client to make calls to the plugin server.
func (*RestoreItemActionGRPCClient) AppliesTo ¶
func (c *RestoreItemActionGRPCClient) AppliesTo() (velero.ResourceSelector, error)
func (*RestoreItemActionGRPCClient) Execute ¶
func (c *RestoreItemActionGRPCClient) Execute(input *velero.RestoreItemActionExecuteInput) (*velero.RestoreItemActionExecuteOutput, error)
type RestoreItemActionGRPCServer ¶
type RestoreItemActionGRPCServer struct {
// contains filtered or unexported fields
}
RestoreItemActionGRPCServer implements the proto-generated RestoreItemActionServer interface, and accepts gRPC calls and forwards them to an implementation of the pluggable interface.
func (*RestoreItemActionGRPCServer) AppliesTo ¶
func (s *RestoreItemActionGRPCServer) AppliesTo(ctx context.Context, req *proto.RestoreItemActionAppliesToRequest) (response *proto.RestoreItemActionAppliesToResponse, err error)
func (*RestoreItemActionGRPCServer) Execute ¶
func (s *RestoreItemActionGRPCServer) Execute(ctx context.Context, req *proto.RestoreItemActionExecuteRequest) (response *proto.RestoreItemActionExecuteResponse, err error)
type RestoreItemActionPlugin ¶
type RestoreItemActionPlugin struct { plugin.NetRPCUnsupportedPlugin *common.PluginBase }
RestoreItemActionPlugin is an implementation of go-plugin's Plugin interface with support for gRPC for the restore/ItemAction interface.
func NewRestoreItemActionPlugin ¶
func NewRestoreItemActionPlugin(options ...common.PluginOption) *RestoreItemActionPlugin
NewRestoreItemActionPlugin constructs a RestoreItemActionPlugin.
func (*RestoreItemActionPlugin) GRPCClient ¶
func (p *RestoreItemActionPlugin) GRPCClient(_ context.Context, _ *plugin.GRPCBroker, clientConn *grpc.ClientConn) (interface{}, error)
GRPCClient returns a RestoreItemAction gRPC client.
func (*RestoreItemActionPlugin) GRPCServer ¶
func (p *RestoreItemActionPlugin) GRPCServer(_ *plugin.GRPCBroker, server *grpc.Server) error
GRPCServer registers a RestoreItemAction gRPC server.
type RestoreItemActionResolver ¶ added in v1.8.0
type RestoreItemActionResolver struct {
// contains filtered or unexported fields
}
func NewRestoreItemActionResolver ¶ added in v1.8.0
func NewRestoreItemActionResolver(actions []riav1.RestoreItemAction) RestoreItemActionResolver
func (RestoreItemActionResolver) ResolveActions ¶ added in v1.8.0
func (recv RestoreItemActionResolver) ResolveActions(helper discovery.Helper, log logrus.FieldLogger) ([]RestoreItemResolvedAction, error)
type RestoreItemActionResolverV2 ¶ added in v1.11.0
type RestoreItemActionResolverV2 struct {
// contains filtered or unexported fields
}
func NewRestoreItemActionResolverV2 ¶ added in v1.11.0
func NewRestoreItemActionResolverV2(actions []riav2.RestoreItemAction) RestoreItemActionResolverV2
func (RestoreItemActionResolverV2) ResolveActions ¶ added in v1.11.0
func (recv RestoreItemActionResolverV2) ResolveActions(helper discovery.Helper, log logrus.FieldLogger) ([]RestoreItemResolvedActionV2, error)
type RestoreItemResolvedAction ¶ added in v1.8.0
type RestoreItemResolvedAction struct { riav1.RestoreItemAction // contains filtered or unexported fields }
func (RestoreItemResolvedAction) ShouldUse ¶ added in v1.8.0
func (recv RestoreItemResolvedAction) ShouldUse(groupResource schema.GroupResource, namespace string, metadata metav1.Object, log logrus.FieldLogger) bool
type RestoreItemResolvedActionV2 ¶ added in v1.11.0
type RestoreItemResolvedActionV2 struct { riav2.RestoreItemAction // contains filtered or unexported fields }
func (RestoreItemResolvedActionV2) ShouldUse ¶ added in v1.11.0
func (recv RestoreItemResolvedActionV2) ShouldUse(groupResource schema.GroupResource, namespace string, metadata metav1.Object, log logrus.FieldLogger) bool
type Server ¶
type Server interface { // BindFlags defines the plugin server's command-line flags // on the provided FlagSet. If you're not sure what flag set // to use, pflag.CommandLine is the default set of command-line // flags. // // This method must be called prior to calling .Serve(). BindFlags(flags *pflag.FlagSet) Server // RegisterBackupItemAction registers a backup item action. Accepted format // for the plugin name is <DNS subdomain>/<non-empty name>. RegisterBackupItemAction(pluginName string, initializer common.HandlerInitializer) Server // RegisterBackupItemActions registers multiple backup item actions. RegisterBackupItemActions(map[string]common.HandlerInitializer) Server // RegisterBackupItemActionV2 registers a v2 backup item action. Accepted format // for the plugin name is <DNS subdomain>/<non-empty name>. RegisterBackupItemActionV2(pluginName string, initializer common.HandlerInitializer) Server // RegisterBackupItemActionsV2 registers multiple v2 backup item actions. RegisterBackupItemActionsV2(map[string]common.HandlerInitializer) Server // RegisterVolumeSnapshotter registers a volume snapshotter. Accepted format // for the plugin name is <DNS subdomain>/<non-empty name>. RegisterVolumeSnapshotter(pluginName string, initializer common.HandlerInitializer) Server // RegisterVolumeSnapshotters registers multiple volume snapshotters. RegisterVolumeSnapshotters(map[string]common.HandlerInitializer) Server // RegisterObjectStore registers an object store. Accepted format // for the plugin name is <DNS subdomain>/<non-empty name>. RegisterObjectStore(pluginName string, initializer common.HandlerInitializer) Server // RegisterObjectStores registers multiple object stores. RegisterObjectStores(map[string]common.HandlerInitializer) Server // RegisterRestoreItemAction registers a restore item action. Accepted format // for the plugin name is <DNS subdomain>/<non-empty name>. RegisterRestoreItemAction(pluginName string, initializer common.HandlerInitializer) Server // RegisterRestoreItemActions registers multiple restore item actions. RegisterRestoreItemActions(map[string]common.HandlerInitializer) Server // RegisterRestoreItemActionV2 registers a v2 restore item action. Accepted format // for the plugin name is <DNS subdomain>/<non-empty name>. RegisterRestoreItemActionV2(pluginName string, initializer common.HandlerInitializer) Server // RegisterRestoreItemActionsV2 registers multiple v2 restore item actions. RegisterRestoreItemActionsV2(map[string]common.HandlerInitializer) Server // RegisterDeleteItemAction registers a delete item action. Accepted format // for the plugin name is <DNS subdomain>/<non-empty name>. RegisterDeleteItemAction(pluginName string, initializer common.HandlerInitializer) Server // RegisterDeleteItemActions registers multiple Delete item actions. RegisterDeleteItemActions(map[string]common.HandlerInitializer) Server // Server runs the plugin server. Serve() }
Server serves registered plugin implementations.
func NewServer ¶
func NewServer() Server
NewServer returns a new Server
Example (VolumeSnapshotter) ¶
package main import ( "github.com/sirupsen/logrus" "k8s.io/apimachinery/pkg/runtime" "github.com/vmware-tanzu/velero/pkg/plugin/velero" ) func main() { NewServer(). // call the server RegisterVolumeSnapshotter("example.io/volumesnapshotter", newVolumeSnapshotter). // register the plugin with a valid name RegisterDeleteItemAction("example.io/delete-item-action", newDeleteItemAction). Serve() // serve the plugin } func newVolumeSnapshotter(logger logrus.FieldLogger) (interface{}, error) { return &VolumeSnapshotter{FieldLogger: logger}, nil } type VolumeSnapshotter struct { FieldLogger logrus.FieldLogger } // Implement all methods for the VolumeSnapshotter interface... func (b *VolumeSnapshotter) Init(config map[string]string) error { b.FieldLogger.Infof("VolumeSnapshotter.Init called") // ... return nil } func (b *VolumeSnapshotter) CreateVolumeFromSnapshot(snapshotID, volumeType, volumeAZ string, iops *int64) (volumeID string, err error) { b.FieldLogger.Infof("CreateVolumeFromSnapshot called") // ... return "volumeID", nil } func (b *VolumeSnapshotter) GetVolumeID(pv runtime.Unstructured) (string, error) { b.FieldLogger.Infof("GetVolumeID called") // ... return "volumeID", nil } func (b *VolumeSnapshotter) SetVolumeID(pv runtime.Unstructured, volumeID string) (runtime.Unstructured, error) { b.FieldLogger.Infof("SetVolumeID called") // ... return nil, nil } func (b *VolumeSnapshotter) GetVolumeInfo(volumeID, volumeAZ string) (string, *int64, error) { b.FieldLogger.Infof("GetVolumeInfo called") // ... return "volumeFilesystemType", nil, nil } func (b *VolumeSnapshotter) CreateSnapshot(volumeID, volumeAZ string, tags map[string]string) (snapshotID string, err error) { b.FieldLogger.Infof("CreateSnapshot called") // ... return "snapshotID", nil } func (b *VolumeSnapshotter) DeleteSnapshot(snapshotID string) error { b.FieldLogger.Infof("DeleteSnapshot called") // ... return nil } // Implement all methods for the DeleteItemAction interface func newDeleteItemAction(logger logrus.FieldLogger) (interface{}, error) { return DeleteItemAction{FieldLogger: logger}, nil } type DeleteItemAction struct { FieldLogger logrus.FieldLogger } func (d *DeleteItemAction) AppliesTo() (velero.ResourceSelector, error) { d.FieldLogger.Infof("AppliesTo called") // ... return velero.ResourceSelector{}, nil } func (d *DeleteItemAction) Execute(input *velero.DeleteItemActionExecuteInput) error { d.FieldLogger.Infof("Execute called") // ... return nil }
Output:
type StreamReadCloser ¶
type StreamReadCloser struct {
// contains filtered or unexported fields
}
StreamReadCloser wraps a ReceiveFunc and a CloseSendFunc to implement io.ReadCloser.
func (*StreamReadCloser) Close ¶
func (s *StreamReadCloser) Close() error
type VolumeSnapshotterGRPCClient ¶
type VolumeSnapshotterGRPCClient struct { *common.ClientBase // contains filtered or unexported fields }
VolumeSnapshotterGRPCClient implements the cloudprovider.VolumeSnapshotter interface and uses a gRPC client to make calls to the plugin server.
func (*VolumeSnapshotterGRPCClient) CreateSnapshot ¶
func (c *VolumeSnapshotterGRPCClient) CreateSnapshot(volumeID, volumeAZ string, tags map[string]string) (string, error)
CreateSnapshot creates a snapshot of the specified block volume, and applies the provided set of tags to the snapshot.
func (*VolumeSnapshotterGRPCClient) CreateVolumeFromSnapshot ¶
func (c *VolumeSnapshotterGRPCClient) CreateVolumeFromSnapshot(snapshotID, volumeType, volumeAZ string, iops *int64) (string, error)
CreateVolumeFromSnapshot creates a new block volume, initialized from the provided snapshot, and with the specified type and IOPS (if using provisioned IOPS).
func (*VolumeSnapshotterGRPCClient) DeleteSnapshot ¶
func (c *VolumeSnapshotterGRPCClient) DeleteSnapshot(snapshotID string) error
DeleteSnapshot deletes the specified volume snapshot.
func (*VolumeSnapshotterGRPCClient) GetVolumeID ¶
func (c *VolumeSnapshotterGRPCClient) GetVolumeID(pv runtime.Unstructured) (string, error)
func (*VolumeSnapshotterGRPCClient) GetVolumeInfo ¶
func (c *VolumeSnapshotterGRPCClient) GetVolumeInfo(volumeID, volumeAZ string) (string, *int64, error)
GetVolumeInfo returns the type and IOPS (if using provisioned IOPS) for a specified block volume.
func (*VolumeSnapshotterGRPCClient) Init ¶
func (c *VolumeSnapshotterGRPCClient) Init(config map[string]string) error
Init prepares the VolumeSnapshotter for usage using the provided map of configuration key-value pairs. It returns an error if the VolumeSnapshotter cannot be initialized from the provided config.
func (*VolumeSnapshotterGRPCClient) SetVolumeID ¶
func (c *VolumeSnapshotterGRPCClient) SetVolumeID(pv runtime.Unstructured, volumeID string) (runtime.Unstructured, error)
type VolumeSnapshotterGRPCServer ¶
type VolumeSnapshotterGRPCServer struct {
// contains filtered or unexported fields
}
VolumeSnapshotterGRPCServer implements the proto-generated VolumeSnapshotterServer interface, and accepts gRPC calls and forwards them to an implementation of the pluggable interface.
func (*VolumeSnapshotterGRPCServer) CreateSnapshot ¶
func (s *VolumeSnapshotterGRPCServer) CreateSnapshot(ctx context.Context, req *proto.CreateSnapshotRequest) (response *proto.CreateSnapshotResponse, err error)
CreateSnapshot creates a snapshot of the specified block volume, and applies the provided set of tags to the snapshot.
func (*VolumeSnapshotterGRPCServer) CreateVolumeFromSnapshot ¶
func (s *VolumeSnapshotterGRPCServer) CreateVolumeFromSnapshot(ctx context.Context, req *proto.CreateVolumeRequest) (response *proto.CreateVolumeResponse, err error)
CreateVolumeFromSnapshot creates a new block volume, initialized from the provided snapshot, and with the specified type and IOPS (if using provisioned IOPS).
func (*VolumeSnapshotterGRPCServer) DeleteSnapshot ¶
func (s *VolumeSnapshotterGRPCServer) DeleteSnapshot(ctx context.Context, req *proto.DeleteSnapshotRequest) (response *proto.Empty, err error)
DeleteSnapshot deletes the specified volume snapshot.
func (*VolumeSnapshotterGRPCServer) GetVolumeID ¶
func (s *VolumeSnapshotterGRPCServer) GetVolumeID(ctx context.Context, req *proto.GetVolumeIDRequest) (response *proto.GetVolumeIDResponse, err error)
func (*VolumeSnapshotterGRPCServer) GetVolumeInfo ¶
func (s *VolumeSnapshotterGRPCServer) GetVolumeInfo(ctx context.Context, req *proto.GetVolumeInfoRequest) (response *proto.GetVolumeInfoResponse, err error)
GetVolumeInfo returns the type and IOPS (if using provisioned IOPS) for a specified block volume.
func (*VolumeSnapshotterGRPCServer) Init ¶
func (s *VolumeSnapshotterGRPCServer) Init(ctx context.Context, req *proto.VolumeSnapshotterInitRequest) (response *proto.Empty, err error)
Init prepares the VolumeSnapshotter for usage using the provided map of configuration key-value pairs. It returns an error if the VolumeSnapshotter cannot be initialized from the provided config.
func (*VolumeSnapshotterGRPCServer) SetVolumeID ¶
func (s *VolumeSnapshotterGRPCServer) SetVolumeID(ctx context.Context, req *proto.SetVolumeIDRequest) (response *proto.SetVolumeIDResponse, err error)
type VolumeSnapshotterPlugin ¶
type VolumeSnapshotterPlugin struct { plugin.NetRPCUnsupportedPlugin *common.PluginBase }
VolumeSnapshotterPlugin is an implementation of go-plugin's Plugin interface with support for gRPC for the cloudprovider/VolumeSnapshotter interface.
func NewVolumeSnapshotterPlugin ¶
func NewVolumeSnapshotterPlugin(options ...common.PluginOption) *VolumeSnapshotterPlugin
NewVolumeSnapshotterPlugin constructs a VolumeSnapshotterPlugin.
func (*VolumeSnapshotterPlugin) GRPCClient ¶
func (p *VolumeSnapshotterPlugin) GRPCClient(_ context.Context, _ *plugin.GRPCBroker, clientConn *grpc.ClientConn) (interface{}, error)
GRPCClient returns a VolumeSnapshotter gRPC client.
func (*VolumeSnapshotterPlugin) GRPCServer ¶
func (p *VolumeSnapshotterPlugin) GRPCServer(_ *plugin.GRPCBroker, server *grpc.Server) error
GRPCServer registers a VolumeSnapshotter gRPC server.
Source Files ¶
- action_resolver.go
- backup_item_action.go
- backup_item_action_client.go
- backup_item_action_server.go
- delete_item_action.go
- delete_item_action_client.go
- delete_item_action_server.go
- doc.go
- handshake.go
- interface.go
- logger.go
- object_store.go
- object_store_client.go
- object_store_server.go
- plugin_lister.go
- restore_item_action.go
- restore_item_action_client.go
- restore_item_action_server.go
- server.go
- stream_reader.go
- validation.go
- volume_snapshotter.go
- volume_snapshotter_client.go
- volume_snapshotter_server.go