15034 Commits

Author SHA1 Message Date
Jeremy Stanley
a22df8264f Add archive signing key for Debian 10/buster
The buster-backports suite on Debian mirrors is not signed by the
old jessie signing key we have set to verify in reprepro, but also
we're not mirroring Debian 8/jessie any longer anyway. Replace that
list with the 9/stretch and 10/buster signing keys and switch to
longer key IDs which match the names used for them in the Puppet
manifest. Also add Puppetry and keyfile for the buster keys so that
they will be installed accordingly. The official list of keys can be
found here: https://ftp-master.debian.org/keys.html

Change-Id: Ia193f040b2b707329948955eb091a186eabf8096
2019-07-30 17:41:07 +00:00
Jeremy Stanley
6631b899c5 Put gitea07 and gitea08 back into service
Add the gitea07.opendev.org and gitea08.opendev.org servers into the
haproxy pools now that they've been seeded with current data. Remove
the create repos task disable list entries for them as well.

Change-Id: I69390e6a32b01cc1713839f326fa930c376282af
2019-07-29 23:35:36 +00:00
Jeremy Stanley
2ed6775780 Add gitea07 and gitea08 replacements to inventory
Add new IP addresses to inventory for the rebuilds, but don't
reactivate them in the haproxy pools yet (they're already excluded
from the repository creation task).

Change-Id: I1e3fc1ba56015eeab2c6256b3f90188ecabf23cc
2019-07-29 19:20:26 +00:00
Jeremy Stanley
56a0b08aa5 Swap gitea05 into service and bring down 07 and 08
Add the gitea05.opendev.org server into the haproxy pools now that
it's been seeded with current data. Switch the create repos task
disable list from 05 to 07 and 08, and remove 07 and 08 from the
Ansible inventory and comment them out in the haproxy pools in
preparation for replacement.

To the casual observer it may appear gitea06 is being skipped, but
it was replaced first out of sequence due to filesystem corruption
during the PTG. The increased performance of the 75% of the nodes
which have already been replaced means we can get by doing the final
25% at the same time (so two servers at once).

Change-Id: Ia49157c16582b7ed0dbef3eb9d07bf7f1d4450b9
2019-07-29 16:56:39 +00:00
Zuul
bcb07033f5 Merge "Add gitea05 replacement to inventory" 2019-07-29 14:49:46 +00:00
Jeremy Stanley
b45c672de5 Replace fortnebula mirror
The fortnebula mirror is being rebuilt while the environment there
is under some refactoring. The old mirror isn't reachable any longer
so removing it from our inventory while adding its replacement
should be safe.

Also update the letsencrypt playbooks for the new name.

Change-Id: I789248e4216f4cf059ccc5b071c2a784f9c629e9
2019-07-29 13:08:58 +00:00
Jeremy Stanley
00b814cabb Add gitea05 replacement to inventory
Add new IP addresses to inventory for the rebuild, but don't
reactivate it in the haproxy pools yet (it's already excluded from
the repository creation task).

Change-Id: I36c188992f4787d4e7c5c952eac5fb0bbdc5a627
2019-07-28 21:41:36 +00:00
Jeremy Stanley
79c86cfe3d Swap gitea04 into service and bring down gitea05
Add the gitea04.opendev.org server into the haproxy pools now that
it's been seeded with current data. Switch the create repos task
disable list from 04 to 05, and remove 05 from the Ansible inventory
and comment it out in the haproxy pools in preparation for
replacement.

Change-Id: I4cd1fef399e527771a26efee8a39952694f3ce6b
2019-07-28 12:15:41 +00:00
Jeremy Stanley
a603b4bd38 Add gitea04 replacement to inventory
Add new IP addresses to inventory for the rebuild, but don't
reactivate it in the haproxy pools yet (it's already excluded from
the repository creation task).

Change-Id: I8b43c6f9cb41452c7f64862a2b401dc0d1b7ef3d
2019-07-27 15:28:44 +00:00
Jeremy Stanley
0256ba5219 Swap gitea03 into service and bring down gitea04
Add the gitea03.opendev.org server into the haproxy pools now that
it's been seeded with current data. Switch the create repos task
disable list from 03 to 04, and remove 04 from the Ansible inventory
and comment it out in the haproxy pools in preparation for
replacement.

