From 387b5a826438377e71aa83b6dcd8cc7b8d7cdc04 Mon Sep 17 00:00:00 2001 From: Alberto Sartori Date: Thu, 26 Jun 2025 18:28:36 +0200 Subject: [PATCH 1/2] feat: add konnect-control-plane-id flag Introduce the --konnect-control-plane-id flag, which is mutually exclusive with the --konnect-control-plane-name flag. While names are more user-friendly, IDs are better suited for automation scripts due to their simplicity (no spaces, special characters, or sensitive names). This flag is intended for internal use and is therefore hidden. --- cmd/common_konnect.go | 16 +++++++++++++--- cmd/root.go | 13 +++++++++++-- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/cmd/common_konnect.go b/cmd/common_konnect.go index 0f79e217c..6c33750ef 100644 --- a/cmd/common_konnect.go +++ b/cmd/common_konnect.go @@ -84,9 +84,14 @@ func GetKongClientForKonnectMode( if err != nil { return nil, fmt.Errorf("authenticating with Konnect: %w", err) } - cpID, err := fetchKonnectControlPlaneID(ctx, konnectClient, konnectConfig.ControlPlaneName) - if err != nil { - return nil, err + var cpID string + if konnectControlPlaneID != "" { + cpID = konnectControlPlaneID + } else { + cpID, err = fetchKonnectControlPlaneID(ctx, konnectClient, konnectConfig.ControlPlaneName) + if err != nil { + return nil, err + } } // set the kong control plane ID in the client @@ -140,6 +145,10 @@ func dumpKonnectV2(ctx context.Context) error { konnectControlPlane = defaultControlPlaneName } dumpConfig.KonnectControlPlane = konnectControlPlane + + if konnectControlPlaneID != "" { + dumpConfig.KonnectControlPlaneID = konnectControlPlaneID + } konnectConfig.TLSConfig = rootConfig.TLSConfig client, err := GetKongClientForKonnectMode(ctx, &konnectConfig) if err != nil { @@ -159,6 +168,7 @@ func dumpKonnectV2(ctx context.Context) error { FileFormat: file.Format(strings.ToUpper(dumpCmdStateFormat)), WithID: dumpWithID, ControlPlaneName: konnectControlPlane, + ControlPlaneID: konnectControlPlaneID, KongVersion: fetchKonnectKongVersion(), }) } diff --git a/cmd/root.go b/cmd/root.go index 9b33fe483..b5e1eb714 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -35,8 +35,9 @@ var ( disableAnalytics bool konnectConnectionDesired bool - konnectRuntimeGroup string - konnectControlPlane string + konnectRuntimeGroup string + konnectControlPlane string + konnectControlPlaneID string ) // NewRootCmd represents the base command when called without any subcommands @@ -222,7 +223,14 @@ It can be used to export, import, or sync entities to Kong.`, viper.BindPFlag("konnect-control-plane-name", rootCmd.PersistentFlags().Lookup("konnect-control-plane-name")) + rootCmd.PersistentFlags().String("konnect-control-plane-id", "", + "Konnect Control Plane ID.") + viper.BindPFlag("konnect-control-plane-id", + rootCmd.PersistentFlags().Lookup("konnect-control-plane-id")) + rootCmd.PersistentFlags().MarkHidden("konnect-control-plane-id") + rootCmd.MarkFlagsMutuallyExclusive("konnect-runtime-group-name", "konnect-control-plane-name") + rootCmd.MarkFlagsMutuallyExclusive("konnect-control-plane-id", "konnect-control-plane-name") rootCmd.AddCommand(newVersionCmd()) rootCmd.AddCommand(newCompletionCmd()) @@ -441,6 +449,7 @@ func initKonnectConfig() error { konnectConfig.Headers = extendHeaders(viper.GetStringSlice("headers")) konnectControlPlane = viper.GetString("konnect-control-plane-name") konnectRuntimeGroup = viper.GetString("konnect-runtime-group-name") + konnectControlPlaneID = viper.GetString("konnect-control-plane-id") return nil } From 657408e083c3c4e0db21e965aeb3f47d5617743e Mon Sep 17 00:00:00 2001 From: Alberto Sartori Date: Fri, 27 Jun 2025 16:27:31 +0200 Subject: [PATCH 2/2] chore: document default value of konnect-control-plane-name flag --- cmd/root.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/root.go b/cmd/root.go index b5e1eb714..c2249ad74 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -218,7 +218,7 @@ It can be used to export, import, or sync entities to Kong.`, viper.BindPFlag("konnect-runtime-group-name", rootCmd.PersistentFlags().Lookup("konnect-runtime-group-name")) - rootCmd.PersistentFlags().String("konnect-control-plane-name", "", + rootCmd.PersistentFlags().String("konnect-control-plane-name", defaultControlPlaneName, "Konnect Control Plane name.") viper.BindPFlag("konnect-control-plane-name", rootCmd.PersistentFlags().Lookup("konnect-control-plane-name"))