diff --git a/internal/pkg/overlay/datastructure.go b/internal/pkg/overlay/datastructure.go index 25779c25..11961933 100644 --- a/internal/pkg/overlay/datastructure.go +++ b/internal/pkg/overlay/datastructure.go @@ -8,6 +8,7 @@ import ( "time" warewulfconf "github.com/warewulf/warewulf/internal/pkg/config" + "github.com/warewulf/warewulf/internal/pkg/image" "github.com/warewulf/warewulf/internal/pkg/kernel" "github.com/warewulf/warewulf/internal/pkg/node" ) @@ -38,6 +39,7 @@ type TemplateStruct struct { Tftp warewulfconf.TFTPConf Paths warewulfconf.BuildConfig AllNodes []node.Node + ImageList []string node.Node // backward compatiblity Container string @@ -48,8 +50,7 @@ type TemplateStruct struct { /* Initialize an TemplateStruct with the given node.NodeInfo */ -func InitStruct(overlayName string, nodeData node.Node, allNodes []node.Node) (TemplateStruct, error) { - var tstruct TemplateStruct +func InitStruct(overlayName string, nodeData node.Node, allNodes []node.Node) (tstruct TemplateStruct, err error) { tstruct.Overlay = overlayName hostname, _ := os.Hostname() tstruct.BuildHost = hostname @@ -76,6 +77,10 @@ func InitStruct(overlayName string, nodeData node.Node, allNodes []node.Node) (T // init some convenience vars tstruct.Id = nodeData.Id() tstruct.Hostname = nodeData.Id() + tstruct.ImageList, err = image.ListSources() + if err != nil { + return tstruct, err + } tstruct.Container = nodeData.ImageName tstruct.ContainerName = nodeData.ImageName // Backwards compatibility for templates using "Keys" diff --git a/internal/pkg/warewulfd/provision.go b/internal/pkg/warewulfd/provision.go index 83608d0e..e6ab0a59 100644 --- a/internal/pkg/warewulfd/provision.go +++ b/internal/pkg/warewulfd/provision.go @@ -29,11 +29,13 @@ type templateVars struct { Id string Cluster string ImageName string + Ipxe string Hwaddr string Ipaddr string Port string KernelArgs string KernelVersion string + Root string Tags map[string]string NetDevs map[string]*node.NetDev } @@ -124,6 +126,7 @@ func ProvisionSend(w http.ResponseWriter, req *http.Request) { ImageName: remoteNode.ImageName, KernelArgs: kernelArgs, KernelVersion: kernelVersion, + Root: remoteNode.Root, NetDevs: remoteNode.NetDevs, Tags: remoteNode.Tags} } else if rinfo.stage == "kernel" { @@ -209,8 +212,10 @@ func ProvisionSend(w http.ResponseWriter, req *http.Request) { Hostname: remoteNode.Id(), Hwaddr: rinfo.hwaddr, ImageName: remoteNode.ImageName, + Ipxe: remoteNode.Ipxe, KernelArgs: kernelArgs, KernelVersion: kernelVersion, + Root: remoteNode.Root, NetDevs: remoteNode.NetDevs, Tags: remoteNode.Tags} if stage_file == "" {