Object Locations and Explanations
Objects are created and interact in many steps with coordination between various components and applications. What deploys the Platform Applications, where are the charts stored, what is the mechanism that deploys them and how are settings customized.
After using the DKP CLI to install the Konvoy components of DKP, install the Kommander component.
Kommander
Kommander uses many individual Applications for management of resources. Below is an explanation of the process(es) that deploys them.
Objects and the Resources they Manage
kommander-applications
repository manages:Flux - Deploys Flux from a set of Kubernetes manifest files and
Helm Repositories applies the Helm Repository resources from this repository.
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 then populate the management Git repository hosted by Gitea by copying the local
kommander-applications
repo provided via the--kommander-applications-repository
flag.ChartMuseum -IAir-gapped Only, ChartMuseum is used on air-gapped installations to store the Helm Charts for Air-gapped installations. In non-air-gapped installations, the charts are fetched from upstream repositories and ChartMuseum is not installed.
Gatekeeper - Deploys Gatekeeper by applying the HelmRelease directly to the cluster. The HelmRelease is adopted by AppDeployment.
kommander-appmanagement
manages: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.
apps-kommander
manages:Bootstrap Repository - creates the
apps-kommander
Kubstomization which deploys apps into thekommander
Namespace on the Management Cluster. Commits manifests and directories to the Management git repository to setup the Management Cluster and the repository structure.
kommander-ca
manages:Root CA which 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.
kommander
manages:Ingress Certificate which uses 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.
kommander-vars
manages:Flux Configuration which creates the management GitRepository object and commits it to Git as well as encrypts and commits the Gitea credentials to Git. Flux populates the
kommander-vars
ConfigMap with substitution variables.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.