Merge "Gate refactoring"

This commit is contained in:
Jenkins 2017-02-09 21:12:42 +00:00 committed by Gerrit Code Review
commit d9fa091353
17 changed files with 401 additions and 384 deletions

View File

@ -10,7 +10,6 @@ global:
- mariadb
manage_db:
job:
ceph_backend: true
dependencies:
SERVICE:
- mariadb
@ -57,8 +56,6 @@ global:
SERVICE:
- keystone-admin
api:
all:
ceph_backend: true
deployment:
dependencies:
JOBS:

View File

@ -3,8 +3,6 @@ global:
all:
kubernetes_entrypoint: true
nova:
all:
ceph_backend: true
compute:
daemonset:
dependencies:

View File

@ -2,7 +2,6 @@ global:
kolla:
all:
kubernetes_entrypoint: true
element_name: rabbitmq
rabbitmq:
init_element:
job:

View File

@ -6,19 +6,7 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/../.." && pwd )"
IP=172.18.0.1
. "$DIR/tests/bin/common_workflow_config.sh"
function ceph_values {
echo "global:"
echo " kolla:"
echo " all:"
echo " ceph:"
echo " monitors:"
addr=172.17.0.1
if [ "x$1" == "xceph-multi" ]; then
addr=$(cat /etc/nodepool/primary_node_private)
fi
echo " - $addr"
}
. "$DIR/tests/bin/common_ceph_config.sh"
tunnel_interface=docker0
if [ "x$1" == "xceph-multi" ]; then
@ -34,24 +22,17 @@ function general_config {
common_workflow_config $IP $base_distro $tunnel_interface
}
function ceph_config {
general_config
common_ceph_config $1
}
common_vars="kube_logger=false,base_distro=$base_distro"
kollakube res create configmap \
mariadb keystone horizon rabbitmq memcached nova-api nova-conductor \
nova-scheduler glance-api-haproxy glance-registry-haproxy glance-api \
glance-registry neutron-server neutron-dhcp-agent neutron-l3-agent \
neutron-metadata-agent neutron-openvswitch-agent openvswitch-db-server \
openvswitch-vswitchd nova-libvirt nova-compute nova-consoleauth \
nova-novncproxy nova-novncproxy-haproxy neutron-server-haproxy \
nova-api-haproxy cinder-api cinder-api-haproxy cinder-backup \
cinder-scheduler cinder-volume keepalived;
kollakube res create secret nova-libvirt
for x in mariadb rabbitmq glance helm-repo; do
helm install kolla/$x-pv --debug --version $VERSION \
--name $x-pv --set "element_name=$x,storage_provider=ceph" \
--values <(ceph_values $1)
--values <(ceph_config $1)
helm install kolla/$x-pvc --debug --version $VERSION --namespace kolla \
--name $x-pvc --set "element_name=$x,storage_provider=ceph"
done

View File

