31 Commits

Author SHA1 Message Date
Zuul
6b3462d384 Merge "Add alternative tenks deploy and teardown entrypoints." 2019-08-15 15:35:27 +00:00
Mark Goddard
0707e2c53d CI: Don't create an external network in init-runonce
This network conflicts with the ironic provision-net since both are flat
networks on physnet1. We don't need the external network in our CI, so
don't create it.

Change-Id: Id17d4ea00ceb684b34bf12e911758d504c520de0
Depends-On: https://review.opendev.org/#/c/670129/
2019-07-11 06:58:35 +00:00
Mark Goddard
7ed7b27bc4 Add retries to ansible galaxy install for all envs
Galaxy install often fails in CI, scuppering an otherwise good run.

Change-Id: I3d02afe33cdf32b1d285bd4bdc4a8074883113ca
2019-07-04 13:02:04 +00:00
Isaac Prior
0d598bf01d Add alternative tenks deploy and teardown entrypoints.
Allows users to explicitly specify which type of tenks
deployment they wish to create / destroy.
Preserves existing behaviour with defaults.
Modifies Zuul tests to use new tenks-deploy entrypoints.

Change-Id: I9aafed8481fd7564c0fc0abe5f6b21eceb824d75
2019-06-06 14:03:58 +01:00
Mark Goddard
c2a35ce211 Remove inspector_manage_firewall variable
This is supported in kolla-ansible via the ironic_inspector_pxe_filter
variable, which can be added to globals.yml. The default value for that
variable changed in the Stein release from 'iptables' to 'dnsmasq',
since the iptables filter does not work with Docker CE [1].

This change removes the inspector_manage_firewall variable.

This change also adds an iptables rule in CI tests to allow DHCP packets
to be forwarded, to ensure bare metal servers can be deployed.

[1] https://bugs.launchpad.net/kolla-ansible/+bug/1823044

Depends-On: https://review.openstack.org/649673
Change-Id: Idac6777b4d97fbd17698fc2086ceb068d7b2e326
Related-Bug: #1823044
2019-04-09 13:53:59 +01:00
Mark Goddard
08bb1441eb Prevent use of KVM for Tenks VMs in CI
Currently nested virtualisation under KVM does not seem to be working in
CI. This breaks the 'bare metal' deployment testing using Tenks, which
lead us to disable it in 749ef8243e9ae855cf8ceb54dc3f88c6c1b2fea0.

This commit forces Tenks to use QEMU for its VMs, allowing us to revert
commit 749ef8243e9ae855cf8ceb54dc3f88c6c1b2fea0..

Change-Id: Id382c218f3b37979341f0d96718a6011a1d9da37
Story: 2005316
Task: 30223
2019-03-29 15:26:04 +00:00
Mark Goddard
d7ae9f2df1 Don't cd to /tmp in environment-setup.sh
This script is used by developers to activate the kayobe virtual
environment and source the configuration's kayobe-env file. A cd to /tmp
is an unexpected outcome of running the script.

To test the location-independent installation, remove the chdir from the
zuul job tasks that execute kayobe commands.

Change-Id: I59194952901fa648382489f48dc7aafb03d3a682
Story: 2004252
Task: 29347
2019-02-05 16:49:49 +00:00
Zuul
29c0ad98c0 Merge "Update development scripts for control plane deployment" 2019-02-05 12:59:15 +00:00
Mark Goddard
ab205197b5 Update development scripts for control plane deployment
This adds support for deploying a virtualised control plane via Tenks, using
the Kayobe development scripts tenks-deploy.sh and tenks-teardown.sh.

Change-Id: I752455af9eb44cdb0f9921fd0c876fc2dfb50a5c
2019-02-05 09:36:35 +00:00
Mark Goddard
fb70e99a4b Support including and excluding files from config save
Currently in the upgrade job we are seeing the OOM killer kick in during
the 'overcloud service configuration save' command. Ansible is quite
inefficient when copying large files around, so excluding the large IPA
images should relieve some memory pressure.

