Merge branch 'main' of github.com:ctrliq/warewulf into main

This commit is contained in:
Shannon V. Davidson
2020-12-23 00:41:41 -06:00
12 changed files with 87 additions and 5 deletions

View File

@@ -44,7 +44,7 @@ all: vendor wwctl wwclient
files: all
install -d -m 0755 /var/warewulf/
install -d -m 0755 /var/warewulf/chroot
install -d -m 0755 /var/warewulf/chroots
install -d -m 0755 /etc/warewulf/
install -d -m 0755 /etc/warewulf/ipxe
install -d -m 0755 /var/lib/tftpboot/warewulf/ipxe/

23
docs/Contributing.md Normal file
View File

@@ -0,0 +1,23 @@
# Contributing
Warewulf is an open source project and we invite your collaboration and help.
## Contributor's Agreement
You are under no obligation whatsoever to provide any bug fixes, patches, or upgrades to the features, functionality
or performance of the source code ("Enhancements") to anyone; however, if you choose to make your Enhancements
available either publicly, or directly to the project, without imposing a separate written license agreement for such
Enhancements, then you hereby grant the following license: a non-exclusive, royalty-free perpetual license to
install, use, modify, prepare derivative works, incorporate into other computer software, distribute, and sublicense
such enhancements or derivative works thereof, in binary and source code form.
## To Contribute
Here is the very high level guide to contributing:
* For the project to a location of your choosing
* Clone your fork locally: `git clone http://github.com/$NAME/warewulf.git`
* Inside your fork, create a local branch: `cd warewulf; git checkout -b localchanges`
* Make the necessary changes and commit them: `git commit -a`
* Push your changes: `git push origin localchanges`
* Create a PR using GitHub: `https://github.com/$NAME/warewulf/pull/new/localchanges`
*note: set your environment variable `NAME=github_username` before running the above commands.*

View File

@@ -1,7 +1,21 @@
# Documentation for Warewulf
The documentation for Warewulf is a work in progress and we are asking for contributions from the open source
community on this. Please see the [contributing](Contributing.md) document for how to help out this project.
### Quickstarts
* [RHEL-7 quickstart](rhel7-quickstart.md)
* [RHEL-8 quickstart](rhel8-quickstart.md)
### Chapters
(all coming soon)
* [Introduction](introduction.md)
* [Architecture](architecture.md)
* [System Services and Dependencies](system_services.md)
* [Profiles](profiles.md)
* [Node Configurations](nodes.md)
* [Containers and VNFS images](containers.md)
* [Overlays](overlays.md)
* [SELinux](selinux.md)

View File

@@ -128,7 +128,7 @@ Here are some of the common `overlay` commands:
```
sudo ./wwctl overlay list -l
sudo ./wwctl overlay list -ls
sudo EDITOR=vim ./wwctl overlay edit default /etc/hello_world.ww
sudo ./wwctl overlay edit default /etc/hello_world.ww
sudo ./wwctl overlay build -a
```

View File

@@ -129,7 +129,7 @@ Here are some of the common `overlay` commands:
```
sudo ./wwctl overlay list -l
sudo ./wwctl overlay list -ls
sudo EDITOR=vim ./wwctl overlay edit default /etc/hello_world.ww
sudo ./wwctl overlay edit default /etc/hello_world.ww
sudo ./wwctl overlay build -a
```

View File

@@ -3,11 +3,13 @@
{{range $node := $.AllNodes}}
# Entry for {{$node.Id.Get}}
{{- range $devname, $netdev := $node.NetDevs}}
{{- if $netdev.Default}}
{{- if $netdev.Ipaddr.Defined}}
{{- if $netdev.Default.GetB}}
{{$netdev.Ipaddr.Get}} {{$node.Id.Get}}
{{- else}}
{{$netdev.Ipaddr.Get}} {{$node.Id.Get}}-{{$devname}}
{{- end}}
{{- end}}
{{- end}}
{{end}}

View File

@@ -61,6 +61,7 @@ func CobraRunE(cmd *cobra.Command, args []string) error {
fmt.Printf("%-20s %-18s %-12s %s\n", node.Id.Get(), name+":NETMASK", netdev.Netmask.Source(), netdev.Netmask.Print())
fmt.Printf("%-20s %-18s %-12s %s\n", node.Id.Get(), name+":GATEWAY", netdev.Gateway.Source(), netdev.Gateway.Print())
fmt.Printf("%-20s %-18s %-12s %s\n", node.Id.Get(), name+":TYPE", netdev.Type.Source(), netdev.Type.Print())
fmt.Printf("%-20s %-18s %-12s %t\n", node.Id.Get(), name+":DEFAULT", netdev.Default.Source(), netdev.Default.PrintB())
}
// v := reflect.ValueOf(node)

