Determining Application Status

With minimal additional to the kots.io Application YAML, it is possible to display application status on the dashboard of the Admin Console.

Application Status

It is necessary to target specific Kubernetes resources for the dashboard to accurately report status. We suggest at least one resource be added. Resources that are currently supported are Deployments, StatefulSets, Services, Ingresses and PersistentVolumeClaims.

Kots Application Spec

To add an informer, simply include the statusInformers property in the kots.io Application spec. Status informers are in the format [namespace/]type/name where namespace is optional and will default to the current namespace.

apiVersion: kots.io/v1beta1
kind: Application
metadata:
  name: my-application
spec:
  statusInformers:
    - deployment/my-web-svc
    - deployment/my-worker

Resource Statuses

Possible application statuses are “Missing”, “Unavailable”, “Degraded” and “Ready”. “Missing” is a special status that indicates that informers have yet to report back status. A support bundle will include diagnostic information when state “Missing” is encountered.

Below is a table of resources that are supported and conditions that contribute to each status:

Unavailable Degraded Ready
Deployment No replicas are ready At least 1 replica is ready and less than desired Ready replicas equals desired replicas
StatefulSet No replicas are ready At least 1 replica is ready and less than desired Ready replicas equals desired replicas
Service No endpoints are ready, no load balancer has been assigned At least one endpoint is ready and less than desired All desired endpoints are ready, load balancers has been assigned
Ingress No backend service endpoints are ready, no load balancer has been assigned At least one backend service endpoint is ready and less than desired All desired backend service endpoints are ready, load balancers has been assigned
PersistentVolumeClaim Claim is pending or lost n/a Claim is bound