35 Commits

Author SHA1 Message Date
Ian Wienand
bcb73dd2ac mirror-update: switch Fedora mirror
In our onging quest to find a stable upstream source, switch this to
the facebook mirror which seems to have been working well enough for
centos.

While we're here, reduce the frequency a bit as there's no need to
sync every two hours; it's a bit unfriendly to the remote end.

Change-Id: I50f38b58b3f0c0557fb1e2e0667a17a4f1d1dec6
2022-05-11 09:57:46 +10:00
Clark Boylan
fcd58cce96 Remove isos and other images from rpm mirroring
We build our own images from scratch using yum/dnf and don't rely on the
isolinux/ or images/ content. Clean this up from our mirrors to reduce
their size and time to sync.

Change-Id: Ifa47c8ae1f3a080e69e4c00b0c2ef38f4094e1a2
2022-04-20 10:13:50 -07:00
Ian Wienand
f7cac8ea8c mirror-update: switch fedora to kernel.org mirror
Our current mirror is out of sync, it has happened twice now.  It's
been several years since we switched away from kernel.org mirrors
(Ie6050fbf20259df39eab11f8e326d58351d98ea5) so it might be worth
trying again (they are currently in sync).  Also we are using the
".us" version here, to keep things more local to the update server.

Change-Id: I29cf3895e7fa8e401a1d686119e56b4fddb0cc47
2022-04-13 06:48:02 +10:00
Clark Boylan
34fd1a7604 Stop mirroring Fedora 34
We have removed Fedora 34 from our CI system. Fedora has a short
lifetime for each release, and in this particular case Fedora 34 did not
boot reliably in all our clouds. Now that the images have been removed
we can remove the release from our mirrors too.

Change-Id: I07dfca0ef88dc9531e4cb2c67ebbca5e0503594e
2022-02-14 08:55:30 -08:00
Ian Wienand
3918e15295 Add Fedora 35 mirror
Change-Id: I8dda96f4f23b331122b294329888698d1a4c7cd5
2021-11-03 08:08:54 +11:00
Ian Wienand
0b1a1ac099 Drop Fedora 33 mirror
Change-Id: Iee0f242ca155ea6ef254192cbbd7961f23e1c93e
2021-11-03 08:06:19 +11:00
Jeremy Stanley
c80c6eeda9 Revert "Switch Fedora mirror to mirrors.mit.edu"
This reverts commit aa5623982fbecb4958ee90ab7ddc54d6d0d49747.

The MIT mirror seems to now be missing Fedora 34 indices, but the
one we were using before at UH looks just fine now.

Change-Id: I59649ea93cc1ce13715096dcd0b8f828ce6b6724
2021-09-30 03:09:50 +00:00
Ian Wienand
59b058f0d6 Remove Fedora 32 mirror
This is no longer required

Change-Id: Iff9578a41abbe9e9e3c73c50041ddd11376099e4
Depends-On: https://review.opendev.org/c/openstack/project-config/+/795643
2021-07-30 13:23:33 +10:00
Mohammed Naser
2e4858e596 Add Fedora 34 mirrors
Change-Id: I157484236c3dd8783066d9b1b6d7906ed3649c3e
2021-06-09 13:30:33 -04:00
Ian Wienand
8541605595 Stop mirroring Fedora 31
Nodes were stopped with I0dde34ab005f48ac521d91e407ac437d3cec965f

Change-Id: Ib9cbc3f5388e668923ff7eadb3e81703875f64c0
2021-03-29 11:55:14 +11:00
Daniel Pawlik
428e7d5791 Added Fedora 33 mirror-update role
Some new jobs would base on Fedora 33 which is not
available on the mirror sever.

Change-Id: I144fc965ff3c1102fe56f174b2ce8b7ee93db989
2020-12-17 09:28:52 +01:00
Ian Wienand
6ee7a5a116 mirror-update/reprepro : use common functions
This converts the reprepro mirror script to use the common functions
for timestamps and vos release.  This function ssh's to the AFS server
and runs vos release directly there, avoiding many issues with
kerberos timeouts.  This has been working successfully for the rsync
mirrors.  This will also send stats back so we can keep an eye on the
timing.

