From 7685da3e248ea8dc659d24cc5f0283d389ecd280 Mon Sep 17 00:00:00 2001 From: Manuel Buil Date: Sat, 20 Nov 2021 20:12:03 +0100 Subject: [PATCH] Improve flannel logging Signed-off-by: Manuel Buil --- pkg/agent/config/config.go | 4 ++-- pkg/agent/flannel/setup.go | 23 ++++++++++++++--------- pkg/agent/flannel/setup_test.go | 2 +- pkg/daemons/config/types.go | 2 +- 4 files changed, 18 insertions(+), 13 deletions(-) diff --git a/pkg/agent/config/config.go b/pkg/agent/config/config.go index c891ff0a6d..4ca3e535fe 100644 --- a/pkg/agent/config/config.go +++ b/pkg/agent/config/config.go @@ -497,9 +497,9 @@ func get(ctx context.Context, envInfo *cmds.Agent, proxy proxy.Proxy) (*config.N } if envInfo.FlannelConf == "" { - nodeConfig.FlannelConf = filepath.Join(envInfo.DataDir, "agent", "etc", "flannel", "net-conf.json") + nodeConfig.FlannelConfFile = filepath.Join(envInfo.DataDir, "agent", "etc", "flannel", "net-conf.json") } else { - nodeConfig.FlannelConf = envInfo.FlannelConf + nodeConfig.FlannelConfFile = envInfo.FlannelConf nodeConfig.FlannelConfOverride = true } nodeConfig.AgentConfig.CNIBinDir = filepath.Dir(hostLocal) diff --git a/pkg/agent/flannel/setup.go b/pkg/agent/flannel/setup.go index c735ea9c75..2800faf9d8 100644 --- a/pkg/agent/flannel/setup.go +++ b/pkg/agent/flannel/setup.go @@ -89,8 +89,9 @@ func Prepare(ctx context.Context, nodeConfig *config.Node) error { } func Run(ctx context.Context, nodeConfig *config.Node, nodes typedcorev1.NodeInterface) error { + logrus.Infof("Starting flannel with backend %s", nodeConfig.FlannelBackend) if err := waitForPodCIDR(ctx, nodeConfig.AgentConfig.NodeName, nodes); err != nil { - return errors.Wrap(err, "failed to wait for PodCIDR assignment") + return errors.Wrap(err, "flannel failed to wait for PodCIDR assignment") } netMode, err := findNetMode(nodeConfig.AgentConfig.ClusterCIDRs) @@ -98,7 +99,7 @@ func Run(ctx context.Context, nodeConfig *config.Node, nodes typedcorev1.NodeInt return errors.Wrap(err, "failed to check netMode for flannel") } go func() { - err := flannel(ctx, nodeConfig.FlannelIface, nodeConfig.FlannelConf, nodeConfig.AgentConfig.KubeConfigKubelet, netMode) + err := flannel(ctx, nodeConfig.FlannelIface, nodeConfig.FlannelConfFile, nodeConfig.AgentConfig.KubeConfigKubelet, netMode) if err != nil && !errors.Is(err, context.Canceled) { logrus.Fatalf("flannel exited: %v", err) } @@ -125,11 +126,12 @@ func waitForPodCIDR(ctx context.Context, nodeName string, nodes typedcorev1.Node break } } - logrus.Info("PodCIDR assigned for node " + nodeName) + logrus.Info("Flannel found PodCIDR assigned for node " + nodeName) return nil } func createCNIConf(dir string) error { + logrus.Debugf("Creating the CNI conf in directory %s", dir) if dir == "" { return nil } @@ -138,11 +140,12 @@ func createCNIConf(dir string) error { } func createFlannelConf(nodeConfig *config.Node) error { - if nodeConfig.FlannelConf == "" { - return nil + logrus.Debugf("Creating the flannel configuration for backend %s in file %s", nodeConfig.FlannelBackend, nodeConfig.FlannelConfFile) + if nodeConfig.FlannelConfFile == "" { + return errors.New("Flannel configuration not defined") } if nodeConfig.FlannelConfOverride { - logrus.Infof("Using custom flannel conf defined at %s", nodeConfig.FlannelConf) + logrus.Infof("Using custom flannel conf defined at %s", nodeConfig.FlannelConfFile) return nil } confJSON := strings.ReplaceAll(flannelConf, "%CIDR%", nodeConfig.AgentConfig.ClusterCIDR.String()) @@ -160,7 +163,7 @@ func createFlannelConf(nodeConfig *config.Node) error { return err } case config.FlannelBackendWireguard: - backendConf = strings.ReplaceAll(wireguardBackend, "%flannelConfDir%", filepath.Dir(nodeConfig.FlannelConf)) + backendConf = strings.ReplaceAll(wireguardBackend, "%flannelConfDir%", filepath.Dir(nodeConfig.FlannelConfFile)) default: return fmt.Errorf("Cannot configure unknown flannel backend '%s'", nodeConfig.FlannelBackend) } @@ -168,7 +171,7 @@ func createFlannelConf(nodeConfig *config.Node) error { netMode, err := findNetMode(nodeConfig.AgentConfig.ClusterCIDRs) if err != nil { - logrus.Fatalf("Error checking netMode") + logrus.Fatalf("Flannel error checking netMode: %v", err) return err } @@ -184,7 +187,9 @@ func createFlannelConf(nodeConfig *config.Node) error { confJSON = strings.ReplaceAll(confJSON, "%DUALSTACK%", "false") confJSON = strings.ReplaceAll(confJSON, "%CIDR_IPV6%", emptyIPv6Network) } - return util.WriteFile(nodeConfig.FlannelConf, confJSON) + + logrus.Debugf("The flannel configuration is %s", confJSON) + return util.WriteFile(nodeConfig.FlannelConfFile, confJSON) } func setupStrongSwan(nodeConfig *config.Node) error { diff --git a/pkg/agent/flannel/setup_test.go b/pkg/agent/flannel/setup_test.go index 32a9368f7a..0da6cf1668 100644 --- a/pkg/agent/flannel/setup_test.go +++ b/pkg/agent/flannel/setup_test.go @@ -62,7 +62,7 @@ func Test_createFlannelConf(t *testing.T) { var agent = config.Agent{} agent.ClusterCIDR = stringToCIDR(tt.args)[0] agent.ClusterCIDRs = stringToCIDR(tt.args) - var nodeConfig = &config.Node{Docker: false, ContainerRuntimeEndpoint: "", NoFlannel: false, SELinux: false, FlannelBackend: "vxlan", FlannelConf: "test_file", FlannelConfOverride: false, FlannelIface: nil, Containerd: containerd, Images: "", AgentConfig: agent, Token: "", Certificate: nil, ServerHTTPSPort: 0} + var nodeConfig = &config.Node{Docker: false, ContainerRuntimeEndpoint: "", NoFlannel: false, SELinux: false, FlannelBackend: "vxlan", FlannelConfFile: "test_file", FlannelConfOverride: false, FlannelIface: nil, Containerd: containerd, Images: "", AgentConfig: agent, Token: "", Certificate: nil, ServerHTTPSPort: 0} t.Run(tt.name, func(t *testing.T) { if err := createFlannelConf(nodeConfig); (err != nil) != tt.wantErr { diff --git a/pkg/daemons/config/types.go b/pkg/daemons/config/types.go index 37ef2276fe..7a334b3b2a 100644 --- a/pkg/daemons/config/types.go +++ b/pkg/daemons/config/types.go @@ -31,7 +31,7 @@ type Node struct { NoFlannel bool SELinux bool FlannelBackend string - FlannelConf string + FlannelConfFile string FlannelConfOverride bool FlannelIface *net.Interface Containerd Containerd