Change-Id: Id5817f8265996862a7e0810b9fb9e3d78be5d066
2019-07-27 02:07:13 +00:00
Jeremy Stanley
01a97664ea Add gitea03 replacement to inventory
Add new IP addresses to inventory for the rebuild, but don't
reactivate it in the haproxy pools yet (it's already excluded from
the repository creation task).

Change-Id: Id4076e179bee82b03822f59803865eaa60118334
2019-07-26 22:09:18 +00:00
Jeremy Stanley
55f657c68d Swap gitea02 into service and bring down gitea03
Add the gitea02.opendev.org server into the haproxy pools now that
it's been seeded with current data. Switch the create repos task
disable list from 02 to 03, and remove 03 from the Ansible inventory
and comment it out in the haproxy pools in preparation for
replacement.

Change-Id: I4b51291311064c60d4bb2d90bec6e5cb90a54f3c
2019-07-26 18:00:52 +00:00
Jeremy Stanley
9c5e54a89c Add gitea02 replacement to inventory
Add new IP addresses to inventory for the rebuild, but don't
reactivate it in the haproxy pools yet. Also switch the exclusion
for 01 to 02 for the repository creation task.

Change-Id: I6c4a437316627a723e6bb6c15fdce86a5e847042
2019-07-26 15:11:08 +00:00
Zuul
4b092eaed7 Merge "Build docker images of gerrit" 2019-07-25 21:58:06 +00:00
Clark Boylan
c23ac25264 Remove gitea02 from inventory so we can replace it
The global inventory is used when launching nodes so if we want to
replace a server we have to remove it from the inventory first. This is
that step for replacing gitea02.

Note that when adding it back for the new server there are some edits to
make to the playbooks as noted in the gitea sysadmin docs.

We do also remove this instance from haproxy as well to prevent unwanted
connections while we flip things over.

Change-Id: I53a3f517d46d046cb59e3185ca19ba3df55d8466
2019-07-24 20:12:16 -07:00
Zuul
788f3b5b85 Merge "Readd gitea01 to haproxy pools" 2019-07-24 22:17:42 +00:00
Jeremy Stanley
866b52f9fb Readd gitea01 to haproxy pools
Now that the replacement gitea01 server has up to date content, add
it back to the haproxy configuration.

Change-Id: I24b4659603efa1861fed1238b8eda6c3f6c11a14
2019-07-24 21:08:00 +00:00
Zuul
1b135f7d46 Merge "Install GNU Privacy Guard on Gitea servers" 2019-07-24 16:48:25 +00:00
Jeremy Stanley
f8bf371583 Install GNU Privacy Guard on Gitea servers
The install-docker role uses the apt-key utility which expects to
have GPG installed, so include the package for it (this seems to
have been manually installed or preinstalled on the images for our
existing Gitea servers, but our new images do not include it).

Change-Id: I28d748fab35e22219a7278603ed984aaa7658ef0
2019-07-24 15:46:50 +00:00
Clark Boylan
36c14e4325 Remove centos mirror from openstack mirror update
This rsync'd mirror is now being managed by the opendev mirror update
server. Remove it from the older openstack server to avoid a conflict in
excludes around sclo repo.

Currently we have opendev adding sclo and openstack removing it.

Change-Id: I599ee7d0fab8c5e2a060aff86bce20f1f8d4f54b
2019-07-24 08:11:44 -07:00
Monty Taylor
943f66e3e6 Build docker images of gerrit
To provide a stepwise upgrade path from 2.13 running directly to
2.15 in a container, make a container image containing the war we're
using currently. This should let us make a change to how we run the
war without changing the war at all, and then update the war.

Instead of trying to make a clean build for gerrit 2.13 inside of a
builder image, just have it wget the already built wars and jars we
have.

There are pieces of this that duplicate what's being done in puppet,
but in this context it's not immediately clear these are important to
do. However, it's also not clear they're a bad idea.

