16889 Commits

Author SHA1 Message Date
Zuul
aa4f1b4256 Merge "kerberos-kdc: quote some integers to avoid string/int confusion" 2021-03-22 22:56:26 +00:00
James E. Blair
3e3f86458d Downgrade scheduler to Zuul 4.1.0
We found a bug in master which will prevent us from merging a fix;
downgrade the scheduler to 4.1.0 to get that in.

Change-Id: Ie9ad75177ab58b34e20cafab496ba7af6f082551
2021-03-22 13:43:52 -07:00
Zuul
4565c03d78 Merge "Update nodepool launchers to focal in testing" 2021-03-19 00:42:48 +00:00
Zuul
3bb0573f41 Merge "system-config-run-kerberos: run twice" 2021-03-19 00:07:09 +00:00
Zuul
b8874e4f51 Merge "kerberos-kdc: add database backups" 2021-03-19 00:06:59 +00:00
Zuul
eb78355fce Merge "borg-backup-server: fix verification run" 2021-03-19 00:05:49 +00:00
Ian Wienand
9ac0748802 kerberos-kdc: quote some integers to avoid string/int confusion
Change-Id: Ia7ed570c1a10feafcb4824dca10282b8866f5265
2021-03-19 10:37:49 +11:00
Clark Boylan
d0bc265c2a Revert "Enable jitsi-meet xmpp websockets"
This reverts commit f64b935778074191337672c739978975ee4eda68.

There must be more required to make this work.

Change-Id: I21e1d45fabca10ee93e7c87449fc15f3fd691b8b
2021-03-18 15:33:20 -07:00
Zuul
bf8e8916aa Merge "Enable jitsi-meet xmpp websockets" 2021-03-18 22:09:12 +00:00
Clark Boylan
0aa838ce16 Fix jitsi config.js
There were : used when we should have used =. Fix this.

Change-Id: Icb1e04d6e6e27726a12a1e49d53d9eb7c88d1a01
2021-03-18 13:43:39 -07:00
Clark Boylan
f64b935778 Enable jitsi-meet xmpp websockets
This switches desktop clients to using xmpp over websockets instead of
BOSH. The mobile clients continue to use BOSH. Apparently this provides
better performance and is the default expectation of the upstream docker
images. We had disabled it prior to get back to a working state when we
weren't setting this variable at all.

