diff --git a/network_data_openshift.yaml b/network_data_openshift.yaml new file mode 100644 index 0000000000..eae717ea7c --- /dev/null +++ b/network_data_openshift.yaml @@ -0,0 +1,75 @@ +# List of networks, used for j2 templating of enabled networks +# +# Supported values: +# +# name: Name of the network (mandatory) +# name_lower: lowercase version of name used for filenames +# (optional, defaults to name.lower()) +# service_net_map_replace: if name_lower is set to a custom name this should be set +# to original default (optional). This field is only necessary when +# changing the default network names, not when adding a new custom network. +# enabled: Is the network enabled (optional, defaults to true) +# NOTE: False will use noop.yaml for unused legacy networks to support upgrades. +# vlan: vlan for the network (optional) +# vip: Enable creation of a virtual IP on this network +# ip_subnet: IP/CIDR, e.g. '192.168.24.0/24' or '2001:db8:fd00:1000::/64' +# (optional, may use parameter defaults instead) +# allocation_pools: IP range list e.g. [{'start':'10.0.0.4', 'end':'10.0.0.250'}] +# gateway_ip: gateway for the network (optional, may use parameter defaults) +# routes: Optional, list of networks that should be routed via network gateway. +# Example: [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] +# A single /16 supernet route could be used for 255 smaller /24 subnets. +# ipv6_subnet: Optional, sets default IPv6 subnet if IPv4 is already defined. +# ipv6_allocation_pools: Set default IPv6 allocation pools if IPv4 allocation pools +# are already defined. +# gateway_ipv6: Set an IPv6 gateway if IPv4 gateway already defined. +# ipv6: If ip_subnet not defined, this specifies that the network is IPv6-only. +# NOTE: IP-related values set parameter defaults in templates, may be overridden, +# either by operators, or e.g in environments/network-isolation-v6.yaml where we +# set some default IPv6 addresses. +# compat_name: for existing stack you may need to override the default +# transformation for the resource's name. +# +# Example: +# - name Example +# vip: false +# ip_subnet: '10.0.2.0/24' +# allocation_pools: [{'start': '10.0.2.4', 'end': '10.0.2.250'}] +# gateway_ip: '10.0.2.254' +# +# To support backward compatibility, two versions of the network definitions +# will be created, network/.yaml and network/_v6.yaml. Only +# one of these files may be used in the deployment at a time, since the +# parameters used for configuration are the same in both files. In the +# future, this behavior may be changed to create only one file for custom +# networks. You may specify IPv6 addresses for ip_subnet, allocation_pools, +# and gateway_ip if no IPv4 addresses are used for a custom network, or set +# ipv6: true, and the network/.yaml file will be configured as IPv6. +# +# For configuring both IPv4 and IPv6 on the same interface, use two separate +# networks, and then assign both IPs to the same interface in a custom NIC +# configuration templates. +# +# The ordering of the networks below will determine the order in which NICs +# are assigned in the network/config/multiple-nics templates, beginning with +# NIC2, Control Plane is always NIC1. + +- name: Storage + vip: true + vlan: 30 + name_lower: storage + ip_subnet: '172.16.1.0/24' + allocation_pools: [{'start': '172.16.1.4', 'end': '172.16.1.250'}] +- name: InternalApi + name_lower: internal_api + vip: true + vlan: 20 + ip_subnet: '172.16.2.0/24' + allocation_pools: [{'start': '172.16.2.4', 'end': '172.16.2.250'}] +- name: External + vip: true + name_lower: external + vlan: 10 + ip_subnet: '10.0.0.0/24' + allocation_pools: [{'start': '10.0.0.4', 'end': '10.0.0.250'}] + gateway_ip: '10.0.0.1' diff --git a/tools/yaml-validate.py b/tools/yaml-validate.py index 5f99436d89..4bb90a6a53 100755 --- a/tools/yaml-validate.py +++ b/tools/yaml-validate.py @@ -1112,8 +1112,11 @@ def validate(filename, param_map): # NOTE(hjensas): The routed network data example is very different ... # We need to develop a more advanced validator, probably using a schema # definition instead. + # NOTE(mandre): Same goes for the openshift network data where it + # contains only a subset of the overcloud networks. if (filename.startswith('./network_data_') and - not filename.endswith('routed.yaml')): + not (filename.endswith('routed.yaml') or + filename.endswith('openshift.yaml'))): result = validate_network_data_file(filename) retval |= result else: