From dc5e05c0ca84a136a9617e566575f3ced1a6b126 Mon Sep 17 00:00:00 2001 From: Stepan Paksashvili Date: Fri, 7 Nov 2025 15:51:21 +0300 Subject: [PATCH 1/2] [chore] converge callbacks Signed-off-by: Stepan Paksashvili --- pkg/addon-operator/converge/converge.go | 20 ++++++++++++++++++++ pkg/addon-operator/operator.go | 14 +++++++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/pkg/addon-operator/converge/converge.go b/pkg/addon-operator/converge/converge.go index e7754e8be..12cf51f76 100644 --- a/pkg/addon-operator/converge/converge.go +++ b/pkg/addon-operator/converge/converge.go @@ -16,6 +16,9 @@ type ConvergeState struct { Activation string CRDsEnsured bool + onConvergeStart func() + onConvergeFinish func() + phaseMu sync.RWMutex phase ConvergePhase firstRunPhase FirstConvergePhase @@ -29,6 +32,7 @@ const ( WaitBeforeAll ConvergePhase = "WaitBeforeAll" WaitDeleteAndRunModules ConvergePhase = "WaitDeleteAndRunModules" WaitAfterAll ConvergePhase = "WaitAfterAll" + Finished ConvergePhase = "Finished" ) type FirstConvergePhase int @@ -47,6 +51,14 @@ func NewConvergeState() *ConvergeState { } } +func (cs *ConvergeState) SetOnConvergeStart(callback func()) { + cs.onConvergeStart = callback +} + +func (cs *ConvergeState) SetOnConvergeFinish(callback func()) { + cs.onConvergeFinish = callback +} + func (cs *ConvergeState) SetFirstRunPhase(ph FirstConvergePhase) { cs.phaseMu.Lock() defer cs.phaseMu.Unlock() @@ -66,6 +78,14 @@ func (cs *ConvergeState) SetPhase(ph ConvergePhase) { cs.phaseMu.Lock() defer cs.phaseMu.Unlock() cs.phase = ph + + if ph == RunBeforeAll && cs.onConvergeStart != nil { + cs.onConvergeStart() + } + + if ph == StandBy && cs.onConvergeFinish != nil { + cs.onConvergeFinish() + } } func (cs *ConvergeState) GetPhase() ConvergePhase { diff --git a/pkg/addon-operator/operator.go b/pkg/addon-operator/operator.go index 372a14524..3c7880a19 100644 --- a/pkg/addon-operator/operator.go +++ b/pkg/addon-operator/operator.go @@ -105,6 +105,18 @@ func WithLogger(logger *log.Logger) Option { } } +func WithOnConvergeStart(callback func()) Option { + return func(operator *AddonOperator) { + operator.ConvergeState.SetOnConvergeStart(callback) + } +} + +func WithOnConvergeFinish(callback func()) Option { + return func(operator *AddonOperator) { + operator.ConvergeState.SetOnConvergeFinish(callback) + } +} + func NewAddonOperator(ctx context.Context, opts ...Option) *AddonOperator { cctx, cancel := context.WithCancel(ctx) @@ -657,7 +669,7 @@ func (op *AddonOperator) CreateAndStartQueuesForModuleHooks(moduleName string) { // log.Debugf("Queue '%s' started for module 'kubernetes' hook %s", hookBinding.Queue, hookName) // } // } - //} + // } } func (op *AddonOperator) CreateReloadModulesTasks(moduleNames []string, logLabels map[string]string, eventDescription string) []sh_task.Task { From b3f0c274181aab77e428e4470f9560bba3bcc72a Mon Sep 17 00:00:00 2001 From: Stepan Paksashvili Date: Fri, 7 Nov 2025 15:52:48 +0300 Subject: [PATCH 2/2] [chore] converge callbacks Signed-off-by: Stepan Paksashvili --- pkg/addon-operator/converge/converge.go | 1 - 1 file changed, 1 deletion(-) diff --git a/pkg/addon-operator/converge/converge.go b/pkg/addon-operator/converge/converge.go index 12cf51f76..d6e4a27b9 100644 --- a/pkg/addon-operator/converge/converge.go +++ b/pkg/addon-operator/converge/converge.go @@ -32,7 +32,6 @@ const ( WaitBeforeAll ConvergePhase = "WaitBeforeAll" WaitDeleteAndRunModules ConvergePhase = "WaitDeleteAndRunModules" WaitAfterAll ConvergePhase = "WaitAfterAll" - Finished ConvergePhase = "Finished" ) type FirstConvergePhase int