Skip to content

konstellation-io/kdl-server

Repository files navigation

kdl-server

Konstellation AI Lab, formerly known as kdl-server, is the training server of Konstellation AI.

The main goal of KAI Lab is to provide a user-friendly environment for Data Scientists where they can carry out their experiments. At the same time, it integrates a powerful solution for project management, user environments with GPU capabilities and job management.

Builds

Component Bugs Coverage Maintainability Rating Go report Security
app-api api-report-bugs-badge api-report-coverage-badge api-report-maintain-badge go-report api-report-security-badge
app-ui ui-report-bugs-badge ui-report-coverage-badge ui-report-maintain-badge - ui-report-security-badge
cleaner cleaner-report-bugs-badge cleaner-report-coverage-badge cleaner-report-maintain-badge go-report cleaner-report-security-badge
repo-cloner repo-cloner-report-bugs-badge repo-cloner-report-coverage-badge repo-cloner-report-maintain-badge go-report repo-cloner-report-security-badge

Components

  • app-api: main component of the application, providing API access for other components and managing interactions with MongoDB.
  • app-ui: web application offering the interface for data scientists.
  • backup: Kubernetes cronJob that backs up PostgreSQL and MongoDB databases and stores Kubernetes etcd manifests in AWS S3
  • cleaner: currently unused, potentially slated for deprecation.
  • gitea-oauth2-proxy: in-house solution exposing gitea login page to other pods.
  • gitea: git server mirroring project repositories.
  • minio: s3-compatible object storage, holding artifacts from training jobs; MinIO is installed as a pinned dependency, with only the console deployed through the chart.
  • postgresql: database storing gitea data.
  • project-operator: Kubernetes operator listening to KAI Lab API; on new project creation in the UI, it deploys a project-specific pod with mlflow and file browser.
  • repo-cloner: in-house solution that clones all accessible repositories into the user's user-tools pod.
  • user-tools-operator: Kubernetes operator monitoring kai lab api; each time a user starts or changes runtime in the UI, this operator deploys a pod with vscode server and runtime containers based on selected image.

Matrix compatibility

Note

If component isn't on the matrix, that means it component hasn't dependencies.

Component Dependencies Version Compatibility
app code.gitea.io/sdk/gitea v0.19.0 -
github.com/minio/minio-go/v7 v7.0.78 -
go.mongodb.org/mongo-driver v1.17.1 MongoDB >=3.6, =<7.X
k8s.io/api v0.31.1 Kubernetes >=1.24, =<1.30
k8s.io/apimachinery v0.31.1 Kubernetes >=1.24, =<1.30
k8s.io/client-go v0.31.1 Kubernetes >=1.24, =<1.30
repo-cloner go.mongodb.org/mongo-driver v1.17.1 MongoDB >=3.6, =<7.X
gitea k8s.io/api v0.31.1 Kubernetes >=1.24, =<1.30
k8s.io/apimachinery v0.31.1 Kubernetes >=1.24, =<1.30
k8s.io/client-go v0.31.1 Kubernetes >=1.24, =<1.30

Development

Install our tools and follow the kdlctl guide to deploy your local environment.

GitFlow

We use the GitFlow branching model. Read more about it here.

Documentation

Refer to the docs folder for more information:

Helm Chart

Refer to the kdl-server Helm chart for more information.

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

License

This project is licensed under the MIT License - see the LICENSE file for details.