The gerrit 2.15 build needs a newer bazel. Looking at the CI scripts
that are used by gerrithub, we find that they use bazel 0.26.1
and nodesource v10. Use the bazel image published by google to get
a bazel builder image.

Set gerrit uid/git to 3000 in both images to match the existing
directory ownership so that bindmounting doesn't face permissions
problems.

Change-Id: I3533f01c0859ed50640dcfd98023994c5867c056
2019-07-24 04:40:28 -04:00
Zuul
c2f3f53389 Merge "Re-add gitea01 replacement to inventory" 2019-07-24 00:09:30 +00:00
Jeremy Stanley
5587c299ea Re-add gitea01 replacement to inventory
Add new IP addresses to inventory for the rebuild, but don't
reactivate it in the haproxy pools yet.

Note this switches the gitea testing to use a host called gitea99 so
that it doesn't conflict with our changes of the production hosts.

Change-Id: I9779e16cca423bcf514dd3a8d9f14e91d43f1ca3
2019-07-23 16:17:41 -07:00
Zuul
60d4a1bdd3 Merge "Reload haproxy configuration when config changes" 2019-07-23 18:55:05 +00:00
Monty Taylor
64da74a7a5 Serialize the gitea role
The gitea role will restart gitea if images have updated. We'd like
to not stop them all at the same time. Do serial: 1 so that we update
one backend at a time.

Change-Id: I5ce7f6d8d25a1cf7ddbe901ec6b91860ceaf5bd1
2019-07-23 13:25:29 -04:00
Jeremy Stanley
df23d48949 Reload haproxy configuration when config changes
Add an Ansible handler to send a hangup signal through
docker-compose to the running haproxy daemon any time the task to
update its configuration fires.

Change-Id: I1946c1e7eaaa8a8e2209007b5d065dba952ec6e2
2019-07-23 16:48:23 +00:00
Clark Boylan
08a113d4a8 Actually check backends are alive in haproxy
This adds the simplest form of health checking to haproxy, a tcp check
to the backends. We can do more sophisticated checks like checking ssl
negotiates or even HTTP requests but for now this is probably a good
improvement.

Change-Id: I3c6b07df4b3e0c380c757e1e5cb51ae0be655f34
2019-07-23 08:13:12 -07:00
Clark Boylan
cb33dba40a Increate gerrit user connection limit by 50%
Zuul has hit a scenario where a git repo update was unable to talk to
gerrit via ssh because it had reached its per user connection limit [0].
This then led to some openstack job failing [1].

The default limit (which we were using) is 64 connection per user.
Apparently this is not quite enough for a busy zuul? Increase this by
50% up to 96.

[0] http://paste.openstack.org/show/754741/
[1] http://lists.openstack.org/pipermail/release-job-failures/2019-July/001193.html

Change-Id: Ibeca2208485608f3b61aa716184165342bfcc3c9
2019-07-22 15:29:19 -07:00
Clark Boylan
ffcd1791bf Cleanup nodepool builder clouds.yaml
We ended up running into a problem with nodepool built control plane
images (has to do with boot from volume not allowing us to delete images
that are in use by a nova instance). We have decided to clean this up
and go back to not doing this until we can do it more properly.

Note this isn't a revert because having a group for access to control
plane clouds does seem like a good idea in general and I believe there
have been changes we'd have to resolve in the clouds.yaml files anyway.

Depends-On: https://review.opendev.org/#/c/665012/
Change-Id: I5e72928ec2dec37afa9c8567eff30eb6e9c04f1d
2019-07-22 13:55:29 -07:00
Clark Boylan
a2af942fa3 Remove gitea01 from inventory so we can replace it
The global inventory is used when launching nodes so if we want to
replace a server we have to remove it from the inventory first. This is
that step for replacing gitea01.

Note that when adding it back for the new server there are some edits to
make to the playbooks as noted in the gitea sysadmin docs.

We do also remove this instance from haproxy as well to prevent unwanted
connections while we flip things over.

