Skip to content

Discussion on the future of the AWS pack #55

Open
@warrenvw

Description

@warrenvw

Overview

This issue exists to provide a forum for discussion. We need to come to consensus on how to move forward with the AWS pack. Make your opinion known below, or forever hold your peace. :)

NOTE: Please add new comments instead of editing this one. Let me know in a comment if you'd like me to make any changes here.

Current Problems

Today, the AWS pack has a few pain points:

  • Performance issues in Stackstorm were highlighted by the sheer number of AWS actions (3581).
  • There's a mix of boto2 and boto3 actions, some boto2 services no longer exist in boto3 (in many cases they've been renamed). See Deprecate/remove actions #45.
  • We still use boto2 instead of boto3.
  • Inability to change region, assume roles.
  • Documentation of each action is poorly formatted (it's automatically retrieved by boto3).

Reference:

Solutions

As a community, we need to decide which of the following options provides the best possible resolution to the above pain points. Are there any other options?

There is a desire to have only one long lived branch within any pack.

Option 1: One pack with all actions

This is what we have today on master branch.

Pros: There's one AWS pack.
Cons: No one uses even close to all the 3581 available actions. Lots of bloat.

Stackstorm currently has performance issue related to installation/registration of packs with a large number of actions.

Option 2: One pack per AWS service

Pros: Each pack contains all actions for the service. Users only install the packs they need. Each pack could have its own icon.
Cons: There are currently 111 AWS services. There are ~130 existing packs in Stackstorm-Exchange. This means almost half of all packs will be related to AWS.

Perhaps introduce the concept of "sub pack" if it doesn't exist already. Even for smaller packs, it could be really nice for organization and even granting permissions.

The action generator st2packgen.py and the lib/ folder will need to be shared with all AWS packs (or sub packs). Make stackstorm-aws available in pypi and include it in all AWS packs.

We can ensure documentation describes how to auto-generate new actions when they're made available by boto. This way we can install the common actions in the back, and if people need any missing action, they can generate on their own using provided tooling (st2packgen.py).

Option 3: One pack with a small number of generic actions

Pros: All boto3 actions are available as soon as they're published by AWS; we don't need to manually generate new actions manually when they're added. Provides ability to assume roles and switch regions. See #44
Cons: Cannot filter based on action, and can't see pack metadata/expected input.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions