# Manage install types for a license

This topic describes how to manage which installation types and options are enabled for a license.

## Overview

You can control which installation methods are available to each of your customers by enabling or disabling **Install types** fields in the customer's license. 

The following shows an example of the **Install types** field in a license:

![Install types license fields](/images/license-install-types.png)

[View a larger version of this image](/images/license-install-types.png)

The installation types that are enabled or disabled for a license determine the following:
* The Replicated installers ([Replicated KOTS](../intro-kots), [Replicated Embedded Cluster](/vendor/embedded-overview), [Replicated kURL](/vendor/kurl-about)) that the customer's license entitles them to use 
* The installation assets and/or instructions provided in the Replicated Enterprise Portal for the customer
* The customer's KOTS Admin Console experience

Setting the supported installation types on a per-customer basis gives you greater control over the installation method used by each customer. It also allows you to provide a more curated Enterprise Portal experience, in that customers will only see the installation assets and instructions that are relevant to them.

## Understanding install types {#install-types}

In the customer license, under **Install types**, the **Available install types** field allows you to enable and disable different installation methods for the customer.

You can enable one or more installation types for a license.

The following describes each installation type available, as well as the requirements for enabling each type:

<table>
     <tr>
          <th width="30%">Install Type</th>
          <th width="35%">Description</th>
          <th>Requirements</th>
     </tr>
     <tr>
          <th>Existing Cluster (Helm CLI)</th>
          <td><p>Allows the customer to install with Helm in an existing cluster. The customer does not have access to the Replicated installers (Embedded Cluster, KOTS, and kURL).</p><p>When the <strong>Helm CLI Air Gap Instructions (Helm CLI only)</strong> install option is also enabled, the Enterprise Portal displays instructions on how to pull Helm installable images into a local repository. See <a href="#install-options">Understanding Additional Install Options</a> below.</p></td>
          <td>
            <p>The latest release promoted to the channel where the customer is assigned must contain one or more Helm charts. It can also include Replicated custom resources, such as the Embedded Cluster Config custom resource, the KOTS HelmChart, Config, and Application custom resources, or the Troubleshoot Preflight and SupportBundle custom resources.</p>
            Any other Kubernetes resources in the release (such as Kubernetes Deployments or Services) must include the `kots.io/installer-only` annotation.

            The `kots.io/installer-only` annotation indicates that the Kubernetes resource is used only by the Replicated installers (Embedded Cluster, KOTS, and kURL).

            Example:
            ```yaml
            apiVersion: v1
            kind: Service
            metadata:
              name: my-service
              annotations:
                kots.io/installer-only: "true"
            ```
          </td>
     </tr>
     <tr>
       <th>Existing Cluster (KOTS install)</th>
       <td>Allows the customer to install with Replicated KOTS in an existing cluster.</td>
       <td>
          <ul>
            <li>Your Vendor Portal team must have the KOTS entitlement</li>
            <li>The latest release promoted to the channel where the customer is assigned must contain Replicated custom resources, such as the HelmChart, Config, and Application custom resources. For more information, see [About Custom Resources](/reference/custom-resource-about).</li>
          </ul> 
       </td>   
     </tr>
     <tr>
        <th>kURL Embedded Cluster (first generation product)</th>
        <td>
          <p>Allows the customer to install with Replicated kURL on a VM or bare metal server.</p>
          <p><strong>Note:</strong> For new installations, enable Replicated Embedded Cluster (current generation product) instead of Replicated kURL (first generation product).</p>
        </td>
          <td>
            <ul>
              <li>Your Vendor Portal team must have the kURL entitlement</li>
              <li>A kURL installer spec must be promoted to the channel where the customer is assigned. For more information, see <a href="/vendor/packaging-embedded-kubernetes">Creating a kURL Installer</a>.</li>
            </ul>
          </td>     
     </tr>
     <tr>
       <th>Embedded Cluster (current generation product)</th>
       <td>Allows the customer to install with Replicated Embedded Cluster on a VM or bare metal server.</td>
       <td>
         <ul>
           <li>Your Vendor Portal team must have the Embedded Cluster entitlement</li>
           <li>The latest release promoted to the channel where the customer is assigned must contain an Embedded Cluster Config custom resource. For more information, see <a href="/reference/embedded-config">Embedded Cluster Config</a>.</li>
         </ul> 
       </td>   
     </tr>
</table>

## Understanding additional install options {#install-options}

After enabling installation types in the **Available install types** field, you can also enable the following options in the **Additional install options** field:

<table>
     <tr>
       <th width="30%">Install Type</th>
       <th>Description</th>
       <th>Requirements</th>
     </tr>
     <tr>
       <th>Helm CLI Air Gap Instructions (Helm CLI only)</th>
       <td><p>When enabled, a customer will see instructions on the Enterprise Portal on how to pull Helm installable images into their local repository.</p><p><strong>Helm CLI Air Gap Instructions</strong> is enabled by default when you select the <strong>Existing Cluster (Helm CLI)</strong> install type. For more information see [Installing with Helm in Air Gap Environments](/vendor/helm-install-airgap)</p></td>
       <td>The <strong>Existing Cluster (Helm CLI)</strong> install type must be enabled</td>
     </tr>
     <tr>
       <th>Air Gap Installation Option (Replicated Installers only)</th>
       <td><p>When enabled, new installations with this license have an option in their Enterprise Portal to install from an air gap package or do a traditional online installation.</p></td>
       <td>
          <p>At least one of the following Replicated install types must be enabled:</p>
          <ul>
           <li>Existing Cluster (KOTS install)</li>
           <li>kURL Embedded Cluster (first generation product)</li>
           <li>Embedded Cluster (current generation product)</li>
         </ul>
       </td>
     </tr>
</table>

## About migrating existing licenses to use install types

By default, when an existing customer license is migrated to include the Beta **Install types** field, the Vendor Portal automatically enables certain install types so that the customer does not experience any interruptions or errors in their deployment.

The Vendor Portal uses the following logic to enable install types for migrated licenses:

If the existing license has the **KOTS Install Enabled** field enabled, then the Vendor Portal enables the following install types in the migrated license by default:
* Existing Cluster (Helm CLI) 
* Existing Cluster (KOTS install)
* kURL Embedded Cluster (first generation product)
* Embedded Cluster (current generation product)

Additionally, if the existing **KOTS Install Enabled** license also has the **Airgap Download Enabled** option enabled, then the Vendor Portal enables both of the air gap install options in the migrated license (**Helm CLI Air Gap Instructions (Helm CLI only)** and **Air Gap Installation Option (Replicated Installers only)**).

Otherwise, if the **KOTS Install Enabled** field is disabled for the existing license, then the Vendor Portal enables only the **Existing Cluster (Helm CLI)** install type by default. All other install types will be disabled by default.