Documentation
¶
Index ¶
- type Config
- type Definition
- type Dependency
- type DisableOptions
- type GlobalValuesGetter
- type Info
- type Module
- func (m *Module) ApplySettings(settings addonutils.Values) error
- func (m *Module) DisableHooks()
- func (m *Module) GetConstraints() schedule.Constraints
- func (m *Module) GetHookSnapshotsDump(include ...string) []byte
- func (m *Module) GetHooks() []hooks.Hook
- func (m *Module) GetHooksByBinding(binding shtypes.BindingType) []hooks.Hook
- func (m *Module) GetHooksQueues() []string
- func (m *Module) GetInfo() Info
- func (m *Module) GetName() string
- func (m *Module) GetPath() string
- func (m *Module) GetRuntimeValues() string
- func (m *Module) GetSettings() addonutils.Values
- func (m *Module) GetSettingsChecksum() string
- func (m *Module) GetValues() addonutils.Values
- func (m *Module) GetValuesChecksum() string
- func (m *Module) GetVersion() *semver.Version
- func (m *Module) HooksInitialized() bool
- func (m *Module) InitializeHooks()
- func (m *Module) RunHookByName(ctx context.Context, name string, bctx []bctx.BindingContext) error
- func (m *Module) RunHooksByBinding(ctx context.Context, binding shtypes.BindingType) error
- func (m *Module) UnlockKubernetesMonitors(hook string, monitors ...string)
- func (m *Module) ValidateSettings(ctx context.Context, settings addonutils.Values) (settingscheck.Result, error)
- type Requirements
- type RuntimeValues
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
Path string // Path to package dir
StaticValues addonutils.Values // Static values from values.yaml files
Definition Definition // Module definition
Digests map[string]string // Package images digests(images_digests.json)
Repository registry.Remote // Package repository options
ConfigSchema []byte // OpenAPI config schema (YAML)
ValuesSchema []byte // OpenAPI values schema (YAML)
Hooks []hooks.Hook // Discovered hooks
SettingsCheck *kind.SettingsCheck
Patcher *objectpatch.ObjectPatcher
ScheduleManager schedulemanager.ScheduleManager
KubeEventsManager kubeeventsmanager.KubeEventsManager
GlobalValuesGetter GlobalValuesGetter
}
Config holds configuration for creating a new Module instance.
type Definition ¶
type Definition struct {
Name string `json:"name" yaml:"name"`
Version string `json:"version" yaml:"version"`
Stage string `json:"stage" yaml:"stage"`
Critical bool `json:"critical,omitempty" yaml:"critical,omitempty"`
Weight uint32 `json:"weight,omitempty" yaml:"weight,omitempty"`
Requirements Requirements `json:"requirements" yaml:"requirements"`
DisableOptions DisableOptions `json:"disableOptions" yaml:"disableOptions"`
}
Definition represents module metadata.
func (Definition) Constraints ¶ added in v1.76.0
func (d Definition) Constraints() schedule.Constraints
type Dependency ¶
type Dependency struct {
Constraints *semver.Constraints `json:"constraints" yaml:"constraints"`
Optional bool `json:"optional" yaml:"optional"`
}
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 GlobalValuesGetter ¶
type GlobalValuesGetter func(prefix bool) addonutils.Values
type Info ¶
type Info struct {
Name string `json:"name" yaml:"name"`
Running bool `json:"running" yaml:"running"`
Path string `json:"path" yaml:"path"`
Definition Definition `json:"definition" yaml:"definition"`
Repository registry.Remote `json:"repository" yaml:"repository"`
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 Module ¶
type Module struct {
// contains filtered or unexported fields
}
Module represents a running instance of a package. It contains hooks, values storage, and configuration for execution.
Thread Safety: The Module itself is not thread-safe, but its hooks and values storage components use internal synchronization.
func NewModuleByConfig ¶
NewModuleByConfig creates a new Module 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 (*Module) ApplySettings ¶
func (m *Module) ApplySettings(settings addonutils.Values) error
ApplySettings applies settings values
func (*Module) DisableHooks ¶ added in v1.76.0
func (m *Module) DisableHooks()
DisableHooks tears down all active hook bindings and clears the hook registry. Called by the Disable task when a package is being stopped or upgraded.
Cleanup order: schedule bindings are disabled first (stops cron triggers), then Kubernetes monitors are stopped (stops informer watches), and finally the hook registry is cleared so a subsequent InitializeHooks starts fresh.
func (*Module) GetConstraints ¶ added in v1.76.0
func (m *Module) GetConstraints() schedule.Constraints
GetConstraints returns scheduler checks, their determine if an module should be enabled/disabled
func (*Module) GetHookSnapshotsDump ¶ added in v1.76.0
GetHookSnapshotsDump returns a YAML snapshot of hook controller snapshots. If include is provided, only hooks matching those names are included.
func (*Module) GetHooksByBinding ¶
func (m *Module) GetHooksByBinding(binding shtypes.BindingType) []hooks.Hook
GetHooksByBinding returns all hooks for the specified binding type, sorted by order.
func (*Module) GetHooksQueues ¶ added in v1.76.0
GetHooksQueues returns package queues from all hooks
func (*Module) GetRuntimeValues ¶
GetRuntimeValues returns runtime values in string format
func (*Module) GetSettings ¶ added in v1.76.0
func (m *Module) GetSettings() addonutils.Values
GetSettings returns the effective settings: user config merged with config-schema defaults. Same payload exposed to templates as .Module.Settings.
func (*Module) GetSettingsChecksum ¶
GetSettingsChecksum returns a checksum of the current config values. Used to detect if settings changed.
func (*Module) GetValues ¶
func (m *Module) GetValues() addonutils.Values
GetValues returns values with hooks patches
func (*Module) GetValuesChecksum ¶
GetValuesChecksum returns a checksum of the current values. Used to detect if values changed after hook execution.
func (*Module) GetVersion ¶
GetVersion return the package version
func (*Module) HooksInitialized ¶ added in v1.76.0
HooksInitialized reports whether the package requires a hook initialize phase. This is true when hooks have not yet been initialized (no controllers attached), meaning the pkg needs to go through the full startup sequence before it can run.
func (*Module) InitializeHooks ¶
func (m *Module) InitializeHooks()
InitializeHooks initializes hook controllers and bind them to Kubernetes events and schedules
func (*Module) RunHookByName ¶
RunHookByName executes a specific hook by name with the provided binding context. Returns nil if hook is not found (silent no-op).
func (*Module) RunHooksByBinding ¶
RunHooksByBinding executes all hooks for a specific binding type in order. It creates a binding context with snapshots for BeforeHelm/AfterHelm/AfterDeleteHelm hooks.
func (*Module) UnlockKubernetesMonitors ¶
UnlockKubernetesMonitors called after sync task is completed to unlock getting events
func (*Module) ValidateSettings ¶
func (m *Module) ValidateSettings(ctx context.Context, settings addonutils.Values) (settingscheck.Result, error)
ValidateSettings validates settings against openAPI and call setting check if exists
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 module.
type RuntimeValues ¶
type RuntimeValues struct {
Package addonutils.Values `json:"Package"`
}
RuntimeValues holds runtime values that are not part of schema. These values are passed to helm templates under .Runtime prefix.