2016-06-27 15:57:29 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
2016-06-30 13:21:58 +00:00
|
|
|
# FIXME: hardcoded roles
|
|
|
|
declare -A nodes
|
|
|
|
nodes=( \
|
|
|
|
["node2"]="openstack-controller=true"
|
|
|
|
["node3"]="openstack-controller=true"
|
|
|
|
["node4"]="openstack-controller=true"
|
|
|
|
["node5"]="openstack-compute=true"
|
|
|
|
["node6"]="openstack-compute=true"
|
|
|
|
["node7"]="openstack-compute=true"
|
|
|
|
)
|
|
|
|
|
2016-06-27 15:57:29 +00:00
|
|
|
create_network_conf() {
|
2016-07-01 15:19:41 +00:00
|
|
|
if [ -f /root/cluster-topology.yaml ] ; then
|
|
|
|
echo "/root/cluster-topology.yaml already exists"
|
|
|
|
else
|
|
|
|
kubectl get nodes -o go-template='{{range .items}}{{range .status.addresses}}{{if or (eq .type "ExternalIP") (eq .type "LegacyHostIP")}}{{.address}}{{print "\n"}}{{end}}{{end}}{{end}}'> /tmp/nodes
|
|
|
|
( echo "network:"; i=2; for ip in `cat /tmp/nodes `; do echo -e " node$i:\n private:\n address: $ip"; i=$(( i+=1 )) ; done ) > /root/cluster-topology.yaml
|
|
|
|
fi
|
2016-06-27 15:57:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
assign_node_roles() {
|
2016-07-06 11:13:45 +00:00
|
|
|
all_label='openstack-compute-controller=true'
|
2016-06-30 13:21:58 +00:00
|
|
|
for i in "${!nodes[@]}"
|
|
|
|
do
|
|
|
|
node=$i
|
|
|
|
label=${nodes[$i]}
|
|
|
|
kubectl get nodes $node --show-labels | grep -q "$label" || kubectl label nodes $node $label
|
2016-07-06 11:13:45 +00:00
|
|
|
kubectl get nodes $node --show-labels | grep -q "$all_label" || kubectl label nodes $node $all_label
|
2016-06-30 13:21:58 +00:00
|
|
|
done
|
2016-06-27 15:57:29 +00:00
|
|
|
}
|
|
|
|
|
2016-07-01 15:19:41 +00:00
|
|
|
delete_namespace() {
|
2016-07-05 13:14:14 +00:00
|
|
|
if kubectl get namespace | grep -q ^openstack ; then
|
|
|
|
kubectl delete namespace openstack && while kubectl get namespace | grep -q ^openstack ; do sleep 5; done
|
|
|
|
fi
|
2016-07-01 15:19:41 +00:00
|
|
|
}
|
2016-06-29 09:24:20 +00:00
|
|
|
|
2016-07-01 15:19:41 +00:00
|
|
|
deploy_microservices() {
|
2016-07-06 11:17:08 +00:00
|
|
|
mcp-microservices --config-file=/root/mcp.conf --deploy-config=deploy-config.yaml deploy &> /var/log/mcp-deploy.log
|
2016-07-01 15:19:41 +00:00
|
|
|
}
|
2016-06-27 15:57:29 +00:00
|
|
|
|
2016-07-01 15:19:41 +00:00
|
|
|
create_network_conf
|
|
|
|
assign_node_roles
|
|
|
|
delete_namespace
|
|
|
|
deploy_microservices
|