1795 Commits

Author SHA1 Message Date
Clark Boylan
309ae73b8a Fixup openstack mailman template perms
We are using synchronize to copy the openstack mailman templates which
preserved the ownership and group and permissions of the source files on
bridge. This isn't a major problem but it is ugly so we fix it.

To fix it we set rsync_opts for synchronize to set a usermap and a
groupmap to map the bridge info to the data we want on the remote.

Change-Id: I209345cbe9e27beb18d1ba31e6715bf850bc022b
2021-05-19 12:21:14 -07:00
Zuul
9fbd1ccf2c Merge "Ansible mailman configs" 2021-05-19 15:55:09 +00:00
Ian Wienand
51e3976273 Run haproxy as root user
The usptream haproxy image switched to running as a user, rather than
as root.  This means it can not bind to 80/443 and instantly dies.

I've added a comment with some discussion, but for now, use the root
user.

[1] 82ff028a25

Change-Id: Ic9b04cdd09f73d9df015bcb173871cff1ae58835
2021-05-17 14:28:37 +10:00
Jeremy Stanley
4189add2f7 Temporarily pin haproxy image to 2.3
The haproxy 2.4 images aren't working for us, docker-compose
perpetually reports the container in a "restarting" state. Pin back
from latest to 2.3 until we can sort out what needs to change in how
we integrate this on the server.

Change-Id: I01ae11a31eb8eaeb9e570692d5ec268395f69a97
2021-05-15 12:19:48 +00:00
Clark Boylan
d4176aff5b Sync zuul status json backup list with current tenants
This removes the kata-containers tenant backup entry as that tenant no
longer exists. We also add status json backups for the opendev,
vexxhost, zuul, pyca, and pypa tenants. This gets us in sync with the
current tenant list.

Change-Id: I8527676dda67915e6ebe0d1c5fde7a57a7ac2e5b
2021-05-14 10:32:07 -07:00
Clark Boylan
39f10b5fe5 Fixup small issues on new zuul scheduler
This fixes the zuul debug log's logrotate filename. We also increase the
rotation count to 30 daily logs for all zuul scheduler zuul processes
(this matches the old server).

We also create a /var/lib/zuul/backup dir so that status.json backups
have a location they can write to. We do this in the base zuul role
which means all zuul servers will get this dir. It doesn't currently
conflict with any of the cluster members' /var/lib/zuul contents so
should be fine.

Change-Id: I4709e3c7e542781a65ae24c1f05a32444026fd26
2021-05-14 08:20:56 -07:00
Clark Boylan
c743b7e484 Clean up zuul01 from inventory
This cleans up zuul01 as it should no longer be used at this point. We
also make the inventory groups a bit more clear that all zuul servers
are under the opendev.org domain now.

Depends-On: https://review.opendev.org/c/opendev/zone-opendev.org/+/790483
Change-Id: I7885fe60028fbd87688f3ae920a24bce4d1a3acd
2021-05-13 06:58:36 -07:00
Clark Boylan
533594d959 Add zuul02 to inventory
This zuul02 instance will replace zuul01. There are a few items to
coordinate when doing an actual switch so we haven't removed zuul01 from
inventory here. In particular we need to update gearman server config
values in the zuul cluster and we need to save queues, shutdown zuul01,
then start zuul02's scheduler and restore queues there.

I believe landing this change is safe as we don't appear to start zuul
on new instances by default. Reviewers should double check this.

Depends-On: https://review.opendev.org/c/opendev/zone-opendev.org/+/791039
Change-Id: I524b456e494124d8293fbe8e1468de40f3800772
2021-05-13 06:58:30 -07:00
Clark Boylan
4c4e27cb3a Ansible mailman configs
This converts our existing puppeted mailman configuration into a set of
ansible roles and a new playbook. We don't try to do anything new and
instead do our best to map from puppet to ansible as closely as
possible. This helps reduce churn and will help us find problems more
quickly if they happen.

Followups will further cleanup the puppetry.

Change-Id: If8cdb1164c9000438d1977d8965a92ca8eebe4df
2021-05-11 08:40:01 -07:00
Zuul
712bd77e62 Merge "Remove some unnecessary debug: statements" 2021-05-07 03:03:35 +00:00
Ian Wienand
984580f96d Remove some unnecessary debug: statements
With the roles now in production, these debug statements are more
noise than help.

