Skip to content
This repository has been archived by the owner on Apr 17, 2024. It is now read-only.

koor-tech/data-control-center

Repository files navigation

Koor Data Control Center

Nice dashboard and controls for managing Rook Ceph data storage.

Usage

You can install/run the Koor data-control-center as a binary or via the Helm chart in Kubernetes.

Using the Helm chart to run in Kubernetes is the recommended way.

Requirements

  • Rook Ceph version v1.13.0 or higher

Configuration

Checkout the configuration documentation here.

Development

Requirements

  • make installed
  • Golang version 1.21 or higher
  • Node version of at least v16.x
  • yarn for, e.g., yarn dev to preview the frontend, just yarn to install all dependencies (please don't use npm).
  • buf cli installed (you can use make buf to install it to your Go bin path)
  • go-licenses: Run go install github.com/google/go-licenses@latest.
  • prettier is installed when running yarn.

Tasks

  • Generate Protobuf code: make gen-proto
  • Run server: make run-server
  • Installing the frontend dependencies: yarn
  • Run frontend dev server: yarn dev
  • Run type check for frotnend: yarn typecheck

VSCode/Codium Users

  • You can use the built-in debugger to start the "compound" debug group called "All" to have everything ready to start development.

Contributing

To run the server and everything you need to create a copy of the config.example.yaml called config.yaml in the root of the repository. Depending on what you want to develop/contribute to, you might want to update the config.yaml as you need. It is recommended to add an user to the users: list so you can login.

For running the data-control-center a kubeconfig file is currently required. A minikube cluster (extra configuration might be needed) with a Rook Ceph test cluster (manifest) instealld is enough for simple development and testing.

Guidelines

  • Must run go fmt to format the Go code.
  • Must run prettier format on any changed files. For Codium/VSCode users that should automatically be configured due to the settings in .vscode/ folder.
  • ESLint must be used for style checking and formatting.
  • Protobuf files: Must follow the Protobuf Style Guide - buf.
  • Vue components:
  • Use Nuxt3 components/wrappers were it makes sense.
  • Errors for both front- and backend should be clear and concise. E.g., if a request to an external API fails due to a token being invalid/expired "unable to talk with API: invalid/expired auth token".

License

The project is licensed under the MIT License.

Licenses of used libraries, code and media can be found in the src/public/licenses/ folder.