Skip to content

Kubero V3 refactoring #619

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 164 commits into
base: release/v3.0.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
164 commits
Select commit Hold shift + click to select a range
d7f583a
Template / Add Silverbullet
mms-gianni Jan 20, 2025
5132056
Template / Add Textbee
mms-gianni Jan 27, 2025
2e44dd9
Add a delay of 2 seconds before triggering image build if app uses g…
mms-gianni Jan 28, 2025
18e7ce3
init kubero v3 refactoring
mms-gianni Jan 31, 2025
e0a84d3
Update package.json and main.ts to use port 2000 for compatibility w…
mms-gianni Jan 31, 2025
5ba11dd
serve static client
mms-gianni Jan 31, 2025
b567546
add and start a websocket
mms-gianni Jan 31, 2025
ba31b7e
(WIP) add initial auth function
mms-gianni Feb 1, 2025
fe1c146
Merge pull request #621 from kubero-dev/refactoring/add-authentication
mms-gianni Feb 1, 2025
9a69d4b
(WIP) add basic swagger config
mms-gianni Feb 1, 2025
af26235
add swagger Server and Auth
mms-gianni Feb 1, 2025
7570649
add basic routes
mms-gianni Feb 1, 2025
6f413c1
add basic modules
mms-gianni Feb 2, 2025
613d81a
init settings module
mms-gianni Feb 2, 2025
d27cc36
WIP settings module
mms-gianni Feb 3, 2025
0d61eae
mark migrated types
mms-gianni Feb 3, 2025
87fad09
migrate templates, pipeline, apps and kubectl
mms-gianni Feb 4, 2025
ba268f8
improve logging, connect to kubernetes
mms-gianni Feb 5, 2025
a3a2a29
make settings readable
mms-gianni Feb 5, 2025
7486575
add some settings endpoints
mms-gianni Feb 6, 2025
f7b8693
make kubernetes a global module
mms-gianni Feb 7, 2025
c51876e
add Addons and Pipeline
mms-gianni Feb 7, 2025
bbde7be
Migrate templates
mms-gianni Feb 7, 2025
5e57db1
Migrate templates
mms-gianni Feb 7, 2025
0b5bf42
migrate activy view
mms-gianni Feb 7, 2025
92ab455
migrated pipeline form
mms-gianni Feb 7, 2025
f52b808
migrated notifications and pipelines partialy
mms-gianni Feb 8, 2025
46fac46
migrated app overview
mms-gianni Feb 9, 2025
5c0580a
security fix Polynomial regular expression
mms-gianni Feb 9, 2025
6a60f73
migrate logs and deployments
mms-gianni Feb 10, 2025
4b72c97
add some dto for kubernetes controller
mms-gianni Feb 10, 2025
e17c5b8
add helmet and cors
mms-gianni Feb 11, 2025
c199183
migration, add pipeline endpoints
mms-gianni Feb 11, 2025
c092b68
migrate repo connection
mms-gianni Feb 11, 2025
c8ce39b
move contexts to kubernetes subpath
mms-gianni Feb 11, 2025
833a77b
Refactor console.log statements to use logger methods in Git-related…
mms-gianni Feb 12, 2025
81adf4a
migrated Apps
mms-gianni Feb 12, 2025
79827e4
performace improvements
mms-gianni Feb 12, 2025
e272755
migration fix PR App cards match
mms-gianni Feb 12, 2025
5ce9f85
Migrate Template Download
mms-gianni Feb 12, 2025
b412b1a
Migrate app restart
mms-gianni Feb 12, 2025
644972f
improve code structure
mms-gianni Feb 13, 2025
65a9117
migrate app update
mms-gianni Feb 13, 2025
3af52d5
migrate vulnerability scans
mms-gianni Feb 13, 2025
381a332
Migration: linting
mms-gianni Feb 13, 2025
f3e9728
fix logs socket
mms-gianni Feb 13, 2025
8ee3040
improve API docs
mms-gianni Feb 13, 2025
dcd99b7
Migrated container console
mms-gianni Feb 13, 2025
1008ac2
Migrate build Jobs
mms-gianni Feb 14, 2025
75f71dc
Potential fix for code scanning alert no. 205: Uncontrolled data used…
mms-gianni Feb 14, 2025
d1b27fc
Migrate Metrics
mms-gianni Feb 15, 2025
aea52ff
Merge branch 'main-refactored' of github.com:kubero-dev/kubero into m…
mms-gianni Feb 15, 2025
6dfdcef
Migrate auth page
mms-gianni Feb 15, 2025
2568c76
migrate to JWT based authentication
mms-gianni Feb 16, 2025
908ac4f
Migrate to JWT Authentication
mms-gianni Feb 19, 2025
fe8199d
show error with wrong credentials
mms-gianni Feb 19, 2025
b668fdf
migrate github authentication
mms-gianni Feb 20, 2025
f575299
rename settings to config
mms-gianni Feb 20, 2025
0eb349e
load auth methods dynamicöy
mms-gianni Feb 20, 2025
26e69c0
Migrate setup
mms-gianni Feb 21, 2025
826fda0
add anonymous strategy
mms-gianni Feb 21, 2025
9b99b3c
add auth methods
mms-gianni Feb 21, 2025
b3ecd8d
make authentication optional
mms-gianni Feb 23, 2025
87b182d
some cleanup
mms-gianni Feb 23, 2025
e764a09
some more cleanup
mms-gianni Feb 23, 2025
270256c
Use ENV var for user access
mms-gianni Feb 23, 2025
8e5bdae
linting
mms-gianni Feb 24, 2025
838040c
fix docker image build
mms-gianni Feb 24, 2025
332c35e
remove ENV helper
mms-gianni Feb 24, 2025
a9c7378
add config route
mms-gianni Feb 25, 2025
822edc5
Bump prismjs from 1.29.0 to 1.30.0 in /client
dependabot[bot] Mar 10, 2025
fd3af7f
Merge branch 'main' into main-refactored
mms-gianni Mar 20, 2025
928a93c
merge version 2.4.7 into v3.0.0
mms-gianni Mar 19, 2025
dc56935
fix plugin object
mms-gianni Mar 20, 2025
1e4b72d
fix kubero UI version
mms-gianni Mar 20, 2025
ea15fb4
fix version loading
mms-gianni Mar 20, 2025
c6803c2
Merge pull request #613 from kubero-dev/template/add-textbee
mms-gianni Apr 15, 2025
c33d73d
improve action
mms-gianni Apr 15, 2025
3dbd9e0
Merge branch 'main' into main-refactored
mms-gianni Apr 15, 2025
7312dcb
use build dirs with nixpacks
mms-gianni Apr 15, 2025
3ffd3a1
fix minor lintings
mms-gianni Apr 15, 2025
c36ebb2
change notification/trigger order
mms-gianni Apr 15, 2025
c01ffa3
Merge pull request #615 from kubero-dev/feature/build-directory
mms-gianni Apr 15, 2025
854934b
Merge pull request #636 from kubero-dev/release/v2.4.7
mms-gianni Apr 15, 2025
ee9d22b
use default context for config
mms-gianni Apr 16, 2025
fec4ddf
Refactor buildpacks. Rename to runpacks
mms-gianni Apr 16, 2025
8f75eca
Update triggerImageBuild function to trigger Image build with a 2 se…
mms-gianni Apr 16, 2025
eed0857
#634 addresses docker.io push issues
mms-gianni Apr 17, 2025
7d5802c
migrate templates for build job creation
mms-gianni Apr 17, 2025
450d20d
Refactor authentication service to use bcrypt for secure password ha…
mms-gianni Apr 17, 2025
ded2a38
upgrade neko to v3
m1k1o Apr 20, 2025
6ecdf26
Merge pull request #628 from kubero-dev/dependabot/npm_and_yarn/clien…
mms-gianni May 15, 2025
4cfdf54
fix repo path
mms-gianni May 16, 2025
6b524c1
disable JWT Authentication, since this path is secured by a 'secret'
mms-gianni May 16, 2025
d86ec7b
docs: fix broken link to Documentation
IlyaSemenov May 17, 2025
640b09a
Merge pull request #641 from IlyaSemenov/fix/readme-link-docs
mms-gianni May 18, 2025
7d6c79f
add heroku magic
mms-gianni May 19, 2025
8605517
Merge pull request #638 from m1k1o/patch-1
mms-gianni May 19, 2025
47e52ee
add a little shaker, when login failed
mms-gianni May 19, 2025
b20a052
linting
mms-gianni May 20, 2025
c9cfff7
add ignore to 'fix' some linting errors :D
mms-gianni May 20, 2025
31fd84b
fix some jest tests. still a long way to go
mms-gianni May 19, 2025
b4b8f24
add some tests
mms-gianni May 20, 2025
34b2952
linting
mms-gianni May 20, 2025
f88a575
fix bigbucket typo
mms-gianni May 20, 2025
b336538
Merge pull request #607 from kubero-dev/template/add-silverbullet
mms-gianni May 21, 2025
30abc9d
fix final tests
mms-gianni May 21, 2025
922ed00
add jest job
mms-gianni May 21, 2025
a89f6ac
fix ci path
mms-gianni May 21, 2025
63a2c73
set working dir
mms-gianni May 21, 2025
c7ece10
set working dir
mms-gianni May 21, 2025
9bb3a18
set working dir
mms-gianni May 21, 2025
ca508b6
set working dir
mms-gianni May 21, 2025
a7c9677
Merge branch 'main' into main-refactored
mms-gianni May 22, 2025
c0dd7af
fix reports path
mms-gianni May 21, 2025
d826ee9
fix reports path
mms-gianni May 21, 2025
30a8095
run jest test report
mms-gianni May 22, 2025
2ffa517
rename test
mms-gianni May 22, 2025
e37b240
run jest test report
mms-gianni May 22, 2025
a604def
rename test
mms-gianni May 22, 2025
7d67f07
Merge branch 'main' into main-refactored
mms-gianni May 22, 2025
f24a23b
run report in same action
mms-gianni May 22, 2025
b8af49c
add result to PR
mms-gianni May 22, 2025
691745e
configure reports
mms-gianni May 22, 2025
fffb61e
create a summary
mms-gianni May 22, 2025
ca6e132
fix coverage path
mms-gianni May 22, 2025
62a95a2
add junit xml path
mms-gianni May 22, 2025
dd3e076
add permission to comment on PR
mms-gianni May 22, 2025
c1ee61c
add and improve tests
mms-gianni May 22, 2025
d3f4f3d
linting
mms-gianni May 23, 2025
46562df
remove debug log
mms-gianni May 23, 2025
214a6e2
add some more tests
mms-gianni May 23, 2025
782e415
add codecov action
mms-gianni May 23, 2025
311bb5c
add codecov action
mms-gianni May 23, 2025
79d6fc9
Update Codecov workflow to include the correct directory for coverag…
mms-gianni May 23, 2025
2c5d736
Merge branch 'main' into main-refactored
mms-gianni May 23, 2025
621321c
Add lcov coverage reporter to package.json.
mms-gianni May 23, 2025
b530833
Update the Jest test command to remove the ":ci" suffix and improve …
mms-gianni May 23, 2025
f13e88d
add codecov badge
mms-gianni May 23, 2025
7ffd10e
add some more tests
mms-gianni May 23, 2025
9da9626
update readme
mms-gianni May 25, 2025
0507c4e
add prometheus endpoint
mms-gianni May 25, 2025
423a9cd
fix tests
mms-gianni May 25, 2025
f373cb6
Merge pull request #643 from kubero-dev/feature/add-metricd-endpoint-…
mms-gianni May 25, 2025
74c5116
add apps meterics
mms-gianni May 25, 2025
31b5dc0
Merge branch 'main-refactored' of github.com:kubero-dev/kubero into m…
mms-gianni May 26, 2025
9af5f8c
fix tests and use gauge instead of counter
mms-gianni May 25, 2025
3a264df
avoid metrics beeing called from outside of the cluster
mms-gianni May 25, 2025
e27da8e
disable test, since nestjs is special
mms-gianni May 26, 2025
b0b5a58
add a missing route
mms-gianni May 26, 2025
ef1fb1e
add tests for auth controller
mms-gianni May 26, 2025
0981ee2
Add createPRApp, deletePRApp, triggerImageBuildDelayed, getTemplate,…
mms-gianni May 26, 2025
3aab352
delete kubero backend v2
mms-gianni May 26, 2025
7b408e9
move refactored to server dir
mms-gianni May 26, 2025
38671de
fix image size
mms-gianni May 26, 2025
a8bfea1
cleanup and minor fixes
mms-gianni May 26, 2025
6850b2b
improve Add-ons
mms-gianni May 27, 2025
c179bb6
fix Percona MongoDB Operator Naming
mms-gianni May 27, 2025
d1a742b
remove debug messages
mms-gianni May 27, 2025
8b6368f
use older mysql version as default
mms-gianni May 29, 2025
252591a
upgrade server packages
mms-gianni May 29, 2025
5b28cb4
upgrade client packages
mms-gianni May 29, 2025
3b0a5a8
migrate read only mode
mms-gianni May 31, 2025
1609af9
Merge pull request #647 from kubero-dev/migrate/readonly-mode
mms-gianni May 31, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
**/node_modules_AAAA
**/node_modules
Dockerfile
.dockerignore
.git
Expand All @@ -9,4 +9,4 @@ docker-compose.*
kind.*
.eslintrc.js
README.md
**/dist_AAAAA
**/dist
2 changes: 1 addition & 1 deletion .github/workflows/docker-prerelease.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ jobs:
# https://github.com/docker/build-push-action
- name: Build and push Docker image
id: kubero-build-and-push
uses: docker/build-push-action@v5
uses: docker/build-push-action@v6
with:
context: .
push: true
Expand Down
20 changes: 20 additions & 0 deletions .github/workflows/jest-codecov.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: 'Jest Codecov'
on:
workflow_dispatch:
defaults:
run:
working-directory: ./server
jobs:
codecov:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4 # checkout the repo
- name: Install dependencies # install dependencies
run: yarn install --frozen-lockfile
- run: yarn build # install packages
- run: yarn test # run tests (configured to use jest-junit reporter)
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v5
with:
directory: server/coverage
token: ${{ secrets.CODECOV_TOKEN }}
29 changes: 29 additions & 0 deletions .github/workflows/jest-pr.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: 'Jest PR Test'
on:
pull_request:
workflow_dispatch:
permissions:
pull-requests: write
defaults:
run:
working-directory: ./server
jobs:
build-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4 # checkout the repo
- name: Install dependencies # install dependencies
run: yarn install --frozen-lockfile
- run: yarn build # install packages
- run: yarn test:ci # run tests (configured to use jest-junit reporter)
- name: Jest Coverage Comment
uses: MishaKav/jest-coverage-comment@main
with:
coverage-summary-path: server/coverage/coverage-summary.json
junitxml-path: server/reports/jest-junit.xml
- uses: actions/upload-artifact@v4 # upload test results
if: ${{ !cancelled() }} # run this step even if previous step failed
with:
name: test-results # Name of the check run which will be created
path: server/reports/jest-junit.xml
reporter: jest-junit # Format of test results
20 changes: 20 additions & 0 deletions .github/workflows/jest-report.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: 'Jest Test Report'
on:
workflow_run:
workflows: ['Jest PR Test'] # runs after 'Jest PR Test' workflow
types:
- completed
permissions:
contents: read
actions: read
checks: write
jobs:
report:
runs-on: ubuntu-latest
steps:
- uses: dorny/test-reporter@v2
with:
artifact: test-results # artifact name
name: JEST Tests # Name of the check run which will be created
path: '*.xml' # Path to test results (inside artifact .zip)
reporter: jest-junit # Format of test results
13 changes: 10 additions & 3 deletions .github/workflows/stargazers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,21 @@ jobs:
name: 'stargazers'
runs-on: ubuntu-latest
steps:
- name: 💌 Send email, you star
- name: Send email
uses: dawidd6/action-send-mail@v1.3.0
with:
server_address: smtp.gmail.com
server_port: 465
username: ${{ secrets.GMAIL_USER }}
password: ${{ secrets.GMAIL_PASS }}
subject: Your a star ✨
body: ${{ github.actor }} just starred your mail-on-star repo!!! ${{ github.repository }}
subject: ${{ github.event.repository.stargazers_count }} ✨ ${{ github.actor }} stared ${{ github.repository }}
body: |
${{ github.actor }} just starred your mail-on-star repo!!!
${{ github.event.repository.html_url }}
Forks: ${{ github.event.repository.forks_count }}
Stars: ${{ github.event.repository.stargazers_count }}
Issues: ${{ github.event.repository.open_issues_count }}