Change-Id: I3da4ac0ae1f8ea8b64ab8d6ba75ccb110787db2e
2021-05-07 11:11:56 +10:00
Ian Wienand
320bd0406c certcheck: cleanup letsencrypt domains
Several of these domains have migrated to be deployed via our
letsencrypt roles and thus no-longer need special casing in the
certcheck list as they are automatically added now.

Change-Id: Id417db6af09f3ba96bb6da09d8cbf28dd8ddf276
2021-05-07 11:01:38 +10:00
Zuul
b87ed55db3 Merge "reprepro: mirror Ubuntu UCA Xena" 2021-05-06 02:02:09 +00:00
Zuul
2cf61a5aee Merge "Add support for Xenial ESM repos to our base roles" 2021-05-05 19:54:34 +00:00
Marcin Juszkiewicz
8c90c2a611 reprepro: mirror Ubuntu UCA Xena
Change-Id: I918baf8bc9f4c7bb28c471875c04e4ff2ff2c508
2021-05-05 17:44:48 +02:00
Zuul
fec37d6534 Merge "Deprovision Limesurvey config management and docs" 2021-05-05 00:37:39 +00:00
Zuul
8faf9a8a49 Merge "nodepool clouds: adds stats prefix" 2021-05-04 20:28:00 +00:00
Clark Boylan
bf658dacda Add support for Xenial ESM repos to our base roles
This will run the ua tool to attach an UA token and to enable the
esm-infra repos. We also update unattended upgrades to auto pull
security updates from the ESM repos.

Change-Id: Ifb487d12df7b799d5fd2973d56741e0757bc4d4f
2021-05-04 08:46:06 -07:00
Ian Wienand
58ba847c07 gerrit: enable plugin reload in dev mode
With a pure javascript plugin, dropping a new file in the plugins/
directory and reloading the page is sufficient to see changes.
However, with .jar plugins (as zuul-summary-plugin now is) you need to
actually issue a reload, which requires the included permissions.

Enable it dev mode, which is where you'll very likely be trying to
iterate development with a change to a plugin.  I don't think it's
really that dangerous for production, but traditionally it's been off
there so let's leave it like that.

While we're here, write out a little script to help you quickly deploy
a new .jar of the plugin when we're testing.

