Skip to content
This repository has been archived by the owner on Jun 10, 2024. It is now read-only.

First pass at AWS Working Group goals #178

Merged
merged 3 commits into from
Jul 14, 2017

Conversation

willthames
Copy link
Contributor

Lots of room for improvement, including
relating existing PRs to any of these pages.

If we can automate the generation of the lists
from AWS labels, so much the better.

@willthames
Copy link
Contributor Author

Please don't merge without approval from at least one of @shertel or @ryansb.

Other interested parties will be @mikedlr, @wimnat

Lots of room for improvement, including
relating existing PRs to any of these pages.

If we can automate the generation of the lists
from AWS labels, so much the better.
* `sqs_queue`
* `sts_assume_role`

## Commands for the above list
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 for documenting these commands.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At some point we might autogenerate some content, but for now, need some mechanism for keeping them up to date by humans!

When adding new features, those features should have tests.

# Github PRs
There are some PRs with tests:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That label catches PRs that update test/sanity/pep8/legacy-files.txt, which is not really the same as having tests.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added to Testing Working Group agenda #114 (comment)

@@ -9,12 +9,25 @@ There are currently no regular meetings held. The IRC channel is the
main and official place to contact the members. For specific issues and
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need #ansible-aws adding somewhere in this.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's already in the Contacts at the bottom, but could make it more explicit here too.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not in the Openstack Community. I'm in the Ansible AWS Working Group.

If there are templates that come from Ansible Working Groups that are successful, then I'll take those on, otherwise I'm happy to try this approach and see what works or not.

We really don't yet have standards about what should be in this README.md.

@@ -0,0 +1,19 @@
# Best practices
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe add in that the Working Group welcomes work to improve the best practices guidelines.

If any of this checks can be automated AWS and Testing Working groups can do this.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We welcome the improvements from everyone! But can document that more explicitly too.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess it's more "these are the specific things we care about working towards fixing" and in future "these are the modules that need fixing" and "these are the PRs that will address those". I don't mind being overly documented.

@dagwieers
Copy link
Contributor

@willthames If it is no ready to be merged, the safe way would be to add [WIP] to the title.

@willthames
Copy link
Contributor Author

@dagwieers there's a difference between "I don't think this is ready to merge" which is what [WIP] is for, and asking for it to be signed off before merge.

other people's stuff
* [Best practices](bestpractices.md) - all modules should meet the Ansible best
practices, such as python coding standards, documentation.

Copy link
Contributor

@s-hertel s-hertel Jun 30, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we add reviewing PRs to the goals? Ideally there would be a few people looking at anything before it is merged and often pull requests are inadvertently ignored because there aren't enough people reviewing. I think that's detrimental to the contributor and in turn might lead to an unenthusiastic WG.

| ec2_vpc_subnet_facts | [25374](https://github.com/ansible/ansible/pull/25374) |
| rds | [25646](https://github.com/ansible/ansible/pull/25646) |
| rds_param_group | [25345](https://github.com/ansible/ansible/pull/25345) |

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A couple more:
ec2_eni_facts: ansible/ansible#22941
s3: ansible/ansible#21529


# State of the codebase

Modules with non-trivial tests:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How are you defining non-trivial?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are some modules that have targets under test/integration/targets but tasks/main.yml is empty.

However, rather than define those as trivial, I should just say 'Existing modules with tests'

The current IAM module is a monolith. The intention is to replace it
with

* [ ] `iam_user`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR for iam_user is in progress: ansible/ansible#26290

@gregdek
Copy link
Contributor

gregdek commented Jul 6, 2017

Hey @willthames what do you think? Has this had sufficient review?

@willthames
Copy link
Contributor Author

@gregdek I think it has now for a first pass. There are more improvements to be made perhaps around framing overall goals vs mechanisms for achieving those goals, but that could be a new PR

### boto3

```
grep -l 'import boto3' *.py | sed 's/\(.*\)\.py$/* `\1`/'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we just grep for HAS_BOTO and HAS_BOTO3? I think all modules use those. This wouldn't catch from boto3 import ....

modules allows us to break backward compatibility which can really
help with boto3 moves)

* `ec2` → `ec2_instance`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd much prefer rewriting a smaller module and calling that ec2_instance since the current ec2 is massive, and this would be an opportunity to clean up all the various options and features that have crept in over time.

@gregdek
Copy link
Contributor

gregdek commented Jul 7, 2017

OK, now waiting on review of @ryansb review.

Ping me when you want me to merge. :)

* [Move to boto3](boto3.md) - all AWS modules should move to boto3, rather
than boto. This is happening organically, especially as newer features
typically exist in boto3 only, but we might want to improve this.
* [Integration tests](integration.md) - all AWS modules should have integration
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

some of these goals seem to me to be a bit detailed and should probably be moved to a separate "software quality" section or document. Maybe we should put things like.

  • build modules that fit with the standard ansible way of doing things and integrate AWS services to that
  • make it possible to get complete AWS configuration using Ansible;
  • make standard important services configurable through properly integrated standard modules
  • cooperate with other cloud module teams to try to encourage compatiblity where that does not compromise flexibility or completeness
  • support futureproofing by trying to ensure that official AWS libraries and APIs are used to build modules.


## Expected test criteria

* Resource creation
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Handling of incorrect arguments such as lack of region and missing parameters.
  • Simple error handling (n.b. Unit testing may be better for reasonable coverage here)

@willthames
Copy link
Contributor Author

I'm going to merge this notwithstanding @mikedlr's comments, they will be insight for a future PR

@willthames willthames merged commit 3143f92 into ansible:master Jul 14, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants