The kAppNav project ceased development some time ago. These repositories will be archived in the near future.
Documentation Here
The Kubernetes Application Navigator is a tool that extends the Kubernetes console to provide visualization, inspection, and navigation of the deployed resources that comprise an application. It provides high level status and customizable in-context day 2 operations for your applications.
An application consists of custom-written program components that combine with the supporting infrastructure, application middleware, middleware services, and other components to define a complete solution.
The Kubernetes Application Navigator uses the Application Custom Resource Definition (CRD) from the Kubernetes Application SIG as the basis for describing applications.
- Install a Kubernetes cluster. The Kubernetes Application Navigator project is verified on the following clusters:
- Install the Kubernetes command-line tool.
Avoid trouble: Ensure that your target Kubernetes cluster is running and accessible to the Kubernetes command-line tool (kubectl). Run the
kubectl get nodes
command to return a response that indicates that Kubernetes is running.
You can install Kuberenetes Application Navigator by using one of the following methods:
- OKD or minishift into kappnav namespace
- OCP v4
- minikube
- OKD or minishift into user-defined namespace
-
Create the kAppNav namespace with the following command:
kubectl create namespace kappnav
# kubectl create namespace kappnav namespace/kappnav created
-
Deploy the kAppNav operator with the following command:
curl -L https://raw.githubusercontent.com/kappnav/operator/master/releases/latest/kappnav.yaml | kubectl create -f - -n kappnav
# curl -L https://raw.githubusercontent.com/kappnav/operator/master/releases/0.1.2/kappnav.yaml | kubectl -f - -n kappnav customresourcedefinition.apiextensions.k8s.io/kappnavs.charts.helm.k8s.io created serviceaccount/helm-operator created clusterrole.rbac.authorization.k8s.io/helm-operator created clusterrolebinding.rbac.authorization.k8s.io/helm-operator created deployment.apps/helm-operator created kappnav.charts.helm.k8s.io/instance created
-
Use the following command to ensure that all the pods are running:
kubectl get pods -n kappnav
- It might take a couple of minutes for all of the pods to be created
# kubectl get pods -n kappnav NAME READY STATUS RESTARTS AGE kappnav-controller-67c66df5f4-5h5pl 2/2 Running 0 6h32m kappnav-operator-c5c8fddfc-74dl8 1/1 Running 0 6h33m kappnav-ui-96897bddd-z466s 3/3 Running 0 6h32m
-
Use the following command to ensure that the routes are created:
kubectl get routes -n kappnav
- Find the kappnav-ui-service route.
# kubectl get routes -n kappnav NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD kappnav-ui-service kappnav-ui-service-kappnav.apps.myhost.com kappnav-ui-service <all> reencrypt None
- Access the kAppNav UI with the following URL:
http://kappnav-ui-service-kappnav.apps.myhost.com/kappnav-ui
Install Stock-Trader Sample
After you install Kubernetes Application Navigator and the stock-trader sample, you can access the Kubernetes Application Navigator UI by finding and opening the UI route in the OpenShift console:
The Kubernetes Application Navigator shows your installed applications:
Click the stock-trader application name to view the stock-trader application components:
The Kubernetes Application Navigator icon appears in the OKD Service Catalog:
To add existing applications, or create a new application, follow the instructions for How to Create Applications.
-
Delete the kAppNav components with the following command:
curl -L https://raw.githubusercontent.com/kappnav/operator/master/releases/latest/kappnav-delete-CR.yaml | kubectl delete -f - -n kappnav --now
# curl -L https://raw.githubusercontent.com/kappnav/operator/master/releases/latest/kappnav-delete-CR.yaml | kubectl create -f - -n kappnav --now kappnav.charts.helm.k8s.io "instance" deleted
-
Delete the operator components with the following command:
curl -L https://raw.githubusercontent.com/kappnav/operator/master/releases/latest/kappnav-delete.yaml | kubectl delete -f - -n kappnav
# curl -L https://raw.githubusercontent.com/kappnav/operator/master/releases/latest/kappnav-delete.yaml | kubectl delete -f - -n kappnav deployment.apps "helm-operator" deleted clusterrolebinding.rbac.authorization.k8s.io "helm-operator" deleted clusterrole.rbac.authorization.k8s.io "helm-operator" deleted serviceaccount "helm-operator" deleted customresourcedefinition.apiextensions.k8s.io "kappnavs.charts.helm.k8s.io" deleted
-
Delete the Kubernetes Application Navigator namespace with the following command:
kubectl delete namespace kappnav
# kubectl delete namespace kappnav namespace "kappnav" deleted
Use the following commands to install Kubernetes Application Navigator on OCP 4:
kubectl create namespace kappnav
curl -L https://raw.githubusercontent.com/kappnav/operator/master/releases/latest/kappnav.yaml | sed "s|kubeEnv: okd|kubeEnv: ocp|" | kubectl create -f - -n kappnav
NOTE kAppNav presently works only on Kubernetes versions < 1.16 ! Also, at least 4GB memory is recommended. We have verified kAppNav on minikube, using the following startup:
minikube start --kubernetes-version=1.14.9 --vm-driver=virtualbox --memory=4000mb
-
Use the following commands to install Kubernetes Application Navigator on Minikube:
kubectl create namespace kappnav
curl -L https://raw.githubusercontent.com/kappnav/operator/master/releases/latest/kappnav.yaml | sed "s|kubeEnv: okd|kubeEnv: minikube|" | kubectl create -f - -n kappnav
-
Start the Kubernetes Application Navigator UI with the following command:
minikube service kappnav-ui-service -n kappnav --format "http://{{.IP}}:{{.Port}}/kappnav-ui"
Use the following commands to install Kubernetes Application Navigator on OKD or minishft into a user-defined namespace
kubectl create namespace my-namespace
curl -L https://raw.githubusercontent.com/kappnav/operator/master/releases/latest/kappnav.yaml | sed "s|namespace: kappnav|namespace: my-namespace|" | kubectl create -f - -n my-namespace
Use the following commands to install Kubernetes Application Navigator from a user-defined namespace:
curl -L https://raw.githubusercontent.com/kappnav/operator/master/releases/latest/kappnav-delete-CR.yaml | kubectl delete -f - -n my-namespace --now
curl -L https://raw.githubusercontent.com/kappnav/operator/master/releases/latest/kappnav-delete.yaml | sed "s|namespace: kappnav|namespace: my-namespace|" | kubectl delete -f - -n my-namespace
kubectl delete namespace my-namespace