There are two different forms of export today in katello:

Legacy version:

  * Uses pulp2's export functionality

  * Takes the tarball as is

"New" Version

   * Just copies published repository as is (following symlinks)

   * Adds own 'katello' metadata to existing tarball


I would imagine that with pulp3 we would somewhat combine these two approaches and take the pulp3 generated export file and add in a metadata file of some sort.

Justin

On 2/19/20 2:28 PM, Dennis Kliban wrote:
Thank you for the details. More questions inline.

On Wed, Feb 19, 2020 at 2:04 PM Justin Sherrill <jsher...@redhat.com <mailto:jsher...@redhat.com>> wrote:

    the goal from our side is to have a very similar experience to the
    user.  Today the user would:

    * run a command (for example, something similar to hammer
    content-view version export --content-view-name=foobar --version=1.0)

    * this creates a tarball on disk

What all is in the tarball? Is this just a repository export created by Pulp or is there extra information from the Katello db?

    * they copy the tarball to external media

    * they move the external media to the disconnected katello

    * they run 'hammer content-view version import
    --export-tar=/path/to/tarball

Does katello untar this archive, create a repository in pulp, sync from the directory containing the unarchive, and then publish?

    I don't see this changing much for the user, anything additional
    that needs to be done in pulp can be done behind the cli/api in
    katello.  Thanks!


    Justin

    On 2/19/20 12:52 PM, Dennis Kliban wrote:
    In Katello that uses Pulp 2, what steps does the user need to
    take when importing an export into an air gapped environment? I
    am concerned about making the process more complicated than what
    the user is already used to.

    On Wed, Feb 19, 2020 at 11:20 AM David Davis
    <davidda...@redhat.com <mailto:davidda...@redhat.com>> wrote:

        Thanks for the responses so far. I think we could export
        publications along with the repo version by exporting any
        publication that points to a repo version.

        My concern with exporting repositories is that users will
        probably get a bunch of content they don't care about if they
        want to export a single repo version. That said, if users do
        want to export entire repos, we could add this feature later
        I think?

        David


        On Wed, Feb 19, 2020 at 10:30 AM Justin Sherrill
        <jsher...@redhat.com <mailto:jsher...@redhat.com>> wrote:


            On 2/14/20 1:09 PM, David Davis wrote:
            Grant and I met today to discuss importers and
            exporters[0] and we'd like some feedback before we
            proceed with the design. To sum up this feature briefly:
            users can export a repository version from one Pulp
            instance and import it to another.

            # Master/Detail vs Core

            So one fundamental question is whether we should use a
            Master/Detail approach or just have core control the
            flow but call out to plugins to get export formats.

            To give some background: we currently define Exporters
            (ie FileSystemExporter) in core as Master models.
            Plugins extend this model which allows them to configure
            or customize the Exporter. This was necessary because
            some plugins need to export Publications (along with
            repository metadata) while other plugins who don't have
            Publications or metadata export RepositoryVersions.

            The other option is to have core handle the workflow.
            The user would call a core endpoint and provide a
            RepositoryVersion. This would work because for
            importing/exporting, you wouldn't ever use Publications
            because metadata won't be used for importing back into
            Pulp. If needed, core could provide a way for plugin
            writers to write custom handlers/exporters for content
            types.

            If we go with the second option, the question then
            becomes whether we should divorce the concept of
            Exporters and import/export. Or do we also switch
            Exporters from Master/Detail to core only?

            # Foreign Keys

            Content can be distributed across multiple tables (eg
            UpdateRecord has UpdateCollection, etc). In our export,
            we could either use primary keys (UUIDs) or natural keys
            to relate records. The former assumes that UUIDs are
            unique across Pulp instances. The safer but more complex
            alternative is to use natural keys. This would involve
            storing a set of fields on a record that would be used
            to identify a related record.

            # Incremental Exports

            There are two big pieces of data contained in an export:
            the dataset of Content from the database and the
            artifact files. An incremental export cuts down on the
            size of an export by only exporting the differences.
            However, when performing an incremental export, we could
            still export the complete dataset instead of just a set
            of differences (additions/removals/updates). This
            approach would be simpler and it would allow us to
            ensure that the new repo version matches the exported
            repo version exactly. It would however increase the
            export size but not by much I think--probably some
            number of megabytes at most.

            If its simper, i would go with that. Saving even ~100-200
            MB isn't that big of a deal IMO.  the biggest savings is
            in the RPM content.



            [0] https://pulp.plan.io/issues/6134

            David

            _______________________________________________
            Pulp-dev mailing list
            Pulp-dev@redhat.com  <mailto:Pulp-dev@redhat.com>
            https://www.redhat.com/mailman/listinfo/pulp-dev
            _______________________________________________
            Pulp-dev mailing list
            Pulp-dev@redhat.com <mailto:Pulp-dev@redhat.com>
            https://www.redhat.com/mailman/listinfo/pulp-dev

        _______________________________________________
        Pulp-dev mailing list
        Pulp-dev@redhat.com <mailto:Pulp-dev@redhat.com>
        https://www.redhat.com/mailman/listinfo/pulp-dev

_______________________________________________
Pulp-dev mailing list
Pulp-dev@redhat.com
https://www.redhat.com/mailman/listinfo/pulp-dev

Reply via email to