Documentation
¶
Overview ¶
Package apps provides the Application type representing a running package instance. It manages hooks, values, and execution lifecycle for a single application.
Index ¶
- func BuildName(namespace, name string) string
- type Application
- func (a *Application) ApplySettings(settings addonutils.Values) error
- func (a *Application) GetChecks() schedule.Checks
- func (a *Application) GetHooks() []*addonhooks.ModuleHook
- func (a *Application) GetHooksByBinding(binding shtypes.BindingType) []*addonhooks.ModuleHook
- func (a *Application) GetInfo() Info
- func (a *Application) GetName() string
- func (a *Application) GetNamespace() string
- func (a *Application) GetPath() string
- func (a *Application) GetRuntimeValues() addonutils.Values
- func (a *Application) GetSettingsChecksum() string
- func (a *Application) GetValues() addonutils.Values
- func (a *Application) GetValuesChecksum() string
- func (a *Application) GetVersion() string
- func (a *Application) RunHookByName(ctx context.Context, name string, bctx []bindingcontext.BindingContext, ...) error
- func (a *Application) RunHooksByBinding(ctx context.Context, binding shtypes.BindingType, dc DependencyContainer) error
- func (a *Application) UnlockKubernetesMonitors(hook string, monitors ...string)
- type ApplicationConfig
- type Definition
- type Dependency
- type DependencyContainer
- type DisableOptions
- type Info
- type Requirements
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Application ¶
type Application struct {
// contains filtered or unexported fields
}
Application represents a running instance of a package. It contains hooks, values storage, and configuration for execution.
Thread Safety: The Application itself is not thread-safe, but its hooks and values storage components use internal synchronization.
func NewApplication ¶
func NewApplication(name, path string, cfg ApplicationConfig) (*Application, error)
NewApplication creates a new Application instance with the specified configuration. It initializes hook storage, adds all discovered hooks, and creates values storage.
Returns error if hook initialization or values storage creation fails.
func (*Application) ApplySettings ¶
func (a *Application) ApplySettings(settings addonutils.Values) error
ApplySettings apply setting values to application
func (*Application) GetChecks ¶
func (a *Application) GetChecks() schedule.Checks
GetChecks return scheduler checks, their determine if an app should be enabled/disabled
func (*Application) GetHooks ¶
func (a *Application) GetHooks() []*addonhooks.ModuleHook
GetHooks returns all hooks for this application in arbitrary order.
func (*Application) GetHooksByBinding ¶
func (a *Application) GetHooksByBinding(binding shtypes.BindingType) []*addonhooks.ModuleHook
GetHooksByBinding returns all hooks for the specified binding type, sorted by order.
func (*Application) GetInfo ¶
func (a *Application) GetInfo() Info
func (*Application) GetName ¶
func (a *Application) GetName() string
GetName returns the full application identifier in format "namespace.name".
func (*Application) GetNamespace ¶
func (a *Application) GetNamespace() string
GetNamespace returns the application namespace.
func (*Application) GetPath ¶
func (a *Application) GetPath() string
GetPath returns path to the package dir
func (*Application) GetRuntimeValues ¶
func (a *Application) GetRuntimeValues() addonutils.Values
GetRuntimeValues returns values that is not part of schema(name, namespace, version)
func (*Application) GetSettingsChecksum ¶
func (a *Application) GetSettingsChecksum() string
GetSettingsChecksum returns a checksum of the current config values. Used to detect if settings changed.
func (*Application) GetValues ¶
func (a *Application) GetValues() addonutils.Values
GetValues returns values for rendering
func (*Application) GetValuesChecksum ¶
func (a *Application) GetValuesChecksum() string
GetValuesChecksum returns a checksum of the current values. Used to detect if values changed after hook execution.
func (*Application) GetVersion ¶
func (a *Application) GetVersion() string
func (*Application) RunHookByName ¶
func (a *Application) RunHookByName(ctx context.Context, name string, bctx []bindingcontext.BindingContext, dc DependencyContainer) error
RunHookByName executes a specific hook by name with the provided binding context. Returns nil if hook is not found (silent no-op).
func (*Application) RunHooksByBinding ¶
func (a *Application) RunHooksByBinding(ctx context.Context, binding shtypes.BindingType, dc DependencyContainer) error
RunHooksByBinding executes all hooks for a specific binding type in order. It creates a binding context with snapshots for BeforeHelm/AfterHelm/AfterDeleteHelm hooks.
func (*Application) UnlockKubernetesMonitors ¶
func (a *Application) UnlockKubernetesMonitors(hook string, monitors ...string)
UnlockKubernetesMonitors called after sync task is completed to unlock getting events
type ApplicationConfig ¶
type ApplicationConfig struct {
StaticValues addonutils.Values // Static values from values.yaml files
Definition Definition // Application definition
Digests map[string]string // Package images digests
Registry registry.Registry
ConfigSchema []byte // OpenAPI config schema (YAML)
ValuesSchema []byte // OpenAPI values schema (YAML)
Hooks []*addonhooks.ModuleHook // Discovered hooks
}
ApplicationConfig holds configuration for creating a new Application instance.
type Definition ¶
type Definition struct {
Name string `json:"name" yaml:"name"`
Version string `json:"version" yaml:"version"`
Stage string `json:"stage" yaml:"stage"`
Requirements Requirements `json:"requirements" yaml:"requirements"`
DisableOptions DisableOptions `json:"disableOptions" yaml:"disableOptions"`
}
Definition represents application metadata.
type Dependency ¶
type Dependency struct {
Constraints *semver.Constraints `json:"constraints" yaml:"constraints"`
Optional bool `json:"optional" yaml:"optional"`
}
type DependencyContainer ¶
type DependencyContainer interface {
KubeObjectPatcher() *objectpatch.ObjectPatcher
}
DependencyContainer provides access to shared services needed by applications.
type DisableOptions ¶
type DisableOptions struct {
Confirmation bool `json:"confirmation" yaml:"confirmation"` // Whether confirmation is required to disable
Message string `json:"message" yaml:"message"` // Message to display when disabling
}
DisableOptions configures application disablement behavior.
type Info ¶
type Info struct {
Instance string `json:"name" yaml:"name"`
Namespace string `json:"namespace" yaml:"namespace"`
Definition Definition `json:"definition" yaml:"definition"`
Registry registry.Registry `json:"registry" yaml:"registry"`
Digests map[string]string `json:"digests" yaml:"digests"`
Values addonutils.Values `json:"values,omitempty" yaml:"values,omitempty"`
Hooks []string `json:"hooks,omitempty" yaml:"hooks,omitempty"`
}
type Requirements ¶
type Requirements struct {
Kubernetes *semver.Constraints `json:"kubernetes" yaml:"kubernetes"`
Deckhouse *semver.Constraints `json:"deckhouse" yaml:"deckhouse"`
Modules map[string]Dependency `json:"modules" yaml:"modules"`
}
Requirements specifies dependencies required by the application.