${{ github.repository }}
to: ${{ secrets.GMAIL_ADDRESS }}
from: ${{ secrets.GMAIL_ADDRESS }}
27 changes: 16 additions & 11 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,22 @@ Willing to contribute something, but you don't know where to start? Have a look
5. Open a PR

## Techstack
**Infrastructure**
- [Kubernetes](https://kubernetes.io/)
- [Operator SDK](https://sdk.operatorframework.io/)
- [Helm (Operator)](https://helm.sh/)
- [Kind (Development)](https://kind.sigs.k8s.io/)

**Code**
- [Express](https://expressjs.com/)
- [TypeScript](https://www.typescriptlang.org/)
- [Vue.js](https://vuejs.org/)
- [Vuetify](https://vuetifyjs.com/en/)
- Backend
- [NestJS](https://nestjs.com/)
- [TypeScript](https://www.typescriptlang.org/)
- [Jest](https://jestjs.io/)
- Frontend
- [Vue.js](https://vuejs.org/)
- [Vuetify](https://vuetifyjs.com/en/)
- CLI
- [Go](https://golang.org/)
- [Cobra](https://cobra.dev/)
- Operator
- [Operator SDK](https://sdk.operatorframework.io/)
- [Helm](https://helm.sh/)
- Infrastructure
- [Kubernetes](https://kubernetes.io/)
- [Kind (Development)](https://kind.sigs.k8s.io/)


## Development setup for the Kubero UI
Expand Down
13 changes: 7 additions & 6 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@ COPY server ./server
RUN cd /build/server && \
yarn install
RUN cd /build/server && \
yarn build && \
yarn swaggergen
yarn build

## Client
COPY client ./client
Expand All @@ -18,7 +17,7 @@ RUN cd /build/client && \
RUN cd /build/client && \
yarn build

FROM build AS release
FROM node:22-alpine AS release
ARG VERSION=unknown

LABEL maintainer='www.kubero.dev'
Expand All @@ -30,13 +29,15 @@ WORKDIR /app/

COPY --from=build /build/server/dist /app/server
COPY --from=build /build/server/package.json /app/server/package.json
COPY --from=build /build/server/src/modules/templates /app/server/modules/templates
COPY --from=build /build/server/src/deployments/templates /app/server/deployments/templates
COPY --from=build /build/server/node_modules /app/server/node_modules
COPY --from=build /build/server/swagger.json /app/swagger.json

# temporary fix for the public folder
COPY --from=build /build/server/dist/public /app/server/public


RUN echo -n $VERSION > /app/server/VERSION

WORKDIR /app/server

CMD [ "node", "index.js" ]
CMD [ "node", "main" ]
67 changes: 40 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,40 +4,36 @@

[![License](https://img.shields.io/github/license/kubero-dev/kubero?style=flat-square&color=blue")](https://github.com/kubero-dev/kubero/blob/main/LICENSE)
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/kubero-dev/kubero?style=flat-square&color=brightgreen)](https://github.com/kubero-dev/kubero/releases/latest)
[![codecov](https://codecov.io/github/kubero-dev/kubero/branch/main-refactored/graph/badge.svg?token=3J3CWUXG5Z&style=flat-square)](https://codecov.io/github/kubero-dev/kubero)
[![Discord](https://img.shields.io/discord/1051249947472826408?style=flat-square)](https://discord.gg/tafRPMWS4r)
[![GitHub (Pre-)Release Date](https://img.shields.io/github/release-date-pre/kubero-dev/kubero?style=flat-square)](https://github.com/kubero-dev/kubero/releases/latest)
[![Demo](https://img.shields.io/badge/demo-up-sucess?style=flat-square&color=blue)](https://demo.kubero.dev)

Kubero [pronounced: Kube Hero] is a self-hosted PaaS (Platform as a Service) that allows any developer to deploy their application on Kubernetes without specialized knowledge. Kubero follows the principles of 12-factor apps. It is possible to run apps based on existing containers or from source code.

> [!NOTE]
> Kubero v3.0.0 is on the way!
>
> We're gearing up for the Kubero v3.0.0 release! 🎉 This major update features a rewritten backend, now powered by NestJS, bringing best practices and maintainability.

![](https://raw.githubusercontent.com/kubero-dev/docs/refs/heads/main/static/assets/screenshots/createapp.gif)

More [Screenshots](https://www.kubero.dev/docs/screenshots) and a full video on
[YouTube](https://www.youtube.com/watch?v=kmqhddc6UlI)

## Features ([DEMO](https://demo.kubero.dev))
- **CI/CD Pipelines:** Create unlimited pipelines with up to 4 separate staging environments for all your applications.
- **GitOps Review Apps:** Automatically build, start, and clean up review apps when opening or closing pull requests.
- **Automatic Redeployments:** Trigger app redeployments on pushes to branches or tags.
- **Docker Deployments:** Deploy Docker containers on Kubernetes without needing Helm charts.
- **App Templates:** Deploy popular applications like WordPress and Grafana with ready-to-use templates.
- **Add-ons Integration:** Seamlessly deploy add-ons such as PostgreSQL and Redis alongside your applications.
- **API & CLI:** Integrate seamlessly with existing tools and CI/CD workflows.
- **Metrics & Monitoring:** Access integrated metrics to monitor application health.
- **Notifications:** Get build and deployment updates via Discord, Slack, or Webhooks.
- **Vulnerability Scans:** Perform scheduled or triggered scans for running applications.
- **Application Logs:** View logs directly from the web UI for easy monitoring.
- **Safe Restarts:** Restart applications safely and easily through the web UI.
- **Web Console:** Use the built-in container web console for direct access.
- **Scheduled Tasks:** Easily create and manage cronjobs.
- **Multi-Tenancy:** Support for managing multiple tenants.
- **Single Sign-On (SSO):** Authenticate securely with GitHub and OAuth2.
- **Basic Auth:** Configure Basic Auth for your applications with ease.
- **CI/CD Pipelines** <br> Create unlimited pipelines with up to 4 separate staging environments for all your applications.
- **GitOps Review Apps** <br> Automatically build, start, and clean up review apps when opening or closing pull requests.
- **Automatic Redeployments** <br> Trigger app redeployments on pushes to branches or tags.
- **Docker Deployments** <br> Deploy Docker containers on Kubernetes without needing Helm charts.
- **App Templates** <br> Deploy popular applications like WordPress and Grafana with ready-to-use templates.
- **Add-ons Integration** <br> Seamlessly deploy add-ons such as PostgreSQL and Redis alongside your applications.
- **API & CLI** <br> Integrate seamlessly with existing tools and CI/CD workflows.
- **Metrics & Monitoring** <br> Access integrated metrics to monitor application health.
- **Notifications** <br> Get build and deployment updates via Discord, Slack, or Webhooks.
- **Vulnerability Scans** <br> Perform scheduled or triggered scans for running applications.
- **Application Logs** <br> View logs directly from the web UI for easy monitoring.
- **Safe Restarts** <br> Restart applications safely and easily through the web UI.
- **Web Console** <br> Use the built-in container web console for direct access.
- **Scheduled Tasks** <br> Easily create and manage cronjobs.
- **Multi-Tenancy** <br> Support for managing multiple tenants.
- **Single Sign-On (SSO)** <br> Authenticate securely with GitHub and OAuth2.
- **Basic Auth** <br> Configure Basic Auth for your applications with ease.


## Basic Concept
Expand Down Expand Up @@ -134,11 +130,28 @@ Basically *everything* that can be packaged in a single container can be deploye

Kubero starts now building your app. Once the build is complete, Kubero will launch the final container and make it accessible via the configured domain.

## Documentation
https://www.kubero.dev/docs/quickstart

## Roadmap
https://github.com/orgs/kubero-dev/projects/1/views/3
## Techstack

- Backend
- [NestJS](https://nestjs.com/)
- [TypeScript](https://www.typescriptlang.org/)
- [Jest](https://jestjs.io/)
- Frontend
- [Vue.js](https://vuejs.org/)
- [Vuetify](https://vuetifyjs.com/en/)
- CLI
- [Go](https://golang.org/)
- [Cobra](https://cobra.dev/)
- Operator
- [Operator SDK](https://sdk.operatorframework.io/)
- [Helm](https://helm.sh/)
- Infrastructure
- [Kubernetes](https://kubernetes.io/)
- [Kind (Development)](https://kind.sigs.k8s.io/)

## Links
- Documentation https://www.kubero.dev/docs/
- Roadmap https://github.com/orgs/kubero-dev/projects/1/views/3

## Community
[![kubero Discord server Banner](https://discordapp.com/api/guilds/1051249947472826408/widget.png?style=banner2)](https://discord.gg/tafRPMWS4r)
Expand Down
1 change: 1 addition & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
| Version | Supported |
| ------- | ------------------ |
| 2.X.X | :white_check_mark: |
| 2.X.X | EOL 31.03.2025 |
| 1.X.X | EOL 28.09.2024 |
| 0.X.X | |

Expand Down
10 changes: 5 additions & 5 deletions client/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
"private": true,
"license": "GPL-3.0",
"scripts": {
"dev": "vite",
"watch": "vue-tsc --noEmit && vite build --watch",
"run": "vite",
"dev": "vue-tsc --noEmit && vite build --watch",
"build": "vue-tsc --noEmit && vite build",
"preview": "vite preview",
"lint": "eslint . --fix --ignore-path .gitignore"
Expand Down Expand Up @@ -44,8 +44,8 @@
"sass": "^1.60.0",
"typescript": "^5.0.0",
"unplugin-fonts": "^1.0.3",
"vite": "^5.1.8",
"vite-plugin-vuetify": "^1.0.0",
"vue-tsc": "^2.1.0"
"vite": "^6.3.4",
"vite-plugin-vuetify": "^2.1.1",
"vue-tsc": "^2.2.10"
}
}
2 changes: 1 addition & 1 deletion client/src/components/apps/addons.vue
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,7 @@ export default defineComponent({
this.dialog = true;
},
loadStorageClasses() {
axios.get(`/api/config/storageclasses`)
axios.get(`/api/kubernetes/storageclasses`)
.then(response => {
for (let storageClass of response.data) {
this.availableStorageClasses.push({
Expand Down
2 changes: 1 addition & 1 deletion client/src/components/apps/alerts.vue
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ export default {
}, 10000);
},
loadRules() {
axios.get(`/api/rules/${this.pipeline}/${this.phase}/${this.app}`)
axios.get(`/api/metrics/rules/${this.pipeline}/${this.phase}/${this.app}`)
.then(response => {
this.rules = response.data
})
Expand Down
4 changes: 2 additions & 2 deletions client/src/components/apps/appstats.vue
Original file line number Diff line number Diff line change
Expand Up @@ -480,7 +480,7 @@ export default defineComponent({
},
methods: {
loadUptimes() {
axios.get(`/api/uptimes/${this.pipeline}/${this.phase}`)
axios.get(`/api/metrics/uptimes/${this.pipeline}/${this.phase}`)
.then(response => {
this.uptimes = response.data;
this.loadMetrics();
Expand All @@ -491,7 +491,7 @@ export default defineComponent({
},

loadMetrics() {
axios.get(`/api/metrics/${this.pipeline}/${this.phase}/${this.app}`)
axios.get(`/api/metrics/resources/${this.pipeline}/${this.phase}/${this.app}`)
.then(response => {
for (var i = 0; i < response.data.length; i++) {
if (response.data[i].cpu.percentage != null && response.data[i].memory.percentage != null) {
Expand Down
2 changes: 1 addition & 1 deletion client/src/components/apps/buildsform.vue
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ export default defineComponent({
const repoB64 = btoa(this.appData?.spec.gitrepo.ssh_url)
//const provider = this.appData?.spec.gitrepo.provider
const provider = "github" // TODO: FIX: get provider from appData
axios.get(`/api/repo/${provider}/${repoB64}/references/list`)
axios.get(`/api/repo/${provider}/${repoB64}/references`)
.then(response => {
this.references = response.data
})
Expand Down
4 changes: 2 additions & 2 deletions client/src/components/apps/console.vue
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ export default defineComponent({
}),
methods: {
loadPods() {
axios.get(`/api/status/pods/${this.pipeline}/${this.phase}/${this.app}`).then((response) => {
axios.get(`/api/apps/${this.pipeline}/${this.phase}/${this.app}/pods`).then((response) => {
//this.loadContainers();
for (let pod of response.data) {
const p = {name: pod.name, containers: pod.containers.map((c: any) => c.name)} as Pod;
Expand Down Expand Up @@ -258,7 +258,7 @@ export default defineComponent({
});
},
execInContainer(){
axios.post(`/api/console/${this.pipeline}/${this.phase}/${this.app}/exec`, {
axios.post(`/api/apps/${this.pipeline}/${this.phase}/${this.app}/console`, {
podName: this.pod.name,
containerName: this.container,
command: this.command,
Expand Down
Loading
Loading