Install Kommander in a networked environment

Install Kommander in a networked environment

Prerequisites

The kommander CLI installs Kommander. You must install Kommander before executing these commands. Ensure you have the version of the CLI that matches the Kommander version you want to install. Refer to the DOWNLOAD page to download and install Kommander.

The cert-manager must be installed prior to installing Kommander.

Default StorageClass

To ensure the Git repository that Kommander ships with deploys successfully, the cluster where Kommander is installed must have a default StorageClass configured. Run the following command:

kubectl get sc

The output should look similar to this. Note the (default) after the name:

NAME               PROVISIONER       RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
ebs-sc (default)   ebs.csi.aws.com   Delete          WaitForFirstConsumer   false                  41s

If the StorageClass is not set as default, add the following annotation to the StorageClass manifest:

annotations:
  storageclass.kubernetes.io/is-default-class: "true"

More information on setting a StorageClass as default can be found at Changing the default storage class in k8s docs.

Install on Konvoy

Before running the commands below, ensure that your kubectl configuration references the cluster on which you want to install Kommander. You can do this by setting the KUBECONFIG environment variable to the appropriate kubeconfig file’s location.

To install Kommander with HTTP proxy setting enabled, you need to follow the instructions outlined in enable Gatekeeper section before proceeding further. To enable a Gatekeeper proxy, you must pass the install.yaml (or whatever the config file was named) you created to the following command using --installer-config=install.yaml

kommander install

Verify installation

After the CLI successfully installs the components, you must wait for all HelmReleases to deploy.

The Kommander installation is a multi-step process: Flux installs first, then the Git repository spins up permiting Flux to consume further HelmReleases from that repository.

After running the install command, HelmReleases begin to appear on the cluster.

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:

helmrelease.helm.toolkit.fluxcd.io/centralized-grafana 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/fluent-bit condition met
helmrelease.helm.toolkit.fluxcd.io/gitea condition met
helmrelease.helm.toolkit.fluxcd.io/grafana-logging condition met
helmrelease.helm.toolkit.fluxcd.io/grafana-loki condition met
helmrelease.helm.toolkit.fluxcd.io/karma 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-prometheus-stack condition met
helmrelease.helm.toolkit.fluxcd.io/kubecost condition met
helmrelease.helm.toolkit.fluxcd.io/kubecost-thanos-traefik condition met
helmrelease.helm.toolkit.fluxcd.io/kubefed condition met
helmrelease.helm.toolkit.fluxcd.io/kubernetes-dashboard condition met
helmrelease.helm.toolkit.fluxcd.io/kubetunnel condition met
helmrelease.helm.toolkit.fluxcd.io/logging-operator condition met
helmrelease.helm.toolkit.fluxcd.io/logging-operator-logging condition met
helmrelease.helm.toolkit.fluxcd.io/minio-operator condition met
helmrelease.helm.toolkit.fluxcd.io/prometheus-adapter condition met
helmrelease.helm.toolkit.fluxcd.io/prometheus-thanos-traefik condition met
helmrelease.helm.toolkit.fluxcd.io/reloader condition met
helmrelease.helm.toolkit.fluxcd.io/thanos condition met
helmrelease.helm.toolkit.fluxcd.io/traefik condition met
helmrelease.helm.toolkit.fluxcd.io/traefik-forward-auth-mgmt condition met
helmrelease.helm.toolkit.fluxcd.io/velero condition met

Access Kommander Web UI

When all the HelmReleases are ready, use the following command to retrieve the URL for accessing Kommander’s Web interface:

kubectl -n kommander get svc kommander-traefik -o go-template='https://{{with index .status.loadBalancer.ingress 0}}{{or .hostname .ip}}{{end}}/dkp/kommander/dashboard{{ "\n"}}'

Use the following command to access the Username and Password stored on the cluster:

kubectl -n kommander get secret dkp-credentials -o go-template='Username: {{.data.username|base64decode}}{{ "\n"}}Password: {{.data.password|base64decode}}{{ "\n"}}'