Documentation ¶
Index ¶
- func GetFilesystemPlugins(dc plugins.DiscoveryConfig) (*controlv1.PluginArchive, error)
- func LeftJoinOn(gateway, agent *controlv1.PluginManifest) *controlv1.PatchList
- func ManifestMetadataFromContext(ctx context.Context) (*controlv1.PluginManifest, bool)
- type BinaryPatcher
- type BsdiffPatcher
- type Cache
- type CacheMetrics
- type CacheMetricsTracker
- func (c *CacheMetricsTracker) AddToPatchCount(value int64)
- func (c *CacheMetricsTracker) AddToPluginCount(value int64)
- func (c *CacheMetricsTracker) AddToTotalSizeBytes(digest string, value int64)
- func (c *CacheMetricsTracker) CacheHit(oldDigest, newDigest string)
- func (c *CacheMetricsTracker) CacheMiss(oldDigest, newDigest string)
- func (c *CacheMetricsTracker) IncPatchCalcCount(oldDigest, newDigest string)
- func (c *CacheMetricsTracker) IncPatchCalcSecsTotal(oldDigest, newDigest string, value float64)
- func (c *CacheMetricsTracker) MetricsCollectors() []prometheus.Collector
- func (c *CacheMetricsTracker) MetricsSnapshot() CacheMetrics
- func (c *CacheMetricsTracker) SetPatchCount(count int64)
- func (c *CacheMetricsTracker) SetPluginCount(count int64)
- func (c *CacheMetricsTracker) SetTotalSizeBytes(digest string, size int64)
- type FilesystemCache
- func (p *FilesystemCache) Archive(manifest *controlv1.PluginArchive) error
- func (p *FilesystemCache) Clean(hashes ...string)
- func (p *FilesystemCache) GetPlugin(hash string) ([]byte, error)
- func (p *FilesystemCache) ListDigests() ([]string, error)
- func (*FilesystemCache) PatchKey(oldDigest, newDigest string) string
- func (p *FilesystemCache) RequestPatch(oldDigest, newDigest string) ([]byte, error)
- type FilesystemPluginSyncServer
- func (f *FilesystemPluginSyncServer) Collectors() []prometheus.Collector
- func (f *FilesystemPluginSyncServer) GetPluginManifest(_ context.Context, _ *emptypb.Empty) (*controlv1.PluginManifest, error)
- func (f *FilesystemPluginSyncServer) RunGarbageCollection(ctx context.Context, store storage.ClusterStore) error
- func (f *FilesystemPluginSyncServer) StreamServerInterceptor() grpc.StreamServerInterceptor
- func (f *FilesystemPluginSyncServer) SyncPluginManifest(ctx context.Context, theirManifest *controlv1.PluginManifest) (*controlv1.SyncResults, error)
- type PatchClient
- type PatchClientOption
- type PatchClientOptions
- type SyncServerOption
- type SyncServerOptions
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetFilesystemPlugins ¶
func GetFilesystemPlugins(dc plugins.DiscoveryConfig) (*controlv1.PluginArchive, error)
func LeftJoinOn ¶ added in v0.8.0
func LeftJoinOn(gateway, agent *controlv1.PluginManifest) *controlv1.PatchList
func ManifestMetadataFromContext ¶ added in v0.8.0
func ManifestMetadataFromContext(ctx context.Context) (*controlv1.PluginManifest, bool)
Types ¶
type BinaryPatcher ¶ added in v0.8.0
type BinaryPatcher interface { GeneratePatch(old io.Reader, new io.Reader, patchOut io.Writer) error ApplyPatch(old io.Reader, patch io.Reader, newOut io.Writer) error CheckFormat(reader io.ReaderAt) bool }
func NewPatcherFromFormat ¶ added in v0.8.0
func NewPatcherFromFormat(reader io.ReaderAt) (BinaryPatcher, bool)
type BsdiffPatcher ¶ added in v0.8.0
type BsdiffPatcher struct{}
func (BsdiffPatcher) ApplyPatch ¶ added in v0.8.0
func (BsdiffPatcher) CheckFormat ¶ added in v0.8.0
func (BsdiffPatcher) CheckFormat(reader io.ReaderAt) bool
func (BsdiffPatcher) GeneratePatch ¶ added in v0.8.0
type Cache ¶ added in v0.8.0
type Cache interface { // RequestPatch will return a patch which will transform the plugin at oldHash to the plugin at newHash. If the patch // does not exist, and both referenced plugins exist, the patch will be generated and stored in the cache before // returning. // This function is thread-safe and reentrant. The patch will only be computed once regardless of how many // concurrent calls are made. // If the patch does not exist, and one or both of the referenced plugins do not exist, this function will return // an error, and the patch will not be generated. RequestPatch(oldHash, newHash string) ([]byte, error) // PatchKey Returns an opaque unique key representing a patch between the two revisions. The key is guaranteed to be // unique for the inputs but is not guaranteed to have a specific format, or even contain the input strings. PatchKey(oldHash, newHash string) string // Archive compresses and saves all plugins in the given plugin manifest to the cache, if they do not exist. Archive(manifest *controlv1.PluginArchive) error // GetPlugin returns the plugin with the given hash, if it exists. GetPlugin(hash string) ([]byte, error) // ListDigests returns a list of all plugin digests in the cache. It does not return patch digests. ListDigests() ([]string, error) // Clean removes all objects in the cache associated with the given plugin hashes, including any patches that // reference those plugins. Clean(hashes ...string) // MetricsCollectors returns a list of prometheus collectors that can be used to track cache metrics. MetricsCollectors() []prometheus.Collector // MetricsSnapshot returns a snapshot of the current cache metrics. MetricsSnapshot() CacheMetrics }
func NewFilesystemCache ¶ added in v0.8.0
func NewFilesystemCache(fsys afero.Fs, conf v1beta1.FilesystemCacheSpec, patcher BinaryPatcher, lg *zap.SugaredLogger) (Cache, error)
type CacheMetrics ¶ added in v0.8.0
type CacheMetricsTracker ¶ added in v0.8.0
type CacheMetricsTracker struct {
// contains filtered or unexported fields
}
func NewCacheMetricsTracker ¶ added in v0.8.0
func NewCacheMetricsTracker(constLabels map[string]string) CacheMetricsTracker
func (*CacheMetricsTracker) AddToPatchCount ¶ added in v0.8.0
func (c *CacheMetricsTracker) AddToPatchCount(value int64)
func (*CacheMetricsTracker) AddToPluginCount ¶ added in v0.8.0
func (c *CacheMetricsTracker) AddToPluginCount(value int64)
func (*CacheMetricsTracker) AddToTotalSizeBytes ¶ added in v0.8.0
func (c *CacheMetricsTracker) AddToTotalSizeBytes(digest string, value int64)
func (*CacheMetricsTracker) CacheHit ¶ added in v0.8.0
func (c *CacheMetricsTracker) CacheHit(oldDigest, newDigest string)
func (*CacheMetricsTracker) CacheMiss ¶ added in v0.8.0
func (c *CacheMetricsTracker) CacheMiss(oldDigest, newDigest string)
func (*CacheMetricsTracker) IncPatchCalcCount ¶ added in v0.8.0
func (c *CacheMetricsTracker) IncPatchCalcCount(oldDigest, newDigest string)
func (*CacheMetricsTracker) IncPatchCalcSecsTotal ¶ added in v0.8.0
func (c *CacheMetricsTracker) IncPatchCalcSecsTotal(oldDigest, newDigest string, value float64)
func (*CacheMetricsTracker) MetricsCollectors ¶ added in v0.8.0
func (c *CacheMetricsTracker) MetricsCollectors() []prometheus.Collector
func (*CacheMetricsTracker) MetricsSnapshot ¶ added in v0.8.0
func (c *CacheMetricsTracker) MetricsSnapshot() CacheMetrics
func (*CacheMetricsTracker) SetPatchCount ¶ added in v0.8.0
func (c *CacheMetricsTracker) SetPatchCount(count int64)
func (*CacheMetricsTracker) SetPluginCount ¶ added in v0.8.0
func (c *CacheMetricsTracker) SetPluginCount(count int64)
func (*CacheMetricsTracker) SetTotalSizeBytes ¶ added in v0.8.0
func (c *CacheMetricsTracker) SetTotalSizeBytes(digest string, size int64)
type FilesystemCache ¶ added in v0.8.0
type FilesystemCache struct { CacheMetricsTracker // contains filtered or unexported fields }
func (*FilesystemCache) Archive ¶ added in v0.8.0
func (p *FilesystemCache) Archive(manifest *controlv1.PluginArchive) error
func (*FilesystemCache) Clean ¶ added in v0.8.0
func (p *FilesystemCache) Clean(hashes ...string)
func (*FilesystemCache) GetPlugin ¶ added in v0.8.0
func (p *FilesystemCache) GetPlugin(hash string) ([]byte, error)
func (*FilesystemCache) ListDigests ¶ added in v0.8.0
func (p *FilesystemCache) ListDigests() ([]string, error)
func (*FilesystemCache) PatchKey ¶ added in v0.8.0
func (*FilesystemCache) PatchKey(oldDigest, newDigest string) string
func (*FilesystemCache) RequestPatch ¶ added in v0.8.0
func (p *FilesystemCache) RequestPatch(oldDigest, newDigest string) ([]byte, error)
type FilesystemPluginSyncServer ¶
type FilesystemPluginSyncServer struct { controlv1.UnsafePluginSyncServer SyncServerOptions // contains filtered or unexported fields }
func NewFilesystemPluginSyncServer ¶
func NewFilesystemPluginSyncServer( cfg v1beta1.PluginsSpec, lg *zap.SugaredLogger, opts ...SyncServerOption, ) (*FilesystemPluginSyncServer, error)
func (*FilesystemPluginSyncServer) Collectors ¶ added in v0.8.0
func (f *FilesystemPluginSyncServer) Collectors() []prometheus.Collector
func (*FilesystemPluginSyncServer) GetPluginManifest ¶ added in v0.8.0
func (f *FilesystemPluginSyncServer) GetPluginManifest(_ context.Context, _ *emptypb.Empty) (*controlv1.PluginManifest, error)
func (*FilesystemPluginSyncServer) RunGarbageCollection ¶ added in v0.8.0
func (f *FilesystemPluginSyncServer) RunGarbageCollection(ctx context.Context, store storage.ClusterStore) error
func (*FilesystemPluginSyncServer) StreamServerInterceptor ¶
func (f *FilesystemPluginSyncServer) StreamServerInterceptor() grpc.StreamServerInterceptor
func (*FilesystemPluginSyncServer) SyncPluginManifest ¶ added in v0.8.0
func (f *FilesystemPluginSyncServer) SyncPluginManifest( ctx context.Context, theirManifest *controlv1.PluginManifest, ) (*controlv1.SyncResults, error)
type PatchClient ¶ added in v0.8.0
func NewPatchClient ¶ added in v0.8.0
func NewPatchClient(config v1beta1.PluginsSpec, lg *zap.SugaredLogger, opts ...PatchClientOption) (PatchClient, error)
type PatchClientOption ¶ added in v0.8.0
type PatchClientOption func(*PatchClientOptions)
func WithBaseFS ¶ added in v0.8.0
func WithBaseFS(basefs afero.Fs) PatchClientOption
type PatchClientOptions ¶ added in v0.8.0
type PatchClientOptions struct {
// contains filtered or unexported fields
}
type SyncServerOption ¶ added in v0.8.0
type SyncServerOption func(*SyncServerOptions)
func WithFs ¶ added in v0.8.0
func WithFs(fsys afero.Fs) SyncServerOption
func WithPluginSyncFilters ¶ added in v0.8.0
func WithPluginSyncFilters(filters plugins.Filter) SyncServerOption
type SyncServerOptions ¶ added in v0.8.0
type SyncServerOptions struct {
// contains filtered or unexported fields
}
Click to show internal directories.
Click to hide internal directories.