--- # # Drydock BaremetalNode resources for a specific rack are stored in this file. # # # # NOTE: For new sites, you should complete the networks/physical/networks.yaml # # file before working on this file. # # # # In this file, you should make the number of `drydock/BaremetalNode/v1` # # resources equal the number of bare metal nodes you have, either by deleting # # excess BaremetalNode definitions (if there are too many), or by copying and # # pasting the last BaremetalNode in the file until you have the correct number # # of baremetal nodes (if there are too few). # # # # Then in each file, address all additional NEWSITE-CHANGEME markers to update # # the data in these files with the right values for your new site. # # # # *NOTE: The Genesis node is counted as one of the control plane nodes. Note # # that the Genesis node does not appear on this bare metal list, because the # # procedure to reprovision the Genesis host with MaaS has not yet been # # implemented. Therefore there will be only three bare metal nodes in this file # # with the 'masters' tag, as the genesis roles are assigned in a difference # # place (profiles/genesis.yaml). # # NOTE: The host profiles for the control plane are further divided into two # # variants: primary and secondary. The only significance this has is that the # # "primary" nodes are active Ceph nodes, whereas the "secondary" nodes are Ceph # # standby nodes. For Ceph quorum, this means that the control plane split will # # be 3 primary + 1 standby host profile, and the Genesis node counts toward one # # of the 3 primary profiles. Other control plane services are not affected by # # primary vs secondary designation. # # # # TODO: Include the hostname naming convention # # # schema: 'drydock/BaremetalNode/v1' # metadata: # schema: 'metadata/Document/v1' # # NEWSITE-CHANGEME: Replace with the hostname of the first node in the rack, # # after (excluding) genesis. # name: cab23-r720-12 # layeringDefinition: # abstract: false # layer: site # storagePolicy: cleartext # data: # # NEWSITE-CHANGEME: The IPv4 address assigned to each logical network on this # # node. In the reference Airship deployment, this is all logical Networks defined # # in networks/physical/networks.yaml. IP addresses are manually assigned, by-hand. # # (what could possibly go wrong!) The instructions differ for each logical # # network, which are laid out below. # addressing: # # The iDrac/iLo IP of the node. It's important that this match up with the # # node's hostname above, so that the rack number and node position encoded # # in the hostname are accurate and matching the node that IPMI operations # # will be performed against (for poweron, poweroff, PXE boot to wipe disk or # # reconfigure identity, etc - very important to get right for these reasons). # # These addresses should already be assigned to nodes racked and stacked in # # the environment; these are not addresses which MaaS assigns. # - network: oob # address: 10.23.104.12 # # The IP of the node on the PXE network. Refer to the static IP range # # defined for the PXE network in networks/physical/networks.yaml. Begin allocating # # IPs from this network, starting with the second IP (inclusive) from the # # allocation range of this subnet (Genesis node will have the first IP). # # Ex: If the start IP for the PXE "static" network is 10.23.20.11, then # # genesis will have 10.23.20.11, this node will have 10.23.20.12, and # # so on with incrementing IP addresses with each additional node. # - network: pxe # address: 10.23.20.12 # # Genesis node gets first IP, all other nodes increment IPs from there # # within the allocation range defined for the network in # # networks/physical/networks.yaml # - network: oam # address: 10.23.21.12 # # Genesis node gets first IP, all other nodes increment IPs from there # # within the allocation range defined for the network in # # networks/physical/networks.yaml # - network: storage # address: 10.23.23.12 # # Genesis node gets first IP, all other nodes increment IPs from there # # within the allocation range defined for the network in # # networks/physical/networks.yaml # - network: overlay # address: 10.23.24.12 # # Genesis node gets first IP, all other nodes increment IPs from there # # within the allocation range defined for the network in # # networks/physical/networks.yaml # - network: calico # address: 10.23.22.12 # # NEWSITE-CHANGEME: Set the host profile for the node. # # Note that there are different host profiles depending if this is a control # # plane vs data plane node, and different profiles that map to different types # # hardware. Control plane host profiles are further broken down into "primary" # # and "secondary" profiles (refer to the Notes section at the top of this doc). # # Select the host profile that matches up to your type of # # hardware and function. E.g., the r720 here refers to Dell R720 hardware, the # # 'cp' refers to a control plane profile, and the "primary" means it will be # # an active member in the ceph quorum. Refer to profiles/host/ for the list # # of available host profiles specific to this site (otherwise, you may find # # a general set of host profiles at the "type" or "global" layers/folders. # # If you have hardware that is not on this list of profiles, you may need to # # create a new host profile for that hardware. # # Regarding control plane vs other data plane profiles, refer to the notes at # # the beginning of this file. There should be one control plane node per rack, # # including Genesis. Note Genesis won't actually be listed in this file as a # # BaremetalNode, but the rest are. # # This is the second "primary" control plane node after Genesis. # host_profile: cp_r720-primary # metadata: # tags: # # NEWSITE-CHANGEME: See previous comment. Apply 'masters' tag for control # # plane node, and 'workers' tag for data plane hosts. # - 'masters' # # NEWSITE-CHANGEME: Refer to site engineering package or other supporting # # documentation for the specific rack name. This should be a rack name that # # is meaningful to data center personnel (i.e. a rack they could locate if # # you gave them this rack designation). # rack: cab23 # ... {% for server in yaml.masters %} {% if loop.index > 1 %} --- {% endif %} schema: 'drydock/BaremetalNode/v1' metadata: schema: 'metadata/Document/v1' # NEWSITE-CHANGEME: The next node's hostname name: {{server.name}} layeringDefinition: abstract: false layer: site storagePolicy: cleartext data: # NEWSITE-CHANGEME: The next node's IPv4 addressing addressing: - network: oob address: {{server.oob}} - network: pxe address: {{server.pxe}} - network: oam address: {{server.host}} - network: storage address: {{server.storage}} - network: overlay address: {{server.neutron}} - network: calico address: {{server.ksn}} # NEWSITE-CHANGEME: The next node's host profile host_profile: cp_r720-primary metadata: # NEWSITE-CHANGEME: The next node's rack designation rack: cab23 # NEWSITE-CHANGEME: The next node's role desigatnion tags: - 'masters' {% if 'platform' in yaml %} platform: kernel_params: {% for key, value in yaml.platform.kernel_params.items() %} {{key}}: '{{value}}' {% endfor %} {% if 'vcpu_pin_set' in yaml.platform %} isolcpus: '{{yaml.platform.vcpu_pin_set}}' {% endif %} {% endif %} ... {% endfor %} {% if 'workers' in yaml %}{% for server in yaml.workers %} --- schema: 'drydock/BaremetalNode/v1' metadata: schema: 'metadata/Document/v1' # NEWSITE-CHANGEME: The next node's hostname name: cab23-r720-14 layeringDefinition: abstract: false layer: site storagePolicy: cleartext data: # NEWSITE-CHANGEME: The next node's IPv4 addressing addressing: - network: oob address: {{server.oob}} - network: pxe address: {{server.pxe}} - network: oam address: {{server.host}} - network: storage address: {{server.storage}} - network: overlay address: {{server.neutron}} - network: calico address: {{server.ksn}} # NEWSITE-CHANGEME: The next node's host profile # This is the third "primary" control plane profile after genesis host_profile: dp_r720 metadata: # NEWSITE-CHANGEME: The next node's rack designation rack: cab23 # NEWSITE-CHANGEME: The next node's role desigatnion tags: - 'workers' {% if 'platform' in yaml %} platform: kernel_params: {% for key, value in yaml.platform.kernel_params.items() %} {{key}}: '{{value}}' {% endfor %} {% if 'vcpu_pin_set' in yaml.platform %} isolcpus: '{{yaml.platform.vcpu_pin_set}}' {% endif %} {% endif %} ... {% endfor %}{% endif %}