• Salsa upgrade, history and future

    From Joerg Jaspert@21:1/5 to All on Wed Mar 2 23:50:01 2022
    Hello everyone,

    you may have noticed that we had a bit of a downtime with Salsa
    recently. What follows is a short summary on how it came to be, why it
    took so long, and a bit about the future of Salsa.

    But before we start on that, we want to thank Bastian Blank for his long
    work on Salsa and it's ansible infrastructure, the service would be
    quite a bit less maintainable without the setup he helped create.

    Next, a bit of needed background about services running on DSA (Debian
    System Administrators) maintained machines (anything in .debian.org):
    You may (or not) know that we are running on volunteer maintained
    machines (same as we are volunteers maintaining Salsa). DSA has put
    together a set of rules they follow on how they run our machines and
    what they expect from services. They are offering a good bunch of
    services (say, databases if you need one, webservers, ...) and they very
    much prefer software either installed from Debian (stable or backports)
    or software the services admin(s) install / provide themself.

    Those requirements have led to the Salsa service *not* using the
    upstream provided package (their "Omnibus" installation method), as that package is one *huge* beast, bundling everything needed, configuring
    everything centrally, outside of the usual known ways. Pretty obviously
    this goes against the basic rules from DSA. Instead, we are using the
    "install from source" variant, compiling stuff on our own, using ansible
    to help do that in a somewhat reliable way. You can find the repository
    with our ansible code at https://salsa.debian.org/salsa/salsa-ansible.

    Having been running Salsa for a while, Salsa Admins found various points
    in the setup, that can be improved, both for easier maintenance of the
    service, but also for the user experience - as the setup as it was (and
    still is) does have a few deficiences. A proposal on a possible changed
    setup has been written and circulated within Salsa Admin, DPL and DSA.
    Short summary is that the discussion around it took quite a long time
    and did not get to a good/useful conclusion, nor an implementation of
    any improvements.

    Due to that, Salsa has been in a kind of low-maintenance mode for the
    installed parts, which led to Salsa being behind upstream versions.
    Recently Gitlab published a critical security fix which forced us into
    action - we had to disable the service and could not open it up without upgrading it to a recent release. To be able to upgrade it, it needed an upgrade of the underlying machine too, from buster to bullseye.

    Thankfully DSA acted quickly on our request to upgrade the machine to
    bullseye, as such unblocking the upgrade path on our side to install
    more recent versions of gitlab. And then adjust the setup, configs and
    local builds to work again. This took a fair bit of work and some more
    help from DSA, but the majority of the downtime was actually spend in
    something we could only wait for ourself: Database migrations. Gitlab
    has changed various parts of the database with their releases and
    include a migration way to upgrade your database. Usually this can run
    in parallel to the normal operation of the services and as such it is
    optimized to not interrupt services. But in our situation we had to wait
    for the migrations to finish, before we finally upgraded to a released
    version, that no longer included the security hole that started this
    upgrade round.

    A big thank you has to go to Alexander Wirt, who has invested a huge
    amount of work and energy dealing with this upgrade, as well as we have
    to thank those various DSA members who helped with upgrading the system
    and adjustments needed later on - Tollef Fog Heen, Aurelien Jarno and
    Adam D. Barratt.


    With all the above, whats our current status? Simple: we are, again, on
    the latest released Gitlab version, and while we had a few reports of
    errors, they appear fixed now, and Salsa is back in operation. We still
    have a few points, that we want to (again) discuss with DSA and see how
    the setup can be adjusted, as some of the identified trouble points are
    still there. But there is less pressure behind this now, as we currently
    are able to closely follow upstream again.


    Before we get to the final point, some statistics about Salsa: Salsa
    currently hosts 58125 projects for 10930 users over 665 groups. It has
    seen 15527 Forks, 36650 merge requests, 302133 notes. Salsa knows of
    5789 SSH keys and users created 9425 issues. A total of 342812 pipelines
    has been run, of which 226575 have been successful, 101198 failed, the
    rest got either cancelled or skipped.

    Salsa is running inside a virtual machine with 8 CPU cores, 32G of
    available RAM and uses about 1.6TB of space for the git repositories.
    Gitlabs background job system "Sidekiq" claims it has processed 68917652 background jobs, of which it declared only 84587 as failed.


    Want to help?
    If you are a Debian Developer[1] and interested to help us maintain the
    Salsa service, including possibly digging into the "bits below" directly
    on the machine to make it better for the users, better to maintain, and
    in general just keep one huge git forge running, please feel free to
    mail us at salsa-admin@debian.org. We also hang out in #salsa on
    irc.oftc.net, though that is mainly one of our public support channels.

    --
    For the salsa admins:
    Joerg

    [1] Sorry for that requirement, but with Salsa Admin being a delegated
    role, volunteers have to be members. Additionally, Salsa hosts a huge
    bunch of Debian repos, some of them not available to the public, but
    Salsa admin can see them, so we require admins to be DDs.

    -----BEGIN PGP SIGNATURE-----

    iQJFBAEBCgAvFiEEcty+znVan90Ug4AV81V4v5iAVmAFAmIf7G8RHGpvZXJnQGRl Ymlhbi5vcmcACgkQ81V4v5iAVmAiDBAAkZb4qRaTS5oMgTXY8MciMT5qmjmCVaaC Z9izyeoUpVvMzzw03Xt9O6Qjo8NTkyJJbw/SJnwjCy9jTG8pzL/A0mk7ixBwi4pV 99NTNcLcG+PxmQhJ0tAuwqmPto/KjsMtqdGyo96QsQ7IFUz4D9ZPa5YleUo55cnH YQ7KQCtWMdaEJHY6zpnHgBfPWwJyOweLWi2xJ3CJP1jwamXyxWtWt3ScUFPJXvgb SUHw5lvxMurWqPIWiy+LTXEeEzwjp1kmy2r/De6Prw9yMZreRhY9GpF8ObeK3MKn 8urQlYr+m41ukMfWsOtI1GtnN7ND9GJg19O3R4Ne9I7ScEtXQku3rqzDLKPjG+EL Wnw3kUgWyVvYqVE4Sp/wUPb+fvWgaIYYBrI+ndimfTpeDiUgBfsfzD8ziV8xsjio dQGg/M984RCHsGyibgzUY4btmf3djFt5vgTk7PAa8BwOzC3HRWk0o2CsCpqn/SP9 q/DuOk4bzeuLALKAjoCV8azTFbUr0TTAPIbocIKiZjk1dYF6ONTmYaQTKlcZOSD/ L5PYZHUIs5soO+Y1VCBBG5FwKAR3BuDuCOPZLfkNOTMShxbaQrdMkFx9WvGGSnTk Ug/wV5Vdmh6nnYekom10OrfXNH9b5Jp6gwWeXOeVQ536c/pHHwk3I56UGyVvmKie
    i+Jnm1QoGQs=
    =XNkw
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Joerg Jaspert@21:1/5 to Joerg Jaspert on Sat Mar 5 13:50:01 2022
    On 16425 March 1977, Joerg Jaspert wrote:

    you may have noticed that we had a bit of a downtime with Salsa
    recently. What follows is a short summary on how it came to be, why it
    took so long, and a bit about the future of Salsa.

    As I got a *huge* flamewar out of this with exactly 0 responses (hello,
    you all sleeping?) - in all that silence you may have missed one point
    in
    that longish mail, due to the boring subject I used: We are looking for volunteers to help out with Salsa.

    Want to help?
    If you are a Debian Developer[1] and interested to help us maintain
    the
    Salsa service, including possibly digging into the "bits below"
    directly
    on the machine to make it better for the users, better to maintain,
    and
    in general just keep one huge git forge running, please feel free to
    mail us at salsa-admin@debian.org. We also hang out in #salsa on irc.oftc.net, though that is mainly one of our public support
    channels.

    [1] Sorry for that requirement, but with Salsa Admin being a delegated
    role, volunteers have to be members. Additionally, Salsa hosts a huge
    bunch of Debian repos, some of them not available to the public, but
    Salsa admin can see them, so we require admins to be DDs.

    Just for reference, the size of this installation:

    Before we get to the final point, some statistics about Salsa: Salsa currently hosts 58125 projects for 10930 users over 665 groups. It has
    seen 15527 Forks, 36650 merge requests, 302133 notes. Salsa knows of
    5789 SSH keys and users created 9425 issues. A total of 342812
    pipelines
    has been run, of which 226575 have been successful, 101198 failed, the
    rest got either cancelled or skipped.

    Salsa is running inside a virtual machine with 8 CPU cores, 32G of
    available RAM and uses about 1.6TB of space for the git repositories.
    Gitlabs background job system "Sidekiq" claims it has processed
    68917652
    background jobs, of which it declared only 84587 as failed.

    And we are growing - since I wrote this, we now got to 58538 projects,
    10950 users, 21583 forks and 36689 MRs.

    We are installing Gitlab from source using ansible (see https://salsa.debian.org/salsa/salsa-ansible ) and do have some own
    tools on top of the usual Gitlab stack. And with Gitlab being originally
    Ruby it has parts rewritten in go, so knowledge of ansible and ability
    to dig around in ruby/go may help you around (we do try to stay as near
    to upstream as possible, huge patches aren't maintainable, but sometimes
    it helps to find problems).

    --
    bye, Joerg

    -----BEGIN PGP SIGNATURE-----

    iQJFBAEBCgAvFiEEcty+znVan90Ug4AV81V4v5iAVmAFAmIjU1MRHGpvZXJnQGRl Ymlhbi5vcmcACgkQ81V4v5iAVmCrHhAAyVXblBjDzb1ztcNqdM4GeJdwUFCFswNZ efstsRLnN/vo84lsiOiwsFtwN+cHWgNNyxKpxUejAGG5DJ8A4k0Etcb1Pw0P0PwI KFvg9yZgVPj0Yu4OXvj9C7xTN3Pdinj0Y4zgSoEdOWEqKZGInJ64m2WHQWLCcDs0 9BLQbAXKjM4hznDAhStA/gl2ChDlwqlV/TAWxobZRLVBCOkmI16T9WUJ6jds1D75 RjVMYoHEi6FHkLHVPM7i08fMEeMxfiXcNP5eFZts8LZ32WJ9MnQ/mja3GVO5feW4 iJdUGI2DdYmMU/lByv6HJJ/26SaiIctswpJVMZfb1oFLuGkRuaYUTFPL7QGA/oWE 8s44l3Ae9hdZza4mMIewywhhhYst5KJGHd56Uq+loJGUtgUm2eQ9wbyi0wjKU8LW bHsx2Vx5Xen4VV5FQJBGufLf188p9TGpPtZa5y4d7u5iKI2RUNBqYLKEMpED5XMY p+zZkyrizMikj8WUTz36lVOR03DRHzJSBx8WMiLPMjtZnFSP5gdSgO1xcLCaGVsD fy+FOZzLfdwhZGhAJa0j0jkJ7q6uOoP794zbRhXTj3qM/0PhxBeQvLAP3/BZNd17 d0mrU3sJxrcgui8LaSFevkNBHH5OsNCIbn45Pr+31mdK4MWrCfwJ5WnnW7K4zTqh
    aXb+Cm1Z22k=
    =UMQP
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Philip Hands@21:1/5 to Joerg Jaspert on Fri Mar 11 11:40:01 2022
    Joerg Jaspert <joerg@debian.org> writes:

    We are looking for volunteers to help out with Salsa.

    If it would be helpful to have someone that doesn't mind doing tedious
    stuff, but tends to have quite bursty availability, and has only dabbled
    in Ansible, then I'm happy to help.

    In theory I'm already part of the team (to the extent that I get to read
    the same spam as you do on the mail alias ;-) ) but I got very busy when
    Salsa was first being set up so didn't do anything then, and didn't
    really see (or look for TBH) an opening to get involved since.

    Given my almost complete lack of activity until now, I would completely understand (and not be even slightly upset) if the answer is 'no', but
    in that case please remove me from the salsa-admin mail alias.

    Cheers, Phil.
    --
    |)| Philip Hands [+44 (0)20 8530 9560] HANDS.COM Ltd.
    |-| http://www.hands.com/ http://ftp.uk.debian.org/
    |(| Hugo-Klemm-Strasse 34, 21075 Hamburg, GERMANY

    --=-=-Content-Type: application/pgp-signature; name="signature.asc"

    -----BEGIN PGP SIGNATURE-----

    iQIzBAEBCgAdFiEE3/FBWs4yJ/zyBwfW0EujoAEl1cAFAmIrHhIACgkQ0EujoAEl 1cA3FBAAx7neEJ19H03mMOkNUcNn6XS29w6KgaKvffd+BMZEYS8JkXW4VjRVJaSR 3U9x/WXOptci5BKDhNgxz5WGlW8vN/gS5PmouLs0g9oVH1LQf8KbnF0pvZ9ZSdZ9 RcP8AOEcqwe+uYKcB0V5ggOOQa95gfOlyeWPwF/irqI6XjEO1Rh9NZ2cwCJLcCBD BxdltYddm7YzsbetYhAwSo9yswaA7WoxaeRHHjnY8Xo3l/pXWUOp1lEjldNo2arC T0NO4XfPDJaTYX66Bptf1FDJJZm2Oz3N+QncnT++vdemEsuSyck4h16BHS+v3n8y e0fmHuFjyICy+NDL5+3/lbJRb26LecSjxglTQdc2rWuHabyvZCLNjKJznAicWSha ojISjAZgxC0EQofkAgiMY73vcuP3zGGpiGXyWd8wKQmOouTszhvkH7YCACbww6wp QCrIktHJpg61MsRUMqpbQoAsfJ/8XMA4rsjDOBoOumAc5O0avwQTePBcVD0Cdnlf GwXeS2yUiMX0Er4aoaU1s6JGj3T9aBHxzIiYw7hdJ2q6Q/domBe5nlrTp/O3/KIr WNRa99XHRQKoOPFyOF0gkVSmpEBDXydpEW2R2ecmebpI1jvPO0TcSh1mSVEw1Lf2 ybT4nzn/Vr7TvXp