Last generated December 4, 2024
App
App represents a managed app which a user intended to install. It is reconciled by app-operator.
Version v1alpha1
Example CR
apiVersion: application.giantswarm.io/v1alpha1
kind: App
metadata:
creationTimestamp: null
name: prometheus
namespace: default
spec:
catalog: my-playground-catalog
catalogNamespace: giantswarm
config:
configMap:
name: f2def-cluster-values
namespace: f2def
secret:
name: f2def-cluster-values
namespace: f2def
install:
skipCRDs: true
timeout: 6m0s
kubeConfig:
context:
name: f2def
inCluster: false
secret:
name: f2def-kubeconfig
namespace: f2def
name: prometheus
namespace: monitoring
namespaceConfig:
annotations:
linkerd.io/inject: enabled
rollback:
timeout: 7m0s
uninstall:
timeout: 8m0s
upgrade:
timeout: 9m0s
userConfig:
configMap:
name: prometheus-user-values
namespace: f2def
secret:
name: prometheus-user-values
namespace: f2def
version: 1.0.1
Properties
.apiVersion
APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
.kind
Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
.metadata
.spec
.spec.catalog
Catalog is the name of the app catalog this app belongs to. e.g. giantswarm
.spec.catalogNamespace
CatalogNamespace is the namespace of the Catalog CR this app belongs to. e.g. giantswarm
.spec.config
Config is the config to be applied when the app is deployed.
.spec.config.configMap
ConfigMap references a config map containing values that should be applied to the app.
.spec.config.configMap.name
Name is the name of the config map containing app values to apply, e.g. prometheus-values.
.spec.config.configMap.namespace
Namespace is the namespace of the values config map, e.g. monitoring.
.spec.config.secret
Secret references a secret containing secret values that should be applied to the app.
.spec.config.secret.name
Name is the name of the secret containing app values to apply, e.g. prometheus-secret.
.spec.config.secret.namespace
Namespace is the namespace of the secret, e.g. kube-system.
.spec.extraConfigs
ExtraConfigs is a list of configurations to merge together based on the priority and order in the list. See: https://github.com/giantswarm/rfc/tree/main/multi-layer-app-config#enhancing-app-cr
.spec.extraConfigs[*]
.spec.extraConfigs[*].kind
Kind of configuration to look up that should be applied to the app when deployed.
.spec.extraConfigs[*].name
Name of the resource of the given kind to look up.
.spec.extraConfigs[*].namespace
Namespace where the resource with the given name and kind to look up is located.
.spec.extraConfigs[*].priority
Priority is used to indicate at which stage the extra configuration should be merged. See: https://github.com/giantswarm/rfc/tree/main/multi-layer-app-config#enhancing-app-cr
.spec.install
Install is the config used when installing the app.
.spec.install.skipCRDs
SkipCRDs when true decides that CRDs which are supplied with the chart are not installed. Default: false.
.spec.install.timeout
Timeout for the Helm install. When not set the default timeout of 5 minutes is being enforced.
.spec.kubeConfig
KubeConfig is the kubeconfig to connect to the cluster when deploying the app.
.spec.kubeConfig.context
Deprecated: this field is no longer used.
.spec.kubeConfig.context.name
Name is the name of the kubeconfig context e.g. giantswarm-12345.
.spec.kubeConfig.inCluster
InCluster is a flag for whether to use InCluster credentials. When true the context name and secret should not be set.
.spec.kubeConfig.secret
Secret references a secret containing the kubconfig.
.spec.kubeConfig.secret.name
Name is the name of the secret containing the kubeconfig, e.g. app-operator-kubeconfig.
.spec.kubeConfig.secret.namespace
Namespace is the namespace of the secret containing the kubeconfig, e.g. giantswarm.
.spec.name
Name is the name of the app to be deployed. e.g. kubernetes-prometheus
.spec.namespace
Namespace is the target namespace where the app should be deployed e.g. monitoring, it cannot be changed.
.spec.namespaceConfig
NamespaceConfig is the namespace config to be applied to the target namespace when the app is deployed.
.spec.namespaceConfig.annotations
Annotations is a string map of annotations to apply to the target namespace.
.spec.namespaceConfig.labels
Labels is a string map of labels to apply to the target namespace.
.spec.rollback
Rollback is the config used when rolling back the app.
.spec.rollback.timeout
Timeout for the Helm rollback. When not set the default timeout of 5 minutes is being enforced.
.spec.uninstall
Uninstall is the config used when uninstalling the app.
.spec.uninstall.timeout
Timeout for the Helm uninstall. When not set the default timeout of 5 minutes is being enforced.
.spec.upgrade
Upgrade is the config used when upgrading the app.
.spec.upgrade.timeout
Timeout for the Helm upgrade. When not set the default timeout of 5 minutes is being enforced.
.spec.userConfig
UserConfig is the user config to be applied when the app is deployed.
.spec.userConfig.configMap
ConfigMap references a config map containing user values that should be applied to the app.
.spec.userConfig.configMap.name
Name is the name of the config map containing user values to apply, e.g. prometheus-user-values.
.spec.userConfig.configMap.namespace
Namespace is the namespace of the user values config map on the management cluster, e.g. 123ab.
.spec.userConfig.secret
Secret references a secret containing user secret values that should be applied to the app.
.spec.userConfig.secret.name
Name is the name of the secret containing user values to apply, e.g. prometheus-user-secret.
.spec.userConfig.secret.namespace
Namespace is the namespace of the secret, e.g. kube-system.
.spec.version
Version is the version of the app that should be deployed. e.g. 1.0.0
.status
Status Spec part of the App resource. Initially, it would be left as empty until the operator successfully reconciles the helm release.
.status.appVersion
AppVersion is the value of the AppVersion field in the Chart.yaml of the deployed app. This is an optional field with the version of the component being deployed. e.g. 0.21.0. https://helm.sh/docs/topics/charts/#the-chartyaml-file
.status.release
Release is the status of the Helm release for the deployed app.
.status.release.lastDeployed
LastDeployed is the time when the app was last deployed.
.status.release.reason
Reason is the description of the last status of helm release when the app is not installed successfully, e.g. deploy resource already exists.
.status.release.status
Status is the status of the deployed app, e.g. DEPLOYED.
.status.version
Version is the value of the Version field in the Chart.yaml of the deployed app. e.g. 1.0.0.
This documentation page shows information based on apiextensions-application v0.6.2.
Need help with the Management API?
We listen in your Slack support channel. And of course, we welcome your pull requests to improve these docs!