awslabs / awslabs/aws-deployment-framework
Support Include/Exclude of OUs instead of "protected"
- Dominant language
- Python
- Stars
- 699
- Forks
- 235
- Avg merge
- 20h 53m
- Merged PRs (30d)
- 7
Description
When deploying the ADF into an existing organization, it might be nice to have more control over which OUs should be bootstrapped, as another process (eg Landing Zone / Control Tower) might be responsible for creating account, creating ou's and moving accounts to them.
It should be possible to configure ADF to only bootstrap inside an explicit allow list of ou's.
Going even further, it would be nice to support both OU-paths, OU-ids and Account-ids.
Using the allow list first and the blacklist to filter out after that is probably the nost logical.
Examples:
------
deploy everywhere
```
config:
[...]
```
-------
deploy everywhere, except in ou-123 and below and account 123456789012:
```
config:
exclude:
- ou-123
- '123456789012'
```
------
deploy in the deployment ou (and below) and in the applications ou (and below), but skip everything in applications/sandbox and below
```
config:
include:
- deployment
- applications
exclude:
- applications/sandbox
```
----
The only downside is that this configuration won't be possible (as applications/sandbox/exception would stay excluded if include is always evaluated first)
```
config:
include:
- deployment
- applications
- applications/sandbox/exception
exclude:
- applications/sandbox
```
Contributor guide
Research direction
No source file, test, or entry point is named. Start by locating the configuration handling and AWS Organizations bootstrap logic, then trace how protected OUs are currently filtered. Done should be defined by tests covering include and exclude lists with OU paths, OU IDs, account IDs, and the precedence described in the examples.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, python
- Domain
- cloud, devops, infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100