Preflight Checks

A guide to implementing Preflight Checks to analyze customer systems to determine if the environment meets the minimum requirements for installation or update.

Replicated runs a default set of preflight checks to ensure it can install an application.

You can specify additional cluster requirements for your application in the kubernetes.requirements section of your release YAML.

Preflight checks are run automatically during the application lifecyle and can be manually run for an existing installation by visiting /run-checks in the Replicated admin console.

Default Preflight Checks

Replicated will always run preflight checks to ensure that its own PersistentVolumeClaims have been bound. For non-airgap installs, it will also ping Replicated’s API to verify HTTP access. If your app has configured PVCs for snapshotting, Replicated will run a check to ensure that no restore is in progress.

Custom Preflight Checks

The kubernetes.requirements section of your Replicated yaml can be used to specify preflight checks against your customers’ Kubernetes cluster as a whole. For more flexibility, raw commands may be run in a Pod on any node.

Server Version

Use the server_vesion property to pin your application to a range of Kubernetes versions.

kubernetes:
  requirements:
    server_version: ">=1.11.1"

API Versions

Use the api_versions property to specify a list of Kubernetes API Groups and Versions that must be supported by the cluster.

kubernetes:
  requirements:
    api_versions: ["apps/v1", "batch/v1beta1"]

Cluster Size

Use the cluster_size property to require a minimum number of nodes in a cluster.

kubernetes:
  requirements:
    cluster_size: "1"

CPU & Memory

Use the total_cores and total_memory properties to enforce cummulative minimum resource levels.

kubernetes:
  requirements:
    total_cores: "2"
    total_memory: 11.25GB