You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -7,7 +7,9 @@ Can scaffold and maintain your cloud solution on top of Cloudharness without wri
7
7
Kubernetes templates, with in place common utilities and applications already configured for you.
8
8
9
9
What building your cloud solution with CloudHarness gives to you:
10
+
10
11
- Common framework and utilities to develop and deploy micro-service application
12
+
11
13
- Helm chart automatic generation
12
14
- deployments
13
15
- services
@@ -23,11 +25,13 @@ What building your cloud solution with CloudHarness gives to you:
23
25
- databases (postgreql)
24
26
- access gatekeepers configuration
25
27
- secrets and configmaps
28
+
26
29
* Automatic build and push of images
27
30
* REST-API scaffolding building based on OpenApi
28
31
* Continuous deployment script generation
29
32
* Debug backend applications running on Kubernetes
30
33
* Python cluster access utilities
34
+
31
35
* Prebuilt support applications and shared library to:
32
36
* Log in and user management - based on Keycloak
33
37
* Submit batch and asynchronous workflows - based on Argo
@@ -43,17 +47,18 @@ What building your cloud solution with CloudHarness gives to you:
43
47
44
48
The microservice architecture is a great to get code separation and flexible development, but may not be of easy implementation, especially for small development teams/projects.
45
49
In particular, these questions may rise:
46
-
- How do I create a deployment for my microservices?
47
-
- How do I orchestrate my microservices?
48
-
- How to create consistent api documentation?
49
-
- Do I need to be an experienced devops to create a micro-service based application?
50
-
- Wouldn't it be nice to develop a plain database/backend/frontend application without infrastructure boilerplate but still be able to configure everything I want when needed?
51
-
- How to run batch operations like ETL processes easily and efficiently in a cloud environment?
52
-
- How to manage databases without being locked to a specific vendor solution?
53
-
- How to perform database backups?
54
-
- How to manage secret data?
55
-
- What about having a precounfigured account management application?
56
-
- Sooner rather than later I'll need an orchestration queue. Why not have that just ready to use?
50
+
51
+
- How do I create a deployment for my microservices?
52
+
- How do I orchestrate my microservices?
53
+
- How to create consistent api documentation?
54
+
- Do I need to be an experienced devops to create a micro-service based application?
55
+
- Wouldn't it be nice to develop a plain database/backend/frontend application without infrastructure boilerplate but still be able to configure everything I want when needed?
56
+
- How to run batch operations like ETL processes easily and efficiently in a cloud environment?
57
+
- How to manage databases without being locked to a specific vendor solution?
58
+
- How to perform database backups?
59
+
- How to manage secret data?
60
+
- What about having a precounfigured account management application?
61
+
- Sooner rather than later I'll need an orchestration queue. Why not have that just ready to use?
57
62
58
63
# Command line tools
59
64
@@ -63,30 +68,34 @@ CloudHarness provides the following command line tools to help application scaff
63
68
*`harness-application` - create a new CloudHarness REST application.
64
69
*`harness-generate` - generates server and client code for all CloudHarness REST applications.
65
70
*`harness-test` - run end to end tests
66
-
71
+
67
72
# Get started
68
73
69
74
## Prerequisites
70
75
71
76
### Operative system
72
77
73
78
Cloudharness can be used on all major operative systems.
79
+
74
80
- Linux: supported and tested
75
81
- MacOS: supported and tested
76
82
- Windows/WSL2: supported and tested
77
83
- Windows native: mostly working, unsupported
78
84
79
85
### Python
80
-
Python 3.9 must be installed.
86
+
87
+
Python 3.10 must be installed.
81
88
82
89
It is recommended to setup a virtual environment.
83
90
With conda:
91
+
84
92
```bash
85
-
conda create --name ch python=3.12
93
+
conda create --name ch python=3.10
86
94
conda activate ch
87
95
```
88
96
89
97
### Docker
98
+
90
99
[Docker](https://www.docker.com) is required to build locally.
91
100
92
101
### Kubernetes command line client
@@ -110,6 +119,7 @@ conda activate ch
110
119
A node environment with npm is required for developing web applications and to run end to end tests.
111
120
112
121
Recommended:
122
+
113
123
- node >= v14.0.0
114
124
- npm >= 8.0.0
115
125
@@ -120,26 +130,183 @@ A JRE is needed to run the code generators based on openapi-generator.
120
130
For more info, see [here](https://openapi-generator.tech/docs/installation).
121
131
122
132
## CloudHarness command line tools
133
+
123
134
To use the cli tools, install requirements first:
124
135
125
136
```bash
126
137
bash install.sh
127
138
```
128
-
### Generate deployment
129
-
130
-
To generate a deployment, run `harness-deployment`. See [below](#Deployment) for more.
131
139
132
140
### Create new REST application
133
-
To create a new REST application, run `harness-application` from the root of your solution.
141
+
142
+
`harness-application` is a command-line tool used to create new applications based on predefined code templates. It allows users to quickly scaffold applications with backend, frontend, and database configurations.
143
+
144
+
#### harness-application Usage
145
+
146
+
```sh
147
+
harness-application [name] [-t TEMPLATE]
148
+
```
149
+
150
+
#### harness-application Arguments
151
+
152
+
-`name`*(required)* – The name of the application to be created.
153
+
154
+
#### harness-application Options
155
+
156
+
-`-h, --help` – Displays the help message and exits.
157
+
-`-t TEMPLATES, --template TEMPLATES` – Specifies one or more templates to use when creating the application.
158
+
159
+
#### Available Templates
160
+
161
+
The following templates can be used with the `-t` flag:
162
+
163
+
-**flask-server** – Backend Flask server based on OpenAPI.
164
+
-**webapp** – Full-stack React web application with both frontend and backend.
165
+
-**db-postgres** – PostgreSQL database setup.
166
+
-**db-neo4j** – Neo4j database setup.
167
+
-**db-mongo** – MongoDB database setup.
168
+
-**django-fastapi** – FastAPI and Django backend based on OpenAPI.
169
+
-**django-ninja** – Django Ninja backend.
170
+
171
+
#### harness-application Examples
172
+
173
+
##### Create a New Flask-Based Microservice Application
174
+
175
+
```sh
176
+
harness-application myapp
177
+
```
178
+
179
+
##### Create a Full-Stack Web Application
180
+
181
+
```sh
182
+
harness-application myapp -t webapp
183
+
```
184
+
185
+
##### Create a Web Application with Mongo Database
186
+
187
+
```sh
188
+
harness-application myapp -t webapp -t db-mongo
189
+
```
190
+
191
+
##### Display Help Information
192
+
193
+
```sh
194
+
harness-application --help
195
+
```
196
+
197
+
#### harness-application Notes
198
+
199
+
- Multiple templates can be specified concatenating the -t parameter.
200
+
- The tool generates the necessary scaffolding for the chosen templates.
201
+
- Ensure you have the required dependencies installed before running the generated application.
202
+
- For more information, run `harness-application --help` or check out the additional documentation:
To (re)generate the code for your applications, run `harness-generate` from the root.
137
-
The script will look for all openapi applications, and regenerate the Flask server code and documentation.
138
-
Note: the script will eventually override any manually modified file. To avoid that, define a file openapi-generator-ignore.
207
+
208
+
To (re)generate the code for your applications, run `harness-generate`.
209
+
`harness-generate` is a command-line tool used to generate client code, server stubs, and model libraries for applications. It walks through the filesystem inside the `./applications` folder to create and update application scaffolding. The tool supports different generation modes and allows for both interactive and non-interactive usage.
0 commit comments