Change-Id: I57fa18755f8a8168da12c48f1f38d272da1c6599
2021-05-03 22:37:55 +00:00
Ian Wienand
3af0d3736b nodepool clouds: adds stats prefix
This adds a metrics prefix
(https://review.opendev.org/c/openstack/openstacksdk/+/786814) to each
of our clouds so that we start logging API stats separately again.
See also https://review.opendev.org/c/zuul/nodepool/+/786862

Change-Id: I5910fcbf1b54fa3806a0cc2e539565d47b805d35
2021-05-03 21:48:21 +00:00
Jeremy Stanley
1df1001cb4 Deprovision Limesurvey config management and docs
The Limesurvey service hosted at survey.openstack.org was a beta
which saw limited use. The platform it runs on, Xenial, is now EOL
from Ubuntu/Canonical and in order to upgrade to a newer
distribution release we would need to rewrite all the configuration
management (the version of Puppet supported by newer Ubuntu is not
backward-compatible with what we've been running).

If a similar service becomes interesting to users of our
collaboratory in the future, it will need to be reintroduced with
freshly written configuration management anyway. The old configs and
documentation remain in our Git history should anyone wish to use
them as inspiration.

Change-Id: I59b419cf112d32f20084ab93eb6f2417a7f93fdb
2021-05-01 15:12:00 +00:00
Clark Boylan
71b0526a44 Fix the zk peer listing to match myid values
We were using a loop index which meant for our cluster size of three we
would always assign server.1 through server.3. Unfortunately, as we
replace servers we may add notes with a myid value >3 which breaks when
we try to assign serverids in this way.

Fix it by using the calculation for myid in the peer listing.

Change-Id: Icf770c75cf3a84420116f47ad691d9f06191fb65
2021-04-27 10:16:08 -07:00
Zuul
82435b279a Merge "Add zk04.opendev.org" 2021-04-27 16:33:02 +00:00
Zuul
ad0f061b7f Merge "Cleanup mirror01.iad3.inmotion" 2021-04-23 20:35:22 +00:00
Zuul
f77dfc4f14 Merge "Add mirror02 to inmotion" 2021-04-23 18:12:33 +00:00
Ian Wienand
cc6b1c8810 reprepro : add labels
For reasons explained in [1] Debian's lsb_release.py on bullseye is
falling back to probing "apt-cache policy"

  When (as currently), stretch is the testing release,
  /etc/debian_version contains "stretch/sid", as shipped by
  base-files. It is therefore impossible to rely on that file to
  differentiate between a host running testing or unstable without
  asking apt what is actually preferred when installing packages
  (through parsing `apt-cache policy`). That's how `lsb-release --
  codename` returns "sid" _xor_ "stretch".

The problem is, this parses the output of "apt-cache policy" which
fails for two reasons; firsly we have cleared out all the cache files,
so our hosts return anything until "apt-get update" is run, but
secondly because our mirrors do not have a "label" that matches in
this code at [2]

e.g. what we get out of "apt-cache policy" is

  500 https://mirror.dfw.rax.opendev.org/debian bullseye/main amd64 Packages
      release o=Debian,n=bullseye,c=main,b=amd64
      origin mirror.dfw.rax.opendev.org

which is missing a "l=" field to make this parsing recognise it as a
valid source.

The label is set by reprepro [3]

  Label
    This optional field is simply copied into the Release files.

Add a label to make our mirrors look more like regular mirrors.

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=845651
[2] https://sources.debian.org/src/lsb/11.1.0/lsb_release.py/#L191
[3] https://manpages.debian.org/stretch/reprepro/reprepro.1.en.html

Change-Id: Id705acbb3a01f43ae635a24fa3c24d0a05bdaa16
2021-04-23 13:23:02 +10:00
Zuul
0b4b00ff26 Merge "Handle zuul-summary-results as .jar / per-project config" 2021-04-22 20:27:42 +00:00
Clark Boylan
82a5445ae0 Cleanup mirror01.iad3.inmotion
This server has been replaced with a mirror02 host with a slightly
different network config. Clean this server up.

Depends-On: https://review.opendev.org/c/opendev/zone-opendev.org/+/787630
Change-Id: I6eaa51db47d8b4d4596928f6a7ef105bebe0e8f1
2021-04-22 12:20:33 -07:00
Clark Boylan
ac2b661cf2 Add mirror02 to inmotion
We are doing this so that we can cleanup the private network + floating
IP setup that the existing mirror does. Once this new mirror is up and
happy we can cname to it and then clean up the old mirror and its
networking config. We do this in order to save an IP that the current
private network router is consuming.

Depends-On: https://review.opendev.org/c/opendev/zone-opendev.org/+/787628
Change-Id: I50c311087c6c28726e36913c7e081f3b3d0ee049
2021-04-22 12:15:28 -07:00
Zuul
a8edd128cc Merge "Use External inmotion cloud network for zuul nodes" 2021-04-22 18:39:05 +00:00
Clark Boylan
6b190a4751 Use External inmotion cloud network for zuul nodes
We have limited ipv4 address space in this cloud. Currently we can do
about 6 IP addresses for test nodes after we account for network
infrastructure and the mirror. By switching these instances to using the
external network directly we can clean up some of the neutron network
infrastructure which we think may free up 2 more IP addresses. That
should get us our originally intended max-servers of 8.

Change-Id: I705ff082ff06ae1c97f4c229a22893e6d87d206d
2021-04-22 09:53:19 -07:00
Clark Boylan
3bdc358a2e Add missing inmotion LE apache restart handler
This was missed in the original host enrollment.

Change-Id: Ic3e137a8505a5d18e882b434bf057436fccfeb1b
2021-04-22 07:02:50 -07:00
Zuul
4930d44311 Merge "nodepool-base: prefer ZK IPv6 addresses" 2021-04-22 02:32:20 +00:00
Clark Boylan
f1df36145d Add inmotion cloud to cloud launcher
This adds the new inmotion cloud to clouds.yaml files and the cloud
launcher config. This cloud is running on an openstack as a service
platform so we have quite a bit of freedom to make changes here within
the resource limitations if necessary.

Change-Id: I2aed6dffde4a1d6e3044c4bd8df4ca60065ae1ea
2021-04-21 11:18:40 -07:00
Ian Wienand
1ac445b1d9 nodepool-base: prefer ZK IPv6 addresses
The current loop here uses the ansible_host value of the ZK servers,
which we have set to the IPv4 address in the inventory.

nb03 is constantly dropping out of ZK; for the record the logs record:

 2021-04-21 05:56:15,151 WARNING kazoo.client: Connection dropped: socket connection error: Connection reset by peer
 2021-04-21 05:56:15,151 WARNING kazoo.client: Transition to CONNECTING
 2021-04-21 05:56:15,151 INFO kazoo.client: Zookeeper connection lost
 2021-04-21 05:56:15,152 INFO kazoo.client: Connecting to 23.253.90.246(23.253.90.246):2281, use_ssl: True
 2021-04-21 05:56:15,176 INFO kazoo.client: Zookeeper connection established, state: CONNECTED

and this happens every few minutes.  This cloud does IPv4 behind a NAT
and it seems very likely this is related.

So the primary motivation here is to see if using IPv6 clears this up,
giving us some datapoints.  However I think that our other nodepool
hosts should all be fine to use ZK over IPv6.  However, I think in the
gate we may have cases where hosts don't have IPv6 addresses, so this
looks for the v6 address and if not found, falls back to the current
ansible_host behaviour.

Change-Id: Ifde86ddd632662f36bcbe2a0dc99660f06b01ac3
2021-04-21 16:56:07 +10:00
Ian Wienand
255a94f15c OSU OSL : change upload format to RAW
This will help the cloud stop having to copy around .qcow2 images.

Change-Id: I228c62b7b37547c0f7903d1339eeff648f24276b
2021-04-21 07:57:55 +10:00
Ian Wienand
da22d2d93a Handle zuul-summary-results as .jar / per-project config
Upstream change has merged that makes a REST endpoint that
enables/disables the Zuul Summary tab on a per-project basis in
results.  It defaults to enabled.

This happens via a .jar which is now copied in during the build.

Change-Id: If50f0fa3c5fb116bd0a5a78694de1e7067aa7f11
Depends-On: https://gerrit-review.googlesource.com/c/plugins/zuul-results-summary/+/298465/
2021-04-20 08:02:46 +10:00
Clark Boylan
7502b87837 Add zk04.opendev.org
We will be rotating zk01-03.openstack.org out and replacing them with
zk04-06.opendev.org. This is the first change in that process which puts
zk04 into the rotation. This should only be landed when operators are
ready to manually stop zookeeper on zk03 (which is being replaced by
zk04 in this change).

Change-Id: Iea69130f6b3b2c8e54e3938c60e4a3295601c46f
2021-04-15 13:20:29 -07:00
Zuul
a582a24296 Merge "OSU OSL : add default network" 2021-04-15 05:21:52 +00:00
Ian Wienand
1d9c721a64 OSU OSL : add default network
The public5 network has the most IP addresses available and is
recommended for use.

This cloud also has fixed public IP's, not floating

Change-Id: I7ae1bb0081d3a86149225c3400b53a9561ccffe6
2021-04-15 14:10:45 +10:00
Zuul
87266cca25 Merge "nodepool-builder: configure upload workers, reduce nb03" 2021-04-15 03:27:20 +00:00
Ian Wienand
f0260567d6 OSU OSL : fix typo in project id
Change-Id: Ibe053a157ae7aa191b7e25e7b1f8c15796453aed
2021-04-15 11:06:33 +10:00
Ian Wienand
28fed0bcd5 nodepool-builder: configure upload workers, reduce nb03
Add a variable to configure upload-workers for nodepool-builder
daemons.

Reduce our defaults for nb03 to see if we can get more reliable
uploads.

Change-Id: I819bdd262c7118cbde4e6ffdc12aa3ac64569a96
2021-04-15 09:10:37 +10:00
Ian Wienand
b01291b832 rax-dns-backup : fix cron output capture
Change-Id: I560332f0b641dab1b18c88d4e4241668c903c1ec
2021-04-15 07:15:09 +10:00
Zuul
cb5898ae0a Merge "Remove firehose.openstack.org" 2021-04-14 18:50:16 +00:00
Zuul
94bcf05de6 Merge "Add OSU OSL to nodepool configuration" 2021-04-14 04:48:44 +00:00
Ian Wienand
efdaa9a12a Add OSU OSL to nodepool configuration
Change-Id: Id97345595a4463617bc1a93675d35e32cfff7d08
2021-04-14 12:34:06 +10:00
Zuul
213b01db37 Merge "Fix typo on OSU OSL password template" 2021-04-14 02:11:14 +00:00
Zuul
bb2188d298 Merge "Add planet.openstack.org redirect to static" 2021-04-14 02:01:02 +00:00
Ian Wienand
f705d90166 Fix typo on OSU OSL password template
Change-Id: I738b78321fb855eb84435be9af80a112b39a3aec
2021-04-14 11:09:11 +10:00