Last generated October 20, 2021

App

App represents a managed app which a user intended to install. It is reconciled by app-operator.

Full name:
apps.application.giantswarm.io
Group:
application.giantswarm.io
Singular name:
app
Plural name:
apps
Scope:
Namespaced
Versions:
v1alpha1

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
  kubeConfig:
    context:
      name: f2def
    inCluster: false
    secret:
      name: f2def-kubeconfig
      namespace: f2def
  name: prometheus
  namespace: monitoring
  namespaceConfig:
    annotations:
      linkerd.io/inject: enabled
  userConfig:
    configMap:
      name: prometheus-user-values
      namespace: f2def
    secret:
      name: prometheus-user-values
      namespace: f2def
  version: 1.0.1

Properties

.apiVersion

string

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

string

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

object

.spec

object Required

.spec.catalog

string Required

Catalog is the name of the app catalog this app belongs to. e.g. giantswarm

.spec.catalogNamespace

string

CatalogNamespace is the namespace of the Catalog CR this app belongs to. e.g. giantswarm

.spec.config

object

Config is the config to be applied when the app is deployed.

.spec.config.configMap

object

ConfigMap references a config map containing values that should be applied to the app.

.spec.config.configMap.name

string Required

Name is the name of the config map containing app values to apply, e.g. prometheus-values.

.spec.config.configMap.namespace

string Required

Namespace is the namespace of the values config map, e.g. monitoring.

.spec.config.secret

object

Secret references a secret containing secret values that should be applied to the app.

.spec.config.secret.name

string Required

Name is the name of the secret containing app values to apply, e.g. prometheus-secret.

.spec.config.secret.namespace

string Required

Namespace is the namespace of the secret, e.g. kube-system.

.spec.install

object

Install is the config used when installing the app.

.spec.install.skipCRDs

boolean

SkipCRDs when true decides that CRDs which are supplied with the chart are not installed. Default: false.

.spec.kubeConfig

object Required

KubeConfig is the kubeconfig to connect to the cluster when deploying the app.

.spec.kubeConfig.context

object

Context is the kubeconfig context.

.spec.kubeConfig.context.name

string Required

Name is the name of the kubeconfig context. e.g. giantswarm-12345.

.spec.kubeConfig.inCluster

boolean Required

InCluster is a flag for whether to use InCluster credentials. When true the context name and secret should not be set.

.spec.kubeConfig.secret

object

Secret references a secret containing the kubconfig.

.spec.kubeConfig.secret.name

string Required

Name is the name of the secret containing the kubeconfig, e.g. app-operator-kubeconfig.

.spec.kubeConfig.secret.namespace

string Required

Namespace is the namespace of the secret containing the kubeconfig, e.g. giantswarm.

.spec.name

string Required

Name is the name of the app to be deployed. e.g. kubernetes-prometheus

.spec.namespace

string Required

Namespace is the namespace where the app should be deployed. e.g. monitoring

.spec.namespaceConfig

object

NamespaceConfig is the namespace config to be applied to the target namespace when the app is deployed.

.spec.namespaceConfig.annotations

object

Annotations is a string map of annotations to apply to the target namespace.

.spec.namespaceConfig.labels

object

Labels is a string map of labels to apply to the target namespace.

.spec.userConfig

object

UserConfig is the user config to be applied when the app is deployed.

.spec.userConfig.configMap

object

ConfigMap references a config map containing user values that should be applied to the app.

.spec.userConfig.configMap.name

string Required

Name is the name of the config map containing user values to apply, e.g. prometheus-user-values.

.spec.userConfig.configMap.namespace

string Required

Namespace is the namespace of the user values config map on the management cluster, e.g. 123ab.

.spec.userConfig.secret

object

Secret references a secret containing user secret values that should be applied to the app.

.spec.userConfig.secret.name

string Required

Name is the name of the secret containing user values to apply, e.g. prometheus-user-secret.

.spec.userConfig.secret.namespace

string Required

Namespace is the namespace of the secret, e.g. kube-system.

.spec.version

string Required

Version is the version of the app that should be deployed. e.g. 1.0.0

.status

object

Status Spec part of the App resource. Initially, it would be left as empty until the operator successfully reconciles the helm release.

.status.appVersion

string Required

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

object Required

Release is the status of the Helm release for the deployed app.

.status.release.lastDeployed

string

LastDeployed is the time when the app was last deployed.

.status.release.reason

string

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

string Required

Status is the status of the deployed app, e.g. DEPLOYED.

.status.version

string Required

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 v3.35.0.