This topic provides directions on constructing the application_node_config.yaml
file. This file controls how the csi config init
command finds and treats application nodes discovered in the hmn_connections.json
file when generating configuration files for the system.
The application_node_config.yaml
file can be constructed from information from one of the following sources:
- The SHCD Excel spreadsheet for the system
- The
hmn_connections.json
file generated from the system's SHCD
The HMN tab of the SHCD describes the air-cooled hardware present in the system and how these devices are connected to the Hardware Management Network (HMN). This information is required by CSM to perform hardware discovery and geolocation of air-cooled hardware in the system. The HMN tab may contain other hardware that is not managed by CSM, but is connected to the HMN.
The hmn_connections.json
file is derived from the HMN tab of a system SHCD, and is one of the seed files required by Cray Site Init (CSI) command to generate configuration files required to install CSM. The hmn_connections.json
file is almost a one-to-one copy of the right-hand table in the HMN tab of the SHCD. It is an array of JSON objects, and each object represents a row from the HMN tab. Any row that is not understood by CSI will be ignored, this includes any additional devices connected to the HMN that are not managed by CSM.
For a detailed mapping between the data in the SHCD and the equivalent information in the hmn_connections.json
file, see Introduction to SHCD HMN Connections Rules and Application Nodes in SHCD HMN Connections Rules.
The source name is the name of the device that is being connected to the HMN network. In the SHCD HMN tab, this is in a column with the header Source
or the Source
field in the element of the hmn_connections.json
for this device. From this source name, the csi config init
command can infer the type of hardware that is connected to the HMN network (Node BMC, PDU, HSN Switch, BMC, and more).
Example SHCD row from HMN tab with column headers representing an application node with SourceName uan01
in cabinet x3000
in slot 19. Its BMC is connected to port 37 of the management leaf switch in x3000 in slot 14.
Source (J20) | Rack (K20) | Location (L20) | (M20) | Parent (N20) | (O20) | Port (P20) | Destination (Q20) | Rack (R20) | Location (S20) | (T20) | Port (U20) |
---|---|---|---|---|---|---|---|---|---|---|---|
uan01 | x3000 | u19 | - | j3 | sw-smn01 | x3000 | u14 | - | j37 |
Example hmn_connections.json
row representing an application node with SourceName uan01
in cabinet x3000
in slot 19. Its BMC is connected to port 37 of the management leaf switch in x3000 in slot 14.
{ "Source": "uan01", "SourceRack": "x3000", "SourceLocation": "u19", "DestinationRack": "x3000", "DestinationLocation": "u14", "DestinationPort": "j37" }
-
Create a file called
application_node_config.yaml
with the following contents.This is a base application node config file for CSI that does not add any additional prefixes, HSM SubRole mappings, or aliases.
--- # Additional application node prefixes to match in the hmn_connections.json file prefixes: [] # Additional HSM SubRoles prefix_hsm_subroles: {} # Application Node aliases aliases: {}
-
Identify application nodes present in
hmn_connections.json
or the HMN tab of the system's SHCD. In general, everything in the HMN tab of the SHCD orhmn_connections.json
file that starts with uan, gn, or ln, are considered application nodes and any node that does not follow the SHCD/HMN Connections Rules should also be considered an application node, unless it is aKVM
.If the
hmn_connections.json
file is not available, then use the HMN tab of SHCD spreadsheet. This table is equivalent to the example hmn_connections.json output below.Source (J20) Rack (K20) Location (L20) (M20) Parent (N20) (O20) Port (P20) Destination (Q20) Rack (R20) Location (S20) (T20) Port (U20) gateway01 x3000 u29 - j3 sw-smn01 x3000 u32 - j42 login02 x3000 u28 - j3 sw-smn01 x3000 u32 - j43 lnet01 x3000 u27 - j3 sw-smn01 x3000 u32 - j41 vn01 x3000 u25 - j3 sw-smn01 x3000 u32 - j40 uan01 x3000 u23 - j3 sw-smn01 x3000 u32 - j39 If the
hmn_connections.json
file is available, then the following command can be used to show the HMN rows that are application nodes.cat hmn_connections.json | jq -rc '.[] | select(.Source | test("^((mn|wn|sn|nid|cn|cn\\-|pdu)\\d+|.*(cmc|rcm|kvm|door).*|x\\d+p\\d*|sw-.+|columbia$)"; "i") | not)'
Example `hmn_connections.json` output:
{"Source":"gateway01","SourceRack":"x3000","SourceLocation":"u29","DestinationRack":"x3000","DestinationLocation":"u32","DestinationPort":"j42"}, {"Source":"login02","SourceRack":"x3000","SourceLocation":"u28","DestinationRack":"x3000","DestinationLocation":"u32","DestinationPort":"j43"} {"Source":"lnet01","SourceRack":"x3000","SourceLocation":"u27","DestinationRack":"x3000","DestinationLocation":"u32","DestinationPort":"j41"} {"Source":"vn01","SourceRack":"x3000","SourceLocation":"u25","DestinationRack":"x3000","DestinationLocation":"u32","DestinationPort":"j40"}, {"Source":"uan01","SourceRack":"x3000","SourceLocation":"u23","DestinationRack":"x3000","DestinationLocation":"u32","DestinationPort":"j39"},
-
Add additional application node prefixes.
The
prefixes
field is an array of strings, that augments the list of source name prefixes that are treated as application nodes. By default,csi config init
only looks for application nodes that have source names that start withuan
,gn
, andln
. If the system contains application nodes that fall outside of those source name prefixes, then additional prefixes must be added toapplication_node_config.yaml
. These additional prefixes will be used in addition to the default prefixes.To add an additional prefix, append a new string element to the
prefixes
array.NOTE
The commandcsi config init
does a case insensitive check for whether a source name contains an application node prefix. For example, the prefixuan
will matchuan
,Uan
, andUAN
.From the HMN example above, the following additional prefixes are required:
# Additional application node prefixes to match in the hmn_connections.json file prefixes: - gateway - login - lnet - vn
-
Add HSM SubRoles for application node prefixes.
The
prefix_hsm_subroles
field mapping application node prefix (string) to the applicable Hardware State Manager (HSM) SubRole (string) for the application nodes. All applications nodes have the HSM Role of Application, and the SubRole value can be used to label what type of the application node it is (such as UAN, Gateway, LNETRouter, and more).By default, the
csi config init
command will use the following SubRoles for application nodes:Prefix HSM SubRole uan UAN ln UAN gn Gateway If there are no additional prefixes in the SHCD or no desire to use a different HSM SubRole than the default, then this
prefix_hsm_subroles
field does not need any data populated.To add additional HSM SubRole for a given prefix, add a new mapping under the
prefix_hsm_subroles
field. Where the key is the application node prefix and the value is the HSM SubRole.Valid HSM SubRoles values are:
Worker
,Master
,Storage
,UAN
,Gateway
,LNETRouter
,Visualization
, andUserDefined
.From the HMN example above, the following additional prefix HSM SubRole mappings are required:
# Additional HSM SubRoles prefix_hsm_subroles: login: UAN lnet: LNETRouter gateway: Gateway vn: Visualization
-
Add application node aliases.
The
aliases
field is a map of component name (xname) strings to an array of alias strings.For guidance on building application node component names (xnames), follow one of the following:
By default, the
csi config init
command does not set theExtraProperties.Alias
field for application nodes in the SLS input file.For each application node, add its alias mapping under the
aliases
field. Where the key is the component name (xname) of the application node, and the value is an array of aliases (strings) which allows for one or more aliases to be specified for an application node.From the HMN example above, the following application node aliases are required:
# Application Node aliases aliases: x3113c0s29b0n0: ["gateway01"] x3113c0s28b0n0: ["login02"] x3113c0s27b0n0: ["lnet01"] x3113c0s25b0n0: ["visualization01", "vn02"] x3113c0s23b0n0: ["uan01"]
The ordering of component names (xnames) under
aliases
does not matter. -
Final information in the example
application_node_config.yaml
built from the HMN example above.--- # Additional application node prefixes to match in the hmn_connections.json file prefixes: - gateway - login - lnet - vn # Additional HSM SubRoles prefix_hsm_subroles: login: UAN lnet: LNETRouter gateway: Gateway vn: Visualization # Application Node aliases aliases: x3113c0s29b0n0: ["gateway01"] x3113c0s28b0n0: ["login02"] x3113c0s27b0n0: ["lnet01"] x3113c0s25b0n0: ["visualization01", "vn02"] x3113c0s23b0n0: ["uan01"]