View File

@@ -233,6 +233,24 @@ func CobraRunE(cmd *cobra.Command, args []string) error {
wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Setting HW address to: %s\n", n.Id.Get(), SetNetDev, SetHwaddr)
n.NetDevs[SetNetDev].Hwaddr.Set(SetHwaddr)
}
if SetNetDevDefault == true {
if SetNetDev == "" {
wwlog.Printf(wwlog.ERROR, "You must include the '--netdev' option\n")
os.Exit(1)
}
if _, ok := n.NetDevs[SetNetDev]; !ok {
var nd node.NetDevEntry
n.NetDevs[SetNetDev] = &nd
}
wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Setting device as default\n", n.Id.Get(), SetNetDev)
for _, dev := range n.NetDevs {
// First clear all other devices that might be configured as default
dev.Default.SetB(false)
}
n.NetDevs[SetNetDev].Default.SetB(true)
}
err := nodeDB.NodeUpdate(n)
if err != nil {

View File

@@ -19,6 +19,7 @@ var (
SetGateway string
SetHwaddr string
SetNetDevDel bool
SetNetDevDefault bool
SetClusterName string
SetIpxe string
SetRuntimeOverlay string
@@ -66,6 +67,8 @@ func init() {
baseCmd.PersistentFlags().StringVarP(&SetGateway, "gateway", "G", "", "Set the node's network device gateway")
baseCmd.PersistentFlags().StringVarP(&SetHwaddr, "hwaddr", "H", "", "Set the node's network device HW address")
baseCmd.PersistentFlags().BoolVar(&SetNetDevDel, "netdel", false, "Delete the node's network device")
baseCmd.PersistentFlags().BoolVar(&SetNetDevDefault, "netdefault", false, "Set this network to be default")
baseCmd.PersistentFlags().BoolVarP(&SetNodeAll, "all", "a", false, "Set all nodes")
baseCmd.PersistentFlags().BoolVarP(&SetYes, "yes", "y", false, "Set 'yes' to all questions asked")

View File

@@ -49,7 +49,7 @@ func CobraRunE(cmd *cobra.Command, args []string) error {
fmt.Printf("%-20s %-18s %s\n", profile.Id.Get(), name+":GATEWAY", netdev.Gateway.Print())
fmt.Printf("%-20s %-18s %s\n", profile.Id.Get(), name+":HWADDR", netdev.Hwaddr.Print())
fmt.Printf("%-20s %-18s %s\n", profile.Id.Get(), name+":TYPE", netdev.Hwaddr.Print())
fmt.Printf("%-20s %-18s %t\n", profile.Id.Get(), name+":DEFAULT", netdev.Default.PrintB())
}
}

View File

@@ -213,6 +213,25 @@ func CobraRunE(cmd *cobra.Command, args []string) error {
p.NetDevs[SetNetDev].Hwaddr.Set(SetHwaddr)
}
if SetNetDevDefault == true {
if SetNetDev == "" {
wwlog.Printf(wwlog.ERROR, "You must include the '--netdev' option\n")
os.Exit(1)
}
if _, ok := p.NetDevs[SetNetDev]; !ok {
var nd node.NetDevEntry
p.NetDevs[SetNetDev] = &nd
}
wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Setting device as default\n", p.Id.Get(), SetNetDev)
for _, dev := range p.NetDevs {
// First clear all other devices that might be configured as default
dev.Default.SetB(false)
}
p.NetDevs[SetNetDev].Default.SetB(true)
}
err := nodeDB.ProfileUpdate(p)
if err != nil {
wwlog.Printf(wwlog.ERROR, "%s\n", err)

View File

@@ -29,6 +29,7 @@ var (
SetGateway string
SetHwaddr string
SetNetDevDel bool
SetNetDevDefault bool
SetInit string
SetRoot string
)
@@ -56,6 +57,7 @@ func init() {
baseCmd.PersistentFlags().StringVarP(&SetGateway, "gateway", "G", "", "Set the node's network device gateway")
baseCmd.PersistentFlags().StringVarP(&SetHwaddr, "hwaddr", "H", "", "Set the node's network device HW address")
baseCmd.PersistentFlags().BoolVar(&SetNetDevDel, "netdel", false, "Delete the node's network device")
baseCmd.PersistentFlags().BoolVar(&SetNetDevDefault, "netdefault", false, "Set this network to be default")
baseCmd.PersistentFlags().BoolVarP(&SetAll, "all", "a", false, "Set all profiles")
baseCmd.PersistentFlags().BoolVarP(&SetForce, "force", "f", false, "Force configuration (even on error)")