Skip to content

Commit 2fc57f9

Browse files
committed
updated readme
1 parent b7e29a3 commit 2fc57f9

File tree

1 file changed

+17
-43
lines changed

1 file changed

+17
-43
lines changed

README.md

Lines changed: 17 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ things safe and efficient. You'll get the results back in no time.
5454
- Backend: `https://127.0.0.1:443/`
5555
- To check if it works, you can use `curl -k https://127.0.0.1/api/v1/k8s-limits`, should return JSON with current limits
5656
- Grafana: `http://127.0.0.1:3000` (login - `admin`, pw - `admin123`)
57-
57+
5858

5959
You may also find out that k8s doesn't capture metrics (`CPU` and `Memory` params are `null`), it may well be that metrics server
6060
for k8s is turned off/not enabled. To enable, execute:
@@ -63,9 +63,9 @@ kubectl create -f https://raw.githubusercontent.com/pythianarora/total-practice/
6363
```
6464

6565
and test output by writing `kubectl top node` in console, should output sth like:
66-
```
67-
PS C:\Users\User\Desktop\Integr8sCode> kubectl top node
68-
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
66+
```
67+
PS C:\Users\User\Desktop\Integr8sCode> kubectl top node
68+
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
6969
docker-desktop 267m 3% 4732Mi 29%
7070
```
7171

@@ -77,7 +77,7 @@ docker-desktop 267m 3% 4732Mi 29%
7777
You can check correctness of start by running a sample test script:
7878
1. Open website at `https://127.0.0.1:5001/`, go to Editor
7979
2. In code window, paste following code:
80-
```python
80+
```python
8181
from typing import TypeGuard
8282

8383
def is_string(value: object) -> TypeGuard[str]:
@@ -97,8 +97,8 @@ example_function("hello")
9797
example_function([1, 2, 3])
9898
```
9999

100-
First, select `>= Python 3.10` and run script, will output:
101-
```
100+
First, select `>= Python 3.10` and run script, will output:
101+
```
102102
Status: completed
103103
Execution ID: <some hex number>
104104
Output:
@@ -107,8 +107,8 @@ Output:
107107
Something else
108108
```
109109

110-
Then, select `< Python 3.10` and do the same:
111-
```
110+
Then, select `< Python 3.10` and do the same:
111+
```
112112
Status: completed
113113
Execution ID: <some other hex number>
114114
Output:
@@ -117,51 +117,25 @@ Output:
117117
^
118118
SyntaxError: invalid syntax
119119
```
120-
This shows that pods with specified python versions are creating and working as expected. Btw, the latter throws error
120+
This shows that pods with specified python versions are creating and working as expected. Btw, the latter throws error
121121
cause `match-case` was introduced first in `Python 3.10`.
122122

123123
</details>
124124

125125

126126
## Architecture Overview
127127

128-
> [!WARNING]
129-
> Detailed, up-to-date architecture diagrams are in [this file](files_for_readme/ARCHITECTURE_IN_DETAILS.md).
128+
> [!TIP]
129+
> Full documentation is available at https://hardmax71.github.io/Integr8sCode/
130130
131131
<img src="./files_for_readme/system_diagram.png" alt="system diagram">
132132

133133
The platform is built on three main pillars:
134134

135-
- **Frontend**: A sleek Svelte app that users interact with.
136-
- **Backend**: Powered by FastAPI, Python, and MongoDB to handle all the heavy lifting.
137-
- **Kubernetes Cluster**: Each script runs in its own pod, ensuring isolation and resource control.
138-
139-
## Kubernetes Integration
140-
141-
### Pod Setup
142-
143-
- **Docker Image**:Lightweight Python image with just what we need is used.
144-
- **Isolation**: Every script gets its own pod for security and reliability.
145-
- **Cleanup**: Once your script is done, the pod goes away to keep things tidy.
146-
147-
### Resource Management
148-
149-
> [!TIP]
150-
> By limiting resources, we ensure fair usage and prevent any single script from hogging the system.
151-
152-
- **CPU & Memory Limits**: Each pod has caps to prevent overuse (128 Mi for RAM and 1000m for CPU).
153-
- **Timeouts**: Scripts can't run forever—they'll stop after a set time (default: 5s).
154-
- **Disk Space**: Limited to prevent excessive storage use.
155-
156-
> You can find actual limits in dropdown above execution output.
157-
158-
### Security Considerations
159-
160-
> [!CAUTION]
161-
> Running user-provided code is risky. We take security seriously to protect both our system and other users.
162-
163-
- **Network Restrictions**: Pods can't make external network calls.
164-
- **No Privileged Access**: Pods run without elevated permissions.
135+
- Frontend: A sleek Svelte app that users interact with.
136+
- Backend: Powered by FastAPI, Python, and MongoDB to handle all the heavy lifting.
137+
- Kubernetes Cluster: Each script runs in its own pod, ensuring isolation and resource control.
165138

166-
139+
## License
167140

141+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

0 commit comments

Comments
 (0)