Skip to content

Hub Collections

MilanPospisil edited this page Nov 21, 2023 · 17 revisions

Collections allow users to package and distribute playbooks, roles, modules, and plugins. Collections are uploaded into the system and the content of the collection can be only viewed. There are some operations over the collections as whole, but they do not modify important collection content, they modify rather metadata info like signing or if the collection is deprecated.

Namespaces

Collections are organized into namespaces. Tuple collection name and namespace can identify the collection quite well - and it contains identifier pulp href, which identifies this object in the pulp. But collection can also be stored in multiple repositories, so identification of collection in particular repository must include repository name as well.

Versioning

Collections can be also versioned. In fact CollectionVersion is only object that pulp knows, there is no concept of Collection with list of versions in pulp - this is hub concept. Versions are grouped together by name, namespace and repository name. CollectionVersion object contains version and also contains variable is_highest. If true, that object is highest version of collection. So collection list show only highest version of each collection for each repository. So if collection is in multiple repositories, it will be there multiple times.

So collection list shows highest versions of collections, approval list shows every collection version for each repository.

After clicking at collection list item, the Collection detail will appear, which further allows to select version of collection.

Collections and repositories

TODO

Collection actions

Delete Collection from system - deletes collections from every repository Delete Collection from repository - deletes collection from one repository, may cause orphans records in db, because if the collection is deleted from the system entirely, orphan cleanup will run eventualy, but until that, no collection with the same name and namespace cant be uploaded. Delete Version from system or repository - Those two operations are the same as above, but only deletes one version, not all versions. Sign entire collection or sign version - Those two operations signs collection or version. Deprecate - Marks entire collection as deprecated. Deprecated collection will not be shown in the collection list, but it will be shown in namespace detail - collection list, where it can be undeprecated. Deprecated collection still sits in its repository and the same collection in other repos will not be deprecated. Deprecation is useful in situations when we dont want to delete collection because of dependencies, but we want to hide it from users.

Clone this wiki locally