Rather than deriving the identity of template variables by string parsing the
name, identify its relationship to the underlying struct using reflection.
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
When I first split the debian interfaces support from wwinit, I was unable to
figure out what it was called. I used the inelegant name "debian.interfaces" to
identify it; but I have since learned that it is called "ifupdown." I have
since learned that there is even a variant implementation, ifupdown-ng, that is
used by Alpine Linux.
This PR renames the overlay to ifupdown, but retains a copy of it at
debian.interfaces for backwards compatibility.
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
Fields now use the value of a `name` tag on a struct to determine the display
name for a given field. This improves output for boolean-pointer fields, which
otherwise have a P suffix and helper methods to retain backwards-compatibility.
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
Update wwclient such that each file in the runtime overlay is applied
atomically, and only if modified.
- Closes: #1307
- Closes: #1975
- Closes: #1226
Also adds --once flag to allow wwclient to be run one time.
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
Update wwclient such that each file in the runtime overlay is applied
atomically.
- Closes: #1307
- Closes: #1975
- Closes: #1226
Also adds --once flag to allow wwclient to be run one time.
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
* Parse address and port with netip w/ tests
* Add Authority to provisioning templates based on remote IP family
(name based on RFC 3986)
* Add IPv6 support to the default iPXE (tested)
* Update `grub.cfg.ww` to use Authority (untested)
Co-authored-by: Dacian Reece-Stremtan <dacianstremtan@gmail.com>
Co-authored-by: Timothy Middelkoop <tmiddelkoop@internet2.edu>
Signed-off-by: Timothy Middelkoop <tmiddelkoop@internet2.edu>
`wwctl upgrade nodes` could convert legacy kernel argument formats to
the new list format, but then wasn't properly parsing the new list
format for repeat runs.
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
HTTP PUT is supposed to be idempotent, so PUT for an existing node or
profile should replace the node or profile, not throw an error.
Generating an error on duplicate can now be requested using the
If-None-Match header with a `*` value.
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
- sfdisk - partitions the disk
- mkfs - formats partitions
- mkswap - formats partitions for swap
- systemd.mount - explicit creation of systemd mount units
- systemd.swap - explicit creation of systemd swap units
Signed-off-by: Jonathon Anderson <janderson@ciq.com>