Change-Id: If32405b1302353f1f262a30b7392533f86fec1e4
2019-07-22 09:20:17 -07:00
Zuul
3828e7a7cb Merge "Allow to rsync Centos Software Collections repo" 2019-07-22 06:00:40 +00:00
Ian Wienand
667e0dffa0 Add some pointers on the OpenDev PPA
The OpenStack/OpenDev PPA repositories are currently undocumented.
Add some information on where to find things.

Change-Id: Iea03c5d558b3dd6af9f7c860dfcc75a71dc59d9f
2019-07-22 10:58:54 +10:00
Ian Wienand
814b42f616 Set openafs cache sizes for mirror/mirror-update
Set the openafs cache values to the same as the puppet set values for
openafs-client role users.

Change-Id: I5a58673cad8df2a1e8dddb592c322e751d7f2ac5
2019-07-19 12:04:26 -07:00
Zuul
dd63186f66 Merge "Use swapfile if no extra device is present" 2019-07-18 20:55:33 +00:00
Zuul
2b46688cdd Merge "launch-node.py : add option to skip ipv6 address checks" 2019-07-18 20:54:05 +00:00
Zuul
40c53a796a Merge "mirror-update: update docs for mirror-update.opendev.org" 2019-07-18 20:54:03 +00:00
Zuul
4d25b6c3b8 Merge "Add mirror-update to run_all.sh" 2019-07-18 20:47:17 +00:00
Zuul
4e159a8ac2 Merge "Publish .log files as text/plain" 2019-07-18 20:47:15 +00:00
Zuul
1ee1e73c48 Merge "Disable cloud launcher cron job during CI" 2019-07-18 20:47:14 +00:00
Zuul
3fe88abb92 Merge "Remove apport package from ubuntu servers" 2019-07-18 13:43:05 +00:00
Zuul
876e7b0dbd Merge "Streamline documented bup setup process" 2019-07-18 13:33:08 +00:00
Zuul
5d530eb39f Merge "Add letsencrypt documentation" 2019-07-18 12:59:06 +00:00
Kien Nguyen
9b2862d5f9 Allow to rsync Centos Software Collections repo
Remove Centos sclo from exclude list.

Change-Id: I8aae878d4dbb40b537913c66912320a91a4ac99b
Needed-By: https://review.opendev.org/#/c/671178/
2019-07-18 17:06:11 +07:00
Clark Boylan
d80f4a93ab Collect haproxy logs via syslog
Haproxy wants to log to syslog (and not stdout for performance reasons,
see https://github.com/dockerfile/haproxy/issues/3). However there is no
running syslog in our haproxy container. What we can do is mount in the
host's /dev/log and have haproxy write to the hosts syslog to get
logging.

Do this via a docker compose volume bind mount.

Change-Id: Icf4a91c2bc5f5dbb0bfb9d36e7ec0210c6dc4e90
2019-07-17 13:40:53 -07:00
Clark Boylan
319c9c44f0 Use swapfile if no extra device is present
We are booting instances outside of rax and they don't always come with
extra devices that can be repurposed for swap. If in that case then
create a swapfile instead.

Note we do not use fallocate as swapon's manpage says this is suboptimal
with the linux kernel's swap implementation.

Change-Id: I8b9ce18c18e4069aba7de27bb6a9927627b15b49
2019-07-17 10:37:30 -07:00
Zuul
cb86492fa4 Merge "Silence InsecureRequestWarning and password warning" 2019-07-17 17:15:36 +00:00
Zuul
24ce1f6f8e Merge "Parallelize repo creation by org" 2019-07-17 17:01:38 +00:00
Zuul
8f9a402e57 Merge "Provide better module return info from gitea create repos" 2019-07-17 16:33:32 +00:00
Zuul
93dcd25db1 Merge "Use a thread pool to update gitea repos faster" 2019-07-17 16:28:46 +00:00
Monty Taylor
b58bc86c89 Silence InsecureRequestWarning and password warning
We're making these requests to localhost over an ssh connection.

The password warning, on the other hand, is a real thing. Let's not
log the gitea password when we run this in prod.

Change-Id: I2157e4027dce5ab9ebceb3f78dbeff22a83d9fad
2019-07-17 15:57:57 +00:00