Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/manusa/yakd
Yet Another Kubernetes Dashboard - spin off of YAKC Dashboard demo project
https://github.com/manusa/yakd
dashboard kubernetes kubernetes-dashbo kubernetes-monitoring kubernetes-ui
Last synced: about 2 hours ago
JSON representation
Yet Another Kubernetes Dashboard - spin off of YAKC Dashboard demo project
- Host: GitHub
- URL: https://github.com/manusa/yakd
- Owner: manusa
- License: apache-2.0
- Created: 2023-06-05T13:52:20.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-06-26T14:11:45.000Z (3 months ago)
- Last Synced: 2024-06-27T05:45:26.020Z (3 months ago)
- Topics: dashboard, kubernetes, kubernetes-dashbo, kubernetes-monitoring, kubernetes-ui
- Language: JavaScript
- Homepage:
- Size: 9.09 MB
- Stars: 25
- Watchers: 3
- Forks: 2
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# YAKD - Yet Another Kubernetes Dashboard
[![Docker Image Version (latest semver)](https://img.shields.io/docker/v/marcnuri/yakd)](https://hub.docker.com/r/marcnuri/yakd)
[![Docker Pulls](https://img.shields.io/docker/pulls/marcnuri/yakd)](https://hub.docker.com/r/marcnuri/yakd)Kubernetes Dashboard built with [Quarkus](https://quarkus.io) and [React](https://www.reactjs.org).
## Click to see a complete demo of the Dashboard
[![An gif screencast of YAKD Kubernetes Dashboard](docs/yakd-kubernetes-dashboard.gif)](https://www.youtube.com/watch?v=Dum84fwA8_g)
## Getting started
### Minikube
If you just want to try out the final project, the easiest way is to try it out in Minikube.
```shell script
# Enable the YAKD minikube addon
minikube addons enable yakd
# Open Browser and navigate to deployed application
minikube service yakd-dashboard -n yakd-dashboard
```In case that you're running an older Minikube version (or any other k8s cluster - needs access to node),
or you want to deploy the latest
[released snapshot](https://hub.docker.com/r/marcnuri/yakd)
you can deploy the application using the provided Kubernetes manifests:```shell script
# Deploy the application using https://hub.docker.com/r/marcnuri/yakd SNAPSHOT
kubectl create -f https://raw.githubusercontent.com/manusa/yakd/main/docs/yakd-kubernetes-dashboard.minikube.yml
# Open Browser and navigate to deployed application
minikube service yakd
```### OpenShift Instruqt
You can test YAKD Kubernetes Dashboard by taking advantage of the OpenShift getting started Instruqt.
Access the Course (from Red Hat): https://developers.redhat.com/courses/openshift/getting-started
When the terminal loads, apply the provided YAKD Kubernetes Dashboard configuration:
```shell script
#
# Deploy the application using https://hub.docker.com/r/marcnuri/yakd SNAPSHOT
#
$ oc create -f https://raw.githubusercontent.com/manusa/yakd/main/docs/yakc-kubernetes-dashboard.openshift-4.yml
service/yakc-quarkus-kubernetes-dashboard created
clusterrolebinding.rbac.authorization.k8s.io/yakc-kubernetes-dashboard-cluster-admin created
deployment.apps/yakc-quarkus-kubernetes-dashboard created
route.route.openshift.io/yakc-quarkus-kubernetes-dashboard created
#
# Retrieve URL for created route (should be ready once the YAKD Pod is running and ready)
#
$ echo "http://$(oc get route yakd -o jsonpath='{.spec.host}')"
http://yakd-default.crc-lgph7-master-0.crc.q1aebzewtnbc.instruqt.io
```Now you can open the URL in your browser.
## Build
To build the whole project (Front-end & Back-end), the easiest way is to run the Maven build with
the provided profile `build-frontend`.```shell script
# Build project
$ mvn clean package -Pbuild-frontend
```### Native image
Build the application using the `native` property.
```shell script
# On Windows first you need to run this
$ "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" && mvn clean install -Pnative
# To build (You can combine with the front-end build profiles)
$ mvn clean package -Dnative
```#### (Windows) Install vc build tools
```shell script
$ choco install -y visualstudio2017community --no-progress --package-parameters "--add Microsoft.VisualStudio.Component.VC.Tools.ARM64 --add Microsoft.VisualStudio.Component.VC.CMake.Project"
```## Build & Deploy to Minikube using Maven
Follow these instructions if you want to build & deploy the project into a Kubernetes Cluster, in
this case Minikube.```shell script
# Provide access to Minikube's Docker daemon (allows to skip pushing the generated image)
$ eval $(minikube docker-env)
# Build and deploy project
$ mvn clean install -Pbuild-frontend,k8s
# Open Browser and navigate to deployed application
$ minikube service yakc-dashboard
```This will also add a role binding for the default service account to the cluster-admin role in the
`default` namespace. In case you are working on a different namespace you can customize this
value by providing a value for the `k8s.namespace` project property:```shell script
# Build and deploy project to custom namespace
$ mvn clean install -Pbuild-frontend,k8s -Dk8s.namespace=custom
```## Development
You can work on the project with hot reload by starting both applications separately.
### Back-End
The back-end application is a Quarkus application, you can start it in development mode by:
```shell script
$ mvn quarkus:dev
```### Front-End
You can find the React client application in the [`src/main/frontend`](src/main/frontend)
directory.```shell script
# Install required dependencies
$ npm install
# Start development mode
$ npm start
```You can point your browser to [localhost:3000](http://localhost:3000).