From fd89c09c7db817aead21a27af6b445c81291ba9f Mon Sep 17 00:00:00 2001 From: Mikhail Scherba Date: Sun, 29 Dec 2024 23:02:18 +0300 Subject: [PATCH] refresh states of disabled modules on first converge Signed-off-by: Mikhail Scherba --- pkg/addon-operator/operator.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pkg/addon-operator/operator.go b/pkg/addon-operator/operator.go index 93b8ff24..76c32e2b 100644 --- a/pkg/addon-operator/operator.go +++ b/pkg/addon-operator/operator.go @@ -821,6 +821,20 @@ func (op *AddonOperator) HandleConvergeModules(t sh_task.Task, logLabels map[str // Set ModulesToEnable list to properly run onStartup hooks for first converge. if !op.IsStartupConvergeDone() { state.ModulesToEnable = state.AllEnabledModules + // send ModuleEvents for each disabled module on first converge to update dsabled modules' states (for the sake of disabled by ) + enabledModules := make(map[string]struct{}, len(state.AllEnabledModules)) + for _, enabledModule := range state.AllEnabledModules { + enabledModules[enabledModule] = struct{}{} + } + + for _, moduleName := range op.ModuleManager.GetModuleNames() { + if _, enabled := enabledModules[moduleName]; !enabled { + op.ModuleManager.SendModuleEvent(events.ModuleEvent{ + ModuleName: moduleName, + EventType: events.ModuleDisabled, + }) + } + } } tasks := op.CreateConvergeModulesTasks(state, t.GetLogLabels(), string(taskEvent))