diff options
author | Alexandru Avadanii <Alexandru.Avadanii@enea.com> | 2017-09-08 23:03:56 +0200 |
---|---|---|
committer | Alexandru Avadanii <Alexandru.Avadanii@enea.com> | 2017-10-14 01:14:54 +0000 |
commit | ea64dc22ea171d45ae60aff682fcadf9d525889b (patch) | |
tree | 4e098d0370f8b6fb43b4ecda31af6ce4642ef98f /mcp/config/states/virtual_control_plane | |
parent | 139aacf390d38b60f4fe4fd618a0bcf6b54b35cf (diff) |
states: Split virtual_control_plane from maas
We should eventually also support baremetal deploys without a
virtualized control plane (VCP), so decouple MaaS provisioning
from VCP provisioning.
While at it, move "wait_for" bash function from maas state to
common library file, lib.sh.
Change-Id: I32c33135655cb6aceae901a5f92b51265a8c84b4
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
(cherry picked from commit ebd7067904b36ae32566da63e433365948a1f973)
Diffstat (limited to 'mcp/config/states/virtual_control_plane')
-rwxr-xr-x | mcp/config/states/virtual_control_plane | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/mcp/config/states/virtual_control_plane b/mcp/config/states/virtual_control_plane new file mode 100755 index 000000000..69f26c34e --- /dev/null +++ b/mcp/config/states/virtual_control_plane @@ -0,0 +1,41 @@ +#!/bin/bash +# shellcheck disable=SC1090 +set -x + +source "$(dirname "${BASH_SOURCE[0]}")/../../scripts/lib.sh" + +# KVM, compute node prereqs (libvirt first), VCP deployment +salt -C 'kvm*' pkg.install bridge-utils +salt -C 'kvm*' state.apply linux.network +salt -C 'kvm*' system.reboot +wait_for 90 "! salt 'kvm*' test.ping | tee /dev/stderr | fgrep -q 'Not connected'" + +salt -C '* and not cfg01* and not mas01*' state.apply linux,ntp + +salt -C 'kvm*' state.sls libvirt + +salt -C '* and not cfg01* and not mas01*' state.apply salt +salt -C 'kvm*' saltutil.sync_all +wait_for 10 "! salt -C 'kvm*' state.sls salt.control | " \ + "tee /dev/stderr | fgrep -q 'Not connected'" + +vcp_nodes=$(salt --out yaml 'kvm01*' pillar.get salt:control:cluster:internal:node | \ + awk '/\s+\w+:$/ {gsub(/:$/, "*"); print $1}') + +# Check all vcp nodes are available +rc=1 +while [ $rc -ne 0 ]; do + rc=0 + for node in $vcp_nodes; do + salt "$node" test.ping 2>/dev/null || { rc=$?; break; }; + done + sleep 5 +done + +wait_for 10 "salt -C '* and not cfg01* and not mas01*' saltutil.sync_all" +wait_for 10 "salt -C 'E@^(?!cfg01|mas01|kvm|cmp00).*' state.apply salt" +wait_for 10 "! salt -C 'E@^(?!cfg01|mas01|kvm|cmp00).*' state.apply linux,ntp | " \ + "tee /dev/stderr | fgrep -q 'Not connected'" + +wait_for 10 "salt -C 'E@^(?!cfg01|mas01|kvm|cmp00).*' ssh.set_auth_key ${SUDO_USER} \ + $(awk 'NR==1{print $2}' "$(eval echo "~${SUDO_USER}/.ssh/authorized_keys")")" |