Skip to main content
Skip table of contents

Install DKP on a small environment

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.

Enterprise considerations: D2iQ recommends performing testing and demo tasks in a single-cluster environment. The Enterprise license is designed for multi-cluster environments and fleet management, which require a minimum amount of resources. Applying an Enterprise license key to the previous installation adds modifications to your environment that can exhaust a small environment’s resources.

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, and access the DKP UI. It does NOT include applications for cost monitoring, logging, alerting, object storage, etc.

In this YAML file you can find the lines that correspond to all platform applications which would be included in a normal Kommander setup. Applications that have enabled set to false are not taken into account during installation. If you want to test an additional application, you can enable it individually to be installed by setting enabled to true on the corresponding line in the YAML file.

For example, if you want to enable the logging stack, set enabled to true for grafana-logging, grafana-loki, logging-operator and minio-operator. Note that depending on the size of your cluster, enabling several platform applications could exhaust your cluster’s resources.

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.

  1. Initialize your Kommander installation and name it kommander_minimal.yaml:

    CODE
    dkp install kommander --init --kubeconfig=<cluster-kubeconfig>.conf -oyaml > kommander_minimal.yaml
  2. Edit your kommander_minimal.yaml to match the following example:

    CODE
    apiVersion: config.kommander.mesosphere.io/v1alpha1
    kind: Installation
    apps:
      dex:
        enabled: true
      dex-k8s-authenticator:
        enabled: true
      dkp-insights-management:
        enabled: false
      fluent-bit:
        enabled: true
      gatekeeper:
        enabled: true
      gitea:
        enabled: true
      grafana-logging:
        enabled: false
      grafana-loki:
        enabled: false
      kommander:
        enabled: true
      kube-prometheus-stack:
        enabled: false
      kubefed:
        enabled: true
      kubernetes-dashboard:
        enabled: false
      kubetunnel:
        enabled: false
      logging-operator:
        enabled: false
      minio-operator:
        enabled: false
      prometheus-adapter:
        enabled: false
      reloader:
        enabled: true
      traefik:
        enabled: true
      traefik-forward-auth-mgmt:
        enabled: true
      velero:
        enabled: false
    ageEncryptionSecretName: sops-age
    clusterHostname: ""
  3. Install Kommander on your cluster with the following command:

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

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

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

    CODE
    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

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.

When completed, you can verify your installation. For more on exploring your cluster, view the install Kommander topic.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.