Merge "Add a job for testing deployment of bifrost"
This commit is contained in:
commit
fd3f54faed
16
.zuul.yaml
16
.zuul.yaml
@ -8,6 +8,7 @@
|
|||||||
- kolla-ansible-ubuntu-source-ceph
|
- kolla-ansible-ubuntu-source-ceph
|
||||||
- kolla-ansible-centos-source-ceph
|
- kolla-ansible-centos-source-ceph
|
||||||
- kolla-ansible-oraclelinux-source-ceph
|
- kolla-ansible-oraclelinux-source-ceph
|
||||||
|
- kolla-ansible-bifrost-centos-source
|
||||||
|
|
||||||
- openstack-tox-lower-constraints
|
- openstack-tox-lower-constraints
|
||||||
gate:
|
gate:
|
||||||
@ -81,6 +82,13 @@
|
|||||||
roles:
|
roles:
|
||||||
- zuul: openstack-infra/zuul-jobs
|
- zuul: openstack-infra/zuul-jobs
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: kolla-ansible-bifrost-base
|
||||||
|
parent: kolla-ansible-base
|
||||||
|
vars:
|
||||||
|
scenario: bifrost
|
||||||
|
install_type: source
|
||||||
|
|
||||||
- job:
|
- job:
|
||||||
name: kolla-ansible-centos-source
|
name: kolla-ansible-centos-source
|
||||||
parent: kolla-ansible-base
|
parent: kolla-ansible-base
|
||||||
@ -164,3 +172,11 @@
|
|||||||
base_distro: oraclelinux
|
base_distro: oraclelinux
|
||||||
install_type: source
|
install_type: source
|
||||||
scenario: ceph
|
scenario: ceph
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: kolla-ansible-bifrost-centos-source
|
||||||
|
parent: kolla-ansible-bifrost-base
|
||||||
|
nodeset: kolla-ansible-centos
|
||||||
|
voting: false
|
||||||
|
vars:
|
||||||
|
base_distro: centos
|
||||||
|
@ -46,6 +46,16 @@ copy_logs() {
|
|||||||
docker exec ceph_mon ceph osd tree > ${LOG_DIR}/kolla/ceph/ceph_osd_tree.txt
|
docker exec ceph_mon ceph osd tree > ${LOG_DIR}/kolla/ceph/ceph_osd_tree.txt
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# bifrost related logs
|
||||||
|
if [[ $(docker ps --filter name=bifrost_deploy --format "{{.Names}}") ]]; then
|
||||||
|
for service in dnsmasq ironic-api ironic-conductor ironic-inspector mariadb nginx rabbitmq-server; do
|
||||||
|
mkdir -p ${LOG_DIR}/kolla/$service
|
||||||
|
docker exec bifrost_deploy systemctl status $service > ${LOG_DIR}/kolla/$service/systemd-status-$service.txt
|
||||||
|
done
|
||||||
|
docker exec bifrost_deploy journalctl -u mariadb > ${LOG_DIR}/kolla/mariadb/mariadb.txt
|
||||||
|
docker exec bifrost_deploy journalctl -u rabbitmq-server > ${LOG_DIR}/kolla/rabbitmq-server/rabbitmq.txt
|
||||||
|
fi
|
||||||
|
|
||||||
for container in $(docker ps -a --format "{{.Names}}"); do
|
for container in $(docker ps -a --format "{{.Names}}"); do
|
||||||
docker logs --tail all ${container} > ${LOG_DIR}/docker_logs/${container}.txt
|
docker logs --tail all ${container} > ${LOG_DIR}/docker_logs/${container}.txt
|
||||||
done
|
done
|
||||||
|
@ -62,6 +62,7 @@
|
|||||||
path: "/etc/kolla/config/nova"
|
path: "/etc/kolla/config/nova"
|
||||||
state: "directory"
|
state: "directory"
|
||||||
mode: 0777
|
mode: 0777
|
||||||
|
when: scenario != "bifrost"
|
||||||
become: true
|
become: true
|
||||||
delegate_to: "primary"
|
delegate_to: "primary"
|
||||||
|
|
||||||
@ -69,6 +70,23 @@
|
|||||||
template:
|
template:
|
||||||
src: "{{ kolla_ansible_full_src_dir }}/tests/templates/nova-compute-overrides.j2"
|
src: "{{ kolla_ansible_full_src_dir }}/tests/templates/nova-compute-overrides.j2"
|
||||||
dest: /etc/kolla/config/nova/nova-compute.conf
|
dest: /etc/kolla/config/nova/nova-compute.conf
|
||||||
|
when: scenario != "bifrost"
|
||||||
|
delegate_to: "primary"
|
||||||
|
|
||||||
|
- name: ensure bifrost conf overrides dir exists
|
||||||
|
file:
|
||||||
|
path: "/etc/kolla/config/bifrost"
|
||||||
|
state: "directory"
|
||||||
|
mode: 0777
|
||||||
|
when: scenario == "bifrost"
|
||||||
|
become: true
|
||||||
|
delegate_to: "primary"
|
||||||
|
|
||||||
|
- name: generate bifrost DIB config overrides
|
||||||
|
template:
|
||||||
|
src: "{{ kolla_ansible_full_src_dir }}/tests/templates/bifrost-dib-overrides.j2"
|
||||||
|
dest: /etc/kolla/config/bifrost/dib.yml
|
||||||
|
when: scenario == "bifrost"
|
||||||
delegate_to: "primary"
|
delegate_to: "primary"
|
||||||
|
|
||||||
- name: copy passwords.yml file
|
- name: copy passwords.yml file
|
||||||
|
7
tests/templates/bifrost-dib-overrides.j2
Normal file
7
tests/templates/bifrost-dib-overrides.j2
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
# Don't build an IPA deployment image, instead download upstream images.
|
||||||
|
create_ipa_image: false
|
||||||
|
download_ipa: true
|
||||||
|
|
||||||
|
# Don't build a disk image. It takes time and can be unreliable.
|
||||||
|
use_cirros: true
|
@ -6,12 +6,14 @@ kolla_install_type: "{{ install_type }}"
|
|||||||
# in the CI gate.
|
# in the CI gate.
|
||||||
keepalived_virtual_router_id: "{{ 250 | random(1) }}"
|
keepalived_virtual_router_id: "{{ 250 | random(1) }}"
|
||||||
|
|
||||||
|
{% if scenario != "bifrost" %}
|
||||||
{% if hostvars|length > 2 %}
|
{% if hostvars|length > 2 %}
|
||||||
kolla_internal_vip_address: "{{ api_interface_address }}"
|
kolla_internal_vip_address: "{{ api_interface_address }}"
|
||||||
enable_haproxy: "no"
|
enable_haproxy: "no"
|
||||||
{% else %}
|
{% else %}
|
||||||
kolla_internal_vip_address: "169.254.169.10"
|
kolla_internal_vip_address: "169.254.169.10"
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
network_interface: "{{ api_interface_name }}"
|
network_interface: "{{ api_interface_name }}"
|
||||||
docker_restart_policy: "never"
|
docker_restart_policy: "never"
|
||||||
@ -24,11 +26,13 @@ docker_registry: "{{ api_interface_address }}:4000"
|
|||||||
docker_namespace: "kolla"
|
docker_namespace: "kolla"
|
||||||
openstack_release: "{{ zuul.branch | basename }}"
|
openstack_release: "{{ zuul.branch | basename }}"
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if scenario != "bifrost" %}
|
||||||
neutron_external_interface: "fake_interface"
|
neutron_external_interface: "fake_interface"
|
||||||
enable_horizon: "yes"
|
enable_horizon: "yes"
|
||||||
enable_heat: "no"
|
enable_heat: "no"
|
||||||
openstack_logging_debug: "True"
|
openstack_logging_debug: "True"
|
||||||
openstack_service_workers: "1"
|
openstack_service_workers: "1"
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
# This is experimental feature, disable if gate fail.
|
# This is experimental feature, disable if gate fail.
|
||||||
glance_enable_rolling_upgrade: "yes"
|
glance_enable_rolling_upgrade: "yes"
|
||||||
|
@ -34,12 +34,15 @@ EOF
|
|||||||
echo "RUN echo $(base64 -w0 ${PIP_CONF}) | base64 -d > /etc/pip.conf" | sudo tee /etc/kolla/header
|
echo "RUN echo $(base64 -w0 ${PIP_CONF}) | base64 -d > /etc/pip.conf" | sudo tee /etc/kolla/header
|
||||||
rm ${PIP_CONF}
|
rm ${PIP_CONF}
|
||||||
|
|
||||||
GATE_IMAGES="cron,fluentd,glance,haproxy,keepalived,keystone,kolla-toolbox,mariadb,memcached,neutron,nova,openvswitch,rabbitmq,horizon"
|
if [[ $ACTION != "bifrost" ]]; then
|
||||||
|
GATE_IMAGES="cron,fluentd,glance,haproxy,keepalived,keystone,kolla-toolbox,mariadb,memcached,neutron,nova,openvswitch,rabbitmq,horizon"
|
||||||
|
else
|
||||||
|
GATE_IMAGES="bifrost"
|
||||||
|
fi
|
||||||
|
|
||||||
# TODO(jeffrey4l): this doesn't work with zuulv3
|
if [[ $ACTION == "ceph" ]]; then
|
||||||
if echo $ACTION | grep -q "ceph"; then
|
GATE_IMAGES+=",ceph,cinder"
|
||||||
GATE_IMAGES+=",ceph,cinder"
|
fi
|
||||||
fi
|
|
||||||
|
|
||||||
cat <<EOF | sudo tee /etc/kolla/kolla-build.conf
|
cat <<EOF | sudo tee /etc/kolla/kolla-build.conf
|
||||||
[DEFAULT]
|
[DEFAULT]
|
||||||
@ -134,6 +137,70 @@ function sanity_check {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function test_openstack {
|
||||||
|
# Create dummy interface for neutron
|
||||||
|
ansible -m shell -i ${RAW_INVENTORY} -a "ip l a fake_interface type dummy" all
|
||||||
|
|
||||||
|
#TODO(inc0): Post-deploy complains that /etc/kolla is not writable. Probably we need to include become there
|
||||||
|
sudo chmod -R 777 /etc/kolla
|
||||||
|
# Actually do the deployment
|
||||||
|
tools/kolla-ansible -i ${RAW_INVENTORY} -vvv prechecks > /tmp/logs/ansible/prechecks1
|
||||||
|
# TODO(jeffrey4l): add pull action when we have a local registry
|
||||||
|
# service in CI
|
||||||
|
tools/kolla-ansible -i ${RAW_INVENTORY} -vvv deploy > /tmp/logs/ansible/deploy
|
||||||
|
tools/kolla-ansible -i ${RAW_INVENTORY} -vvv post-deploy > /tmp/logs/ansible/post-deploy
|
||||||
|
|
||||||
|
# Test OpenStack Environment
|
||||||
|
# TODO: use kolla-ansible check when it's ready
|
||||||
|
|
||||||
|
sanity_check
|
||||||
|
|
||||||
|
# TODO(jeffrey4l): make some configure file change and
|
||||||
|
# trigger a real reconfigure
|
||||||
|
tools/kolla-ansible -i ${RAW_INVENTORY} -vvv reconfigure > /tmp/logs/ansible/post-deploy
|
||||||
|
# TODO(jeffrey4l): need run a real upgrade
|
||||||
|
tools/kolla-ansible -i ${RAW_INVENTORY} -vvv upgrade > /tmp/logs/ansible/upgrade
|
||||||
|
|
||||||
|
# run prechecks again
|
||||||
|
tools/kolla-ansible -i ${RAW_INVENTORY} -vvv prechecks > /tmp/logs/ansible/prechecks2
|
||||||
|
}
|
||||||
|
|
||||||
|
function sanity_check_bifrost {
|
||||||
|
# TODO(mgoddard): More testing, deploy bare metal nodes.
|
||||||
|
# TODO(mgoddard): Use openstackclient when clouds.yaml works. See
|
||||||
|
# https://bugs.launchpad.net/bifrost/+bug/1754070.
|
||||||
|
attempts=0
|
||||||
|
while [[ $(sudo docker exec bifrost_deploy bash -c "source env-vars && ironic driver-list" | wc -l) -le 4 ]]; do
|
||||||
|
attempts=$((attempts + 1))
|
||||||
|
if [[ $attempts -gt 6 ]]; then
|
||||||
|
echo "Timed out waiting for ironic conductor to become active"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
sleep 10
|
||||||
|
done
|
||||||
|
sudo docker exec bifrost_deploy bash -c "source env-vars && ironic node-list"
|
||||||
|
sudo docker exec bifrost_deploy bash -c "source env-vars && ironic node-create --driver ipmi --name test-node"
|
||||||
|
sudo docker exec bifrost_deploy bash -c "source env-vars && ironic node-delete test-node"
|
||||||
|
}
|
||||||
|
|
||||||
|
function test_bifrost {
|
||||||
|
# TODO(mgoddard): run prechecks.
|
||||||
|
|
||||||
|
# Deploy the bifrost container.
|
||||||
|
# TODO(mgoddard): add pull action when we have a local registry service in
|
||||||
|
# CI.
|
||||||
|
tools/kolla-ansible -i ${RAW_INVENTORY} -vvv deploy-bifrost > /tmp/logs/ansible/deploy-bifrost
|
||||||
|
|
||||||
|
# Test Bifrost Environment
|
||||||
|
sanity_check_bifrost
|
||||||
|
|
||||||
|
# TODO(mgoddard): make some configuration file changes and trigger a real
|
||||||
|
# reconfigure.
|
||||||
|
tools/kolla-ansible -i ${RAW_INVENTORY} -vvv deploy-bifrost > /tmp/logs/ansible/deploy-bifrost2
|
||||||
|
|
||||||
|
# TODO(mgoddard): perform an upgrade.
|
||||||
|
}
|
||||||
|
|
||||||
check_failure() {
|
check_failure() {
|
||||||
# All docker container's status are created, restarting, running, removing,
|
# All docker container's status are created, restarting, running, removing,
|
||||||
# paused, exited and dead. Containers without running status are treated as
|
# paused, exited and dead. Containers without running status are treated as
|
||||||
@ -160,30 +227,10 @@ setup_node
|
|||||||
tools/kolla-ansible -i ${RAW_INVENTORY} bootstrap-servers > /tmp/logs/ansible/bootstrap-servers
|
tools/kolla-ansible -i ${RAW_INVENTORY} bootstrap-servers > /tmp/logs/ansible/bootstrap-servers
|
||||||
prepare_images
|
prepare_images
|
||||||
|
|
||||||
# Create dummy interface for neutron
|
if [[ $ACTION != bifrost ]]; then
|
||||||
ansible -m shell -i ${RAW_INVENTORY} -a "ip l a fake_interface type dummy" all
|
test_openstack
|
||||||
|
else
|
||||||
#TODO(inc0): Post-deploy complains that /etc/kolla is not writable. Probably we need to include become there
|
test_bifrost
|
||||||
sudo chmod -R 777 /etc/kolla
|
fi
|
||||||
# Actually do the deployment
|
|
||||||
tools/kolla-ansible -i ${RAW_INVENTORY} -vvv prechecks > /tmp/logs/ansible/prechecks1
|
|
||||||
# TODO(jeffrey4l): add pull action when we have a local registry
|
|
||||||
# service in CI
|
|
||||||
tools/kolla-ansible -i ${RAW_INVENTORY} -vvv deploy > /tmp/logs/ansible/deploy
|
|
||||||
tools/kolla-ansible -i ${RAW_INVENTORY} -vvv post-deploy > /tmp/logs/ansible/post-deploy
|
|
||||||
|
|
||||||
# Test OpenStack Environment
|
|
||||||
# TODO: use kolla-ansible check when it's ready
|
|
||||||
|
|
||||||
sanity_check
|
|
||||||
|
|
||||||
# TODO(jeffrey4l): make some configure file change and
|
|
||||||
# trigger a real reconfigure
|
|
||||||
tools/kolla-ansible -i ${RAW_INVENTORY} -vvv reconfigure > /tmp/logs/ansible/post-deploy
|
|
||||||
# TODO(jeffrey4l): need run a real upgrade
|
|
||||||
tools/kolla-ansible -i ${RAW_INVENTORY} -vvv upgrade > /tmp/logs/ansible/upgrade
|
|
||||||
|
|
||||||
# run prechecks again
|
|
||||||
tools/kolla-ansible -i ${RAW_INVENTORY} -vvv prechecks > /tmp/logs/ansible/prechecks2
|
|
||||||
|
|
||||||
check_failure
|
check_failure
|
||||||
|
Loading…
x
Reference in New Issue
Block a user