What are Apps?
Apps in Loft are a way for admins to package applications and scripts in consumable packages. These Apps can then be deployed into clusters, spaces, or virtual clusters.
An example application, and one that comes packaged in a default Loft deployment, is the 'Cert Manager' app. This app, as you may guess from the name, deploys the cert-manager controller into a cluster, space or virtual cluster.
Apps can be an existing or custom (user provided) helm chart, a Kubernetes manifest, or a bash script that installs resources into a given destination (cluster, space, or virtual cluster). Importantly, Apps can have parameters, that is, values that a user can provide to modify the deployment of an application.
An overly simple and silly App example, could be an app that simply installs a configmap into the given destination. This app could accept input parameters from a user to modify the contents of the configmap. For example, the configmap could contain a data field 'env', with a default value of 'dev'. An administrator could configure the app to accept a parameter called 'env' that has three valid values 'dev', 'test', 'stage'. When a user deploys this app, they will be prompted to select a value from the administrator provided values for this 'env' parameter. The administrator can then refer to this parameter in the configmap manifest, properly setting the environment based on the user input.
This is a simple, contrived, example of an app, but they can be much more elaborate and powerful. Apps can give administrators a very flexible way to constrain what resources can be deployed into clusters, while still affording users some flexibility by exposing parameters to customize the app deployment.