Change-Id: I1be29f2d9ecaad03b22c87819e5ae8d16c4f177e
2020-10-28 16:55:02 +11:00
Zuul
eb263527ea Merge "Mirror the only Fedora Atomic image used by Magnum" 2020-10-07 20:21:04 +00:00
Clark Boylan
2fcf4ddff4 Exclude private dirs when mirroring fedora
The upstream mirror may have private contents in dirs like .~tmp~/ or
snapshot/. We exclude these to avoid syncing problems when we don't have
permissions to read them.

Change-Id: I8d366f0e95667bfbe65f259877b13bd0d93cd877
2020-09-29 13:36:25 -07:00
Clark Boylan
4641c1c00e Mirror the only Fedora Atomic image used by Magnum
There is a single Fedora Atomic image used by Magnum at this point that
we mirror. Lets mirror just that one image and then we can manually rm
the others.

Change-Id: I669247beb64bae41afddd0edce02c0b58e45aa6c
2020-09-28 16:12:13 -07:00
Clark Boylan
7f6b2ff0d2 Stop mirroring fedora 30
We've removed the images from nodepool in the depends-on and now we can
stop mirroring the distro.

Depends-On: https://review.opendev.org/754471
Change-Id: Ifd4b1fbc92514a76ffa86b7cb42a81f97c245604
2020-09-25 12:07:52 -07:00
Jeremy Stanley
aa5623982f Switch Fedora mirror to mirrors.mit.edu
The pubmirror[12].math.uh.edu mirrors of Fedora 31 updates for
x86_64 have been sitting stale for several days with a corrupt
index, causing jobs which access our copy of this from our mirror
network to fail. Instead mirror Fedora releases/updates from
mirrors.mit.edu which seems to be updating just fine currently. We
can switch this back if/when the situation with the uh.edu mirrors
is resolved.

We're continuing to mirror EPEL and Fedora Atomic from
pubmirror[12].math.uh.edu for now, as we've had no reports of EPEL
problems on our mirrors (yet anyway), and it's hard to find any
other rsync mirrors of Atomic.

Change-Id: Iefd02602e2f2b39c4b72dc4d95ac62993ca65cdd
2020-08-17 18:47:35 +00:00
danpawlik
7f9476f74e Added development/rawhide image
Fedora 33 is not released yet and the TripleO team would
like to perform some tests on that image.

Change-Id: I39f6bedadc12277739292cf31cc601bc3b6e30ec
2020-07-15 19:35:14 +02:00
Ian Wienand
a58ad34a5c mirror-update: restore -t to rsync commands
We found that new data (since we removed -t) was no correctly being
skipped for re-download.  We have found that this doesn't happen with
-t on later rsyncs, which have included fixes for -t to not touch the
timestamps if things are not updated.  We have updated mirror-update
to Focal that has this rsync, so restore the flag.

Change-Id: I3fa16dbf6487a442549c540796807ef4916d4e6e
2020-06-19 12:27:46 +10:00
Ian Wienand
d5291e021d mirror-update: mirror Fedora 32
Change-Id: I4653e3bbf3388c5e6b5ab293c05b83b21ed6a7d7
2020-06-16 16:15:37 +10:00
Ian Wienand
4918594aa4 rsync-mirrors: drop rsync -t and make flags consistent
After investigating why every release seems to take hours, we noticed
that even in zero-delta updates where nothing has changed upstream,
we'd get a utimensat() call that updated the modified time nanoseconds
portion; e.g.

 lstat("Everything/x86_64/Packages/a/arch-install-scripts-23-1.fc31.noarch.rpm", {st_mode=S_IFREG|0644, st_size=28004, ...}) = 0
 utimensat(AT_FDCWD, "Everything/x86_64/Packages/a/arch-install-scripts-23-1.fc31.noarch.rpm",
  [UTIME_NOW, {tv_sec=1585676005, tv_nsec=6041000} /* 2020-03-31T17:33:25.006041000+0000 */], AT_SYMLINK_NOFOLLOW) = 0

