Reliably get swarm nodeid of current host

This commit is contained in:
SKP
2020-01-21 15:22:41 +01:00
committed by kexkey
parent aa85b43660
commit 1c143682c4

20
dist/setup.sh vendored
View File

@@ -545,34 +545,34 @@ install_docker() {
next
fi
local nodeid
nodeid=$(docker node ls -f role=manager --format="{{.ID}}")
local localnodeid
localnodeid=$(docker info -f '{{.Swarm.NodeID}}')
# we only support swarm in single host mode, so all labels needed to spawn containers in the swarm
# are given to the manager of the swarm
# it is possible to move the io.cyphernode.apps label to a different node,
# for apps which rely on shared volumes with core components, we have the io.cyphernode.clingyapps
if [[ $(docker node inspect ${nodeid} --format '{{ index .Spec.Labels "io.cyphernode.core" }}') == "true" ]]; then
if [[ $(docker node inspect ${localnodeid} --format '{{ index .Spec.Labels "io.cyphernode.core" }}') == "true" ]]; then
step "  [32madd docker node label: io.cyphernode.core"
try docker node update --label-add io.cyphernode.core=true ${nodeid} > /dev/null 2>&1
try docker node update --label-add io.cyphernode.core=true ${localnodeid} > /dev/null 2>&1
next
fi
if [[ $(docker node inspect ${nodeid} --format '{{ index .Spec.Labels "io.cyphernode.infra" }}') == "true" ]]; then
if [[ $(docker node inspect ${localnodeid} --format '{{ index .Spec.Labels "io.cyphernode.infra" }}') == "true" ]]; then
step "  [32madd docker node label: io.cyphernode.infra"
try docker node update --label-add io.cyphernode.infra=true ${nodeid} > /dev/null 2>&1
try docker node update --label-add io.cyphernode.infra=true ${localnodeid} > /dev/null 2>&1
next
fi
if [[ $(docker node inspect ${nodeid} --format '{{ index .Spec.Labels "io.cyphernode.apps" }}') == "true" ]]; then
if [[ $(docker node inspect ${localnodeid} --format '{{ index .Spec.Labels "io.cyphernode.apps" }}') == "true" ]]; then
step "  [32madd docker node label: io.cyphernode.apps"
try docker node update --label-add io.cyphernode.apps=true ${nodeid} > /dev/null 2>&1
try docker node update --label-add io.cyphernode.apps=true ${localnodeid} > /dev/null 2>&1
next
fi
if [[ $(docker node inspect ${nodeid} --format '{{ index .Spec.Labels "io.cyphernode.clingyapps" }}') == "true" ]]; then
if [[ $(docker node inspect ${localnodeid} --format '{{ index .Spec.Labels "io.cyphernode.clingyapps" }}') == "true" ]]; then
step "  [32madd docker node label: io.cyphernode.clingyapps"
try docker node update --label-add io.cyphernode.clingyapps=true ${nodeid} > /dev/null 2>&1
try docker node update --label-add io.cyphernode.clingyapps=true ${localnodeid} > /dev/null 2>&1
next
fi