You can install Kommander on a small environment with smaller memory, storage, and CPU requirements for testing and demo purposes. This topic describes methods for installing Kommander in these environments. Refer to the Kommander documentation for more information.

You can install this minimal setup on networked and air-gapped environments, regardless of the license type (Essential or Enterprise).

Prerequisites

Ensure you have done the following:

  • You have acquired a DKP license.

  • You have installed Konvoy.

  • You have reviewed the prerequisite section pertaining to your air-gapped, or networked environment.

Minimal Kommander installation

The YAML file that is used to install a minimal configuration of Kommander contains the bare minimum setup that allows you to deploy applications, access the DKP UI, create and attach clusters. It does NOT include applications for cost monitoring, logging, alerting, object storage, etc.

In this YAML file you can find commented lines, that correspond to all platform applications which would be included in a normal Kommander setup. Since these lines are commented, they are not taken into account during installation. If you want to test an additional platform application, you can enable it individually to be installed by uncommenting the corresponding line in the YAML file.

Some applications depend on other applications to work properly. Refer to the dependencies documentation to find out which other applications you need to enable to test the target application.

For example, if you want to test Grafana to allow monitoring, remove the pound sign preceding grafana-logging: null. Since Grafana depends on Loki, you also have to remove the pound preceding grafana-loki: null and minio-operator: null. Note that depending on the size of your cluster, enabling several platform applications could exhaust your cluster’s resources.

  1. Edit or create an install.yaml file to match the following example:

    apiVersion: config.kommander.mesosphere.io/v1alpha1
    kind: Installation
    apps:
      #centralized-grafana: null
      #centralized-kubecost: null
      dex: null
      dex-k8s-authenticator: null
      gitea: null
      #gatekeeper: null
      #grafana-logging: null
      #grafana-loki: null
      #karma: null
      #karma-traefik: null
      kommander: null
      #kube-prometheus-stack: null
      #kubecost: null
      #kubecost-thanos-traefik: null
      kubefed: null
      #kubernetes-dashboard: null
      #kubetunnel: null
      #kube-oidc-proxy was not included in the generated --init
      kube-oidc-proxy: null
      #logging-operator: null
      #minio-operator: null
      #prometheus-adapter: null
      #prometheus-thanos-traefik: null
      reloader: null
      #thanos: null
      traefik: null
      traefik-forward-auth-mgmt: null
      #velero: null
    ageEncryptionSecretName: sops-age
    clusterHostname: ""
    CODE
  2. Install Kommander on your cluster with the following command:

    dkp install kommander --installer-config ./install.yaml --kubeconfig=<cluster-kubeconfig>
    CODE
  3. After running the install command above, HelmReleases begin to appear on the cluster.

    kubectl -n kommander wait --for condition=Released helmreleases --all --timeout 15m
    CODE

    This will wait for each of the helm charts to reach their Released condition, eventually resulting in something resembling this:

    helmrelease.helm.toolkit.fluxcd.io/cluster-observer-1234567890 condition met
    helmrelease.helm.toolkit.fluxcd.io/dex condition met
    helmrelease.helm.toolkit.fluxcd.io/dex-k8s-authenticator condition met
    helmrelease.helm.toolkit.fluxcd.io/gitea condition met
    helmrelease.helm.toolkit.fluxcd.io/karma-traefik-certs condition met
    helmrelease.helm.toolkit.fluxcd.io/kommander condition met
    helmrelease.helm.toolkit.fluxcd.io/kommander-appmanagement condition met
    helmrelease.helm.toolkit.fluxcd.io/kube-oidc-proxy condition met
    helmrelease.helm.toolkit.fluxcd.io/kubecost-traefik-certs condition met
    helmrelease.helm.toolkit.fluxcd.io/kubefed condition met
    helmrelease.helm.toolkit.fluxcd.io/prometheus-traefik-certs condition met
    helmrelease.helm.toolkit.fluxcd.io/reloader condition met
    helmrelease.helm.toolkit.fluxcd.io/traefik condition met
    helmrelease.helm.toolkit.fluxcd.io/traefik-forward-auth-mgmt condition met
    CODE

An alternative to using the --kubeconfig=<cluster-config> flag is to initialize the KUBECONFIG environment variable. You can do this by running export KUBECONFIG=<cluster-config>. Setting your KUBECONFIG (either by flag or by environment variable) ensures that Kommander is installed on the workload cluster.

For more on exploring your cluster, view the install Kommander topic.