From c9a61637cd155efc910f5f79a43163c0e1658b5d Mon Sep 17 00:00:00 2001 From: Karim Radhouani Date: Mon, 16 Nov 2020 15:51:10 +0800 Subject: [PATCH 1/2] intialize node config field --- clab/config.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/clab/config.go b/clab/config.go index b0c865257..45b30d6be 100644 --- a/clab/config.go +++ b/clab/config.go @@ -18,6 +18,8 @@ const ( dockerNetName = "clab" dockerNetIPv4Addr = "172.20.20.0/24" dockerNetIPv6Addr = "2001:172:20:20::/80" + + defaultConfigTemplate = "/etc/containerlab/templates/srl/srlconfig.tpl" ) // supported kinds @@ -203,7 +205,15 @@ func (c *cLab) configInitialization(nodeCfg *NodeConfig, kind string) string { if nodeCfg.Config != "" { return nodeCfg.Config } - return c.Config.Topology.Kinds[kind].Config + if kindConfig, ok := c.Config.Topology.Kinds[kind]; ok { + if kindConfig.Config != "" { + return kindConfig.Config + } + } + if c.Config.Topology.Defaults.Config != "" { + return c.Config.Topology.Defaults.Config + } + return defaultConfigTemplate } func (c *cLab) imageInitialization(nodeCfg *NodeConfig, kind string) string { From 81e0f749835e25d6d1f0360b38f96a67b7f9b8f0 Mon Sep 17 00:00:00 2001 From: Karim Radhouani Date: Mon, 16 Nov 2020 15:51:24 +0800 Subject: [PATCH 2/2] use per node config template --- clab/file.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clab/file.go b/clab/file.go index a47d5f6a1..977573f72 100644 --- a/clab/file.go +++ b/clab/file.go @@ -189,7 +189,7 @@ func (c *cLab) CreateNodeDirStructure(node *Node) (err error) { // GenerateConfig generates configuration for the nodes func (node *Node) generateConfig(dst string) error { - tpl, err := template.New("srlconfig.tpl").ParseFiles("/etc/containerlab/templates/srl/srlconfig.tpl") + tpl, err := template.New(fmt.Sprintf("config-template-%s", node.ShortName)).ParseFiles(node.Config) if err != nil { return err }