Skip to content

Kubevious Add-on

This add-on installs Kubevious open source Kubernetes dashboard on Amazon EKS.

Kubevious provides logical grouping of application resources eliminating the need to dig through selectors and labels. It also provides the ability identify potential misconfigurations using both standard and user created rules that monitor the cluster

Usage

import 'source-map-support/register';
import * as cdk from 'aws-cdk-lib';
import * as blueprints from '@aws-quickstart/eks-blueprints';

const app = new cdk.App();

const addOn = new blueprints.addons.KubeviousAddOn();

const blueprint = blueprints.EksBlueprint.builder()
  .version("auto")
  .addOns(addOn)
  .build(app, 'my-stack-name');

Configuration Options

  • version: Version fo the Helm Chart to be used to install Kubevious
  • ingressEnabled: Indicates whether to expose Kubevious using an ingress gateway. Set to false by default
  • kubeviousServiceType: Type of service used to expose Kubevious backend. Set to 'ClusterIP' by default
  • values: Arbitrary values to pass to the chart. Refer to the Kubevious Helm Chart documentation for additional details

Validation

To validate that Kubevious is installed properly in the cluster, check that the Kubevious deployments, services and stateful sets are running.

  kubectl get all -n kubevious  
Note that Kubevious is installed in its own kubevious namespace

Accessing the Kubevious dashboard

To access the application, set up port-forwarding as follows:

    kubectl port-forward $(kubectl get pods -n kubevious -l "app.kubernetes.io/component=kubevious-ui" -o jsonpath="{.items[0].metadata.name}") 8080:80 -n kubevious  
After the port-forwarding has started, the application can be accessed by navigating to http://localhost:8080

Alternatively, Kubevious can be exposed by enabling the ingress by setting the ingressEnabled configuration option to true.

MySQL root password

Kubevious internally deploys and uses MySQL to persist data. The Kubevious add-on secures access to the database by generating a random password for the MySQL root user. While it is not usually necessary to access the Kubevious MySQL database externally, it is possible to retrieve the generated value by executing the command below:

    echo $(kubectl get secret kubevious-mysql-secret-root  -o jsonpath='{.data.MYSQL_ROOT_PASSWORD}' -n kubevious) | base64 --decode

Persistent Volume usage

Kubevious automatically creates a Persistent Volume (PV) to store the MySQL database data. However, per the Kubevious documentation, the PV is not removed when Kubevious is uninstalled and must be removed manually:

    kubectl delete pvc data-kubevious-mysql-0 -n kubevious

Functionality

  1. Installs Kubevious in the cluster
  2. Sets up all AIM necessary roles to integrate Kubevious in AWS EKS
  3. Supports standard helm configuration options.