Kommander Resource Locations
Installation happens in many steps with coordination between various components and applications. This document explains the process and locations for various repositories. After using the DKP CLI to install the Konvoy components, install the Kommander component and the following process begins.
Kommander Installation Part I:
Base - Deploys base resources required including Kommander and
kommander flux
namespaces.Flux - Deploys Flux from a set of Kubernetes manifest files in the
kommander-applications
repository (deployments, etc).Root CA - Creates Cert-manager custom resources:
kommander-ca
clusterIssuer,kommander-ca
Certificate, and a self-signed ClusterIssuer. Then waits for thekommander-ca
Certificate to be created and accessible.ChartMuseum -IInstalls via the Helm library. The ChartMuseum Helm Release is created but will reconcile when the Git repository is created and populated. This is due to ChartMuseum being stored in the GitRepository. The installer will also set the helmRepositoryURL in the internal installer configuration to be used during Helm repository installation next.
Helm Repositories - Applies the Helm Repository resources from the
kommander-applications
repo https://github.com/mesosphere/kommander-applications/tree/main/common/help-repositories. If the helmRepositoryURL was set in previous step, it will be applied via a substitution variable when teh Helm Repository objects are applied. EX: “${helmMirrorURL:=https://kubernetes-charts.banzaicloud.com/}”Ingress Certificate - Sets
kommander
chart values to create the self-attached KommanderCluster with custom domain/custom certificate settings. Also creates ACME resources(ClusterIssuer) as defined in the installer configuration.Gitea - Creates a secret that hold the Gitea user credentials as well as deploys Gitea by applying the HelmRelease directly to the cluster. Furthermore, it creates a Gitea admin user and the Kommander git repository.
Applications Definitions - Populates the management Git repository hosted by Gitea by copying the local kommander-applications repo provided viat the
--kommander-applications-repository
flag.Bootstrap Repository - Commits manifests and directories to the Management git repository to setup the Management Cluster and the repository structure. It also creates the
apps-kommander
Kubstomization which deploys apps into thekommander
namespace on the Mangement Cluster.Age - Create Age Encryption section for SOPs encryption and adds the Age recipient(public) key to git.
Flux Configuration - Populates the
kommander-vars
ConfigMap with substitution variables as well as creates the management GitRepository object and commits it to Git. Also encrypts and commits the Gitea credentials to Git.Gatekeeper - Deploys Gatekeeper by applying the HelmRelease directly to the cluster. The HelmRelease is adopted by AppDeployment.
AppManagement - Deploys
kommander-appmanagement
via applying the HelmRelease directly to the cluster.Core AppDeployments - Creates AppDeployments for the core components: Flux,
kommander-appmanagement
and ChartMuseum. These components were previously deployed, but this creates the AppDeployments which will eventually manage the Applications.Optional AppDeployments - Creates all the AppDeployments for the applications defined in the installer configuration.
Catalog Repository Loader - Creates and commits the GitRepository objects to the management Git repo that are defined in the installer config(catalog). These default catalo Git repositories are then managed by a controller (DefaultCatalogGitRepository) which does things like:
Propagate the GitRepository objects to workspaces and projects based on labels
Handles updating the GitRepository URL to use the correect hostname so the attached clusters can communicate with Gitea.
Each DKP release’s set of Release Notes will hold the current version information for Applications.
Kommander Installation Part II:
This part of the installation deals with Kommander Controller and Helm Charts.