Documentation
¶
Overview ¶
Package applications is a generated GoMock package.
Index ¶
- Constants
- func NewApplication(p provider.Provider) *application
- func NewHelmApplication(p provider.Provider) *application
- type AppStatusResult
- type Application
- type Controller
- type KubernetesMonitor
- func (m *KubernetesMonitor) CreateCommand(ctx context.Context) (*exec.Cmd, error)
- func (m *KubernetesMonitor) Drain(ctx context.Context) error
- func (m *KubernetesMonitor) Ensure(app Application) error
- func (m *KubernetesMonitor) ExecuteActions(ctx context.Context) error
- func (m *KubernetesMonitor) HandleEvent(ctx context.Context, data []byte)
- func (m KubernetesMonitor) Has(id string) bool
- func (m *KubernetesMonitor) IsEnabled() bool
- func (m *KubernetesMonitor) OnRestart()
- func (m *KubernetesMonitor) Parser() streamParser
- func (m *KubernetesMonitor) Remove(app Application) error
- func (m KubernetesMonitor) Status() ([]AppStatusResult, error)
- func (m *KubernetesMonitor) Stop() error
- func (m *KubernetesMonitor) Update(app Application) error
- type Manager
- type MockApplication
- func (m *MockApplication) ActionSpec() lifecycle.ActionSpec
- func (m *MockApplication) AddWorkload(Workload *Workload)
- func (m *MockApplication) AppType() v1beta1.AppType
- func (m *MockApplication) ClearWorkloads()
- func (m *MockApplication) CopyWorkloadsFrom(other Application)
- func (m *MockApplication) EXPECT() *MockApplicationMockRecorder
- func (m *MockApplication) ID() string
- func (m *MockApplication) IsEmbedded() bool
- func (m *MockApplication) Name() string
- func (m *MockApplication) Path() string
- func (m *MockApplication) RemoveWorkload(name string) bool
- func (m *MockApplication) Status() (*v1beta1.DeviceApplicationStatus, v1beta1.DeviceApplicationsSummaryStatus, ...)
- func (m *MockApplication) User() v1beta1.Username
- func (m *MockApplication) Volume() provider.VolumeManager
- func (m *MockApplication) Workload(name string) (*Workload, bool)
- func (m *MockApplication) Workloads() []Workload
- type MockApplicationMockRecorder
- func (mr *MockApplicationMockRecorder) ActionSpec() *gomock.Call
- func (mr *MockApplicationMockRecorder) AddWorkload(Workload any) *gomock.Call
- func (mr *MockApplicationMockRecorder) AppType() *gomock.Call
- func (mr *MockApplicationMockRecorder) ClearWorkloads() *gomock.Call
- func (mr *MockApplicationMockRecorder) CopyWorkloadsFrom(other any) *gomock.Call
- func (mr *MockApplicationMockRecorder) ID() *gomock.Call
- func (mr *MockApplicationMockRecorder) IsEmbedded() *gomock.Call
- func (mr *MockApplicationMockRecorder) Name() *gomock.Call
- func (mr *MockApplicationMockRecorder) Path() *gomock.Call
- func (mr *MockApplicationMockRecorder) RemoveWorkload(name any) *gomock.Call
- func (mr *MockApplicationMockRecorder) Status() *gomock.Call
- func (mr *MockApplicationMockRecorder) User() *gomock.Call
- func (mr *MockApplicationMockRecorder) Volume() *gomock.Call
- func (mr *MockApplicationMockRecorder) Workload(name any) *gomock.Call
- func (mr *MockApplicationMockRecorder) Workloads() *gomock.Call
- type MockManager
- func (m *MockManager) AfterUpdate(ctx context.Context) error
- func (m *MockManager) BeforeUpdate(ctx context.Context, desired *v1beta1.DeviceSpec) error
- func (m *MockManager) CollectOCITargets(ctx context.Context, current, desired *v1beta1.DeviceSpec) (*dependency.OCICollection, error)
- func (m *MockManager) EXPECT() *MockManagerMockRecorder
- func (m *MockManager) Ensure(ctx context.Context, provider provider.Provider) error
- func (m *MockManager) Remove(ctx context.Context, provider provider.Provider) error
- func (m *MockManager) Shutdown(ctx context.Context, state shutdown.State) error
- func (m *MockManager) Status(arg0 context.Context, arg1 *v1beta1.DeviceStatus, arg2 ...status.CollectorOpt) error
- func (m *MockManager) Update(ctx context.Context, provider provider.Provider) error
- type MockManagerMockRecorder
- func (mr *MockManagerMockRecorder) AfterUpdate(ctx any) *gomock.Call
- func (mr *MockManagerMockRecorder) BeforeUpdate(ctx, desired any) *gomock.Call
- func (mr *MockManagerMockRecorder) CollectOCITargets(ctx, current, desired any) *gomock.Call
- func (mr *MockManagerMockRecorder) Ensure(ctx, provider any) *gomock.Call
- func (mr *MockManagerMockRecorder) Remove(ctx, provider any) *gomock.Call
- func (mr *MockManagerMockRecorder) Shutdown(ctx, state any) *gomock.Call
- func (mr *MockManagerMockRecorder) Status(arg0, arg1 any, arg2 ...any) *gomock.Call
- func (mr *MockManagerMockRecorder) Update(ctx, provider any) *gomock.Call
- type MockMonitor
- type MockMonitorMockRecorder
- type Monitor
- type PodmanMonitor
- func (m *PodmanMonitor) Drain(ctx context.Context) error
- func (m *PodmanMonitor) Ensure(ctx context.Context, app Application) error
- func (m *PodmanMonitor) ExecuteActions(ctx context.Context) error
- func (m *PodmanMonitor) Has(id string) bool
- func (m *PodmanMonitor) QueueRemove(app Application) error
- func (m *PodmanMonitor) QueueUpdate(app Application) error
- func (m *PodmanMonitor) Status() ([]AppStatusResult, error)
- func (m *PodmanMonitor) Stop() error
- type StatusType
- type Workload
Constants ¶
const ( AppTypeLabel = "appType" DefaultImageManifestDir = "/" )
Variables ¶
This section is empty.
Functions ¶
func NewApplication ¶
NewApplication creates a new application from an application provider.
func NewHelmApplication ¶
NewHelmApplication creates a new application with Helm-specific configuration.
Types ¶
type AppStatusResult ¶
type AppStatusResult struct {
Status v1beta1.DeviceApplicationStatus
Summary v1beta1.DeviceApplicationsSummaryStatus
}
AppStatusResult holds the status result for a single application.
type Application ¶
type Application interface {
// ID is an internal identifier for tracking the application this may or may
// not be the name provided by the user. How this ID is generated is
// determined on the application type level.
ID() string
// Name is the name of the application as defined by the user. If the name
// is not populated by the user a name will be generated based on the
// application type.
Name() string
// Type returns the application type.
AppType() v1beta1.AppType
// User is the username that the app runs as.
User() v1beta1.Username
// Path returns the path to the application on the device.
Path() string
// Workload returns a workload by name.
Workload(name string) (*Workload, bool)
// Workloads returns a copy of all workloads.
Workloads() []Workload
// AddWorkload adds a workload to the application.
AddWorkload(Workload *Workload)
// RemoveWorkload removes a workload from the application.
RemoveWorkload(name string) bool
// ClearWorkloads removes all workloads from the application.
ClearWorkloads()
// CopyWorkloadsFrom copies workloads from another application.
CopyWorkloadsFrom(other Application)
// IsEmbedded returns true if the application is embedded.
IsEmbedded() bool
// Volume is a volume manager.
Volume() provider.VolumeManager
// Status reports the status of an application using the name as defined by
// the user. In the case there is no name provided it will be populated
// according to the rules of the application type.
Status() (*v1beta1.DeviceApplicationStatus, v1beta1.DeviceApplicationsSummaryStatus, error)
// ActionSpec returns the type-specific action configuration for this application.
ActionSpec() lifecycle.ActionSpec
}
type Controller ¶
type Controller struct {
// contains filtered or unexported fields
}
func NewController ¶
func NewController( podmanFactory client.PodmanFactory, clients client.CLIClients, manager Manager, rwFactory fileio.ReadWriterFactory, log *log.PrefixLogger, bootTime string, ) *Controller
func (*Controller) Sync ¶
func (c *Controller) Sync(ctx context.Context, current, desired *v1beta1.DeviceSpec) error
type KubernetesMonitor ¶
type KubernetesMonitor struct {
// contains filtered or unexported fields
}
KubernetesMonitor monitors Kubernetes-based applications such as Helm releases.
func NewKubernetesMonitor ¶
func NewKubernetesMonitor( log *log.PrefixLogger, clients client.CLIClients, rwFactory fileio.ReadWriterFactory, ) *KubernetesMonitor
NewKubernetesMonitor creates a new KubernetesMonitor.
func (*KubernetesMonitor) CreateCommand ¶
CreateCommand implements streamingMonitor interface.
func (*KubernetesMonitor) Drain ¶
func (m *KubernetesMonitor) Drain(ctx context.Context) error
Drain stops and removes all applications.
func (*KubernetesMonitor) Ensure ¶
func (m *KubernetesMonitor) Ensure(app Application) error
Ensure adds an application to be monitored.
func (*KubernetesMonitor) ExecuteActions ¶
func (m *KubernetesMonitor) ExecuteActions(ctx context.Context) error
ExecuteActions executes all queued actions.
func (*KubernetesMonitor) HandleEvent ¶
func (m *KubernetesMonitor) HandleEvent(ctx context.Context, data []byte)
HandleEvent implements streamingMonitor interface.
func (*KubernetesMonitor) IsEnabled ¶
func (m *KubernetesMonitor) IsEnabled() bool
IsEnabled returns true if kubernetes-based applications are supported.
func (*KubernetesMonitor) OnRestart ¶
func (m *KubernetesMonitor) OnRestart()
OnRestart implements streamingMonitor interface.
func (*KubernetesMonitor) Parser ¶
func (m *KubernetesMonitor) Parser() streamParser
Parser implements streamingMonitor interface.
func (*KubernetesMonitor) Remove ¶
func (m *KubernetesMonitor) Remove(app Application) error
Remove removes an application from monitoring.
func (KubernetesMonitor) Status ¶
func (m KubernetesMonitor) Status() ([]AppStatusResult, error)
Status returns the status of all monitored applications.
func (*KubernetesMonitor) Stop ¶
func (m *KubernetesMonitor) Stop() error
Stop stops the Kubernetes monitor.
func (*KubernetesMonitor) Update ¶
func (m *KubernetesMonitor) Update(app Application) error
Update updates an existing application, preserving workloads from the old app.
type Manager ¶
type Manager interface {
// Ensure installs and starts the application on the device using the given provider.
Ensure(ctx context.Context, provider provider.Provider) error
// Remove uninstalls the application from the device using the given provider.
Remove(ctx context.Context, provider provider.Provider) error
// Update replaces the current application with a new version provided by the given provider.
Update(ctx context.Context, provider provider.Provider) error
// BeforeUpdate is called prior to installing an application to ensure the
// application is valid and dependencies are met.
BeforeUpdate(ctx context.Context, desired *v1beta1.DeviceSpec) error
// AfterUpdate is called after the application has been validated and is ready to be executed.
AfterUpdate(ctx context.Context) error
// Shutdown closes the manager according to the corresponding shutdown state
Shutdown(ctx context.Context, state shutdown.State) error
dependency.OCICollector
status.Exporter
}
Manager coordinates the lifecycle of an application by interacting with its Provider and ensuring it is properly handed off to the appropriate runtime Monitor.
func NewManager ¶
func NewManager( log *log.PrefixLogger, rwFactory fileio.ReadWriterFactory, podmanFactory client.PodmanFactory, clients client.CLIClients, systemInfo systeminfo.Manager, systemdFactory systemd.ManagerFactory, ) Manager
type MockApplication ¶
type MockApplication struct {
// contains filtered or unexported fields
}
MockApplication is a mock of Application interface.
func NewMockApplication ¶
func NewMockApplication(ctrl *gomock.Controller) *MockApplication
NewMockApplication creates a new mock instance.
func (*MockApplication) ActionSpec ¶
func (m *MockApplication) ActionSpec() lifecycle.ActionSpec
ActionSpec mocks base method.
func (*MockApplication) AddWorkload ¶ added in v0.6.0
func (m *MockApplication) AddWorkload(Workload *Workload)
AddWorkload mocks base method.
func (*MockApplication) AppType ¶ added in v0.6.0
func (m *MockApplication) AppType() v1beta1.AppType
AppType mocks base method.
func (*MockApplication) ClearWorkloads ¶
func (m *MockApplication) ClearWorkloads()
ClearWorkloads mocks base method.
func (*MockApplication) CopyWorkloadsFrom ¶
func (m *MockApplication) CopyWorkloadsFrom(other Application)
CopyWorkloadsFrom mocks base method.
func (*MockApplication) EXPECT ¶
func (m *MockApplication) EXPECT() *MockApplicationMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockApplication) ID ¶ added in v0.4.0
func (m *MockApplication) ID() string
ID mocks base method.
func (*MockApplication) IsEmbedded ¶
func (m *MockApplication) IsEmbedded() bool
IsEmbedded mocks base method.
func (*MockApplication) RemoveWorkload ¶ added in v0.6.0
func (m *MockApplication) RemoveWorkload(name string) bool
RemoveWorkload mocks base method.
func (*MockApplication) Status ¶
func (m *MockApplication) Status() (*v1beta1.DeviceApplicationStatus, v1beta1.DeviceApplicationsSummaryStatus, error)
Status mocks base method.
func (*MockApplication) User ¶
func (m *MockApplication) User() v1beta1.Username
User mocks base method.
func (*MockApplication) Volume ¶ added in v0.8.1
func (m *MockApplication) Volume() provider.VolumeManager
Volume mocks base method.
func (*MockApplication) Workload ¶ added in v0.6.0
func (m *MockApplication) Workload(name string) (*Workload, bool)
Workload mocks base method.
func (*MockApplication) Workloads ¶
func (m *MockApplication) Workloads() []Workload
Workloads mocks base method.
type MockApplicationMockRecorder ¶
type MockApplicationMockRecorder struct {
// contains filtered or unexported fields
}
MockApplicationMockRecorder is the mock recorder for MockApplication.
func (*MockApplicationMockRecorder) ActionSpec ¶
func (mr *MockApplicationMockRecorder) ActionSpec() *gomock.Call
ActionSpec indicates an expected call of ActionSpec.
func (*MockApplicationMockRecorder) AddWorkload ¶ added in v0.6.0
func (mr *MockApplicationMockRecorder) AddWorkload(Workload any) *gomock.Call
AddWorkload indicates an expected call of AddWorkload.
func (*MockApplicationMockRecorder) AppType ¶ added in v0.6.0
func (mr *MockApplicationMockRecorder) AppType() *gomock.Call
AppType indicates an expected call of AppType.
func (*MockApplicationMockRecorder) ClearWorkloads ¶
func (mr *MockApplicationMockRecorder) ClearWorkloads() *gomock.Call
ClearWorkloads indicates an expected call of ClearWorkloads.
func (*MockApplicationMockRecorder) CopyWorkloadsFrom ¶
func (mr *MockApplicationMockRecorder) CopyWorkloadsFrom(other any) *gomock.Call
CopyWorkloadsFrom indicates an expected call of CopyWorkloadsFrom.
func (*MockApplicationMockRecorder) ID ¶ added in v0.4.0
func (mr *MockApplicationMockRecorder) ID() *gomock.Call
ID indicates an expected call of ID.
func (*MockApplicationMockRecorder) IsEmbedded ¶
func (mr *MockApplicationMockRecorder) IsEmbedded() *gomock.Call
IsEmbedded indicates an expected call of IsEmbedded.
func (*MockApplicationMockRecorder) Name ¶
func (mr *MockApplicationMockRecorder) Name() *gomock.Call
Name indicates an expected call of Name.
func (*MockApplicationMockRecorder) Path ¶
func (mr *MockApplicationMockRecorder) Path() *gomock.Call
Path indicates an expected call of Path.
func (*MockApplicationMockRecorder) RemoveWorkload ¶ added in v0.6.0
func (mr *MockApplicationMockRecorder) RemoveWorkload(name any) *gomock.Call
RemoveWorkload indicates an expected call of RemoveWorkload.
func (*MockApplicationMockRecorder) Status ¶
func (mr *MockApplicationMockRecorder) Status() *gomock.Call
Status indicates an expected call of Status.
func (*MockApplicationMockRecorder) User ¶
func (mr *MockApplicationMockRecorder) User() *gomock.Call
User indicates an expected call of User.
func (*MockApplicationMockRecorder) Volume ¶ added in v0.8.1
func (mr *MockApplicationMockRecorder) Volume() *gomock.Call
Volume indicates an expected call of Volume.
func (*MockApplicationMockRecorder) Workload ¶ added in v0.6.0
func (mr *MockApplicationMockRecorder) Workload(name any) *gomock.Call
Workload indicates an expected call of Workload.
func (*MockApplicationMockRecorder) Workloads ¶
func (mr *MockApplicationMockRecorder) Workloads() *gomock.Call
Workloads indicates an expected call of Workloads.
type MockManager ¶
type MockManager struct {
// contains filtered or unexported fields
}
MockManager is a mock of Manager interface.
func NewMockManager ¶
func NewMockManager(ctrl *gomock.Controller) *MockManager
NewMockManager creates a new mock instance.
func (*MockManager) AfterUpdate ¶ added in v0.4.0
func (m *MockManager) AfterUpdate(ctx context.Context) error
AfterUpdate mocks base method.
func (*MockManager) BeforeUpdate ¶ added in v0.4.0
func (m *MockManager) BeforeUpdate(ctx context.Context, desired *v1beta1.DeviceSpec) error
BeforeUpdate mocks base method.
func (*MockManager) CollectOCITargets ¶ added in v0.9.0
func (m *MockManager) CollectOCITargets(ctx context.Context, current, desired *v1beta1.DeviceSpec) (*dependency.OCICollection, error)
CollectOCITargets mocks base method.
func (*MockManager) EXPECT ¶
func (m *MockManager) EXPECT() *MockManagerMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockManager) Status ¶
func (m *MockManager) Status(arg0 context.Context, arg1 *v1beta1.DeviceStatus, arg2 ...status.CollectorOpt) error
Status mocks base method.
type MockManagerMockRecorder ¶
type MockManagerMockRecorder struct {
// contains filtered or unexported fields
}
MockManagerMockRecorder is the mock recorder for MockManager.
func (*MockManagerMockRecorder) AfterUpdate ¶ added in v0.4.0
func (mr *MockManagerMockRecorder) AfterUpdate(ctx any) *gomock.Call
AfterUpdate indicates an expected call of AfterUpdate.
func (*MockManagerMockRecorder) BeforeUpdate ¶ added in v0.4.0
func (mr *MockManagerMockRecorder) BeforeUpdate(ctx, desired any) *gomock.Call
BeforeUpdate indicates an expected call of BeforeUpdate.
func (*MockManagerMockRecorder) CollectOCITargets ¶ added in v0.9.0
func (mr *MockManagerMockRecorder) CollectOCITargets(ctx, current, desired any) *gomock.Call
CollectOCITargets indicates an expected call of CollectOCITargets.
func (*MockManagerMockRecorder) Ensure ¶
func (mr *MockManagerMockRecorder) Ensure(ctx, provider any) *gomock.Call
Ensure indicates an expected call of Ensure.
func (*MockManagerMockRecorder) Remove ¶
func (mr *MockManagerMockRecorder) Remove(ctx, provider any) *gomock.Call
Remove indicates an expected call of Remove.
func (*MockManagerMockRecorder) Shutdown ¶ added in v0.10.0
func (mr *MockManagerMockRecorder) Shutdown(ctx, state any) *gomock.Call
Shutdown indicates an expected call of Shutdown.
type MockMonitor ¶
type MockMonitor struct {
// contains filtered or unexported fields
}
MockMonitor is a mock of Monitor interface.
func NewMockMonitor ¶
func NewMockMonitor(ctrl *gomock.Controller) *MockMonitor
NewMockMonitor creates a new mock instance.
func (*MockMonitor) EXPECT ¶
func (m *MockMonitor) EXPECT() *MockMonitorMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockMonitor) Status ¶
func (m *MockMonitor) Status() []v1beta1.DeviceApplicationStatus
Status mocks base method.
type MockMonitorMockRecorder ¶
type MockMonitorMockRecorder struct {
// contains filtered or unexported fields
}
MockMonitorMockRecorder is the mock recorder for MockMonitor.
func (*MockMonitorMockRecorder) Run ¶
func (mr *MockMonitorMockRecorder) Run(ctx any) *gomock.Call
Run indicates an expected call of Run.
func (*MockMonitorMockRecorder) Status ¶
func (mr *MockMonitorMockRecorder) Status() *gomock.Call
Status indicates an expected call of Status.
type Monitor ¶
type Monitor interface {
Run(ctx context.Context)
Status() []v1beta1.DeviceApplicationStatus
}
type PodmanMonitor ¶
type PodmanMonitor struct {
// contains filtered or unexported fields
}
func NewPodmanMonitor ¶
func NewPodmanMonitor( log *log.PrefixLogger, podmanFactory client.PodmanFactory, systemdFactory systemd.ManagerFactory, bootTime string, rwFactory fileio.ReadWriterFactory, ) *PodmanMonitor
func (*PodmanMonitor) Drain ¶ added in v0.10.0
func (m *PodmanMonitor) Drain(ctx context.Context) error
Drain stops and removes all applications, then stops the monitor
func (*PodmanMonitor) Ensure ¶ added in v0.6.0
func (m *PodmanMonitor) Ensure(ctx context.Context, app Application) error
Ensures that and application is added to the monitor. if the application is added for the first time an Add action is queued to be executed by the lifecycle manager. so additional adds for the same app will be idempotent.
func (*PodmanMonitor) ExecuteActions ¶
func (m *PodmanMonitor) ExecuteActions(ctx context.Context) error
func (*PodmanMonitor) Has ¶ added in v0.6.0
func (m *PodmanMonitor) Has(id string) bool
func (*PodmanMonitor) QueueRemove ¶
func (m *PodmanMonitor) QueueRemove(app Application) error
func (*PodmanMonitor) QueueUpdate ¶
func (m *PodmanMonitor) QueueUpdate(app Application) error
func (*PodmanMonitor) Status ¶
func (m *PodmanMonitor) Status() ([]AppStatusResult, error)
func (*PodmanMonitor) Stop ¶
func (m *PodmanMonitor) Stop() error
Stop stops the podman monitor without draining applications
type StatusType ¶ added in v0.6.0
type StatusType string
const ( StatusCreated StatusType = "created" StatusInit StatusType = "init" StatusRunning StatusType = "start" StatusStop StatusType = "stop" StatusDie StatusType = "die" // docker only StatusDied StatusType = "died" StatusRemove StatusType = "remove" StatusExited StatusType = "exited" )
func (StatusType) String ¶ added in v0.6.0
func (c StatusType) String() string
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
Package helm provides utilities for working with Helm charts and rendered manifests.
|
Package helm provides utilities for working with Helm charts and rendered manifests. |
|
Package lifecycle is a generated GoMock package.
|
Package lifecycle is a generated GoMock package. |