Documentation ¶
Index ¶
- type DirectoryConfig
- type KubeConfigManager
- type ModuleManager
- func (mm *ModuleManager) ApplyBindingActions(moduleHook *hooks.ModuleHook, bindingActions []go_hook.BindingAction) error
- func (mm *ModuleManager) DeleteModule(moduleName string, logLabels map[string]string) error
- func (mm *ModuleManager) DisableModuleHooks(moduleName string)
- func (mm *ModuleManager) DumpDynamicEnabled() string
- func (mm *ModuleManager) DynamicEnabledChecksum() string
- func (mm *ModuleManager) EnableModuleScheduleBindings(moduleName string)
- func (mm *ModuleManager) GetDependencies() *ModuleManagerDependencies
- func (mm *ModuleManager) GetEnabledModuleNames() []string
- func (mm *ModuleManager) GetGlobal() *modules.GlobalModule
- func (mm *ModuleManager) GetGlobalHook(name string) *hooks.GlobalHook
- func (mm *ModuleManager) GetGlobalHooksInOrder(bindingType BindingType) []string
- func (mm *ModuleManager) GetGlobalHooksNames() []string
- func (mm *ModuleManager) GetKubeConfigValid() bool
- func (mm *ModuleManager) GetModule(name string) *modules.BasicModule
- func (mm *ModuleManager) GetModuleEventsChannel() chan events.ModuleEvent
- func (mm *ModuleManager) GetModuleNames() []string
- func (mm *ModuleManager) GetValuesValidator() *validation.ValuesValidator
- func (mm *ModuleManager) GlobalSynchronizationNeeded() bool
- func (mm *ModuleManager) GlobalSynchronizationState() *modules.SynchronizationState
- func (mm *ModuleManager) HandleGlobalEnableKubernetesBindings(hookName string, ...) error
- func (mm *ModuleManager) HandleKubeEvent(kubeEvent KubeEvent, ...)
- func (mm *ModuleManager) HandleModuleEnableKubernetesBindings(moduleName string, ...) error
- func (mm *ModuleManager) HandleNewKubeConfig(kubeConfig *config.KubeConfig) (*ModulesState, error)
- func (mm *ModuleManager) HandleScheduleEvent(crontab string, ...) error
- func (mm *ModuleManager) Init() error
- func (mm *ModuleManager) IsModuleEnabled(moduleName string) bool
- func (mm *ModuleManager) LoopByBinding(binding BindingType, ...)
- func (mm *ModuleManager) RefreshEnabledState(logLabels map[string]string) (*ModulesState, error)
- func (mm *ModuleManager) RefreshStateFromHelmReleases(logLabels map[string]string) (*ModulesState, error)
- func (mm *ModuleManager) RegisterModuleHooks(ml *modules.BasicModule, logLabels map[string]string) error
- func (mm *ModuleManager) RunGlobalHook(hookName string, binding BindingType, bindingContext []BindingContext, ...) (string, string, error)
- func (mm *ModuleManager) RunModule(moduleName string, logLabels map[string]string) (bool, error)
- func (mm *ModuleManager) RunModuleHook(moduleName, hookName string, binding BindingType, ...) (beforeChecksum string, afterChecksum string, err error)
- func (mm *ModuleManager) RunModuleHooks(m *modules.BasicModule, bt sh_op_types.BindingType, ...) error
- func (mm *ModuleManager) SendModuleEvent(ev events.ModuleEvent)
- func (mm *ModuleManager) SetKubeConfigValid(valid bool)
- func (mm *ModuleManager) SetKubeConfigValuesValid(valid bool)
- func (mm *ModuleManager) SetModuleLoader(ld loader.ModuleLoader)
- func (mm *ModuleManager) Start()
- func (mm *ModuleManager) Stop()
- func (mm *ModuleManager) ValidateModule(mod *modules.BasicModule) error
- type ModuleManagerConfig
- type ModuleManagerDependencies
- type ModulesState
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DirectoryConfig ¶ added in v1.1.3
DirectoryConfig configures directories for ModuleManager
type KubeConfigManager ¶ added in v1.1.3
type ModuleManager ¶
type ModuleManager struct { // Directories. ModulesDir string GlobalHooksDir string TempDir string ValuesValidator *validation.ValuesValidator // contains filtered or unexported fields }
func NewModuleManager ¶ added in v1.0.6
func NewModuleManager(ctx context.Context, cfg *ModuleManagerConfig) *ModuleManager
NewModuleManager returns new MainModuleManager
func (*ModuleManager) ApplyBindingActions ¶ added in v1.1.3
func (mm *ModuleManager) ApplyBindingActions(moduleHook *hooks.ModuleHook, bindingActions []go_hook.BindingAction) error
func (*ModuleManager) DeleteModule ¶
func (mm *ModuleManager) DeleteModule(moduleName string, logLabels map[string]string) error
func (*ModuleManager) DisableModuleHooks ¶
func (mm *ModuleManager) DisableModuleHooks(moduleName string)
func (*ModuleManager) DumpDynamicEnabled ¶ added in v1.1.3
func (mm *ModuleManager) DumpDynamicEnabled() string
func (*ModuleManager) DynamicEnabledChecksum ¶
func (mm *ModuleManager) DynamicEnabledChecksum() string
DynamicEnabledChecksum returns checksum for dynamicEnabled map
func (*ModuleManager) EnableModuleScheduleBindings ¶ added in v1.0.5
func (mm *ModuleManager) EnableModuleScheduleBindings(moduleName string)
func (*ModuleManager) GetDependencies ¶ added in v1.3.3
func (mm *ModuleManager) GetDependencies() *ModuleManagerDependencies
GetDependencies fetch dependencies struct from ModuleManager note: not the best way but it's required in some hooks
func (*ModuleManager) GetEnabledModuleNames ¶ added in v1.0.6
func (mm *ModuleManager) GetEnabledModuleNames() []string
func (*ModuleManager) GetGlobal ¶ added in v1.3.3
func (mm *ModuleManager) GetGlobal() *modules.GlobalModule
func (*ModuleManager) GetGlobalHook ¶
func (mm *ModuleManager) GetGlobalHook(name string) *hooks.GlobalHook
func (*ModuleManager) GetGlobalHooksInOrder ¶
func (mm *ModuleManager) GetGlobalHooksInOrder(bindingType BindingType) []string
func (*ModuleManager) GetGlobalHooksNames ¶ added in v1.0.4
func (mm *ModuleManager) GetGlobalHooksNames() []string
func (*ModuleManager) GetKubeConfigValid ¶ added in v1.0.6
func (mm *ModuleManager) GetKubeConfigValid() bool
func (*ModuleManager) GetModule ¶
func (mm *ModuleManager) GetModule(name string) *modules.BasicModule
func (*ModuleManager) GetModuleEventsChannel ¶ added in v1.3.3
func (mm *ModuleManager) GetModuleEventsChannel() chan events.ModuleEvent
GetModuleEventsChannel returns a channel with events that occur during module processing events channel is created only if someone is reading it
func (*ModuleManager) GetModuleNames ¶ added in v1.1.0
func (mm *ModuleManager) GetModuleNames() []string
func (*ModuleManager) GetValuesValidator ¶ added in v1.1.0
func (mm *ModuleManager) GetValuesValidator() *validation.ValuesValidator
func (*ModuleManager) GlobalSynchronizationNeeded ¶
func (mm *ModuleManager) GlobalSynchronizationNeeded() bool
GlobalSynchronizationNeeded is true if there is at least one global kubernetes hook with executeHookOnSynchronization.
func (*ModuleManager) GlobalSynchronizationState ¶ added in v1.0.5
func (mm *ModuleManager) GlobalSynchronizationState() *modules.SynchronizationState
func (*ModuleManager) HandleGlobalEnableKubernetesBindings ¶
func (mm *ModuleManager) HandleGlobalEnableKubernetesBindings(hookName string, createTaskFn func(*hooks.GlobalHook, controller.BindingExecutionInfo)) error
func (*ModuleManager) HandleKubeEvent ¶
func (mm *ModuleManager) HandleKubeEvent(kubeEvent KubeEvent, createGlobalTaskFn func(*hooks.GlobalHook, controller.BindingExecutionInfo), createModuleTaskFn func(*modules.BasicModule, *hooks.ModuleHook, controller.BindingExecutionInfo))
func (*ModuleManager) HandleModuleEnableKubernetesBindings ¶
func (mm *ModuleManager) HandleModuleEnableKubernetesBindings(moduleName string, createTaskFn func(*hooks.ModuleHook, controller.BindingExecutionInfo)) error
func (*ModuleManager) HandleNewKubeConfig ¶ added in v1.0.6
func (mm *ModuleManager) HandleNewKubeConfig(kubeConfig *config.KubeConfig) (*ModulesState, error)
HandleNewKubeConfig validates new config values with config schemas, checks which parts changed and returns state with AllEnabledModules and ModulesToReload list if only module sections are changed. It returns a nil state if new KubeConfig not changing config values or 'enabled by config' state.
This method updates 'config values' caches: - mm.enabledModulesByConfig - mm.kubeGlobalConfigValues - mm.kubeModulesConfigValues
func (*ModuleManager) HandleScheduleEvent ¶
func (mm *ModuleManager) HandleScheduleEvent(crontab string, createGlobalTaskFn func(*hooks.GlobalHook, controller.BindingExecutionInfo), createModuleTaskFn func(*modules.BasicModule, *hooks.ModuleHook, controller.BindingExecutionInfo)) error
func (*ModuleManager) IsModuleEnabled ¶ added in v1.0.6
func (mm *ModuleManager) IsModuleEnabled(moduleName string) bool
IsModuleEnabled ...
func (*ModuleManager) LoopByBinding ¶ added in v1.1.3
func (mm *ModuleManager) LoopByBinding(binding BindingType, fn func(gh *hooks.GlobalHook, m *modules.BasicModule, mh *hooks.ModuleHook))
func (*ModuleManager) RefreshEnabledState ¶ added in v1.0.6
func (mm *ModuleManager) RefreshEnabledState(logLabels map[string]string) (*ModulesState, error)
RefreshEnabledState runs enabled hooks for all 'enabled by config' modules and calculates new arrays of enabled modules. It returns ModulesState with lists of modules to disable and enable.
This method is called after beforeAll hooks to take into account possible changes to 'dynamic enabled'.
This method updates caches: - mm.enabledModules
func (*ModuleManager) RefreshStateFromHelmReleases ¶ added in v1.0.6
func (mm *ModuleManager) RefreshStateFromHelmReleases(logLabels map[string]string) (*ModulesState, error)
RefreshStateFromHelmReleases retrieves all Helm releases. It treats releases for known modules as an initial list of enabled modules. Run this method once at startup.
func (*ModuleManager) RegisterModuleHooks ¶
func (mm *ModuleManager) RegisterModuleHooks(ml *modules.BasicModule, logLabels map[string]string) error
func (*ModuleManager) RunGlobalHook ¶
func (*ModuleManager) RunModule ¶
RunModule runs beforeHelm hook, helm upgrade --install and afterHelm or afterDeleteHelm hook
func (*ModuleManager) RunModuleHook ¶
func (*ModuleManager) RunModuleHooks ¶ added in v1.3.3
func (mm *ModuleManager) RunModuleHooks(m *modules.BasicModule, bt sh_op_types.BindingType, logLabels map[string]string) error
RunOnStartup is a phase of module lifecycle that runs onStartup hooks. It is a handler of task MODULE_RUN Run is a phase of module lifecycle that runs onStartup and beforeHelm hooks, helm upgrade --install command and afterHelm hook. It is a handler of task MODULE_RUN
func (*ModuleManager) SendModuleEvent ¶ added in v1.3.3
func (mm *ModuleManager) SendModuleEvent(ev events.ModuleEvent)
func (*ModuleManager) SetKubeConfigValid ¶ added in v1.0.6
func (mm *ModuleManager) SetKubeConfigValid(valid bool)
func (*ModuleManager) SetKubeConfigValuesValid ¶ added in v1.1.3
func (mm *ModuleManager) SetKubeConfigValuesValid(valid bool)
func (*ModuleManager) SetModuleLoader ¶ added in v1.3.3
func (mm *ModuleManager) SetModuleLoader(ld loader.ModuleLoader)
func (*ModuleManager) Stop ¶ added in v1.1.3
func (mm *ModuleManager) Stop()
func (*ModuleManager) ValidateModule ¶ added in v1.2.0
func (mm *ModuleManager) ValidateModule(mod *modules.BasicModule) error
ValidateModule this method is outdated, have to change it with module validation Deprecated: move it to module constructor TODO: rethink this
type ModuleManagerConfig ¶ added in v1.1.4
type ModuleManagerConfig struct { DirectoryConfig DirectoryConfig Dependencies ModuleManagerDependencies }
type ModuleManagerDependencies ¶ added in v1.1.3
type ModuleManagerDependencies struct { KubeObjectPatcher *object_patch.ObjectPatcher KubeEventsManager kube_events_manager.KubeEventsManager KubeConfigManager KubeConfigManager ScheduleManager schedule_manager.ScheduleManager Helm *helm.ClientFactory HelmResourcesManager helm_resources_manager.HelmResourcesManager MetricStorage *metric_storage.MetricStorage HookMetricStorage *metric_storage.MetricStorage }
ModuleManagerDependencies pass dependencies for ModuleManager
type ModulesState ¶
type ModulesState struct { // All enabled modules. AllEnabledModules []string // Modules that should be deleted. ModulesToDisable []string // Modules that was disabled and now are enabled. ModulesToEnable []string // Modules changed after ConfigMap changes ModulesToReload []string // Helm releases without module directory (unknown modules). ModulesToPurge []string }
ModulesState determines which modules should be enabled, disabled or reloaded.