@ -6,49 +6,19 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/../.." && pwd )"
IP=172.18.0.1
. "$DIR/tests/bin/common_workflow_config.sh"
. "$DIR/tests/bin/common_ceph_config.sh"
function general_config {
common_workflow_config $IP $base_distro $tunnel_interface
}
function ceph_values {
echo "global:"
echo " kolla:"
echo " all:"
echo " ceph:"
echo " monitors:"
addr=172.17.0.1
if [ "x$1" == "xceph-multi" ]; then
addr=$(cat /etc/nodepool/primary_node_private)
fi
echo " - $addr"
function ceph_config {
common_ceph_config $1
}
function helm_entrypoint_general {
echo "global:"
echo " kolla:"
echo " all:"
echo " kube_logger: false"
echo " external_vip: $IP"
echo " base_distro: $base_distro"
echo " tunnel_interface: $tunnel_interface"
echo " storage_provider: ceph"
echo " storage_provider_fstype: xfs"
echo " ceph:"
echo " monitors:"
### NOTE (sbezverk) 172.17.0.1 is default ip address used by Docker
addr=172.17.0.1
if [ "x$1" == "xceph-multi" ]; then
addr=$(cat /etc/nodepool/primary_node_private)
fi
echo " - $addr"
echo " pool: kollavolumes"
echo " secret_name: ceph-kolla"
echo " user: kolla"
echo " keystone:"
echo " all:"
echo " admin_port_external: true"
echo " dns_name: $IP"
function entry_point_config {
general_config
ceph_config
}
tunnel_interface=docker0
@ -63,43 +33,31 @@ base_distro="$2"
common_vars="kube_logger=false,base_distro=$base_distro"
kollakube res create configmap \
mariadb keystone horizon rabbitmq memcached nova-api nova-conductor \
nova-scheduler glance-api-haproxy glance-registry-haproxy glance-api \
glance-registry neutron-server neutron-dhcp-agent neutron-l3-agent \
neutron-metadata-agent neutron-openvswitch-agent openvswitch-db-server \
openvswitch-vswitchd nova-libvirt nova-compute nova-consoleauth \
nova-novncproxy nova-novncproxy-haproxy neutron-server-haproxy \
nova-api-haproxy cinder-api cinder-api-haproxy cinder-backup \
cinder-scheduler cinder-volume keepalived;
kollakube res create secret nova-libvirt
helm install kolla/mariadb --version $VERSION \
--namespace kolla --name mariadb --set "$common_vars,element_name=mariadb" \
--values <(helm_entrypoint_general $1)
--values <(entry_point_config $1)
helm install kolla/memcached --version $VERSION \
--namespace kolla --name memcached \
--set "$common_vars,element_name=memcached" \
--values <(helm_entrypoint_general $1)
--values <(entry_point_config $1)
helm install kolla/rabbitmq --version $VERSION \
--namespace kolla --name rabbitmq --set "$common_vars" \
--values <(helm_entrypoint_general $1)
--values <(entry_point_config $1)
$DIR/tools/pull_containers.sh kolla
$DIR/tools/wait_for_pods.sh kolla
helm install kolla/keystone --version $VERSION \
--namespace kolla --name keystone --set "$common_vars,element_name=keystone" \
--values <(helm_entrypoint_general $1)
--values <(entry_point_config $1)
$DIR/tools/pull_containers.sh kolla
$DIR/tools/wait_for_pods.sh kolla
helm install kolla/openvswitch --version $VERSION \
--namespace kolla --name openvswitch --values <(helm_entrypoint_general $1)
--namespace kolla --name openvswitch --values <(entry_point_config $1)
$DIR/tools/pull_containers.sh kolla
$DIR/tools/wait_for_pods.sh kolla
@ -128,14 +86,14 @@ helm install kolla/cinder-volume-ceph-statefulset --version $VERSION \
helm install kolla/cinder-control --version $VERSION \
--namespace kolla --name cinder --set "$common_vars,element_name=cinder" \
--values <(helm_entrypoint_general $1)
--values <(entry_point_config $1)
helm install kolla/glance --version $VERSION \
--namespace kolla --name glance --set "$common_vars,element_name=glance" \
--values <(helm_entrypoint_general $1)
--values <(entry_point_config $1)
helm install kolla/neutron --version $VERSION \
--namespace kolla --name neutron --values <(helm_entrypoint_general $1)
--namespace kolla --name neutron --values <(entry_point_config $1)
$DIR/tools/pull_containers.sh kolla
$DIR/tools/wait_for_pods.sh kolla
@ -144,16 +102,16 @@ helm ls
helm install kolla/nova-control --version $VERSION --namespace kolla \
--name nova-control --set "$common_vars,element_name=nova" \
--values <(helm_entrypoint_general $1)
--values <(entry_point_config $1)
helm install kolla/nova-compute --version $VERSION --namespace kolla \
--name nova-compute --set "$common_vars,element_name=nova" \
--values <(helm_entrypoint_general $1)
--values <(entry_point_config $1)
helm install kolla/horizon --version $VERSION \
--namespace kolla --name horizon \
--set "$common_vars,element_name=horizon" \
--values <(helm_entrypoint_general $1)
--values <(entry_point_config $1)
#kollakube res create pod keepalived

21
tests/bin/common_ceph_config.sh Executable file
View File

@ -0,0 +1,21 @@
function common_ceph_config {
echo " ceph_backend: true"
echo " storage_provider: ceph"
echo " storage_provider_fstype: xfs"
echo " ceph:"
echo " monitors:"
addr=172.17.0.1
if [ "x$1" == "xceph-multi" ]; then
addr=$(cat /etc/nodepool/primary_node_private)
fi
echo " - $addr"
echo " pool: kollavolumes"
echo " secret_name: ceph-kolla"
echo " user: kolla"
echo " glance:"
echo " all:"
echo " ceph_backend: true"
echo " nova:"
echo " all:"
echo " ceph_backend: true"
}

View File

@ -0,0 +1,13 @@
function common_iscsi_config {
echo " storage_provider: host"
echo " storage_provider_fstype: xfs"
echo " ceph_backend: false"
echo " lvm_backends:"
echo " - '172.18.0.1': 'cinder-volumes'"
echo " cinder:"
echo " all:"
echo " image_tag: 3.0.2"
echo " volume_lvm:"
echo " all:"
echo " element_name: cinder-volume"
}

13
tests/bin/common_workflow_config.sh Normal file → Executable file
View File

@ -1,15 +1,16 @@
function common_workflow_config {
$IP="$1"
$base_distro="$2"
$tunnel_interface="$3"
IP="$1"
base_distro="$2"
tunnel_interface="$3"
echo "global:"
echo " kolla:"
echo " keystone:"
echo " all:"
echo " admin_port_external: true"
echo " dns_name: $IP"
echo " all:"
echo " kube_logger: false"
echo " external_vip: $IP"
echo " base_distro: $base_distro"
echo " tunnel_interface: $tunnel_interface"
echo " keystone:"
echo " all:"
echo " admin_port_external: true"
}

24
tests/bin/deploy_compute_kit.sh Executable file
View File

@ -0,0 +1,24 @@
#!/bin/bash -xe
VERSION=0.5.0-1
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/../.." && pwd )"
IP=172.18.0.1
. "$DIR/tests/bin/common_workflow_config.sh"
. "$DIR/tests/bin/common_iscsi_config.sh"
function general_config {
common_workflow_config $IP $base_distro $tunnel_interface
function entrypoint_config {
general_config
common_iscsi_config
}
tunnel_interface=docker0
base_distro="$2"
echo "Not yet implemented. Exiting ..."
exit 1

View File

@ -2,15 +2,11 @@
VERSION=0.5.0-1
function lvmbackend_values {
echo "lvm_backends:"
echo " - '172.18.0.1': 'cinder-volumes'"
}
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/../.." && pwd )"
IP=172.18.0.1
. "$DIR/tests/bin/common_workflow_config.sh"
. "$DIR/tests/bin/common_iscsi_config.sh"
tunnel_interface=docker0
@ -20,20 +16,13 @@ function general_config {
common_workflow_config $IP $base_distro $tunnel_interface
}
function iscsi_config {
general_config
common_iscsi_config
}
common_vars="ceph_backend=false,kube_logger=false,base_distro=$base_distro,global.kolla.keystone.all.admin_port_external=true"
kollakube res create configmap \
mariadb keystone horizon rabbitmq memcached nova-api nova-conductor \
nova-scheduler glance-api-haproxy glance-registry-haproxy glance-api \
glance-registry neutron-server neutron-dhcp-agent neutron-l3-agent \
neutron-metadata-agent neutron-openvswitch-agent openvswitch-db-server \
openvswitch-vswitchd nova-libvirt nova-compute nova-consoleauth \
nova-novncproxy nova-novncproxy-haproxy neutron-server-haproxy \
nova-api-haproxy cinder-api cinder-api-haproxy cinder-backup \
cinder-scheduler cinder-volume iscsid tgtd keepalived;
kollakube res create secret nova-libvirt
for x in mariadb rabbitmq glance; do
helm install kolla/$x-pv --version $VERSION \
--name $x-pv --set "element_name=$x,storage_provider=host"
@ -310,7 +299,7 @@ done
helm install kolla/cinder-volume-lvm-daemonset --debug --version $VERSION \
--set "$common_vars,element_name=cinder-volume" --namespace kolla \
--name cinder-volume-lvm-daemonset --values <(lvmbackend_values)
--name cinder-volume-lvm-daemonset --values <(iscsi_config)
helm install kolla/cinder-api-deployment --version $VERSION \
--set "$common_vars,image_tag=3.0.1" --namespace kolla \

View File

@ -7,6 +7,10 @@ CONFIG="$4"
BRANCH="$7"
PIPELINE="$8"
trap 'tests/bin/gate_capture_logs.sh "$?"' ERR
mkdir -p $WORKSPACE/logs/
env > $WORKSPACE/logs/env
if [ "x$PIPELINE" == "xperiodic" ]; then
mkdir -p $WORKSPACE/UPLOAD_CONTAINERS
fi
@ -22,7 +26,6 @@ if [ "x$BRANCH" == "x3" ]; then
fi
if [ "x$4" == "xiscsi" ]; then
echo "Starting iscsi setup script..."
tools/setup_gate_iscsi.sh $1 $2 $3 $4 $5 $BRANCH $PIPELINE
exit 0
fi
@ -32,185 +35,15 @@ if [ "x$4" == "xhelm-operator" ]; then
exit -1
fi
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
if [ "x$2" == "xubuntu" ]; then
sudo apt-get update
sudo apt-get remove -y open-iscsi
sudo apt-get install -y bridge-utils
(echo server:; echo " interface: 172.19.0.1"; echo " access-control: 0.0.0.0/0 allow") | \
sudo /bin/bash -c "cat > /etc/unbound/unbound.conf.d/kubernetes.conf"
else
sudo yum clean all
sudo yum remove -y iscsi-initiator-utils
sudo yum install -y bridge-utils
(echo server:; echo " interface: 172.19.0.1"; echo " access-control: 0.0.0.0/0 allow") | \
sudo /bin/bash -c "cat > /etc/unbound/conf.d/kubernetes.conf"
fi
sudo brctl addbr dns0
sudo ifconfig dns0 172.19.0.1 netmask 255.255.255.0
sudo systemctl restart unbound
sudo systemctl status unbound
sudo netstat -pnl
sudo sed -i "s/127\.0\.0\.1/172.19.0.1/" /etc/resolv.conf
sudo cat /etc/resolv.conf
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-ansible && true
[ ! -d kolla-ansible ] && git clone https://github.com/openstack/kolla-ansible.git
sudo ln -s `pwd`/kolla-ansible/etc/kolla /etc/kolla
sudo ln -s `pwd`/kolla-ansible /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 bzip2
else
sudo apt-get update
sudo apt-get install -y crudini jq sshpass bzip2
fi
pushd kolla-ansible;
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 .
if [ "x$4" == "xexternal-ovs" ]; then
sudo rpm -Uvh https://repos.fedorapeople.org/openstack/openstack-newton/rdo-release-newton-4.noarch.rpm || true
sudo yum install -y openvswitch
sudo systemctl start openvswitch
sudo ovs-vsctl add-br br-ex
if [ "x$4" == "xhelm-compute-kit" ]; then
tools/setup_gate_iscsi.sh $1 $2 $3 $4 $5 $BRANCH $PIPELINE
exit 0
fi
tests/bin/setup_config.sh "$2" "$4" "$BRANCH"
#
# Starting default config CEPH
#
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
NODENAME=$(ssh -n $line hostname)
ssh -n $line bash fix_gate_iptables.sh
ssh -n $line sudo iptables-save > $WORKSPACE/logs/iptables-$line.txt
ssh -n $line sudo setenforce 0
if [ "x$2" == "xubuntu" ]; then
ssh -n $line sudo apt-get -y remove open-iscsi
else
ssh -n $line sudo yum remove -y iscsi-initiator-utils
fi
ssh -n $line sudo mv kubectl /usr/bin/
ssh -n $line bash setup_kubernetes.sh slave "$(cat /etc/kubernetes/token.txt)" "$(cat /etc/kubernetes/ip.txt)"
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 $NODENAME 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
tools/setup_helm.sh
tools/helm_build_all.sh ~/.helm/repository/kolla
helm repo remove kollabuild
tools/helm_buildrepo.sh ~/.helm/repository/kolla 10192 kolla &
helm update
helm search
tools/build_example_yaml.py
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
helm install kolla/ceph-admin-pod --version $PACKAGE_VERSION \
--namespace kolla --name ceph-admin-pod --set kube_logger=false
helm install kolla/ceph-rbd-daemonset --version $PACKAGE_VERSION \
--namespace kolla --name ceph-rbd-daemonset --set kube_logger=false
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 "$BRANCH"
if [ "x$4" == "xhelm-entrypoint" ]; then
tests/bin/ceph_workflow_service.sh "$4" "$2" "$BRANCH"
else
tests/bin/ceph_workflow.sh "$4" "$2" "$BRANCH"
fi
. ~/keystonerc_admin
kubectl get pods --namespace=kolla
kubectl get svc --namespace=kolla
tests/bin/basic_tests.sh
tests/bin/cleanup_tests.sh
tests/bin/build_docker_images.sh $WORKSPACE/logs $DISTRO $TYPE $CONFIG $BRANCH $PIPELINE
echo "1 "$1 "2 "$2 "3 "$3 "4 "$4 "5 "$5 "BRANCH "$BRANCH "PIPELINE "$PIPELINE
tools/setup_gate_ceph.sh $1 $2 $3 $4 $5 $BRANCH $PIPELINE
exit 0

147
tools/setup_gate_ceph.sh Executable file
View File

@ -0,0 +1,147 @@
#!/bin/bash -xe
PACKAGE_VERSION=0.5.0-1
DISTRO="$2"
TYPE="$3"
CONFIG="$4"
BRANCH="$6"
PIPELINE="$x7"
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/" && pwd )"
. "$DIR/setup_gate_common.sh"
# Setting up iptables
setup_iptables
# Installating required software packages
setup_packages $DISTRO $CONFIG
# Setting up an interface and a bridge
setup_bridge
# Setting up virt env, kolla-ansible and kolla-kubernetes
setup_kolla
if [ "x$CONFIG" == "xexternal-ovs" ]; then
sudo rpm -Uvh https://repos.fedorapeople.org/openstack/openstack-newton/rdo-release-newton-4.noarch.rpm || true
sudo yum install -y openvswitch
sudo systemctl start openvswitch
sudo ovs-vsctl add-br br-ex
fi
tests/bin/setup_config.sh "$2" "$4" "$BRANCH"
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$CONFIG" == "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
NODENAME=$(ssh -n $line hostname)
ssh -n $line bash fix_gate_iptables.sh
ssh -n $line sudo iptables-save > $WORKSPACE/logs/iptables-$line.txt
ssh -n $line sudo setenforce 0
if [ "x$2" == "xubuntu" ]; then
ssh -n $line sudo apt-get -y remove open-iscsi
else
ssh -n $line sudo yum remove -y iscsi-initiator-utils
fi
ssh -n $line sudo mv kubectl /usr/bin/
ssh -n $line bash setup_kubernetes.sh slave "$(cat /etc/kubernetes/token.txt)" "$(cat /etc/kubernetes/ip.txt)"
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 $NODENAME kolla_compute=true
done
fi
NODE=$(hostname -s)
kubectl label node $NODE kolla_controller=true
if [ "x$CONFIG" != "xceph-multi" ]; then
kubectl label node $NODE kolla_compute=true
fi
tests/bin/setup_canal.sh
# Setting up Helm
setup_helm_common
tools/build_example_yaml.py
# Setting up namespace and secret
setup_namespace_secrets
# Setting up resolv.conf workaround
setup_resolv_conf_common
tests/bin/build_test_ceph.sh
helm install kolla/ceph-admin-pod --version $PACKAGE_VERSION \
--namespace kolla --name ceph-admin-pod --set kube_logger=false
helm install kolla/ceph-rbd-daemonset --version $PACKAGE_VERSION \
--namespace kolla --name ceph-rbd-daemonset --set kube_logger=false
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 "$BRANCH"
kollakube res create configmap \
mariadb keystone horizon rabbitmq memcached nova-api nova-conductor \
nova-scheduler glance-api-haproxy glance-registry-haproxy glance-api \
glance-registry neutron-server neutron-dhcp-agent neutron-l3-agent \
neutron-metadata-agent neutron-openvswitch-agent openvswitch-db-server \
openvswitch-vswitchd nova-libvirt nova-compute nova-consoleauth \
nova-novncproxy nova-novncproxy-haproxy neutron-server-haproxy \
nova-api-haproxy cinder-api cinder-api-haproxy cinder-backup \
cinder-scheduler cinder-volume keepalived;
kollakube res create secret nova-libvirt
if [ "x$CONFIG" == "xhelm-entrypoint" ]; then
tests/bin/ceph_workflow_service.sh "$4" "$2" "$BRANCH"
else
tests/bin/ceph_workflow.sh "$4" "$2" "$BRANCH"
fi
. ~/keystonerc_admin
kubectl get pods --namespace=kolla
kubectl get svc --namespace=kolla
tests/bin/basic_tests.sh
tests/bin/cleanup_tests.sh
tests/bin/build_docker_images.sh $WORKSPACE/logs $DISTRO $TYPE $CONFIG $BRANCH $PIPELINE

101
tools/setup_gate_common.sh Executable file
View File

@ -0,0 +1,101 @@
#!/bin/bash -xe
function setup_iptables {
sudo iptables-save > $WORKSPACE/logs/iptables-before.txt
tests/bin/fix_gate_iptables.sh
}
function setup_packages {
DISTRO=$1
CONFIG=$2
if [ "x$DISTRO" == "xubuntu" ]; then
sudo apt-get update
if [ "x$CONFIG" == "xiscsi" ]; then
sudo apt-get install lvm2
fi
sudo apt-get remove -y open-iscsi
sudo apt-get install -y bridge-utils
(echo server:; echo " interface: 172.19.0.1"; echo " access-control: 0.0.0.0/0 allow") | \
sudo /bin/bash -c "cat > /etc/unbound/unbound.conf.d/kubernetes.conf"
else
sudo yum clean all
if [ "x$CONFIG" == "xiscsi" ]; then
sudo yum remove -y iscsi-initiator-utils
fi
sudo yum install -y bridge-utils
sudo yum install -y lvm2
(echo server:; echo " interface: 172.19.0.1"; echo " access-control: 0.0.0.0/0 allow") | \
sudo /bin/bash -c "cat > /etc/unbound/conf.d/kubernetes.conf"
fi
}
function setup_bridge {
sudo brctl addbr dns0
sudo ifconfig dns0 172.19.0.1 netmask 255.255.255.0
sudo systemctl restart unbound
sudo systemctl status unbound
sudo netstat -pnl
sudo sed -i "s/127\.0\.0\.1/172.19.0.1/" /etc/resolv.conf
sudo cat /etc/resolv.conf
}
function setup_kolla {
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-ansible && true
[ ! -d kolla-ansible ] && git clone https://github.com/openstack/kolla-ansible.git
sudo ln -s `pwd`/kolla-ansible/etc/kolla /etc/kolla
sudo ln -s `pwd`/kolla-ansible /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 bzip2
else
sudo apt-get update
sudo apt-get install -y crudini jq sshpass bzip2
fi
pushd kolla-ansible;
pip install pip --upgrade
pip install "ansible<2.1"
pip install "python-openstackclient"
pip install "python-neutronclient"
pip install "python-cinderclient"
pip install -r requirements.txt
pip install pyyaml
popd
pip install -r requirements.txt
pip install .
}
function setup_helm_common {
tools/setup_helm.sh
tools/helm_build_all.sh ~/.helm/repository/kolla
helm repo remove kollabuild
tools/helm_buildrepo.sh ~/.helm/repository/kolla 10192 kolla &
helm update
helm search
}
function setup_namespace_secrets {
kubectl create namespace kolla
tools/secret-generator.py create
}
function setup_resolv_conf_common {
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
}

View File

@ -1,78 +1,26 @@
#!/bin/bash -xe
PACKAGE_VERSION=0.5.0-1
DISTRO="$2"
TYPE="$3"
CONFIG="$4"
BRANCH="$6"
PIPELINE="$7"
trap 'tests/bin/gate_capture_logs.sh "$?"' ERR
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/" && pwd )"
. "$DIR/setup_gate_common.sh"
mkdir -p $WORKSPACE/logs/
env > $WORKSPACE/logs/env
# Setting up iptables
setup_iptables
sudo iptables-save > $WORKSPACE/logs/iptables-before.txt
tests/bin/fix_gate_iptables.sh
# Installating required software packages
setup_packages $DISTRO $CONFIG
if [ "x$2" == "xubuntu" ]; then
sudo apt-get update
sudo apt-get install lvm2
sudo apt-get remove -y open-iscsi
sudo apt-get install -y bridge-utils
(echo server:; echo " interface: 172.19.0.1"; echo " access-control: 0.0.0.0/0 allow") | \
sudo /bin/bash -c "cat > /etc/unbound/unbound.conf.d/kubernetes.conf"
else
sudo yum clean all
sudo yum remove -y iscsi-initiator-utils
sudo yum install -y bridge-utils
sudo yum install -y lvm2
(echo server:; echo " interface: 172.19.0.1"; echo " access-control: 0.0.0.0/0 allow") | \
sudo /bin/bash -c "cat > /etc/unbound/conf.d/kubernetes.conf"
fi
sudo brctl addbr dns0
sudo ifconfig dns0 172.19.0.1 netmask 255.255.255.0
sudo systemctl restart unbound
sudo systemctl status unbound
sudo netstat -pnl
sudo sed -i "s/127\.0\.0\.1/172.19.0.1/" /etc/resolv.conf
sudo cat /etc/resolv.conf
# Setting up an interface and a bridge
setup_bridge
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-ansible && true
[ ! -d kolla-ansible ] && git clone https://github.com/openstack/kolla-ansible.git
sudo ln -s `pwd`/kolla-ansible/etc/kolla /etc/kolla
sudo ln -s `pwd`/kolla-ansible /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 bzip2
else
sudo apt-get update
sudo apt-get install -y crudini jq sshpass bzip2
fi
pushd kolla-ansible;
pip install pip --upgrade
pip install "ansible<2.1"
pip install "python-openstackclient"
pip install "python-neutronclient"
pip install "python-cinderclient"
pip install -r requirements.txt
pip install pyyaml
popd
pip install -r requirements.txt
pip install .
# Setting up virt env, kolla-ansible and kolla-kubernetes
setup_kolla
tests/bin/setup_config_iscsi.sh "$2" "$4" "$BRANCH"
@ -82,46 +30,47 @@ 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'
NODE=$(hostname -s)
kubectl label node $NODE kolla_controller=true kolla_compute=true kolla_storage=true
tests/bin/setup_canal.sh
tools/setup_helm.sh
# Setting up Helm
setup_helm_common
tools/helm_build_all.sh ~/.helm/repository/kolla
helm repo remove kollabuild
tools/helm_buildrepo.sh ~/.helm/repository/kolla 10192 kolla &
helm update
helm search
# Setting up namespace and secret
setup_namespace_secrets
kubectl create namespace kolla
tools/secret-generator.py create
# Setting up resolv.conf workaround
setup_resolv_conf_common
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
kollakube res create configmap \
mariadb keystone horizon rabbitmq memcached nova-api nova-conductor \
nova-scheduler glance-api-haproxy glance-registry-haproxy glance-api \
glance-registry neutron-server neutron-dhcp-agent neutron-l3-agent \
neutron-metadata-agent neutron-openvswitch-agent openvswitch-db-server \
openvswitch-vswitchd nova-libvirt nova-compute nova-consoleauth \
nova-novncproxy nova-novncproxy-haproxy neutron-server-haproxy \
nova-api-haproxy cinder-api cinder-api-haproxy cinder-backup \
cinder-scheduler cinder-volume iscsid tgtd keepalived;
kollakube res create secret nova-libvirt
if [ "x$4" == "xhelm-compute-kit" ]; then
tests/bin/deploy_compute_kit.sh "$4" "$2" "$BRANCH"
else
tests/bin/iscsi_workflow.sh "$4" "$2" "$BRANCH"
fi
echo "Starting iscsi workflow..."
tests/bin/iscsi_workflow.sh "$4" "$2" "$BRANCH"
. ~/keystonerc_admin
kubectl get pods --namespace=kolla
cinder service-list >> $WORKSPACE/logs/cinder_service_list.txt
sudo pvs >> $WORKSPACE/logs/pvs.txt
sudo vgs >> $WORKSPACE/logs/vgs.txt
sudo lvs >> $WORKSPACE/logs/lvs.txt
cinder service-list >> $WORKSPACE/logs/cinder_service_list.txt
tests/bin/basic_tests.sh
tests/bin/cleanup_tests.sh
tests/bin/build_docker_images.sh $WORKSPACE/logs $DISTRO $TYPE $CONFIG $BRANCH $PIPELINE

View File

@ -1,14 +1,15 @@
#!/bin/bash -xe
if [ "x$1" != "x--yes-i-really-really-mean-it" ]; then
echo This command is distructive. You must pass the
echo This command is destructive. You must pass the
echo --yes-i-really-really-mean-it if you are sure.
exit -1
fi
RBD_ARGS="--image-feature layering"
if [ "x$2" == "x2" ]; then
RBD_ARGS=""
else
RBD_ARGS="--image-feature layering"
fi
#FIXME may need different flags for testing jewel

View File

@ -1,7 +1,12 @@
#!/bin/bash -e
# Default wait timeout is 180 seconds
set +x
end=$(date +%s)
end=$((end + 180))
if [ x$2 != "x" ]; then
end=$((end + $2))
else
end=$((end + 180))
fi
while true; do
kubectl get pods --namespace=$1 -o json | jq -r \
'.items[].status.phase' | grep Pending > /dev/null && \