Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/frankyang0529/yunikorn-web

Apache YuniKorn Web UI
https://github.com/frankyang0529/yunikorn-web

Last synced: about 2 months ago
JSON representation

Apache YuniKorn Web UI

Awesome Lists containing this project

README

        

# Yunikorn web UI
YuniKorn web provides a web interface on top of the scheduler. It provides insight in the current and historic scheduler status.
It depends on `yunikorn-core` which encapsulates all the actual scheduling logic.

For detailed information on the components and how to build the overall scheduler please see the [yunikorn-core](https://github.com/apache/yunikorn-core).

This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.3.0.

## Development Environment setup
### Dependencies
The project requires a number of external tools to be installed before the build and development:
- [Node.js](https://nodejs.org/en/)
- [Angular CLI](https://github.com/angular/angular-cli)
- [Karma](https://karma-runner.github.io)
- [pnpm](https://www.npmjs.com/package/pnpm)
- [json-server](https://www.npmjs.com/package/json-server)

To manage our node packages, we've chosen pnpm. Simply execute the command `pnpm install` to set up all necessary dependencies. This single step ensures that your environment is fully prepared with all the required packages.

### Development server

Run `make start-dev` for a development server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files.

## Build

Run `make build` to build the project. The build artifacts will be stored in the `dist/` directory. Use `make build-prod` for a production build.
Production builds will add the `--prod` flag to the angular build.

### Docker image build
Image builds are geared towards a production build and will always build with the `--prod` flag set.

Run `make image` to build the docker image `apache/yunikorn:web-latest`.
Run `make run` to build the image and deploy the container from the docker image `apache/yunikorn:web-latest`.

You can set `REGISTRY`, `VERSION` and `DOCKER_ARCH` in the commandline to build docker image with a specified version, registry and host architecture. For example,
```
make image REGISTRY=apache VERSION=latest DOCKER_ARCH=amd64
```
This command will build binary with version `web-latest` and the docker full image tag is `apache/yunikorn:web-amd64-latest`.

The Makefile is smart enough to detect your host architecture but it will tag the image name.

### Running tests

All tests can be executed via `make test`. It will first build the project and then execute the unit tests followed by the end to end tests.
If you want to run the unit tests separately, run `pnpm test` to execute them via [Karma](https://karma-runner.github.io). If you want to run the unit tests with code coverage, run `pnpm test:coverage`.

## Local development
Beside the simple all in way to start the development server via make you can also start a development environment manually.

The application depends on [json-server](https://www.npmjs.com/package/json-server) for data. Install json-server locally. Run `pnpm start:srv` to start json-server for local development.
Run `pnpm start` to start the angular development server and navigate to `http://localhost:4200/`.

After updating the context in the `json-db.json` or `json-route.json`, checking the json server is available by running `make json-server`.

## Further help
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).

## Code scaffolding
Run `ng generate component component-name` to generate a new component.

You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.

## Port configurations
The default port used for the web server is port 9889. If this conflicts in your dev environment, it can be changed in the Makefile.

## How do I contribute code?
See how to contribute code from [this guide](https://yunikorn.apache.org/community/how_to_contribute).