cloud-dock-cli 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- cloud_dock_cli-0.1.0.dist-info/METADATA +116 -0
- cloud_dock_cli-0.1.0.dist-info/RECORD +9 -0
- cloud_dock_cli-0.1.0.dist-info/WHEEL +4 -0
- cloud_dock_cli-0.1.0.dist-info/entry_points.txt +2 -0
- cloud_dock_cli-0.1.0.dist-info/licenses/LICENSE +674 -0
- clouddock/__init__.py +5 -0
- clouddock/cli.py +270 -0
- clouddock/config.py +221 -0
- clouddock/prompts.py +237 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: cloud-dock-cli
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Interactive CloudDock configuration generator for future Terraform deployment workflows.
|
|
5
|
+
License-File: LICENSE
|
|
6
|
+
Requires-Python: >=3.12
|
|
7
|
+
Requires-Dist: pytest>=9.1.1
|
|
8
|
+
Requires-Dist: pyyaml>=6.0.0
|
|
9
|
+
Requires-Dist: ruff>=0.16.5
|
|
10
|
+
Requires-Dist: typer>=0.12.0
|
|
11
|
+
Description-Content-Type: text/markdown
|
|
12
|
+
|
|
13
|
+
# CloudDock
|
|
14
|
+
|
|
15
|
+
CloudDock is a lightweight configuration generator and orchestration helper for application deployment requirements. In Phase 1, it collects a deployment profile interactively and writes a YAML configuration file that can later be consumed by Terraform. In Phase 2, the `plan` command validates prerequisites, prepares a local Terraform checkout, and runs Terraform planning against the generated configuration.
|
|
16
|
+
|
|
17
|
+
## Phase 1 scope
|
|
18
|
+
|
|
19
|
+
This phase intentionally does not contact AWS or Terraform. It only provides a CLI workflow for:
|
|
20
|
+
|
|
21
|
+
- collecting deployment settings
|
|
22
|
+
- validating user input
|
|
23
|
+
- generating a structured YAML file (`clouddock.yaml`)
|
|
24
|
+
- preparing the configuration model for future Terraform conversion
|
|
25
|
+
|
|
26
|
+
The `deploy` command remains a placeholder and does not run infrastructure commands.
|
|
27
|
+
|
|
28
|
+
## Phase 2: plan command
|
|
29
|
+
|
|
30
|
+
The `clouddock plan` flow performs the following:
|
|
31
|
+
|
|
32
|
+
1. checks for Git, Terraform, and AWS CLI
|
|
33
|
+
2. verifies AWS CLI authentication/configuration with `aws sts get-caller-identity`
|
|
34
|
+
3. ensures `clouddock.yaml` exists in the current working directory
|
|
35
|
+
4. offers to run `clouddock init` if the configuration is missing
|
|
36
|
+
5. clones the Terraform repository into `~/.clouddock/terraform` when needed
|
|
37
|
+
6. copies the current `clouddock.yaml` into the Terraform working directory
|
|
38
|
+
7. runs `terraform init`
|
|
39
|
+
8. runs `terraform plan`
|
|
40
|
+
|
|
41
|
+
The Terraform repository used by CloudDock is:
|
|
42
|
+
|
|
43
|
+
https://github.com/DGclasher/cloud-dock
|
|
44
|
+
|
|
45
|
+
CloudDock does not install Git, Terraform, or AWS CLI automatically. The command expects those system tools to already be available on the machine.
|
|
46
|
+
|
|
47
|
+
## Prerequisites
|
|
48
|
+
|
|
49
|
+
- Python 3.12
|
|
50
|
+
- uv
|
|
51
|
+
- Git
|
|
52
|
+
- Terraform
|
|
53
|
+
- AWS CLI
|
|
54
|
+
|
|
55
|
+
## Installation
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
uv sync
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Running
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
uv run clouddock --help
|
|
65
|
+
uv run clouddock init
|
|
66
|
+
uv run clouddock plan
|
|
67
|
+
uv run clouddock deploy
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Local Terraform working directory
|
|
71
|
+
|
|
72
|
+
CloudDock uses a local working directory under the user home folder:
|
|
73
|
+
|
|
74
|
+
```text
|
|
75
|
+
~/.clouddock/terraform
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
This keeps the Terraform checkout separate from the Python project source tree.
|
|
79
|
+
|
|
80
|
+
## Example generated configuration
|
|
81
|
+
|
|
82
|
+
```yaml
|
|
83
|
+
application:
|
|
84
|
+
name: payment-api
|
|
85
|
+
image: 123456789.dkr.ecr.ap-south-1.amazonaws.com/payment-api:v1
|
|
86
|
+
container_port: 8080
|
|
87
|
+
|
|
88
|
+
regions:
|
|
89
|
+
- ap-south-1
|
|
90
|
+
- ap-southeast-1
|
|
91
|
+
|
|
92
|
+
compute:
|
|
93
|
+
type: ecs
|
|
94
|
+
desired_count: 2
|
|
95
|
+
cpu: 256
|
|
96
|
+
memory: 512
|
|
97
|
+
|
|
98
|
+
database:
|
|
99
|
+
enabled: true
|
|
100
|
+
type: postgres
|
|
101
|
+
|
|
102
|
+
cache:
|
|
103
|
+
enabled: true
|
|
104
|
+
type: redis
|
|
105
|
+
|
|
106
|
+
environment_variables:
|
|
107
|
+
SPRING_PROFILES_ACTIVE: production
|
|
108
|
+
LOG_LEVEL: INFO
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Important notes
|
|
112
|
+
|
|
113
|
+
- Phase 2 checks prerequisites and runs Terraform planning; it does not run `terraform apply`.
|
|
114
|
+
- This phase does not bypass AWS authentication requirements.
|
|
115
|
+
- Environment variables are captured as plain configuration values for now; secret management will be added in a future phase.
|
|
116
|
+
- The CLI only generates configuration and orchestrates local Terraform planning; it does not provision infrastructure.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
clouddock/__init__.py,sha256=bFXbTddRCbQCjyLEd-6W6z3ejVrSNUq3pzRRxCzdcj8,75
|
|
2
|
+
clouddock/cli.py,sha256=AfWmnqIlIldawqxvhEz96RPg9ccAIm3eQfjXYMDBXyc,8674
|
|
3
|
+
clouddock/config.py,sha256=jtfB3iLsvzrhMTvZUJZ5RfvNrw4mOhGbX25rOTea6cE,7077
|
|
4
|
+
clouddock/prompts.py,sha256=uKTlpmYgN54WU_NlPFV86iIiHxdYGZ_4fXQEIiu2FrI,7094
|
|
5
|
+
cloud_dock_cli-0.1.0.dist-info/METADATA,sha256=4GqiyNCOj98ztEOm4Skoacd78qUwgNYhMIjfAAll6S8,3259
|
|
6
|
+
cloud_dock_cli-0.1.0.dist-info/WHEEL,sha256=zOwg4jB6zX2kU910N-cMawjivD6tO8NEWvE12je1bVk,87
|
|
7
|
+
cloud_dock_cli-0.1.0.dist-info/entry_points.txt,sha256=50GEMcJCEVOcJpawdez1b8R1L436aP63b_wqYRt5HBM,48
|
|
8
|
+
cloud_dock_cli-0.1.0.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
9
|
+
cloud_dock_cli-0.1.0.dist-info/RECORD,,
|