After looking at configs on the docker images I expect that enabling
this explicitly will work (the problem before was we neither enabled nor
disabled it and the images can't handle that case). If that isn't the
case we can always revert.

Change-Id: I59c9fe75a0860782beb8864ff3bd9622b35381c1
2021-03-18 11:59:14 -07:00
Clark Boylan
55f38141c5 More jitsi meet config cleanups
This removes an unused letsencrypt dir bind mount for jitsi-meet web
that was causing confusion (we run letsencrypt out of band and put the
certs in the correct dir so we don't need this specific bind mount).

We also remove the now unused config.js config file from the role.

We stop managing the default nginx config and instead rely on the
container provided template. To properly configure http redirects we
set the ENABLE_HTTP_REDIRECT flag in the env var file.

Finally we update the README file with a bit more info on how this all
works.

Change-Id: Iecb68c9855b5627d25f8bb586b0e6f366f1c80ab
2021-03-18 11:55:02 -07:00
Zuul
bb1b98623d Merge "Restore meetpad etherpad settings." 2021-03-18 18:04:35 +00:00
Zuul
266bbe2639 Merge "Clean up the old openstack.org nodepool launchers." 2021-03-18 16:59:23 +00:00
Zuul
c600c4a2cc Merge "Restore some meetpad settings we had previously set" 2021-03-18 16:59:09 +00:00
Zuul
4302bf3585 Merge "Manage jitsi-meet meet.conf as a template input for the container" 2021-03-18 15:54:14 +00:00
Zuul
f917044497 Merge "kerberos-kdc: add realm value" 2021-03-18 05:45:01 +00:00
Ian Wienand
ef62e1df31 kerberos-kdc: add realm value
I missed this in the production variables as it is set differently for
testing.

Change-Id: Ie9508cbcb11f8b342f05c98e8e85bc158e5ee4c1
2021-03-18 16:04:51 +11:00
Zuul
99a05bdf75 Merge "Add kerberos-client group" 2021-03-18 02:43:59 +00:00
Ian Wienand
dc827de23d Add kerberos-client group
We duplicate the KDC settings over all our kerberos clients.  Add
clients to a "kerberos-client" group and set the variables in a group
file.

Change-Id: I25ed5f8c68065060205dfbb634c6558488003a38
2021-03-18 11:59:30 +11:00
Zuul
47fa6e0382 Merge "Add zookeeper-statsd" 2021-03-18 00:08:12 +00:00
Clark Boylan
be1325fe2c Clean up the old openstack.org nodepool launchers.
These have been replaced with new focal .opendev.org hosts. Note we
don't want to land this until we successfully transitioned from one set
of hosts to another.

Change-Id: I385a74c8a093f5baebb0d4858127c7595be191c0
2021-03-17 15:53:42 -07:00
Clark Boylan
c1bb5b52cf Restore meetpad etherpad settings.
This restores useRoomAsSharedDocumentName and openSharedDocumentOnJoin
config settings in our jitsi meet config.js. We had lost these settings
in the recent jitsi meet web container update. To restore them we
provide an alternative settings-config.js template to the container so
that when it generates its configs we get these vars included.

We stop managing the config.js file in /var/jitsi-meet/web to avoid
confusion with ansible replacing configs that may be used then.

Change-Id: I4d2bd77e03812695792cda2abb7f401288186f2c
2021-03-17 15:04:16 -07:00
James E. Blair
96bac7b486 Add zookeeper-statsd
This adds a program, zookeeper-statsd, which monitors zookeeper
metrics and reports them to statsd.  It also adds a container to
run that program.  And it runs the container on each of the
ZooKeeper quorum members.  And it updates the graphite host to
allow statsd traffic from quorum members.  And it updates the
4-letter-word whitelist to allow the mntr command (which is used
to gather metrics) to be issued.

Change-Id: I298f0b13a05cc615d8496edd4622438507fc5423
2021-03-17 14:52:31 -07:00
Clark Boylan
d410b43b59 Restore some meetpad settings we had previously set
This starts conferences with participant video muted and it disabled p2p
connections for calls between two participants. We had these settings
before but the recent container image update undid them.

Change-Id: I4152ace083f79116758020fbbcbbb96e39eef9ed
2021-03-17 13:24:38 -07:00
Clark Boylan
2ac695f628 Manage jitsi-meet meet.conf as a template input for the container
The jitsi meet containers want to generate configuration from the
templates found in /defaults on the container to config files in the
bind mounted /config (/var/jitsi-meet/ on the host side). This means
that the configs ansible is writing to /var/jitsi-meet are complete
ignored and overwritten by the container using its templating system and
env vars.

This is causing us problems because we would like to use a different
etherpad prxoy config in nginx to ensure the Host header is set
properly. To make this happen we bind mount in our own template file so
that the container can template what we want rather than what is found
in the image.

Change-Id: Ifdde66a01bb7e632fc19ca0a512216584f1ea9f0
2021-03-17 13:03:09 -07:00
Clark Boylan
75a64427a1 Improve meetpad env options for templating
The PUBLIC_URL is quoted which results in quotes ending up in our config
breaking etherpad base url setting in config.js. We remove the quotes as
they are not necessary.

We also remove the /p/ suffix from ETHERPAD_URL_BASE as this causes the
proxying to send extra /p/s to etherpad which results in problems.

Note these fixes appear to be necessary but are not sufficient to have
working meetpad proxying of etherpad. We also need to fix the nginx
meet.conf proxy settings to send valid Host heads. A followup change
will attempt to address that.

Change-Id: I0f59339a33267468ad5481858507a43cefa0021d
2021-03-17 12:47:43 -07:00
Clark Boylan
7b87c7c305 Disable xmpp websocket in jitsi meet config
We unforked our jitsi web container and discovered that etherpad doc
embedding was broken. In the process of debugging this the jitsi meet
services on meetpad were restart which pulled in newer configs which
expect ENABLE_XMPP_WEBSOCKET to be enabled by default. Unfortunately
this wasn't quite working for us. Explicitly disabling this seems to
make audio and video calling work again. But doc sharing isn't even
attempted now.

Let's get this fix in as audio and video are important then we'll keep
debugging the etherpad doc sharing problem.

https://github.com/jitsi/docker-jitsi-meet/issues/902 has details from
others that hit this problem.

Note that part of the issue here seems to be that nginx is using the
default configs in the container found at /default and not the configs
we bind mount at /config. This at least seems to be why the proxying for
etherpad documents is broken.

Change-Id: I03fa9d331e6825b3b953a3573c0dd43c7be478a4
2021-03-17 11:38:56 -07:00
Zuul
b2b1a9062d Merge "Add new opendev.org nodepool launchers" 2021-03-17 18:13:07 +00:00
Zuul
941d7e7eab Merge "Cleanup nl01.openstack.org" 2021-03-17 15:28:47 +00:00
Ian Wienand
e5a2354451 borg-backup-server: fix verification run
&>> is a bashism and not supported by sh, which cron runs the jobs
under.  Use >> instead.

Change-Id: I8e67f466887070fb1dedc403c53227c3ce1b2f1d
2021-03-17 15:09:57 +11:00
Zuul
df9a85e45c Merge "kerberos: switch servers to Ansible control" 2021-03-17 04:03:03 +00:00
Zuul
77b1c14a9a Merge "Use upstream jitsi-meet web image" 2021-03-17 00:22:50 +00:00
Zuul
4524a92caf Merge "kerberos-kdc: role to manage Kerberos KDC servers" 2021-03-16 22:28:46 +00:00
Clark Boylan
680ed17ecd Add new opendev.org nodepool launchers
This adds the new focal nodepool launchers replacements for nl02-04 to
our inventory. This will configure them with an idle configuration. We
then confirm they are happy running in an idle state then switch over
the config from the old to new servers.

Depends-On: https://review.opendev.org/c/openstack/project-config/+/780982
Change-Id: Iea645925caaeee6f498aa690c4f2c848f6899317
2021-03-16 15:21:58 -07:00
Zuul
b133afedfd Merge "refstack: cleanup old puppet" 2021-03-16 22:21:03 +00:00
Zuul
a5d0329cf7 Merge "Don't always update gitea project descriptions" 2021-03-16 22:20:55 +00:00
Clark Boylan
893ec329b4 Cleanup nl01.openstack.org
This server is no longer running a nodepool launcher and can be removed
from the inventory so that we can delete it. Next up we'll replace
02-04.

Change-Id: Ia71b9b616bde1018cd4ce3b8c882fba02677165d
2021-03-16 14:36:12 -07:00
Ian Wienand
bf886a5ab6 system-config-run-kerberos: run twice
Run the playbook twice to ensure the role doesn't change anything

Change-Id: I1c0c45ece37035a18eb9468a5d7f4f34cfec4edc
2021-03-17 08:31:55 +11:00
Ian Wienand
3052ff4935 kerberos-kdc: add database backups
Add a script to save a db dump to borg backups.  Add the primary KDC
to our backup list.

Change-Id: I32f4ebc1bb4c1952034aba43c75e4d2f85a1b6d3
2021-03-17 08:31:52 +11:00
Ian Wienand
2254b6e43d kerberos: switch servers to Ansible control
This is a follow-on to I60b40897486b29beafc76025790c501b5055313d to
switch the KDC servers to Ansible control and remove any related
puppet configuration.

Change-Id: Ib8f6ec657ca10a3ba648bd154a035fc3d8da4be5
2021-03-17 08:30:52 +11:00
Ian Wienand
c1aff2ed38 kerberos-kdc: role to manage Kerberos KDC servers
This adds a role and related testing to manage our Kerberos KDC
servers, intended to replace the puppet modules currently performing
this task.

This role automates realm creation, initial setup, key material
distribution and replica host configuration.  None of this is intended
to run on the production servers which are already setup with an
active database, and the role should be effectively idempotent in
production.

Note that this does not yet switch the production servers into the new
groups; this can be done in a separate step under controlled
conditions and with related upgrades of the host OS to Focal.

Change-Id: I60b40897486b29beafc76025790c501b5055313d
2021-03-17 08:30:52 +11:00
Ian Wienand
018a14e34f refstack: cleanup old puppet
Remove old puppet configuration for the restack service, which is now
managed by Ansible.

Change-Id: I6b6dfd0f8ef89a5362f64cfbc8016ba5b1a346b3
2021-03-17 07:06:53 +11:00
Clark Boylan
16a4bdce02 Don't always update gitea project descriptions
There is some correlation that running the manage-projects playbook
gives our gitea fits. The bulk of the work done here is in trying to
update the descriptions of all projects. There isn't a good way to see
if the description is already set first so we just try and ignore
errors. This creates potentially thousands of operations all at once and
could be why things are sad.

We move these operations under the always update flag which is not set
on normal runs. If we really need to converge to a good updated state we
can manually run the playbook/role with always update set.

We also don't set a limit on the number of ThreadPoolExecutor workers
which will default to 5 * NumProcs. Could be that tuning this down would
make gitea happier.

One other thought is that we may not be using request sessions properly
for connection reuse. In particular requests notes that you need to set
stream to False or read request content to return a connection back to
the pool for reuse. We might look into this for further improvements.

Change-Id: I6e6fb1eb08303e9da7e38cf493d1871364340000
2021-03-16 13:06:16 -07:00
Zuul
6df7767200 Merge "Add nl01.opendev.org to our inventory" 2021-03-16 16:45:48 +00:00
Zuul
e077281e4e Merge "refstack: fix backup script typo" 2021-03-16 05:43:21 +00:00
Ian Wienand
ea48ffc596 refstack: fix backup script typo
This got copied from another command that also had this typo.

Also, don't bother backing up the on-disk backups, as we backup
directly via the stream dumps.

Change-Id: Ie200a29eec2b1a0725a8872ab548bcb0f26980e6
2021-03-16 15:12:41 +11:00
Zuul
bc94f97de2 Merge "Enable srvr, stat and dump commands in the zk cluster" 2021-03-16 04:10:11 +00:00
Zuul
70079c5771 Merge "gitea-git-repos: update deprecated API path" 2021-03-16 04:00:30 +00:00
Clark Boylan
3f2dd0e681 Enable srvr, stat and dump commands in the zk cluster
Zookeeper supports a number of "4 letter" commands [0] which are useful
for debugging and general diagnostics. By default only srvr is enabled,
but we want to add stat and dump to see details on server and client
connection statuses.

We do this via the 4lw.commands.whitelist configuration option [1] and
not the docker image env vars because we're mounting a zoo.cfg in
already.

[0] https://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_4lw
[1] https://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_clusterOptions

Change-Id: I24ea9b37cd5766c9d393106e8eab34623cad1624
2021-03-15 16:57:21 -07:00