Documentation ¶
Index ¶
- Variables
- func CreateEmptyWritableFile(filePath string) error
- func GetGlobalHookConfigSchema(version string) *spec.Schema
- func GetModuleHookConfigSchema(version string) *spec.Schema
- func MergeLayers(initial utils.Values, layers ...interface{}) utils.Values
- func NewHookConfigFromGoConfig(input *go_hook.HookConfig) (config.HookConfig, error)
- func NewModuleManager() *moduleManager
- func ReadOpenAPIFiles(openApiDir string) (configSchemaBytes, valuesSchemaBytes []byte, err error)
- type AfterAllConfig
- type AfterDeleteHelmConfig
- type AfterHelmConfig
- type ApplyDefaultsForGlobal
- type ApplyDefaultsForModule
- type BeforeAllConfig
- type BeforeHelmConfig
- type CommonHook
- func (h *CommonHook) GetGoHook() go_hook.GoHook
- func (h *CommonHook) GetName() string
- func (h *CommonHook) GetPath() string
- func (h *CommonHook) ShouldEnableSchedulesOnStartup() bool
- func (h *CommonHook) SynchronizationNeeded() bool
- func (c *CommonHook) WithGoHook(h go_hook.GoHook)
- func (c *CommonHook) WithModuleManager(moduleManager *moduleManager)
- type GlobalHook
- func (gh *GlobalHook) GetConfigDescription() string
- func (h *GlobalHook) GetConfigValues() utils.Values
- func (h *GlobalHook) GetValues() (utils.Values, error)
- func (g *GlobalHook) Order(binding BindingType) float64
- func (h *GlobalHook) PrepareTmpFilesForHookRun(bindingContext []byte) (tmpFiles map[string]string, err error)
- func (h *GlobalHook) Run(bindingType BindingType, bindingContext []BindingContext, ...) error
- func (g *GlobalHook) WithConfig(configOutput []byte) (err error)
- func (g *GlobalHook) WithGoConfig(config *go_hook.HookConfig) (err error)
- type GlobalHookConfig
- func (c *GlobalHookConfig) Bindings() []BindingType
- func (c *GlobalHookConfig) BindingsCount() int
- func (c *GlobalHookConfig) ConvertAfterAll(value interface{}) (*AfterAllConfig, error)
- func (c *GlobalHookConfig) ConvertAndCheck(data []byte) error
- func (c *GlobalHookConfig) ConvertAndCheckV0() (err error)
- func (c *GlobalHookConfig) ConvertAndCheckV1() (err error)
- func (c *GlobalHookConfig) ConvertBeforeAll(value interface{}) (*BeforeAllConfig, error)
- func (c *GlobalHookConfig) HasBinding(binding BindingType) bool
- func (c *GlobalHookConfig) LoadAndValidate(data []byte) error
- type GlobalHookConfigV0
- type Hook
- type HookExecutor
- func (e *HookExecutor) Config() (configOutput []byte, err error)
- func (e *HookExecutor) Run() (result *HookResult, err error)
- func (e *HookExecutor) RunGoHook() (result *HookResult, err error)
- func (e *HookExecutor) WithHelm(helm *helm.ClientFactory)
- func (e *HookExecutor) WithLogLabels(logLabels map[string]string)
- type HookResult
- type KubernetesBindingSynchronizationState
- type Module
- func (m *Module) ConfigValues() utils.Values
- func (m *Module) Delete(logLabels map[string]string) error
- func (m *Module) HasKubernetesHooks() bool
- func (m *Module) PrepareValuesYamlFile() (string, error)
- func (m *Module) Run(logLabels map[string]string) (bool, error)
- func (m *Module) RunOnStartup(logLabels map[string]string) error
- func (m *Module) SafeName() string
- func (m *Module) ShouldRunHelmUpgrade(helmClient client.HelmClient, releaseName string, checksum string, ...) (bool, error)
- func (m *Module) StaticAndConfigValues() utils.Values
- func (m *Module) StaticAndNewValues(newValues utils.Values) utils.Values
- func (m *Module) SynchronizationNeeded() bool
- func (m *Module) Values() (utils.Values, error)
- func (m *Module) ValuesForEnabledScript(precedingEnabledModules []string) (utils.Values, error)
- func (m *Module) ValuesKey() string
- func (m *Module) WithHelm(helm *helm.ClientFactory)
- func (m *Module) WithMetricStorage(mstor *metric_storage.MetricStorage)
- func (m *Module) WithModuleManager(moduleManager *moduleManager)
- type ModuleHook
- func (m *ModuleHook) GetConfigDescription() string
- func (h *ModuleHook) GetConfigValues() utils.Values
- func (h *ModuleHook) GetValues() (utils.Values, error)
- func (m *ModuleHook) Order(binding BindingType) float64
- func (h *ModuleHook) PrepareTmpFilesForHookRun(bindingContext []byte) (tmpFiles map[string]string, err error)
- func (h *ModuleHook) Run(bindingType BindingType, context []BindingContext, logLabels map[string]string, ...) error
- func (m *ModuleHook) WithConfig(configOutput []byte) (err error)
- func (m *ModuleHook) WithGoConfig(config *go_hook.HookConfig) (err error)
- func (m *ModuleHook) WithModule(module *Module)
- type ModuleHookConfig
- func (c *ModuleHookConfig) Bindings() []BindingType
- func (c *ModuleHookConfig) BindingsCount() int
- func (c *ModuleHookConfig) ConvertAfterDeleteHelm(value interface{}) (*AfterDeleteHelmConfig, error)
- func (c *ModuleHookConfig) ConvertAfterHelm(value interface{}) (*AfterHelmConfig, error)
- func (c *ModuleHookConfig) ConvertAndCheck(data []byte) error
- func (c *ModuleHookConfig) ConvertAndCheckV0() (err error)
- func (c *ModuleHookConfig) ConvertAndCheckV1() (err error)
- func (c *ModuleHookConfig) ConvertBeforeHelm(value interface{}) (*BeforeHelmConfig, error)
- func (c *ModuleHookConfig) HasBinding(binding BindingType) bool
- func (c *ModuleHookConfig) LoadAndValidate(data []byte) error
- type ModuleHookConfigV0
- type ModuleManager
- type ModuleRunPhase
- type ModuleState
- type ModulesState
- type SynchronizationState
- type ValuesTransform
- type ValuesTransformer
Constants ¶
This section is empty.
Variables ¶
var ValidModuleNameRe = regexp.MustCompile(`^[0-9][0-9][0-9]-(.*)$`)
Functions ¶
func CreateEmptyWritableFile ¶
func NewHookConfigFromGoConfig ¶
func NewHookConfigFromGoConfig(input *go_hook.HookConfig) (config.HookConfig, error)
func NewModuleManager ¶ added in v1.0.6
func NewModuleManager() *moduleManager
NewModuleManager returns new MainModuleManager
func ReadOpenAPIFiles ¶
ReadOpenAPIFiles reads config-values.yaml and values.yaml from the specified directory. Global schemas:
/global/openapi/config-values.yaml /global/openapi/values.yaml
Module schemas:
/modules/XXX-module-name/openapi/config-values.yaml /modules/XXX-module-name/openapi/values.yaml
Types ¶
type AfterAllConfig ¶
type AfterAllConfig struct { CommonBindingConfig Order float64 }
type AfterDeleteHelmConfig ¶
type AfterDeleteHelmConfig struct { CommonBindingConfig Order float64 }
type AfterHelmConfig ¶
type AfterHelmConfig struct { CommonBindingConfig Order float64 }
type ApplyDefaultsForGlobal ¶
type ApplyDefaultsForGlobal struct { SchemaType validation.SchemaType ValuesValidator *validation.ValuesValidator }
type ApplyDefaultsForModule ¶
type ApplyDefaultsForModule struct { ModuleValuesKey string SchemaType validation.SchemaType ValuesValidator *validation.ValuesValidator }
type BeforeAllConfig ¶
type BeforeAllConfig struct { CommonBindingConfig Order float64 }
type BeforeHelmConfig ¶
type BeforeHelmConfig struct { CommonBindingConfig Order float64 }
type CommonHook ¶
type CommonHook struct { hook.Hook GoHook go_hook.GoHook // contains filtered or unexported fields }
func (*CommonHook) GetGoHook ¶
func (h *CommonHook) GetGoHook() go_hook.GoHook
func (*CommonHook) GetName ¶
func (h *CommonHook) GetName() string
func (*CommonHook) GetPath ¶
func (h *CommonHook) GetPath() string
func (*CommonHook) ShouldEnableSchedulesOnStartup ¶ added in v1.0.6
func (h *CommonHook) ShouldEnableSchedulesOnStartup() bool
ShouldEnableSchedulesOnStartup returns true for Go hooks if EnableSchedulesOnStartup is set. This flag for schedule hooks that start after onStartup hooks.
func (*CommonHook) SynchronizationNeeded ¶
func (h *CommonHook) SynchronizationNeeded() bool
SynchronizationNeeded is true if there is binding with executeHookOnSynchronization.
func (*CommonHook) WithGoHook ¶
func (c *CommonHook) WithGoHook(h go_hook.GoHook)
func (*CommonHook) WithModuleManager ¶
func (c *CommonHook) WithModuleManager(moduleManager *moduleManager)
type GlobalHook ¶
type GlobalHook struct { *CommonHook Config *GlobalHookConfig }
func NewGlobalHook ¶
func NewGlobalHook(name, path string) *GlobalHook
func SearchGlobalGoHooks ¶
func SearchGlobalGoHooks() (hooks []*GlobalHook, err error)
func SearchGlobalHooks ¶
func SearchGlobalHooks(hooksDir string) (hooks []*GlobalHook, err error)
SearchGlobalHooks recursively find all executables in hooksDir. Absent hooksDir is not an error.
func SearchGlobalShellHooks ¶
func SearchGlobalShellHooks(hooksDir string) (hooks []*GlobalHook, err error)
SearchGlobalHooks recursively find all executables in hooksDir. Absent hooksDir is not an error.
func (*GlobalHook) GetConfigDescription ¶
func (gh *GlobalHook) GetConfigDescription() string
func (*GlobalHook) GetConfigValues ¶
func (h *GlobalHook) GetConfigValues() utils.Values
func (*GlobalHook) Order ¶
func (g *GlobalHook) Order(binding BindingType) float64
Order return float order number for bindings with order.
func (*GlobalHook) PrepareTmpFilesForHookRun ¶
func (h *GlobalHook) PrepareTmpFilesForHookRun(bindingContext []byte) (tmpFiles map[string]string, err error)
PrepareTmpFilesForHookRun creates temporary files for hook and returns environment variables with paths
func (*GlobalHook) Run ¶
func (h *GlobalHook) Run(bindingType BindingType, bindingContext []BindingContext, logLabels map[string]string) error
func (*GlobalHook) WithConfig ¶
func (g *GlobalHook) WithConfig(configOutput []byte) (err error)
func (*GlobalHook) WithGoConfig ¶
func (g *GlobalHook) WithGoConfig(config *go_hook.HookConfig) (err error)
type GlobalHookConfig ¶
type GlobalHookConfig struct { config.HookConfig // versioned raw config values GlobalV0 *GlobalHookConfigV0 GlobalV1 *GlobalHookConfigV0 // effective config values BeforeAll *BeforeAllConfig AfterAll *AfterAllConfig }
GlobalHookConfig is a structure with versioned hook configuration
func NewGlobalHookConfigFromGoConfig ¶
func NewGlobalHookConfigFromGoConfig(input *go_hook.HookConfig) (*GlobalHookConfig, error)
func (*GlobalHookConfig) Bindings ¶
func (c *GlobalHookConfig) Bindings() []BindingType
func (*GlobalHookConfig) BindingsCount ¶
func (c *GlobalHookConfig) BindingsCount() int
func (*GlobalHookConfig) ConvertAfterAll ¶
func (c *GlobalHookConfig) ConvertAfterAll(value interface{}) (*AfterAllConfig, error)
func (*GlobalHookConfig) ConvertAndCheck ¶
func (c *GlobalHookConfig) ConvertAndCheck(data []byte) error
func (*GlobalHookConfig) ConvertAndCheckV0 ¶
func (c *GlobalHookConfig) ConvertAndCheckV0() (err error)
func (*GlobalHookConfig) ConvertAndCheckV1 ¶
func (c *GlobalHookConfig) ConvertAndCheckV1() (err error)
func (*GlobalHookConfig) ConvertBeforeAll ¶
func (c *GlobalHookConfig) ConvertBeforeAll(value interface{}) (*BeforeAllConfig, error)
func (*GlobalHookConfig) HasBinding ¶
func (c *GlobalHookConfig) HasBinding(binding BindingType) bool
func (*GlobalHookConfig) LoadAndValidate ¶
func (c *GlobalHookConfig) LoadAndValidate(data []byte) error
LoadAndValidate loads config from bytes and validate it. Returns multierror.
type GlobalHookConfigV0 ¶
type GlobalHookConfigV0 struct { BeforeAll interface{} `json:"beforeAll"` AfterAll interface{} `json:"afterAll"` }
type Hook ¶
type Hook interface { WithModuleManager(moduleManager *moduleManager) WithConfig(configOutput []byte) (err error) WithGoConfig(config *go_hook.HookConfig) (err error) WithHookController(hookController controller.HookController) GetName() string GetPath() string GetGoHook() go_hook.GoHook GetValues() (utils.Values, error) GetConfigValues() utils.Values PrepareTmpFilesForHookRun(bindingContext []byte) (map[string]string, error) Order(binding sh_op_types.BindingType) float64 }
type HookExecutor ¶
type HookExecutor struct { Hook Hook Context []BindingContext ConfigVersion string ConfigValuesPath string ValuesPath string ContextPath string ConfigValuesPatchPath string ValuesPatchPath string MetricsPath string ObjectPatcher *object_patch.ObjectPatcher KubernetesPatchPath string LogLabels map[string]string Helm *helm.ClientFactory }
func NewHookExecutor ¶
func NewHookExecutor(h Hook, context []BindingContext, configVersion string, objectPatcher *object_patch.ObjectPatcher) *HookExecutor
func (*HookExecutor) Config ¶
func (e *HookExecutor) Config() (configOutput []byte, err error)
func (*HookExecutor) Run ¶
func (e *HookExecutor) Run() (result *HookResult, err error)
func (*HookExecutor) RunGoHook ¶
func (e *HookExecutor) RunGoHook() (result *HookResult, err error)
func (*HookExecutor) WithHelm ¶ added in v1.0.6
func (e *HookExecutor) WithHelm(helm *helm.ClientFactory)
func (*HookExecutor) WithLogLabels ¶
func (e *HookExecutor) WithLogLabels(logLabels map[string]string)
type HookResult ¶
type HookResult struct { Usage *executor.CmdUsage Patches map[utils.ValuesPatchType]*utils.ValuesPatch Metrics []metric_operation.MetricOperation ObjectPatcherOperations []object_patch.Operation BindingActions []go_hook.BindingAction }
type KubernetesBindingSynchronizationState ¶
type KubernetesBindingSynchronizationState struct { HookName string BindingName string Queued bool Done bool }
KubernetesBindingSynchronizationState is a state of the single Synchronization task for one kubernetes binding.
func (*KubernetesBindingSynchronizationState) String ¶
func (k *KubernetesBindingSynchronizationState) String() string
type Module ¶
type Module struct { Name string Path string // module values from modules/values.yaml file CommonStaticConfig *utils.ModuleConfig // module values from modules/<module name>/values.yaml StaticConfig *utils.ModuleConfig State *ModuleState // contains filtered or unexported fields }
func SearchModules ¶
func (*Module) ConfigValues ¶
ConfigValues returns raw values from ConfigMap: - global section - module section
func (*Module) Delete ¶
Delete removes helm release if it exists and runs afterDeleteHelm hooks. It is a handler for MODULE_DELETE task.
func (*Module) HasKubernetesHooks ¶ added in v1.0.5
HasKubernetesHooks is true if module has at least one kubernetes hook.
func (*Module) PrepareValuesYamlFile ¶
values.yaml for helm
func (*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 (*Module) RunOnStartup ¶
RunOnStartup is a phase of module lifecycle that runs onStartup hooks. It is a handler of task MODULE_RUN
func (*Module) ShouldRunHelmUpgrade ¶
func (m *Module) ShouldRunHelmUpgrade(helmClient client.HelmClient, releaseName string, checksum string, manifests []manifest.Manifest, logLabels map[string]string) (bool, error)
ShouldRunHelmUpgrade tells if there is a case to run `helm upgrade`:
- Helm chart in not installed yet.
- Last release has FAILED status.
- Checksum in release values not equals to checksum argument.
- Some resources installed previously are missing.
If all these conditions aren't met, helm upgrade can be skipped.
func (*Module) StaticAndConfigValues ¶
StaticAndConfigValues returns global common static values defined in various values.yaml files and in a ConfigMap and module values defined in various values.yaml files and in a ConfigMap.
func (*Module) StaticAndNewValues ¶
StaticAndNewValues returns global values defined in various values.yaml files and in a ConfigMap and module values defined in various values.yaml files merged with newValues.
func (*Module) SynchronizationNeeded ¶
SynchronizationNeeded is true if module has at least one kubernetes hook with executeHookOnSynchronization.
func (*Module) Values ¶
Values returns effective values for module hook or helm chart:
global section: static + config + defaults + patches from hooks
module section: static + config + defaults + patches from hooks
func (*Module) ValuesForEnabledScript ¶
ValuesForEnabledScript returns effective values for enabled script. There is enabledModules key in global section with previously enabled modules.
func (*Module) WithHelm ¶ added in v1.0.6
func (m *Module) WithHelm(helm *helm.ClientFactory)
func (*Module) WithMetricStorage ¶
func (m *Module) WithMetricStorage(mstor *metric_storage.MetricStorage)
func (*Module) WithModuleManager ¶
func (m *Module) WithModuleManager(moduleManager *moduleManager)
type ModuleHook ¶
type ModuleHook struct { *CommonHook Module *Module Config *ModuleHookConfig }
func NewModuleHook ¶
func NewModuleHook(name, path string) *ModuleHook
func SearchModuleGoHooks ¶
func SearchModuleGoHooks(module *Module) (hooks []*ModuleHook, err error)
func SearchModuleHooks ¶
func SearchModuleHooks(module *Module) (hooks []*ModuleHook, err error)
func SearchModuleShellHooks ¶
func SearchModuleShellHooks(module *Module) (hooks []*ModuleHook, err error)
func (*ModuleHook) GetConfigDescription ¶
func (m *ModuleHook) GetConfigDescription() string
func (*ModuleHook) GetConfigValues ¶
func (h *ModuleHook) GetConfigValues() utils.Values
func (*ModuleHook) Order ¶
func (m *ModuleHook) Order(binding BindingType) float64
Order return float order number for bindings with order.
func (*ModuleHook) PrepareTmpFilesForHookRun ¶
func (h *ModuleHook) PrepareTmpFilesForHookRun(bindingContext []byte) (tmpFiles map[string]string, err error)
PrepareTmpFilesForHookRun creates temporary files for hook and returns environment variables with paths
func (*ModuleHook) WithConfig ¶
func (m *ModuleHook) WithConfig(configOutput []byte) (err error)
func (*ModuleHook) WithGoConfig ¶
func (m *ModuleHook) WithGoConfig(config *go_hook.HookConfig) (err error)
func (*ModuleHook) WithModule ¶
func (m *ModuleHook) WithModule(module *Module)
type ModuleHookConfig ¶
type ModuleHookConfig struct { config.HookConfig // versioned raw config values ModuleV0 *ModuleHookConfigV0 ModuleV1 *ModuleHookConfigV0 // effective config values BeforeHelm *BeforeHelmConfig AfterHelm *AfterHelmConfig AfterDeleteHelm *AfterDeleteHelmConfig }
ModuleHookConfig is a structure with versioned hook configuration
func NewModuleHookConfigFromGoConfig ¶
func NewModuleHookConfigFromGoConfig(input *go_hook.HookConfig) (*ModuleHookConfig, error)
func (*ModuleHookConfig) Bindings ¶
func (c *ModuleHookConfig) Bindings() []BindingType
func (*ModuleHookConfig) BindingsCount ¶
func (c *ModuleHookConfig) BindingsCount() int
func (*ModuleHookConfig) ConvertAfterDeleteHelm ¶
func (c *ModuleHookConfig) ConvertAfterDeleteHelm(value interface{}) (*AfterDeleteHelmConfig, error)
func (*ModuleHookConfig) ConvertAfterHelm ¶
func (c *ModuleHookConfig) ConvertAfterHelm(value interface{}) (*AfterHelmConfig, error)
func (*ModuleHookConfig) ConvertAndCheck ¶
func (c *ModuleHookConfig) ConvertAndCheck(data []byte) error
func (*ModuleHookConfig) ConvertAndCheckV0 ¶
func (c *ModuleHookConfig) ConvertAndCheckV0() (err error)
func (*ModuleHookConfig) ConvertAndCheckV1 ¶
func (c *ModuleHookConfig) ConvertAndCheckV1() (err error)
func (*ModuleHookConfig) ConvertBeforeHelm ¶
func (c *ModuleHookConfig) ConvertBeforeHelm(value interface{}) (*BeforeHelmConfig, error)
func (*ModuleHookConfig) HasBinding ¶
func (c *ModuleHookConfig) HasBinding(binding BindingType) bool
func (*ModuleHookConfig) LoadAndValidate ¶
func (c *ModuleHookConfig) LoadAndValidate(data []byte) error
LoadAndValidate loads config from bytes and validate it. Returns multierror.
type ModuleHookConfigV0 ¶
type ModuleHookConfigV0 struct { BeforeHelm interface{} `json:"beforeHelm"` AfterHelm interface{} `json:"afterHelm"` AfterDeleteHelm interface{} `json:"afterDeleteHelm"` }
type ModuleManager ¶
type ModuleManager interface { Init() error Start() // Dependencies WithContext(ctx context.Context) WithDirectories(modulesDir string, globalHooksDir string, tempDir string) ModuleManager WithKubeEventManager(kube_events_manager.KubeEventsManager) WithKubeObjectPatcher(*object_patch.ObjectPatcher) WithScheduleManager(schedule_manager.ScheduleManager) WithKubeConfigManager(kubeConfigManager kube_config_manager.KubeConfigManager) WithHelm(factory *helm.ClientFactory) WithHelmResourcesManager(manager helm_resources_manager.HelmResourcesManager) WithMetricStorage(storage *metric_storage.MetricStorage) WithHookMetricStorage(storage *metric_storage.MetricStorage) GetGlobalHooksInOrder(bindingType BindingType) []string GetGlobalHooksNames() []string GetGlobalHook(name string) *GlobalHook GetModuleNames() []string GetEnabledModuleNames() []string IsModuleEnabled(moduleName string) bool GetModule(name string) *Module GetModuleHookNames(moduleName string) []string GetModuleHook(name string) *ModuleHook GetModuleHooksInOrder(moduleName string, bindingType BindingType) []string GlobalStaticAndConfigValues() utils.Values GlobalStaticAndNewValues(newValues utils.Values) utils.Values GlobalConfigValues() utils.Values GlobalValues() (utils.Values, error) GlobalValuesPatches() []utils.ValuesPatch UpdateGlobalConfigValues(configValues utils.Values) UpdateGlobalDynamicValuesPatches(valuesPatch utils.ValuesPatch) ModuleConfigValues(moduleName string) utils.Values ModuleDynamicValuesPatches(moduleName string) []utils.ValuesPatch UpdateModuleConfigValues(moduleName string, configValues utils.Values) UpdateModuleDynamicValuesPatches(moduleName string, valuesPatch utils.ValuesPatch) ApplyModuleDynamicValuesPatches(moduleName string, values utils.Values) (utils.Values, error) GetValuesValidator() *validation.ValuesValidator GetKubeConfigValid() bool SetKubeConfigValid(valid bool) // Methods to change module manager's state. RefreshStateFromHelmReleases(logLabels map[string]string) (*ModulesState, error) HandleNewKubeConfig(kubeConfig *kube_config_manager.KubeConfig) (*ModulesState, error) RefreshEnabledState(logLabels map[string]string) (*ModulesState, error) // Actions for tasks. DeleteModule(moduleName string, logLabels map[string]string) error RunModule(moduleName string, onStartup bool, logLabels map[string]string, afterStartupCb func() error) (bool, error) RunGlobalHook(hookName string, binding BindingType, bindingContext []BindingContext, logLabels map[string]string) (beforeChecksum string, afterChecksum string, err error) RunModuleHook(hookName string, binding BindingType, bindingContext []BindingContext, logLabels map[string]string) (beforeChecksum string, afterChecksum string, err error) RegisterModuleHooks(module *Module, logLabels map[string]string) error HandleKubeEvent(kubeEvent KubeEvent, createGlobalTaskFn func(*GlobalHook, controller.BindingExecutionInfo), createModuleTaskFn func(*Module, *ModuleHook, controller.BindingExecutionInfo)) HandleGlobalEnableKubernetesBindings(hookName string, createTaskFn func(*GlobalHook, controller.BindingExecutionInfo)) error HandleModuleEnableKubernetesBindings(hookName string, createTaskFn func(*ModuleHook, controller.BindingExecutionInfo)) error EnableModuleScheduleBindings(moduleName string) DisableModuleHooks(moduleName string) HandleScheduleEvent(crontab string, createGlobalTaskFn func(*GlobalHook, controller.BindingExecutionInfo), createModuleTaskFn func(*Module, *ModuleHook, controller.BindingExecutionInfo)) error DynamicEnabledChecksum() string ApplyEnabledPatch(enabledPatch utils.ValuesPatch) error GlobalSynchronizationNeeded() bool GlobalSynchronizationState() *SynchronizationState }
type ModuleRunPhase ¶ added in v1.0.5
type ModuleRunPhase string
const ( // Startup - module is just enabled. Startup ModuleRunPhase = "Startup" // OnStartupDone - onStartup hooks are done. OnStartupDone ModuleRunPhase = "OnStartupDone" // QueueSynchronizationTasks - should queue Synchronization tasks. QueueSynchronizationTasks ModuleRunPhase = "QueueSynchronizationTasks" // WaitForSynchronization - some Synchronization tasks are in queues, should wait for them to finish. WaitForSynchronization ModuleRunPhase = "WaitForSynchronization" // EnableScheduleBindings - enable schedule binding after Synchronization. EnableScheduleBindings ModuleRunPhase = "EnableScheduleBindings" // CanRunHelm - module is ready to run its Helm chart. CanRunHelm ModuleRunPhase = "CanRunHelm" )
type ModuleState ¶
type ModuleState struct { Enabled bool Phase ModuleRunPhase LastModuleErr error // contains filtered or unexported fields }
func NewModuleState ¶ added in v1.0.5
func NewModuleState() *ModuleState
func (*ModuleState) GetLastHookErr ¶ added in v1.1.0
func (s *ModuleState) GetLastHookErr() error
GetLastHookErr returns hook error.
func (*ModuleState) SetLastHookErr ¶ added in v1.1.0
func (s *ModuleState) SetLastHookErr(hookName string, err error)
SetLastHookErr saves error from hook.
func (*ModuleState) Synchronization ¶ added in v1.0.5
func (s *ModuleState) Synchronization() *SynchronizationState
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.
type SynchronizationState ¶ added in v1.0.5
type SynchronizationState struct {
// contains filtered or unexported fields
}
SynchronizationState stores state to track synchronization tasks for kubernetes bindings either for all global hooks or for module's hooks.
func NewSynchronizationState ¶ added in v1.0.5
func NewSynchronizationState() *SynchronizationState
func (*SynchronizationState) DebugDumpState ¶ added in v1.0.5
func (s *SynchronizationState) DebugDumpState(logEntry *log.Entry)
func (*SynchronizationState) DoneForBinding ¶ added in v1.0.5
func (s *SynchronizationState) DoneForBinding(id string)
func (*SynchronizationState) HasQueued ¶ added in v1.0.5
func (s *SynchronizationState) HasQueued() bool
func (*SynchronizationState) IsComplete ¶ added in v1.0.5
func (s *SynchronizationState) IsComplete() bool
IsComplete returns true if all states are in done status.
func (*SynchronizationState) QueuedForBinding ¶ added in v1.0.5
func (s *SynchronizationState) QueuedForBinding(metadata task.HookMetadata)