From 5088eb3267218dd20961d9305a67537d9ef7e8cf Mon Sep 17 00:00:00 2001 From: Yi Tao Date: Tue, 9 Jan 2024 18:30:16 +0800 Subject: [PATCH] add workspace param in fetch last good config --- internal/dataplane/configfetcher/config_fetcher.go | 6 ++++-- internal/dataplane/configfetcher/config_fetcher_test.go | 2 +- internal/manager/run.go | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/internal/dataplane/configfetcher/config_fetcher.go b/internal/dataplane/configfetcher/config_fetcher.go index ccc1011408..5700204e4e 100644 --- a/internal/dataplane/configfetcher/config_fetcher.go +++ b/internal/dataplane/configfetcher/config_fetcher.go @@ -34,9 +34,11 @@ type DefaultKongLastGoodConfigFetcher struct { // - Services, Routes, and Consumers - based on their names. It ensures that IDs remain // stable across restarts of the controller. fillIDs bool + // workspace is the workspace name used in generating deterministic IDs. Only used when fillIDs = true. + workspace string } -func NewDefaultKongLastGoodConfigFetcher(fillIDs bool) *DefaultKongLastGoodConfigFetcher { +func NewDefaultKongLastGoodConfigFetcher(fillIDs bool, workspace string) *DefaultKongLastGoodConfigFetcher { return &DefaultKongLastGoodConfigFetcher{ config: dump.Config{}, fillIDs: fillIDs, @@ -94,7 +96,7 @@ func (cf *DefaultKongLastGoodConfigFetcher) TryFetchingValidConfigFromGateways( } if goodKongState != nil { if cf.fillIDs { - goodKongState.FillIDs(logger, "") + goodKongState.FillIDs(logger, cf.workspace) } cf.lastValidState = goodKongState logger.V(util.DebugLevel).Info("Last good configuration fetched from Kong node", "url", clientUsed.BaseRootURL()) diff --git a/internal/dataplane/configfetcher/config_fetcher_test.go b/internal/dataplane/configfetcher/config_fetcher_test.go index bc5616616b..d85b1229f6 100644 --- a/internal/dataplane/configfetcher/config_fetcher_test.go +++ b/internal/dataplane/configfetcher/config_fetcher_test.go @@ -76,7 +76,7 @@ func TestTryFetchingValidConfigFromGateways(t *testing.T) { for _, tc := range testCases { tc := tc t.Run(tc.name, func(t *testing.T) { - fetcher := NewDefaultKongLastGoodConfigFetcher(false) + fetcher := NewDefaultKongLastGoodConfigFetcher(false, "") state, ok := fetcher.LastValidConfig() require.False(t, ok) require.Nil(t, state) diff --git a/internal/manager/run.go b/internal/manager/run.go index 3ce0eaf3cd..0a4ac2863b 100644 --- a/internal/manager/run.go +++ b/internal/manager/run.go @@ -195,7 +195,7 @@ func Run( updateStrategyResolver := sendconfig.NewDefaultUpdateStrategyResolver(kongConfig, logger) configurationChangeDetector := sendconfig.NewDefaultConfigurationChangeDetector(logger) - kongConfigFetcher := configfetcher.NewDefaultKongLastGoodConfigFetcher(translatorFeatureFlags.FillIDs) + kongConfigFetcher := configfetcher.NewDefaultKongLastGoodConfigFetcher(translatorFeatureFlags.FillIDs, c.KongWorkspace) dataplaneClient, err := dataplane.NewKongClient( logger, time.Duration(c.ProxyTimeoutSeconds*float32(time.Second)),