Giter Club home page Giter Club logo

yakd's Introduction

YAKD - Yet Another Kubernetes Dashboard

Docker Image Version (latest semver) Docker Pulls

Kubernetes Dashboard built with Quarkus and React.

Click to see a complete demo of the Dashboard

An gif screencast of YAKD Kubernetes Dashboard

Getting started

Minikube

If you just want to try out the final project, the easiest way is to try it out in Minikube.

# 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 you can deploy the application using the provided Kubernetes manifests:

# 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:

#
# 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.

# Build project
$ mvn clean package -Pbuild-frontend

Native image

Build the application using the native property.

# 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

$ 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.

# 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:

# 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:

$ mvn quarkus:dev

Front-End

You can find the React client application in the src/main/frontend directory.

# Install required dependencies
$ npm install
# Start development mode
$ npm start

You can point your browser to localhost:3000.

yakd's People

Contributors

dependabot[bot] avatar manusa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

yakd's Issues

Does not show Role Bindings

Under 'Access Control' I expect an option 'Role Bindings' which should show the current 'RoleBinding' objects. It would seem a logic spot to place it below 'Roles' in the list. Also, at Roles it doesn't show a link to the matching RoleBindings

Minikube plugin

We should try to create a Minikube addon similar to what KubeVirt or Headlamp has done:

  • https://github.com/kubernetes/minikube/pull/8275
  • https://github.com/kubernetes/minikube/pull/14315

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.