summaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/installers/daisy/network-dpdk.yaml.j2102
-rw-r--r--config/installers/daisy/network.yaml.j2102
-rw-r--r--config/installers/fuel/pod_config.yml.j238
-rw-r--r--config/utils/README.eyaml.rst5
-rwxr-xr-xconfig/utils/generate_config.py10
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(_)