Skip to content

Commit 1726109

Browse files
Merged all the changes: Authors: @LorenzoTettamanti @PranavVerma-droid
2 parents 7ef0133 + d51ee7d commit 1726109

26 files changed

+1011
-283
lines changed

.github/auto-reviewer-assign.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
reviewers:
2+
- name: LorenzoTettamanti
3+

.github/workflows/auto-assign.yml

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,43 @@ on:
44
types: [opened]
55
pull_request:
66
types: [opened]
7+
78
jobs:
8-
run:
9+
pr-assigner:
10+
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository
911
runs-on: ubuntu-latest
1012
permissions:
11-
issues: write
1213
pull-requests: write
14+
15+
steps:
16+
- name: "Pull Request issue assigner"
17+
uses: pozil/auto-assign-issue@v1
18+
with:
19+
repo-token: ${{ secrets.GITHUB_TOKEN }}
20+
assignees: LorenzoTettamanti
21+
numOfAssignee: 1
22+
23+
generic-issue-assigner:
24+
if: github.event_name == 'issues'
25+
runs-on: ubuntu-latest
26+
permissions:
27+
issues: write
1328
steps:
14-
- name: 'Auto-assign issue'
15-
uses: pozil/auto-assign-issue@v1
16-
with:
29+
- name: "Issue assigner"
30+
uses: pozil/auto-assign-issue@v1
31+
with:
1732
repo-token: ${{ secrets.GITHUB_TOKEN }}
1833
assignees: LorenzoTettamanti
19-
numOfAssignee: 1
34+
35+
cli-issue-assigner:
36+
if: github.event_name == 'issues' && github.event.action == 'labeled' && github.event.issue.labels.name == 'cortexflow cli'
37+
runs-on: ubuntu-latest
38+
permissions:
39+
issues: write
40+
steps:
41+
- name: "Cli issue assigner"
42+
uses: pozil/auto-assign-issue@v1
43+
44+
with:
45+
repo-token: ${{ secrets.GITHUB_TOKEN }}
46+
assignees: LorenzoTettamanti,PranavVerma-droid
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
name: auto-reviewer-assign
2+
3+
on:
4+
pull_request:
5+
types: [opened, review_requested, ready_for_review, reopened]
6+
7+
jobs:
8+
auto-reviewer-assign:
9+
runs-on: ubuntu-latest
10+
permissions:
11+
pull-requests: write
12+
13+
steps:
14+
- name: Checkout code
15+
uses: actions/checkout@v2
16+
- name: Assign reviewers
17+
uses: johnmanjiro13/auto-reviewer-assign@v0.2.0
18+
with:
19+
token: ${{secrets.GITHUB_TOKEN}}

.gitignore

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,4 +168,9 @@ kafka.rs
168168
node-debugger.yaml
169169
notes.txt
170170
dev-notes.txt
171-
skbuff.rs
171+
skbuff.rs
172+
admission-webhook.yaml
173+
certificate-manager.yaml
174+
client-deployment.yaml
175+
dns-deployment.yaml
176+
proxy-injector.yaml

Doc/docs/index.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,10 @@ You can see the development stage of every component here:
99

