All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alfredo Deza <adeza-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Alfredo Deza <adeza-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	"ceph-maintainers-Qp0mS5GaXlQ@public.gmane.org"
	<ceph-maintainers-Qp0mS5GaXlQ@public.gmane.org>,
	"ceph-users-idqoXFIVOFJgJs9I8MT0rw@public.gmane.org"
	<ceph-users-idqoXFIVOFJgJs9I8MT0rw@public.gmane.org>,
	ceph-devel <ceph-devel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [Ceph-maintainers] download.ceph.com repository changes
Date: Fri, 27 Jul 2018 08:06:53 -0400	[thread overview]
Message-ID: <CAC-Np1w7OJ8_RUNSadCkquUqmgEbKS_vF_5uj1TcmXNmAkuKKQ@mail.gmail.com> (raw)
In-Reply-To: <20180727072842.nm7a4f7yujw46gea-aVfaTQcAavps8ZkLLAvlZtBPR1lH4CV8@public.gmane.org>

On Fri, Jul 27, 2018 at 3:28 AM, Fabian Grünbichler
<f.gruenbichler@proxmox.com> wrote:
> On Tue, Jul 24, 2018 at 10:38:43AM -0400, Alfredo Deza wrote:
>> Hi all,
>>
>> After the 12.2.6 release went out, we've been thinking on better ways
>> to remove a version from our repositories to prevent users from
>> upgrading/installing a known bad release.
>>
>> The way our repos are structured today means every single version of
>> the release is included in the repository. That is, for Luminous,
>> every 12.x.x version of the binaries is in the same repo. This is true
>> for both RPM and DEB repositories.
>>
>> However, the DEB repos don't allow pinning to a given version because
>> our tooling (namely reprepro) doesn't construct the repositories in a
>> way that this is allowed. For RPM repos this is fine, and version
>> pinning works.
>
> If you mean that reprepo does not support referencing multiple versions
> of packages in the Packages file, there is a patched fork that does
> (that seems well-supported):
>
> https://github.com/profitbricks/reprepro
>
>>
>> To remove a bad version we have to proposals (and would like to hear
>> ideas on other possibilities), one that would involve symlinks and the
>> other one which purges the known bad version from our repos.
>>
>> *Symlinking*
>> When releasing we would have a "previous" and "latest" symlink that
>> would get updated as versions move forward. It would require
>> separation of versions at the URL level (all versions would no longer
>> be available in one repo).
>>
>> The URL structure would then look like:
>>
>>     debian/luminous/12.2.3/
>>     debian/luminous/previous/  (points to 12.2.5)
>>     debian/luminous/latest/   (points to 12.2.7)
>>
>> Caveats: the url structure would change from debian-luminous/ to
>> prevent breakage, and the versions would be split. For RPMs it would
>> mean a regression if someone is used to pinning, for example pinning
>> to 12.2.2 wouldn't be possible using the same url.
>>
>> Pros: Faster release times, less need to move packages around, and
>> easier to remove a bad version
>>
>>
>> *Single version removal*
>> Our tooling would need to go and remove the known bad version from the
>> repository, which would require to rebuild the repository again, so
>> that the metadata is updated with the difference in the binaries.
>>
>> Caveats: time intensive process, almost like cutting a new release
>> which takes about a day (and sometimes longer). Error prone since the
>> process wouldn't be the same (one off, just when a version needs to be
>> removed)
>
> I am not involved in this process, but that seems like something is
> wrong somewhere. You keep all the binary debs on the public mirror, so
> "retracting" a broken latest one should just consist of:
>
> - deleting the .deb files of the broken release
> - regenerating the Packages*, Content* and *Release* metadata files
>
> The former should be quasi-instant, the latter takes a bit (ceph
> packages are quite big, especially the ones containing debug symbols,
> and they need to be hashed multiple times), but nowhere near a day.

The release process involves a bit more than this. Our repositories
are created from scratch from a set of binaries. "Removing" a binary
needs to be done at the level of the service that stores them, and
then the repositories need to be recreated. They then need to be
pulled in
for signing, and then pushed out to download.ceph.com.

