154 Commits

Author SHA1 Message Date
Zuul
e7a85726d2 Merge "Implement IPv6 support in the control plane" 2019-10-16 18:22:23 +00:00
Doug Szumski
78a828ef42 Support multiple nova cells
This patch adds initial support for deploying multiple Nova cells.

Splitting a nova-cell role out from the Nova role allows a more granular
approach to deploying and configuring Nova services.

A new enable_cells flag has been added that enables the support of
multiple cells via the introduction of a super conductor in addition to
cell-specific conductors. When this flag is not set (the default), nova
is configured in the same manner as before - with a single conductor.

The nova role now deploys the global services:

* nova-api
* nova-scheduler
* nova-super-conductor (if enable_cells is true)

The nova-cell role handles services specific to a cell:

* nova-compute
* nova-compute-ironic
* nova-conductor
* nova-libvirt
* nova-novncproxy
* nova-serialproxy
* nova-spicehtml5proxy
* nova-ssh

This patch does not support using a single cell controller for managing
more than one cell. Support for sharing a cell controller will be added
in a future patch.

This patch should be backwards compatible and is tested by existing CI
jobs. A new CI job has been added that tests a multi-cell environment.

ceph-mon has been removed from the play hosts list as it is not
necessary - delegate_to does not require the host to be in the play.

Documentation will be added in a separate patch.

Partially Implements: blueprint support-nova-cells
Co-Authored-By: Mark Goddard <mark@stackhpc.com>
Change-Id: I810aad7d49db3f5a7fd9a2f0f746fd912fe03917
2019-10-16 17:42:36 +00:00
Zuul
21babd3f9d Merge "CI: Increase timeout for upgrade jobs by 30 minutes" 2019-10-16 13:11:43 +00:00
Radosław Piliszek
f69a8a9bf4 CI: Increase timeout for upgrade jobs by 30 minutes
Upgrade jobs like to timeout in the 2-hour window when they must
build their images.
This increase is already applied in ceph jobs.

Change-Id: Ic1118760d9192cc15e1ebf37fb8adf3440f18a78
2019-10-16 10:55:44 +02:00
Radosław Piliszek
bc053c09c1 Implement IPv6 support in the control plane
Introduce kolla_address filter.
Introduce put_address_in_context filter.

Add AF config to vars.

Address contexts:
- raw (default): <ADDR>
- memcache: inet6:[<ADDR>]
- url: [<ADDR>]

Other changes:

globals.yml - mention just IP in comment

prechecks/port_checks (api_intf) - kolla_address handles validation

3x interface conditional (swift configs: replication/storage)

2x interface variable definition with hostname
(haproxy listens; api intf)

1x interface variable definition with hostname with bifrost exclusion
(baremetal pre-install /etc/hosts; api intf)

neutron's ml2 'overlay_ip_version' set to 6 for IPv6 on tunnel network

basic multinode source CI job for IPv6

prechecks for rabbitmq and qdrouterd use proper NSS database now

MariaDB Galera Cluster WSREP SST mariabackup workaround
(socat and IPv6)

Ceph naming workaround in CI
TODO: probably needs documenting

RabbitMQ IPv6-only proto_dist

Ceph ms switch to IPv6 mode