This does not apply; in fact openafs uses the ns field as some sort of
generation counter [1].  This update is enough to convince openafs the
file has changed and it needs to be resynced, meaning that basically
every rsync run results in a full release.

This unnecessary update been fixed with [2] but is only in rsync
3.1.3+; our bionic host is currently 3.1.2.  Dropping "-t" from the
rsync commands avoids transferring modification times and should avoid
this problem.

While looking, "-D" turns on "--devices" and "--specials" to transfer
block devices and named sockets/fifos.  Turn this off.

Also remove "-p" if it was present.  We already did this for centos
with Ib5db052cdd23e39aecbeead15cf08d4bd7fcab38 and Fedora with
Id24196791f80cd99fe8a330fb2c7c6d893fc9995, where odd upstream
permissions such as setgid on directories can't be synced to afs.
Consistently remove it.

Also switch back the fedora updates to just "-v"; we had it at "-i"
for debugging.

[1] http://eavesdrop.openstack.org/irclogs/%23opendev/%23opendev.2020-06-15.log.html#t2020-06-15T02:58:08-2
[2] https://git.samba.org/?p=rsync.git;a=patch;h=0f8e9e2d8638e47d646a6baba694b303ac84e695

Change-Id: I78f3d4990b168c71185eb1c4900ceeaca4b6a16f
2020-06-16 11:50:48 +10:00
Ian Wienand
339cbf4c3d mirror-update: stats for vos release of mirrors
It's difficult to know if a release process is running too long when
we don't have a history of how long it should run for.

This is mostly the stats function from run_all.sh that has been
sending stats about runtimes there.  Wrap it in a vos_release function
with some minor refactoring, and update the scripts.

As noted inline, there's already release timer stats going to
afs.release.<volume> for the periodic release of docs/tarballs etc.

Change-Id: I3d79d1a0997af8977050b7f6e7cf3b7578cc8491
2020-04-09 14:34:35 +10:00
Andreas Jaeger
344c5d2fe9 Remove Fedora 29 mirroring
Remove Fedora 29 from mirroring and purge the content.

The jobs were removed in preparation for
https://review.opendev.org/#/c/712032/ which removed the nodes from
nodepool. So, no job can use Fedora 29 anymore.

Fedora 28 is removed, no need to purge it again.

Change-Id: I59015a880f39b43b57a889b4254353f8c3a557ea
2020-03-16 10:11:02 +01:00
danpawlik
ce73ffedaa Added updates dir for Fedora 31 release
Patch set [1] does not provide updates directory for
Fedora 31 which is required to run CI jobs.

[1] https://review.opendev.org/#/c/712680/

Change-Id: I01b9b50660f3c7a3b4eb05cc8a8c0847f47dc7ee
2020-03-16 09:08:41 +01:00
danpawlik
b5bb9790b4 Added new Fedora release to mirroring
Some jobs are using Fedora 29 release, which is deprecated.
Create new mirror with release 31 and wait for changing job
rules.

Change-Id: I418f4c815d337c2b1edd0df1aa065536d992cb62
2020-03-12 14:46:31 +01:00
Ian Wienand
98ab53ee42 rsync mirrors: use localauth vos release
We switched Fedora to do vos release via ssh with localauth in
I56ecdb2511597197deeeadf51f50da7e02f56954 and it has been working.

Switch the rest of the update scripts.  There is an increasing amount
of common code, start a common functions.sh script where we can put
this.

Change-Id: I4ba6d64a84bb66e8686901b16010352de942f303
2019-11-26 13:40:15 +00:00
Ian Wienand
3f9c737483 Fedora mirror update: use localauth release
Use the new vos_release user on the remote host to release the volume
via localauth, to avoid any timeouts.

Change-Id: I56ecdb2511597197deeeadf51f50da7e02f56954
Depends-On: https://review.opendev.org/#/c/695554/
2019-11-22 01:13:50 +00:00
Ian Wienand
fd7ffbcab4 Fedora mirror - remove 28
Add a purge phase to remove old releases; remove Fedora 28 and stop
mirroring.  Update the atomic list while we're there.

