Skip to content

Applications

The Applications service lets you deploy and manage application workloads on the Kubernetes clusters you have registered with the platform. You define a workload once as a reusable template, then instantiate it onto a single cluster or across a whole fleet of clusters. The platform rolls out the workload, tracks its status, and applies day-2 changes for you.


Key Features

  • Two application types: Deploy a single Container image or a Helm chart.
  • Templates and instances: Define a reusable application template, then deploy one or more instances from it.
  • Single-cluster or fleet deployments: Target one cluster, or fan a deployment out across every cluster in a Cluster Fleet.
  • Marketplace: Browse public applications and your organization's private templates from one catalog.
  • Day-2 operations: Roll out new versions, override parameters, and disconnect or delete instances.
  • Portable Helm charts: Use placeholders that are filled in with cluster-specific values at deployment time.

Core concepts

graph TD
    A[Template<br/>reusable definition] -->|instantiate| B[Instance]
    B --> C[Target: single Cluster]
    B --> D[Target: Cluster Fleet]
Concept What it is
Template A reusable definition of an application — either a container image or a Helm chart — together with its configuration. Templates are versioned.
Instance A running deployment created from a template, targeting a specific cluster or fleet.
Cluster An application cluster — a Kubernetes cluster registered as a deployment target (see Application clusters). This is distinct from an MKS cluster.
Cluster Fleet A group of application clusters that a single instance can deploy across at once.
Marketplace A unified catalog combining public applications and your organization's private templates.

Application types

When you create a template you choose one of two types. This is the complete set — there is no "raw Kubernetes manifest" or "arbitrary YAML" application type.

Deploy a single container image directly. You provide the image reference, optional environment variables, resource requests/limits, and how the container is exposed on the network.

Deploy a Helm chart from a chart repository. You provide the chart coordinates and override its values.

The YAML editor is for values, not manifests

The form's YAML editor edits a Helm chart's values.yaml overrides. It is not a place to paste arbitrary Kubernetes manifests, and it may be left empty.


Deploying a container

Image and registry

Provide the container image reference, for example docker.io/library/nginx:latest.

Choose whether the image comes from a Public or Private registry. For a private registry you must supply a Username and a Password / access token.

Environment variables

Container environment variables are simple name/value pairs. Names must be unique within the container.

No secret references

Environment variables are plain values only. There is no support for Kubernetes secret or config-map references in the container application type. Avoid placing sensitive values you would not want stored as plain configuration.

Resources

You can size the container with a simple slider, or switch on Advanced mode to set separate requests and limits.

Resource Range Default limit Default request
CPU 1–16 cores 1 500m
Memory 512–16384 MiB 1024Mi 512Mi
  • Advanced CPU mode accepts cores or millicores; advanced memory uses MiB (minimum 128, in steps of 128).
  • The request must be less than or equal to the limit — the form keeps this true automatically.

Conditional resources

Ephemeral storage (1–100 Gi) and GPU (1–4 devices) appear only when enabled for your environment. If you do not see these fields, they are not available to you.

Networking

A container can be exposed externally through one or more of three mechanisms:

Mechanism What it does
Load Balancer Exposes ports through a load-balancer service with an external IP.
HTTP Ingress Routes HTTP traffic by host/path. Path types: PathPrefix, Exact, RegularExpression.
Gateway API (HTTPRoute) Routes traffic via the Gateway API. Deploys only on clusters that have gateway classes configured.

Container ports default to 80/TCP. The protocol is TCP or UDP, and port numbers range 1–65535.

Public ports require the Load Balancer

Marking a port Public exposes it through a load-balancer service. You must enable the Load Balancer before you can mark any port public — otherwise the step is blocked.


Deploying a Helm chart

Provide the chart coordinates (all required):

  • Chart Name (e.g. wordpress)
  • Chart Repository URL — accepts https://, http://, oci://, helm://, or file:// (e.g. https://charts.bitnami.com/bitnami)
  • Chart Version (e.g. 15.2.3)

Private chart repositories use the same Username / Password authentication as private container registries.

You can override chart values in two complementary ways:

  • Editing the chart's values.yaml directly.
  • Adding --set key/value pairs.

Placeholders

Helm templates support placeholders — values that the platform fills in with cluster-specific values at deployment time, so one chart stays portable across clusters. Map a chart value key to one of:

Placeholder Filled in with
INGRESS_HOST The cluster's ingress host
INGRESS_CLASSNAME The cluster's ingress class name
STORAGE_CLASS The cluster's storage class
CLUSTER_CNI The cluster's CNI
CLUSTER_NAME The target cluster's name
APP_INSTANCE_ID The application instance's ID

Note

Helm charts skip the container Resources and Networking steps — those come from the chart's own values.


Templates

