# Online installation with Embedded Cluster (Beta)

This topic describes how to install an application in an online (internet-connected) environment with Replicated Embedded Cluster. For air gap installations, see [Air gap installation with Embedded Cluster](installing-embedded-air-gap). For an introduction to Embedded Cluster, see [Embedded Cluster overview](embedded-overview).

:::note
Choose the installation mode when you install the application. You cannot change the mode later. An instance installed in an online environment receives updates over the internet and cannot accept an air gap bundle. An instance installed in an air gap environment requires an air gap bundle for each update and does not check for new versions over the internet. To change the mode, reinstall the application in the target mode.
:::

## Prerequisites

Before you install, complete the following prerequisites:

* Ensure that your installation environment meets the Embedded Cluster requirements. See [Embedded Cluster Requirements](/embedded-cluster/v3/installing-embedded-requirements).

* The application release that you want to install must include an [Embedded Cluster Config](/embedded-cluster/v3/embedded-config).

* The Replicated SDK must be included as a dependency of your application's Helm chart. See [Package a Helm Chart for a Release](/vendor/helm-install-release).

* The license used to install must have the **Embedded Cluster Enabled** license field enabled. See [Create and Manage Customers](/vendor/releases-creating-customer).

* Ensure that the required domains are reachable from the installation host. See [Firewall openings for online installations](installing-embedded-requirements#firewall).

## Install using the Embedded Cluster UI

This section describes how to install using the interactive Embedded Cluster installer UI.

### Use the Enterprise Portal for a guided install

To use the guided install experience in the Enterprise Portal:

1. Log in to the [Replicated Enterprise Portal](/vendor/enterprise-portal-about) with a user for your test customer.

1. Follow the Linux install instructions for Embedded Cluster.

### Install using instructions from the Vendor Portal

To install from the Vendor Portal:

1. In the [Vendor Portal](https://vendor.replicated.com), open the **Customers** page and select a customer that belongs to the channel you use for testing.

1. At the top of the customer page, click **Install instructions** and select **Embedded Cluster**. (The control may appear as **Embedded Cluster install instructions**.)

   :::note
   You can also open the Enterprise Portal to get install and upgrade instructions.
   :::

1. In the **Select a version** field (or equivalent), choose the application version you promoted to that channel for testing, or leave the latest version selected if that is what you want to install.

1. On a Linux machine, run the three commands from the dialog in order: download the archive, extract it, then run the install command.

1. Complete any prompts from the install command (for example, acceptance of a self-signed certificate and installer password).

1. Open the URL from the install output in a browser to open the installer UI.

1. Log in to the installer with the password you set when you ran the install command.

1. On the **Configure** page, enter the configuration values for your application.

1. On the **Set Up** page, provide any information required for the cluster installation (for example, proxy settings).

1. On the **Run** page, start the installation and wait for it to complete.

1. On the **Finish** page, confirm completion. If your Replicated Application custom resource defines links, they appear on this page.

   :::note
   Links to port-forwarded services are not available on this page.
   :::

## Install using the CLI (Headless)

With headless installation, you provide all necessary installation assets with the installation command rather than through the UI. Assets include the license file and the application config values. During headless installations, any preflight checks defined for the application run automatically from the command line rather than appearing in the UI. You can also allow the installation to continue when checks fail, which is useful when testing in development environments. See [Bypass preflight failures during headless installation](#ignore-preflights) on this page.

To install using the CLI:

1. In the Vendor Portal, open the **Customers** page and select a customer that belongs to the channel you use for testing.

1. At the top of the customer page, click **Install instructions** and select **Embedded Cluster**. (The control may appear as **Embedded Cluster install instructions**.)

   :::note
   You can also open the Enterprise Portal to get install and upgrade instructions.
   :::

1. In the **Select a version** field (or equivalent), choose the application version you promoted to that channel for testing, or leave the latest version selected if that is what you want to install.

1. On a Linux machine, run the first two commands from the dialog (download the archive, then extract it).

1. For the third command, run `install` with the following flags:

   * `--headless` to run without the interactive installer UI.
   * `--config-values` with the path to your [ConfigValues](/reference/custom-resource-configvalues) file.
   * `--installer-password` with the password you will use to access the installer later.

   Example:

   ```bash
   sudo ./APP_SLUG install --license LICENSE_FILE --headless --config-values PATH_TO_CONFIGVALUES --installer-password INSTALLER_PASSWORD
   ```

   Replace `APP_SLUG`, `LICENSE_FILE`, `PATH_TO_CONFIGVALUES`, and `INSTALLER_PASSWORD` with the values for your environment. Add any other flags you need. For the full set of flags, see [install](embedded-cluster-install).

1. Monitor the command output until the install completes, then access your application as you normally do.


## (Optional) Bypass preflight failures during headless installation {#ignore-preflights}

In headless installations, you can allow the installation to continue when preflight checks fail. The checks still run and their results are still recorded. Only the decision to stop on a failure changes. This is useful for automated installations in development environments.

These flags apply to headless installations only. In the installer UI, the user is offered **Continue Anyway** on any failure that is not marked as required, whether or not these flags were passed.

Bypassing host preflight failures is _not_ recommended for production installations.

To bypass preflight failures, add either or both of the following flags to the `install` command:

```bash
--ignore-host-preflights --ignore-app-preflights
```

Neither flag overrides a check that the application vendor marked as required with `strict: true`, and neither applies when the preflight run itself fails to produce results. In both cases the installation stops. For more information, see [Whether users can bypass a failed check](/embedded-cluster/v3/embedded-using#preflight-bypass).

## Resume an interrupted installation {#resume}

If an installation is interrupted, for example by Ctrl+C, a crash, or a host reboot, rerun the same `install` command on the same host. Embedded Cluster detects the incomplete installation and continues from the phase it reached, rather than requiring you to reset the host and start again. This applies to installations performed with the UI and to headless installations.

When an interrupted installation is detected, the installer asks whether to resume it. Pass `--yes` to answer that prompt automatically in scripted installations.

If the application is already fully installed, this is not an interrupted installation, and the command directs you to use [upgrade](/embedded-cluster/v3/embedded-cluster-upgrade) instead.

:::note
Upgrades do not resume. When an upgrade is interrupted or fails, the incomplete revision blocks a new attempt until you rerun `upgrade` with the `--force` flag. See [upgrade](/embedded-cluster/v3/embedded-cluster-upgrade).
:::

### Flags that a resumed installation ignores {#resume-immutable-flags}

The cluster was already provisioned using the values from the original attempt, so a resumed installation keeps those values and ignores the following flags:

`--api-port`, `--cidr`, `--data-dir`, `--http-proxy`, `--https-proxy`, `--network-interface`, `--no-proxy`, `--roles`

If you pass any of them with a different value, the installer prints a warning naming the flags it ignored and continues with the saved values. This matters most when the interruption and the flag are related. For example, if you stopped an installation to correct a wrong `--cidr` or `--http-proxy`, rerunning `install` with the corrected value does _not_ apply it.

To change any of these values, reset the host and install again. See [reset](/embedded-cluster/v3/embedded-cluster-reset).