Fedora 28 was removed with Ic0b4b065a217dcfaa8c230cda53114793e93b803

Change-Id: If713844ac90ea37e8c4db30108c45d7a59832776
2019-10-28 13:10:17 +11:00
Ian Wienand
3dcfe61d2f fedora mirror update : add sleep
As described inline, this should make our mirror pulses more robust
against timeouts.

This is probably ripe for turning into more of a library situation for
all the other "vos release" calls too.  But one thing at a time ... I
think we test with this for a while to see if stability returns.

Change-Id: I041a290053e4e8ceba80785598a5945e5adcf6f1
2019-09-11 13:15:29 +10:00
Ian Wienand
c9bea2cfc4 fedora-mirror: Use rsync itemize output
We are debugging why the fedora mirror has started to take 8+ hours to
release.  There is suspicion that rsync is updating the metadata of a
lot of files, causing the incremental update to be more of a full
release.

If you read the man page carefully:

 At the single -v level of verbosity, this does not mention when a
 file gets its attributes changed.  If you ask for an itemized list of
 changed attributes (either --itemize-changes or adding "%i" to the
 --out-format setting), the output (on the client) increases to
 mention all items that are changed in any way

So we need "-i" to see these updates

Change-Id: Ia9cff1e126404bc5a3346e758a15314834aef409
2019-08-30 13:29:54 +10:00
Ian Wienand
b617a08989 fedora-mirror-update: update logging
We're having trouble with this volume; this makes the logging more
helpful for humans trying to establish the order of things happening.

It turns down the tracing, puts timestamps on the logs messages, makes
the messages more descriptive, and makes sure to timestamp the output
of the vos commands so we can see how long each step took.

Change-Id: Ia832b7ef86350efcbbe7d3b957e820a8a39df3e1
2019-08-27 14:09:49 +10:00
Clark Boylan
a248dbae63 Add more fedora-atomic mirror exclusions
We don't need things like efi configs or pxeboot configs or ISOs.
Exclude these items to further reduce the size of the fedora mirror.

Change-Id: I93003b2f48d79dae627026e2c7af748ea9a9e34d
2019-08-19 15:53:19 -07:00
Clark Boylan
3ff4bed27c Trim fedora mirror
The fedora mirror is our largest mirror (850GB about twice as big as the
next mirror). Much of this size is due to the fedora atomic images we
mirror.

On further investigation I notice that we are mirroring ppc images (for
which we do not have cpus to run them on), image for fedora 25 and 36
which are quite EOL'd, and our exclusion of the raw.xz and vagrant
images is failing.

Update the rsync excludes to ensure we don't mirror any of these images
we don't need.

Change-Id: I86856cb4e51b0e687aac45a1f014f87c5141318f
2019-08-02 14:35:21 -07:00
Clark Boylan
f686ec39f5 Switch fedora mirroring to pubmirror2.math.uh.edu
pubmirror1.math.uh.edu is currently offline and listed as an altonly.
pubmirror2 seems to work fine so switch to it.

Change-Id: I2562f8686146d17d4fad3997b9be22361fa05fca
2019-08-02 14:27:00 -07:00
Ian Wienand
b85282c046 Move rsync mirror updates to new opendev.org mirror-update host
This move was prompted by wishing to expose the mirror update logs for
the rsync updates so that debugging problems does not require a root
user (note: not actually done in this change; will be a follow-on).

Rather than start hacking at puppet, the rsync mirror scripts make a
nice delination point for starting an Ansible-first/Bionic update.

Most magic is included in the scripts, so there is not much more to do
than copy them.  The host uses the existing kerberos and openafs roles
and copies the key material into place (to be added before merge).

Note the scripts are removed from the extant puppet so we don't have
two updates happening simultaneously.  This will also require a manual
clean to remove the cron jobs as a once-off when merging.

The other part of mirror-update is the reprepro based scripts for the
various debuntu repositories.  They are left as future work for now.

Testing is added to ensure dependencies and scripts are all in place.

Change-Id: I525ac18b55f0e11b0a541b51fa97ee5d6512bf70
2019-07-02 16:42:33 +10:00