Add network_data.yaml to encapsulate list of networks for j2
This moves the hard-coded networks from the default environment, and provides the first step towards enabling composable networks. Co-Author: Dan Sneddon <dsneddon@redhat.com> Partial-Bug: #1633090 Depends-On: I9f818912bd8e2a3220e41c8ccbbab3d9063b4d72 Change-Id: I7793b8badede5450b05437c84d9b40c28de7546b
This commit is contained in:
parent
ccb13e7b42
commit
a5116005d8
17
network/networks.j2.yaml
Normal file
17
network/networks.j2.yaml
Normal file
@ -0,0 +1,17 @@
|
||||
heat_template_version: ocata
|
||||
|
||||
description: Create networks to split out Overcloud traffic
|
||||
|
||||
resources:
|
||||
|
||||
{%- for network in networks %}
|
||||
{%- if network.name != 'InternalApi' %}
|
||||
{{network.name}}Network:
|
||||
{%- else %}
|
||||
InternalNetwork:
|
||||
{%- endif %}
|
||||
type: OS::TripleO::Network::{{network.name}}
|
||||
{%- endfor %}
|
||||
|
||||
NetworkExtraConfig:
|
||||
type: OS::TripleO::Network::ExtraConfig
|
@ -1,26 +0,0 @@
|
||||
heat_template_version: ocata
|
||||
|
||||
description: Create networks to split out Overcloud traffic
|
||||
|
||||
resources:
|
||||
|
||||
ExternalNetwork:
|
||||
type: OS::TripleO::Network::External
|
||||
|
||||
InternalNetwork:
|
||||
type: OS::TripleO::Network::InternalApi
|
||||
|
||||
StorageMgmtNetwork:
|
||||
type: OS::TripleO::Network::StorageMgmt
|
||||
|
||||
StorageNetwork:
|
||||
type: OS::TripleO::Network::Storage
|
||||
|
||||
TenantNetwork:
|
||||
type: OS::TripleO::Network::Tenant
|
||||
|
||||
ManagementNetwork:
|
||||
type: OS::TripleO::Network::Management
|
||||
|
||||
NetworkExtraConfig:
|
||||
type: OS::TripleO::Network::ExtraConfig
|
30
network_data.yaml
Normal file
30
network_data.yaml
Normal file
@ -0,0 +1,30 @@
|
||||
# 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())
|
||||
# vlan: vlan for the network (optional)
|
||||
# gateway: gateway for the network (optional)
|
||||
# enabled: Is the network enabled (optional, defaults to true)
|
||||
# vip: Enable creation of a virtual IP on this network
|
||||
# [TODO] (dsneddon@redhat.com) - Enable dynamic creation of VIP ports, to support
|
||||
# VIPs on non-default networks. See https://bugs.launchpad.net/tripleo/+bug/1667104
|
||||
#
|
||||
- name: External
|
||||
vip: true
|
||||
- name: InternalApi
|
||||
name_lower: internal_api
|
||||
vip: true
|
||||
- name: Storage
|
||||
vip: true
|
||||
- name: StorageMgmt
|
||||
name_lower: storage_mgmt
|
||||
vip: true
|
||||
- name: Tenant
|
||||
vip: false # Tenant network does not use VIPs
|
||||
- name: Management
|
||||
# Management network is disabled by default
|
||||
enabled: false
|
||||
vip: false # Management network does not use VIPs
|
@ -23,22 +23,16 @@ resource_registry:
|
||||
OS::TripleO::Tasks::{{role.name}}PostConfig: OS::Heat::None
|
||||
OS::TripleO::{{role.name}}ExtraConfigPre: puppet/extraconfig/pre_deploy/default.yaml
|
||||
# Port assignments for the {{role.name}} role
|
||||
{%- if role.name != 'ObjectStorage' %}
|
||||
{%- for network in networks %}
|
||||
OS::TripleO::{{role.name}}::Ports::{{network.name}}Port: network/ports/noop.yaml
|
||||
{%- endfor %}
|
||||
{%- else %}
|
||||
# Note we have to special-case ObjectStorage for backwards compatibility
|
||||
{% if role.name != 'ObjectStorage' %}
|
||||
OS::TripleO::{{role.name}}::Ports::ExternalPort: network/ports/noop.yaml
|
||||
OS::TripleO::{{role.name}}::Ports::InternalApiPort: network/ports/noop.yaml
|
||||
OS::TripleO::{{role.name}}::Ports::StoragePort: network/ports/noop.yaml
|
||||
OS::TripleO::{{role.name}}::Ports::StorageMgmtPort: network/ports/noop.yaml
|
||||
OS::TripleO::{{role.name}}::Ports::TenantPort: network/ports/noop.yaml
|
||||
OS::TripleO::{{role.name}}::Ports::ManagementPort: network/ports/noop.yaml
|
||||
{% else %}
|
||||
OS::TripleO::SwiftStorage::Ports::ExternalPort: network/ports/noop.yaml
|
||||
OS::TripleO::SwiftStorage::Ports::InternalApiPort: network/ports/noop.yaml
|
||||
OS::TripleO::SwiftStorage::Ports::StoragePort: network/ports/noop.yaml
|
||||
OS::TripleO::SwiftStorage::Ports::StorageMgmtPort: network/ports/noop.yaml
|
||||
OS::TripleO::SwiftStorage::Ports::TenantPort: network/ports/noop.yaml
|
||||
OS::TripleO::SwiftStorage::Ports::ManagementPort: network/ports/noop.yaml
|
||||
{% endif %}
|
||||
{%- for network in networks %}
|
||||
OS::TripleO::SwiftStorage::Ports::{{network.name}}Port: network/ports/noop.yaml
|
||||
{%- endfor %}
|
||||
{%- endif %}
|
||||
OS::TripleO::{{role.name}}::Net::SoftwareConfig: net-config-noop.yaml
|
||||
{% endfor %}
|
||||
|
||||
@ -84,12 +78,9 @@ resource_registry:
|
||||
# TripleO overcloud networks
|
||||
OS::TripleO::Network: network/networks.yaml
|
||||
|
||||
OS::TripleO::Network::External: OS::Heat::None
|
||||
OS::TripleO::Network::InternalApi: OS::Heat::None
|
||||
OS::TripleO::Network::StorageMgmt: OS::Heat::None
|
||||
OS::TripleO::Network::Storage: OS::Heat::None
|
||||
OS::TripleO::Network::Tenant: OS::Heat::None
|
||||
OS::TripleO::Network::Management: OS::Heat::None
|
||||
{%- for network in networks %}
|
||||
OS::TripleO::Network::{{network.name}}: OS::Heat::None
|
||||
{%- endfor %}
|
||||
|
||||
OS::TripleO::Network::ExtraConfig: OS::Heat::None
|
||||
|
||||
@ -98,10 +89,10 @@ resource_registry:
|
||||
OS::TripleO::Network::Ports::NetIpListMap: network/ports/net_ip_list_map.yaml
|
||||
|
||||
# Port assignments for the VIPs
|
||||
OS::TripleO::Network::Ports::ExternalVipPort: network/ports/noop.yaml
|
||||
OS::TripleO::Network::Ports::InternalApiVipPort: network/ports/noop.yaml
|
||||
OS::TripleO::Network::Ports::StorageVipPort: network/ports/noop.yaml
|
||||
OS::TripleO::Network::Ports::StorageMgmtVipPort: network/ports/noop.yaml
|
||||
{%- for network in networks if network.vip|default(false) %}
|
||||
OS::TripleO::Network::Ports::{{network.name}}VipPort: network/ports/noop.yaml
|
||||
{%- endfor %}
|
||||
|
||||
OS::TripleO::Network::Ports::RedisVipPort: network/ports/ctlplane_vip.yaml
|
||||
OS::TripleO::Network::Ports::ControlPlaneVipPort: OS::Neutron::Port
|
||||
|
||||
|
@ -32,6 +32,9 @@ def parse_opts(argv):
|
||||
parser.add_argument('-r', '--roles-data', metavar='ROLES_DATA',
|
||||
help="""relative path to the roles_data.yaml file.""",
|
||||
default='roles_data.yaml')
|
||||
parser.add_argument('-n', '--network-data', metavar='NETWORK_DATA',
|
||||
help="""relative path to the network_data.yaml file.""",
|
||||
default='network_data.yaml')
|
||||
parser.add_argument('--safe',
|
||||
action='store_true',
|
||||
help="""Enable safe mode (do not overwrite files).""",
|
||||
@ -71,11 +74,15 @@ def _j2_render_to_file(j2_template, j2_data, outfile_name=None,
|
||||
out_f.write(r_template)
|
||||
|
||||
|
||||
def process_templates(template_path, role_data_path, output_dir, overwrite):
|
||||
def process_templates(template_path, role_data_path, output_dir,
|
||||
network_data_path, overwrite):
|
||||
|
||||
with open(role_data_path) as role_data_file:
|
||||
role_data = yaml.safe_load(role_data_file)
|
||||
|
||||
with open(network_data_path) as network_data_file:
|
||||
network_data = yaml.safe_load(network_data_file)
|
||||
|
||||
j2_excludes_path = os.path.join(template_path, 'j2_excludes.yaml')
|
||||
with open(j2_excludes_path) as role_data_file:
|
||||
j2_excludes = yaml.safe_load(role_data_file)
|
||||
@ -150,7 +157,8 @@ def process_templates(template_path, role_data_path, output_dir, overwrite):
|
||||
print("jinja2 rendering normal template %s" % f)
|
||||
with open(file_path) as j2_template:
|
||||
template_data = j2_template.read()
|
||||
j2_data = {'roles': role_data}
|
||||
j2_data = {'roles': role_data,
|
||||
'networks': network_data}
|
||||
out_f = os.path.basename(f).replace('.j2.yaml', '.yaml')
|
||||
out_f_path = os.path.join(out_dir, out_f)
|
||||
_j2_render_to_file(template_data, j2_data, out_f_path,
|
||||
@ -164,5 +172,7 @@ def process_templates(template_path, role_data_path, output_dir, overwrite):
|
||||
opts = parse_opts(sys.argv)
|
||||
|
||||
role_data_path = os.path.join(opts.base_path, opts.roles_data)
|
||||
network_data_path = os.path.join(opts.base_path, opts.network_data)
|
||||
|
||||
process_templates(opts.base_path, role_data_path, opts.output_dir, (not opts.safe))
|
||||
process_templates(opts.base_path, role_data_path, opts.output_dir,
|
||||
network_data_path, (not opts.safe))
|
||||
|
Loading…
Reference in New Issue
Block a user