145 lines
3.6 KiB
Plaintext
145 lines
3.6 KiB
Plaintext
# Warewulf template struct (tstruct)
|
|
|
|
This Warewulf template serves as a complete example of the variables
|
|
available to Warewulf templates. It may also be rendered against a
|
|
node to debug its apparent configuration.
|
|
|
|
wwctl overlay show --render $nodename debug tstruct.md.ww
|
|
|
|
The template data structure is defined in
|
|
internal/pkg/overlay/datastructure.go, though it also references
|
|
data from other structures.
|
|
|
|
## Build
|
|
|
|
- BuildHost: {{ .BuildHost }}
|
|
- BuildTime: {{ .BuildTime }}
|
|
- BuildTimeUnix: {{ .BuildTimeUnix }}
|
|
- BuildSource: {{ .BuildSource }}
|
|
- Overlay: {{ .Overlay }}
|
|
|
|
## Warewulf server
|
|
|
|
- Port: {{ .Warewulf.Port }}
|
|
- Secure: {{ .Warewulf.Secure }}
|
|
- UpdateInterval: {{ .Warewulf.UpdateInterval }}
|
|
- AutobuildOverlays: {{ .Warewulf.AutobuildOverlays }}
|
|
- EnableHostOverlay: {{ .Warewulf.EnableHostOverlay }}
|
|
|
|
### Network
|
|
|
|
- Ipaddr: {{ .Ipaddr }}
|
|
- IpCIDR: {{ .IpCIDR }}
|
|
- Ipaddr6: {{ .Ipaddr6 }}
|
|
- Netmask: {{ .Netmask }}
|
|
- Network: {{ .Network }}
|
|
- NetworkCIDR: {{ .NetworkCIDR }}
|
|
- Ipv6: {{ .Ipv6 }}
|
|
|
|
### DHCP
|
|
|
|
- Dhcp.Enabled: {{ .Dhcp.Enabled }}
|
|
- Dhcp.Template: {{ .Dhcp.Template }}
|
|
- Dhcp.RangeStart: {{ .Dhcp.RangeStart }}
|
|
- Dhcp.RangeEnd: {{ .Dhcp.RangeEnd }}
|
|
- Dhcp.SystemdName: {{ .Dhcp.SystemdName }}
|
|
|
|
### NFS
|
|
|
|
- Enabled: {{ .Nfs.Enabled }}
|
|
- SystemdName: {{ .Nfs.SystemdName }}
|
|
{{- range $index, $export := .Nfs.ExportsExtended }}
|
|
- ExportsExtended[{{ $index }}]:
|
|
- Path: {{ $export.Path }}
|
|
- ExportOptions: {{ $export.ExportOptions }}
|
|
{{- end }}
|
|
|
|
### SSH
|
|
|
|
{{- if gt (len .Ssh.KeyTypes) 0 }}
|
|
- Key types:
|
|
{{- range $index, $keyType := .Ssh.KeyTypes }}
|
|
- {{ $keyType }}
|
|
{{- end }}
|
|
- First key type: {{ index .Ssh.KeyTypes 0 }}
|
|
{{- end }}
|
|
|
|
## Node
|
|
|
|
The current node may also be accessed as .ThisNode, which provides access to
|
|
node methods in addition to its fields.
|
|
|
|
- Id: {{ .Id }}
|
|
- Hostname: {{ .Hostname }}
|
|
- Comment: {{ .Comment }}
|
|
- ClusterName: {{ .ClusterName }}
|
|
- ImageName: {{ .ImageName }}
|
|
- Ipxe: {{ .Ipxe }}
|
|
- RuntimeOverlay:
|
|
{{- range $index, $value := .RuntimeOverlay }}
|
|
- {{ $value }}
|
|
{{- end }}
|
|
- SystemOverlay:
|
|
{{- range $index, $value := .SystemOverlay }}
|
|
- {{ $value }}
|
|
{{- end }}
|
|
- Init: {{ .Init }}
|
|
- Root: {{ .Root }}
|
|
- AssetKey: {{ .AssetKey }}
|
|
- Discoverable: {{ .Discoverable }}
|
|
- Profiles:
|
|
{{- range $index, $value := .Profiles }}
|
|
- {{ $value }}
|
|
{{- end }}
|
|
- Tags:
|
|
{{- range $key, $value := .Tags }}
|
|
- {{ $key }}={{ $value }}
|
|
{{- end }}
|
|
- Kernel:
|
|
- Version: {{ .Kernel.Version }}
|
|
- Args: {{ .Kernel.Args | join " " }}
|
|
- Ipmi:
|
|
- UserName: {{ .Ipmi.UserName }}
|
|
- Password: {{ .Ipmi.Password }}
|
|
- Ipaddr: {{ .Ipmi.Ipaddr }}
|
|
- Netmask: {{ .Ipmi.Netmask }}
|
|
- Port: {{ .Ipmi.Port }}
|
|
- Gateway: {{ .Ipmi.Gateway }}
|
|
- Interface: {{ .Ipmi.Interface }}
|
|
- Write: {{ .Ipmi.Write }}
|
|
- Tags:
|
|
{{- range $key, $value := .Ipmi.Tags }}
|
|
- {{ $key }}={{ $value }}
|
|
{{ end }}
|
|
{{- range $index, $netdev := .NetDevs }}
|
|
- NetDevs[{{ $index }}]:
|
|
- Type: {{ $netdev.Type }}
|
|
- OnBoot: {{ $netdev.OnBoot }}
|
|
- Device: {{ $netdev.Device }}
|
|
- Hwaddr: {{ $netdev.Hwaddr }}
|
|
- Ipaddr: {{ $netdev.Ipaddr }}
|
|
- Ipaddr6: {{ $netdev.Ipaddr6 }}
|
|
- Prefix: {{ $netdev.Prefix }}
|
|
- Netmask: {{ $netdev.Netmask }}
|
|
- Gateway: {{ $netdev.Gateway }}
|
|
- MTU: {{ $netdev.MTU }}
|
|
- Primary: {{ $netdev.Primary }}
|
|
- Tags:
|
|
{{- range $key, $value := $netdev.Tags }}
|
|
- {{ $key }}={{ $value }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- range $key, $value := .Resources }}
|
|
- Resource[{{$key}}]: {{ $value }}
|
|
{{- end }}
|
|
|
|
## Other nodes
|
|
|
|
All nodes in the registry are available to all templates in the .AllNodes
|
|
field. Each node provides access to all node fields, as shown above.
|
|
|
|
- AllNodes:
|
|
{{- range $index, $node := .AllNodes }}
|
|
- {{ $node.Id }}
|
|
{{- end }}
|