About custom resources
You can include custom resources in your releases to configure how Replicated builds, distributes, and installs your application. For example, custom resources define the configuration screen that customers see, the container images included in air gap bundles and in the image list for customer-managed (BYO) registries, preflight checks, support bundles, and backups.
Custom resources are packaged with your release but are not deployed to the cluster. The exception is specs that you package in a labeled Secret in your Helm chart, such as Support Bundle and Redactor specs, which are deployed to the cluster as Secrets. They are read by the Replicated Vendor Portal, the Replicated installers (Embedded Cluster, KOTS, and kURL), and the Troubleshoot kubectl plugins. Which custom resources apply depends on how your customers install your application. See Supported installation methods.
Several custom resources use the kots.io API group, such as the kots.io/v1beta2 HelmChart custom resource. The kots.io name is a historical naming convention. These custom resources are not limited to KOTS installations. For example, Embedded Cluster v3 requires the HelmChart custom resource, and the Vendor Portal uses the HelmChart builder key to generate the list of images for Helm air gap installations.
Custom resources
The following custom resources can be used in releases distributed with Replicated:
| API Group/Version | Kind | Description |
| app.k8s.io/v1beta1 | SIG Application | Defines links to the application. The links display on the Admin Console dashboard, or for Embedded Cluster v3, on the Installation Complete page and in the admin console. |
| embeddedcluster.replicated.com/v1beta1 | Config | Defines a Replicated Embedded Cluster distribution |
| cluster.kurl.sh/v1beta1 | Installer | Defines a Replicated kURL distribution |
| kots.io/v1beta1 | Application | Adds metadata to the user-facing UI for installations with a Replicated installer |
| kots.io/v1beta1 | Config | Defines a user-facing configuration screen for installations with a Replicated installer |
| kots.io/v1beta1 | ConfigValues | Provides values for the fields defined in the Config custom resource, such as for automated installations |
| kots.io/v1beta2 | HelmChart | Identifies an instantiation of a Helm chart |
| kots.io/v1beta1 | HelmChart (Deprecated) | Identifies an instantiation of a Helm chart. Use kots.io/v1beta2 instead. |
| kots.io/v1beta1 | LintConfig | Customizes the default rule levels for the release linter |
| troubleshoot.sh/v1beta2 troubleshoot.sh/v1beta3 | Preflight | Defines collectors and analyzers for preflight checks. The v1beta3 API version applies only to the Preflight custom resource. |
| troubleshoot.sh/v1beta2 | Redactor | Defines custom redactors for support bundles |
| troubleshoot.sh/v1beta2 | Support Bundle | Defines collectors and analyzers for support bundles. v1beta3 is not supported for support bundles on any installer. |
| velero.io/v1 | Backup | Defines a Velero backup request |
| velero.io/v1 | Restore | Defines a Velero restore request for disaster recovery with Embedded Cluster |
Supported installation methods
The following table shows which custom resources apply to each installation method. KOTS includes installations with KOTS in an existing cluster and with Replicated kURL. HelmChart v2 (kots.io/v1beta2) is the current version of the HelmChart custom resource.
| Custom resource | Helm CLI | Embedded Cluster v3 | Embedded Cluster v2 | KOTS |
|---|---|---|---|---|
| Application | Optional. See When to use additionalImages. | Partial. See Changes to Application custom resource fields. | Yes | Yes |
| Config | No | Yes | Yes | Yes |
| ConfigValues | No | With the --config-values flag only | With the --config-values flag | With the --config-values flag |
| HelmChart v2 | Recommended. See builder. | Required | Yes | Yes |
| HelmChart v1 (deprecated) | Deprecated. Use HelmChart v2. | Not supported. Use HelmChart v2. | Deprecated. Use HelmChart v2. | Deprecated. Use HelmChart v2. |
| Preflight | In a labeled Secret. See Helm and troubleshoot template example. | v1beta3 only | v1beta2, and v1beta3 in 2.19.16 and later | v1beta2, and v1beta3 in v1.134.0 and later |
| Redactor | In a labeled Secret. See Redactor. | Yes | Yes | Yes |
| Support Bundle | In a labeled Secret. See Helm and troubleshoot template example. | In a labeled Secret. See Helm and troubleshoot template example. | Yes | Yes |
| Backup | No | Yes. See Back up and restore Embedded Cluster v3. | Yes | Yes |
| Restore | No | Only when the release also includes a Backup | Only when the release also includes a Backup | No |
| Embedded Cluster Config | No | Yes | Yes. See Embedded Cluster Config (v2). | No |
| kURL Installer | No | No | No | kURL installations only |
| SIG Application | No | Yes | Yes | Yes |
The LintConfig custom resource applies to release linting, not to installation, so it isn't included in this table. For more information, see LintConfig.