# Community Use-Cases ## Agenda * Introductions * "Four Questions" description * Discussion around the four questions ## Introduction Pulp3 was designed and built in response to the experience of running Pulp2 in several different environments. We'd like to take this time to hear about real-world use-cases from our current user-community. The purpose here is three-fold: * Find areas where Pulp3 can already help, but maybe needs more in the way of docs/examples * Find areas that the Pulp3 team hadn't thought about, that we can target for future development * Learn more about what's really important to the community, to help us prioritize work To put some form/focus around this effort, I have four questions for people to think about/answer here. ## The Four Questions * **What Problem(s) Are You Solving?** Tell us something about who **your** users are, and how Pulp serves their needs, or how it helps you serve your users. * **What Plugins do you use?** What kind(s) of content are important to your users? * **What Does Your Workflow Look Like?** What does "a day in the life" look like for you? How much do you sync? How often? How does create/sync/publish work in your environment? * **What One Thing Could Pulp3 Do To Make Your Life Easier?** ## Template ### Who Are You? * What Problem(s) Are You Solving? * What Does Your Workflow Look Like? * What Plugins do you use? * What One Thing Could Pulp3 Do To Make Your Life Easier? ## Responses ### Douglas Furlong * Programming Experience * first major programming job was "working with Pulp2" * What Problem(s) Are You Solving? * Have been using Pulp2 to manage internal/external repos * 3d party packages (EPEL, etc) * Salt used to associate repositories to hosts * control injecting new packages thru release-process * 2 streams, "current" (active-in-primary) and "new" (#soon) * looking to be able to 'promote' a package directly into those streams * Pulp3 repo-versioning makes it possible, but it's "cumbersome" * "version-trees" would be useful * this has been discussed in the past * in Pulp2, used multiple repos - but it's *expensive* * Pulp3 approach might be faster? * 1Ks of repos, TBs of data, 2Ks of clients * multiple Pulp servers * primary, multiple secondaries - internal tooling to sync * What Does Your Workflow Look Like? * mirroring upstream * "dirty" repo - verbatim copy of upstream * "trunk" repo - explicitly choosing/limiting pkg-prmotion * security errata, bugs, internal request * weekly, copy of trunk becomes "release" * presented to various "risk groups" * backups - if primary fails, recopver data from secondaries * every release, store rpm-related data in a separate database * What Plugins do you use? * only pulp_rpm currently * looking to use file and container soon * deb and python "later" * What One Thing Could Pulp3 Do To Make Your Life Easier? * moving framework to pulp3 - still early stages * using client-libraries and how to **best** use * handle cross-plugin decision-making - lots of 'if' clauses currently * "generic" publication model would be nice * katello input: used a class/subclass approach * There is value in the tooling that katello/wibbit/cli are building to make the pulp **user's** job easier * expand client-lib documentation * pointing to existing repositories * documentation about "library above the specific plugin libs" * "opinionated" layers vs "abstract" * The more complicated the lifecycle process is, the more work it takes to figure out exactly what happened when * Would tagging help with this scenario? * would be exceptionally useful to describe everything in a "release" ### Sebastian Skracic/Martin Minar * What Problem(s) Are You Solving? * RHUI (Red Hat Update Infrastructure) * scalable, redundant framework for managing repos/content * primarily used by Cloud Providers to provide content for their customers' instances * Red Hat and custom content * 2 kinds-of users * provide content for 'internal' clients (10Ks machines) * 'targeted' repos (eg, specific release) * 'frozen' repos * 'real' clouds (AWS, Azure, GCE, etc) providing content for 'external' customers * 2K repos sync'd daily, 2x/day * 3-4TB data * Most difficult task in pulp2 is managing thousands of repos at once * specifically task-management * What Does Your Workflow Look Like? * All The Content sync'd into pulp-instance * distribution nodes act as pulp-clients * losing pulp-database * reinstall db node * resync all repos against mounted (not lost) RPM binaries * What Plugins do you use? * RHUI 3 based on Pulp2 is current production * pulp_rpm, pulp_file, ostree * RHUI 4 in dev't against Pulp3 * pulp_rpm * What One Thing Could Pulp3 Do To Make Your Life Easier? * Chaining sync/distribute/publish into one operation/scheduled-task would make our life much easier * would it help do do on client-side? * Task-APIs enriched to have more data in 'waiting' tasks * can't find 'reserved' tasks * add metadata-pair to repos (eg, gpg-key-to-repo)