Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/2-alchemists/krossboard-ui
User Interface for Krossboard - A Leading Mult-cluster, Cross-Cloud & Cross-Distribution Kubernetes Usage Accounting & Analytics. Actively tested against Amazon EKS, Microsoft AKS, Google GKE, Red Hat OpenShift, & vanilla distros.
https://github.com/2-alchemists/krossboard-ui
cloud cost-optimization kubernetes
Last synced: 2 months ago
JSON representation
User Interface for Krossboard - A Leading Mult-cluster, Cross-Cloud & Cross-Distribution Kubernetes Usage Accounting & Analytics. Actively tested against Amazon EKS, Microsoft AKS, Google GKE, Red Hat OpenShift, & vanilla distros.
- Host: GitHub
- URL: https://github.com/2-alchemists/krossboard-ui
- Owner: 2-alchemists
- License: agpl-3.0
- Created: 2020-04-15T17:50:35.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-04-03T19:42:04.000Z (9 months ago)
- Last Synced: 2024-08-01T13:36:50.113Z (5 months ago)
- Topics: cloud, cost-optimization, kubernetes
- Language: TypeScript
- Homepage: https://krossboard.app
- Size: 1.29 MB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Code of conduct: CODE-OF-CONDUCT.md
Awesome Lists containing this project
- awesome-ccamel - 2-alchemists/krossboard-ui - User Interface for Krossboard - A Leading Mult-cluster, Cross-Cloud & Cross-Distribution Kubernetes Usage Accounting & Analytics. Actively tested against Amazon EKS, Microsoft AKS, Google GKE, Red Hat OpenShift, & vanilla distros. (TypeScript)
README
![license](https://img.shields.io/github/license/2-alchemists/krossboard-ui.svg?label=License&style=for-the-badge)
[![test-and-build]()](https://github.com/2-alchemists/krossboard-ui/actions/workflows/build.yml)
---# Overview
`krossboard-ui` is the user interface component of [Krossboard](https://github.com/2-alchemists/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](https://github.com/2-alchemists/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](krossboard-architecture-overview.png)
## Getting Started with Krossboard
* [Setup Krossboard for Multi-Cloud or Cross-Kubernetes Distributions](https://krossboard.app/docs/60_deploy-for-cross-cloud-and-on-premises-kubernetes/)
* [Setup Krossboard for Amazon EKS](https://krossboard.app/docs/50_deploy-for-amazon-eks/)
* [Setup Krossboard for Azure AKS](https://krossboard.app/docs/30_deploy-for-azure-aks/)
* [Setup Krossboard for Google GKE](https://krossboard.app/docs/20_deploy-for-google-gke/)## Development Setup for Krossboard UI
As prerequisites, the following tools must be properly installed:
* [Node.js](https://nodejs.org/en/download/) LTS v12.16.2 - codename `Erbium` (including [npm](https://www.npmjs.com/) v6.14.4)
* [yarn](https://yarnpkg.com/lang/en/)[Node.js][Node.js] environment can be checked with the following command line:
```sh
> node --version
v12.16.2
```To ease with [Node.js][Node.js] installation, you can use [nvm](https://github.com/nvm-sh/nvm), a version manager for [Node.js][Node.js], designed to be installed per-user, and invoked per-shell.
Once installed, you can then configure the [Node.js][Node.js] environment this way:
```sh
> 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):
```sh
> 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:
```sh
> yarn start-server
```Then launch the front with the following command:
```sh
> yarn develop
```Open `http://localhost:1234`.
### Build project
```sh
> yarn build```
Generated files are then available in the `dist` folder.
### Commits
The project follow [Conventional Commits](https://www.conventionalcommits.org/), 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](https://github.com/typicode/husky).
### Release
The process of releasing the product is managed by [standard-version](https://github.com/conventional-changelog/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:
```sh
> yarn release
```⚠️ For the very first release, the following command line must be exected instead:
```sh
> yarn release --first-release
```ℹ Note that a dry mode is available to test the release process safely:
```sh
> yarn release --dry-run
```[Node.js]: https://nodejs.org/
# 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](LICENSE.md).
Read the [code of conduct](CODE-OF-CONDUCT.md) to learn more about our contribution guideline.
[![StackShare](http://img.shields.io/badge/tech-stack-0690fa.svg?style=flat)](https://stackshare.io/2alchemists/krossboard)