diff options
Diffstat (limited to 'config')
-rw-r--r-- | config/installers/daisy/network-dpdk.yaml.j2 | 102 | ||||
-rw-r--r-- | config/installers/daisy/network.yaml.j2 | 102 | ||||
-rw-r--r-- | config/installers/fuel/pod_config.yml.j2 | 38 | ||||
-rw-r--r-- | config/utils/README.eyaml.rst | 5 | ||||
-rwxr-xr-x | config/utils/generate_config.py | 10 |
5 files changed, 242 insertions, 15 deletions
diff --git a/config/installers/daisy/network-dpdk.yaml.j2 b/config/installers/daisy/network-dpdk.yaml.j2 new file mode 100644 index 00000000..507e7cfc --- /dev/null +++ b/config/installers/daisy/network-dpdk.yaml.j2 @@ -0,0 +1,102 @@ +############################################################################## +# Copyright (c) 2017 ZTE Corporation and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +############################################################################## +# Description +# MANAGEMENT: used for management +# STORAGE: used for storage access +# EXTERNAL: tenant public/floating IP associated network +# PUBLICAPI: used for horizon access, openstack API access +# TENANT: used for tenant access, vlan and VxLan supported, default VxLan +# HEARTBEAT: used for heartbeat, requires a dedicated interface +############################################################################## + +--- + +network-config-metadata: + title: 'Deployment Adapter for baremetal POD' + version: '0.1' + created: 'Nov 22 2017' + comment: 'For Daisy initial' + +{%- set mapping = {'HEARTBEAT': 'admin', + 'MANAGEMENT': 'mgmt', + 'PUBLICAPI': 'mgmt', + 'STORAGE': 'storage', + 'TENANT': 'public', + 'EXTERNAL': 'public'} -%} + +{%- if "idf" in conf and ("daisy" in conf["idf"] or "fuel" in conf["idf"]) -%} + {%- if "daisy" in conf["idf"] -%} + {%- set installer = "daisy" -%} + {%- else -%} + {%- set installer = "fuel" -%} + {%- endif %} + +networks: + + {%- set networks = {} -%} + {%- for key in mapping -%} + {%- set net_data = conf['net_config'][mapping[key]] -%} + {%- set interface = net_data['interface'] -%} + {%- set interface_name = conf.idf[installer].network.node[0].interfaces[interface] -%} + {%- set bus_addr = conf.idf[installer].network.node[0].busaddr[interface] -%} + {%- set vlan = net_data['vlan'] -%} + {%- if vlan == "native" or vlan == None -%} + {%- set vlan = "null" -%} + {%- endif -%} + {%- set network = net_data['network'] -%} + {%- set ips = network.split(".") -%} + {%- set mask = net_data['mask'] -%} + {%- if 'ip-range' in net_data -%} + {%- set ip_range = net_data['ip-range'] -%} + {%- set (start, end) = ip_range.split("-") -%} + {%- else -%} + {%- set start = ".".join([ips[0], ips[1], ips[2], "10"]) -%} + {%- set end = ".".join([ips[0], ips[1], ips[2], "200"]) -%} + {%- endif -%} + {%- set vip = start -%} + + {%- if 'gateway' in net_data -%} + {%- set gateway = net_data.gateway -%} + {%- else -%} + {%- set gateway = ".".join([ips[0], ips[1], ips[2], "1"]) -%} + {%- endif -%} + + {%- set networks = networks.update({key: {'interface_name': interface_name, + 'bus_addr': bus_addr, + 'vlan': vlan, + 'network': network, + 'mask': mask, + 'start': start, + 'end': end, + 'vip': vip, + 'gateway': gateway + } + }) %} + + - cidr: '{{ network }}/{{ mask }}' + gateway: '{{ gateway }}' + ip_ranges: + - 'start': '{{ start }}' + 'end': '{{ end }}' + vlan_id: {{ vlan }} + name: '{{ key }}' + {%- endfor %} + +interfaces: + {%- for key in mapping %} + - name: '{{ key }}' + interface: '{{ networks[key].interface_name }}' + {%- endfor %} + +internal_vip: '{{ networks['MANAGEMENT'].vip }}' +public_vip: '{{ networks['PUBLICAPI'].vip }}' + +{%- endif %} diff --git a/config/installers/daisy/network.yaml.j2 b/config/installers/daisy/network.yaml.j2 new file mode 100644 index 00000000..9eef7390 --- /dev/null +++ b/config/installers/daisy/network.yaml.j2 @@ -0,0 +1,102 @@ +############################################################################## +# Copyright (c) 2017 ZTE Corporation and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +############################################################################## +# Description +# MANAGEMENT: used for management +# STORAGE: used for storage access +# EXTERNAL: tenant public/floating IP associated network +# PUBLICAPI: used for horizon access, openstack API access +# TENANT: used for tenant access, vlan and VxLan supported, default VxLan +# HEARTBEAT: used for heartbeat, requires a dedicated interface +############################################################################## + +--- + +network-config-metadata: + title: 'Deployment Adapter for baremetal POD' + version: '0.1' + created: 'Nov 22 2017' + comment: 'For Daisy initial' + +{%- set mapping = {'HEARTBEAT': 'admin', + 'MANAGEMENT': 'mgmt', + 'PUBLICAPI': 'mgmt', + 'STORAGE': 'storage', + 'TENANT': 'private', + 'EXTERNAL': 'public'} -%} + +{%- if "idf" in conf and ("daisy" in conf["idf"] or "fuel" in conf["idf"]) -%} + {%- if "daisy" in conf["idf"] -%} + {%- set installer = "daisy" -%} + {%- else -%} + {%- set installer = "fuel" -%} + {%- endif %} + +networks: + + {%- set networks = {} -%} + {%- for key in mapping -%} + {%- set net_data = conf['net_config'][mapping[key]] -%} + {%- set interface = net_data['interface'] -%} + {%- set interface_name = conf.idf[installer].network.node[0].interfaces[interface] -%} + {%- set bus_addr = conf.idf[installer].network.node[0].busaddr[interface] -%} + {%- set vlan = net_data['vlan'] -%} + {%- if vlan == "native" or vlan == None -%} + {%- set vlan = "null" -%} + {%- endif -%} + {%- set network = net_data['network'] -%} + {%- set ips = network.split(".") -%} + {%- set mask = net_data['mask'] -%} + {%- if 'ip-range' in net_data -%} + {%- set ip_range = net_data['ip-range'] -%} + {%- set (start, end) = ip_range.split("-") -%} + {%- else -%} + {%- set start = ".".join([ips[0], ips[1], ips[2], "10"]) -%} + {%- set end = ".".join([ips[0], ips[1], ips[2], "200"]) -%} + {%- endif -%} + {%- set vip = start -%} + + {%- if 'gateway' in net_data -%} + {%- set gateway = net_data.gateway -%} + {%- else -%} + {%- set gateway = ".".join([ips[0], ips[1], ips[2], "1"]) -%} + {%- endif -%} + + {%- set networks = networks.update({key: {'interface_name': interface_name, + 'bus_addr': bus_addr, + 'vlan': vlan, + 'network': network, + 'mask': mask, + 'start': start, + 'end': end, + 'vip': vip, + 'gateway': gateway + } + }) %} + + - cidr: '{{ network }}/{{ mask }}' + gateway: '{{ gateway }}' + ip_ranges: + - 'start': '{{ start }}' + 'end': '{{ end }}' + vlan_id: {{ vlan }} + name: '{{ key }}' + {%- endfor %} + +interfaces: + {%- for key in mapping %} + - name: '{{ key }}' + interface: '{{ networks[key].interface_name }}' + {%- endfor %} + +internal_vip: '{{ networks['MANAGEMENT'].vip }}' +public_vip: '{{ networks['PUBLICAPI'].vip }}' + +{%- endif %} diff --git a/config/installers/fuel/pod_config.yml.j2 b/config/installers/fuel/pod_config.yml.j2 index c2f14035..28c61888 100644 --- a/config/installers/fuel/pod_config.yml.j2 +++ b/config/installers/fuel/pod_config.yml.j2 @@ -8,6 +8,10 @@ {%- if conf.net_config.public.dns is defined -%} {%- set dns_public = conf['net_config']['public']['dns'] -%} {%- endif -%} + {%- set pxe_interface = conf['net_config']['admin']['interface'] -%} + {%- if conf.net_config.public.gateway is defined -%} + {%- set net_public_gw = conf['net_config']['public']['gateway'] -%} + {%- endif -%} {%- else -%} {%- set net_admin = '192.168.11.0' -%} {%- set net_mgmt = '172.16.10.0' -%} @@ -15,28 +19,39 @@ {%- set net_public = '172.30.10.0' -%} {%- set vlan_mgmt = '300' -%} {%- set vlan_private = '1000' -%} + {%- set pxe_interface = 0 -%} {%- endif -%} {%- if dns_public is not defined -%} {%- set dns_public = [ '8.8.8.8', '8.8.4.4' ] -%} {%- endif -%} - -{%- set pxe_interface = 0 -%} +{%- if net_public_gw is not defined -%} + {%- set net_public_gw = net_public | ipaddr_index('1') -%} +{%- endif -%} --- parameters: _param: +{%- if conf.idf is defined %} + opnfv_jump_bridge_admin: {{ conf['idf']['fuel']['jumphost']['bridges']['admin'] }} + opnfv_jump_bridge_mgmt: {{ conf['idf']['fuel']['jumphost']['bridges']['mgmt'] }} + opnfv_jump_bridge_private: {{ conf['idf']['fuel']['jumphost']['bridges']['private'] }} + opnfv_jump_bridge_public: {{ conf['idf']['fuel']['jumphost']['bridges']['public'] }} +{%- endif %} + opnfv_infra_config_address: {{ net_mgmt | ipaddr_index('100') }} opnfv_infra_maas_node01_address: {{ net_mgmt | ipaddr_index('3') }} opnfv_infra_maas_node01_deploy_address: {{ net_admin | ipaddr_index('3') }} - opnfv_infra_compute_node01_address: {{ net_mgmt | ipaddr_index('141') }} - opnfv_infra_compute_node02_address: {{ net_mgmt | ipaddr_index('142') }} - opnfv_infra_compute_node03_address: {{ net_mgmt | ipaddr_index('143') }} opnfv_infra_kvm_address: {{ net_mgmt | ipaddr_index('140') }} opnfv_infra_kvm_node01_address: {{ net_mgmt | ipaddr_index('141') }} opnfv_infra_kvm_node02_address: {{ net_mgmt | ipaddr_index('142') }} opnfv_infra_kvm_node03_address: {{ net_mgmt | ipaddr_index('143') }} + opnfv_infra_maas_pxe_network_address: {{ net_admin }} + opnfv_infra_maas_pxe_address: {{ net_admin | ipaddr_index('3') }} + opnfv_infra_maas_pxe_start_address: {{ net_admin | ipaddr_index('5') }} + opnfv_infra_maas_pxe_end_address: {{ net_admin | ipaddr_index('250') }} + opnfv_openstack_gateway_node01_address: {{ net_mgmt | ipaddr_index('124') }} opnfv_openstack_gateway_node02_address: {{ net_mgmt | ipaddr_index('125') }} opnfv_openstack_gateway_node03_address: {{ net_mgmt | ipaddr_index('126') }} @@ -46,6 +61,8 @@ parameters: opnfv_openstack_proxy_address: {{ net_public | ipaddr_index('103') }} opnfv_openstack_proxy_node01_address: {{ net_public | ipaddr_index('104') }} opnfv_openstack_proxy_node02_address: {{ net_public | ipaddr_index('105') }} + opnfv_openstack_proxy_node01_control_address: {{ net_mgmt | ipaddr_index('104') }} + opnfv_openstack_proxy_node02_control_address: {{ net_mgmt | ipaddr_index('105') }} opnfv_openstack_control_address: {{ net_mgmt | ipaddr_index('10') }} opnfv_openstack_control_node01_address: {{ net_mgmt | ipaddr_index('11') }} opnfv_openstack_control_node02_address: {{ net_mgmt | ipaddr_index('12') }} @@ -76,6 +93,7 @@ parameters: opnfv_opendaylight_server_node01_single_address: {{ net_mgmt | ipaddr_index('111') }} + opnfv_net_public_gw: {{ net_public_gw }} opnfv_name_servers: {{ dns_public }} opnfv_dns_server01: '{{ dns_public[0] }}' @@ -83,35 +101,35 @@ parameters: opnfv_net_tenant_vlan: {{ vlan_private }} opnfv_maas_node01_architecture: '{{ conf['nodes'][0]['node']['arch'] | dpkg_arch }}/generic' - opnfv_maas_node01_power_address: {{ conf['nodes'][0]['remote_management']['address'] }} + opnfv_maas_node01_power_address: {{ conf['nodes'][0]['remote_management']['address'].rsplit('/')[0]}} opnfv_maas_node01_power_type: {{ conf['nodes'][0]['remote_management']['type'] }} opnfv_maas_node01_power_user: {{ conf['nodes'][0]['remote_management']['user'] }} opnfv_maas_node01_power_password: {{ conf['nodes'][0]['remote_management']['pass'] }} opnfv_maas_node01_interface_mac: '{{ conf['nodes'][0]['interfaces'][pxe_interface]['mac_address'] }}' opnfv_maas_node02_architecture: '{{ conf['nodes'][1]['node']['arch'] | dpkg_arch }}/generic' - opnfv_maas_node02_power_address: {{ conf['nodes'][1]['remote_management']['address'] }} + opnfv_maas_node02_power_address: {{ conf['nodes'][1]['remote_management']['address'].rsplit('/')[0] }} opnfv_maas_node02_power_type: {{ conf['nodes'][1]['remote_management']['type'] }} opnfv_maas_node02_power_user: {{ conf['nodes'][1]['remote_management']['user'] }} opnfv_maas_node02_power_password: {{ conf['nodes'][1]['remote_management']['pass'] }} opnfv_maas_node02_interface_mac: '{{ conf['nodes'][1]['interfaces'][pxe_interface]['mac_address'] }}' opnfv_maas_node03_architecture: '{{ conf['nodes'][2]['node']['arch'] | dpkg_arch }}/generic' - opnfv_maas_node03_power_address: {{ conf['nodes'][2]['remote_management']['address'] }} + opnfv_maas_node03_power_address: {{ conf['nodes'][2]['remote_management']['address'].rsplit('/')[0] }} opnfv_maas_node03_power_type: {{ conf['nodes'][2]['remote_management']['type'] }} opnfv_maas_node03_power_user: {{ conf['nodes'][2]['remote_management']['user'] }} opnfv_maas_node03_power_password: {{ conf['nodes'][2]['remote_management']['pass'] }} opnfv_maas_node03_interface_mac: '{{ conf['nodes'][2]['interfaces'][pxe_interface]['mac_address'] }}' opnfv_maas_node04_architecture: '{{ conf['nodes'][3]['node']['arch'] | dpkg_arch }}/generic' - opnfv_maas_node04_power_address: {{ conf['nodes'][3]['remote_management']['address'] }} + opnfv_maas_node04_power_address: {{ conf['nodes'][3]['remote_management']['address'].rsplit('/')[0] }} opnfv_maas_node04_power_type: {{ conf['nodes'][3]['remote_management']['type'] }} opnfv_maas_node04_power_user: {{ conf['nodes'][3]['remote_management']['user'] }} opnfv_maas_node04_power_password: {{ conf['nodes'][3]['remote_management']['pass'] }} opnfv_maas_node04_interface_mac: '{{ conf['nodes'][3]['interfaces'][pxe_interface]['mac_address'] }}' opnfv_maas_node05_architecture: '{{ conf['nodes'][4]['node']['arch'] | dpkg_arch }}/generic' - opnfv_maas_node05_power_address: {{ conf['nodes'][4]['remote_management']['address'] }} + opnfv_maas_node05_power_address: {{ conf['nodes'][4]['remote_management']['address'].rsplit('/')[0] }} opnfv_maas_node05_power_type: {{ conf['nodes'][4]['remote_management']['type'] }} opnfv_maas_node05_power_user: {{ conf['nodes'][4]['remote_management']['user'] }} opnfv_maas_node05_power_password: {{ conf['nodes'][4]['remote_management']['pass'] }} diff --git a/config/utils/README.eyaml.rst b/config/utils/README.eyaml.rst index 083d5192..0031d9d8 100644 --- a/config/utils/README.eyaml.rst +++ b/config/utils/README.eyaml.rst @@ -12,7 +12,7 @@ Prerequisites .. code-block:: bash - $ sudo yum install ruby-gems || sudo apt-get install ruby + $ sudo yum install rubygems || sudo apt-get install ruby $ sudo gem install hiera-eyaml $ eyaml createkeys @@ -22,13 +22,14 @@ Prerequisites $ sudo mkdir -p /etc/eyaml_keys/ $ sudo mv ./keys/* /etc/eyaml_keys/ + $ sudo rmdir ./keys #. Set up eyaml config.yaml .. code-block:: bash $ mkdir ~/.eyaml/ - $ cp config.yaml.example ~/.eyaml/config.yaml + $ cp config.example.yaml ~/.eyaml/config.yaml Encryption ---------- diff --git a/config/utils/generate_config.py b/config/utils/generate_config.py index ba4192cb..37108808 100755 --- a/config/utils/generate_config.py +++ b/config/utils/generate_config.py @@ -57,9 +57,13 @@ ENV.filters['dpkg_arch'] = dpkg_arch try: DICT = yaml.safe_load(check_output(['eyaml', 'decrypt', '-f', ARGS.yaml])) except CalledProcessError as ex: - pass -if not DICT: - logging.warn('PDF decryption failed, fallback to using raw data.') + logging.error('eyaml decryption failed, keys might be missing') +except OSError as ex: + logging.warn('eyaml not found, skipping decryption') +try: + DICT +except NameError as ex: + logging.warn('PDF decryption skipped, fallback to using raw data.') with open(ARGS.yaml) as _: DICT = yaml.safe_load(_) |