Change-Id: I3a230b0a699154606ca8faa00a85d45ae815c599
Story: 2004704
Task: 28733
2019-02-04 09:21:07 +00:00
Will Szumski
84172bfbe0 Support complete installation of Kayobe as a python package
This adds the ansible playbooks required by kayobe to the manifest by
using the data_files option in setuptools. When using pip to install
kayobe into a virtualenv, these files will be placed in
<venv>/kayobe/share/.

In an editable install, e.g using `pip install -e .`, data_files are not
installed into the virtualenv. Instead, we must follow the egg-link file
to find out the actual location.

Story: 2004252
Task: 27787
Change-Id: Ibef040eceb547476007f83c0d5dcdb2bc6986d1e
2019-02-01 12:55:27 +00:00
Mark Goddard
7593a8b925 Test upgrading seed services in CI
Adds the kayobe-seed-upgrade-centos job, which performs an upgrade of
the seed services from the previous release to the current release.

Change-Id: Ia3eb39cf81cb3618fd94c4456bd576b52098c946
Story: 2004308
Task: 27873
2018-12-21 15:21:47 +00:00
Will Miller
d0e9c50fd2 Add tenks-deploy.sh dev script
tenks-deploy.sh deploys a minimal virtualized baremetal test cluster
locally. It also adds it to the overcloud-base CI job. To make the new
CI job work, we need to configure the firewall on the test machine to
allow the baremetal machines to communicate with the openstack services.

Change-Id: I7487a2606cf0bac71c5c63db41b2b518a6f6398b
Depends-On: https://review.openstack.org/#/c/615939
Depends-On: https://review.openstack.org/#/c/618003
Story: 2004297
Task: 27850
2018-11-20 18:53:09 +00:00
Mark Goddard
935d3cef6a Update dependencies to Rocky
Use stable/rocky branch of:

* Kolla
* Kolla ansible
* Bifrost
* IPA
* OpenStack services
* Requirements

Also updates Kolla Ansible inventory template.

The seed deploy job has been made non-voting and non-gating, because we
are waiting for bifrost change https://review.openstack.org/#/c/618740
to merge, be released, and for the kolla bifrost image to use the new
package.

Change-Id: Id5e7fdbd196f96e1e75ffc68bc93aab18fa38aa7
Story: 2001864
Task: 27798
Depends-On: I58e4f951d4a3dd89e0784fd82d8a62dbba374f79
2018-11-19 14:37:33 +00:00
Mark Goddard
6266312fa1 Test upgrades in CI
There is currently no coverage of upgrades in CI, which leaves us open
to regression in this infrequently tested but crucial area. This change
adds the required scripts and Zuul configuration.

A control plane is first deployed using the Kayobe stable/pike branch
and associated default configuration. The control plane is tested by
deploying then deleting a server instance. An upgrade to Queens is
performed, using the Kayobe master branch, or code in review if
applicable. The upgraded control plane is tested by deploying then
deleting a second server instance.

A workaround was required to restart the nova_compute service after the
upgrade, since the SIGHUP sent to it by Kolla Ansible during upgrade
appeared to be putting it into a degraded state.

A future improvement to this test could be to leave a server instance
running during the upgrade.

Change-Id: I0e595524e39d1131fe3ec6aaf2aeec3ff3d6a536
Story: 2003472
Task: 24732
2018-11-05 12:02:31 +00:00
Mark Goddard
7fe53c3d16 Check nova VM status in CI
Previously we were not checking the status of created VMs in CI, meaning
that VM creation failures would be silently ignored. This change checks
the status, requiring it to be ACTIVE for a pass.

Change-Id: Ia559c81b4944c2c6c7dedfca0c6c570db390704b
2018-09-25 19:36:29 +01:00
Doug Szumski
6c2e68a545 Support configuring tunnel network
Support configuring a separate tunnel network for tenant
overlay network traffic.