That part doesn't take a day, but it does take a few hours.

>
> If you keep the "old" metadata files around, both steps should be almost
> instant:
> - delete broken .deb files
> - revert (expensive) metadata files to previous snapshot
>
>> Pros: all urls for download.ceph.com and its structure are kept the same.
>
> that is quite a big pro, IMHO.
>
_______________________________________________
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

  parent reply	other threads:[~2018-07-27 12:06 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-24 14:38 download.ceph.com repository changes Alfredo Deza
     [not found] ` <CAC-Np1zTk1G-LF3eJiqzSF8SS=h=Jrr261C4vHdgmmwcqhUeXQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-07-24 14:54   ` Dan van der Ster
     [not found]     ` <CABZ+qqmWyu8THMnLRjDdvnsuYS6OV4-f7b_fFomfxOVFhZjsVQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-07-24 14:59       ` Alfredo Deza
     [not found]         ` <CAC-Np1zcjxnSJ9Ph6PQjHQytnMqAO=3Ws_5b6Ayw03m-BNi6CA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-07-24 15:08           ` Dan van der Ster
     [not found]             ` <CABZ+qq=4Tdur7=8mFLb3XO_T-NcJPpJLpL4ysSHbsLN3OU3iig-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-07-24 15:26               ` Dan van der Ster
     [not found]                 ` <CABZ+qqmv7VnMcKMSPjQCNVCHypMvZYfb1D6vy+dLRGQiAcKwQw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-07-24 17:19                   ` Brent Kennedy
2018-07-24 17:20                     ` Alfredo Deza
2018-07-24 15:01       ` Ken Dreyer
2018-07-25 14:20   ` Sage Weil
2018-07-27  7:28   ` [Ceph-maintainers] " Fabian Grünbichler
     [not found]     ` <20180727072842.nm7a4f7yujw46gea-aVfaTQcAavps8ZkLLAvlZtBPR1lH4CV8@public.gmane.org>
2018-07-27 12:06       ` Alfredo Deza [this message]
2018-07-30 17:36       ` Ken Dreyer
     [not found]         ` <CALqRxCw4x9B2xqik28Z+A1tk+N7eg0UAgBgx1exhLeVeQVkggw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-08-03  6:28           ` Fabian Grünbichler
2019-09-17 13:14   ` Alfredo Deza
     [not found]     ` <CAC-Np1zjZJW2iqLVe720u_sxQDTKjoUqL9ftrqKbMcYbZQgYFQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-09-17 13:28       ` Marc Roos
2019-09-17 13:33       ` Abhishek Lekshmanan
2019-09-17 13:44       ` Janne Johansson
2019-09-17 13:58       ` Sasha Litvak
     [not found]         ` <CALi_L4_Sz8oFHAFyRfqDfLWGRJSHnSd=dyYUZ6P92o8VY3vGCQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-09-24 20:05           ` Ken Dreyer
     [not found]             ` <CALqRxCygXUzA0+4sY6meMO9Smq2rouei7ay0BqJD9+-du7RCYQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-09-24 21:35               ` David Turner
     [not found]                 ` <CAN-GepKyROe6CRmKFjFyMvH8b5AGPomh96Q6gRVzQS-Zv-iDtQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-09-25  5:40                   ` Janne Johansson
     [not found]                     ` <CAA6-MF_OwcHjDTM=48_pbPbp8BPf0Dd+iLTWZ+06E8akKoMxGA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-09-25 19:55                       ` Sasha Litvak
     [not found]                         ` <CALi_L4-QGFaKhRSNUMcC+CfNnh8rBR_A8PBkVqDydSEX5ho7Ag-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-09-25 22:10                           ` Ken Dreyer
2019-09-18  8:03       ` Yoann Moulin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAC-Np1w7OJ8_RUNSadCkquUqmgEbKS_vF_5uj1TcmXNmAkuKKQ@mail.gmail.com \
    --to=adeza-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
    --cc=ceph-devel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=ceph-maintainers-Qp0mS5GaXlQ@public.gmane.org \
    --cc=ceph-users-idqoXFIVOFJgJs9I8MT0rw@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.