% -*- mode: latex; fill-column: 120; -*-

\subsection{Inputs} \label{sec:inputs}
As this recipe details installing a cluster starting from bare-metal, there is a requirement to define IP addresses and
gather hardware MAC addresses in order to support a controlled provisioning process. These values are necessarily unique
to the hardware being used, and this document uses variable substitution (\texttt{\$\{variable\}}) in the command-line
examples that follow to highlight where local site inputs are required. A summary of the required and optional variables
used throughout this recipe are presented below. Note that while the example definitions above correspond to a small
4-node compute subsystem, the compute parameters are defined in array format to accommodate logical extension to larger
node counts. \\

\vspace*{0.2cm}
\begin{tabular}{@{}>{\textbullet}l p{7cm} l}
& \texttt{\$\{sms\_name\}} & {\small \# Hostname for SMS server} \\
& \texttt{\$\{sms\_ip\}} & {\small \# Internal IP address on SMS server}  \\
\iftoggleverb{isxCAT}
& \texttt{\$\{domain\_name\}} & {\small \# Local network domain name}  \\
\fi
& \texttt{\$\{sms\_eth\_internal\}} & {\small \# Internal Ethernet interface on SMS} \\
\iftoggleverb{isWarewulf}
& \texttt{\$\{eth\_provision\}} & {\small \# Provisioning interface for computes} \\
\fi
& \texttt{\$\{internal\_network\}} & {\small \# Subnet network address for internal network} \\
& \texttt{\$\{internal\_netmask\}} & {\small \# Subnet netmask for internal network} \\
\iftoggleverb{isWarewulf4}
& \texttt{\$\{ipv4\_gateway\}} & {\small \# Default gateway for the internal network} \\
& \texttt{\$\{dns\_servers\}} & {\small \# DNS resolver for the internal network} \\
\fi
& \texttt{\$\{ntp\_server\}} & {\small \# Local ntp server for time synchronization} \\
& \texttt{\$\{bmc\_username\}} & {\small \# BMC username for use by IPMI} \\
& \texttt{\$\{bmc\_password\}} & {\small \# BMC password for use by IPMI} \\
& \texttt{\$\{num\_computes\}} & {\small \# Total \# of desired compute nodes} \\
& \texttt{\$\{c\_ip[0]\}}, \, \texttt{\$\{c\_ip[1]\}}, ... & {\small \# Desired compute node addresses} \\
& \texttt{\$\{c\_bmc[0]\}}, \texttt{\$\{c\_bmc[1]\}}, ... & {\small \# BMC addresses for computes} \\
& \texttt{\$\{c\_mac[0]\}}, \texttt{\$\{c\_mac[1]\}}, ... & {\small \# MAC addresses for computes} \\
& \texttt{\$\{c\_name[0]\}}, \texttt{\$\{c\_name[1]\}}, ... & {\small \# Host names for computes} \\
& \texttt{\$\{compute\_regex\}} & {\small \# Regex matching all compute node names (e.g. ``c*'')} \\
& \texttt{\$\{compute\_prefix\}} & {\small \# Prefix for compute node names (e.g. ``c'')} \\
\iftoggleverb{isxCAT}
& \texttt{\$\{iso\_path\}} & {\small \# Directory location of OS iso for \xCAT{} install} \\
\nottoggle{isxCATstateful}
{& \texttt{\$\{synclist\}} & {\small \# Filesystem location of \xCAT{} synclist file} \\}
\fi
\iftoggleverb{isxCATstateful}
& \texttt{\$\{ohpc\_repo\_dir\}} & {\small \# Directory location of local \OHPC{} repository mirror} \\
& \texttt{\$\{epel\_repo\_dir\}} & {\small \# Directory location of local EPEL repository
mirror} \\
\fi
\iftoggleverb{isWarewulf4}
& \texttt{\$\{node\_disk\}} & {\small \# Device path for disk to be used for provision-to-disk} \\
\fi
\end{tabular}

\vspace*{0.2cm}
\noindent {Optional:}
\vspace*{0.1cm}

\begin{tabular}{@{}>{\textbullet}l p{7cm} l}
\iftoggleverb{isx86}
& \texttt{\$\{sysmgmtd\_host\}} & {\small \# BeeGFS System Management host name} \\
& \texttt{\$\{mgs\_fs\_name\}} & {\small \# Lustre MGS mount name} \\
& \texttt{\$\{sms\_ipoib\}} & {\small \# IPoIB address for SMS server} \\
& \texttt{\$\{ipoib\_netmask\}} & {\small \# Subnet netmask for internal IPoIB} \\
& \texttt{\$\{c\_ipoib[0]\}}, \texttt{\$\{c\_ipoib[1]\}}, ... & {\small \# IPoIB addresses for computes} \\
\fi
\iftoggleverb{isWarewulf}
& \texttt{\$\{kargs\}} & {\small \# Kernel boot arguments} \\
\fi
\end{tabular}


