2 # The purpose of this file is to define all of the NetworkLinks (i.e. layer 1
3 # devices) and Networks (i.e. layer 3 configurations). The following is standard
4 # for the logical networks in Airship:
6 # +----------+-----------------------------------+----------------+--------------+----------------------------------------------------+-----------------+
7 # | Network | | Per-rack or | | | VLAN tagged |
8 # | Name | Purpose | per-site CIDR? | Has gateway? | Bond | or untagged? |
9 # +----------+-----------------------------------+----------------+--------------+----------------------------------------------------+-----------------+
10 # | oob | Out of Band devices (iDrac/iLo) | per-site CIDR | Has gateway | No bond, N/A | Untagged/Native |
11 # | pxe | PXE boot network | per-site CIDR | No gateway | No bond, no LACP fallback. Dedicated PXE interface | Untagged/Native |
12 # | oam | management network | per-site CIDR | Has gateway | member of bond0 | tagged |
13 # | storage | storage network | per-site CIDR | No gateway | member of bond0 | tagged |
14 # | calico | underlay calico net; k8s traffic | per-site CIDR | No gateway | member of bond0 | tagged |
15 # | overlay | overlay network for openstack SDN | per-site CIDR | No gateway | member of bond0 | tagged |
16 # +----------+-----------------------------------+----------------+--------------+----------------------------------------------------+-----------------+
18 # For standard Airship deployments, you should not need to modify the number of
19 # NetworkLinks and Networks in this file. Only the IP addresses and CIDRs should
22 # TODO: Given that we expect all network broadcast domains to span all racks in
23 # Airship, we should choose network names that do not include the rack number.
25 # TODO: FQDN naming standards for hosts
27 schema: 'drydock/NetworkLink/v1'
29 schema: 'metadata/Document/v1'
34 storagePolicy: cleartext
36 # MaaS doesnt own this network like it does the others, so the noconfig label
51 schema: 'drydock/Network/v1'
53 schema: 'metadata/Document/v1'
58 storagePolicy: cleartext
60 # NEWSITE-CHANGEME: Update with the site's out-of-band CIDR
61 cidr: {{yaml.networks.oob.cidr}}
63 # NEWSITE-CHANGEME: Update with the site's out-of-band gateway IP
65 gateway: {{yaml.networks.oob.routes.gateway}}
67 # NEWSITE-CHANGEME: Update with the site's out-of-band IP allocation range
68 # FIXME: Is this IP range actually used/allocated for anything? The HW already
69 # has its OOB IPs assigned. None of the Ubuntu OS's should need IPs on OOB
70 # network either, as they should be routable via the default gw on OAM network
73 start: {{yaml.networks.oob.ranges.static.start}}
74 end: {{yaml.networks.oob.ranges.static.end}}
77 schema: 'drydock/NetworkLink/v1'
79 schema: 'metadata/Document/v1'
84 storagePolicy: cleartext
97 schema: 'drydock/Network/v1'
99 schema: 'metadata/Document/v1'
104 storagePolicy: cleartext
106 # NEWSITE-CHANGEME: Update with the site's PXE network CIDR
107 # NOTE: The CIDR minimum size = (number of nodes * 2) + 10
108 cidr: {{yaml.networks.pxe.cidr}}
111 # NEWSITE-CHANGEME: Set the OAM network gateway IP address
112 gateway: {{yaml.networks.pxe.routes.gateway}}
114 # NOTE: The first 10 IPs in the subnet are reserved for network infrastructure.
115 # The remainder of the range is divided between two subnets of equal size:
116 # one static, and one DHCP.
117 # The DHCP addresses are used when nodes perform a PXE boot (DHCP address gets
118 # assigned), and when a node is commissioning in MaaS (also uses DHCP to get
119 # its IP address). However, when MaaS installs the operating system
120 # ("Deploying/Deployed" states), it will write a static IP assignment to
121 # /etc/network/interfaces[.d] with IPs from the "static" subnet defined here.
123 # NEWSITE-CHANGEME: Update to the first 10 IPs in the CIDR
125 start: {{yaml.networks.pxe.ranges.reserved.start}}
126 end: {{yaml.networks.pxe.ranges.reserved.end}}
127 # NEWSITE-CHANGEME: Update to the first half of the remaining range after
128 # excluding the 10 reserved IPs.
130 start: {{yaml.networks.pxe.ranges.static.start}}
131 end: {{yaml.networks.pxe.ranges.static.end}}
132 # NEWSITE-CHANGEME: Update to the second half of the remaining range after
133 # excluding the 10 reserved IPs.
135 start: {{yaml.networks.pxe.ranges.dhcp.start}}
136 end: {{yaml.networks.pxe.ranges.dhcp.end}}
138 # NEWSITE-CHANGEME: FQDN for bare metal nodes.
139 # Choose FQDN according to the node FQDN naming conventions at the top of
141 domain: {% if 'dns' in yaml.networks.pxe and 'domain' in yaml.networks.pxe.dns %}{{yaml.networks.pxe.dns.domain}}
142 {% else %}{{yaml.dns.domain}}
144 # List of upstream DNS forwards. Verify you can reach them from your
145 # environment. If so, you should not need to change them.
146 # TODO: This should be populated via substitution from common-addresses
147 servers: '{% if 'dns' in yaml.networks.pxe %}{{yaml.networks.pxe.dns.servers}}{% else %}{{yaml.dns.upstream_servers|join(' ')}}{% endif %}'
150 schema: 'drydock/NetworkLink/v1'
152 schema: 'metadata/Document/v1'
157 storagePolicy: cleartext
160 {% if yaml.networks.bonded %}
170 # NEWSITE-CHANGEME: Ensure the network switches in the environment are
171 # configured for this MTU or greater. Even if switches are configured for or
172 # can support a slightly higher MTU, there is no need (and negliable benefit)
173 # to squeeze every last byte into the MTU (e.g., 9216 vs 9100). Leave MTU at
174 # 9100 for maximum compatibility.
186 schema: 'drydock/Network/v1'
188 schema: 'metadata/Document/v1'
193 storagePolicy: cleartext
195 # NEWSITE-CHANGEME: Set the VLAN ID which the OAM network is on
196 vlan: '{{yaml.networks.host.vlan}}'
198 # NEWSITE-CHANGEME: Set the CIDR for the OAM network
199 # NOTE: The CIDR minimum size = number of nodes + 10
200 cidr: {{yaml.networks.host.cidr}}
203 # NEWSITE-CHANGEME: Set the OAM network gateway IP address
204 gateway: {{yaml.networks.host.routes.gateway}}
207 # NEWSITE-CHANGEME: Update to the first 10 IPs in the CIDR
209 start: {{yaml.networks.host.ranges.reserved.start}}
210 end: {{yaml.networks.host.ranges.reserved.end}}
211 # NEWSITE-CHANGEME: Update to the remaining range after excluding the 10
214 start: {{yaml.networks.host.ranges.static.start}}
215 end: {{yaml.networks.host.ranges.static.end}}
217 # NEWSITE-CHANGEME: FQDN for bare metal nodes.
218 # Choose FQDN according to the node FQDN naming conventions at the top of
220 domain: {% if 'dns' in yaml.networks.host and 'domain' in yaml.networks.host.dns %}{{yaml.networks.host.dns.domain}}
221 {% else %}{{yaml.dns.domain}}
223 # List of upstream DNS forwards. Verify you can reach them from your
224 # environment. If so, you should not need to change them.
225 # TODO: This should be populated via substitution from common-addresses
226 servers: '{% if 'dns' in yaml.networks.host %}{{yaml.networks.host.dns.servers}}{% else %}{{yaml.dns.upstream_servers|join(' ')}}{% endif %}'
229 schema: 'drydock/Network/v1'
231 schema: 'metadata/Document/v1'
236 storagePolicy: cleartext
238 # NEWSITE-CHANGEME: Set the VLAN ID which the storage network is on
239 vlan: '{{yaml.networks.storage.vlan}}'
241 # NEWSITE-CHANGEME: Set the CIDR for the storage network
242 # NOTE: The CIDR minimum size = number of nodes + 10
243 cidr: {{yaml.networks.storage.cidr}}
245 # NEWSITE-CHANGEME: Update to the first 10 IPs in the CIDR
247 start: {{yaml.networks.storage.ranges.reserved.start}}
248 end: {{yaml.networks.storage.ranges.reserved.end}}
249 # NEWSITE-CHANGEME: Update to the remaining range after excluding the 10
252 start: {{yaml.networks.storage.ranges.static.start}}
253 end: {{yaml.networks.storage.ranges.static.end}}
256 schema: 'drydock/Network/v1'
258 schema: 'metadata/Document/v1'
263 storagePolicy: cleartext
265 # NEWSITE-CHANGEME: Set the VLAN ID which the overlay network is on
266 vlan: '{{yaml.networks.neutron.vlan}}'
268 # NEWSITE-CHANGEME: Set the CIDR for the overlay network
269 # NOTE: The CIDR minimum size = number of nodes + 10
270 cidr: {{yaml.networks.neutron.cidr}}
272 # NEWSITE-CHANGEME: Update to the first 10 IPs in the CIDR
274 start: {{yaml.networks.neutron.ranges.reserved.start}}
275 end: {{yaml.networks.neutron.ranges.reserved.end}}
276 # NEWSITE-CHANGEME: Update to the remaining range after excluding the 10
279 start: {{yaml.networks.neutron.ranges.static.start}}
280 end: {{yaml.networks.neutron.ranges.static.end}}
283 schema: 'drydock/Network/v1'
285 schema: 'metadata/Document/v1'
290 storagePolicy: cleartext
292 # NEWSITE-CHANGEME: Set the VLAN ID which the calico network is on
293 vlan: '{{yaml.networks.ksn.vlan}}'
295 # NEWSITE-CHANGEME: Set the CIDR for the calico network
296 # NOTE: The CIDR minimum size = number of nodes + 10
297 cidr: {{yaml.networks.ksn.cidr}}
299 # NEWSITE-CHANGEME: Update to the first 10 IPs in the CIDR
301 start: {{yaml.networks.ksn.ranges.reserved.start}}
302 end: {{yaml.networks.ksn.ranges.reserved.end}}
303 # NEWSITE-CHANGEME: Update to the remaining range after excluding the 10
306 start: {{yaml.networks.ksn.ranges.static.start}}
307 end: {{yaml.networks.ksn.ranges.static.end}}