aboutsummaryrefslogtreecommitdiffstats
path: root/mcp/config/states/onap
blob: d196074d9f3eaf43df6f15aed1c17e453489f2cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/bin/bash -e
##############################################################################
# Copyright (c) 2018 Tieto
# 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
##############################################################################
# Deploy ONAP on top of OPNFV installed by Fuel/MCP
# ONAP installation is managed by OPNFV Auto project

AUTO_INSTALL_DIR=/opt/auto
AUTO_REPO='https://gerrit.opnfv.org/gerrit/auto'
ONAP_INSTALL_SCRIPT='ci/deploy-onap-fuel.sh'

echo "Clone Auto Repo"
salt -C 'I@nova:controller and *01*' cmd.run "\
    rm -rf $AUTO_INSTALL_DIR; \
    git clone $AUTO_REPO $AUTO_INSTALL_DIR"

echo "ONAP installation starts at $(date)"
echo "It can take several hours to finish."

# detect compute HW configuration, i.e. minimal values available across
# all compute nodes
CMP_COUNT=$(salt -C 'I@nova:compute' grains.get id --out txt | wc -l)
CMP_MIN_MEM=$(salt -C 'I@nova:compute' grains.get mem_total --out txt  |\
    sed -re 's/^[^:]+: ([0-9]+)$/\1/g' | sort -n | head -n1)
CMP_MIN_CPUS=$(salt -C 'I@nova:compute' grains.get num_cpus --out txt  |\
    sed -re 's/^[^:]+: ([0-9]+)$/\1/g' | sort -n | head -n1)
# check disk size for storage of instances; if shared storage is mounted,
# then return its size, otherwise sum up avalable space of root disk of all
# compute nodes
STORAGE_PATH='/var/lib/nova/instances'
MOUNT_COUNT=$(salt "cmp*" mount.is_mounted $STORAGE_PATH --out txt |\
    grep True | wc -l)
if [ $MOUNT_COUNT -eq $CMP_COUNT ] ; then
    CMP_STORAGE_TOTAL=$(salt "cmp*" cmd.run "df -BGB $STORAGE_PATH" --out txt |\
        grep "$STORAGE_PATH" |\
        sed -re 's/^.* +([0-9]+)GB +([0-9]+GB +){2}.*$/\1/g' |\
        sort -n | head -n1)
else
    CMP_STORAGE_TOTAL=0
    for STORAGE in $(salt "cmp*" cmd.run "df -BGB /" --out txt | grep '/$' |\
        sed -re 's/^.* +([0-9]+GB +){2}([0-9]+)GB +.*$/\2/g') ; do
        CMP_STORAGE_TOTAL=$(($CMP_STORAGE_TOTAL+$STORAGE));
    done
fi

# Deploy ONAP with detected configuration
# execute installation from the 1st controller node
CTL01=$(salt  -C 'I@nova:controller and *01*' grains.get id --out txt |\
    head -n1 | cut -d':' -f1)
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
    -i /root/fuel/mcp/scripts/mcp.rsa -l ubuntu $CTL01 "bash -s" <<COMMANDS
  sudo -i
  source /root/keystonercv3
  cd $AUTO_INSTALL_DIR
  export CMP_COUNT=$CMP_COUNT
  export CMP_MIN_MEM=$CMP_MIN_MEM
  export CMP_MIN_CPUS=$CMP_MIN_CPUS
  export CMP_STORAGE_TOTAL=$CMP_STORAGE_TOTAL
  export AUTO_INSTALL_DIR=$AUTO_INSTALL_DIR
  $ONAP_INSTALL_SCRIPT | tee $AUTO_INSTALL_DIR/auto_deploy.log
COMMANDS