summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>2017-09-10 23:33:36 +0200
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>2017-09-12 04:52:30 +0200
commit4b11912d2dc915d642d82e6da0c94e185ec66c99 (patch)
tree278e25e5d8be4c690c8cf277eb851c5b5744730d
parenta760c973e420371b07ac1739ba2d32a1df87226f (diff)
reclass, states: Parametrize runtime configuration
mcpcontrol virsh network, as well as MaaS PXE network are installer specific, and not POD specific. Therefore, these should be easily parametrized without the PDF, using only installer inputs (e.g. env vars passed via Jenkins). - add new <all-mcp-ocata-common.opnfv.runtime> reclass class; - parametrize at runtime new reclass class based on global vars; - factor out MaaS deploy address / config using new mechanism; - parametrize at runtime virsh network definitions based on template; - add new "maas.pxe_route" sls for configuring routing on cfg01; - replace env vars with the new sls in "maas" state; NOTE: baremetal parametrization will be handled later. Change-Id: Ifd61143d818fb088b3f4395388ba769bbc49156e Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-rw-r--r--.gitignore1
-rwxr-xr-xci/deploy.sh10
-rwxr-xr-xmcp/config/states/maas3
-rw-r--r--mcp/patches/0005-maas-module-Obtain-fabric-ID-from-CIDR.patch10
-rw-r--r--mcp/reclass/classes/cluster/all-mcp-ocata-common/init.yml1
-rw-r--r--mcp/reclass/classes/cluster/all-mcp-ocata-common/opnfv/.gitignore1
-rw-r--r--mcp/reclass/classes/cluster/all-mcp-ocata-common/opnfv/init.yml2
-rw-r--r--mcp/reclass/classes/cluster/all-mcp-ocata-common/opnfv/runtime.yml.template9
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/infra/init.yml3
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/infra/maas.yml10
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/infra/init.yml3
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/infra/maas.yml10
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/infra/init.yml3
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/infra/maas.yml10
-rw-r--r--mcp/reclass/classes/cluster/virtual-mcp-ocata-common/infra/config.yml1
-rw-r--r--mcp/salt-formulas/maas/pxe_route.sls8
-rw-r--r--mcp/scripts/net_mcpcontrol.xml10
-rw-r--r--mcp/scripts/net_mcpcontrol.xml.template10
18 files changed, 73 insertions, 32 deletions
diff --git a/.gitignore b/.gitignore
index 72e939cfd..c8064d486 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@ deploy/autodeploy.log
mcp/deploy/images/
mcp/scripts/mcp.rsa*
mcp/scripts/user-data.sh
+mcp/scripts/net_mcpcontrol.xml
diff --git a/ci/deploy.sh b/ci/deploy.sh
index 603d6e562..f6af1b57a 100755
--- a/ci/deploy.sh
+++ b/ci/deploy.sh
@@ -135,6 +135,7 @@ clean() {
SCRIPT_PATH=$(readlink -f "$(dirname "${BASH_SOURCE[0]}")")
DEPLOY_DIR=$(cd "${SCRIPT_PATH}/../mcp/scripts"; pwd)
STORAGE_DIR=$(cd "${SCRIPT_PATH}/../mcp/deploy/images"; pwd)
+RECLASS_CLUSTER_DIR=$(cd "${SCRIPT_PATH}/../mcp/reclass/classes/cluster"; pwd)
DEPLOY_TYPE='baremetal'
OPNFV_BRIDGES=('pxebr' 'mgmt' 'internal' 'public')
URI_REGEXP='(file|https?|ftp)://.*'
@@ -143,6 +144,11 @@ export SSH_KEY=${SSH_KEY:-"/var/lib/opnfv/mcp.rsa"}
export SALT_MASTER=${INSTALLER_IP:-10.20.0.2}
export SALT_MASTER_USER=${SALT_MASTER_USER:-ubuntu}
export MAAS_IP=${MAAS_IP:-${SALT_MASTER%.*}.3}
+export MAAS_PXE_NETWORK=${MAAS_PXE_NETWORK:-192.168.11.0}
+
+# Derivated from above global vars
+export MCP_CTRL_NETWORK_ROOTSTR=${SALT_MASTER%.*}
+export MAAS_PXE_NETWORK_ROOTSTR=${MAAS_PXE_NETWORK%.*}
export SSH_OPTS="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ${SSH_KEY}"
export SSH_SALT="${SALT_MASTER_USER}@${SALT_MASTER}"
@@ -327,6 +333,10 @@ for node in "${virtual_nodes[@]}"; do
virtual_nodes_vcpus[$node]=${!virtual_custom_vcpus:-$virtual_default_vcpus}
done
+# Expand reclass and virsh network templates
+for tp in "${RECLASS_CLUSTER_DIR}/all-mcp-ocata-common/opnfv/"*.template \
+ net_*.template; do envsubst < "${tp}" > "${tp%.template}"; done
+
# Infra setup
generate_ssh_key
prepare_vms virtual_nodes "${base_image}" "${STORAGE_DIR}"
diff --git a/mcp/config/states/maas b/mcp/config/states/maas
index 67a7c213a..0d733bafa 100755
--- a/mcp/config/states/maas
+++ b/mcp/config/states/maas
@@ -56,8 +56,7 @@ salt -C 'mas01*' state.apply linux,salt,openssh,ntp
salt -C 'mas01*' state.apply linux.network.interface
salt -C 'mas01*' state.apply maas.pxe_nat
salt -C 'mas01*' state.apply maas.cluster
-salt -C 'cfg01*' cmd.run \
- "route add -net 192.168.11.0/24 gw ${MAAS_IP:-10.20.0.3}"
+salt -C 'cfg01*' state.apply maas.pxe_route
wait_for 10 "salt -C 'mas01*' state.apply maas.region"
diff --git a/mcp/patches/0005-maas-module-Obtain-fabric-ID-from-CIDR.patch b/mcp/patches/0005-maas-module-Obtain-fabric-ID-from-CIDR.patch
index 5c77a63da..9489b9089 100644
--- a/mcp/patches/0005-maas-module-Obtain-fabric-ID-from-CIDR.patch
+++ b/mcp/patches/0005-maas-module-Obtain-fabric-ID-from-CIDR.patch
@@ -20,9 +20,17 @@ Signed-off-by: Guillermo Herrero <Guillermo.Herrero@enea.com>
---
diff --git a/_modules/maas.py b/_modules/maas.py
-index d3227ca..8a2243d 100644
--- a/_modules/maas.py
+++ b/_modules/maas.py
+@@ -126,6 +126,8 @@
+
+ def process_single(name, config_data):
+ self._update = False
++ if isinstance(config_data, dict) and 'name' in config_data:
++ name = config_data['name']
+ try:
+ data = self.fill_data(name, config_data, **extra)
+ if data is None:
@@ -198,7 +198,8 @@
def fill_data(self, name, subnet, fabrics):
data = {
diff --git a/mcp/reclass/classes/cluster/all-mcp-ocata-common/init.yml b/mcp/reclass/classes/cluster/all-mcp-ocata-common/init.yml
index 1139b9d72..b8bde832e 100644
--- a/mcp/reclass/classes/cluster/all-mcp-ocata-common/init.yml
+++ b/mcp/reclass/classes/cluster/all-mcp-ocata-common/init.yml
@@ -1,2 +1,3 @@
classes:
- cluster.all-mcp-ocata-common.arch
+- cluster.all-mcp-ocata-common.opnfv
diff --git a/mcp/reclass/classes/cluster/all-mcp-ocata-common/opnfv/.gitignore b/mcp/reclass/classes/cluster/all-mcp-ocata-common/opnfv/.gitignore
new file mode 100644
index 000000000..4b9ab2b95
--- /dev/null
+++ b/mcp/reclass/classes/cluster/all-mcp-ocata-common/opnfv/.gitignore
@@ -0,0 +1 @@
+runtime.yml
diff --git a/mcp/reclass/classes/cluster/all-mcp-ocata-common/opnfv/init.yml b/mcp/reclass/classes/cluster/all-mcp-ocata-common/opnfv/init.yml
new file mode 100644
index 000000000..28619bae1
--- /dev/null
+++ b/mcp/reclass/classes/cluster/all-mcp-ocata-common/opnfv/init.yml
@@ -0,0 +1,2 @@
+classes:
+- cluster.all-mcp-ocata-common.opnfv.runtime
diff --git a/mcp/reclass/classes/cluster/all-mcp-ocata-common/opnfv/runtime.yml.template b/mcp/reclass/classes/cluster/all-mcp-ocata-common/opnfv/runtime.yml.template
new file mode 100644
index 000000000..121f70663
--- /dev/null
+++ b/mcp/reclass/classes/cluster/all-mcp-ocata-common/opnfv/runtime.yml.template
@@ -0,0 +1,9 @@
+parameters:
+ _param:
+ reclass_config_master: ${SALT_MASTER}
+
+ opnfv_fuel_maas_mcp_address: ${MAAS_IP}
+ opnfv_fuel_maas_pxe_network: ${MAAS_PXE_NETWORK}
+ opnfv_fuel_maas_pxe_address: ${MAAS_PXE_NETWORK_ROOTSTR}.3
+ opnfv_fuel_maas_pxe_iprange_start: ${MAAS_PXE_NETWORK_ROOTSTR}.5
+ opnfv_fuel_maas_pxe_iprange_end: ${MAAS_PXE_NETWORK_ROOTSTR}.250
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/infra/init.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/infra/init.yml
index d08bdbb77..730193ac7 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/infra/init.yml
+++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/infra/init.yml
@@ -1,5 +1,6 @@
classes:
- system.linux.system.single
+- cluster.all-mcp-ocata-common
- cluster.baremetal-mcp-ocata-odl-ha.openstack
# - cluster.baremetal-mcp-ocata-odl-ha.stacklight
# - cluster.baremetal-mcp-ocata-odl-ha.stacklight.client
@@ -19,7 +20,7 @@ parameters:
infra_config_address: 10.167.4.100
infra_config_deploy_address: 10.20.0.2
infra_maas_node01_address: 10.167.4.3
- infra_maas_node01_deploy_address: 192.168.11.3
+ infra_maas_node01_deploy_address: ${_param:opnfv_fuel_maas_pxe_address}
infra_maas_node01_external_address: 10.16.0.3
infra_compute_node01_address: 10.167.4.141
infra_compute_node02_address: 10.167.4.142
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/infra/maas.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/infra/maas.yml
index c4bc92954..72b9f52c8 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/infra/maas.yml
+++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/infra/maas.yml
@@ -32,13 +32,13 @@ parameters:
network_discovery: 'enabled'
default_min_hwe_kernel: 'hwe-16.04'
subnets:
- # TODO: parametrize address root (192.168.11), dhcp start/end?
- 192.168.11.0/24:
- cidr: 192.168.11.0/24
+ opnfv_fuel_maas_pxe:
+ name: ${_param:opnfv_fuel_maas_pxe_network}/24
+ cidr: ${_param:opnfv_fuel_maas_pxe_network}/24
gateway_ip: ${_param:single_address}
iprange:
- start: 192.168.11.5
- end: 192.168.11.250
+ start: ${_param:opnfv_fuel_maas_pxe_iprange_start}
+ end: ${_param:opnfv_fuel_maas_pxe_iprange_end}
type: dynamic
vlans:
untagged:
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/infra/init.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/infra/init.yml
index 7d029b3ab..94ccc9e2f 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/infra/init.yml
+++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/infra/init.yml
@@ -1,5 +1,6 @@
classes:
- system.linux.system.single
+- cluster.all-mcp-ocata-common
- cluster.baremetal-mcp-ocata-ovs-dpdk-ha.openstack
# - cluster.baremetal-mcp-ocata-ovs-dpdk-ha.stacklight
# - cluster.baremetal-mcp-ocata-ovs-dpdk-ha.stacklight.client
@@ -19,7 +20,7 @@ parameters:
infra_config_address: 10.167.4.100
infra_config_deploy_address: 10.20.0.2
infra_maas_node01_address: 10.167.4.3
- infra_maas_node01_deploy_address: 192.168.11.3
+ infra_maas_node01_deploy_address: ${_param:opnfv_fuel_maas_pxe_address}
infra_maas_node01_external_address: 10.16.0.3
infra_compute_node01_address: 10.167.4.141
infra_compute_node02_address: 10.167.4.142
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/infra/maas.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/infra/maas.yml
index b83aa1e9e..bdf7fea01 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/infra/maas.yml
+++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/infra/maas.yml
@@ -32,13 +32,13 @@ parameters:
network_discovery: 'enabled'
default_min_hwe_kernel: 'hwe-16.04'
subnets:
- # TODO: parametrize address root (192.168.11), dhcp start/end?
- 192.168.11.0/24:
- cidr: 192.168.11.0/24
+ opnfv_fuel_maas_pxe:
+ name: ${_param:opnfv_fuel_maas_pxe_network}/24
+ cidr: ${_param:opnfv_fuel_maas_pxe_network}/24
gateway_ip: ${_param:single_address}
iprange:
- start: 192.168.11.5
- end: 192.168.11.250
+ start: ${_param:opnfv_fuel_maas_pxe_iprange_start}
+ end: ${_param:opnfv_fuel_maas_pxe_iprange_end}
type: dynamic
vlans:
untagged:
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/infra/init.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/infra/init.yml
index b6261f624..6bf0fbe63 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/infra/init.yml
+++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/infra/init.yml
@@ -1,5 +1,6 @@
classes:
- system.linux.system.single
+- cluster.all-mcp-ocata-common
- cluster.baremetal-mcp-ocata-ovs-ha.openstack
# - cluster.baremetal-mcp-ocata-ovs-ha.stacklight
# - cluster.baremetal-mcp-ocata-ovs-ha.stacklight.client
@@ -19,7 +20,7 @@ parameters:
infra_config_address: 10.167.4.100
infra_config_deploy_address: 10.20.0.2
infra_maas_node01_address: 10.167.4.3
- infra_maas_node01_deploy_address: 192.168.11.3
+ infra_maas_node01_deploy_address: ${_param:opnfv_fuel_maas_pxe_address}
infra_maas_node01_external_address: 10.16.0.3
infra_compute_node01_address: 10.167.4.141
infra_compute_node02_address: 10.167.4.142
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/infra/maas.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/infra/maas.yml
index d193469fc..f77abea6d 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/infra/maas.yml
+++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/infra/maas.yml
@@ -32,13 +32,13 @@ parameters:
network_discovery: 'enabled'
default_min_hwe_kernel: 'hwe-16.04'
subnets:
- # TODO: parametrize address root (192.168.11), dhcp start/end?
- 192.168.11.0/24:
- cidr: 192.168.11.0/24
+ opnfv_fuel_maas_pxe:
+ name: ${_param:opnfv_fuel_maas_pxe_network}/24
+ cidr: ${_param:opnfv_fuel_maas_pxe_network}/24
gateway_ip: ${_param:single_address}
iprange:
- start: 192.168.11.5
- end: 192.168.11.250
+ start: ${_param:opnfv_fuel_maas_pxe_iprange_start}
+ end: ${_param:opnfv_fuel_maas_pxe_iprange_end}
type: dynamic
vlans:
untagged:
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-common/infra/config.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-common/infra/config.yml
index 0e3a26454..73e2da5a9 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-ocata-common/infra/config.yml
+++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-common/infra/config.yml
@@ -16,7 +16,6 @@ parameters:
reclass_data_repository: local
salt_master_environment_repository: "https://github.com/tcpcloud"
salt_master_environment_revision: master
- reclass_config_master: 10.20.0.2
single_address: 172.16.10.100
salt_master_host: 127.0.0.1
salt_master_base_environment: prd
diff --git a/mcp/salt-formulas/maas/pxe_route.sls b/mcp/salt-formulas/maas/pxe_route.sls
new file mode 100644
index 000000000..5f7cebdda
--- /dev/null
+++ b/mcp/salt-formulas/maas/pxe_route.sls
@@ -0,0 +1,8 @@
+routes:
+ network.routes:
+ - name: {{ salt['pillar.get']('_param:opnfv_fn_vm_primary_interface') }}
+ - routes:
+ - name: maas_mcp_to_pxe_network
+ ipaddr: {{ salt['pillar.get']('_param:opnfv_fuel_maas_pxe_network') }}
+ netmask: 255.255.255.0
+ gateway: {{ salt['pillar.get']('_param:opnfv_fuel_maas_mcp_address') }}
diff --git a/mcp/scripts/net_mcpcontrol.xml b/mcp/scripts/net_mcpcontrol.xml
deleted file mode 100644
index 6a4cfd5b0..000000000
--- a/mcp/scripts/net_mcpcontrol.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<network>
- <name>mcpcontrol</name>
- <bridge name="mcpcontrol"/>
- <forward mode="nat"/>
- <ip address="10.20.0.1" netmask="255.255.255.0">
- <dhcp>
- <range start="10.20.0.2" end="10.20.0.254"/>
- </dhcp>
- </ip>
-</network>
diff --git a/mcp/scripts/net_mcpcontrol.xml.template b/mcp/scripts/net_mcpcontrol.xml.template
new file mode 100644
index 000000000..722a66aa9
--- /dev/null
+++ b/mcp/scripts/net_mcpcontrol.xml.template
@@ -0,0 +1,10 @@
+<network>
+ <name>mcpcontrol</name>
+ <bridge name="mcpcontrol"/>
+ <forward mode="nat"/>
+ <ip address="${MCP_CTRL_NETWORK_ROOTSTR}.1" netmask="255.255.255.0">
+ <dhcp>
+ <range start="${MCP_CTRL_NETWORK_ROOTSTR}.2" end="${MCP_CTRL_NETWORK_ROOTSTR}.254"/>
+ </dhcp>
+ </ip>
+</network>