From e3f38c62c843bd56fa95b8e961357712dbde66a4 Mon Sep 17 00:00:00 2001 From: Aditi Ghag Date: Thu, 1 Apr 2021 18:49:27 -0700 Subject: [PATCH 1/2] config: Fix multiple args formatting --- internal/cli/cmd/config.go | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/internal/cli/cmd/config.go b/internal/cli/cmd/config.go index 954d489165..8659a31bb0 100644 --- a/internal/cli/cmd/config.go +++ b/internal/cli/cmd/config.go @@ -84,7 +84,13 @@ func newCmdConfigSet() *cobra.Command { }, } - cmd.Flags().StringVarP(¶ms.Namespace, "namespace", "n", "kube-system", "Namespace Cilium is running in") + cmd.Flags().StringVarP( + ¶ms.Namespace, + "namespace", + "n", + "kube-system", + "Namespace Cilium is running in", + ) return cmd } @@ -108,7 +114,13 @@ func newCmdConfigDelete() *cobra.Command { }, } - cmd.Flags().StringVarP(¶ms.Namespace, "namespace", "n", "kube-system", "Namespace Cilium is running in") + cmd.Flags().StringVarP( + ¶ms.Namespace, + "namespace", + "n", + "kube-system", + "Namespace Cilium is running in", + ) return cmd } From 7ef13082f2c9a7b30961ba9331ca4b5a40a55c92 Mon Sep 17 00:00:00 2001 From: Aditi Ghag Date: Thu, 1 Apr 2021 18:51:37 -0700 Subject: [PATCH 2/2] config: Add flag to restart Cilium pods for `set` After config map changes are made, Cilium pods need to be restarted for the changes to take effect. Currently, this is a manual step. --- config/config.go | 1 + internal/cli/cmd/config.go | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/config/config.go b/config/config.go index 0981ac28ef..444c1a69f8 100644 --- a/config/config.go +++ b/config/config.go @@ -41,6 +41,7 @@ type K8sConfig struct { type Parameters struct { Namespace string + Restart bool Writer io.Writer } diff --git a/internal/cli/cmd/config.go b/internal/cli/cmd/config.go index 8659a31bb0..6572aa0a14 100644 --- a/internal/cli/cmd/config.go +++ b/internal/cli/cmd/config.go @@ -20,8 +20,10 @@ import ( "os" "github.com/cilium/cilium-cli/config" + "github.com/cilium/cilium-cli/defaults" "github.com/spf13/cobra" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) func newCmdConfig() *cobra.Command { @@ -80,6 +82,15 @@ func newCmdConfigSet() *cobra.Command { if err := check.Set(context.Background(), args[0], args[1]); err != nil { fatalf("Unable to set config: %s", err) } + if !params.Restart { + fmt.Println("⚠️ Restart Cilium pods for configmap changes to take effect") + return nil + } + if err := k8sClient.DeletePodCollection(context.Background(), params.Namespace, metav1.DeleteOptions{}, metav1.ListOptions{LabelSelector: defaults.CiliumPodSelector}); err != nil { + fmt.Printf("⚠️ Unable to restart Cilium pods: %s\n", err) + } else { + fmt.Println("♻️ Restarted Cilium pods") + } return nil }, } @@ -91,7 +102,13 @@ func newCmdConfigSet() *cobra.Command { "kube-system", "Namespace Cilium is running in", ) - + cmd.Flags().BoolVarP( + ¶ms.Restart, + "restart", + "r", + true, + "Restart Cilium pods", + ) return cmd }