Commit Graph

21 Commits

Author SHA1 Message Date
Robin H. Johnson
a33517a88f buildpackages: add build timeouts.
The build/upload process CAN get stuck sometimes. As we are paying
utility rates for the high-power build server, we should timeout when
it's likely the build is stuck.

Use a default timeout just short of 4 hours, as some providers round up
partial instance-hours for billing.

Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
2016-04-09 00:44:04 +02:00
Robin H. Johnson
785801c2e9 buildpackages: catch VM instances in ERROR state.
It is possible for 'server create' to return success, but then NOT have
a good VM afterwards. The instance will be in state ERROR.

Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
2016-04-09 00:42:09 +02:00
Loic Dachary
3e7f311b76 buildpackages: install rsync
Signed-off-by: Loic Dachary <loic@dachary.org>
2016-04-06 21:02:31 +02:00
Loic Dachary
b9b00a5ddb buildpackages: desambiguate nic on server create
When there are more than one network, it is required to select the one
to be attached to the nic of the instance.

Signed-off-by: Loic Dachary <loic@dachary.org>
2016-03-28 19:52:00 +02:00
Loic Dachary
c5182f257c buildpackages: do not hardcode x86_64 in build scripts
Signed-off-by: Loic Dachary <loic@dachary.org>
2016-03-28 18:15:12 +02:00
Loic Dachary
f9c4858a26 buildpackages: use architecture suffixed images
Signed-off-by: Loic Dachary <loic@dachary.org>
2016-03-28 18:15:12 +02:00
Loic Dachary
c60ace31ea buildpackages: enable autoindex in the packages repository
Signed-off-by: Loic Dachary <loic@dachary.org>
2016-03-16 14:36:52 +01:00
Robin H. Johnson
ebf8508c08 buildpackages: pkgrepo host also needs user-data setup.
The packages repo host fails in environments where networking setup is
needed in VMs. Use the same user-data as the buildhosts to ensure this
is the case.

Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
2015-12-10 22:58:09 -08:00
Robin H. Johnson
3c6954642a
buildpackages: catch instance creation failure.
Split the sleep from the server creation, so we catch 'server create'
failures (eg due to quota):
> Quota exceeded for cores: Requested 16, but already used 10 of 20 cores
> (HTTP 403) (Request-ID: req-6467934e-db50-4479-995c-4d44dedf553a)

Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
2015-12-10 11:55:53 -08:00
Robin H. Johnson
0240f57643
buildpackages: Be robust about addresses
OpenStack could tell us the VM has multiple networks, and offers no
guarantee about the order of addresses either (the old code failed if
the v4 IP was first).

For now, take the first listed network, and the first listed IPv4
address therein. Comments contain more detailed examples of possible
output from openstack tool.

Also remove the need for using jq to parse the output.

Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
2015-12-10 11:55:49 -08:00
Loic Dachary
8088d60524 buildpackages: wait for the build machine deletion
When the quotas are low, it matters to block until the build machine is
actually deleted. Otherwise target provisionning may fail because the
they exceed the quota. For instance the default on OVH is to have 32
cores and the build machine uses 16. The packages-repository machine
uses two, the teuthology cluster uses one and that leaves only 13 cores
for the targets which may be too low when running jobs that require
large instances.

Signed-off-by: Loic Dachary <loic@dachary.org>
2015-11-26 13:13:36 +01:00
Loic Dachary
87e50d394a buildpackages: avoid duplicate packages-repository
Signed-off-by: Loic Dachary <loic@dachary.org>
2015-11-19 09:08:35 +01:00
Loic Dachary
69e9b22e4b buildpackages: refactor to not require remote
Most of the flavor, sha1, tag etc. selection logic as implemented in the
packaging module of teuthology relies on remote hosts. This is complex
to tests and inconvenient because hosts must be provisionned even before
trying to figure out which packages need to be installed.

Using remote hosts is necessary when bare metal targets are used because
teuthology must adapt to the operating system already installed. The
selection logic in the context of dynamically provisionned targets is
simpler because it is defined by the job being run.

The buildpackages is refactored to use only the job configuration to
figure out which packages must be built. It makes it specific to targets
that are dynamically provisionned. It would have to be modified to query
the remote host in the case of bare metal targets.

Signed-off-by: Loic Dachary <loic@dachary.org>
2015-11-18 22:49:59 +01:00
Loic Dachary
4825f64a7c buildpackages: protect packages-repository
Signed-off-by: Loic Dachary <loic@dachary.org>
2015-11-14 09:31:41 +01:00
Loic Dachary
7b8f205952 buildpackages: silently ignore IPv6 addresses
Signed-off-by: Loic Dachary <ldachary@redhat.com>
2015-11-04 11:52:24 +01:00
Loic Dachary
baa8ea327e buildpackages: implement notcmalloc flavor
http://tracker.ceph.com/issues/13454 Fixes: #13454

Signed-off-by: Loic Dachary <loic@dachary.org>
2015-10-13 14:56:10 +02:00
Loic Dachary
05228e1e5c buildpackages: user-data must be per os-type/os-version
CentOS 6.5 needs to install a package and reboot to grow the root file
system. Instead of assuming a common user-data.txt file can fit all
Operating Systems, make one user data per os-type/os-version combination.

Signed-off-by: Loic Dachary <loic@dachary.org>
2015-09-27 23:42:58 +02:00
Loic Dachary
78b2a9aa74 buildpackages: get Ceph git url via get_ceph_git_url()
Instead of relying on git_base_url, use the get_ceph_git_url() to obtain
the URL of the Ceph repository to use with git clone. This allows the
user to override it via the git_ceph_url configuration option and the
--git-ceph-url command line option to teuthology-openstack.

http://tracker.ceph.com/issues/11883 Refs: #11883

Signed-off-by: Loic Dachary <loic@dachary.org>
2015-09-26 13:11:36 +02:00
Loic Dachary
7e3a271a89 buildpackages: make rpm packages
Signed-off-by: Loic Dachary <loic@dachary.org>
2015-09-23 21:11:26 +02:00
Loic Dachary
e38a6d69df buildpackages: build the repository and the packages
http://tracker.ceph.com/issues/13031 Fixes: #13031

Signed-off-by: Loic Dachary <loic@dachary.org>
2015-09-16 23:19:34 +02:00
Loic Dachary
2b25080d4f buildpackages: build ceph packages and upload them
Build Ceph packages from source for the required revision, os_type,
os_version and architecture and upload them to the gitbuilder
repository.

http://tracker.ceph.com/issues/13031 Fixes: #13031

Signed-off-by: Loic Dachary <loic@dachary.org>
2015-09-15 12:01:05 +02:00