diff --git a/README.md b/README.md index 51cd155..9bb2d7b 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,52 @@ -# :bank: AWS-CDK-ORGANIZATIONS-DEMO :bank: - -![Badge Workflow](https://github.com/san99tiago/aws-cdk-organizations-demo/actions/workflows/deploy.yml/badge.svg) - -DEMO for the best practices of AWS Organizations with Infrastructure as Code on CDK-Python. - -## TODO: - -Add a detailed README with diagrams, explanations and examples of usage. +# 🅾️ AWS-CDK-ORGANIZATIONS-DEMO 🅾️ + +![Badge Workflow](https://github.com/san99tiago/aws-cdk-organizations-demo/actions/workflows/deploy.yml/badge.svg?branch=main) + +Advanced DEMO of AWS Organization for sharing the best practices of managing multiple production-grade AWS Accounts with Infrastructure as Code on [CDK-Python](https://docs.aws.amazon.com/cdk/v2/guide/home.html). + +## Architecture 🏦 + +This diagram illustrates the generated AWS Organizations structure with multiple OUs and Account. + +
+ +```bash +# Hierarchy of the OUs and Accounts +OURoot/ +├── 🏠ManagementAccount(🚩) +├── 📝OUInfrastructure/ +│ ├── 📝OUInfrastructureNonProd/ +│ │ └── 🏠AccountSharedServicesNonProd +│ └── 📝OUInfrastructureProd/ +│ └── 🏠AccountSharedServicesProd +├── 📝OUWorkloads/ +│ └── 📝OUFinance/ +│ ├── 📝OUFinanceNonProd/ +│ │ ├── 🏠AccountFinanceDev +│ │ └── 🏠AccountFinanceQA +│ └── 📝OUFinanceProd/ +│ └── 🏠AccountFinanceProd +└── 📝OUPolicyStagingTests/ + └── 🏠AccountPolicyStagingTests +``` ## CI/CD and Deployment 🚀 -The deployment process is intended to run with GitHub Actions Workflows. +The deployment process is intended to run with GitHub Actions Workflows and implementing the Cloud Development Tool (CDK) tool for managing the IaC and State. + +
- On `feature/****` branches commits, the CDK project gets **synthesized** and it shows the **state diff** between the current AWS resources and the expected ones. - When merged to `main` branch, it will get deployed to the AWS Account automatically. -To understand the AWS Credentials usage, please refer to the [`prerequisites/README.md`](.github/prerequisites/README.md). +To understand the AWS Credentials usage for GitHub Actions auth, please refer to the [`prerequisites/README.md`](.github/prerequisites/README.md). -## Special thanks :gift: +## Special thanks 🎁 -- Thanks to all contributors of the great OpenSource projects that I am using.
+- Huge shout-out to [pepperize/cdk-organizations](https://github.com/pepperize/cdk-organizations) for the Custom AWS-CDK Constructs that are provided for managing this project. -## Author :musical_keyboard: +## Author 🎹 ### Santiago Garcia Arango diff --git a/assets/aws-cdk-organizations-demo-cicd.drawio b/assets/aws-cdk-organizations-demo-cicd.drawio new file mode 100644 index 0000000..9b1ae46 --- /dev/null +++ b/assets/aws-cdk-organizations-demo-cicd.drawio @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/aws-cdk-organizations-demo-cicd.png b/assets/aws-cdk-organizations-demo-cicd.png new file mode 100644 index 0000000..ecb6d32 Binary files /dev/null and b/assets/aws-cdk-organizations-demo-cicd.png differ diff --git a/assets/aws-cdk-organizations-demo.drawio b/assets/aws-cdk-organizations-demo.drawio new file mode 100644 index 0000000..df8780e --- /dev/null +++ b/assets/aws-cdk-organizations-demo.drawio @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/aws-cdk-organizations-demo.png b/assets/aws-cdk-organizations-demo.png new file mode 100644 index 0000000..7b35daf Binary files /dev/null and b/assets/aws-cdk-organizations-demo.png differ