summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>2018-02-08 01:54:55 +0100
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>2018-02-17 21:05:36 +0100
commitff66a5fc9347cbe1f8a626750cce3d3e5d201ca9 (patch)
tree5b7142bbe0167edafe2ac0101e1e064fbf92c1b3
parent81561126307f15d4f65a743ed2431ea8c713a921 (diff)
[MaaS] Add maas.machines.set_storage_layout sls
On cmp nodes, allocate only 30GB (fixed for now) for / partition. The rest of the disk(s) can later be allocated via salt-formula-linux. JIRA: FUEL-330 Change-Id: Ie11c78791e60801719cd33475ff91fc003df5ffa Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-rwxr-xr-xmcp/config/states/maas10
-rw-r--r--mcp/salt-formulas/maas/machines/set_storage_layout.sls20
2 files changed, 30 insertions, 0 deletions
diff --git a/mcp/config/states/maas b/mcp/config/states/maas
index 0034e78f1..f6c9f833c 100755
--- a/mcp/config/states/maas
+++ b/mcp/config/states/maas
@@ -57,6 +57,16 @@ function maas_fixup() {
sleep 10
done
if [ -n "${fdnodes}" ] || [ -n "${rnodes}" ]; then
+ for node_system_id in ${fdnodes} ${rnodes}; do
+ # For now, we allocate 30GB (fixed) for / on cmp nodes
+ local node_hostname=$(echo "${statusout}" | \
+ grep -Pzo 'hostname: \K.+(?=\n.+\n\s+system_id: '"${node_system_id}"')')
+ if [[ "${node_hostname}" =~ ^cmp ]]; then
+ salt -C 'mas01*' state.apply maas.machines.set_storage_layout \
+ pillar="{'system_id': '${node_system_id}', 'lv_size': '32212254720'}"
+ sleep 10
+ fi
+ done
salt -C 'mas01*' state.apply maas.machines.deploy
return 1
fi
diff --git a/mcp/salt-formulas/maas/machines/set_storage_layout.sls b/mcp/salt-formulas/maas/machines/set_storage_layout.sls
new file mode 100644
index 000000000..0b7e37153
--- /dev/null
+++ b/mcp/salt-formulas/maas/machines/set_storage_layout.sls
@@ -0,0 +1,20 @@
+##############################################################################
+# Copyright (c) 2018 Mirantis Inc., Enea AB 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
+##############################################################################
+{%- from "maas/map.jinja" import region with context %}
+
+maas_login_admin:
+ cmd.run:
+ - name: "maas-region apikey --username {{ region.admin.username }} > /var/lib/maas/.maas_credentials"
+ - unless: 'test -e /var/lib/maas/.maas_credentials'
+
+# TODO: implement set_storage_layout via _modules/maas.py
+set_storage_layout:
+ cmd.run:
+ - name: "maas login {{ region.admin.username }} http://{{ region.bind.host }}:5240/MAAS/api/2.0 - < /var/lib/maas/.maas_credentials && maas opnfv machine set-storage-layout {{ pillar['system_id'] }} storage_layout={{ pillar['storage_layout'] | default('lvm') }} lv_size={{ pillar['lv_size'] | default('100%') }}"
+ - require:
+ - cmd: maas_login_admin