From 77b225abfec7404aeadc03b6a85a73d5b8e50802 Mon Sep 17 00:00:00 2001 From: Gabriele Gerbino Date: Wed, 27 Sep 2023 11:15:30 +0200 Subject: [PATCH 1/2] fix: deprecated konnect flag cannot manage non-default CPs --- cmd/common.go | 57 +++++--- cmd/common_konnect.go | 31 +++-- tests/integration/dump_test.go | 47 +++++++ tests/integration/sync_test.go | 130 ++++++++++++++---- tests/integration/test_utils.go | 24 +++- .../sync/026-konnect-rename/default.yaml | 10 ++ ...onnect_cp.yaml => konnect_default_cp.yaml} | 4 +- ...onnect_rg.yaml => konnect_default_rg.yaml} | 4 +- .../026-konnect-rename/konnect_test_cp.yaml | 14 ++ .../026-konnect-rename/konnect_test_rg.yaml | 14 ++ .../sync/026-konnect-rename/test.yaml | 10 ++ utils/types.go | 2 + 12 files changed, 280 insertions(+), 67 deletions(-) create mode 100644 tests/integration/testdata/sync/026-konnect-rename/default.yaml rename tests/integration/testdata/sync/026-konnect-rename/{konnect_cp.yaml => konnect_default_cp.yaml} (82%) rename tests/integration/testdata/sync/026-konnect-rename/{konnect_rg.yaml => konnect_default_rg.yaml} (82%) create mode 100644 tests/integration/testdata/sync/026-konnect-rename/konnect_test_cp.yaml create mode 100644 tests/integration/testdata/sync/026-konnect-rename/konnect_test_rg.yaml create mode 100644 tests/integration/testdata/sync/026-konnect-rename/test.yaml diff --git a/cmd/common.go b/cmd/common.go index 645f6a600..028f33835 100644 --- a/cmd/common.go +++ b/cmd/common.go @@ -91,6 +91,36 @@ func getWorkspaceName(workspaceFlag string, targetContent *file.Content, return targetContent.Workspace } +func evaluateTargetRuntimeGroupOrControlPlaneName(targetContent *file.Content) error { + targetControlPlane := targetContent.Konnect.ControlPlaneName + targetRuntimeGroup := targetContent.Konnect.RuntimeGroupName + if targetControlPlane != "" && targetRuntimeGroup != "" { + return errors.New(`cannot set both runtime_group_name and control_plane_name. ` + + `Please use only control_plane_name`) + } + if konnectControlPlane != "" && + targetControlPlane != konnectControlPlane { + return fmt.Errorf("warning: control plane '%v' specified via "+ + "--konnect-control-plane-name flag is "+ + "different from '%v' found in state file(s)", + konnectControlPlane, targetControlPlane) + } + if konnectRuntimeGroup != "" && + targetRuntimeGroup != konnectRuntimeGroup { + return fmt.Errorf("warning: runtime group '%v' specified via "+ + "--konnect-runtime-group-name flag is "+ + "different from '%v' found in state file(s)", + konnectRuntimeGroup, targetContent.Konnect.RuntimeGroupName) + } + if targetControlPlane != "" { + konnectControlPlane = targetControlPlane + } + if targetRuntimeGroup != "" { + konnectControlPlane = targetRuntimeGroup + } + return nil +} + func syncMain(ctx context.Context, filenames []string, dry bool, parallelism, delay int, workspace string, enableJSONOutput bool, ) error { @@ -134,30 +164,13 @@ func syncMain(ctx context.Context, filenames []string, dry bool, parallelism, return fmt.Errorf("--workspace flag is not supported when running against Konnect") } if targetContent.Konnect != nil { - targetControlPlane := targetContent.Konnect.ControlPlaneName - targetRuntimeGroup := targetContent.Konnect.RuntimeGroupName - if targetControlPlane != "" && targetRuntimeGroup != "" { - return errors.New(`cannot set both runtime_group_name and control_plane_name. ` + - `Please use only control_plane_name`) - } - if konnectControlPlane != "" && - targetControlPlane != konnectControlPlane { - return fmt.Errorf("warning: control plane '%v' specified via "+ - "--konnect-control-plane-name flag is "+ - "different from '%v' found in state file(s)", - konnectControlPlane, targetControlPlane) - } - if konnectRuntimeGroup != "" && - targetRuntimeGroup != konnectRuntimeGroup { - return fmt.Errorf("warning: runtime group '%v' specified via "+ - "--konnect-runtime-group-name flag is "+ - "different from '%v' found in state file(s)", - konnectRuntimeGroup, targetContent.Konnect.RuntimeGroupName) - } - if konnectRuntimeGroup != "" { - konnectControlPlane = konnectRuntimeGroup + if err := evaluateTargetRuntimeGroupOrControlPlaneName(targetContent); err != nil { + return err } } + if konnectRuntimeGroup != "" { + konnectControlPlane = konnectRuntimeGroup + } kongClient, err = GetKongClientForKonnectMode(ctx, &konnectConfig) if err != nil { return err diff --git a/cmd/common_konnect.go b/cmd/common_konnect.go index e754a81c1..e25986ca6 100644 --- a/cmd/common_konnect.go +++ b/cmd/common_konnect.go @@ -58,7 +58,7 @@ func GetKongClientForKonnectMode( if err != nil { return nil, fmt.Errorf("authenticating with Konnect: %w", err) } - cpID, err := fetchKonnectControlPlaneID(ctx, konnectClient) + cpID, err := fetchKonnectControlPlaneID(ctx, konnectClient, konnectConfig.ControlPlaneName) if err != nil { return nil, err } @@ -80,13 +80,17 @@ func GetKongClientForKonnectMode( } func resetKonnectV2(ctx context.Context) error { + if konnectRuntimeGroup != "" { + konnectControlPlane = konnectRuntimeGroup + } + if konnectControlPlane == "" { + konnectControlPlane = defaultControlPlaneName + } + dumpConfig.KonnectControlPlane = konnectControlPlane client, err := GetKongClientForKonnectMode(ctx, &konnectConfig) if err != nil { return err } - if dumpConfig.KonnectControlPlane == "" { - dumpConfig.KonnectControlPlane = defaultControlPlaneName - } currentState, err := fetchCurrentState(ctx, client, dumpConfig) if err != nil { return err @@ -103,13 +107,17 @@ func resetKonnectV2(ctx context.Context) error { } func dumpKonnectV2(ctx context.Context) error { + if konnectRuntimeGroup != "" { + konnectControlPlane = konnectRuntimeGroup + } + if konnectControlPlane == "" { + konnectControlPlane = defaultControlPlaneName + } + dumpConfig.KonnectControlPlane = konnectControlPlane client, err := GetKongClientForKonnectMode(ctx, &konnectConfig) if err != nil { return err } - if dumpConfig.KonnectControlPlane == "" { - dumpConfig.KonnectControlPlane = defaultControlPlaneName - } kongVersion, err := fetchKonnectKongVersion(ctx, client) if err != nil { return fmt.Errorf("reading Konnect Kong version: %w", err) @@ -238,8 +246,10 @@ func fetchKongControlPlaneID(ctx context.Context, return singleOutKongCP(controlPlanes) } -func fetchKonnectControlPlaneID(ctx context.Context, +func fetchKonnectControlPlaneID( + ctx context.Context, client *konnect.Client, + konnectControlPlaneName string, ) (string, error) { var runtimeGroups []*konnect.RuntimeGroup var listOpt *konnect.ListOpt @@ -254,6 +264,9 @@ func fetchKonnectControlPlaneID(ctx context.Context, } listOpt = next } + if konnectControlPlaneName != "" { + konnectControlPlane = konnectControlPlaneName + } if konnectControlPlane == "" { konnectControlPlane = defaultControlPlaneName } @@ -262,7 +275,7 @@ func fetchKonnectControlPlaneID(ctx context.Context, return *rg.ID, nil } } - return "", fmt.Errorf("control planes not found: %s", konnectControlPlane) + return "", fmt.Errorf("control plane not found: %s", konnectControlPlane) } func singleOutKongCP(controlPlanes []konnect.ControlPlane) (string, error) { diff --git a/tests/integration/dump_test.go b/tests/integration/dump_test.go index bda8df6a0..5aa89ba1a 100644 --- a/tests/integration/dump_test.go +++ b/tests/integration/dump_test.go @@ -204,3 +204,50 @@ func Test_Dump_SkipConsumers_Konnect(t *testing.T) { }) } } + +func Test_Dump_KonnectRename(t *testing.T) { + tests := []struct { + name string + stateFile string + expectedFile string + flags []string + }{ + { + name: "dump with konnect-control-plane-name", + stateFile: "testdata/sync/026-konnect-rename/konnect_test_cp.yaml", + expectedFile: "testdata/sync/026-konnect-rename/konnect_test_cp.yaml", + flags: []string{"--konnect-control-plane-name", "test"}, + }, + { + name: "dump with konnect-runtime-group-name", + stateFile: "testdata/sync/026-konnect-rename/konnect_test_rg.yaml", + expectedFile: "testdata/sync/026-konnect-rename/konnect_test_cp.yaml", + flags: []string{"--konnect-runtime-group-name", "test"}, + }, + } + for _, tc := range tests { + t.Run(tc.name, func(t *testing.T) { + t.Cleanup(func() { + reset(t, tc.flags...) + }) + runWhenKonnect(t) + setup(t) + + assert.NoError(t, sync(tc.stateFile)) + + var ( + output string + err error + ) + flags := []string{"-o", "-", "--with-id"} + flags = append(flags, tc.flags...) + output, err = dump(flags...) + + assert.NoError(t, err) + + expected, err := readFile(tc.expectedFile) + assert.NoError(t, err) + assert.Equal(t, expected, output) + }) + } +} diff --git a/tests/integration/sync_test.go b/tests/integration/sync_test.go index e0d8c42aa..1c304ef38 100644 --- a/tests/integration/sync_test.go +++ b/tests/integration/sync_test.go @@ -55,6 +55,38 @@ var ( }, } + defaultCPService = []*kong.Service{ + { + ID: kong.String("58076db2-28b6-423b-ba39-a797193017f7"), + Name: kong.String("default"), + ConnectTimeout: kong.Int(60000), + Host: kong.String("mockbin-default.org"), + Port: kong.Int(80), + Protocol: kong.String("http"), + ReadTimeout: kong.Int(60000), + Retries: kong.Int(5), + WriteTimeout: kong.Int(60000), + Enabled: kong.Bool(true), + Tags: nil, + }, + } + + testCPService = []*kong.Service{ + { + ID: kong.String("58076db2-28b6-423b-ba39-a797193017f7"), + Name: kong.String("test"), + ConnectTimeout: kong.Int(60000), + Host: kong.String("mockbin-test.org"), + Port: kong.Int(80), + Protocol: kong.String("http"), + ReadTimeout: kong.Int(60000), + Retries: kong.Int(5), + WriteTimeout: kong.Int(60000), + Enabled: kong.Bool(true), + Tags: nil, + }, + } + // missing RequestBuffering, ResponseBuffering, Service, PathHandling route1_143 = []*kong.Route{ { @@ -4575,44 +4607,76 @@ func Test_Sync_ConsumerGroupsScopedPluginsKonnect(t *testing.T) { // - konnect func Test_Sync_KonnectRename(t *testing.T) { // setup stage - client, err := getTestClient() - if err != nil { - t.Fatalf(err.Error()) - } tests := []struct { - name string - kongFile string - flags []string - expectedState utils.KongRawState + name string + controlPlaneName string + runtimeGroupName string + kongFile string + flags []string + expectedState utils.KongRawState }{ { - name: "konnect-runtime-group-name flag", - kongFile: "testdata/sync/001-create-a-service/kong3x.yaml", + name: "konnect-runtime-group-name flag - default", + kongFile: "testdata/sync/026-konnect-rename/default.yaml", flags: []string{"--konnect-runtime-group-name", "default"}, expectedState: utils.KongRawState{ - Services: svc1_207, + Services: defaultCPService, }, }, { - name: "konnect-control-plane-name flag", - kongFile: "testdata/sync/001-create-a-service/kong3x.yaml", + name: "konnect-control-plane-name flag - default", + kongFile: "testdata/sync/026-konnect-rename/default.yaml", flags: []string{"--konnect-control-plane-name", "default"}, expectedState: utils.KongRawState{ - Services: svc1_207, + Services: defaultCPService, }, }, { - name: "konnect.runtime_group_name", - kongFile: "testdata/sync/026-konnect-rename/konnect_rg.yaml", + name: "konnect-runtime-group-name flag - test", + runtimeGroupName: "test", + kongFile: "testdata/sync/026-konnect-rename/test.yaml", + flags: []string{"--konnect-runtime-group-name", "test"}, expectedState: utils.KongRawState{ - Services: svc1_207, + Services: testCPService, }, }, { - name: "konnect.control_plane_name", - kongFile: "testdata/sync/026-konnect-rename/konnect_cp.yaml", + name: "konnect-control-plane-name flag - test", + controlPlaneName: "test", + kongFile: "testdata/sync/026-konnect-rename/test.yaml", + flags: []string{"--konnect-control-plane-name", "test"}, expectedState: utils.KongRawState{ - Services: svc1_207, + Services: testCPService, + }, + }, + { + name: "konnect.runtime_group_name - default", + kongFile: "testdata/sync/026-konnect-rename/konnect_default_rg.yaml", + expectedState: utils.KongRawState{ + Services: defaultCPService, + }, + }, + { + name: "konnect.control_plane_name - default", + kongFile: "testdata/sync/026-konnect-rename/konnect_default_cp.yaml", + expectedState: utils.KongRawState{ + Services: defaultCPService, + }, + }, + { + name: "konnect.runtime_group_name - test", + runtimeGroupName: "test", + kongFile: "testdata/sync/026-konnect-rename/konnect_test_rg.yaml", + expectedState: utils.KongRawState{ + Services: testCPService, + }, + }, + { + name: "konnect.control_plane_name - test", + controlPlaneName: "test", + kongFile: "testdata/sync/026-konnect-rename/konnect_test_cp.yaml", + expectedState: utils.KongRawState{ + Services: testCPService, }, }, } @@ -4620,9 +4684,23 @@ func Test_Sync_KonnectRename(t *testing.T) { t.Run(tc.name, func(t *testing.T) { runWhenKonnect(t) setup(t) - + if tc.controlPlaneName != "" { + t.Setenv("DECK_KONNECT_CONTROL_PLANE_NAME", tc.controlPlaneName) + t.Cleanup(func() { + reset(t, "--konnect-control-plane-name", tc.controlPlaneName) + }) + } else if tc.runtimeGroupName != "" { + t.Setenv("DECK_KONNECT_RUNTIME_GROUP_NAME", tc.runtimeGroupName) + t.Cleanup(func() { + reset(t, "--konnect-runtime-group-name", tc.runtimeGroupName) + }) + } + client, err := getTestClient() + if err != nil { + t.Fatalf(err.Error()) + } sync(tc.kongFile, tc.flags...) - testKongState(t, client, false, tc.expectedState, nil) + testKongState(t, client, true, tc.expectedState, nil) }) } } @@ -4636,28 +4714,28 @@ func Test_Sync_KonnectRenameErrors(t *testing.T) { }{ { name: "different runtime group names fail", - kongFile: "testdata/sync/026-konnect-rename/konnect_cp.yaml", + kongFile: "testdata/sync/026-konnect-rename/konnect_default_cp.yaml", flags: []string{"--konnect-runtime-group-name", "rg1"}, expectedError: errors.New(`warning: runtime group 'rg1' specified via --konnect-runtime-group-name ` + `flag is different from '' found in state file(s)`), }, { name: "different runtime group names fail", - kongFile: "testdata/sync/026-konnect-rename/konnect_rg.yaml", + kongFile: "testdata/sync/026-konnect-rename/konnect_default_rg.yaml", flags: []string{"--konnect-runtime-group-name", "rg1"}, expectedError: errors.New(`warning: runtime group 'rg1' specified via --konnect-runtime-group-name ` + `flag is different from 'default' found in state file(s)`), }, { name: "different control plane names fail", - kongFile: "testdata/sync/026-konnect-rename/konnect_cp.yaml", + kongFile: "testdata/sync/026-konnect-rename/konnect_default_cp.yaml", flags: []string{"--konnect-control-plane-name", "cp1"}, expectedError: errors.New(`warning: control plane 'cp1' specified via --konnect-control-plane-name ` + `flag is different from 'default' found in state file(s)`), }, { name: "different control plane names fail", - kongFile: "testdata/sync/026-konnect-rename/konnect_rg.yaml", + kongFile: "testdata/sync/026-konnect-rename/konnect_default_rg.yaml", flags: []string{"--konnect-control-plane-name", "cp1"}, expectedError: errors.New(`warning: control plane 'cp1' specified via --konnect-control-plane-name ` + `flag is different from '' found in state file(s)`), diff --git a/tests/integration/test_utils.go b/tests/integration/test_utils.go index 44e5ae037..754c11d5b 100644 --- a/tests/integration/test_utils.go +++ b/tests/integration/test_utils.go @@ -31,11 +31,16 @@ func getKongAddress() string { func getTestClient() (*kong.Client, error) { ctx := context.Background() + controlPlaneName := os.Getenv("DECK_KONNECT_RUNTIME_GROUP_NAME") + if controlPlaneName == "" { + controlPlaneName = os.Getenv("DECK_KONNECT_CONTROL_PLANE_NAME") + } konnectConfig := utils.KonnectConfig{ - Address: os.Getenv("DECK_KONNECT_ADDR"), - Email: os.Getenv("DECK_KONNECT_EMAIL"), - Password: os.Getenv("DECK_KONNECT_PASSWORD"), - Token: os.Getenv("DECK_KONNECT_TOKEN"), + Address: os.Getenv("DECK_KONNECT_ADDR"), + Email: os.Getenv("DECK_KONNECT_EMAIL"), + Password: os.Getenv("DECK_KONNECT_PASSWORD"), + Token: os.Getenv("DECK_KONNECT_TOKEN"), + ControlPlaneName: controlPlaneName, } if (konnectConfig.Email != "" && konnectConfig.Password != "") || konnectConfig.Token != "" { return cmd.GetKongClientForKonnectMode(ctx, &konnectConfig) @@ -166,8 +171,15 @@ func testKongState(t *testing.T, client *kong.Client, isKonnect bool, dumpConfig.RBACResourcesOnly = true } if isKonnect { - // use default RG for testing - dumpConfig.KonnectControlPlane = "default" + controlPlaneName := os.Getenv("DECK_KONNECT_CONTROL_PLANE_NAME") + if controlPlaneName == "" { + controlPlaneName = os.Getenv("DECK_KONNECT_CONTROL_PLANE_NAME") + } + if controlPlaneName != "" { + dumpConfig.KonnectControlPlane = controlPlaneName + } else { + dumpConfig.KonnectControlPlane = "default" + } } kongState, err := deckDump.Get(ctx, client, dumpConfig) if err != nil { diff --git a/tests/integration/testdata/sync/026-konnect-rename/default.yaml b/tests/integration/testdata/sync/026-konnect-rename/default.yaml new file mode 100644 index 000000000..3ac6842d0 --- /dev/null +++ b/tests/integration/testdata/sync/026-konnect-rename/default.yaml @@ -0,0 +1,10 @@ +_format_version: "3.0" +services: +- connect_timeout: 60000 + id: 58076db2-28b6-423b-ba39-a797193017f7 + host: mockbin-default.org + name: default + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 diff --git a/tests/integration/testdata/sync/026-konnect-rename/konnect_cp.yaml b/tests/integration/testdata/sync/026-konnect-rename/konnect_default_cp.yaml similarity index 82% rename from tests/integration/testdata/sync/026-konnect-rename/konnect_cp.yaml rename to tests/integration/testdata/sync/026-konnect-rename/konnect_default_cp.yaml index 4f9fb55c8..9e8b74243 100644 --- a/tests/integration/testdata/sync/026-konnect-rename/konnect_cp.yaml +++ b/tests/integration/testdata/sync/026-konnect-rename/konnect_default_cp.yaml @@ -4,8 +4,8 @@ _konnect: services: - connect_timeout: 60000 id: 58076db2-28b6-423b-ba39-a797193017f7 - host: mockbin.org - name: svc1 + host: mockbin-default.org + name: default port: 80 protocol: http read_timeout: 60000 diff --git a/tests/integration/testdata/sync/026-konnect-rename/konnect_rg.yaml b/tests/integration/testdata/sync/026-konnect-rename/konnect_default_rg.yaml similarity index 82% rename from tests/integration/testdata/sync/026-konnect-rename/konnect_rg.yaml rename to tests/integration/testdata/sync/026-konnect-rename/konnect_default_rg.yaml index 7e0b79df8..d6a6e8957 100644 --- a/tests/integration/testdata/sync/026-konnect-rename/konnect_rg.yaml +++ b/tests/integration/testdata/sync/026-konnect-rename/konnect_default_rg.yaml @@ -4,8 +4,8 @@ _konnect: services: - connect_timeout: 60000 id: 58076db2-28b6-423b-ba39-a797193017f7 - host: mockbin.org - name: svc1 + host: mockbin-default.org + name: default port: 80 protocol: http read_timeout: 60000 diff --git a/tests/integration/testdata/sync/026-konnect-rename/konnect_test_cp.yaml b/tests/integration/testdata/sync/026-konnect-rename/konnect_test_cp.yaml new file mode 100644 index 000000000..2ce1ad626 --- /dev/null +++ b/tests/integration/testdata/sync/026-konnect-rename/konnect_test_cp.yaml @@ -0,0 +1,14 @@ +_format_version: "3.0" +_konnect: + control_plane_name: test +services: +- connect_timeout: 60000 + enabled: true + host: mockbin-test.org + id: 58076db2-28b6-423b-ba39-a797193017f7 + name: test + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 diff --git a/tests/integration/testdata/sync/026-konnect-rename/konnect_test_rg.yaml b/tests/integration/testdata/sync/026-konnect-rename/konnect_test_rg.yaml new file mode 100644 index 000000000..928a7ce95 --- /dev/null +++ b/tests/integration/testdata/sync/026-konnect-rename/konnect_test_rg.yaml @@ -0,0 +1,14 @@ +_format_version: "3.0" +_konnect: + runtime_group_name: test +services: +- connect_timeout: 60000 + enabled: true + host: mockbin-test.org + id: 58076db2-28b6-423b-ba39-a797193017f7 + name: test + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 + write_timeout: 60000 \ No newline at end of file diff --git a/tests/integration/testdata/sync/026-konnect-rename/test.yaml b/tests/integration/testdata/sync/026-konnect-rename/test.yaml new file mode 100644 index 000000000..87ac25e7e --- /dev/null +++ b/tests/integration/testdata/sync/026-konnect-rename/test.yaml @@ -0,0 +1,10 @@ +_format_version: "3.0" +services: +- connect_timeout: 60000 + id: 58076db2-28b6-423b-ba39-a797193017f7 + host: mockbin-test.org + name: test + port: 80 + protocol: http + read_timeout: 60000 + retries: 5 diff --git a/utils/types.go b/utils/types.go index 8c5c32d70..3d4986e01 100644 --- a/utils/types.go +++ b/utils/types.go @@ -129,6 +129,8 @@ type KonnectConfig struct { Address string Headers []string + + ControlPlaneName string } // ForWorkspace returns a copy of KongClientConfig that produces a KongClient for the workspace specified by argument. From e62fade8035d36fd91f6900590f5286178f4258a Mon Sep 17 00:00:00 2001 From: Gabriele Gerbino Date: Wed, 27 Sep 2023 15:30:20 +0200 Subject: [PATCH 2/2] fix --- cmd/common.go | 22 +++++++++++----------- tests/integration/sync_test.go | 16 ++++++++-------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/cmd/common.go b/cmd/common.go index 028f33835..71b0e5f8f 100644 --- a/cmd/common.go +++ b/cmd/common.go @@ -98,19 +98,19 @@ func evaluateTargetRuntimeGroupOrControlPlaneName(targetContent *file.Content) e return errors.New(`cannot set both runtime_group_name and control_plane_name. ` + `Please use only control_plane_name`) } - if konnectControlPlane != "" && - targetControlPlane != konnectControlPlane { - return fmt.Errorf("warning: control plane '%v' specified via "+ - "--konnect-control-plane-name flag is "+ - "different from '%v' found in state file(s)", - konnectControlPlane, targetControlPlane) + targetFromFile := targetControlPlane + if targetFromFile == "" { + targetFromFile = targetRuntimeGroup } - if konnectRuntimeGroup != "" && - targetRuntimeGroup != konnectRuntimeGroup { - return fmt.Errorf("warning: runtime group '%v' specified via "+ - "--konnect-runtime-group-name flag is "+ + targetFromCLI := konnectControlPlane + if targetFromCLI == "" { + targetFromCLI = konnectRuntimeGroup + } + if targetFromCLI != "" && targetFromFile != targetFromCLI { + return fmt.Errorf("warning: control plane '%v' specified via "+ + "--konnect-[control-plane|runtime-group]-name flag is "+ "different from '%v' found in state file(s)", - konnectRuntimeGroup, targetContent.Konnect.RuntimeGroupName) + targetFromCLI, targetFromFile) } if targetControlPlane != "" { konnectControlPlane = targetControlPlane diff --git a/tests/integration/sync_test.go b/tests/integration/sync_test.go index 1c304ef38..7e74e0227 100644 --- a/tests/integration/sync_test.go +++ b/tests/integration/sync_test.go @@ -4716,29 +4716,29 @@ func Test_Sync_KonnectRenameErrors(t *testing.T) { name: "different runtime group names fail", kongFile: "testdata/sync/026-konnect-rename/konnect_default_cp.yaml", flags: []string{"--konnect-runtime-group-name", "rg1"}, - expectedError: errors.New(`warning: runtime group 'rg1' specified via --konnect-runtime-group-name ` + - `flag is different from '' found in state file(s)`), + expectedError: errors.New(`warning: control plane 'rg1' specified via ` + + `--konnect-[control-plane|runtime-group]-name flag is different from 'default' found in state file(s)`), }, { name: "different runtime group names fail", kongFile: "testdata/sync/026-konnect-rename/konnect_default_rg.yaml", flags: []string{"--konnect-runtime-group-name", "rg1"}, - expectedError: errors.New(`warning: runtime group 'rg1' specified via --konnect-runtime-group-name ` + - `flag is different from 'default' found in state file(s)`), + expectedError: errors.New(`warning: control plane 'rg1' specified via ` + + `--konnect-[control-plane|runtime-group]-name flag is different from 'default' found in state file(s)`), }, { name: "different control plane names fail", kongFile: "testdata/sync/026-konnect-rename/konnect_default_cp.yaml", flags: []string{"--konnect-control-plane-name", "cp1"}, - expectedError: errors.New(`warning: control plane 'cp1' specified via --konnect-control-plane-name ` + - `flag is different from 'default' found in state file(s)`), + expectedError: errors.New(`warning: control plane 'cp1' specified via ` + + `--konnect-[control-plane|runtime-group]-name flag is different from 'default' found in state file(s)`), }, { name: "different control plane names fail", kongFile: "testdata/sync/026-konnect-rename/konnect_default_rg.yaml", flags: []string{"--konnect-control-plane-name", "cp1"}, - expectedError: errors.New(`warning: control plane 'cp1' specified via --konnect-control-plane-name ` + - `flag is different from '' found in state file(s)`), + expectedError: errors.New(`warning: control plane 'cp1' specified via ` + + `--konnect-[control-plane|runtime-group]-name flag is different from 'default' found in state file(s)`), }, } for _, tc := range tests {