Project

Profile

Help

Story #5250

closed

Add requirements.yaml specification support to collection sync

Added by sajha over 4 years ago. Updated over 3 years ago.

Status:
CLOSED - CURRENTRELEASE
Priority:
Normal
Assignee:
-
Sprint/Milestone:
-
Start date:
Due date:
% Done:

100%

Estimated time:
Platform Release:
Groomed:
Yes
Sprint Candidate:
No
Tags:
Katello
Sprint:
Sprint 57
Quarter:

Description

Requirements with requirements.yml:

We would like to have the ability to use the requirements.yml documented here: https://docs.ansible.com/ansible/devel/dev_guide/collections_tech_preview.html#install-multiple-collections-with-a-requirements-file

---
collections:
# With just the collection name
- my_namespace.my_collection

# With the collection name, version, and source options
- name: my_namespace.my_other_collection
  version: 'version range identifiers (default: ``*``)'
  source: 'The Galaxy URL to pull the collection from (default: ``--api-server`` from cmdline)'

This would sync the collection my_namespace.my_collection and the specified version of my_namespace.my_other_collection. The version specification would be similar to https://docs.ansible.com/ansible/devel/dev_guide/collections_tech_preview.html#installing-an-older-version-of-a-collection

Field Name

The field on the CollectionRemote should be called requirements_file.

Validation of data Requirement

Note that Pulp expects to have all content from a single source and does not expect to have sources defined per content item (as the "source" field allows in this spec). As such, Pulp should not accept a requirements.yaml that contains a definition for "source". If specified when creating/saving a remote it should be rejected as invalid with a message from the user.

Actions #1

Updated by bmbouter over 4 years ago

So to confirm, the idea is that this would store a text blob (like the copy/pasted contents of a requirements.yaml) ?

If so, I think that would work fine, but the "source" option could be challenging. Specifically, the Remote.url specified the remote source to pull all content from, but this spec allows for that remote to be item, by, item.

How should pulp_ansible work when the user specifies remote A to be galaxy.ansible.com and the "source" field says example.com ?

Actions #2

Updated by jsherril@redhat.com over 4 years ago

I think it might be okay to reject requirements with a source specified

Actions #3

Updated by bmbouter over 4 years ago

  • Description updated (diff)

Revising to require validation that ensures "source" is not set.

Actions #4

Updated by daviddavis over 4 years ago

  • Groomed changed from No to Yes
  • Sprint set to Sprint 57
Actions #5

Updated by bmbouter over 4 years ago

  • Subject changed from Use requirements.yaml specification for whitelisting collections to sync to Add requirements.yaml specification support to collection sync
  • Description updated (diff)
Actions #6

Updated by fao89 over 4 years ago

  • Status changed from NEW to POST

Added by Fabricio Aguiar over 4 years ago

Revision ab990542 | View on GitHub

Add specification support to collection sync

closes #5250

Actions #7

Updated by Anonymous over 4 years ago

  • Status changed from POST to MODIFIED
  • % Done changed from 0 to 100
Actions #8

Updated by ggainey almost 4 years ago

  • Tags Katello added
  • Tags deleted (Katello-P2)
Actions #9

Updated by bmbouter over 3 years ago

  • Status changed from MODIFIED to CLOSED - CURRENTRELEASE

Also available in: Atom PDF