Skip to content

Commit 6e480d4

Browse files
committed
Initial commit
1 parent 6c226f8 commit 6e480d4

File tree

1,899 files changed

+39639
-2
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,899 files changed

+39639
-2
lines changed

.gitignore

Lines changed: 406 additions & 0 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 123 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,123 @@
1-
# cloudexit
2-
Run a cloud exit assessment on your infrastructure to gain insights into the challenges and constraints of a potential cloud exit.
1+
![image](./docs/images/Banner.png)
2+
3+
# Cloud Exit Assessment
4+
5+
**EscapeCloud Platform:** [https://escapecloud.io](https://escapecloud.io/)
6+
7+
**ExitCloud.io (One-Time Assessment):** [https://exitcloud.io](https://exitcloud.io/)
8+
9+
**Read our release blog:**
10+
[https://escapecloud.io/introducing-cloudexit-open-source-for-smoother-cloud-exit-planning/](https://escapecloud.io/introducing-cloudexit-open-source-for-smoother-cloud-exit-planning/)
11+
12+
**Release Date: November 20th, 2024**
13+
14+
cloudexit is an open-source tool that empowers cloud engineers to conduct comprehensive cloud exit assessments. It helps identify and evaluate the risks associated with their cloud environment while providing actionable insights into the challenges and constraints of transitioning away from their current cloud provider. By leveraging EscapeCloud OSS, organizations can better prepare for a potential cloud exit, ensuring a smoother and more informed decision-making process.
15+
16+
## Required Packages
17+
18+
>```bash
19+
># Optional: Set up a virtual environment
20+
>python3 -m venv ./venv
21+
>source venv/bin/activate
22+
>
23+
># Install required dependencies
24+
>python3 -m pip install -r requirements.txt
25+
>```
26+
27+
## Required Permissions
28+
To conduct the risk assessment, the following role assignments or policies must be attached to the generated credentials:
29+
30+
| Cloud Provider | Required Permissions |
31+
| ------------- | ------------- |
32+
| Microsoft Azure | Reader & Cost Management Reader |
33+
| Amazon Web Services | ViewOnlyAccess & AWSBillingReadOnlyAccess |
34+
35+
## Getting Started
36+
37+
Once you have installed the required dependencies, you can use 'cloudexit' interactively via the console or by providing configuration files for a streamlined workflow:
38+
39+
```python
40+
python3 main.py
41+
42+
#Run with a configuration file for AWS:
43+
python3 main.py --config config/aws.json
44+
45+
#Run with a configuration file for Azure:
46+
python3 main.py --config config/azure.json
47+
```
48+
49+
The results are saved in the reports folder. Simply open the index.html file in the newly generated folder.
50+
51+
Each assessment creates a new folder named after its timestamp, containing both raw and standardized data.
52+
53+
## **Config**
54+
The following parameters are common across configuration files for different cloud providers. They define the scope and context of the cloud exit assessment:
55+
### **cloudServiceProvider**
56+
| Cloud Provider | Value |
57+
| ------------- | ------------- |
58+
| Microsoft Azure | 1 |
59+
| Amazon Web Services | 2 |
60+
| Google Cloud Platform | TBD |
61+
| Alibaba Cloud | TBD |
62+
63+
### **exitStrategy**
64+
| Strategy | Value |
65+
| ------------- | ------------- |
66+
| Repatriation to On-Premises | 1 |
67+
| Hybrid Cloud Adoption | TBD |
68+
| Migration to Alternate Cloud | 3 |
69+
70+
### **assessmentType**
71+
| Type | Value |
72+
| ------------- | ------------- |
73+
| Basic | 1 |
74+
| Basic+ | TBD |
75+
76+
### **providerDetails**
77+
AWS Example Configuration:
78+
79+
```
80+
{
81+
"cloudServiceProvider": 2,
82+
"exitStrategy": 3,
83+
"assessmentType": 1,
84+
"providerDetails":{
85+
"accessKey":"AKAAXASJHMTOST9YTLHE",
86+
"secretKey":"",
87+
"region":"eu-central-1"
88+
}
89+
}
90+
```
91+
92+
![image](./docs/images/AWS_Manual.png)
93+
*Manual console input for the required parameters.*
94+
95+
![image](./docs/images/AWS_Config.png)
96+
*Using a configuration file for the required parameters.*
97+
98+
Azure Example Configuration:
99+
```
100+
{
101+
"cloudServiceProvider": 1,
102+
"exitStrategy": 3,
103+
"assessmentType": 1,
104+
"providerDetails":{
105+
"clientId":"a5d7a310-26a4-115f-b679-ca01f0d73b75",
106+
"clientSecret":"",
107+
"tenantId":"38986009-9ded-42b3-b187-55f1cb61560a",
108+
"subscriptionId":"1299bf8a-8ca8-478b-8659-c62e62cd7baa",
109+
"resourceGroupName":"test-project"
110+
}
111+
}
112+
```
113+
114+
![image](./docs/images/Azure_Manual.png)
115+
*Manual console input for the required parameters.*
116+
117+
![image](./docs/images/Azure_Config.png)
118+
*Using a configuration file for the required parameters.*
119+
120+
## Contributing
121+
Contributions are welcome!
122+
123+
Feel free to reach out for any questions or feedback.

0 commit comments

Comments
 (0)