Change-Id: I74274823d6fe3a42aabcca00c8cd20e1abb3d219
Story: 2003054
Task: 23091
2018-07-20 13:57:03 +01:00
Will Miller
2d5fd703a0 Reconcile all 'Ansible control host' references
Ensure all references to the Ansible control host are worded as such, to
ensure consistency and avoid potential confusion with the OpenStack
controllers.

Change-Id: Id92e537ccbfdd55287b8eae296f649640c70ce17
2018-07-11 17:19:18 +01:00
Mark Goddard
0ec7edffa7 Test nova server (VM) boot in overcloud job
We use the demo script from kolla ansible, init-runonce, to create
resources in the control plane to make it ready for booting a VM. We
then create a nova server, and wait for it to become active. We do not
currently test that the VM boots successfully by accessing it via SSH.

Change-Id: I61be554366565decd9f4ff7805a3969aa37da4b9
2018-05-10 18:39:07 +01:00
Mark Goddard
cd6c366cc6 Add a job for seed deployment
Adds a new CI job, kayobe-seed-centos, that deploys a single VM as a
seed host. The VM provided by Zuul is configured as the seed, rather
than a seed hypervisor that provisions a seed VM using nested virt.

This approach should be more reliable, faster, and easier to get
working, at the expense of not testing the seed hypervisor code paths.

Currently the seed services are deployed, but not tested. A future
change could test discovery and provisioning of an overcloud host using
the seed.

Change-Id: Iefe16215af6f1a9fb8ec78094cd6bd76a82a040a
Story: 2001655
Task: 6683
2018-04-09 12:10:38 +01:00
Nick Jones
450a7a24f8
Fix tilde expansion in development environment function library
Due to how bash expands tildes, the `~` is treated literally here and
results in a folder in the Vagrant user's home directory called `~`.

This commit switches to using the `$HOME` environment variable instead.
2018-03-01 13:17:46 +00:00
Mark Goddard
820f9f2977 Address dev environment review comments
Improves shell script quoting, and adds

set -u
set -o pipefail
2018-02-06 14:08:45 +00:00
Mark Goddard
b3880aa264 Add scripting around the development environment
The following top level scripts are added under dev/:

* overcloud-deploy.sh
* seed-deploy.sh
* seed-hypervisor-deploy.sh

Some amount of configuration is possible via dev/config.sh.
2018-01-31 10:58:19 +00:00
Nick Jones
b8cb373c61
Refactor Vagrantfile to support VMware 2017-11-29 11:30:25 +00:00
Nick Jones
7ef01d1ed5
Add container-image-builders group
Update development environment inventory to include an entry which
enables container image building.
2017-11-28 15:32:49 +00:00
Mark Goddard
cf5c1ce88c Update development configuration for Kayobe 3.0.0 pike release
We no longer need to explicitly set the openstack release, or override the container
image build configuration for ironic.
2017-10-12 11:22:14 +01:00
Mark Goddard
fda941bcbf Add configuration of inspection allocation pool for dev environment
This allows the ironic_dnsmasq container to start successfully.
2017-09-07 20:50:08 +01:00
Mark Goddard
1d9e8fc976 Separate the external network into external and public
Previously, the external network carried both public API traffic and
neutron external network traffic. In some cases is it useful to separate
these networks. The public network now carries the public API traffic,
leaving the external network to carry neutron external network traffic
alone. For backwards compatibility, the public network defaults to the
external network.
2017-08-29 13:12:47 +00:00
John Garbutt
d05b1265df We don't need to set the gateway for aio network
Removing this seemed to stop us getting duplicate network gateways.
2017-08-29 11:42:45 +01:00
Mark Goddard
39a37a1647 Add a value for inspector LLDP interface in development config
Without this registration of inspection rules fails.
2017-08-14 18:48:53 +01:00
Mark Goddard
dc2ea4c1e5 Improve Vagrantfile, add development configuration
Adds commands to install dependencies, and setup a virtualenv with kayobe
installed. Configuration is provided in dev/ for a single controller with
a single network.
2017-08-08 16:23:24 +00:00