A template is a reusable application definition. Creating one walks you through a wizard whose steps depend on the type (container vs Helm). Editing an existing template uses a tabbed view.

  • A template's project cannot be changed after creation.
  • Templates are versioned — you select a version when instantiating or updating an instance.
  • Deleting a template is irreversible and requires typing the template name to confirm.

Publishing metadata

A template can carry marketplace metadata (set in the Basic Information step): icon URL, category/subcategory, tags, homepage and documentation URLs, and a changelog. New templates default to private and unlisted. URL fields must start with http:// or https://.


Marketplace

The Marketplace is a single catalog that combines public applications and your organization's private templates. Filter by:

  • Visibility: all, public, or private
  • Search (by name), Category / Subcategory, Package Type (Helm / Container), Tags, and Project (private only)

No ratings, install counts, sorting, or 'verified' badges

The catalog filters on the fields above only.

Public and private items behave differently when you instantiate them:

Public application Private template (yours)
Target project You choose the project Locked to the template's own project
Edit / Delete Read-only Available (if you own it)

An application's detail page shows a version selector with per-version changelog, homepage/docs links, technical details, and a status badge (active, deprecated, draft, beta).


Instances

An instance is a running deployment created from a template.

Choosing a target

When you instantiate, you pick the deployment target:

  • Cluster — deploy to a single application cluster.
  • Fleet — deploy across every cluster in a Cluster Fleet.

The instance name is optional; if left blank it is auto-generated. A fleet deployment supports global plus per-cluster overrides; a single-cluster deployment supports one flat set of overrides.

Day-2 operations

Operation What it does
Update version Performs a rolling update to a newer template version. Only versions newer than the deployed one are offered; if you are already on the latest, none are shown.
Edit parameters Applies overrides — environment-variable overrides for containers, or Helm --set / values.yaml overrides for Helm.
Sync Re-runs the deployment to retry or reconcile it.

Disconnect vs Delete

These are two different destructive actions. Read this before clicking either.

Disconnect Delete
Effect on the platform Removes the instance from platform management Permanently deletes the instance
Effect on the workload Workloads keep running in the cluster — nothing is removed All resources are destroyed, running apps are stopped, data is lost
Cleanup You may need to clean up cluster resources manually Handled by the platform
Reversible No No

Both require confirmation; error-state instances can only be deleted

Both actions require typing the instance ID to confirm. An instance in the error status cannot be disconnected — it can only be deleted. Disconnect is most useful when the cluster is no longer reachable and a normal deletion is not possible.

Lifecycle states

Instances report a status (pending, creating, active, error, deleting, detaching) and a separate readiness indicator. Actions are disabled while an instance is creating or deleting, and for users who are not its owner.

Finding your app's address

Connection details (external IP, ports, ingress hosts) are shown on an instance's detail page.


Application clusters

An application cluster is a Kubernetes cluster registered as a target for application deployments. It is not the same thing as an MKS cluster:

Application cluster MKS cluster
What it is A deploy target for applications A Kubernetes cluster the platform provisions for you
How you add it Register it with a kubeconfig Provision it from your infrastructure
Where it lives Applications Managed Services → Kubernetes

You deploy applications to application clusters, not directly to MKS clusters.

Importing an MKS cluster

You can register an existing MKS cluster as an application cluster. The Import MKS cluster action connects to the MKS cluster for you, so you do not have to supply a kubeconfig manually. During import you can optionally enable a Load Balancer, an Ingress class (class name, base host, annotations), and a map location.

Configurable resources

When registering an application cluster you can configure:

  • Load Balancer
  • Ingress classes — class name, base host, annotations (if ingress is enabled, a base host is required)
  • Gateway classes — gateway name, namespace, base hostname, default flag (if a gateway is enabled, a gateway name and base hostname are required)
  • Storage solutions — type, access modes, default flag

Cluster Fleets

A Cluster Fleet groups application clusters so that a single instance can be deployed across all of them at once. A fleet has a provider and an optional geographic location, shown on a world map.

  • Creating a fleet requires only a name and a project; provider and location are optional.
  • Clusters are added to or removed from a fleet individually, or replaced in bulk. A cluster must be in the same project as the fleet.

Fleet instances

A fleet instance is an application instance deployed across a fleet. It tracks, per cluster, a deployment plus an overall rollout summary (deploying / failed / pending / succeeded / total), and supports per-cluster configuration overrides.

Like single-cluster instances, deleting a fleet instance offers a detach (disconnect-only) mode that stops platform management without removing the deployed workloads, in addition to a full delete.


Getting Started

To deploy your first application, navigate to the Applications section in the platform dashboard:

  1. Make sure you have at least one application cluster registered as a target (you can import an existing MKS cluster).
  2. Create a template — choose Container or Helm and complete the wizard.
  3. Instantiate the template onto a cluster or fleet.

For the Kubernetes clusters that back your deployments, see the Managed Kubernetes Service guide.