YAML Overview

An overview of the various sections of the Replicated YAML.

Replicated will deploy an application that is defined in a YAML spec. We currently support deploying an application that uses the Replicated scheduler or deploying a Kubernetes application. Understanding how each of these will be installed and maintained is an important consideration when choosing the scheduler to use to deploy your application.

Replicated API Version

At the top of the YAML file, regardless of the scheduler, there must be a Replicated API version. The current API version to use is 2.30.2. Note: The Changelog tracks the API version.

replicated_api_version: 2.30.2

App Basics

The next section includes some basic information about your application release including the app name.

name: My Enterprise Application

Detailed App Properties Description

The properties section includes definitions of some optional (but recommended) application properties. For a list of available properties see Application Properties. You will notice the {{repl escape sequence. This invokes a Replicated template function, which will be discussed in more detail soon.

  app_url: http://{{repl ServiceAddress nginx }}
  console_title: My Enterprise Application

Support Page

Replicated supports displaying custom markdown content on the Support page of the admin console. This can be defined in the console_support_markdown key.

console_support_markdown: |
  Documentation for My Enterprise Application can be found [here](http://docs.my-enterprise-application.com).

  When contacting us for help, please download a Support Bundle (below) and attach it to the ticket.  The support
  bundle contains generic system information collected from this server.  It does _not_ contain any data from
  your instance of My Enterprise Application.

Snapshots (Backups)

The snapshots key is available to to enable and configure Snapshots. The following example will allow your customer to enable snapshots and create a script to run the snapshot.

  enabled: true
    pvc_names: [ "redis-data-volume" ]


The Replicated platform has some built in commands that make writing your configuration much more powerful. In the cmds section you can write commands which we will use later. These are useful to generate install-time values such as default certs/keys, randomized passwords, JWT token keys, etc.

- name: postgres_password
  cmd: random
  - "64"

Custom Metrics

Replicated can display custom metrics sent from the running instance to the Admin Console by including the stats names in a custom_metrics key.

- target: stats.gauges.myapp100.disk.*.*
  retention: "1s:10m,1m:20m,1h:30d"
  aggregation_method: "average"
  xfiles_factor: 0.3
- target: stats.gauges.myapp100.ping.*
  retention: "1s:7d"
  aggregation_method: "last"
  xfiles_factor: 0.6

Customer Config Section

This section is where you can configure fields to gather input from the user. This input can be used to further configure your application. The values here can be used as inputs to container environment variables, config files, and more using template functions or tested for validity with test procs. The config section is comprised of configuration groups and items. These items will render as a form in the Settings screen of the Replicated admin console.

- name: hostname
  title: Hostname
  description: Ensure this domain name is routable on your network.
  - name: hostname
    title: Hostname
    type: text
      name: host_ip
      value_at: 0

Admin Commands

Optionally you can expose admin commands in your containers. To configure the commands, add the following section. This example will allow the customer to run the redis-cli command with any arbitrary arguments. The command will be executed only in the Docker containers that match image name and version as well as defined in the named component. A command that will work with this configuration is replicated admin redis-cli info. Replicated will find the appropriate node to run this command on; the customer can run these on the main admin console.

- alias: redis-cli
  command: [redis-cli]
  run_type: exec
  component: DB
  container: redis

Custom Preflight Checks

A preflight check is a test that is run before installing and running an application. The test will analyze the system to determine if the environment meets the minimum requirements and provide feedback during installation if these requirements are not met.

    server_version: ">=1.9.3"
    api_versions: ["apps/v1", "core/v1"]
    cluster_size: "1"
    total_cores: "2"
    total_memory: 11.25GB