Re: Mirror the ansible repo from pagure in the batcave

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Apr 23, 2020 at 11:46:25AM +0200, Pierre-Yves Chibon wrote:
> Good Morning Everyone,
> 
> Kevin and I had a discussion on IRC the other day about mirroring the ansible
> repo.
> The options we considered are:
...snip...
> 
>   For a first step I went with a third approach: a small python service that
>   runs every 3 minutes (configurable): git fetch && git fsck (to ensure the git
>   is in a correct state). It actually doesn't run every 3 minutes, it calls git,
>   then wait for 3 minutes then calls git again and so on. So if git was ever to
>   takes 4 minutes to run, there is no risk of the program stepping on its own
>   toes.

ok. 

I'm wondering if that might be overkill.

Really if pagure.io blows up, we want to be able to look at the repo we
have on batcave01 and be able to still operate while we recover
pagure.io. If someone pushed or merged some commits in between the last
time we synced and blowup, someone should have them in their local repo
right? so we could just push them to the repo on batcave and be back
completly in sync, no?

but I guess it doesn't hurt to do every 3minutes, just some BW. 

Another option I mentioned the other day when we were talking, but I
didnt really explain well was that we could wrap ansible-playbook into a
wrapper that runs a git pull then ansible-playbook... so it would always
be in sync at first you run it. That could be messy tho if there's
another process doing pulls, etc. So I guess scrap that idea. 

> I would like to propose that install and configure this for a test.
> I propose that we keep /git/ansible.git as is and just have a
> /git/mirrors/ansible.git which will be the mirror from pagure.
> We can migrate the hook from /git/ansible.git to /git/mirrors/ansible.git so
> /srv/web/infra/ansible (ie: the exploded tree) is coming from the mirror.

I think that could be confusing. If we switch we should switch and make
all the old checkouts no longer work for pushing, or we are going to
cause a lot of confusion. I'd say move the old one to some .back name
and chmod 000 it. 

Also, there is the question about the existing git repo for
fedora-infrastructure on pagure. It has stuff in it now. Do we
completely replace it with the current ansible repo? Or do we stream all
the ansible commits on top of it so current checkouts would just be able
to pull? Or do we put it on another project. I'd really prefer to have
it on the same project our tickets are to avoid confusion. I kinda think
it might be nice to stream it on top of the existing repo so it's not
broken, but not sure how long or messy that would be. 

> I guess the lag time to get /git/mirrors updated will quickly be annoying (up to
> 3 minutes between when the PR is merged and when the playbook is updated), so
> if we like the workflow we will likely want to switch pretty quickly to a
> message-based service and then we could keep the current cron-like service to
> run hourly and update /git/ansible.git which would then become some kind of
> backup.

So, we already have fedmsg-hub listening on batcave01 for fas messages
(which no longer happen). We could just reuse that? Or a
fedora-messaging version of it I guess would be better. 

> 
> 
> What do you think?
> FBR worthy? (ie: if F32 goes out next week, I think we can wait, if it doesn't
> do we want to try this sooner?)

Wait until after freeze. We have waited this long and we still have
release things to do in ansible. I don't want us to mess up release for
this. But we can get all our birds in a line to do it right after
freeze. 

> If we like the idea, I'll start looking into the fedora-messaging based
> consumer, using the approach from the current service, it should be pretty
> straight forward (I'll re-use the same project for it).

So this would just listen for commit / pr merge and do a git pull /
sync?

kevin

Attachment: signature.asc
Description: PGP signature

_______________________________________________
infrastructure mailing list -- infrastructure@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to infrastructure-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/infrastructure@xxxxxxxxxxxxxxxxxxxxxxx

[Index of Archives]     [Fedora Development]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]

  Powered by Linux