kolla-kubernetes/tools/setup_gate.sh

135 lines
4.0 KiB
Bash
Executable File

#!/bin/bash -xe
[ "x$4" == "xiscsi" ] && echo "iscsi support pending..." && exit 0
trap 'tests/bin/gate_capture_logs.sh "$?"' ERR
mkdir -p $WORKSPACE/logs/
env > $WORKSPACE/logs/env
sudo iptables-save > $WORKSPACE/logs/iptables-before.txt
tests/bin/fix_gate_iptables.sh
virtualenv .venv
. .venv/bin/activate
cat > /tmp/clonemap <<"EOF"
clonemap:
- name: openstack/kolla
dest: kolla
EOF
[ -x /usr/zuul-env/bin/zuul-cloner ] && \
/usr/zuul-env/bin/zuul-cloner -m /tmp/clonemap --workspace `pwd` \
--branch master --cache-dir /opt/git git://git.openstack.org \
openstack/kolla || \
git clone https://github.com/openstack/kolla.git
sudo ln -s `pwd`/kolla/etc/kolla /etc/kolla
sudo ln -s `pwd`/kolla /usr/share/kolla
sudo ln -s `pwd`/etc/kolla-kubernetes /etc/kolla-kubernetes
if [ -f /etc/redhat-release ]; then
sudo yum install -y crudini jq sshpass
else
sudo apt-get update
sudo apt-get install -y crudini jq sshpass
fi
pushd kolla;
pip install pip --upgrade
pip install "ansible<2.1"
pip install "python-openstackclient"
pip install "python-neutronclient"
pip install -r requirements.txt
pip install pyyaml
popd
pip install -r requirements.txt
pip install .
tests/bin/setup_config.sh "$2" "$4"
tests/bin/setup_gate_loopback.sh
tools/setup_kubernetes.sh master
kubectl taint nodes --all dedicated-
# Turn up kube-proxy logging
# kubectl -n kube-system get ds -l 'component=kube-proxy-amd64' -o json \
# | sed 's/--v=4/--v=9/' \
# | kubectl apply -f - && kubectl -n kube-system delete pods -l 'component=kube-proxy-amd64'
if [ "x$4" == "xceph-multi" ]; then
NODES=1
cat /etc/nodepool/sub_nodes_private | while read line; do
NODES=$((NODES+1))
echo $line
scp tools/setup_kubernetes.sh $line:
scp tests/bin/fix_gate_iptables.sh $line:
scp /usr/bin/kubectl $line:kubectl
ssh $line bash fix_gate_iptables.sh
ssh $line sudo iptables-save > $WORKSPACE/logs/iptables-$line.txt
ssh $line sudo setenforce 0
ssh $line sudo mv kubectl /usr/bin/
ssh $line bash setup_kubernetes.sh slave "$(cat /etc/kubernetes/token.txt)" "$(cat /etc/kubernetes/ip.txt)"
ssh $line sudo sed -i "'s@KUBELET_EXTRA_ARGS=@KUBELET_EXTRA_ARGS=--hostname-override=$line @'" /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
ssh $line sudo systemctl daemon-reload
ssh $line sudo systemctl restart kubelet
set +xe
count=0
while true; do
c=$(kubectl get nodes --no-headers=true | wc -l)
[ $c -ge $NODES ] && break
count=$((count+1))
[ $count -gt 30 ] && break
sleep 1
done
[ $count -gt 30 ] && echo Node failed to join. && exit -1
set -xe
kubectl get nodes
kubectl label node $line kolla_compute=true
done
fi
NODE=$(hostname -s)
kubectl label node $NODE kolla_controller=true
if [ "x$4" != "xceph-multi" ]; then
kubectl label node $NODE kolla_compute=true
fi
tests/bin/setup_canal.sh
kubectl create namespace kolla
tools/secret-generator.py create
TOOLBOX=$(kollakube tmpl bootstrap neutron-create-db -o json | jq -r '.spec.template.spec.containers[0].image')
sudo docker pull $TOOLBOX > /dev/null
timeout 240s tools/setup-resolv-conf.sh
tests/bin/build_test_ceph.sh
kollakube res create pod ceph-admin ceph-rbd
tools/wait_for_pods.sh kolla
str="ceph -w"
kubectl exec ceph-admin -c main --namespace=kolla -- /bin/bash -c "$str" \
> $WORKSPACE/logs/ceph.log &
for x in kollavolumes images volumes vms; do
kubectl exec ceph-admin -c main --namespace=kolla -- /bin/bash \
-c "ceph osd pool create $x 64; ceph osd pool set $x size 1; ceph osd pool set $x min_size 1"
done
kubectl exec ceph-admin -c main --namespace=kolla -- /bin/bash \
-c "ceph osd pool delete rbd rbd --yes-i-really-really-mean-it"
tools/setup_simple_ceph_users.sh
tools/setup_rbd_volumes.sh --yes-i-really-really-mean-it
tests/bin/ceph_workflow.sh "$4"
. ~/keystonerc_admin
kubectl get pods --namespace=kolla
tests/bin/basic_tests.sh