Kubernetes Dashboard built with Quarkus and React.
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
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.
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
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
$ choco install -y visualstudio2017community --no-progress --package-parameters "--add Microsoft.VisualStudio.Component.VC.Tools.ARM64 --add Microsoft.VisualStudio.Component.VC.CMake.Project"
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
You can work on the project with hot reload by starting both applications separately.
The back-end application is a Quarkus application, you can start it in development mode by:
$ mvn quarkus:dev
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.