381 Commits

Author SHA1 Message Date
Zuul
cf6e157b79 Merge "Add AArch64 CI job" 2020-01-02 19:41:29 +00:00
Zuul
beb54cbde8 Merge "CI: Test Swift" 2019-12-20 09:19:18 +00:00
Marcin Juszkiewicz
4f8326a894 Add AArch64 CI job
Debian/source to match Kolla CI test.

Change-Id: Ica45d5673db8ba1ebd4bfeb6e3d37b5ad5dd412b
2019-12-19 09:37:16 +01:00
Zuul
d7c297ed59 Merge "Added senlin-conductor and senlin-health-manager" 2019-12-16 11:58:06 +00:00
Radosław Piliszek
7714ea724f CI: Test Swift
Partially-implements: blueprint kolla-deployment-scenario-testing
Change-Id: I82266829dba47eac81f440a53706c2e9064b8e62
2019-12-10 13:19:17 +00:00
Hongbin Lu
c6481469e6 CI: Test Zun with Cinder LVM backend (iSCSI)
Co-authored-by: Radosław Piliszek <radoslaw.piliszek@gmail.com>
Depends-on: https://review.opendev.org/694476
Change-Id: I6e7f2f4229c8b579dcc17dacffeb74160875ae29
2019-12-10 13:18:59 +00:00
Zuul
a46292f6b6 Merge "Support configuration of Docker client timeout" 2019-12-10 12:38:57 +00:00
Zuul
6dbddd4ee7 Merge "CI: Use python 3 for local kolla-ansible execution" 2019-12-10 11:15:53 +00:00
Zuul
4b62841384 Merge "CI: Move ansible installation & configuration to Ansible" 2019-12-10 10:39:15 +00:00
Mark Goddard
a5408f425b CI: Use python 3 for local kolla-ansible execution
This change switches the CI jobs to use python 3 for local execution of
the kolla-ansible commands.

For upgrades, we use python 2 for the previous (Train) deploy, then
reinstall using python 3 for the (Ussuri) upgrade.

NOTE: This is separate from the python interpreter used on remote hosts,
which is configured via ansible_python_interpreter.

Partially Implements: blueprint python-3
Related: blueprint drop-py2-support

Change-Id: I5bdc165f68b7bde1f9ef30fe8216f2a44e6d4706
2019-12-09 17:06:19 +00:00
Mark Goddard
c320077f08 CI: Move ansible installation & configuration to Ansible
Continue to reduce the scope of setup_gate.sh. Allows us to more easily
select python 2 or 3.

Change-Id: If2eeeacbbbdf58afb765b4a39772b5a1af7b952b
Partially Implements: blueprint python-3
2019-12-09 13:30:35 +00:00
Mark Goddard
2f7640d396 CI: Don't fail on expected critical log messages
There is a number of critical log messages that we see in CI from time
to time. While these should be fixed, let's not fail jobs unnecessarily.

This change introduces one expected critical message in
placement-api.log:

    Failed to fetch token data from identity server

Co-authored-by: Radosław Piliszek <radoslaw.piliszek@gmail.com>
Related-bug: #1847727
Change-Id: I92ad0be70ed05925612f0c709907ab62280326b8
2019-12-08 08:36:33 +00:00
Erik Olof Gunnar Andersson
619ccf1242 Added senlin-conductor and senlin-health-manager
Depends-On: https://review.opendev.org/692948/
Depends-On: https://review.opendev.org/692691/
Change-Id: I07827b896d36c3723697540fcff164224f6729af
2019-11-30 16:49:33 -08:00
Zuul
baef98a232 Merge "CI: Refactor a lot" 2019-11-28 12:16:18 +00:00
Mark Goddard
01050dc01f Support configuration of Docker client timeout
Adds support for configuration of the Docker client timeout via
'docker_client_timeout'.

This change also increases the default timeout to 120 seconds, as we
sometimes see timeouts in CI and heavily loaded or underpowered
environments. Increasing 'docker_client_timeout' further may be helpful
in cases where Docker reports 'Read timed out'.

Change-Id: I73745771078cb2c0ebae2b1d87ba2c4c12958d82
Closes-Bug: #1809844
2019-11-28 10:10:00 +00:00
Radosław Piliszek
a2fc684164 CI: Refactor a lot
Separate upgrade logic to is_upgrade job var and rename
scenarios to match.

Rename "ACTION" to "SCENARIO" (as it is a scenario).

