The KOTS Application custom resource enables features such as branding, release notes, port forwarding, dashboard buttons, app status indicators, and custom graphs.
With ports specified, the KOTS CLI can establish port-forwarding, to simplify connections to the deployed application.
When statusInformers are specified, the dashboard can provide timely feedback when the application deployment is complete and the application is ready for use.
This CR is optional for KOTS applications.
There is some overlap between the KOTS Application spec and the Kubernetes SIG Application spec. In time, it’s likely that the SIG Application spec will grow to include all the necessary metadata to support the full KOTS features.
In the meantime, enabling features (such as dashboard buttons to the application) requires the use of both the KOTS Application spec and the SIG Application spec.
The Application
spec contains vendor-supplied metadata about the application.
apiVersion: kots.io/v1beta1
kind: Application
metadata:
name: my-application
spec:
title: My Application
icon: https://support.io/img/logo.png
releaseNotes: These are our release notes
allowRollback: false
kubectlVersion: latest
kustomizeVersion: latest
requireMinimalRBACPrivileges: false
additionalImages:
- jenkins/jenkins:lts
additionalNamespaces:
- "*"
ports:
- serviceName: web
servicePort: 9000
localPort: 9000
applicationUrl: "http://web"
statusInformers:
- deployment/my-web-svc
- deployment/my-worker
graphs:
- title: User Signups
query: 'sum(user_signup_events_total)'
The application title. This will be used on the license upload and in various places in the Admin Console.
The icon file for the application. This will be used on the license upload and in various places in the Admin Console.
The release notes for this version. These can also be set when promoting a release.
This defaults to false
. Enable to create a “Rollback” button on the end-customer Verison History page.
An optional array of strings that reference images to be included in airgap bundles and pushed to the local registry during installation. While KOTS detects images from the PodSpecs in the application, some applications (Operators) may need to include additional images that will not be referenced until runtime.
This defaults to latest
which will use the newest version from the list below.
Valid values are:
>1.16.0 <1.17.0
).
The latest version within the provided range will be used.
If the specified version or range does not match any supported versions, the latest version from the above list will be used.This defaults to latest
, but can be changed to 3.5.4
to use a specific version of kustomize to render your app’s yaml.
Currently only 3.5.4
is supported, but patch versions may change and newer versions may be added in the future.
When set to true, this will instruct the KOTS installer to create a namespace-scoped Role and RoleBinding, instead of the default cluster-scoped ClusterRole and ClusterRoleBinding. For more information, see the RBAC documentation.
These are extra ports (additional to the :8800 admin console port) that should be port-forwarded when running the kots admin-console
command.
The name of the service that has a ClusterIP
type that should receive the traffic.
The ClusterIP
port to forward traffic to.
If set, the port to map on the local workstation.
If not set, this will be the same as servicePort
.
This should match a service found in the k8s.io
Application spec.
Resources to watch and report application status back to the user.
In the format [namespace/]type/name
where namespace is optional.
Entries support template functions.
For example, a specific status informer can be excluded based on an application config value like so:
statusInformers:
- deployment/my-web-svc
- '{{repl if ConfigOptionEquals "option" "value"}}deployment/my-worker{{repl else}}{{repl end}}'
Custom graphs to include on your Admin Console application dashboard.
The graph title.
The Prometheus query.
The legend to use for the query line.
Can be templated with each element returned from the Prometheus query.
Template escape sequence is {{}}
.
A list of queries containing a query and legend.
{{}}
.The format of the Y axis labels with support for all Grafana units.
Y axis labels template. Use {{ value }}
.