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-dashboardIn 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 yakdYou 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.ioNow 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-frontendBuild 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-dashboardThis 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=customYou 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:devYou can find the React client application in the src/main/frontend
directory.
# Install required dependencies
$ npm install
# Start development mode
$ npm startYou can point your browser to localhost:3000.