Skip to content

Latest commit

 

History

History
131 lines (81 loc) · 5.21 KB

README.md

File metadata and controls

131 lines (81 loc) · 5.21 KB

license test-and-build

Overview

krossboard-ui is the user interface component of Krossboard.

Key features of Krossboard:

  • Multi-Kubernetes Data Collection: Periodically collecting raw metrics related to containers, pods and nodes from several Kubernetes source clusters. By design, the data collection period is 5 minutes.
  • Powerful Analytics Processing: Internally process raw metrics to produce insightful Kubernetes usage accounting and analytics metrics. By design, these analytics metrics are handled on a hourly-basis, for every namespace, cluster, and also globally.
  • Insightful Usage Accounting: Periodically process usage accounting, for each cluster and cluster's namespace. In the current implementation, the accounting is handled by design for the following period: daily for the 14 last days, monthly for the 12 last months.
  • REST API: Exposes the generated analytics data to third-party systems. For example, Krossboard UI consumes this API to produce its charts and dashboards.
  • Easy to deploy: Krossboard can be easily deployed through a virtual machine on-premises or on public clouds. In a close future, it's expected to be deployed through a Kubernetes operator. It can be set up to automatically discover and handle Kubernetes clusters backed by Amazon EKS, Google GKE, Microsoft AKS.

krossboard-architecture-overview

Getting Started with Krossboard

Development Setup for Krossboard UI

As prerequisites, the following tools must be properly installed:

Node.js environment can be checked with the following command line:

> node --version
v12.16.2

To ease with Node.js installation, you can use nvm, a version manager for Node.js, designed to be installed per-user, and invoked per-shell.

Once installed, you can then configure the Node.js environment this way:

> nvm install 12.16.2
Now using node v12.16.2 (npm v6.14.4)

Initialization

Install all the dependencies required by the project by typing the following command line (this can take a while):

> yarn
...
✨  Done in 33.90s.

Start "develop" mode

In develop mode, you'll need a backend to serve the data on port 1519. A mocked one is available by typing the following command:

> yarn start-server

Then launch the front with the following command:

> yarn develop

Open http://localhost:1234.

Build project

> yarn build

Generated files are then available in the dist folder.

Commits

The project follow Conventional Commits, a set of rules regarding how you should commit your code to bring you the great benefit.

ℹ The type of the commits are used to determine the next version of the product following semantic versionning.

For this, rules are enforced by a pre-commit hook mananaged by husky.

Release

The process of releasing the product is managed by standard-version.

The tool is responsible to establish the next release version based on the commits from the previous release made, then bump this version in the package.json file and finally tag the repository.

ℹ The version contained in the package.json is the previous one (the last available one).

Perform the release is pretty straight-forward:

> yarn release

⚠️ For the very first release, the following command line must be exected instead:

> yarn release --first-release

ℹ Note that a dry mode is available to test the release process safely:

> yarn release --dry-run

Open to Contributions

We encourage feedback and always make our best to handle any issues as fast as possible.

Don't hesitate to submit a issue or make a feature request.

All contributions, including, code and documentation, are accepted under the terms of GNU Affero General Public License.

Read the code of conduct to learn more about our contribution guideline.

StackShare