1010
| **Component** | **Stage** | **Latest Commit** | **Referring Branch** |**Related Milestone**
1111
|---------------------|--------------------------|-------------------|-----------------------|-----------------------|
12-
| **Dashboard** | Under development | [![GitHub last commit](https://img.shields.io/github/last-commit/CortexFlow/CortexBrain?style=flat-square&logo=github&color=success)](https://github.com/CortexFlow/CortexBrain/commits/feature/frontend) | `feature frontend` | CortexBrain v 0.1.0 Launch |
13-
| **Client** | Under development | [![GitHub last commit](https://img.shields.io/github/last-commit/CortexFlow/CortexBrain?style=flat-square&logo=github&color=success)](https://github.com/CortexFlow/CortexBrain/commits/core) | `feature/core` | CortexBrain core v 0.1.0 |
14-
| **Proxy** | Under development | [![GitHub last commit](https://img.shields.io/github/last-commit/CortexFlow/CortexBrain?style=flat-square&logo=github&color=success)](https://github.com/CortexFlow/CortexBrain/commits/core) | `feature/core` | CortexBrain core v 0.1.0 |
15-
| **Controller** | Under development | [![GitHub last commit](https://img.shields.io/github/last-commit/CortexFlow/CortexBrain?style=flat-square&logo=github&color=success)](https://github.com/CortexFlow/CortexBrain/commits/core) | `feature/core` | CortexBrain core v 0.1.0 |
16-
| **CLI** | ❌ Not started yet || `feature/cli` | CortexBrain CLI v .0.1 |
17-
| **Identity Service** | ❌ Not started yet ||| CortexBrain core v 0.1.0 |
12+
| **Dashboard** | Under development | [![GitHub last commit](https://img.shields.io/github/last-commit/CortexFlow/CortexBrain?style=flat-square&logo=github&color=success)](https://github.com/CortexFlow/CortexBrain/commits/feature/frontend) | `feature/frontend` | CortexBrain v 0.1.0 Launch |
13+
| **Identity Service** | Under development | [![GitHub last commit](https://img.shields.io/github/last-commit/CortexFlow/CortexBrain?style=flat-square&logo=github&color=success)](https://github.com/CortexFlow/CortexBrain/commits/feature/ebpf-core) | `feature/ebpf-core` | CortexBrain core v 0.1.0 |
14+
| **Agent** | Under development | [![GitHub last commit](https://img.shields.io/github/last-commit/CortexFlow/CortexBrain?style=flat-square&logo=github&color=success)](https://github.com/CortexFlow/CortexBrain/commits/core) | `feature/core` | CortexBrain core v 0.1.0 |
15+
| **CLI** | Under development |[![GitHub last commit](https://img.shields.io/github/last-commit/CortexFlow/CortexBrain?style=flat-square&logo=github&color=success)](https://github.com/CortexFlow/CortexBrain/commits/feature/cli) | `feature/cli` | CortexBrain CLI v .0.1 |
1816

1917
## An Introduction to Service Mesh
2018

Doc/docs/installation/installation.md

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,27 @@
11
!!! warning
22
CortexFlow is currently under active development and, therefore, is not yet available to the public for production use. If you are a developer and would like to contribute or try out CortexFlow, feel free to reach out to us.
33

4-
## Install from source
4+
## Guided Installation
5+
CortexFlow provides a command line interface (CLI) to dynamically interact with all the CortexBrain services.
6+
Once you have installed the CLI you can run the following command to install **all** the CortexBrain components
7+
``` bash
8+
cfcli install -e kubernetes
9+
```
10+
If you prefer to install a single component you can use the command:
11+
``` bash
12+
cfcli install component <component-name> -e kubernetes
13+
```
14+
15+
!!! note
16+
CortexFlow aims to expand the current CortexBrain stack to support other container
17+
orchestrator in the future
18+
19+
For a more comprehensive guide and internals you can read the [command list]() in the [CLI section]() #TODO: add links here
20+
21+
## Manual Installation
522
To get started with CortexBrain, follow these steps:
623

7-
- **Clone the Repository**: First, clone the repository to your local machine.
24+
- **Clone** the repository to your local machine.
825

926
```bash
1027
git clone https://github.com/CortexFlow/CortexBrain.git
@@ -16,13 +33,16 @@ To get started with CortexBrain, follow these steps:
1633
| **CortexBrain Core** | - Kubernetes or Minikube v1.34.0 <br> - Linux Ubuntu system (preferred for development) <br> - Rust programming language (rustc >= 1.83.0)|
1734
| **CortexBrain Dashboard** | - npm v10.7.0 <br> - React v18.2.0 <br> - Electron v33.2.0 |
1835

19-
## **Core Development**
36+
# Getting Started (for developers)
37+
Actually CortexBrain hosts two major projects the **Core** and the **Dashboard**. Being open-source empowers CortexFlow ecosystem to naturally evolve and adapt to the latest challenges. If you are interested in mantaining the CortexFlow ecosystem or collaborate on a feature with the team below there's a detailed guide to get started.
38+
39+
## **Core Development (Minikube)**
2040
1. Install Rust using RustUp tools :
2141
```bash
2242
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
2343
```
2444
2. Install [Docker](https://www.docker.com/get-started/)
25-
3. Install [Minikube](https://minikube.sigs.k8s.io/docs/start/?arch=%2Fwindows%2Fx86-64%2Fstable%2F.exe+download)
45+
3. Install [Minikube](https://minikube.sigs.k8s.io/docs/start/?arch=%2Fwindows%2Fx86-64%2Fstable%2F.exe+download)
2646
4. Run minikube
2747
```bash
2848
minikube start

README.md

Lines changed: 74 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,51 @@
11
# CortexBrain © 2025
22

3-
[![Release](https://img.shields.io/badge/Release-Currently%20under%20development-red?style=flat-square&logo=github)](https://github.com/CortexFlow/CortexBrain/releases)
4-
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg?style=flat-square&logo=open-source-initiative&logoColor=white)](./LICENSE)
5-
[![Documentation](https://img.shields.io/badge/Documentation-Available-brightgreen?style=flat-square&logo=readthedocs&logoColor=white)](https://www.cortexflow.org/doc/)
6-
[![Trello](https://img.shields.io/badge/Trello-Project%20Management-%23026AA7.svg?style=flat-square&logo=Trello&logoColor=white)](https://trello.com/invite/b/66c731aab6030598aef7aed3/ATTIdfd7d08e42dca6f8b56a8b26f499ab8c95EB547E/cortexbrain)
7-
[![Docker](https://img.shields.io/badge/Docker-Containerized-%232496ED.svg?style=flat-square&logo=docker&logoColor=white)](https://www.docker.com)
8-
[![Kubernetes](https://img.shields.io/badge/Kubernetes-Orchestrator-%23326CE5.svg?style=flat-square&logo=Kubernetes&logoColor=white)](https://kubernetes.io)
9-
[![Discussions](https://img.shields.io/github/discussions/CortexFlow/CortexBrain?style=flat-square&logo=github-discussions&logoColor=white)](https://github.com/CortexFlow/CortexBrain/discussions)
10-
[![Contributors](https://img.shields.io/badge/Contributors-Welcome-brightgreen?style=flat-square&logo=github&logoColor=white)](https://github.com/CortexFlow/CortexBrain#contributing)
11-
12-
[![Dev.To](https://img.shields.io/badge/dev.to-Community-%23326CE5.svg?style=flat-square&logo=Dev.To&logoColor=white)](https://dev.to/cortexflow)
13-
14-
15-
![alt text](app.png)
3+
<p align="center">
4+
<a href="https://github.com/CortexFlow/CortexBrain/releases">
5+
<img src="https://img.shields.io/badge/Release-Currently%20under%20development-red?style=flat-square&logo=github" alt="Release">
6+
</a>
7+
<a href="./LICENSE">
8+
<img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg?style=flat-square&logo=open-source-initiative&logoColor=white" alt="License">
9+
</a>
10+
<a href="https://www.cortexflow.org/doc/">
11+
<img src="https://img.shields.io/badge/Documentation-Available-brightgreen?style=flat-square&logo=readthedocs&logoColor=white" alt="Documentation">
12+
</a>
13+
<a href="https://www.docker.com">
14+
<img src="https://img.shields.io/badge/Docker-Containerized-%232496ED.svg?style=flat-square&logo=docker&logoColor=white" alt="Docker">
15+
</a>
16+
<a href="https://kubernetes.io">
17+
<img src="https://img.shields.io/badge/Kubernetes-Orchestrator-%23326CE5.svg?style=flat-square&logo=Kubernetes&logoColor=white" alt="Kubernetes">
18+
</a>
19+
<a href="https://github.com/CortexFlow/CortexBrain/discussions">
20+
<img src="https://img.shields.io/github/discussions/CortexFlow/CortexBrain?style=flat-square&logo=github-discussions&logoColor=white" alt="Discussions">
21+
</a>
22+
<a href="https://github.com/CortexFlow/CortexBrain#contributing">
23+
<img src="https://img.shields.io/badge/Contributors-Welcome-brightgreen?style=flat-square&logo=github&logoColor=white" alt="Contributors">
24+
</a>
25+
<a href="https://dev.to/cortexflow">
26+
<img src="https://img.shields.io/badge/dev.to-Community-%23326CE5.svg?style=flat-square&logo=Dev.To&logoColor=white" alt="Dev.To">
27+
</a>
28+
</p>
29+
30+
31+
32+
![alt text](https://www.cortexflow.org/app.png)
1633

1734
## 📬Contacts
1835

1936
- **Tettamanti Lorenzo** [📧 lorenzotettamanti5@gmail.com](mailto:lorenzotettamanti5@gmail.com)
2037

2138
- **Lorenzo Bradanini** [📧 lorenzolollobrada@gmail.com](mailto:lorenzolollobrada@gmail.com)
2239

23-
# 🧑‍💻What is CortexBrain?
40+
# ℹ️ What is CortexBrain?
2441
**CortexBrain** is an ambitious open-source project aimed at creating an intelligent, lightweight, and efficient architecture to connect cloud and edge devices seamlessly.
2542
By leveraging the power of eBPF, CortexBrain can successfully manage **networking** and **observability** in a distributed cluster, limiting resource waste and improving overall performance.
2643

2744
The linux in-kernel verifier (BPF Verifier) ensures that all the programs are safe to run and a JIT compiler converts the bytecode to CPU architecture specific for native execution efficiency. CortexBrain can observe and trace network events such as **ingress** (incoming) and **egress** (outgoing) connections, apply policies, and distribute traffic among different backends directly at **kernel level** by attaching the programs in different hooks such as TC (traffic control) and XDP hooks. All the intercepted events are successfully notified in the user space thanks to BPF maps.
2845

29-
Comprehensive information about CortexBrain’s core architecture, installation, and practical applications is available in the [official documentation](https://docs.cortexflow.org/) and on the [CortexFlow blog](https://blog.cortexflow.org/).
46+
Comprehensive information about CortexBrain’s core architecture, installation, and practical applications is available in the [Official Documentation](https://docs.cortexflow.org/) and on the [CortexFlow blog](https://blog.cortexflow.org/).
3047

31-
# ⚛️ **Current Development Focus**
48+
# **🧑🏻‍🔬 Current Development Focus**
3249

3350
Our current development efforts are dedicated to the following key improvements:
3451

@@ -42,13 +59,31 @@ Our current development efforts are dedicated to the following key improvements:
4259

4360
# 🤖 Getting Started
4461

45-
CortexBrain is still in its development stages, so you can expect some bugs. Contributions and feedback are highly appreciated to help improve the project! 🚀
46-
Below there's a guide to get started
62+
> <p align="center"> ⚠️ CortexBrain is still in its development stages, so you can expect some bugs. Contributions and feedback are highly appreciated to help improve the project!
63+
</p>
64+
65+
## 🥷 Installation (for users)
66+
CortexBrain provides a simple installation for users thanks to his command line interface
67+
68+
- Install the CLI using cargo
69+
```bash
70+
cargo install cortexflow-cli
71+
```
72+
You can find the installation guide in the [official documentation](https://docs.cortexflow.org)
73+
- Install CortexBrain components:
74+
```bash
75+
cfcli install -- --env kubernetes
76+
```
77+
- List all the installed services:
78+
```bash
79+
cfcli service list
80+
```
81+
82+
4783

48-
## 🥷 Installation
49-
To get started with CortexBrain, follow these steps:
84+
## 🥷 Installation (for developers and contributors)
5085

51-
- **Clone the Repository**: First, clone the repository to your local machine.
86+
- **Clone the Repository**: First, clone the repository to your local machine.
5287

5388
```bash
5489
git clone https://github.com/CortexFlow/CortexBrain.git
@@ -58,44 +93,44 @@ To get started with CortexBrain, follow these steps:
5893

5994
| **Feature** | **Requirements** |
6095
| ------------------------- | -------------------------------------------------------------------------------- |
61-
| **CortexBrain Core** | - Kubernetes or Minikube v1.34.0 <br> - Linux Ubuntu system (preferred for development) <br> - Rust programming language (rustc >= 1.83.0)|
96+
| **CortexBrain Core** | - Kubernetes or Minikube v1.34.0 <br> - Linux Ubuntu system (mandatory for core development) <br> - Rust programming language (rustc >= 1.85.0)|
6297
| **CortexBrain Dashboard** | - npm v10.7.0 <br> - React v18.2.0 <br> - Electron v33.2.0 |
6398

64-
- ## **Core Development:**
65-
1. Install Rust using RustUp tools :
99+
## **⚛️ Core Development:**
100+
- Install Rust using RustUp tools :
66101
```bash
67102
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
68103
```
69-
2. Install [Docker](https://www.docker.com/get-started/)
70-
3. Install [Minikube](https://minikube.sigs.k8s.io/docs/start/?arch=%2Fwindows%2Fx86-64%2Fstable%2F.exe+download)
71-
4. Run minikube
104+
- Install [Docker](https://www.docker.com/get-started/)
105+
- Install [Minikube](https://minikube.sigs.k8s.io/docs/start/?arch=%2Fwindows%2Fx86-64%2Fstable%2F.exe+download) or any other local kubernetes environment
106+
- Run minikube (or your local environment)
72107
```bash
73108
minikube start
74109
```
75-
5. Run the installation script:
110+
- Run the installation script:
76111
```bash
77112
cd Scripts
78113
./install.sh
79114
```
80-
- ## **Dashboard Development:**
81-
1. Install [Node.js](https://nodejs.org/en/download)
82-
2. Open the dashboard folder and install the required packages
115+
- ## **📈 Dashboard Development:**
116+
- Install [Node.js](https://nodejs.org/en/download)
117+
- Open the dashboard folder and install the required packages
83118
```bash
84119
cd dashboard
85120
npm install
86121
```
87-
3. Run the local development server
122+
- Run the local development server
88123
```bash
89124
npm start
90125
```
91126

92127

93128
# 💪🏻 Contributing
94-
Do you think the project is missing something? Contributing is the best way to show your skills and leave your mark in a project
95-
If you have knowledge in DevOps/Kubernetes or Networks please write an email to lorenzotettamanti5@gmail.com
129+
Do you think the project is missing something? Contributing is the best way to show your skills and leave your mark in a project.
130+
If you have knowledge in DevOps/Kubernetes, networking, security or you really enjoy maintaining a repository please write an email to lorenzotettamanti5@gmail.com
96131
| **Role** | **Skills** | **Tasks** | **Related Issues and Milestones** |
97132
| ------------------------- | ------------------------------------------------------------------------- | --------------- |--------|
98-
| **CortexBrain Core Developer** | - Kubernetes <br> - Networks <br> - Rust programming language | - Work alongside us to build and optimize the core functionalities (Client,DNS,Proxy,Telemetry,etc..) <br> | - [Rust](https://github.com/CortexFlow/CortexBrain/labels/rust) <br> - [Core](https://github.com/CortexFlow/CortexBrain/milestone/1)
133+
| **CortexBrain Core Developer** | - Kubernetes <br> - Networks <br> - Rust programming language | - Work alongside us to build and optimize the core functionalities (Client,DNS,Proxy,Telemetry,etc..) <br> | - [Rust](https://github.com/CortexFlow/CortexBrain/labels/rust) <br> - [Core](https://github.com/CortexFlow/CortexBrain/milestone/1) <br> - [eBPF](https://github.com/CortexFlow/CortexBrain/labels/ebpf)
99134
| **CortexBrain Dashboard Developer** | - React <br> - Frontend Development <br> - Javascript/TypeScript | - Work alongside us to design and improve the dashboard <br> | [Javascript](https://github.com/CortexFlow/CortexBrain/labels/javascript)
100135
| **General Mantainers** | - Github <br> - Practical organition <br> - Documentation | - Keep the repository organized and clean <br> - Write/Update documentation <br> - Spot typos in the repository | - [Documentation](https://github.com/CortexFlow/CortexBrain/labels/documentation) <br> - [question](https://github.com/CortexFlow/CortexBrain/labels/question)
101136
| **Code Reviewers/Testers** | - Rust <br> - Javascript/TypeScript <br> - Kubernetes <br> - Docker | - Review code and suggest changes/optimizations <br> - Write tests for CI/CD | [Code refactoring](https://github.com/CortexFlow/CortexBrain/labels/code%20refactoring)
@@ -104,10 +139,10 @@ If you have knowledge in DevOps/Kubernetes or Networks please write an email to
104139
## 🤖 How to Contribute?
105140
We welcome contributions from the community! To contribute to the project, please follow these steps:
106141

107-
1. Fork the repository.
108-
2. Check out [Contributing Best Practices](https://github.com/CortexFlow/CortexBrain/blob/main/CONTRIBUTING.md)
109-
3. Create a new branch for your feature (`git checkout -b feature/feature-name`).
110-
4. Submit a Pull Request with a detailed explanation of your changes.
142+
- Fork the repository.
143+
- Check out [Contributing Best Practices](https://github.com/CortexFlow/CortexBrain/blob/main/CONTRIBUTING.md)
144+
- Create a new branch for your feature (`git checkout -b feature/feature-name`).
145+
- Submit a Pull Request with a detailed explanation of your changes.
111146

112147
## 🙋**Proposing New Features**
113148

0 commit comments

Comments
 (0)