Separate testing of dashboard (aka Horizon) and increase
its timeout to 5 minutes (CentOS 7 slow as always).

Separate initialization of core OpenStack.

Use gate setup script from ./tests/

Remove useless tox setupenv.

Do not deploy Heat when not really necessary.

Change-Id: I4fca319ccc3de7188f8b7b44c9c71321e3899467
2019-11-26 17:30:14 +01:00
Radosław Piliszek
a3c8a84834 CI: Wait for Zun to delete the test container
We fail randomly on check-failure.sh which checks for
containers being down.
Since we share Docker with Zun, the script sees Zun test container
and may fail when it is stopped but not yet removed.

Change-Id: If8b001f7507663e49e8e535f1889592e5f428ab5
Closes-bug: #1853452
2019-11-21 14:02:05 +01:00
Zuul
2f75313063 Merge "CI: Reconfigure deployment after checking health" 2019-11-21 10:56:57 +00:00
Zuul
7856e72ba8 Merge "CI: Add more service list checks to OS "smoke testing"" 2019-11-21 10:56:56 +00:00
Zuul
82c22c9050 Merge "Attempt to pull image before stopping and removing container" 2019-11-18 15:39:14 +00:00
Zuul
c4818ffd16 Merge "Remove OpenDaylight role" 2019-11-18 15:30:39 +00:00
Radosław Piliszek
7758fe436e CI: Reconfigure deployment after checking health
Change-Id: I27507816e3fe62df2a043dad96e7d1bb4b439869
Closes-bug: #1847331
2019-11-18 14:39:56 +01:00
Michal Nasiadka
eec6831fff Remove OpenDaylight role
Opendaylight support has been deprecated in Train - time to remove it.

Change-Id: I3a61bfbcbf366c327ea3e25d2424bc3fedca29f0
2019-11-18 11:57:32 +00:00
Radosław Piliszek
f59f6a6104 CI: Add more service list checks to OS "smoke testing"
Change-Id: Ie7ee70e19536c2d8f4300df55c9c6ca38abb7ae4
2019-11-15 13:36:40 +01:00
Zuul
2fb08fa4e1 Merge "CI: Add mariadb test" 2019-11-15 12:17:13 +00:00
Mark Goddard
64d07c0b7f Attempt to pull image before stopping and removing container
* Deploy services using kolla-ansible deploy
* Reconfigure the image for one or more services to use an invalid
* config
* Deploy/reconfigure services using kolla-ansible reconfigure

The invalid config could be a wrong docker registry, wrong image name,
wrong tag, etc.

The restart handler for the service fails, and the old container is
left running.

The restart handler for the service fails, and the old container is
stopped and removed. This leaves the service in a broken state.

This change fixes the issue by pulling the image if necessary prior to
stopping and removing the container.

Change-Id: I85b2a1b224d4c4d85c32c4922a2cd2c41171a1dc
Closes-Bug: #1852572
2019-11-14 15:08:09 +00:00
Mark Goddard
6f87625457 CI: Remove Stein upgrade support from CI
Resolves a number of TODOs in the CI configuration that provide support
for upgrading from the Stein release.

Change-Id: I9bac5c230b82ac7c097fe6ca2556e428abda31a1
Depends-On: https://review.opendev.org/694254
2019-11-14 11:57:17 +00:00
Zuul
466206c623 Merge "CI: Don't always build images for Debian" 2019-11-11 16:34:32 +00:00
Zuul
fda1afbb7d Merge "CI: Remove unused tests/ansible_setup_ceph_disks.yml" 2019-11-11 16:34:28 +00:00
Mark Goddard
ed996ef90d CI: Add mariadb test
Tests the following operations for MariaDB:

* Stop
* Recovery

Backup and restore will be added in a separate change.

Depends-On: https://review.opendev.org/693329
Change-Id: I836d91554715cce0e82c1bbebb7430c457418b2d
2019-11-07 18:03:07 +00:00
Marcin Juszkiewicz
16ff0ae139 CI: use become to install python3
Commit 73b6a66fd4db4345e5c1ed8acf2f3d10170bfdd4 added installation of
Python 3 package. But without root permissions it fails.

Change-Id: I65ca794955a1b1419853bf63be36cb0d1f2d2345
2019-11-07 14:43:19 +01:00
Mark Goddard
5a961f7e42 CI: Remove unused tests/ansible_setup_ceph_disks.yml
Change-Id: I82fc125ad1d1a1e1de58da7eac3dc086c25155f6
2019-11-07 10:35:06 +00:00
Mark Goddard
e18e40eb6a CI: Don't always build images for Debian
Debian source images are published now.