Remove neutron-server ml2_type_vxlan/vxlan_group setting
as it is not used (let's avoid any confusion)
and could break setups without proper multicast routing
if it started working (also IPv4-only)

haproxy upgrade checks for slaves based on ipv6 addresses

TODO:

ovs-dpdk grabs ipv4 network address (w/ prefix len / submask)
not supported, invalid by default because neutron_external has no address
No idea whether ovs-dpdk works at all atm.

ml2 for xenapi
Xen is not supported too well.
This would require working with XenAPI facts.

rp_filter setting
This would require meddling with ip6tables (there is no sysctl param).
By default nothing is dropped.
Unlikely we really need it.

ironic dnsmasq is configured IPv4-only
dnsmasq needs DHCPv6 options and testing in vivo.

KNOWN ISSUES (beyond us):

One cannot use IPv6 address to reference the image for docker like we
currently do, see: https://github.com/moby/moby/issues/39033
(docker_registry; docker API 400 - invalid reference format)
workaround: use hostname/FQDN

RabbitMQ may fail to bind to IPv6 if hostname resolves also to IPv4.
This is due to old RabbitMQ versions available in images.
IPv4 is preferred by default and may fail in the IPv6-only scenario.
This should be no problem in real life as IPv6-only is indeed IPv6-only.
Also, when new RabbitMQ (3.7.16/3.8+) makes it into images, this will
no longer be relevant as we supply all the necessary config.
See: https://github.com/rabbitmq/rabbitmq-server/pull/1982

For reliable runs, at least Ansible 2.8 is required (2.8.5 confirmed
to work well). Older Ansible versions are known to miss IPv6 addresses
in interface facts. This may affect redeploys, reconfigures and
upgrades which run after VIP address is assigned.
See: https://github.com/ansible/ansible/issues/63227

Bifrost Train does not support IPv6 deployments.
See: https://storyboard.openstack.org/#!/story/2006689

Change-Id: Ia34e6916ea4f99e9522cd2ddde03a0a4776f7e2c
Implements: blueprint ipv6-control-plane
Signed-off-by: Radosław Piliszek <radoslaw.piliszek@gmail.com>
2019-10-16 10:24:35 +02:00
Radosław Piliszek
f3f4a93e3b CI: Increase job run attempts to 5
Attempts affect pre failures.
This means we can increase stability of jobs by rejecting nodes
that fail pre without failing runs at the same time (unless we
are really unlucky and hit b0rken nodes 5 times in a row).

Change-Id: I17b7f878c742fa8db66f738526855a02ab9f1905
2019-10-16 09:31:38 +02:00
Marcin Juszkiewicz
b9d6cc2a7f Add Debian/source CI job
Change-Id: I0628b16e3ebdb3fa8196acdc1bd9c63e75bcfb09
2019-10-04 08:57:55 +00:00
Mark Goddard
8e40629161 CI: Use VXLAN overlay network
VXLAN is necessary to run HA in CI (due to floating VIP
address handled by keepalived).
It also turned out to be required to have private
IPv6 address assignments.
This patch is based on linux bridge rather than OVS
to avoid problems with OVS deployed in containers.

This patch enables haproxy in multinode jobs.

Includes saving of linux networking details.

Makes DASHBOARD_URL agree with OS_AUTH_URL - properly uses the
pre-upgrade value for testing.

Co-authored-by: Radosław Piliszek <radoslaw.piliszek@gmail.com>
Depends-on: https://review.opendev.org/683068
Depends-on: https://review.opendev.org/682957
Change-Id: I66888712da80c3d6f84ee4949762961664d3adea
2019-09-19 11:07:02 +02:00
Zuul
249cb4be45 Merge "CI - remove unused required-projects" 2019-08-19 10:03:47 +00:00
Radosław Piliszek
d4de1d7520 CI: Zun jobs
- Test Zun on CentOS too
- Make etcd change also trigger Zun jobs (like kuryr and zun)
- Test multinode Zun deployments instead of AIO
  (more likely to break)
- In Zun scenario, stop configuring docker for legacy swarm mode
  (Zun is no swarm)
- Separate test-zun.sh testing script
- Show appcontainer to see which node it has been started on

Change-Id: I289b1009fe00aedb9b78cbd83298b14da5fd9670
Depends-On: https://review.opendev.org/676736
Signed-off-by: Radosław Piliszek <radoslaw.piliszek@gmail.com>
2019-08-16 17:11:00 +02:00
Kien Nguyen
fbac54c5f5 Testing Masakari role in gate
Add Masakari testing into the Gate.

Change-Id: I52df33f963e7d2ae4059887df3d24d9e6642134e
Depends-On: https://review.opendev.org/#/c/615469/
Depends-On: https://review.opendev.org/#/c/615715
Implements: blueprint ansible-masakari
Co-Authored-By: Gaëtan Trellu <gaetan.trellu@incloudus.com>
2019-08-14 12:32:51 -04:00
Radosław Piliszek
b0cac3d160 CI: Test Zun and NFV scenarios also when modifying relevant tests
Additionally simplifies regexps.

Change-Id: I3b027aeb330630a2ea90fc3e2c4b70c7fb38f058
Signed-off-by: Radosław Piliszek <radoslaw.piliszek@gmail.com>
2019-07-16 20:39:12 +02:00
Zuul
772568e888 Merge "CI: add periodic-stable-jobs Zuul project template" 2019-07-08 09:46:41 +00:00
Radosław Piliszek
55d813004d CI: Test ironic also when nova role is modified
Change-Id: I9773a7c4f7a5d31a83c10562057ce772439b9693
Signed-off-by: Radosław Piliszek <radoslaw.piliszek@gmail.com>
2019-07-04 12:46:40 +00:00
Radosław Piliszek
9c815fa503 CI: set the same gate queue for kolla and kolla-ansible
This is to ensure that any Depends-On does not cause Zuul not to pick up
the change for gating due to no notifications between queues.
Previously W+1-ing a change which depended on non-merged change from
the other project caused it to remain in the same state.

Change-Id: Ib2d88471ac5730c00b5a9721066d1fb3f2998c9c
Signed-off-by: Radosław Piliszek <radoslaw.piliszek@gmail.com>
2019-07-03 18:04:12 +00:00
Radosław Piliszek
ed540b0496 CI: add periodic-stable-jobs Zuul project template
Kolla has it already and kolla-ansible should.
Patch to backport as far as pike.
Affects only stable branches.

Change-Id: Iecc46b364ad9fc69fe67dd09ee1b4e3c5511f01c
Signed-off-by: Radosław Piliszek <radoslaw.piliszek@gmail.com>
2019-06-27 17:05:55 +02:00
Zuul
54856a873f Merge "Disable and remove OracleLinux CI jobs" 2019-06-27 14:14:38 +00:00
Zuul
f9ca973869 Merge "Do not run Zuul kolla-ansible-base jobs when modifying globals.yml" 2019-06-26 09:27:09 +00:00
Radosław Piliszek
a1b8abcf85 CI - remove unused required-projects
openstack/requirements is not used.
openstack/kolla is used conditionally when Zuul itself adds it
due to dependency.
No need to always clone the two repositories.

Change-Id: Iabfc25e2b4227ae227f06ab196ca544b02e7808f
Signed-off-by: Radosław Piliszek <radoslaw.piliszek@gmail.com>
2019-06-21 08:29:41 +02:00
Radosław Piliszek
24b3df90ba Do not run Zuul kolla-ansible-base jobs when modifying globals.yml
The file is not used in Zuul jobs. It is templated independently.

Change-Id: Ia39898cdb165e30dab74de727048be2ebb2290c8
Signed-off-by: Radosław Piliszek <radoslaw.piliszek@gmail.com>
2019-06-16 11:13:10 +02:00
Mark Goddard
845040ad3f Add CI job for ironic
Adds four new CI jobs for testing centos/ubuntu binary/source deploys
with ironic enabled. These are run only when there are changes to the
ironic role.

Performs some simple testing by creating a node using the fake-hardware
hardware type and creating a server.

Change-Id: Ie669e57ce2af53257b4ca05f45193cb73f48827a
Depends-On: https://review.opendev.org/664011
2019-06-11 10:22:04 +01:00
Mark Goddard
6b87514b14 Disable and remove OracleLinux CI jobs
We have agreed to remove support for Oracle Linux, starting by
disabling
the CI jobs.

http://lists.openstack.org/pipermail/openstack-discuss/2019-June/006896.html

Change-Id: I79f6ec98383b1f59b8317a3720f6f9923d6bb21d
2019-06-10 08:49:10 +01:00
Zuul
d71f15412a Merge "Add deploy guide stuff to irrelevant file list of zuul" 2019-06-07 08:19:25 +00:00
Mark Goddard
78ee0287a7 Test Ceph upgrade in CI
Add CI jobs for testing an upgrade of a multinode system with Ceph
enabled. As for the existing upgrade job, we upgrade from the previous
release to the current release.

Change-Id: I931772ca4c63757769467a57c80dc0726a11167a
Depends-On: https://review.opendev.org/658163
2019-06-03 08:24:32 +00:00
chenxing
e1fe928885 Add deploy guide stuff to irrelevant file list of zuul
It shouldn't trigger kolla-ansible-base job if changing deploy guide.

Change-Id: I8cb5d3ae7825690279f78ec847b940110bd60216
2019-05-30 21:09:32 +08:00
confi-surya
157704d902 Update Python 3 test runtimes for Train
Following the process set down in the TC resolution on updating Python
versions:

https://governance.openstack.org/tc/resolutions/20181024-python-update-process.html

Change-Id: If36099eb2ab0c34c18544a0996d2bbaea255b539
2019-05-09 12:46:50 +05:30
OpenDev Sysadmins
92d8d22cf6 OpenDev Migration Patch
This commit was bulk generated and pushed by the OpenDev sysadmins
as a part of the Git hosting and code review systems migration
detailed in these mailing list posts:

http://lists.openstack.org/pipermail/openstack-discuss/2019-March/003603.html
http://lists.openstack.org/pipermail/openstack-discuss/2019-April/004920.html

Attempts have been made to correct repository namespaces and
hostnames based on simple pattern matching, but it's possible some
were updated incorrectly or missed entirely. Please reach out to us
via the contact information listed at https://opendev.org/ with any
questions you may have.
2019-04-19 19:29:02 +00:00
Mark Goddard
5e4c5e3d6c Add non-voting binary deploy jobs
We run these jobs in kolla, we should also run them in kolla-ansible.

Change-Id: Ica530a57d0e6dcfd5c50fd6f8796cd65510a4409
2019-04-10 08:55:25 +01:00
Mark Goddard
3e77798f66 Set previous release to Stein
Now that the stable/stein branch has been cut, we can set the previous
release to Stein. This is done in kolla-ansible for rolling upgrades,
and in CI configuration for upgrade tests.

Change-Id: I87269738db9521fc22a6ce3aee67d9ab00d47e2a
2019-04-08 12:25:27 +01:00
Zuul
1b2503b5d4 Merge "Test upgrades in CI" 2019-03-28 12:31:08 +00:00
Mark Goddard
c23c9b2c25 Test upgrades in CI
This patch adds two new jobs:

* kolla-ansible-centos-source-upgrade
* kolla-ansible-ubuntu-source-upgrade

These jobs first deploy a control plane using the previous release of
Kolla Ansible, then upgrade to the current release.

Because we can't change the branch of the git repository on the Zuul
executor, we change the branch of the kolla-ansible repository on the
primary node to the branch of the previous release, in this case
stable/rocky. A new remote-template role has been added that supports
generating templates using a remote template source, to generate config
files using the previous kolla-ansible branch.

If the change being tested depends on a kolla change for the current
branch, then we build images. Rather than using the current
kolla-ansible version to tag the images, we now tag them with
change_<gerrit change ID>. This is because the version of kolla-ansible
will change from the previous release to the current one as we upgrade
the system.

Finally, it should be noted that the 'previous_release' variable in the
Zuul config needs to be updated with each release, since this sets the
release of kolla-ansible that is installed initially.

Depends-On: https://review.openstack.org/645089/
Depends-On: https://review.openstack.org/644250/
Depends-On: https://review.openstack.org/645816/
Depends-On: https://review.openstack.org/645840/
Change-Id: If301e0affcd55360fefe3b105f023ae5c47b0853
2019-03-27 16:13:49 +00:00
Michal Nasiadka
ab04ab931a Bump up timeout for ceph jobs
Currently ceph jobs are often getting TIMED_OUT, increasing limit.

Change-Id: I3c6684984930d55a56da846bd8c3f19df2754b06
2019-03-25 12:50:53 +01:00
Zuul
2d2b0dbda1 Merge "Add lower-constraints.txt to irrelevant-files" 2019-03-21 08:35:46 +00:00
Mark Goddard
39410b0198 Run jobs on bionic instead of xenial
Migrate to the latest Ubuntu LTS release 18.04 aka Bionic.  See [0] for
the big picture.

Also test running tox jobs on Bionic.

[0] https://etherpad.openstack.org/p/devstack-bionic

Change-Id: I96e7b8d17bc1e92716c04fdcf362c2adb08a2212
2019-03-18 14:46:56 +00:00
Zuul
4ad5122d3f Merge "Add cinder-lvm CI job" 2019-03-18 10:54:05 +00:00
Mark Goddard
fc4aeeb1a7 Add lower-constraints.txt to irrelevant-files
Change-Id: I1f17c504e265e127409b108d2cc53ef6e8c6b887
2019-03-14 15:32:39 +00:00
Mark Goddard
c41c9a0ce0 Add cinder-lvm CI job
Tests Cinder with an LVM/iSCSI backend, including attaching a volume to
an instance.

Change-Id: I6963b5e81d7ac88dd1bdfb94b62d9d63028b9786
2019-03-01 14:36:30 +00:00
confi-surya
db052b7d18 Drop py35 jobs
Python 3.5 was the target runtime for the Rocky release. The current
target py3 runtime for Stein is Python 3.6, so there is no reason to
keep testing against the older version.

https://governance.openstack.org/tc/reference/runtimes/stein.html#python-runtime-for-stein

Change-Id: I0db6c9cbf2af9ed9c701755a26f721aeac97d4cd
2019-02-27 08:57:24 +00:00
ZhongShengping
be339ed734 add python 3.7 unit test job
This is a mechanically generated patch to add a unit test job running
under Python 3.7.

See ML discussion here [1] for context.

[1] http://lists.openstack.org/pipermail/openstack-dev/2018-October/135626.html

Change-Id: Ice5e11c244b48812e786ef188b4110e6d57b5445
Story: #2004073
Task: #27423
2019-02-19 17:04:18 +08:00
Hongbin Lu
54761726c8 Run Zun job on kuryr's changes
Zun depends on Kuryr so let's trigger the Zun job on kuryr's change.

Change-Id: If95a6bfb5f305c2f69808a781ff9d8513bf2006c
2019-01-13 22:43:47 +00:00
Zuul
e9fda8664e Merge "Add Kolla Ceph filestore CI jobs" 2019-01-07 11:35:54 +00:00
tone.zhang
6786bc5b77 Add Kolla Ceph filestore CI jobs
Since Rocky bluestore is the default store type used by Kolla Ceph.
Filestore is still used by the customers. The patch allows deploy
both Ceph bluestore OSD and Ceph filestore OSD in Kolla-ansible CI
jobs.

Change-Id: Iaa7c1b2ff35eb649c3a6d9f7266463d8961cdc9e
Signed-off-by: tone.zhang <tone.zhang@arm.com>
2019-01-01 13:32:16 +08:00
Eduardo Gonzalez
535aba79a9 Add NFV orchestration services CI job
Change-Id: I33484d0961f1cd17ed05dd124eba68d99b4db83f
2018-12-21 11:43:22 +01:00
confi-surya
e73fe77d7d Use template for lower-constraints
Small cleanups:

* Use openstack-lower-constraints-jobs template, remove individual
  jobs.
* Sort list of templates

Change-Id: I67199fabe6a9f7b1fd38dac77a6157bf4fb465b9
Needed-By: https://review.openstack.org/623229
2018-12-21 07:33:19 +00:00
Mark Goddard
8d523dabd8 Add kolla-ansible to zuul job dependencies
This means we can pull in the job from other repositories without
explicitly adding the dependency on kolla-ansible in that project.

Change-Id: Ia7e4294508e6d445638c176359a939af32fdfb12
2018-12-18 10:37:20 +00:00
Eduardo Gonzalez
26af377a3b Refactor tests/templates/globals.yml
Improve where openstack services are deployed
to a variable, so we will avoid many conditions
when more CI jobs are added with different configs.
Heat is enabled by default in globals.yml, lets deploy it
at least.

Change-Id: If0f009cf434c3ed5874b3171d8c75911ef8e4be1
2018-11-08 10:15:38 +00:00
Nguyen Hai Truong
f783505e6f Add cover job
Insert python coverage job for py-test.

Change-Id: Ic7940b6318de07fed64c9f63ea0db1f2b6fe8a3d
2018-11-06 20:37:27 -08:00
Hongbin LU
f57c1aec6c Add Zun scenario job for ubuntu
Introduce a job 'kolla-ansible-ubuntu-source-zun' to test kolla
with Zun enabled. To reduce CI resource, this job will be triggered
only if there are changes on the Zun's ansible roles.

Change-Id: I0ba207e1d3761da2d6992c5834d4f59e7e1d6628
2018-10-22 14:24:36 +00:00
Mark Goddard
ed8a7b7b89 Increase CI job timeout to 2 hours
If there is a change to kolla then images are built, which can push the
job over the existing 1.5 hour timeout. These jobs are also used in the
kolla CI.

Change-Id: I88a28745cf834376163ced36984c317fce831346
2018-09-19 10:54:51 +01:00
qingszhao
b7ea7f5761 add python 3.6 unit test job
This is a mechanically generated patch to add a unit test job running
under Python 3.6 as part of the python3-first goal.

See the python3-first goal document for details:
https://governance.openstack.org/tc/goals/stein/python3-first.html

Change-Id: Ife0cb63cf4e5c1cf2ce43510bbf9ff130fdfc1f7
Story: #2002586
Task: #24305
2018-08-23 07:47:23 +00:00