diff --git a/Makefile b/Makefile index 05c0cf58..81fcb1d8 100644 --- a/Makefile +++ b/Makefile @@ -40,7 +40,7 @@ lint: @echo Running golangci-lint... @$(GOLANGCI_LINT) run --build-tags "$(WW_BUILD_GO_BUILD_TAGS)" ./... -all: warewulfd wwctl wwclient +all: vendor warewulfd wwctl wwclient files: all install -d -m 0755 /var/warewulf/ diff --git a/internal/app/wwctl/build/vnfs/containerdir.go b/internal/app/wwctl/build/vnfs/containerdir.go index c3725219..92d433a6 100644 --- a/internal/app/wwctl/build/vnfs/containerdir.go +++ b/internal/app/wwctl/build/vnfs/containerdir.go @@ -33,6 +33,13 @@ func BuildContainerdir(v vnfs.VnfsObject) { return } + wwlog.Printf(wwlog.DEBUG, "Making the directory: %s\n", path.Dir(config.VnfsChroot(v.NameClean()))) + err = os.MkdirAll(path.Dir(config.VnfsChroot(v.NameClean())), 0755) + if err != nil { + fmt.Printf("ERROR: %s\n", err) + return + } + wwlog.Printf(wwlog.DEBUG, "Building VNFS image: '%s' -> '%s'\n", v.Source(), config.VnfsImage(v.NameClean())) err = buildVnfs(v.Source(), config.VnfsImage(v.NameClean())) if err != nil { @@ -44,10 +51,12 @@ func BuildContainerdir(v vnfs.VnfsObject) { _ = os.Remove(config.VnfsChroot(v.NameClean()) + "-link") err = os.Symlink(v.Source(), config.VnfsChroot(v.NameClean())+"-link") if err != nil { + wwlog.Printf(wwlog.ERROR, "Could not create symlink for Chroot: %s\n", err) os.Exit(1) } err = os.Rename(config.VnfsChroot(v.NameClean())+"-link", config.VnfsChroot(v.NameClean())) if err != nil { + wwlog.Printf(wwlog.ERROR, "Could not rename link: %s\n", err) os.Exit(1) } diff --git a/internal/app/wwctl/build/vnfs/docker.go b/internal/app/wwctl/build/vnfs/docker.go index 061e4989..84ba9150 100644 --- a/internal/app/wwctl/build/vnfs/docker.go +++ b/internal/app/wwctl/build/vnfs/docker.go @@ -72,11 +72,12 @@ func BuildDocker(v vnfs.VnfsObject) { _ = os.Remove(config.VnfsImage(v.NameClean()) + "-link") err = os.Symlink(hashDestination, config.VnfsImage(v.NameClean())+"-link") if err != nil { - wwlog.Printf(wwlog.ERROR, "%s\n", err) + wwlog.Printf(wwlog.ERROR, "Could not create symlink for Image: %s\n", err) os.Exit(1) } err = os.Rename(config.VnfsImage(v.NameClean())+"-link", config.VnfsImage(v.NameClean())) if err != nil { + wwlog.Printf(wwlog.ERROR, "Could not rename link: %s\n", err) os.Exit(1) } @@ -84,10 +85,12 @@ func BuildDocker(v vnfs.VnfsObject) { _ = os.Remove(config.VnfsChroot(v.NameClean()) + "-link") err = os.Symlink(sourcePath, config.VnfsChroot(v.NameClean())+"-link") if err != nil { + wwlog.Printf(wwlog.ERROR, "Could not create symlink for Chroot: %s\n", err) os.Exit(1) } err = os.Rename(config.VnfsChroot(v.NameClean())+"-link", config.VnfsChroot(v.NameClean())) if err != nil { + wwlog.Printf(wwlog.ERROR, "Could not rename link: %s\n", err) os.Exit(1) } diff --git a/internal/pkg/assets/assets.go b/internal/pkg/assets/assets.go index 025383e5..66ece834 100644 --- a/internal/pkg/assets/assets.go +++ b/internal/pkg/assets/assets.go @@ -2,6 +2,8 @@ package assets import ( "fmt" + "github.com/hpcng/warewulf/internal/pkg/config" + "github.com/hpcng/warewulf/internal/pkg/vnfs" "gopkg.in/yaml.v2" "io/ioutil" // "os" @@ -72,6 +74,8 @@ type NodeInfo struct { func FindAllNodes() ([]NodeInfo, error) { var c nodeYaml var ret []NodeInfo + config := config.New() + data, err := ioutil.ReadFile(ConfigFile) if err != nil { @@ -134,19 +138,8 @@ func FindAllNodes() ([]NodeInfo, error) { n.Fqdn = node.Hostname } - /* - if b, _ := regexp.MatchString(`^[a-z\-]+://`, n.Vnfs); b == true { - //if strings.HasPrefix(n.Vnfs, "docker://") { - //TODO: This is a kludge and shouldn't be done here. We need to go back - // and do this from a "vnfs" interface or package - v := vnfs.New(n.Vnfs) - n.VnfsDir = v.Root() - } else if strings.HasPrefix(n.Vnfs, "/"){ - n.VnfsDir = n.Vnfs - } else { - wwlog.Printf(wwlog.ERROR, "Configuration 'Vnfs' is invalid for node: %s\n", n.Fqdn) - } - */ + v := vnfs.New(n.Vnfs) + n.VnfsDir = config.VnfsChroot(v.NameClean()) ret = append(ret, n) } diff --git a/internal/pkg/config/config.go b/internal/pkg/config/config.go index 6b759e05..4fadcfe6 100644 --- a/internal/pkg/config/config.go +++ b/internal/pkg/config/config.go @@ -69,23 +69,23 @@ func (self *Config) RuntimeOverlaySource(overlayName string) (string) { } func (self *Config) KernelImage(kernelVersion string) (string) { - return fmt.Sprintf("%s/kernel/vmlinuz-%s", self.LocalStateDir, kernelVersion) + return fmt.Sprintf("%s/provision/kernel/vmlinuz-%s", self.LocalStateDir, kernelVersion) } func (self *Config) KmodsImage(kernelVersion string) (string) { - return fmt.Sprintf("%s/kernel/kmods-%s.img", self.LocalStateDir, kernelVersion) + return fmt.Sprintf("%s/provision/kernel/kmods-%s.img", self.LocalStateDir, kernelVersion) } func (self *Config) VnfsImage(vnfsNameClean string) (string) { - return fmt.Sprintf("%s/vnfs/%s.img.gz", self.LocalStateDir, vnfsNameClean) + return fmt.Sprintf("%s/provision/vnfs/%s.img.gz", self.LocalStateDir, vnfsNameClean) } func (self *Config) SystemOverlayImage(nodeName string) (string) { - return fmt.Sprintf("%s/overlay/system/%s.img", self.LocalStateDir, nodeName) + return fmt.Sprintf("%s/provision/overlay/system/%s.img", self.LocalStateDir, nodeName) } func (self *Config) RuntimeOverlayImage(nodeName string) (string) { - return fmt.Sprintf("%s/overlay/runtime/%s.img", self.LocalStateDir, nodeName) + return fmt.Sprintf("%s/provision/overlay/runtime/%s.img", self.LocalStateDir, nodeName) } func (self *Config) VnfsChroot(vnfsNameClean string) (string) { diff --git a/overlays/runtime/default/etc/group.ww b/overlays/runtime/default/etc/group.ww index a0ea3854..debf247a 100644 --- a/overlays/runtime/default/etc/group.ww +++ b/overlays/runtime/default/etc/group.ww @@ -1,2 +1,2 @@ {{Include (printf "%s%s" .VnfsDir "/etc/group")}} -{{Include "/etc/passwd"}} +{{Include "/etc/group"}}