Change-Id: Id611fd2fa71eb54ca08d1f68de9505d28ad4ea40
2019-11-07 10:32:45 +00:00
Marcin Juszkiewicz
73b6a66fd4 CI: install Python 3 package
Needed for https://review.opendev.org/#/c/691316

Change-Id: I64e250eb15882f50ecbbc57b87e036f5772f7e3a
2019-11-07 09:41:22 +00:00
Michal Nasiadka
df0c64ed32 Disable cinder-backup in cinder-lvm scenario
cinder-backup[1] does not include an lvm driver, we could use posix
filesystem driver - but it's not supported in kolla-ansible currently.

[1]: https://docs.openstack.org/cinder/rocky/drivers.html#backup-drivers

Change-Id: I847a55692a59c52990186332388f571a04c377b7
Closes-Bug: #1847049
2019-10-25 12:43:55 +00:00
Zuul
df52155b41 Merge "CI: run check-logs in post too" 2019-10-23 17:02:05 +00:00
Radosław Piliszek
22cea7f08c CI: run check-logs in post too
Also makes check-logs clear the aggregate files
to prevent duplicates due to upgrade and post.

Change-Id: I72377b6ac48e29dc5e24d1e3bd343e87b74a7a71
2019-10-23 12:58:36 +00:00
Radosław Piliszek
099a33c87d [train] Finish configuring Zun to use Placement
This also enables Placement when Zun is enabled like Kolla Ansible
already does with Nova.

Change-Id: Id2a09f702e8503b49d2b9e73e06b2ce9f4d168a9
Closes-bug: #1840573
2019-10-20 19:33:56 +02: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
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
Mark Goddard
e3e5f7f20f Fix CI failures
1. Fix yamllint errors in .yamllint file(!)

YAML lint is currently failling on its own configuration file,
.yamllint. This change fixes the issues.

2. Run bindep role in Zuul jobs

This fixes an issue where libffi is not available.

Change-Id: Ic08a8e53a6905a68f0fe26d4b28184e62a64324f
2019-10-15 13:27:55 +01:00
Zuul
e08f046daf Merge "CI: Use any_errors_fatal in pre.yml and run.yml" 2019-10-11 16:07:38 +00:00
Mark Goddard
fac1670433 CI: Use any_errors_fatal in pre.yml and run.yml
This ensures that failure of a single host fails the whole play at that
task. This can avoid confusing errors such as when the task
"Assert that the nodepool private IPv4 address is assigned" fails on one
host, causing subsequent errors on other hosts.

Note that this only affects the Zuul playbooks, not Kolla Ansible's
playbooks.

Change-Id: I77a6534dd2ddd188f795e17d17a44be249d01f31
2019-10-07 09:33:41 +00:00
Zuul
6446eb76ac Merge "Add Debian/source CI job" 2019-10-05 00:05:40 +00:00
Marcin Juszkiewicz
b9d6cc2a7f Add Debian/source CI job
Change-Id: I0628b16e3ebdb3fa8196acdc1bd9c63e75bcfb09
2019-10-04 08:57:55 +00:00
Radosław Piliszek
a2159e2bb9 CI: Remove multinode non-ceph glance exception
This is not required since enabling HAProxy over VXLAN [1].

[1] https://review.opendev.org/670690

Change-Id: I239a7c60d6ae0c80640ff10209a80c7a9ca74cd6
Signed-off-by: Radosław Piliszek <radoslaw.piliszek@gmail.com>
2019-10-01 11:25:14 +00:00
Zuul
2abfa97e82 Merge "Add custom filters for checking services" 2019-09-29 20:36:17 +00:00
Zuul
5c08804fe8 Merge "CI: Fix check-logs.sh" 2019-09-26 09:42:29 +00:00
Zuul
875cdec9f9 Merge "Catch errors and changes in kolla_toolbox module" 2019-09-24 13:04:53 +00:00
Mark Goddard
5c9a798324 CI: Reinstate use of Docker registry mirror
After modernising docker configuration
(I1215e04ec15b01c0b43bac8c0e81293f6724f278), we lost our
registry-mirrors configuration in CI that lets us use a mirror of
Dockerhub.

This change uses the new docker_custom_config variable to configure the
registry mirror.

Change-Id: I1430413c12e9d0b59e4f216ff66372de0f3a4f21
2019-09-23 11:14:01 +01:00