New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Docs: Collections overview #3
Conversation
README.rst
Outdated
A packaging format for bundling and distributing Ansible content: plugins, roles, modules. Can be released independently to other collections or Ansible so features can be made available sooner to users. Installed via ``ansible-galaxy collection install <namespace.collection>``. | ||
|
||
Ansible Base | ||
The codebase that will be contained in github.com/ansible/ansible for the Ansible 2.10 release. Contains only the minimal amount of modules and plugins, allows other collections to be installed. Similar to Ansible 2.9 though without any content that has since moved into a collection. Only contains a small set of modules and plugins. A work in progress can be found in `ansible-base <https://github.com/ansible-collection-migration/ansible-base/>`_ repository. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s/Contains only the minimal amount/Contains a minimal amount of modules and plugins
Also can probably drop the 'Only contains a small set of modules and plugins.' line.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will there be a pip package to install just ansible-base
? E.g. pip install ansible-base
? I can see many situations where it would be useful to get just base and not 'Community Content Collections'.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will there be a pip package to install just
ansible-base
? E.g.pip install ansible-base
? I can see many situations where it would be useful to get just base and not 'Community Content Collections'.
Yes, I can also see that being useful, though the exact packaging details of ansible (and optionally ansible-base) haven't been defined. I've made a note that we should get what we have written up and put somewhere public.
README.rst
Outdated
|
||
**Warning:** Dates subject to change | ||
|
||
* On 2nd March 2020, we will freeze the devel branch using protected branches, and we will create the temp-2.10-devel branch from devel. This date marks the end of merging non-base plugin/module PRs into ansible/ansible. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If possible, it would be nice to have a list of what are considered the 'base plugin/modules' and link to that list here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good call, I've added Q: What exactly is ansible-base for and what will it contain
to the FAQ, detail the use-cases and linked to scenario & repo
README.rst
Outdated
|
||
If you're a vendor/partner and you're writing Ansible content to interact with your software, we recommend writing your own collection. This will allow you to pursue certification against the Ansible Automation Platform. For more info on certification, read here [FIXME: link]. | ||
|
||
If you want to submit your module to the General Community Collection, you can find those guidelines here [FIXME: link]. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is the General Community Collection the same as "Ansible Community Content Collections"? And if so, does that mean pip install ansible
will eventually be able to add more content that is not in Ansible 2.9 out of the box?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@geerlingguy updated to say:
If you want to submit your module to the
community.general
Collection, please wait till this repo has been created (see timeline at the top of this document).
How does that sound?
README.rst
Outdated
|
||
If you want to submit your module to the General Community Collection, you can find those guidelines here [FIXME: link]. | ||
|
||
If you want to submit your module to an existing collection, you'll want to coordinate with the maintainers of those collections and follow their guidelines. Note that not all collections will necessarily accept new modules. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note that not all collections will necessarily accept new modules.
I don't think this sentence is necessary; it's not like it's an expectation that anything will be accepted into any open source project anyways (it wasn't that way with ansible/ansible before, either).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it's important to point out that not all collections will share the same guidelines.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@geerlingguy I understand that, though if the collection isn't (partly) managed by Ansible then we can't offer even the vague promises of merging code that we did in ansible/ansible.
@gregdek I added
nor follow the guidelines that ansible/ansible previously did.
To hopefully make your point even clearer.
README.rst
Outdated
Q: I'd like to submit a pull request to an existing Ansible module. How will I know where this module will live? | ||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
|
||
We will have a mapping of old modules to their new homes. Should you submit a PR to the wrong repository, we will close it and point you to the correct repository. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there already a mapping? It could be good to make it polished enough people could reference it on their own—otherwise people are going to be filing tons of issues against ansible/ansible anyways.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
botmeta has new field 'migrated_to' which will have collection name from galaxy
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Details of BOTMETA & migrated_to:
will be added once ansible/ansible#67538 is merged
Link added
I think this is good enough to clean up and push live on Wednesday. |
|
||
Ansible Community Content Collections | ||
The collections which host the modules and plugins, previously in Ansible 2.9, which are managed by the community. These collections will be combined and released when you do ``$package_manager install ansible``. These may run at different cadences, and may now be installed individually by users via Ansible Galaxy. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't see any mention in this doc about Core/Supported Collections. I would expect to see a section here about Ansible Core Content Collections.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jillr Yup, I've deliberately avoided the product side.
I've added
Although this document focuses on Community (upstream) content, there will be Product (downstream) equivalents of the above. Links to the Product documentation will be added once they are available.
How's that sound?
|
||
Fully Qualified Collection Name (FQCN) | ||
The full definition of a module, plugin, or role hosted within a collection, in the form ``namespace.collection.content_name``. Allows a Playbook to refer to a specific module or plugin from a specific source in an unambiguous manner, for example, ``community.grafana.grafana_dashboard``. The FQCN is required when you want to specify the exact source of a module and multiple modules with the same name are available. Can always be identified in a playbook; ideally not necessary in most playbooks, but in cases in which users have multiple collections installed with similar content, the FQCN will always be the explicit and authoritative indicator of which collection to use for content. Example: cisco.ios.ios_config would be the FQCN, and the playbook would generally call "ios_config". When is this required. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I assume the last sentence 'When is this required' is meant to be a placeholder/TODO for writing details of when FQCN is required?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yup. I think that belongs in https://docs.ansible.com/ansible/devel/user_guide/collections_using.html I'll raise an issue in ansible/ansible for that.
Thank you everybody that's reviewed this. I hope that between us all we can keep this document updated. |
SUMMARY
Community docs for Collections.
My hope is every time someone asks a question a PRs is raised to update this document.
Review welcome:
ISSUE TYPE