-
Notifications
You must be signed in to change notification settings - Fork 340
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
Define a naming scheme for AWS modules #610
Comments
Personally I'd recommend that we keep the service name ( The OpenStack folks did a big rename using a similar scheme. However they dropped the service prefix for 'User' facing things vs 'Admin' facing things, with Amazon that's a much fuzzier line. https://review.opendev.org/c/openstack/ansible-collections-openstack/+/726538 |
Does But in general I agree with your suggestion to keep ( One point of contention might be
Maybe |
I don't find the result of the discussion, ie Specifically with regards security groups, they are a part of the EC2 APIs, so while they're also consumed by non-EC2 services I think it's "technically" correct to refer to them with an ec2_ prefix. Some of the services even have their own, separate, "security group" implementations in their APIs: RedShift Security Groups for example. I mentioned security groups because we could for example simply call the module That all said, this is exactly the kind of discussion I was trying to start. My first comment was an initial "straw-man" proposal, if you can pick holes in it, then perfect, we can build something better together :) |
ansible-collections/community.aws#887 More candidates
Imo, the
What do you think? |
Looking at how AWS have structured their APIs There are a set of separate APIs, each with sets of resources under them: codeartifact I would suggest something more like: community.aws.codedeploy_deployment There are also a few things around like I'd suggest something like dropping the v2 where this happens, the UIs often hide the v1/v2 distinction/ |
I personally find |
That's not that easy I think. For example |
+1
I'm fine with that. |
I like the idea as far as sorting things is concerned. Do you know if we could reflect this in the FQCN? |
Not really. I'll try to document. |
Thanks @tremble for kicking this off! I concur with generally removing the aws_ prefixes from things like While FQCN's do allow us to have module name collisions and FQCN's are the preferred / recommended way to write tasks, I'd still be hesitant to have things that are too generic without a service prefix (like your example of I'm also leery of a having big rename of existing modules given that users have already had to modify playbooks recently for facts.py->info.py, the collections break out, various deprecations and module migrations, etc. We need to be respectful of the impact this all has had on them. I'm a big +1 for adopting a standard going forward for new things, and planning to retrofit it onto existing modules, but we should be thoughtful about when and how we do that. Once we do have a something close to a draft proposal, before we formally adopt it, we should run it past the rest of the cloud content team and Ansible product management. If we're investing the time in standards development there might be opportunities to synchronize across collections if we include a broader group. |
Agreed, the only other one that I can think of is the
Yeah, the other one that worries me is the secrets manager service, which only has a single resource type
Yeah, I've been on the customer side of that too :) However, in some cases the current names make it harder to find the modules that you want. Having a consistent naming scheme makes things much more discoverable. In
However, what I wouldn't do is set a deprecation timeline for the old names, as you mention there's been a lot of churn in the last couple of years. If we can make it easier to find the modules people are looking for, then I think that brings more value than the cost of carrying some extra aliases. The vast bulk of modules that IMHO need renaming are over in |
That plan feels sensible to me, +1 |
Module naming guidelines SUMMARY Originally discussed in #610 Here's an initial attempt at some module naming (and module scoping) guidelines. Assuming we adopt this, I recommend is that: we can do the renames as part of 5.0.0, but this isn't a must and wouldn't be considered a blocker to 5.0.0 unless otherwise agreed. any modules moving from community.aws to amazon.aws would be renamed if appropriate as part of the move. we do not specify a deprecation date at this time, but leave a comment in the redirect that any deprecation cycle should not start before 2024-09-01 (to avoid potential migration fatigue issues), ISSUE TYPE Docs Pull Request COMPONENT NAME docs/docsite/rst/dev_guidelines.rst ADDITIONAL INFORMATION fixes: #610 Reviewed-by: Joseph Torcasso <None> Reviewed-by: Jill R <None> Reviewed-by: Markus Bergholz <[email protected]>
Module naming guidelines SUMMARY Originally discussed in #610 Here's an initial attempt at some module naming (and module scoping) guidelines. Assuming we adopt this, I recommend is that: we can do the renames as part of 5.0.0, but this isn't a must and wouldn't be considered a blocker to 5.0.0 unless otherwise agreed. any modules moving from community.aws to amazon.aws would be renamed if appropriate as part of the move. we do not specify a deprecation date at this time, but leave a comment in the redirect that any deprecation cycle should not start before 2024-09-01 (to avoid potential migration fatigue issues), ISSUE TYPE Docs Pull Request COMPONENT NAME docs/docsite/rst/dev_guidelines.rst ADDITIONAL INFORMATION fixes: #610 Reviewed-by: Joseph Torcasso <None> Reviewed-by: Jill R <None> Reviewed-by: Markus Bergholz <[email protected]> (cherry picked from commit 289e987)
Module naming guidelines SUMMARY Originally discussed in #610 Here's an initial attempt at some module naming (and module scoping) guidelines. Assuming we adopt this, I recommend is that: we can do the renames as part of 5.0.0, but this isn't a must and wouldn't be considered a blocker to 5.0.0 unless otherwise agreed. any modules moving from community.aws to amazon.aws would be renamed if appropriate as part of the move. we do not specify a deprecation date at this time, but leave a comment in the redirect that any deprecation cycle should not start before 2024-09-01 (to avoid potential migration fatigue issues), ISSUE TYPE Docs Pull Request COMPONENT NAME docs/docsite/rst/dev_guidelines.rst ADDITIONAL INFORMATION fixes: #610 Reviewed-by: Joseph Torcasso <None> Reviewed-by: Jill R <None> Reviewed-by: Markus Bergholz <[email protected]> (cherry picked from commit 289e987)
[PR #881/289e9870 backport][stable-4] Module naming guidelines This is a backport of PR #881 as merged into main (289e987). SUMMARY Originally discussed in #610 Here's an initial attempt at some module naming (and module scoping) guidelines. Assuming we adopt this, I recommend is that: we can do the renames as part of 5.0.0, but this isn't a must and wouldn't be considered a blocker to 5.0.0 unless otherwise agreed. any modules moving from community.aws to amazon.aws would be renamed if appropriate as part of the move. we do not specify a deprecation date at this time, but leave a comment in the redirect that any deprecation cycle should not start before 2024-09-01 (to avoid potential migration fatigue issues), ISSUE TYPE Docs Pull Request COMPONENT NAME docs/docsite/rst/dev_guidelines.rst ADDITIONAL INFORMATION fixes: #610 Reviewed-by: Mark Chappell <None>
Rename ACM modules SUMMARY In line with what I understood to be the consensus on ansible-collections/amazon.aws#881 and ansible-collections/amazon.aws#610 Rename aws_acm to acm_certificate Rename aws_acm_info to acm_certificate_info ISSUE TYPE Feature Pull Request COMPONENT NAME aws_acm aws_acm_info acm_certificate acm_certificate_info ADDITIONAL INFORMATION Reviewed-by: Markus Bergholz <[email protected]>
Module naming guidelines SUMMARY Originally discussed in ansible-collections#610 Here's an initial attempt at some module naming (and module scoping) guidelines. Assuming we adopt this, I recommend is that: we can do the renames as part of 5.0.0, but this isn't a must and wouldn't be considered a blocker to 5.0.0 unless otherwise agreed. any modules moving from community.aws to amazon.aws would be renamed if appropriate as part of the move. we do not specify a deprecation date at this time, but leave a comment in the redirect that any deprecation cycle should not start before 2024-09-01 (to avoid potential migration fatigue issues), ISSUE TYPE Docs Pull Request COMPONENT NAME docs/docsite/rst/dev_guidelines.rst ADDITIONAL INFORMATION fixes: ansible-collections#610 Reviewed-by: Joseph Torcasso <None> Reviewed-by: Jill R <None> Reviewed-by: Markus Bergholz <[email protected]>
Rename SES modules SUMMARY In line with what I understood to be the consensus on ansible-collections/amazon.aws#881 and ansible-collections/amazon.aws#610 Rename ses modules to remove the aws_ prefix. ISSUE TYPE Feature Pull Request COMPONENT NAME plugins/modules/aws_ses_identity.py plugins/modules/aws_ses_identity_policy.py plugins/modules/aws_ses_rule_set.py plugins/modules/ses_identity.py plugins/modules/ses_identity_policy.py plugins/modules/ses_rule_set.py ADDITIONAL INFORMATION Reviewed-by: Alina Buzachis <None>
Rename ACM modules SUMMARY In line with what I understood to be the consensus on ansible-collections#881 and ansible-collections#610 Rename aws_acm to acm_certificate Rename aws_acm_info to acm_certificate_info ISSUE TYPE Feature Pull Request COMPONENT NAME aws_acm aws_acm_info acm_certificate acm_certificate_info ADDITIONAL INFORMATION Reviewed-by: Markus Bergholz <[email protected]>
Rename SES modules SUMMARY In line with what I understood to be the consensus on ansible-collections#881 and ansible-collections#610 Rename ses modules to remove the aws_ prefix. ISSUE TYPE Feature Pull Request COMPONENT NAME plugins/modules/aws_ses_identity.py plugins/modules/aws_ses_identity_policy.py plugins/modules/aws_ses_rule_set.py plugins/modules/ses_identity.py plugins/modules/ses_identity_policy.py plugins/modules/ses_rule_set.py ADDITIONAL INFORMATION Reviewed-by: Alina Buzachis <None>
Rename ACM modules SUMMARY In line with what I understood to be the consensus on ansible-collections#881 and ansible-collections#610 Rename aws_acm to acm_certificate Rename aws_acm_info to acm_certificate_info ISSUE TYPE Feature Pull Request COMPONENT NAME aws_acm aws_acm_info acm_certificate acm_certificate_info ADDITIONAL INFORMATION Reviewed-by: Markus Bergholz <[email protected]>
Rename SES modules SUMMARY In line with what I understood to be the consensus on ansible-collections#881 and ansible-collections#610 Rename ses modules to remove the aws_ prefix. ISSUE TYPE Feature Pull Request COMPONENT NAME plugins/modules/aws_ses_identity.py plugins/modules/aws_ses_identity_policy.py plugins/modules/aws_ses_rule_set.py plugins/modules/ses_identity.py plugins/modules/ses_identity_policy.py plugins/modules/ses_rule_set.py ADDITIONAL INFORMATION Reviewed-by: Alina Buzachis <None>
Rename ACM modules SUMMARY In line with what I understood to be the consensus on ansible-collections#881 and ansible-collections#610 Rename aws_acm to acm_certificate Rename aws_acm_info to acm_certificate_info ISSUE TYPE Feature Pull Request COMPONENT NAME aws_acm aws_acm_info acm_certificate acm_certificate_info ADDITIONAL INFORMATION Reviewed-by: Markus Bergholz <[email protected]> This commit was initially merged in https://github.com/ansible-collections/community.aws See: ansible-collections/community.aws@ba08f90
Rename ACM modules SUMMARY In line with what I understood to be the consensus on ansible-collections#881 and ansible-collections#610 Rename aws_acm to acm_certificate Rename aws_acm_info to acm_certificate_info ISSUE TYPE Feature Pull Request COMPONENT NAME aws_acm aws_acm_info acm_certificate acm_certificate_info ADDITIONAL INFORMATION Reviewed-by: Markus Bergholz <[email protected]> This commit was initially merged in https://github.com/ansible-collections/community.aws See: ansible-collections/community.aws@ba08f90
Summary
Most of the history with the
aws_
prefix comes from before Ansible split most of the content out into collections. At that point in time there was no practical namespace for modules to live in, as a result prefixes likeaws_
were used to avoid a collision. Take for example theaws_secret
module, without anaws_
prefix, there's a massive array of secret stores in the Ansible universe that this might have referred to, and first-come-first-served is a poor way to deal with it.Now that we have the
amazon.aws
andcommunity.aws
namespaces that modules can live in we could start cleaning up the module names. For this to happen someone would need toa) Propose a naming scheme which takes into account things like multiple services having a
snapshot
b) Put together a PR to document said standard (probably link to an amazon.aws doc from the community.aws docs too)
c) (eventually) Put together the relevant pull requests
While I don't think "RightNow" would be a good time to do a big-bang bulk migration (will there ever be one), at least one driven solely by the Cloud Content team. I do think that defining a standard sooner rather than later offers some clarity for folks submitting new modules to community.aws. Additionally, as and when modules are migrated from community.aws to amazon.aws we can opportunistically update module names.
Once we have a standard, should someone from the community want to spend time renaming groups of modules this doesn't have to be driven by the Cloud Content team (meta/runtime.yml makes this so much easier).
Issue Type
Feature Idea
Component Name
plugins/
docs/
Additional Information
CC: @markuman
For an example of the confusion, see also ansible-collections/community.aws#858
Code of Conduct
The text was updated successfully, but these errors were encountered: