cloudposse/terraform-aws-components

We should break out the `account-map` submodules into their own components

Gowiem opened this issue · 3 comments

Describe the Feature

Breaking out the account-map submodules into their own components so they can be versioned and treated separately from the account-map component. I don't see the reason behind why these are all included together in the same component, so maybe this is first a question to see if there is a reason. And if not, then it'd be good to use this as a driver to break them up.

Expected Behavior

We have a separate component module folder for each account-map submodule:

  1. iam-roles
  2. roles-to-principals
  3. team-assume-role-policy

Use Case

This will enable updating the account-map component and not breaking other modules that depend on its sub-modules. It will also enable usage of roles-to-principals and similar without having to pull in account-map.

Describe Ideal Solution

We have a separate component module folder for each account-map submodule.

Alternatives Considered

N/A

Additional Context

My team ran into issues with using older components and a newer version of account-map. We ended up having to pull in an older submodule of the account-map component manually to fix our issues.

@nitrocode @aknysh mind giving me your thoughts on this when you get the chance? I figure if there is a reason (other than convenience) that these submodules are submodules then you two would likely know.

@nitrocode just seeing your 👍 -- Assuming you agree with this thought process?

Pulling in @osterman for another opinion. If we want to go this route, I'm happy to put up some PRs to make it happen.

Nuru commented

These modules are sub-modules of account-map because they are tightly coupled to account-map, and need to maintained and versioned as a set. They are, essentially, specialized post-processors of account-map output, and other code requires they be in the repo at a known location. They are not optional, so there is no benefit to breaking them out.