diff --git a/.claude/skills/vale-prose-review/SKILL.md b/.claude/skills/vale-prose-review/SKILL.md
index 94f44e852c..ac840c9e90 100644
--- a/.claude/skills/vale-prose-review/SKILL.md
+++ b/.claude/skills/vale-prose-review/SKILL.md
@@ -56,6 +56,8 @@ Do not apply prose fixes to:
Vale sometimes flags these; ignore those warnings.
+**Exception — markdown inside HTML tables:** When `Vale.Spelling` flags a word like `_Using` inside an HTML `
` or `
` element, the cause is markdown italic syntax (`_text_`) used inside raw HTML. Do NOT add `_Using` to an accept list. Instead, convert the markdown formatting to HTML (`_foo_` → `foo`). See `references/vale-rules.md` for details.
+
### Step 5: Verify
After making all changes, do a quick pass to confirm:
@@ -85,7 +87,7 @@ See `references/vale-rules.md` for full fix patterns, before/after examples, and
**`Replicated.PositionalLanguage`** — Replace "above/below" with "the following" or a section link; replace directional "right/left" with "the following" or a UI element name.
-**`Replicated.Headings`** — Apply sentence case: lowercase all words except the first word and proper nouns (product names, trademarks).
+**`Replicated.Headings`** — Apply sentence case, with three exceptions: (1) **Skip entirely** when the heading IS a CLI command name or YAML field name (e.g., `# install (Beta)`, `## helmCharts`) — those follow the thing's own casing conventions. (2) **Parentheticals reset sentence case** — `(Beta)` is correct, not `(beta)`. (3) **Kubernetes custom resource kind names stay capitalized** — `Preflight`, `SupportBundle`, `Config`, `HelmChart` are proper names; check context to confirm the word refers to a `kind:` value before lowercasing. See `references/vale-rules.md` for full patterns.
**`Replicated.WordsToAvoid`** — Remove "easy/easily", "simple/simply", "just" (when minimizing). Rephrase or omit.
@@ -94,3 +96,4 @@ See `references/vale-rules.md` for full fix patterns, before/after examples, and
## Additional Resources
- **`references/vale-rules.md`** — Detailed fix patterns, edge cases, and examples for every common Replicated vale rule
+- **`README.md` (repo root)** — The Replicated Docs style guide lives in the "Style Guide" section of this file. Read it when deciding how to rewrite a flagged sentence, choose word alternatives, or apply formatting conventions. This is the authoritative source — do not rely on cached knowledge of its contents.
diff --git a/.claude/skills/vale-prose-review/references/vale-rules.md b/.claude/skills/vale-prose-review/references/vale-rules.md
index 47975dfdbb..89f7bb2167 100644
--- a/.claude/skills/vale-prose-review/references/vale-rules.md
+++ b/.claude/skills/vale-prose-review/references/vale-rules.md
@@ -28,6 +28,19 @@ Fix if the flagged word is a genuine misspelling. Vale flags these as errors, so
- Flagged words inside inline code or code blocks
- Acronyms in YAML frontmatter keys
+### Markdown formatting inside HTML tables
+
+When a file uses HTML `
`/`
`/`
` tags and the cell content contains markdown italic syntax (e.g., `_Using Embedded Cluster_`), vale treats the leading underscore as part of a word and flags `_Using` as a misspelling.
+
+**Do NOT add these to an accept list.** The fix is to convert the markdown formatting inside the HTML element to its HTML equivalent:
+
+| Before (markdown inside HTML) | After (HTML formatting) |
+|---|---|
+| `_Using Embedded Cluster_` | `Using Embedded Cluster` |
+| `**important**` | `important` |
+
+Apply this fix to the specific cell content where the flag appears. Other cells in the same table that use plain text are fine as-is.
+
---
## Replicated.Passive (suggestion)
@@ -101,6 +114,43 @@ Avoid directional and spatial language that assumes a page layout. Users may be
Headings should use sentence case: capitalize only the first word and proper nouns.
+### Skip this rule entirely for reference page headings
+
+Do NOT apply sentence case to headings that are the exact name of a CLI command, YAML field, or other code identifier. These headings document the thing itself, so their capitalization is determined by the thing's own conventions, not sentence case.
+
+**Skip examples (leave unchanged):**
+- `# install (Beta)` — CLI command name; do not capitalize "install"
+- `# create-join-bundle (Beta)` — CLI command name
+- `### helmCharts` — YAML field name; do not change to `### HelmCharts`
+- `#### roles.controller` — dotted YAML field path
+- `## metadata` — YAML field name
+- `## unsupportedOverrides` — YAML field name
+
+### Parentheticals reset sentence case
+
+A parenthetical like `(Beta)` or `(Preview)` opens a new "sentence" within the heading. Capitalize the first word inside the parenthetical.
+
+- `(Beta)` is correct — **not** `(beta)`
+- `(Preview)` is correct — **not** `(preview)`
+- `(Deprecated)` is correct — **not** `(deprecated)`
+
+### Kubernetes custom resource kinds — always capitalize
+
+Custom resource kind names are proper names and must remain capitalized wherever they appear in headings, even mid-sentence. The key examples in Replicated docs:
+
+- `Preflight`
+- `SupportBundle`
+- `Config`
+- `HelmChart`
+
+**How to decide:** Look at the surrounding context. If the page or section is about a Kubernetes custom resource and the word refers to its `kind:` value, keep it capitalized. If the word is used in a different sense (for example, `config` as a generic noun, or `install` as a CLI command), lowercase it per the normal rules.
+
+**Examples:**
+- `## About the Preflight custom resource` — `Preflight` is the kind name, keep capital P
+- `## Configure your HelmChart` — `HelmChart` is the kind name, keep capital H
+- `## Embedded Cluster Config` — `Config` is the kind name (`kind: Config`), keep capital C
+- `## Override the k0s config` — `config` here is a generic noun referring to a k0s configuration file, lowercase is correct
+
### What to capitalize (proper nouns and trademarks)
- Replicated product names: Embedded Cluster, KOTS, Vendor Portal, Enterprise Portal, Compatibility Matrix, Replicated SDK, Admin Console, Replicated CLI
@@ -109,17 +159,19 @@ Headings should use sentence case: capitalize only the first word and proper nou
### What to lowercase
-- Descriptive words that aren't proper names: "matrix" (when not a product name), "lifecycle", "overview", "portal" (when standalone), "guide", "about"
-- Status/qualifier words in parentheses: "(beta)", "(preview)", "(deprecated)"
+- Descriptive words that aren't proper names: "config", "overview", "lifecycle", "portal" (when standalone), "guide", "about"
+- Capitalized common words mid-heading: "Matrix" → "matrix" (when not a product name), "Values" → "values", "Built-In" → "built-in"
### Examples
| Before | After |
|---|---|
| `### Compatibility Matrix` | `### Compatibility matrix` |
-| `### Enterprise Portal (Beta)` | `### Enterprise Portal (beta)` |
+| `### Enterprise Portal (Beta)` | `### Enterprise Portal (Beta)` ← keep capital B |
| `## Commercial Software Distribution Lifecycle` | `## Commercial software distribution lifecycle` |
| `### Vendor Portal Overview` | `### Vendor Portal overview` |
+| `# install (Beta)` | `# install (Beta)` ← CLI command, do not change |
+| `### helmCharts` | `### helmCharts` ← YAML field, do not change |
**Note:** Only headings are subject to this rule. Body text references to product names keep their standard capitalization.
diff --git a/.vale.ini b/.vale.ini
index 51ff9b2bd6..89c2a2c585 100644
--- a/.vale.ini
+++ b/.vale.ini
@@ -14,11 +14,16 @@ IgnoredScopes = code, tt, a, img
mdx = md
[*.{md,mdx}]
+TokenIgnores = (\{#[^}]+\})
BasedOnStyles = Vale, Replicated
Vale.Terms = NO
+# Don't lint .claude skill/memory files
+[.claude/**]
+BasedOnStyles =
+
# Don't lint CLI docs
[docs/reference/kots-cli-*]
BasedOnStyles =
diff --git a/docs/enterprise/updating-apps.mdx b/docs/enterprise/updating-apps.mdx
index 766bec3641..292b98d2de 100644
--- a/docs/enterprise/updating-apps.mdx
+++ b/docs/enterprise/updating-apps.mdx
@@ -16,7 +16,7 @@ The Admin Console only deploys new versions automatically if preflight checks pa
Automatic updates have the following limitations:
-* Automatic updates are not supported for [Replicated Embedded Cluster](/vendor/embedded-overview) installations.
+* Automatic updates are not supported for [Replicated Embedded Cluster](/embedded-cluster/v3/embedded-overview) installations.
* Automatic updates are not supported for applications installed in air gap environments with no outbound internet access.
diff --git a/docs/intro-replicated.mdx b/docs/intro-replicated.mdx
index 1f57063566..a5472d33ea 100644
--- a/docs/intro-replicated.mdx
+++ b/docs/intro-replicated.mdx
@@ -29,7 +29,7 @@ The following diagram demonstrates the process of using the Replicated Platform
The diagram above shows an application that is packaged with the [**Replicated SDK**](/vendor/replicated-sdk-overview). The application is tested in clusters provisioned with the [**Replicated Compatibility Matrix (CMX)**](/vendor/testing-about), then added to a new release in the [**Vendor Portal**](/vendor/releases-about) using an automated CI/CD pipeline.
-The application is then installed by a customer ("Big Bank") on a VM. To install, the customer downloads their license, which grants proxy access to the application images through the [**Replicated proxy registry**](/vendor/private-images-about). They also download the installation assets for the [**Replicated Embedded Cluster**](/vendor/embedded-overview) installer.
+The application is then installed by a customer ("Big Bank") on a VM. To install, the customer downloads their license, which grants proxy access to the application images through the [**Replicated proxy registry**](/vendor/private-images-about). They also download the installation assets for the [**Replicated Embedded Cluster**](/embedded-cluster/v3/embedded-overview) installer.
Embedded Cluster runs [**preflight checks**](/vendor/preflight-support-bundle-about) to verify that the environment meets the installation requirements, provisions a cluster on the VM, and installs [**Replicated KOTS**](intro-kots) in the cluster. KOTS provides an [**Admin Console**](intro-kots#kots-admin-console) where the customer enters application-specific configurations, runs application preflight checks, optionally joins nodes to the cluster, and then deploys the application. After installation, customers can manage both the application and the cluster from the Admin Console.
@@ -45,7 +45,7 @@ Replicated Embedded Cluster is a Kubernetes installer based on the open source K
Additionally, each version of Embedded Cluster includes a specific version of [Replicated KOTS](#kots) that is installed in the cluster during installation. KOTS is used by Embedded Cluster to deploy the application and also provides the Admin Console UI where users can manage both the application and the cluster.
-For more information, see [Embedded Cluster Overview](/vendor/embedded-overview).
+For more information, see [Embedded Cluster Overview](/embedded-cluster/v3/embedded-overview).
### KOTS (Admin Console) {#kots}
@@ -169,9 +169,9 @@ Additionally, the Replicated proxy registry grants proxy access to private appli
Applications distributed with the Replicated Platform can support multiple different installation methods from the same application release, helping you to meet your customers where they are. For example:
-* Customers who are not experienced with Kubernetes or who prefer to deploy to a dedicated cluster in their environment can install on a VM or bare metal server with the Replicated Embedded Cluster installer. For more information, see [Embedded Cluster Overview](/vendor/embedded-overview).
+* Customers who are not experienced with Kubernetes or who prefer to deploy to a dedicated cluster in their environment can install on a VM or bare metal server with the Replicated Embedded Cluster installer. For more information, see [Embedded Cluster Overview](/embedded-cluster/v3/embedded-overview).
* Customers familiar with Kubernetes and Helm can install in their own existing cluster using the Helm CLI. For more information, see [Installing with Helm](/vendor/install-with-helm).
-* Customers installing into environments with limited or no outbound internet access (often referred to as air-gapped environments) can securely access and push images to their own internal registry, then install using Helm or a Replicated installer. For more information, see [Air Gap Installation with Embedded Cluster](/enterprise/installing-embedded-air-gap) and [Installing and Updating with Helm in Air Gap Environments](/vendor/helm-install-airgap).
+* Customers installing into environments with limited or no outbound internet access (often referred to as air-gapped environments) can securely access and push images to their own internal registry, then install using Helm or a Replicated installer. For more information, see [Air Gap Installation with Embedded Cluster](/embedded-cluster/v3/installing-embedded-air-gap) and [Installing and Updating with Helm in Air Gap Environments](/vendor/helm-install-airgap).
Additionally, to enhance the installation experience, the Enterprise Portal provides a customizable, web-based portal where your customers can view application install and update instructions, upload support bundles, view insights about their active and inactive instances, and more. For more information, see [About the Enteprise Portal](/vendor/enterprise-portal-about).
diff --git a/docs/intro.mdx b/docs/intro.mdx
index e0c6e118e6..48854ace8b 100644
--- a/docs/intro.mdx
+++ b/docs/intro.mdx
@@ -230,7 +230,7 @@ import clsx from "clsx";
Embedded Cluster 1.17.0 and later supports partial rollbacks of the application version. Partial rollbacks are supported only when rolling back to a version where there is no change to the [Embedded Cluster Config](/reference/embedded-config) compared to the currently-installed version. For example, users can roll back to release version 1.0.0 after upgrading to 1.1.0 only if both 1.0.0 and 1.1.0 use the same Embedded Cluster Config.
Embedded Cluster 1.17.0 and later supports partial rollbacks of the application version. Partial rollbacks are supported only when rolling back to a version where there is no change to the [Embedded Cluster Config](/embedded-cluster/v3/embedded-config) compared to the currently-installed version. For example, users can roll back to release version 1.0.0 after upgrading to 1.1.0 only if both 1.0.0 and 1.1.0 use the same Embedded Cluster Config.
Go templates are supported in the `serviceName` and `applicationUrl` fields only.
Using Go templates in the `localPort` or `servicePort` fields results in an installation error similar to the following: `json: cannot unmarshal string into Go struct field ApplicationPort.spec.ports.servicePort of type int`.
No. Setting targetKotsVersion to a version earlier than the KOTS version included in the specified version of Embedded Cluster will cause Embedded Cluster installations to fail with an error message like: Error: This version of App Name requires a different version of KOTS from what you currently have installed.. To avoid installation failures, do not use targetKotsVersion in releases that support installation with Embedded Cluster.
No. Setting minKotsVersion to a version later than the KOTS version included in the specified version of Embedded Cluster will cause Embedded Cluster installations to fail with an error message like: Error: This version of App Name requires a different version of KOTS from what you currently have installed.. To avoid installation failures, do not use minKotsVersion in releases that support installation with Embedded Cluster.
diff --git a/docs/reference/custom-resource-configvalues.mdx b/docs/reference/custom-resource-configvalues.mdx
index 1c863dfe62..9055edd368 100644
--- a/docs/reference/custom-resource-configvalues.mdx
+++ b/docs/reference/custom-resource-configvalues.mdx
@@ -12,7 +12,7 @@ For information about the Replicated KOTS Config custom resource, which is used
The ConfigValues resource lists the values and defaults for each application configuration item defined in the Replicated KOTS [Config](custom-resource-config) resource in the release.
-In automated or headless installations, end users provide a ConfigValues resource with the install command to set the application configuration values from the command line rather than through the Admin Console UI. For more information about performing headless installations with Replicated Embedded Cluster, see [Automate Embedded Cluster Installations](/enterprise/installing-embedded-automation). For information about performing headless installations with KOTS in an existing cluster, see [Install with the KOTS CLI](/enterprise/installing-existing-cluster-automation).
+In automated or headless installations, end users provide a ConfigValues resource with the install command to set the application configuration values from the command line rather than through the Admin Console UI. For more information about performing headless installations with Replicated Embedded Cluster, see [Online installation with Embedded Cluster](/embedded-cluster/v3/installing-embedded). For information about performing headless installations with KOTS in an existing cluster, see [Install with the KOTS CLI](/enterprise/installing-existing-cluster-automation).
Additionally, for each installation, the Admin Console automatically generates a ConfigValues resource and makes it available for download in the Admin Console **View files** tab or with the [`kots get config`](/reference/kots-cli-get-config) command. For more information, see [Download the ConfigValues for an Installation](#download) below.
diff --git a/docs/reference/template-functions-about.mdx b/docs/reference/template-functions-about.mdx
index 7dd836c7cc..3d38caff9d 100644
--- a/docs/reference/template-functions-about.mdx
+++ b/docs/reference/template-functions-about.mdx
@@ -30,7 +30,7 @@ You can use Replicated template functions in Kubernetes manifest files for appli
* Not all fields in the Config and Application custom resources support templating. For more information, see [Application](/reference/custom-resource-application) and [Item Properties](/reference/custom-resource-config#item-properties) in _Config_.
-* Templating is not supported in the [Embedded Cluster Config](/reference/embedded-config) resource.
+* Templating is not supported in the [Embedded Cluster Config](/embedded-cluster/v3/embedded-config) resource.
* Replicated template functions are not directly supported in Helm charts. For more information, see [Helm Charts](#helm-charts) below.
diff --git a/docs/reference/template-functions-examples.mdx b/docs/reference/template-functions-examples.mdx
index 2c513a62e4..e2d0affb14 100644
--- a/docs/reference/template-functions-examples.mdx
+++ b/docs/reference/template-functions-examples.mdx
@@ -81,7 +81,7 @@ A common use case for string comparison is to compare the rendered value of a Re
### Not equal to comparison
-It can be useful to compare the rendered value of a Replicated template function against another value to check if the two values are different. For example, you can conditionally show fields on the KOTS Admin Console **Config** page only when the Kubernetes distribution of the cluster where the application is deployed is _not_ [Replicated embedded cluster](/vendor/embedded-overview).
+It can be useful to compare the rendered value of a Replicated template function against another value to check if the two values are different. For example, you can conditionally show fields on the KOTS Admin Console **Config** page only when the Kubernetes distribution of the cluster where the application is deployed is _not_ [Replicated embedded cluster](/embedded-cluster/v3/embedded-overview).
diff --git a/docs/release-notes/rn-app-manager.md b/docs/release-notes/rn-app-manager.md
index 4a41e5c582..0ddb2700d8 100644
--- a/docs/release-notes/rn-app-manager.md
+++ b/docs/release-notes/rn-app-manager.md
@@ -1009,7 +1009,7 @@ Support for Kubernetes: 1.26, 1.27, 1.28, and 1.29
* Adds the ability to update the config values for any app version using the admin console.
### Improvements {#improvements-1-108-0}
-* Hides the **Application** and **Cluster Management** tabs on the admin console navbar during the initial installation flow with Replicated embedded cluster (Beta). For more information, see [Using Embedded Cluster](/vendor/embedded-overview).
+* Hides the **Application** and **Cluster Management** tabs on the admin console navbar during the initial installation flow with Replicated embedded cluster (Beta). For more information, see [Using Embedded Cluster](/embedded-cluster/v3/embedded-overview).
### Bug fixes {#bug-fixes-1-108-0}
* Fixes an issue where the license upload page flashed briefly before being redirected to the login page.
@@ -1393,8 +1393,7 @@ Released on July 19, 2023
Support for Kubernetes: 1.24, 1.25, 1.26 and 1.27
### New features {#new-features-1-101-0}
-* KOTS now supports running preflight checks defined in a Helm chart. If any Helm charts in a release contain preflight specifications, KOTS runs those. If no Helm charts exist or no preflights are defined in any Helm charts, KOTS uses the previous behavior and runs any preflights defined in a `kind: Preflight` file in the root of the release. For more information about preflights in Helm charts, see [Define Preflight Checks for Helm Installations
-](/vendor/preflight-helm-defining).
+* KOTS now supports running preflight checks defined in a Helm chart. If any Helm charts in a release contain preflight specifications, KOTS runs those. If no Helm charts exist or no preflights are defined in any Helm charts, KOTS uses the previous behavior and runs any preflights defined in a `kind: Preflight` file in the root of the release. For more information about preflights in Helm charts, see [Define Preflight Checks for Helm Installations](/vendor/preflight-defining).
### Improvements {#improvements-1-101-0}
* Updates the replicated/local-volume-provider image to v0.5.4 to resolve CVE-2023-0464 with high severity.
@@ -1653,7 +1652,7 @@ Support for Kubernetes: 1.23, 1.24, 1.25, and 1.26
### New features {#new-features-1-95-0}
* Adds an `--undeploy` flag to the [kots remove](/reference/kots-cli-remove) command that allows you to completely undeploy the application and delete its resources from the cluster.
-* Adds support for Azure Container Registry (ACR). For a full list of supported registries, see [Private Registry Requirements](/enterprise//installing-general-requirements#private-registry-requirements).
+* Adds support for Azure Container Registry (ACR). For a full list of supported registries, see [Private Registry Requirements](/enterprise/installing-general-requirements#private-registry-requirements).
* Status informers now support DaemonSets. See [Resource Statuses](/vendor/admin-console-display-app-status#resource-statuses).
* When using custom branding for the admin console, you can more easily change the color of groups of elements in the admin console (Beta).
@@ -1668,7 +1667,7 @@ Support for Kubernetes: 1.23, 1.24, 1.25, and 1.26
### Known issue {#known-issues-1-95-0}
-There is a known issue in the app manager v1.95.0 that causes application upgrades to fail for Helm charts that are deployed using the native Helm installation method. For more information about native Helm, see [How Replicated Deploys Helm Charts](/vendor/helm-overview#how-replicated-deploys-helm-charts) in _About Packaging with Helm_.
+There is a known issue in the app manager v1.95.0 that causes application upgrades to fail for Helm charts that are deployed using the native Helm installation method. For more information about native Helm, see [How KOTS deploys Helm charts](/vendor/helm-native-about#how-kots-deploys-helm-charts) in _About distributing Helm charts with KOTS_.
The upgrade failure occurs for a Helm chart when the following conditions are met:
- The Helm chart in the application has been installed previously using the app manager v1.94.2 or earlier.
@@ -1830,7 +1829,7 @@ Support for Kubernetes: 1.21, 1.22, 1.23, 1.24, and 1.25
### Bug fixes {#bug-fixes-1-91-2}
* Fixes overlapping labels on TLS configuration page.
-* Fixes an issue that caused the login button to be stuck in the "Logging in" state in Helm-managed mode (Beta). For more information on Helm-managed mode, see [Supporting helm CLI Installations (Beta)](/vendor/helm-install).
+* Fixes an issue that caused the login button to be stuck in the "Logging in" state in Helm-managed mode (Beta). For more information on Helm-managed mode, see [Supporting helm CLI Installations (Beta)](/vendor/install-with-helm).
* Fixes an issue where snapshots to NFS storage locations failed due to file permission issues in environments running without MinIO.
* Fixes an issue that caused the license upload to fail for applications that include Helm charts with [`required`](https://helm.sh/docs/howto/charts_tips_and_tricks/#using-the-required-function) values missing from configuration.
* Fixes an issue where release notes did not display when the release notes icon was clicked on the dashboard.
@@ -1892,7 +1891,7 @@ Support for Kubernetes: 1.21, 1.22, 1.23, 1.24, and 1.25
### New features {#new-features-1-90-0}
* Adds the ability to remove registry info from the **Registry settings** page.
-* Adds the ability to use status informers for Helm charts when running in Helm-managed mode (Beta). For more information on Helm-managed mode, see [Supporting helm CLI Installations (Beta)](/vendor/helm-install).
+* Adds the ability to use status informers for Helm charts when running in Helm-managed mode (Beta). For more information on Helm-managed mode, see [Supporting helm CLI Installations (Beta)](/vendor/install-with-helm).
### Improvements {#improvements-1-90-0}
* Updates the golang.org/x/text module in the kurl-proxy image used for embedded cluster installations, to resolve CVE-2022-32149 with high severity.
@@ -1913,7 +1912,7 @@ Support for Kubernetes: 1.21, 1.22, 1.23, 1.24, and 1.25
* Automatically migrates data from Postgres to rqlite and removes Postgres. Also introduces a new [kubectl kots enable-ha](/reference/kots-cli-enable-ha) command that runs rqlite as three replicas for higher availability. This command should only be run on clusters with at least three nodes. Now multiple node clusters deployed with the Kubernetes installer can use OpenEBS local PV, because data will be replicated across all three replicas of rqlite, allowing the app manager to run on any node in the cluster without requiring distributed storage like Rook provides.
### Bug fixes {#bug-fixes-1-89-0}
-* Fixes an issue that causes the Released timestamp to be the same for all releases on the [version history](/enterprise/updating-apps#update-an-application-in-the-admin-console) page in [Helm managed mode (Alpha)](/vendor/helm-install).
+* Fixes an issue that causes the Released timestamp to be the same for all releases on the [version history](/enterprise/updating-apps#update-an-application-in-the-admin-console) page in [Helm managed mode (Alpha)](/vendor/install-with-helm).
* Allows kots CLI commands to use the kubeconfig namespace by default if a flag is not provided.
* Fixes an issue where installing, updating, or configuring applications that have many images defined in KOTS custom resources (such as collectors, preflights, and analyzers) hangs or takes a long time.
* Fixes an issue that could cause the preflight progress bar to be stuck at nearly 100% but never complete.
@@ -1927,7 +1926,7 @@ Released on October 19, 2022
Support for Kubernetes: 1.21, 1.22, 1.23, 1.24, and 1.25
### New features {#new-features-1-88-0}
-* Adds ability to deploy an application with new values after syncing license from admin console in Helm-managed mode (Alpha). For more information on Helm-managed mode, see [Supporting helm CLI Installations (Alpha)](/vendor/helm-install).
+* Adds ability to deploy an application with new values after syncing license from admin console in Helm-managed mode (Alpha). For more information on Helm-managed mode, see [Supporting helm CLI Installations (Alpha)](/vendor/install-with-helm).
### Improvements {#improvements-1-88-0}
* Updates the kotsadm/dex image to v2.35.3 to resolve CVE-2022-27664 with high severity.
@@ -1954,7 +1953,7 @@ Support for Kubernetes: 1.21, 1.22, 1.23, 1.24, 1.25
### Bug fixes {#bug-fixes-1-87-0}
* Fixes an issue where log tabs for Helm installs were hidden.
-* Fixes a bug that caused pre-existing rows on the version history page in Helm-managed mode (Alpha) to be highlighted as newly available versions when the page is opened. For more information on Helm-managed mode, see [Supporting helm CLI Installations (Alpha)](/vendor/helm-install).
+* Fixes a bug that caused pre-existing rows on the version history page in Helm-managed mode (Alpha) to be highlighted as newly available versions when the page is opened. For more information on Helm-managed mode, see [Supporting helm CLI Installations (Alpha)](/vendor/install-with-helm).
* Fixes an issue that could cause embedded installations to fail with error "yaml: did not find expected node content" when installing behind an `HTTP_PROXY`.
* Fixes an issue where APIs that require an auth token were called while the client was logged out.
* Fixes an issue that caused the Troubleshoot page to display the support bundle collection progress bar even when a support bundle was not being collected.
@@ -1978,7 +1977,7 @@ Support for Kubernetes: 1.21, 1.22, 1.23, and 1.24
* Fixes an issue where the identity service login redirected to the login page after a successful login.
* Fixes an issue in the **Cluster Management** tab where the button for adding a primary node stopped working if the original join token expired.
* Fixes a bug that allowed the identity service route to be accessed even if the feature was not enabled.
-* Fixes a bug that caused the admin console Pod to terminate with an error due to a panic when checking for application updates in Helm-managed mode (Alpha). For more information on Helm-managed mode, see [Supporting helm CLI Installations (Alpha)](/vendor/helm-install).
+* Fixes a bug that caused the admin console Pod to terminate with an error due to a panic when checking for application updates in Helm-managed mode (Alpha). For more information on Helm-managed mode, see [Supporting helm CLI Installations (Alpha)](/vendor/install-with-helm).
## 1.86.1
@@ -1993,7 +1992,7 @@ Support for Kubernetes: 1.21, 1.22, 1.23, and 1.24
### Bug fixes {#bug-fixes-1-86-1}
* Fixes an issue where automatic update checks failed when the interval is too short for pending updates to be fetched.
* Fixes an issue where the automatic update checks modal didn't show custom schedules after they were saved. See [Configure Automatic Updates](/enterprise/updating-apps#configure-automatic-updates).
-* Fixes an issue in Helm-managed mode where checking for updates from the version history page did not show the "License is expired" error when the check failed due to an expired license. For more information on Helm-managed mode, see [Supporting helm CLI Installations (Alpha)](/vendor/helm-install).
+* Fixes an issue in Helm-managed mode where checking for updates from the version history page did not show the "License is expired" error when the check failed due to an expired license. For more information on Helm-managed mode, see [Supporting helm CLI Installations (Alpha)](/vendor/install-with-helm).
* Fixes an issue where some icons displayed in a very large size on Firefox. See [Known Issue](#known-issues-1-86-0) under _1.86.0_.
* Fixes an issue where the specified registry namespace was sometimes ignored for KOTS images if the specified registry hostname already included a namespace.
@@ -2023,7 +2022,7 @@ Support for Kubernetes: 1.21, 1.22, 1.23, and 1.24
* Fixes a bug where versions with `pending_download` status caused the `View files` tab to navigate to a version that had not been downloaded yet, resulting in a UI error.
* Fixes a bug where downloading an application version that is incompatible with the current admin console version made it impossible to check for updates until the admin console pod was restarted.
* Fixes a bug that caused CLI feedback spinners to spin indefinitely.
-* Fixes an issue that caused config templates to be applied to the wrong values.yaml file in Helm-managed mode (Alpha). For more information about Helm-managed mode, see [Supporting helm CLI Installations (Alpha)](/vendor/helm-install).
+* Fixes an issue that caused config templates to be applied to the wrong values.yaml file in Helm-managed mode (Alpha). For more information about Helm-managed mode, see [Supporting helm CLI Installations (Alpha)](/vendor/install-with-helm).
* Fixes an issue where the license was not synced when checking for application updates in Helm-managed mode (Alpha).
* Fixes a bug in Helm-managed mode (Alpha) that required you to visit the config screen to deploy a new version with required config items, even if all of the config values had been set in a previously deployed version.
* Fixes a bug that caused the currently deployed version to temporarily appear as a newly available version when an update check ran in Helm-managed mode (Alpha).
@@ -2046,7 +2045,7 @@ Released on September 19, 2022
Support for Kubernetes: 1.21, 1.22, 1.23, and 1.24
### New features {#new-features-1-85-0}
-* Adds the ability to automatically check for new chart versions that are available when running in Helm-managed mode (Alpha). For more information about Helm-managed mode, see [Supporting helm CLI Installations (Alpha)](/vendor/helm-install).
+* Adds the ability to automatically check for new chart versions that are available when running in Helm-managed mode (Alpha). For more information about Helm-managed mode, see [Supporting helm CLI Installations (Alpha)](/vendor/install-with-helm).
* In Helm-managed mode, new Helm chart versions that introduce a required configuration value must be configured before they can be deployed.
### Improvements {#improvements-1-85-0}
@@ -2098,11 +2097,11 @@ Support for Kubernetes: 1.21, 1.22, 1.23, and 1.24
* Icons supplied in the `icon` field of the Application custom resource can be square or circular.
### Bug fixes {#bug-fixes-1-83-0}
-* Fixes an issue that could cause inadvertent application upgrades when redeploying or updating the config of the currently installed revision in Helm-managed mode (Alpha). For more information about Helm-managed mode, see [Supporting helm CLI Installations (Alpha)](/vendor/helm-install).
-* Fixes an issue where the namespace was omitted from `helm upgrade` commands displayed in the admin console in Helm-managed mode (Alpha). For more information about Helm-managed mode, see [Supporting helm CLI Installations (Alpha)](/vendor/helm-install).
-* Removes the checkbox to automatically deploy updates in Helm-managed mode, because this is unsupported. For more information about Helm-managed mode, see [Supporting helm CLI Installations (Alpha)](/vendor/helm-install).
+* Fixes an issue that could cause inadvertent application upgrades when redeploying or updating the config of the currently installed revision in Helm-managed mode (Alpha). For more information about Helm-managed mode, see [Supporting helm CLI Installations (Alpha)](/vendor/install-with-helm).
+* Fixes an issue where the namespace was omitted from `helm upgrade` commands displayed in the admin console in Helm-managed mode (Alpha). For more information about Helm-managed mode, see [Supporting helm CLI Installations (Alpha)](/vendor/install-with-helm).
+* Removes the checkbox to automatically deploy updates in Helm-managed mode, because this is unsupported. For more information about Helm-managed mode, see [Supporting helm CLI Installations (Alpha)](/vendor/install-with-helm).
* Fixes an issue where updating the registry settings fails due to permission issues even when the provided credentials have access to the registry.
-* Fixes an issue in Helm-managed mode that could cause Replicated templates to show on the config page instead of the rendered values. For more information about Helm-managed mode, see [Supporting helm CLI Installations (Alpha)](/vendor/helm-install).
+* Fixes an issue in Helm-managed mode that could cause Replicated templates to show on the config page instead of the rendered values. For more information about Helm-managed mode, see [Supporting helm CLI Installations (Alpha)](/vendor/install-with-helm).
* Fixes an issue where trailing line breaks were removed during Helm chart rendering.
## 1.82.0
@@ -2114,7 +2113,7 @@ Support for Kubernetes: 1.21, 1.22, 1.23, and 1.24
### New features {#new-features-1-82-0}
* Adds support for a new air gap bundle format that supports image digests and deduplication of image layers shared across images in the bundle. The new air gap bundle format is in Beta. To enable this feature on your account, log in to your vendor portal account. Select **Support** > **Request a feature**, and submit a feature request for "new air gap bundle format".
* Adds support for deploying images that are referenced by digest or by digest and tag, rather than by tag alone, in online installations that have a private registry configured.
-* Adds support for displaying the config values for each revision deployed in Helm-managed mode (Alpha). For more information about Helm-managed mode, see [Supporting helm CLI Installations (Alpha)](/vendor/helm-install).
+* Adds support for displaying the config values for each revision deployed in Helm-managed mode (Alpha). For more information about Helm-managed mode, see [Supporting helm CLI Installations (Alpha)](/vendor/install-with-helm).
### Improvements {#improvements-1-82-0}
* Updates the `local-volume-provider image` to address CVE-2021-44716, CVE-2021-33194, and CVE-2022-21221 with high severity.
@@ -2131,7 +2130,7 @@ Released on August 22, 2022
Support for Kubernetes: 1.21, 1.22, 1.23, and 1.24
### Improvements {#improvements-1-81-1}
-* Show deploy logs for Helm charts when running in Helm-managed mode (Alpha). For more information about Helm-managed mode, see [Supporting helm CLI Installations (Alpha)](/vendor/helm-install).
+* Show deploy logs for Helm charts when running in Helm-managed mode (Alpha). For more information about Helm-managed mode, see [Supporting helm CLI Installations (Alpha)](/vendor/install-with-helm).
* Updates the Helm binary included in the kotsadm image from 3.8.2 to 3.9.3 to resolve CVE-2022-21698 and CVE-2022-27191 with high severity.
* Updates the golang.org/x/net module in the kurl-proxy image used for embedded cluster installations, to resolve CVE-2021-44716 with high severity.
* Updates the dex image from 2.32.0 to 2.33.0 to resolve CVE-2022-30065, CVE-2022-2097, and CVE-2022-27191 with high severity.
@@ -2167,7 +2166,7 @@ Released on August 8, 2022
Support for Kubernetes: 1.21, 1.22, 1.23, and 1.24
### New features {#new-features-1-80-0}
-* Displays the `helm rollback` command when deploying previous revisions from the version history page in Helm-managed mode (Alpha). For more information about Helm-managed mode, see [Using Helm to Install an Application (Alpha)](/vendor/helm-install).
+* Displays the `helm rollback` command when deploying previous revisions from the version history page in Helm-managed mode (Alpha). For more information about Helm-managed mode, see [Using Helm to Install an Application (Alpha)](/vendor/install-with-helm).
### Improvements {#improvements-1-80-0}
* Password complexity rules will now be shown when changing the password in the admin console.
@@ -2175,8 +2174,8 @@ Support for Kubernetes: 1.21, 1.22, 1.23, and 1.24
### Bug fixes {#bug-fixes-1-80-0}
* Fixes an issue where an ambiguous error message was shown when the endpoint field was modified in the license.
-* Fixes a bug that caused values from the HelmChart custom resource that did not use Replicated template functions to be rendered into the downloaded values.yaml file after updating the configuration in Helm-managed mode. For more information about Helm-managed mode, see [Using Helm to Install an Application (Alpha)](/vendor/helm-install).
-* Fixes an issue in Helm-managed mode that caused an error when clicking the **Analyze application** button on the Troubleshoot page in the admin console for an application that did not include a support bundle specification. For more information about Helm-managed mode, see [Helm-managed mode (Alpha)](/vendor/helm-install). For more information about analyzing an application, see [Create a Support Bundle Using the Admin Console](/enterprise/troubleshooting-an-app#create-a-support-bundle-using-the-admin-console) in *Troubleshooting an Application*.
+* Fixes a bug that caused values from the HelmChart custom resource that did not use Replicated template functions to be rendered into the downloaded values.yaml file after updating the configuration in Helm-managed mode. For more information about Helm-managed mode, see [Using Helm to Install an Application (Alpha)](/vendor/install-with-helm).
+* Fixes an issue in Helm-managed mode that caused an error when clicking the **Analyze application** button on the Troubleshoot page in the admin console for an application that did not include a support bundle specification. For more information about Helm-managed mode, see [Helm-managed mode (Alpha)](/vendor/install-with-helm). For more information about analyzing an application, see [Create a Support Bundle Using the Admin Console](/enterprise/troubleshooting-an-app#create-a-support-bundle-using-the-admin-console) in *Troubleshooting an Application*.
## 1.79.0
@@ -2186,16 +2185,16 @@ Support for Kubernetes: 1.21, 1.22, 1.23, and 1.24
### New features {#new-features-1-79-0}
* Adds an [HTTPSProxy](/reference/template-functions-static-context#httpsproxy) template function to return the address of the proxy that the Replicated admin console is configured to use.
-* Dynamically adds collectors, analyzers, and custom redactors when collecting support bundles from the [troubleshoot](/enterprise/troubleshooting-an-app#create-a-support-bundle-using-the-admin-console) page in [Helm-managed mode (Alpha)](/vendor/helm-install).
+* Dynamically adds collectors, analyzers, and custom redactors when collecting support bundles from the [troubleshoot](/enterprise/troubleshooting-an-app#create-a-support-bundle-using-the-admin-console) page in [Helm-managed mode (Alpha)](/vendor/install-with-helm).
### Improvements {#improvements-1-79-0}
-* Removes the "Add new application" option when running the admin console in [Helm-managed mode (Alpha)](/vendor/helm-install).
+* Removes the "Add new application" option when running the admin console in [Helm-managed mode (Alpha)](/vendor/install-with-helm).
### Bug fixes {#bug-fixes-1-79-0}
* Fixes an issue that caused the [affix](/reference/custom-resource-config#affix) property of config items to be ignored.
* Fixes an issue that caused the [help_text](/reference/custom-resource-config#help_text) property of config items to be ignored.
* Fixes an issue that caused the license card to not be updated when switching applications in the admin console.
-* Fixes the ordering of versions on the [version history](/enterprise/updating-apps#update-an-application-in-the-admin-console) page in [Helm-managed mode (Alpha)](/vendor/helm-install).
+* Fixes the ordering of versions on the [version history](/enterprise/updating-apps#update-an-application-in-the-admin-console) page in [Helm-managed mode (Alpha)](/vendor/install-with-helm).
* Fixes the display of node statistics in the Cluster Management tab.
* Fixes an issue where legacy encryption keys were not loaded properly during snapshot restores.
* Fixes an issue where snapshots would fail if a wildcard (`"*"`) was listed in the `additionalNamespaces` field of an Application manifest.
@@ -2208,16 +2207,16 @@ Released on July 28, 2022
Support for Kubernetes: 1.21, 1.22, 1.23, and 1.24
### New features {#new-features-1-78-0}
-* The analyze application button on the [Troubleshoot tab](/enterprise/troubleshooting-an-app) now works in [Helm managed mode (Alpha)](/vendor/helm-install).
-* Adds a deploy modal for versions on the [version history](/enterprise/updating-apps#update-an-application-in-the-admin-console) page in [Helm managed mode (Alpha)](/vendor/helm-install).
+* The analyze application button on the [Troubleshoot tab](/enterprise/troubleshooting-an-app) now works in [Helm managed mode (Alpha)](/vendor/install-with-helm).
+* Adds a deploy modal for versions on the [version history](/enterprise/updating-apps#update-an-application-in-the-admin-console) page in [Helm managed mode (Alpha)](/vendor/install-with-helm).
### Improvements {#improvements-1-78-0}
* Upgrades the internal database (Postgres) used by the admin console from `10.21-alpine` to `14.4-alpine`.
### Bug fixes {#bug-fixes-1-78-0}
* Fixes an issue where all [dashboard links](/vendor/admin-console-adding-buttons-links) were rewritten to use the admin console hostname instead of the hostname provided in the application manifest.
-* Fixes a bug that caused errors when trying to generate `helm upgrade` commands from the [config page](/vendor/config-screen-about#admin-console-config-tab) in [Helm managed mode (Alpha)](/vendor/helm-install).
-* Fixes a bug where the same version could be listed twice on the [version history](/enterprise/updating-apps#update-an-application-in-the-admin-console) page in [Helm managed mode (Alpha)](/vendor/helm-install).
+* Fixes a bug that caused errors when trying to generate `helm upgrade` commands from the [config page](/vendor/config-screen-about#admin-console-config-tab) in [Helm managed mode (Alpha)](/vendor/install-with-helm).
+* Fixes a bug where the same version could be listed twice on the [version history](/enterprise/updating-apps#update-an-application-in-the-admin-console) page in [Helm managed mode (Alpha)](/vendor/install-with-helm).
## 1.77.0
@@ -2226,9 +2225,9 @@ Released on July 22, 2022
Support for Kubernetes: 1.21, 1.22, 1.23, and 1.24
### New features {#new-features-1-77-0}
-* Displays version history information for Helm charts when running in Helm-managed mode (Alpha). For more information, see [Using Helm to Install an Application (Alpha)](/vendor/helm-install)
-* License information can now be synced from the admin console's Dashboard and License pages for Helm charts when running in Helm-managed mode (Alpha). For more information, see [Using Helm to Install an Application (Alpha)](/vendor/helm-install)
-* Admin console now supports limited RBAC mode when running in Helm-managed mode (Alpha). For more information, see [Using Helm to Install an Application (Alpha)](/vendor/helm-install)
+* Displays version history information for Helm charts when running in Helm-managed mode (Alpha). For more information, see [Using Helm to Install an Application (Alpha)](/vendor/install-with-helm)
+* License information can now be synced from the admin console's Dashboard and License pages for Helm charts when running in Helm-managed mode (Alpha). For more information, see [Using Helm to Install an Application (Alpha)](/vendor/install-with-helm)
+* Admin console now supports limited RBAC mode when running in Helm-managed mode (Alpha). For more information, see [Using Helm to Install an Application (Alpha)](/vendor/install-with-helm)
### Improvements {#improvements-1-77-0}
* Better handling for network errors on the Helm install modal in Helm-managed mode (Alpha).
@@ -2238,7 +2237,7 @@ Support for Kubernetes: 1.21, 1.22, 1.23, and 1.24
### Bug fixes {#bug-fixes-1-77-0}
* Fixes an issue that caused automatic deployments not to work on channels where semantic versioning was disabled, unless the version labels were valid [semantic versions](https://semver.org/).
* Fixes an issue that caused errors after the admin console pod restart until the Dashboard tab is visited in Helm-managed mode (Alpha).
-* Begins using a temp directory instead of the current directory, to avoid file permissions issues when generating the `helm upgrade` command after editing the config. For more information, see [Using Helm to Install an Application (Alpha)](/vendor/helm-install).
+* Begins using a temp directory instead of the current directory, to avoid file permissions issues when generating the `helm upgrade` command after editing the config. For more information, see [Using Helm to Install an Application (Alpha)](/vendor/install-with-helm).
## 1.76.1
@@ -2260,10 +2259,10 @@ Released on July 12, 2022
Support for Kubernetes: 1.21, 1.22, 1.23, and 1.24
### New features {#new-features-1-76-0}
-* Displays license information on the admin console Dashboard and License page for Helm charts when running in Helm-managed mode (Alpha). For more information, see [Using Helm to Install an Application (Alpha)](/vendor/helm-install)
+* Displays license information on the admin console Dashboard and License page for Helm charts when running in Helm-managed mode (Alpha). For more information, see [Using Helm to Install an Application (Alpha)](/vendor/install-with-helm)
### Bug fixes {#bug-fixes-1-76-0}
-* Fixes a bug that causes links defined in the [SIG Application custom resource](/reference/custom-resource-sig-application) to not be rewritten to the hostname used in the browser.
+* Fixes a bug that causes links defined in the [SIG Application custom resource](/reference/custom-resource-application) to not be rewritten to the hostname used in the browser.
## 1.75.0
@@ -2272,7 +2271,7 @@ Released on July 5, 2022
Support for Kubernetes: 1.21, 1.22, 1.23, and 1.24
### New features {#new-features-1-75-0}
-* Adds a `helmUpgradeFlags` parameter to the [HelmChart custom resource](/reference/custom-resource-helmchart) when [Installing with Native Helm](/vendor/helm-overview). The specified flags are passed to the `helm upgrade` command. Note that the Replicated app manager uses `helm upgrade` for all installations, including initial installations, and not just when the application is upgraded.
+* Adds a `helmUpgradeFlags` parameter to the [HelmChart custom resource](/reference/custom-resource-helmchart) when [Installing with Native Helm](/vendor/helm-native-about). The specified flags are passed to the `helm upgrade` command. Note that the Replicated app manager uses `helm upgrade` for all installations, including initial installations, and not just when the application is upgraded.
### Bug fixes {#bug-fixes-1-75-0}
* Addresses the following critical severity CVEs: CVE-2022-26945, CVE-2022-30321, CVE-2022-30322, and CVE-2022-30323.
@@ -2300,14 +2299,14 @@ Released on June 24, 2022
Support for Kubernetes: 1.21, 1.22, 1.23, and 1.24
### New features {#new-features-1-73-0}
-* Adds a `releaseName` parameter to the [HelmChart custom resource](/reference/custom-resource-helmchart) when [Installing with Native Helm](/vendor/helm-overview). Defaults to the chart name. Specifying a `releaseName` also allows you to deploy multiple instances of the same Helm chart, which was previously impossible.
+* Adds a `releaseName` parameter to the [HelmChart custom resource](/reference/custom-resource-helmchart) when [Installing with Native Helm](/vendor/helm-native-about). Defaults to the chart name. Specifying a `releaseName` also allows you to deploy multiple instances of the same Helm chart, which was previously impossible.
### Improvements {#improvements-1-73-0}
* Improved UX on the version history page when the application is up to date or when there are new available versions.
### Bug fixes {#bug-fixes-1-73-0}
* Fixes an issue where the preflight screen was displayed even if no analyzers were run.
-* Fixes an issue that prevented you from excluding a Helm chart that was previously included when [Installing with Native Helm](/vendor/helm-overview).
+* Fixes an issue that prevented you from excluding a Helm chart that was previously included when [Installing with Native Helm](/vendor/helm-native-about).
## 1.72.2
@@ -2407,7 +2406,7 @@ Released on May 2, 2022
Support for Kubernetes: 1.21, 1.22, and 1.23
### New features
-* Adds a `weight` parameter to the [Helm custom resource](/reference/custom-resource-helmchart) when [Installing with Native Helm](/vendor/helm-overview). Charts are applied by weight in ascending order, with lower numbered weights applied first.
+* Adds a `weight` parameter to the [Helm custom resource](/reference/custom-resource-helmchart) when [Installing with Native Helm](/vendor/helm-native-about). Charts are applied by weight in ascending order, with lower numbered weights applied first.
* Adds the ability to change the admin console password from the **Change Password** link in the admin console page footer.
* Adds the ability to download `Config` file types for a given application sequence.
* Adds a template function `YamlEscape` to escape a string for inclusion in a YAML file.
@@ -2494,9 +2493,9 @@ Released on March 21, 2022
Support for Kubernetes: 1.21, 1.22, and 1.23
### New features
-* Adds support for installing a specific application version. For more information about installing a specific application version, see [Online Installation in Existing Clusters](/enterprise/installing-existing-cluster and [Online Installation with the Kubernetes Installer](/enterprise/installing-embedded-cluster).
+* Adds support for installing a specific application version. For more information about installing a specific application version, see [Online Installation in Existing Clusters](/enterprise/installing-existing-cluster) and [Online installation with kURL](/enterprise/installing-kurl).
* Extends the ability of status informers to detect if the application is being updated.
-* Adds the ability to provide a strict preflight, which cannot be skipped and must not have any failure outcomes. Any failure outcomes will prevent the user from deploying the application. For more information on strict preflights, see [Define KOTS Preflight Checks](/vendor/preflight-kots-defining).
+* Adds the ability to provide a strict preflight, which cannot be skipped and must not have any failure outcomes. Any failure outcomes will prevent the user from deploying the application. For more information on strict preflights, see [Define KOTS Preflight Checks](/vendor/preflight-defining).
* New versions can automatically be deployed in the admin console, regardless of whether the vendor uses semantic versioning. For more information about automatically deploying new versions, see [Configure Automatic Updates](/enterprise/updating-apps#configure-automatic-updates) in Updating an Application.
### Bug fixes
@@ -2514,7 +2513,7 @@ Support for Kubernetes: 1.21, 1.22, and 1.23
### New features
* Adds the ability to exclude the applications or the admin console from full snapshot restores using the [`kots restore`](/reference/kots-cli-restore-index) command.
-* Adds the ability to display the command to restore only the admin console from a [full snapshot](/enterprise/snapshots-understanding#full-snapshots-recommended) on the Full Snapshots page in the admin console.
+* Adds the ability to display the command to restore only the admin console from a [full snapshot](/enterprise/snapshots-creating#full) on the Full Snapshots page in the admin console.
### Improvements
* Adds the [`--no-port-forward`](/reference/kots-cli-install#usage) flag to the `kots install` command to disable automatic port-forwarding. The old `--port-forward` flag has been deprecated.
@@ -2605,7 +2604,7 @@ Supported on Kubernetes: 1.20, 1.21, 1.22, and 1.23
### Bug fixes
* Fixes a bug that caused images to be pushed to a private registry multiple times during an air gap installation.
* Fixes a bug that erroneously displays a message to edit the current config when performing a new installation.
-* Fixes an issue that caused [image garbage collection](../enterprise/image-registry-embedded-cluster#enable-and-disable-image-garbage-collection) to only remove images with the "latest" tag.
+* Fixes an issue that caused [image garbage collection](/enterprise/image-registry-kurl#disable-image-garbage-collection) to only remove images with the "latest" tag.
## 1.60.0
@@ -2621,7 +2620,7 @@ Supported on Kubernetes: 1.20, 1.21, and 1.22
* Updates Postgres to version 10.19.
### Bug fixes
-* Fixes an issue that caused images to be pushed multiple times during an [airgap installation](/enterprise/installing-existing-cluster-airgapped) when the [Native Helm](/vendor/helm-overview#native) feature is enabled.
+* Fixes an issue that caused images to be pushed multiple times during an [airgap installation](/enterprise/installing-existing-cluster-airgapped) when the [Native Helm](/vendor/helm-native-about#v1beta1) feature is enabled.
* Fixes an issue that prevented the deployment status labels from breaking into multiple lines on small displays.
## 1.59.3
@@ -2676,7 +2675,7 @@ Supported on Kubernetes: 1.19, 1.20, and 1.21
* Fixes a bug that caused analyzers to surface errors in namespaces not used by the application when the admin console has cluster access in existing cluster installations.
* Fixes an issue that caused image pull secrets to be rendered in the admin console namespace instead of the `namespace` specified in the kots.io/v1beta1.HelmChart when using `useHelmInstall`.
* Fixes the `kots pull` CLI command to properly inject `imagePullSecrets` when using Helm Charts with `useHelmInstall` set to `true`.
-* Fixes a bug that causes application images to not be deleted from a [private registry](../enterprise/image-registry-embedded-cluster).
+* Fixes a bug that causes application images to not be deleted from a [private registry](/enterprise/image-registry-kurl).
* Fixes a bug that causes images included in support bundle's [`run` collector](https://troubleshoot.sh/docs/collect/run/#image-required) to not be deleted from a private registry.
## 1.58.2
diff --git a/docs/release-notes/rn-embedded-cluster.md b/docs/release-notes/rn-embedded-cluster.md
index b8fe1f55ae..7c654c9714 100644
--- a/docs/release-notes/rn-embedded-cluster.md
+++ b/docs/release-notes/rn-embedded-cluster.md
@@ -6,7 +6,7 @@ pagination_prev: null
# Embedded Cluster release notes
-This topic contains release notes for the [Replicated Embedded Cluster](/vendor/embedded-overview) installer. The release notes list new features, improvements, bug fixes, known issues, and breaking changes.
+This topic contains release notes for the [Replicated Embedded Cluster](/embedded-cluster/v3/embedded-overview) installer. The release notes list new features, improvements, bug fixes, known issues, and breaking changes.
Additionally, these release notes list the versions of Kubernetes and Replicated KOTS that are available with each version of Embedded Cluster.
@@ -184,7 +184,7 @@ Released on January 14, 2026
### New features {#new-features-2-13-3}
-* Adds the ability to override CPU and memory requests and limits for kotsadm and rqlite through [unsupportedOverrides](/reference/embedded-config#unsupportedoverrides) in the Embedded Cluster config.
+* Adds the ability to override CPU and memory requests and limits for kotsadm and rqlite through [unsupportedOverrides](/embedded-cluster/v3/embedded-config#unsupportedoverrides) in the Embedded Cluster config.
### Bug fixes {#bug-fixes-2-13-3}
* Fixes an issue introduced in 2.13.1 and 2.13.2 where application upgrades could fail due to Helm v4’s default server-side apply by pinning to Helm v3 for compatibility.
@@ -607,7 +607,7 @@ Released on July 2, 2025
### Improvements {#improvements-2-7-1}
-* Improves the default host support bundle generated by `./APP_SLUG support-bundle` with better diagnostics for different installation scenarios (such as air gap or proxy installations) and additional network diagnostics collecion. For more information, see [About the Default Embedded Cluster Support Bundle Spec](/vendor/embedded-troubleshooting#about-the-default-embedded-cluster-support-bundle-spec).
+* Improves the default host support bundle generated by `./APP_SLUG support-bundle` with better diagnostics for different installation scenarios (such as air gap or proxy installations) and additional network diagnostics collecion. For more information, see [About the Default Embedded Cluster Support Bundle Spec](/embedded-cluster/v3/embedded-troubleshooting#about-the-default-embedded-cluster-support-bundle-spec).
* Updates the Embedded Cluster CLI help menu to use the applciation name instead of the binary name (for example, "Manage the Wordpress Enterprise Admin Console" instead of "Manage the wordpress-enterprise Admin Console").
* Adds a preflight check to block XFS filesystems with `ftype=0` (`d_type` disabled), which are incompatible with the container runtime.
@@ -669,7 +669,7 @@ Released on May 6, 2025
:::note
Configuring node roles with the `roles` key is still beta.
:::
-* Adds the `join print-command` command, which prints the commands that can be run on nodes to join them to the cluster. This command allows users to access the required join commands from the CLI, rather than needing to go to the Admin Console UI. This is particularly useful for CLI-based and automated creation of multi-node clusters. For more information, see [Automate Controller Node Joins](/enterprise/embedded-manage-nodes#automate-node-joins) in _Manage Multi-Node Clusters with Embedded Cluster_.
+* Adds the `join print-command` command, which prints the commands that can be run on nodes to join them to the cluster. This command allows users to access the required join commands from the CLI, rather than needing to go to the Admin Console UI. This is particularly useful for CLI-based and automated creation of multi-node clusters. For more information, see [Automate Controller Node Joins](/embedded-cluster/v3/embedded-manage-nodes#automate-node-joins) in _Manage Multi-Node Clusters with Embedded Cluster_.
* Adds support for the **Multi-node Cluster** license field, which allows you to choose whether a customer can install multi-node Embedded Clusters. If this license option is disabled, customers are not prompted to join nodes during the installation, and the **Add node** button is not present on the **Nodes** page. For more information, see [Built-In License Fields](/vendor/licenses-using-builtin-fields).
### Improvements {#improvements-2-4-0}
@@ -679,17 +679,17 @@ Released on May 6, 2025
* Ensures that the version of the binary used to join a node is the same version that is currently installed on other nodes.
* When prompted to enable high availability while joining a third or more controller node, the default response is yes to encourage users to enable high availability.
- For more information about joining nodes, see [Manage Multi-Node Clusters with Embedded Cluster](/enterprise/embedded-manage-nodes#automate-node-joins).
+ For more information about joining nodes, see [Manage Multi-Node Clusters with Embedded Cluster](/embedded-cluster/v3/embedded-manage-nodes#automate-node-joins).
* Adds support for configuring `--http-proxy`, `--https-proxy`, and `--no-proxy` for the `install` command through environment variables. The following environment variables can be used instead of the command line flags:
* `http_proxy` or `HTTP_PROXY`
* `https_proxy` or `HTTPS_PROXY`
* `no_proxy` or `NO_PROXY`
- For more information, see [Embedded Cluster Install Options](/reference/embedded-cluster-install).
+ For more information, see [Embedded Cluster Install Options](/embedded-cluster/v3/embedded-cluster-install).
### Bug fixes {#bug-fixes-2-4-0}
* Fixes an issue that prevented a successful upgrade when a Helm extension was manually deleted or corrupted before the upgrade was attempted.
-* Fixes an issue that prevented joining nodes after upgrading to a version that added [`workerProfiles`](/reference/embedded-config#configure-the-kubelet) in its `unsupportedOverrides` configuration.
+* Fixes an issue that prevented joining nodes after upgrading to a version that added [`workerProfiles`](/embedded-cluster/v3/embedded-config#configure-the-kubelet) in its `unsupportedOverrides` configuration.
* Fixes an issue where the `reset` command appeared to fail when parts of the installation were already cleaned up or were never successfully installed.
## 2.3.1
@@ -723,7 +723,7 @@ Released on April 8, 2025
## 2.3.0 - Removed
:::important
-Embedded Cluster 2.3.0 has been removed because new installations do not work unless a worker profile is specified in the Embedded Cluster Config under `unsupportedOverrides`. For more information, see [Configure the Kubelet with k0s Worker Profiles](/reference/embedded-config#configure-the-kubelet). Upgrades to 2.3.0 were not affected because worker profiles are not used on upgrades. New upgrades to 2.3.0 are not available. Any users that already upgraded can continue to use 2.3.0.
+Embedded Cluster 2.3.0 has been removed because new installations do not work unless a worker profile is specified in the Embedded Cluster Config under `unsupportedOverrides`. For more information, see [Configure the Kubelet with k0s Worker Profiles](/embedded-cluster/v3/embedded-config#configure-the-kubelet). Upgrades to 2.3.0 were not affected because worker profiles are not used on upgrades. New upgrades to 2.3.0 are not available. Any users that already upgraded can continue to use 2.3.0.
:::
Released on April 3, 2025
@@ -957,7 +957,7 @@ Released on January 24, 2025
### New features {#new-features-1-22-0}
-* Updates the disaster recovery alpha feature so that rather than having to apply specific labels to all the resources you want backed up, you now have full control over how your application is backed up and restored. Specifically, you now provide a Velero Backup resource and a Restore resource in your application release. These resources are used to back up and restore your application, separate from the Embedded Cluster infrastructure. For more information, see [Disaster Recovery for Embedded Cluster](/vendor/embedded-disaster-recovery).
+* Updates the disaster recovery alpha feature so that rather than having to apply specific labels to all the resources you want backed up, you now have full control over how your application is backed up and restored. Specifically, you now provide a Velero Backup resource and a Restore resource in your application release. These resources are used to back up and restore your application, separate from the Embedded Cluster infrastructure. For more information, see [Disaster Recovery for Embedded Cluster](/embedded-cluster/v2/embedded-disaster-recovery).
## 1.21.0
@@ -1086,7 +1086,7 @@ Released on November 4, 2024
### New features {#new-features-1-17-0}
-* Adds support for partial rollbacks. Partial rollbacks are supported only when rolling back to a version where there is no change to the Embedded Cluster Config compared to the currently-installed version. For example, users can roll back to release version 1.0.0 after upgrading to 1.1.0 only if both 1.0.0 and 1.1.0 use the same [Embedded Cluster Config](/reference/embedded-config). For more information about how to enable rollbacks for your application in the KOTS Application custom resource, see [allowRollback](/reference/custom-resource-application#allowrollback) in _Application_.
+* Adds support for partial rollbacks. Partial rollbacks are supported only when rolling back to a version where there is no change to the Embedded Cluster Config compared to the currently-installed version. For example, users can roll back to release version 1.0.0 after upgrading to 1.1.0 only if both 1.0.0 and 1.1.0 use the same [Embedded Cluster Config](/embedded-cluster/v3/embedded-config). For more information about how to enable rollbacks for your application in the KOTS Application custom resource, see [allowRollback](/reference/custom-resource-application#allowrollback) in _Application_.
* Introduces a new landing page and guided installation workflow for the Admin Console.
### Improvements {#improvements-1-17-0}
@@ -1122,9 +1122,9 @@ Released on October 23, 2024
### New features {#new-features-1-16-0}
* Adds support for Kubernetes 1.30 and removes support for 1.28.
-* Adds a `--data-dir` flag to the `install` and `restore` commands so the data directory can be specified. By default, the data directory is `/var/lib/embedded-cluster`. If the `--data-dir` flag was provided at install time, then the same data directory must be provided when restoring. For more information, see [install](/reference/embedded-cluster-install) and [Disaster Recovery for Embedded Cluster](/vendor/embedded-disaster-recovery).
+* Adds a `--data-dir` flag to the `install` and `restore` commands so the data directory can be specified. By default, the data directory is `/var/lib/embedded-cluster`. If the `--data-dir` flag was provided at install time, then the same data directory must be provided when restoring. For more information, see [install](/embedded-cluster/v3/embedded-cluster-install) and [Disaster Recovery for Embedded Cluster](/embedded-cluster/v2/embedded-disaster-recovery).
* Adds an `admin-console reset-password` command that allows resetting the password for the Admin Console.
-* Adds a `--cidr` flag to the `install` command that replaces the `--pod-cidr` and `--service-cidr` flags. The CIDR range specified with the `--cidr` flag is split and used for both the Pod and Service CIDRs. See [install](/reference/embedded-cluster-install).
+* Adds a `--cidr` flag to the `install` command that replaces the `--pod-cidr` and `--service-cidr` flags. The CIDR range specified with the `--cidr` flag is split and used for both the Pod and Service CIDRs. See [install](/embedded-cluster/v3/embedded-cluster-install).
:::note
The `--pod-cidr` and `--service-cidr` flags are hidden, but still functional. Replicated recommends that you update any automation that uses the `--pod-cidr` and
`--service-cidr` flags to use the `--cidr` flag instead.
@@ -1243,7 +1243,7 @@ Released on September 26, 2024
### New features {#new-features-1-14-1}
-* Adds host preflight checks to ensure that the required ports are open and available. For more information, see [Port Requirements](/vendor/embedded-overview#port-requirements).
+* Adds host preflight checks to ensure that the required ports are open and available. For more information, see [Port Requirements](/embedded-cluster/v3/embedded-overview#port-requirements).
### Improvements {#improvements-1-14-1}
@@ -1455,7 +1455,7 @@ Released on August 23, 2024
### Improvements {#improvements-1-11-0}
-* The default range available for NodePorts is now 80-32767 instead of 30000-32767. Many customers used [`unsupportedOverrides`](/reference/embedded-config#unsupportedoverrides) to configure this wider range for use with things like an ingress controller, so we have adjusted the default range accordingly. Changes to this range are not applied on upgrades, so existing installations will not be changed.
+* The default range available for NodePorts is now 80-32767 instead of 30000-32767. Many customers used [`unsupportedOverrides`](/embedded-cluster/v3/embedded-config#unsupportedoverrides) to configure this wider range for use with things like an ingress controller, so we have adjusted the default range accordingly. Changes to this range are not applied on upgrades, so existing installations will not be changed.
* Adds host preflight checks for connecting to replicated.app and proxy.replicated.com. If you use a custom domain for replicated.app, the custom domain will be used in the preflight check.
* Adds a host preflight check to ensure that neither `nameserver localhost` nor `nameserver 127.0.0.1` is present in `resolv.conf`.
diff --git a/docs/release-notes/rn-kubernetes-installer.md b/docs/release-notes/rn-kubernetes-installer.md
index 1b0936ac4a..4cd5f5c55b 100644
--- a/docs/release-notes/rn-kubernetes-installer.md
+++ b/docs/release-notes/rn-kubernetes-installer.md
@@ -2178,7 +2178,7 @@ Released on March 21, 2022
### Improvements
- Adds [KOTS add-on](https://kurl.sh/docs/add-ons/kotsadm) version 1.67.0.
-- Adds the [`app-version-label` flag](https://kurl.sh/docs/install-with-kurl/advanced-options#reference), which takes a version label as an argument and tells KOTS to install that particular version of an application. If this flag is not passed, the latest version of the application is installed. See [Online Installation with the Kubernetes Installer](/enterprise/installing-embedded-cluster).
+- Adds the [`app-version-label` flag](https://kurl.sh/docs/install-with-kurl/advanced-options#reference), which takes a version label as an argument and tells KOTS to install that particular version of an application. If this flag is not passed, the latest version of the application is installed. See [Online Installation with the Kubernetes Installer](/enterprise/installing-kurl).
## Release v2022.03.11-0
diff --git a/docs/release-notes/rn-vendor-platform.md b/docs/release-notes/rn-vendor-platform.md
index 1ec308c10c..17095f8d1a 100644
--- a/docs/release-notes/rn-vendor-platform.md
+++ b/docs/release-notes/rn-vendor-platform.md
@@ -485,7 +485,7 @@ Released on March 17, 2025
Released on March 13, 2025
### New features {#new-features-v2025-03-13-5}
-* Enforces that the custom domains set in the Embedded Cluster Config match the custom domains set on the channel when promoting a release. For more information about using custom domains for Embedded Cluster installations, see [domains](https://docs.replicated.com/reference/embedded-config#domains) in _Embedded Cluster Config_.
+* Enforces that the custom domains set in the Embedded Cluster Config match the custom domains set on the channel when promoting a release. For more information about using custom domains for Embedded Cluster installations, see [domains](https://docs.replicated.com/embedded-cluster/v3/embedded-config#domains) in _Embedded Cluster Config_.
## V2025.03.08-0
@@ -1737,7 +1737,7 @@ Released on March 7, 2024
Released on March 7, 2024
### New features {#new-features-v2024-03-07-0}
-* Adds the Replicated embedded cluster (Beta) distribution to the compatibility matrix. For more information, see [Using Embedded Cluster](/vendor/embedded-overview).
+* Adds the Replicated embedded cluster (Beta) distribution to the compatibility matrix. For more information, see [Using Embedded Cluster](/embedded-cluster/v3/embedded-overview).
## V2024.03.06-3
@@ -1758,7 +1758,7 @@ Released on February 29, 2024
Released on February 29, 2024
### New features {#new-features-v2024-02-29-0}
-* Enables the Embedded Cluster option on the customer license page. For more information, see [Using Embedded Cluster](/vendor/embedded-overview).
+* Enables the Embedded Cluster option on the customer license page. For more information, see [Using Embedded Cluster](/embedded-cluster/v3/embedded-overview).
## V2024.02.27-1
diff --git a/docs/vendor/admin-console-adding-buttons-links.mdx b/docs/vendor/admin-console-adding-buttons-links.mdx
index c1fa17e39c..83c0fd03e4 100644
--- a/docs/vendor/admin-console-adding-buttons-links.mdx
+++ b/docs/vendor/admin-console-adding-buttons-links.mdx
@@ -69,7 +69,7 @@ The following examples show how to use the KOTS [ConfigOption](/reference/templa
- description: Open App
url: 'http://{{repl ConfigOption "ingress_host" }}'
```
-* In the example below, both the URL hostname and a node port are user-supplied values. It might be necessary to include a user-provided node port if you are exposing NodePort services for installations on VMs or bare metal servers with [Replicated Embedded Cluster](/vendor/embedded-overview) or [Replicated kURL](/vendor/kurl-about).
+* In the example below, both the URL hostname and a node port are user-supplied values. It might be necessary to include a user-provided node port if you are exposing NodePort services for installations on VMs or bare metal servers with [Replicated Embedded Cluster](/embedded-cluster/v3/embedded-overview) or [Replicated kURL](/vendor/kurl-about).
```yaml
apiVersion: app.k8s.io/v1beta1
diff --git a/docs/vendor/admin-console-port-forward.mdx b/docs/vendor/admin-console-port-forward.mdx
index e820d06a5c..0edb85254a 100644
--- a/docs/vendor/admin-console-port-forward.mdx
+++ b/docs/vendor/admin-console-port-forward.mdx
@@ -204,7 +204,7 @@ To test this example:
1. Install the release into an existing cluster and confirm that the service was port-forwarded successfully by clicking **Open App** on the Admin Console dashboard. For more information, see [Online Installation in Existing Clusters with KOTS](/enterprise/installing-existing-cluster).
-1. Install the release on a VM and confirm that you can open the application by clicking **Open App** on the Admin Console dashboard. For more information, see [Online Installation with Embedded Cluster](/enterprise/installing-embedded) or [Online Installation with kURL](/enterprise/installing-kurl).
+1. Install the release on a VM and confirm that you can open the application by clicking **Open App** on the Admin Console dashboard. For more information, see [Online Installation with Embedded Cluster](/embedded-cluster/v3/installing-embedded) or [Online Installation with kURL](/enterprise/installing-kurl).
:::note
Ensure that the VM where you install allows HTTP traffic.
diff --git a/docs/vendor/config-screen-conditional.mdx b/docs/vendor/config-screen-conditional.mdx
index a59448afb2..ce68d69d65 100644
--- a/docs/vendor/config-screen-conditional.mdx
+++ b/docs/vendor/config-screen-conditional.mdx
@@ -31,7 +31,7 @@ In the following example, the `when` properties use the [Distribution](/referenc
### Embedded Cluster distribution check
-It can be useful to show or hide configuration fields if the distribution of the cluster is [Replicated Embedded Cluster](/vendor/embedded-overview) because you can include extensions in embedded cluster distributions to manage functionality such as ingress and storage. This means that embedded clusters frequently have fewer configuration options for the user.
+It can be useful to show or hide configuration fields if the distribution of the cluster is [Replicated Embedded Cluster](/embedded-cluster/v3/embedded-overview) because you can include extensions in embedded cluster distributions to manage functionality such as ingress and storage. This means that embedded clusters frequently have fewer configuration options for the user.
diff --git a/docs/vendor/custom-domains-using.md b/docs/vendor/custom-domains-using.md
index 1ef76627e4..50a5224903 100644
--- a/docs/vendor/custom-domains-using.md
+++ b/docs/vendor/custom-domains-using.md
@@ -71,11 +71,11 @@ After you add one or more custom domains in the Vendor Portal, you can configure
### Configure Embedded Cluster to use custom domains {#ec}
-You can configure Replicated Embedded Cluster to use your custom domains for the Replicated proxy registry and Replicated app service. For more information about Embedded Cluster, see [Embedded Cluster Overview](/vendor/embedded-overview).
+You can configure Replicated Embedded Cluster to use your custom domains for the Replicated proxy registry and Replicated app service. For more information about Embedded Cluster, see [Embedded Cluster Overview](/embedded-cluster/v3/embedded-overview).
To configure Embedded Cluster to use your custom domains for the proxy registry and app service:
-1. In the [Embedded Cluster Config](/reference/embedded-config) spec for your application, add `domains.proxyRegistryDomain` and `domains.replicatedAppDomain`. Set each field to your custom domain for the given service.
+1. In the [Embedded Cluster Config](/embedded-cluster/v3/embedded-config) spec for your application, add `domains.proxyRegistryDomain` and `domains.replicatedAppDomain`. Set each field to your custom domain for the given service.
**Example:**
@@ -89,7 +89,7 @@ To configure Embedded Cluster to use your custom domains for the proxy registry
# Your app service custom domain
replicatedAppDomain: updates.yourcompany.com
```
- For more information, see [domains](/reference/embedded-config#domains) in _Embedded Cluster Config_.
+ For more information, see [domains](/embedded-cluster/v3/embedded-config#domains) in _Embedded Cluster Config_.
1. Add the Embedded Cluster Config to a new release. Promote the release to a channel that your team uses for testing, and install with Embedded Cluster in a development environment to test your changes.
diff --git a/docs/vendor/custom-domains.md b/docs/vendor/custom-domains.md
index dbf9dbf57f..7a399cdead 100644
--- a/docs/vendor/custom-domains.md
+++ b/docs/vendor/custom-domains.md
@@ -40,7 +40,7 @@ Using custom domains has the following limitations:
- Each custom domain can only be used by one team.
-- For [Replicated Embedded Cluster](/vendor/embedded-overview) installations, any Helm [`extensions`](/reference/embedded-config) that you add in the Embedded Cluster Config do not use custom domains. During deployment, Embedded Cluster pulls both the repo for the given chart and any images in the chart as written. Embedded Cluster does not rewrite image names to use custom domains.
+- For [Replicated Embedded Cluster](/embedded-cluster/v3/embedded-overview) installations, any Helm [`extensions`](/embedded-cluster/v3/embedded-config) that you add in the Embedded Cluster Config do not use custom domains. During deployment, Embedded Cluster pulls both the repo for the given chart and any images in the chart as written. Embedded Cluster does not rewrite image names to use custom domains.
## Known issue
diff --git a/docs/vendor/enterprise-portal-use.mdx b/docs/vendor/enterprise-portal-use.mdx
index 2534364798..202709a450 100644
--- a/docs/vendor/enterprise-portal-use.mdx
+++ b/docs/vendor/enterprise-portal-use.mdx
@@ -18,7 +18,7 @@ Users can log in to the Enterprise Portal after they are invited to join a team.
- [View a larger version of this image](enterprise-portal-invitation-email.png)
+ [View a larger version of this image](/images/enterprise-portal-invitation-email.png)
### Sign up for a self-service account
diff --git a/docs/vendor/environment-setup.mdx b/docs/vendor/environment-setup.mdx
index ee0972eb3f..04a5d0cc65 100644
--- a/docs/vendor/environment-setup.mdx
+++ b/docs/vendor/environment-setup.mdx
@@ -1,4 +1,4 @@
-import Requirements from "../partials/embedded-cluster/_requirements.mdx"
+import Requirements from "../partials/embedded-cluster/v2/_requirements.mdx"
import Verify from "../partials/replicated-cli/_verify-install.mdx"
import InstallMac from "../partials/replicated-cli/_install-mac.mdx"
import InstallLinux from "../partials/replicated-cli/_install-linux.mdx"
@@ -269,7 +269,7 @@ Testing your releases is an important part of the commercial software distributi
### About creating a VM
-You need access to a VM to test installations and updates with the [Replicated Embedded Cluster](/vendor/embedded-overview) installer:
+You need access to a VM to test installations and updates with the [Replicated Embedded Cluster](/embedded-cluster/v3/embedded-overview) installer:
* **Option 1: Use Compatibility Matrix.** You can use Replicated Compatibility Matrix to create and SSH onto Linux VMs. For more information, see [Create and Manage Environments with CMX](/vendor/testing-how-to).
diff --git a/docs/vendor/firewall-openings.mdx b/docs/vendor/firewall-openings.mdx
index 45ba3029c6..832cea6e43 100644
--- a/docs/vendor/firewall-openings.mdx
+++ b/docs/vendor/firewall-openings.mdx
@@ -10,7 +10,7 @@ import FirewallOpeningsKurl from "../partials/install/_firewall-openings-kurl.md
## Replicated Embedded Cluster
-For the complete list of Embedded Cluster installation requirements, see [Embedded Cluster Installation Requirements](/enterprise/installing-embedded-requirements).
+For the complete list of Embedded Cluster installation requirements, see [Embedded Cluster Installation Requirements](/embedded-cluster/v3/installing-embedded-requirements).
diff --git a/docs/vendor/helm-native-v2-using.mdx b/docs/vendor/helm-native-v2-using.mdx
index fa874d34a9..4805b0d6ac 100644
--- a/docs/vendor/helm-native-v2-using.mdx
+++ b/docs/vendor/helm-native-v2-using.mdx
@@ -88,7 +88,7 @@ To support KOTS existing cluster or kURL installations with HelmChart v2, comple
1. For each HelmChart v2 resource in the release, configure the [optionalValues](/reference/custom-resource-helmchart-v2#optionalvalues) key to add the `kots.io/backup: velero` label and `kots.io/app-slug: APP_SLUG` annotation to all resources that you want to be included in backups with Replicated snapshots. Use a `when` statement so that these are added to resources only when the customer has the [`isSnapshotSupported`](/vendor/licenses-using-builtin-fields#admin-console-feature-options) field enabled for their license.
:::note
- The Replicated [snapshots](snapshots-overview) feature for backup and restore is supported only for KOTS existing cluster and kURL installations. Snapshots are not supported for installations with Embedded Cluster. For more information about disaster recovery for Embedded Cluster installations, see [Disaster Recovery for Embedded Cluster](/vendor/embedded-disaster-recovery.mdx).
+ The Replicated [snapshots](snapshots-overview) feature for backup and restore is supported only for KOTS existing cluster and kURL installations. Snapshots are not supported for installations with Embedded Cluster. For more information about disaster recovery for Embedded Cluster installations, see [Disaster Recovery for Embedded Cluster](/embedded-cluster/v2/embedded-disaster-recovery).
:::
**Example**:
diff --git a/docs/vendor/helm-packaging-airgap-bundles.mdx b/docs/vendor/helm-packaging-airgap-bundles.mdx
index bb48e34fd2..183ae111aa 100644
--- a/docs/vendor/helm-packaging-airgap-bundles.mdx
+++ b/docs/vendor/helm-packaging-airgap-bundles.mdx
@@ -74,5 +74,5 @@ Many applications have images that are included or excluded based on a given con
## Related topics
* [builder](/reference/custom-resource-helmchart-v2#builder)
-* [Air Gap Installation with Embedded Cluster](/enterprise/installing-embedded-air-gap)
+* [Air Gap Installation with Embedded Cluster](/embedded-cluster/v3/installing-embedded-air-gap)
* [Air Gap Installation in Existing Clusters with KOTS](/enterprise/installing-existing-cluster-airgapped)
diff --git a/docs/vendor/kots-faq.mdx b/docs/vendor/kots-faq.mdx
index f5f4d031eb..58e9132cad 100644
--- a/docs/vendor/kots-faq.mdx
+++ b/docs/vendor/kots-faq.mdx
@@ -41,7 +41,7 @@ It is also possible to use _virtual_ or _logical_ air gaps, in which security co
Replicated supports installations into air-gapped environments. In an air gap installation, users first download the images and other assets required for installation on an internet-connected device. These installation assets are usually provided in an _air gap bundle_ that ISVs can build in the Replicated Vendor Portal. Then, users transfer the installation assets to their air-gapped machine where they can push the images to an internal private registry and install.
For more information, see:
-* [Air Gap Installation with Embedded Cluster](/enterprise/installing-embedded-air-gap)
+* [Air Gap Installation with Embedded Cluster](/embedded-cluster/v3/installing-embedded-air-gap)
* [Installing and Updating with Helm in Air Gap Environments](/vendor/helm-install-airgap)
### What is the commercial sotware distribution lifecycle?
@@ -103,7 +103,7 @@ To install with Embedded Cluster, users first download and extract the Embedded
After the installation command finishes, users log in to the Admin Console to provide application configuration values, optionally join more nodes to the cluster, run preflight checks, and deploy the application.
-Customer-specific Embedded Cluster installation instructions are provided in the Replicated Vendor Portal. For more information, see [Install with Embedded Cluster](/enterprise/installing-embedded).
+Customer-specific Embedded Cluster installation instructions are provided in the Replicated Vendor Portal. For more information, see [Install with Embedded Cluster](/embedded-cluster/v3/installing-embedded).
### Does Replicated support installations into air gap environments?
@@ -111,7 +111,7 @@ Yes. The Embedded Cluster and KOTS installers support installation in _air gap_
To support air gap installations, vendors can build air gap bundles for their application in the Vendor Portal that contain all the required assets for a specific release of the application. Additionally, Replicated provides bundles that contain the assets for the Replicated installers.
-For more information about how to install with Embedded Cluster and KOTS in air gap environments, see [Air Gap Installation with Embedded Cluster](/enterprise/installing-embedded-air-gap) and [Air Gap Installation in Existing Clusters with KOTS](/enterprise/installing-existing-cluster-airgapped).
+For more information about how to install with Embedded Cluster and KOTS in air gap environments, see [Air Gap Installation with Embedded Cluster](/embedded-cluster/v3/installing-embedded-air-gap) and [Air Gap Installation in Existing Clusters with KOTS](/enterprise/installing-existing-cluster-airgapped).
### Can I deploy Helm charts with KOTS?
@@ -125,7 +125,7 @@ Replicated Embedded Cluster is a successor to Replicated kURL. Compared to kURL,
-For more information, see [Embedded Cluster Overview](/vendor/embedded-overview).
+For more information, see [Embedded Cluster Overview](/embedded-cluster/v3/embedded-overview).
### How do I enable Embedded Cluster and KOTS installations for my application?
@@ -133,7 +133,7 @@ Releases that support installation with KOTS include the manifests required by K
In addition to the KOTS manifests, releases that support installation with Embedded Cluster also include the Embedded Cluster Config. The Embedded Cluster Config defines aspects of the cluster that will be provisioned and also sets the version of KOTS that will be installed.
-For more information, see [Embedded Cluster Overview](/vendor/embedded-overview).
+For more information, see [Embedded Cluster Overview](/embedded-cluster/v3/embedded-overview).
### Can I use my own branding?
diff --git a/docs/vendor/kurl-nodeport-services.mdx b/docs/vendor/kurl-nodeport-services.mdx
index d64ede731c..9e23e25eca 100644
--- a/docs/vendor/kurl-nodeport-services.mdx
+++ b/docs/vendor/kurl-nodeport-services.mdx
@@ -4,13 +4,13 @@ import KurlAvailability from "../partials/kurl/_kurl-availability.mdx"
-This topic describes how to expose NodePort services in [Replicated Embedded Cluster](/vendor/embedded-overview) or [Replicated kURL](/vendor/kurl-about) installations on VMs or bare metal servers.
+This topic describes how to expose NodePort services in [Replicated Embedded Cluster](/embedded-cluster/v3/embedded-overview) or [Replicated kURL](/vendor/kurl-about) installations on VMs or bare metal servers.
## Overview
For installations into existing clusters, KOTS automatically creates a port forward tunnel to expose the Admin Console. Unlike installations into existing clusters, KOTS does _not_ automatically open the port forward tunnel for installations in embedded clusters provisioned on virtual machines (VMs) or bare metal servers. This is because it cannot be verified that the ports are secure and authenticated. For more information about the KOTS port forward tunnel, see [Port Forwarding Services with KOTS](/vendor/admin-console-port-forward).
-Instead, to expose the Admin Console in installations with [Embedded Cluster](/vendor/embedded-overview) or [kURL](/vendor/kurl-about), KOTS creates the Admin Console as a NodePort service so it can be accessed at the node's IP address on a node port (port 8800 for kURL installations and port 30000 for Embedded Cluster installations). Additionally, for kURL installations, the UIs of Prometheus, Grafana, and Alertmanager are also exposed using NodePorts.
+Instead, to expose the Admin Console in installations with [Embedded Cluster](/embedded-cluster/v3/embedded-overview) or [kURL](/vendor/kurl-about), KOTS creates the Admin Console as a NodePort service so it can be accessed at the node's IP address on a node port (port 8800 for kURL installations and port 30000 for Embedded Cluster installations). Additionally, for kURL installations, the UIs of Prometheus, Grafana, and Alertmanager are also exposed using NodePorts.
For installations on VMs or bare metal servers where your application must be accessible from the user's local machine rather than from inside the cluster, you can expose application services as NodePorts to provide access to the application after installation.
diff --git a/docs/vendor/licenses-about.mdx b/docs/vendor/licenses-about.mdx
index f5fdcf051b..5122dd20a5 100644
--- a/docs/vendor/licenses-about.mdx
+++ b/docs/vendor/licenses-about.mdx
@@ -116,7 +116,7 @@ Customers that install in online environments with a Replicated installer (Embed
For online instances, Replicated installers pull license details from the Vendor Portal when:
* A customer clicks **Sync license** in the Admin Console.
* An automatic or manual update check is triggered
-* The customer updates their instance with Replicated Embedded Cluster. See [Perform Updates with Embedded Cluster](/enterprise/updating-embedded).
+* The customer updates their instance with Replicated Embedded Cluster. See [Perform Updates with Embedded Cluster](/embedded-cluster/v3/updating-embedded).
* An application status changes. See [Current State](instance-insights-details#current-state) in _Instance Details_.
For more information, see [Update Licenses in the Admin Console](/enterprise/updating-licenses).
diff --git a/docs/vendor/licenses-install-types.mdx b/docs/vendor/licenses-install-types.mdx
index 2992b3712d..6c8a3cf6a4 100644
--- a/docs/vendor/licenses-install-types.mdx
+++ b/docs/vendor/licenses-install-types.mdx
@@ -15,7 +15,7 @@ The following shows an example of the **Install types** field in a license:
[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 Replicated installers ([Replicated KOTS](../intro-kots), [Replicated Embedded Cluster](/embedded-cluster/v3/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
@@ -72,7 +72,7 @@ The following describes each installation type available, as well as the require
Your Vendor Portal team must have the Embedded Cluster entitlement
-
The latest release promoted to the channel where the customer is assigned must contain an Embedded Cluster Config custom resource. For more information, see Embedded Cluster Config.
+
The latest release promoted to the channel where the customer is assigned must contain an Embedded Cluster Config custom resource. For more information, see Embedded Cluster Config.
diff --git a/docs/vendor/licenses-using-builtin-fields.mdx b/docs/vendor/licenses-using-builtin-fields.mdx
index 155aca71eb..6e80c0cfce 100644
--- a/docs/vendor/licenses-using-builtin-fields.mdx
+++ b/docs/vendor/licenses-using-builtin-fields.mdx
@@ -127,7 +127,7 @@ The table below describes the built-in license fields related to the supported i
`isEmbeddedClusterDownloadEnabled`
-
If a license supports installation with Replicated Embedded Cluster, this field is set to `true` or missing. If Embedded Cluster installations are not supported, this field is `false`.
This field requires that the vendor has the Embedded Cluster entitlement and that the release at the head of the channel includes an [Embedded Cluster Config](/reference/embedded-config) custom resource. This field also requires that the "Install Types" feature is enabled for your Vendor Portal team. Reach out to your Replicated account representative to get access.
+
If a license supports installation with Replicated Embedded Cluster, this field is set to `true` or missing. If Embedded Cluster installations are not supported, this field is `false`.
This field requires that the vendor has the Embedded Cluster entitlement and that the release at the head of the channel includes an [Embedded Cluster Config](/embedded-cluster/v3/embedded-config) custom resource. This field also requires that the "Install Types" feature is enabled for your Vendor Portal team. Reach out to your Replicated account representative to get access.
`isHelmInstallEnabled`
@@ -180,7 +180,7 @@ The table below describes the built-in license fields related to the Admin Conso
`isDisasterRecoverySupported`
-
If a license supports the Embedded Cluster disaster recovery feature, this field is set to `true`. If a license does not support disaster recovery for Embedded Cluster, this field is either missing or `false`. **Note**: Embedded Cluster Disaster Recovery is in Alpha. To get access to this feature, reach out to Alex Parker at [alexp@replicated.com](mailto:alexp@replicated.com). For more information, see [Disaster Recovery for Embedded Cluster](/vendor/embedded-disaster-recovery).
+
If a license supports the Embedded Cluster disaster recovery feature, this field is set to `true`. If a license does not support disaster recovery for Embedded Cluster, this field is either missing or `false`. **Note**: Embedded Cluster Disaster Recovery is in Alpha. To get access to this feature, reach out to Alex Parker at [alexp@replicated.com](mailto:alexp@replicated.com). For more information, see [Disaster Recovery for Embedded Cluster](/embedded-cluster/v2/embedded-disaster-recovery).
`isGeoaxisSupported`
diff --git a/docs/vendor/packaging-kots-versions.md b/docs/vendor/packaging-kots-versions.md
index a633a7214d..3202b0e31a 100644
--- a/docs/vendor/packaging-kots-versions.md
+++ b/docs/vendor/packaging-kots-versions.md
@@ -4,7 +4,7 @@ This topic describes how to set minimum and target version for Replicated KOTS i
## Limitation
-Setting minimum and target versions for KOTS is not supported for installations with [Replicated Embedded Cluster](/vendor/embedded-overview).
+Setting minimum and target versions for KOTS is not supported for installations with [Replicated Embedded Cluster](/embedded-cluster/v3/embedded-overview).
This is because each version of Embedded Cluster includes a particular version of KOTS. Setting `targetKotsVersion` or `minKotsVersion` to a version of KOTS that does not coincide with the version that is included in the specified version of Embedded Cluster will cause Embedded Cluster installations to fail with an error message like: `Error: This version of App Name requires a different version of KOTS from what you currently have installed.`.
diff --git a/docs/vendor/policies-support-lifecycle.md b/docs/vendor/policies-support-lifecycle.md
index 9292caa5ed..d4a4068216 100644
--- a/docs/vendor/policies-support-lifecycle.md
+++ b/docs/vendor/policies-support-lifecycle.md
@@ -65,7 +65,7 @@ Replicated will provide support for products per our terms and services until th
diff --git a/docs/vendor/preflight-host-preflights.md b/docs/vendor/preflight-host-preflights.md
index f4fcf59e7d..da5c48d936 100644
--- a/docs/vendor/preflight-host-preflights.md
+++ b/docs/vendor/preflight-host-preflights.md
@@ -1,6 +1,6 @@
# Customize host preflight checks for kURL
-This topic provides information about how to customize host preflight checks for installations with Replicated kURL. For information about the default host preflight checks that run for installations with Replicated Embedded Cluster, see [About Host Preflight Checks](/vendor/embedded-overview#about-host-preflight-checks) in _Using Embedded Cluster_.
+This topic provides information about how to customize host preflight checks for installations with Replicated kURL. For information about the default host preflight checks that run for installations with Replicated Embedded Cluster, see [About Host Preflight Checks](/embedded-cluster/v3/embedded-overview#about-host-preflight-checks) in _Using Embedded Cluster_.
## About host preflight checks
You can include host preflight checks with kURL to verify that infrastructure requirements are met for:
diff --git a/docs/vendor/preflight-support-bundle-about.mdx b/docs/vendor/preflight-support-bundle-about.mdx
index 98a8427013..a7a7d53ea5 100644
--- a/docs/vendor/preflight-support-bundle-about.mdx
+++ b/docs/vendor/preflight-support-bundle-about.mdx
@@ -61,11 +61,11 @@ Thorough preflight checks provide increased confidence that an installation or u
### About host preflights {#host-preflights}
-_Host preflight checks_ automatically run during [Replicated Embedded Cluster](/vendor/embedded-overview) and [Replicated kURL](/vendor/kurl-about) installations on a VM or bare metal server. The purpose of host preflight checks is to verify that the user's installation environment meets the requirements of the Embedded Cluster or kURL installer, such as checking the number of CPU cores in the system, available disk space, and memory usage. If any of the host preflight checks fail, installation is blocked and a message describing the failure is displayed.
+_Host preflight checks_ automatically run during [Replicated Embedded Cluster](/embedded-cluster/v3/embedded-overview) and [Replicated kURL](/vendor/kurl-about) installations on a VM or bare metal server. The purpose of host preflight checks is to verify that the user's installation environment meets the requirements of the Embedded Cluster or kURL installer, such as checking the number of CPU cores in the system, available disk space, and memory usage. If any of the host preflight checks fail, installation is blocked and a message describing the failure is displayed.
Host preflight checks are separate from any application-specific preflight checks that are defined in the release, which run in the Admin Console before the application is deployed with KOTS. Both Embedded Cluster and kURL have default host preflight checks that are specific to the requirements of the given installer. For kURL installations, it is possible to customize the default host preflight checks.
-For more information about the default Embedded Cluster host preflight checks, see [Host Preflight Checks](/vendor/embedded-overview#about-host-preflight-checks) in _Using Embedded Cluster_.
+For more information about the default Embedded Cluster host preflight checks, see [Host Preflight Checks](/embedded-cluster/v3/embedded-overview#about-host-preflight-checks) in _Using Embedded Cluster_.
For more information about kURL host preflight checks, including information about how to customize the defaults, see [Customize Host Preflight Checks for kURL](/vendor/preflight-host-preflights).
@@ -135,7 +135,7 @@ The following diagram demonstrates how end customers can generate support bundle
### About host support bundles
-For installations on VMs or bare metal servers with [Replicated Embedded Cluster](/vendor/embedded-overview) or [Replicated kURL](/vendor/kurl-about), it is possible to generate a support bundle that includes host-level information to help troubleshoot failures related to host configuration like DNS, networking, or storage problems.
+For installations on VMs or bare metal servers with [Replicated Embedded Cluster](/embedded-cluster/v3/embedded-overview) or [Replicated kURL](/vendor/kurl-about), it is possible to generate a support bundle that includes host-level information to help troubleshoot failures related to host configuration like DNS, networking, or storage problems.
For Embedded Cluster installations, a default spec can be used to generate support bundles that include cluster- and host-level information. See [Generate Host Bundles for Embedded Cluster](/vendor/support-bundle-embedded).
diff --git a/docs/vendor/quick-start.mdx b/docs/vendor/quick-start.mdx
index 8acf54813f..e753b46085 100644
--- a/docs/vendor/quick-start.mdx
+++ b/docs/vendor/quick-start.mdx
@@ -7,7 +7,7 @@ import KotsCr from "../partials/getting-started/_slackernews-repl-app.mdx"
import K8sCr from "../partials/getting-started/_slackernews-k8s-app.mdx"
import EcCr from "../partials/getting-started/_slackernews-embedded-cluster.mdx"
import ConfigCr from "../partials/getting-started/_slackernews-config.mdx"
-import Requirements from "../partials/embedded-cluster/_requirements.mdx"
+import Requirements from "../partials/embedded-cluster/v2/_requirements.mdx"
# Replicated quick start
@@ -617,7 +617,7 @@ To get started, see [Onboard to the Replicated Platform](replicated-onboarding).
For more information about the Replicated Platform features mentioned in this quick start, see:
-* [Embedded Cluster Overview](/vendor/embedded-overview)
+* [Embedded Cluster Overview](/embedded-cluster/v2/embedded-overview)
* [About CMX](/vendor/testing-about)
* [About Preflight Checks and Support Bundles](/vendor/preflight-support-bundle-about)
* [About the Replicated SDK](/vendor/replicated-sdk-overview)
diff --git a/docs/vendor/releases-about.mdx b/docs/vendor/releases-about.mdx
index 04d4a8d64d..2cc014b7d5 100644
--- a/docs/vendor/releases-about.mdx
+++ b/docs/vendor/releases-about.mdx
@@ -62,7 +62,7 @@ This section provides additional information about releases, including details a
### Release files
-A release contains your application files as well as the manifests required to install the application with the Replicated installers ([Replicated Embedded Cluster](/vendor/embedded-overview) and [Replicated KOTS](../intro-kots)).
+A release contains your application files as well as the manifests required to install the application with the Replicated installers ([Replicated Embedded Cluster](/embedded-cluster/v3/embedded-overview) and [Replicated KOTS](../intro-kots)).
The application files in releases can be Helm charts and/or Kubernetes manifests. Replicated strongly recommends that all applications are packaged as Helm charts because many enterprise customers will expect to be able to install with Helm.
diff --git a/docs/vendor/releases-sharing-license-install-script.mdx b/docs/vendor/releases-sharing-license-install-script.mdx
index 07e3bd894c..bbf87b5034 100644
--- a/docs/vendor/releases-sharing-license-install-script.mdx
+++ b/docs/vendor/releases-sharing-license-install-script.mdx
@@ -129,7 +129,7 @@ To get customer-specific Helm or Embedded Cluster installation instructions:
[View a larger version of this image](/images/helm-install-instructions-dialog.png)
-
View the customer-specific Embedded Cluster installation instructions. For more information about installing with Embedded Cluster, see [Online Installation with Embedded Cluster](/enterprise/installing-embedded).
+
View the customer-specific Embedded Cluster installation instructions. For more information about installing with Embedded Cluster, see [Online Installation with Embedded Cluster](/embedded-cluster/v3/installing-embedded).
[View a larger version of this image](/images/embedded-cluster-install-dialog-latest.png)
diff --git a/docs/vendor/replicated-onboarding-helm-only.mdx b/docs/vendor/replicated-onboarding-helm-only.mdx
index d3577befb0..7ff8b01c83 100644
--- a/docs/vendor/replicated-onboarding-helm-only.mdx
+++ b/docs/vendor/replicated-onboarding-helm-only.mdx
@@ -251,6 +251,6 @@ For more information, see [Configure Custom Metrics](/vendor/custom-metrics).
### Add support for Replicated Embedded Cluster installations on a VM
-Replicated Embedded Cluster is a UI-based installer that supports installations on VMs or bare metal servers. Embedded Cluster allows you to distribute a Kubernetes cluster and your application together as a single appliance, making it easy for enterprise users to install, update, and manage the application and the cluster in tandem. For more information, see [Embedded Cluster Overview](/vendor/embedded-overview).
+Replicated Embedded Cluster is a UI-based installer that supports installations on VMs or bare metal servers. Embedded Cluster allows you to distribute a Kubernetes cluster and your application together as a single appliance, making it easy for enterprise users to install, update, and manage the application and the cluster in tandem. For more information, see [Embedded Cluster Overview](/embedded-cluster/v3/embedded-overview).
Teams with the Business or Enterprise pricing plan can modify existing releases to support Embedded Cluster installations; it is not necessary to create and manage separate releases or channels for each installation method. For more information about how to get access to Embedded Cluster, reach out to your Replicated account representative.
\ No newline at end of file
diff --git a/docs/vendor/replicated-onboarding.mdx b/docs/vendor/replicated-onboarding.mdx
index 5072b87722..fd3ad050b7 100644
--- a/docs/vendor/replicated-onboarding.mdx
+++ b/docs/vendor/replicated-onboarding.mdx
@@ -2,9 +2,9 @@ import CommunityHelp from "../partials/getting-started/_community-help.mdx"
import CreateApp from "../partials/getting-started/_create-app.mdx"
import CreateRelease from "../partials/getting-started/_create-promote-release.mdx"
import DependencyYaml from "../partials/replicated-sdk/_dependency-yaml.mdx"
-import EcCr from "../partials/embedded-cluster/_ec-config.mdx"
+import EcCr from "../partials/embedded-cluster/v2/_ec-config.mdx"
import HelmPackage from "../partials/helm/_helm-package.mdx"
-import Requirements from "../partials/embedded-cluster/_requirements.mdx"
+import Requirements from "../partials/embedded-cluster/v2/_requirements.mdx"
import TestYourChanges from "../partials/getting-started/_test-your-changes.mdx"
import UnauthorizedError from "../partials/replicated-sdk/_401-unauthorized.mdx"
import StepCreds from "../partials/proxy-service/_step-creds.mdx"
@@ -111,7 +111,7 @@ To package your Helm chart with the Replicated SDK:
After packaging your Helm chart, you can create a release. The initial release for your application will include the minimum files required to install a Helm chart with the Embedded Cluster installer:
* The Helm chart `.tgz` archive
* [HelmChart custom resource](/reference/custom-resource-helmchart-v2)
-* [Embedded Cluster Config](/reference/embedded-config)
+* [Embedded Cluster Config](/embedded-cluster/v2/embedded-config)
If you have multiple charts, you will add each chart archive to the release, plus a corresponding HelmChart custom resource for each archive.
@@ -137,7 +137,7 @@ To create the first release for your application:
An Embedded Cluster Config must be included in the release to install with Embedded Cluster. The Embedded Cluster Config lets you define several aspects of the Kubernetes cluster that is created.
- For more information, see [Use Embedded Cluster](/vendor/embedded-overview).
+ For more information, see [Use Embedded Cluster](/embedded-cluster/v2/embedded-overview).
1. Create a new YAML file named `YOUR_CHART_NAME.yaml`. For example, `samplechart.yaml`. In the file, add the following YAML to create a HelmChart custom resource. Update the values to match the name and version of your Helm chart.
@@ -170,9 +170,9 @@ To create the first release for your application:
This is a temporary measure to ensure the values get passed to the Helm chart during installation until you configure the Admin Console Config screen in a later onboarding task. If your default Helm values are sufficient for installation, you can skip this step.
- 1. If your application requires that certain components are deployed before the application and as part of the Embedded Cluster itself, then update the Embedded Cluster Config to add [extensions](/reference/embedded-config#extensions). Extensions allow you to provide Helm charts that are deployed before your application. For example, one situation where this is useful is if you want to ship an ingress controller because Embedded Cluster does not include one.
+ 1. If your application requires that certain components are deployed before the application and as part of the Embedded Cluster itself, then update the Embedded Cluster Config to add [extensions](/embedded-cluster/v2/embedded-config#extensions). Extensions allow you to provide Helm charts that are deployed before your application. For example, one situation where this is useful is if you want to ship an ingress controller because Embedded Cluster does not include one.
- For more information, see [extensions](/reference/embedded-config#extensions) in _Embedded Cluster Config_.
+ For more information, see [extensions](/embedded-cluster/v2/embedded-config#extensions) in _Embedded Cluster Config_.
1. From the `manifests` directory, create a release and promote it to the Unstable channel. For more information, see [Manage Releases with the Vendor Portal](releases-creating-releases) or [Managing Releases with the CLI](releases-creating-cli).
@@ -182,7 +182,7 @@ To create the first release for your application:
1. Install the release in your development environment to test:
- 1. Install with Embedded Cluster on a VM. See [Online Installation with Embedded Cluster](/enterprise/installing-embedded).
+ 1. Install with Embedded Cluster on a VM. See [Online Installation with Embedded Cluster](/embedded-cluster/v2/installing-embedded).
1. (Optional) Install in an existing cluster with KOTS. See [Online Installation in Existing Clusters with KOTS](/enterprise/installing-existing-cluster).
@@ -451,7 +451,7 @@ To add support for air gap installations:
1. Create or edit a customer with the **Airgap Download Enabled** entitlement enabled so that you can test air gap installations. See [Create and Manage Customers](/vendor/releases-creating-customer).
-1. Download the Embedded Cluster air gap installation assets, then install with Embedded Cluster on an air-gapped VM to test. See [Install in Air Gap Environments with Embedded Cluster](/enterprise/installing-embedded-air-gap).
+1. Download the Embedded Cluster air gap installation assets, then install with Embedded Cluster on an air-gapped VM to test. See [Install in Air Gap Environments with Embedded Cluster](/embedded-cluster/v2/installing-embedded-air-gap).
1. Follow the steps in [Install and Update with Helm in Air Gap Environments](/vendor/helm-install-airgap) to access the Enterprise Portal for the customer and test air gap installation in a cluster with Helm.
@@ -461,7 +461,7 @@ To add support for air gap installations:
The Embedded Cluster Config supports roles for multi-node clusters. One or more roles can be selected and assigned to a node when it is joined to the cluster. Node roles can be used to determine which nodes run the Kubernetes control plane, and to assign application workloads to particular nodes.
-For more information, see [roles](/reference/embedded-config#roles) in _Embedded Cluster Config_.
+For more information, see [roles](/embedded-cluster/v2/embedded-config#roles) in _Embedded Cluster Config_.
### Add and map license entitlements
@@ -515,7 +515,7 @@ You can also view common examples of collectors and analyzers used in preflight
Enable backup and restore with Velero for your application so that users can back up and restore their KOTS Admin Console and application data.
There are different steps to configure backup and restore for Embedded Cluster and for existing cluster installations with KOTS:
-* To configure the disaster recovery feature for Embedded Cluster, see [Disaster Recovery for Embedded Cluster](/vendor/embedded-disaster-recovery)
+* To configure the disaster recovery feature for Embedded Cluster, see [Disaster Recovery for Embedded Cluster](/embedded-cluster/v2/embedded-disaster-recovery)
* To configure the snapshots feature for existing cluster KOTS installations, see [Configure Snapshots](snapshots-configuring-backups).
### Add custom metrics
diff --git a/docs/vendor/replicated-sdk-installing.mdx b/docs/vendor/replicated-sdk-installing.mdx
index 01dcd97659..7b65d107c1 100644
--- a/docs/vendor/replicated-sdk-installing.mdx
+++ b/docs/vendor/replicated-sdk-installing.mdx
@@ -47,7 +47,7 @@ To install the SDK as a subchart:
1. Save and promote the release to an internal-only channel used for testing, such as the default Unstable channel.
1. Install the release using Helm or a Replicated installer. For more information, see:
- * [Online Installation with Embedded Cluster](/enterprise/installing-embedded)
+ * [Online Installation with Embedded Cluster](/embedded-cluster/v3/installing-embedded)
* [Installing with Helm](/vendor/install-with-helm)
* [Online Installation in Existing Clusters with KOTS](/enterprise/installing-existing-cluster)
* [Online Installation with kURL](/enterprise/installing-kurl)
@@ -129,7 +129,7 @@ To add the SDK Helm chart to a release for a Kubernetes manifest-based applicati
1. Save and promote the release to an internal-only channel used for testing, such as the default Unstable channel.
1. Install the release using a Replicated installer. For more information, see:
- * [Online Installation with Embedded Cluster](/enterprise/installing-embedded)
+ * [Online Installation with Embedded Cluster](/embedded-cluster/v3/installing-embedded)
* [Online Installation in Existing Clusters with KOTS](/enterprise/installing-existing-cluster)
* [Online Installation with kURL](/enterprise/installing-kurl)
diff --git a/docs/vendor/support-bundle-embedded.mdx b/docs/vendor/support-bundle-embedded.mdx
index f6f624244a..b04ddddf36 100644
--- a/docs/vendor/support-bundle-embedded.mdx
+++ b/docs/vendor/support-bundle-embedded.mdx
@@ -1,9 +1,9 @@
-import EmbeddedClusterSupportBundle from "../partials/support-bundles/_generate-bundle-ec.mdx"
+import EmbeddedClusterSupportBundle from "../partials/embedded-cluster/v2/_generate-bundle-ec.mdx"
import SupportBundleIntro from "../partials/support-bundles/_ec-support-bundle-intro.mdx"
# Generate support bundles for Embedded Cluster
-This topic describes how to generate a support bundle that includes cluster- and host-level information for [Replicated Embedded Cluster](/vendor/embedded-overview) installations.
+This topic describes how to generate a support bundle that includes cluster- and host-level information for [Replicated Embedded Cluster](/embedded-cluster/v3/embedded-overview) installations.
For information about generating host support bundles for Replicated kURL installations, see [Generate Host Bundles for kURL](/vendor/support-host-support-bundles).
diff --git a/docs/vendor/testing-network-policy.md b/docs/vendor/testing-network-policy.md
index bfefdc1ad2..fda5f71e1b 100644
--- a/docs/vendor/testing-network-policy.md
+++ b/docs/vendor/testing-network-policy.md
@@ -126,5 +126,5 @@ To view network reports from the CLI:
## Related topics
-* [Air Gap Installation with Embedded Cluster](/enterprise/installing-embedded-air-gap)
+* [Air Gap Installation with Embedded Cluster](/embedded-cluster/v3/installing-embedded-air-gap)
* [Install and Update with Helm in Air Gap Environments](/vendor/helm-install-airgap).
\ No newline at end of file
diff --git a/docs/vendor/testing-supported-clusters.md b/docs/vendor/testing-supported-clusters.md
index 08ff45579d..0827b713f3 100644
--- a/docs/vendor/testing-supported-clusters.md
+++ b/docs/vendor/testing-supported-clusters.md
@@ -216,7 +216,7 @@ By default, kubeconfig context is set to the `kubeadmin` user. To switch to the
### Embedded Cluster
-CMX supports creating clusters with Replicated Embedded Cluster. For more information, see [Embedded Cluster Overview](/vendor/embedded-overview).
+CMX supports creating clusters with Replicated Embedded Cluster. For more information, see [Embedded Cluster Overview](/embedded-cluster/v3/embedded-overview).
diff --git a/docs/vendor/tutorial-cmx-airgap.mdx b/docs/vendor/tutorial-cmx-airgap.mdx
index 2f7bd767d4..a5e481f445 100644
--- a/docs/vendor/tutorial-cmx-airgap.mdx
+++ b/docs/vendor/tutorial-cmx-airgap.mdx
@@ -1,6 +1,6 @@
import DependencyYaml from "../partials/replicated-sdk/_dependency-yaml.mdx"
import HelmPackage from "../partials/helm/_helm-package.mdx"
-import Requirements from "../partials/embedded-cluster/_requirements.mdx"
+import Requirements from "../partials/embedded-cluster/v2/_requirements.mdx"
# Test an air gap installation with compatibility matrix
@@ -431,4 +431,4 @@ Congratulations! As part of this tutorial, you:
For more information about testing with Compatibility Matrix in air-gapped environments, see [Test in Air Gap Environments](/vendor/testing-network-policy).
-For more information about installing in air-gapped environments with Embedded Cluster, see [Air Gap Installation with Embedded Cluster](/enterprise/installing-embedded-air-gap).
\ No newline at end of file
+For more information about installing in air-gapped environments with Embedded Cluster, see [Air Gap Installation with Embedded Cluster](/embedded-cluster/v2/installing-embedded-air-gap).
\ No newline at end of file
diff --git a/docs/vendor/tutorial-embedded-cluster-automation.mdx b/docs/vendor/tutorial-embedded-cluster-automation.mdx
index 0455622d48..1ed5fd3f34 100644
--- a/docs/vendor/tutorial-embedded-cluster-automation.mdx
+++ b/docs/vendor/tutorial-embedded-cluster-automation.mdx
@@ -1,6 +1,6 @@
import DependencyYaml from "../partials/replicated-sdk/_dependency-yaml.mdx"
import HelmPackage from "../partials/helm/_helm-package.mdx"
-import Requirements from "../partials/embedded-cluster/_requirements.mdx"
+import Requirements from "../partials/embedded-cluster/v2/_requirements.mdx"
# Install SlackerNews with Embedded Cluster from the command line
@@ -8,7 +8,7 @@ This tutorial demonstrates how to perform an automated or _headless_ installatio
## Introduction
-This tutorial shows how to install a Helm chart with Embedded Cluster from the command line without interacting with the Admin Console UI. This is also known as a _headless_ installation. Headless installations are often used for automating application deployment as part of CI/CD pipelines. For more information about headless installs with Embedded Cluster, see [Automating Installation with Embedded Cluster](/enterprise/installing-embedded-automation).
+This tutorial shows how to install a Helm chart with Embedded Cluster from the command line without interacting with the Admin Console UI. This is also known as a _headless_ installation. Headless installations are often used for automating application deployment as part of CI/CD pipelines. For more information about headless installs with Embedded Cluster, see [Automate installation with Embedded Cluster](/embedded-cluster/v2/installing-embedded-automation).
In this tutorial, you will:
@@ -370,4 +370,4 @@ Congratulations! As part of this tutorial, you:
* Created a ConfigValues file
* Performed a headless install of the release on a VM with Embedded Cluster
-For more information about headless installs with Embedded Cluster, see [Automating Installation with Embedded Cluster](/enterprise/installing-embedded-automation).
\ No newline at end of file
+For more information about headless installs with Embedded Cluster, see [Automate installation with Embedded Cluster](/embedded-cluster/v2/installing-embedded-automation).
\ No newline at end of file
diff --git a/docs/vendor/tutorial-helm-cli.mdx b/docs/vendor/tutorial-helm-cli.mdx
index 8349b29de3..edea07de07 100644
--- a/docs/vendor/tutorial-helm-cli.mdx
+++ b/docs/vendor/tutorial-helm-cli.mdx
@@ -1,6 +1,6 @@
import DependencyYaml from "../partials/replicated-sdk/_dependency-yaml.mdx"
import HelmPackage from "../partials/helm/_helm-package.mdx"
-import Requirements from "../partials/embedded-cluster/_requirements.mdx"
+import Requirements from "../partials/embedded-cluster/v2/_requirements.mdx"
# Install SlackerNews with the Helm CLI
diff --git a/docusaurus.config.js b/docusaurus.config.js
index b20dec7729..a9b4351b0d 100644
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -7,7 +7,7 @@ const darkTheme = themes.dracula;
/** @type {import('@docusaurus/types').Config} */
const config = {
- title: 'Replicated Docs',
+ title: 'Replicated',
tagline: 'Technical documentation for Replicated vendors and their enterprise end-customers.',
url: 'https://docs.replicated.com',
baseUrl: '/',
@@ -29,7 +29,7 @@ const config = {
docs: {
routeBasePath: '/', // Serve the docs at the site's root
sidebarPath: require.resolve('./sidebars.js'),
- breadcrumbs: false,
+ breadcrumbs: true,
editUrl: 'https://github.com/replicatedhq/replicated-docs/edit/main/',
admonitions: {
keywords: ['note','important', 'tip', 'info', 'caution', 'danger'],
@@ -50,7 +50,36 @@ const config = {
}),
],
],
-
+ plugins: [
+ [
+ '@docusaurus/plugin-content-docs',
+ {
+ id: 'embedded-cluster',
+ path: 'embedded-cluster',
+ routeBasePath: 'embedded-cluster',
+ sidebarPath: './sidebarEmbeddedCluster.js',
+ breadcrumbs: true,
+ editUrl: 'https://github.com/replicatedhq/replicated-docs/edit/main/',
+ // Versioning configuration
+ lastVersion: 'current', // v3 is the default version
+ includeCurrentVersion: true, // Include the "next" version from installer/ folder
+ versions: {
+ current: {
+ label: 'Embedded Cluster v3',
+ path: 'v3',
+ banner: 'none',
+ badge: false,
+ },
+ '2.0.0': {
+ label: 'Embedded Cluster v2',
+ path: 'v2',
+ banner: 'unmaintained',
+ badge: false,
+ },
+ },
+ },
+ ],
+ ],
scripts: [
{
src:
@@ -136,7 +165,8 @@ const config = {
},
{
type: 'doc',
- docId: 'vendor/embedded-overview',
+ docId: 'embedded-overview',
+ docsPluginId: 'embedded-cluster',
label: 'Embedded Cluster',
},
{
@@ -173,9 +203,19 @@ const config = {
},
{
type: 'dropdown',
- label: 'Developer tools',
+ label: 'Reference',
position: 'left',
items: [
+ {
+ type: 'doc',
+ docId: 'reference/custom-resource-about',
+ label: 'Custom resources',
+ },
+ {
+ type: 'doc',
+ docId: 'reference/template-functions-about',
+ label: 'Template functions',
+ },
{
type: 'doc',
docId: 'reference/kots-cli-getting-started',
diff --git a/embedded-cluster/embedded-cluster-completion.mdx b/embedded-cluster/embedded-cluster-completion.mdx
new file mode 100644
index 0000000000..20305ea657
--- /dev/null
+++ b/embedded-cluster/embedded-cluster-completion.mdx
@@ -0,0 +1,49 @@
+# completion (Beta)
+
+This topic describes the options available with the Embedded Cluster `completion` command.
+
+## Usage
+
+```bash
+sudo ./ completion [command]
+```
+
+## Subcommands
+
+
+
+
Command
+
Description
+
+
+
`bash`
+
Generate the autocompletion script for bash.
+
+
+
`fish`
+
Generate the autocompletion script for fish.
+
+
+
`powershell`
+
Generate the autocompletion script for PowerShell.
+
+
+
`zsh`
+
Generate the autocompletion script for zsh.
+
+
+
+## Flags
+
+
+
+
Flag
+
Type
+
Description
+
+
+
`-h`, `--help`
+
+
Help for `completion`.
+
+
diff --git a/embedded-cluster/embedded-cluster-create-join-bundle.mdx b/embedded-cluster/embedded-cluster-create-join-bundle.mdx
new file mode 100644
index 0000000000..074f788a21
--- /dev/null
+++ b/embedded-cluster/embedded-cluster-create-join-bundle.mdx
@@ -0,0 +1,39 @@
+# create-join-bundle (Beta)
+
+This topic describes the options available with the Embedded Cluster `create-join-bundle` command. Use this command to produce a bundle that nodes can use to join the cluster with a given role.
+
+## Usage
+
+```bash
+sudo ./ create-join-bundle [flags]
+```
+
+## Flags
+
+
+
+
Flag
+
Type
+
Description
+
+
+
`--output`
+
string
+
Output path for the bundle. **Default:** A path of the form `./cli-join-ROLE-TIMESTAMP.tar.gz` (the CLI fills in the role and timestamp).
+
+
+
`--role`
+
string
+
Node role: `controller` or `worker`. **Required.**
+
+
+
`--ttl`
+
string
+
Token expiration time (for example, `24h`, `48h`, `168h`). **Default:** `24h`
+
+
+
`-h`, `--help`
+
+
Help for `create-join-bundle`.
+
+
diff --git a/embedded-cluster/embedded-cluster-create-upgrade-bundle.mdx b/embedded-cluster/embedded-cluster-create-upgrade-bundle.mdx
new file mode 100644
index 0000000000..f407dbda9f
--- /dev/null
+++ b/embedded-cluster/embedded-cluster-create-upgrade-bundle.mdx
@@ -0,0 +1,29 @@
+# create-upgrade-bundle (Beta)
+
+This topic describes the options available with the Embedded Cluster `create-upgrade-bundle` command. Use this command to produce a bundle used for offline or constrained-path upgrades.
+
+## Usage
+
+```bash
+sudo ./ create-upgrade-bundle [flags]
+```
+
+## Flags
+
+
+
+
Flag
+
Type
+
Description
+
+
+
`--output`
+
string
+
Output path for the bundle. **Default:** A path of the form `./cli-upgrade-TIMESTAMP.tar.gz` (the CLI fills in the timestamp).
+
+
+
`-h`, `--help`
+
+
Help for `create-upgrade-bundle`.
+
+
diff --git a/embedded-cluster/embedded-cluster-enable-ha.mdx b/embedded-cluster/embedded-cluster-enable-ha.mdx
new file mode 100644
index 0000000000..31d0432602
--- /dev/null
+++ b/embedded-cluster/embedded-cluster-enable-ha.mdx
@@ -0,0 +1,29 @@
+# enable-ha (Beta)
+
+This topic describes the options available with the Embedded Cluster `enable-ha` command.
+
+## Usage
+
+```bash
+sudo ./ enable-ha [flags]
+```
+
+## Flags
+
+
+
+
Flag
+
Type
+
Description
+
+
+
`--force`
+
+
Re-run the migration even if high availability (HA) is already complete.
+
+
+
`-h`, `--help`
+
+
Help for `enable-ha`.
+
+
diff --git a/embedded-cluster/embedded-cluster-install.mdx b/embedded-cluster/embedded-cluster-install.mdx
new file mode 100644
index 0000000000..d5516733cc
--- /dev/null
+++ b/embedded-cluster/embedded-cluster-install.mdx
@@ -0,0 +1,114 @@
+# install (Beta)
+
+This topic describes the options available with the Embedded Cluster `install` command. For procedural steps, see [Online installation with Embedded Cluster](installing-embedded), [Air gap installation with Embedded Cluster](installing-embedded-air-gap), and [Automate installation with Embedded Cluster](installing-embedded).
+
+## Usage
+
+```bash
+sudo ./ install --license [flags]
+```
+
+## Flags
+
+
+
+
Flag
+
Type
+
Description
+
+
+
`--airgap`
+
+
Perform an air-gapped installation. For more information, see [Air gap installation with Embedded Cluster](installing-embedded-air-gap).
+
+
+
`--cidr`
+
string
+
CIDR range for Pod and Service IP addresses. **Default:** `10.244.0.0/16`
+
+
+
`--config-values`
+
string
+
Path to the [ConfigValues](/reference/custom-resource-configvalues) file for headless installs.
+
+
+
`--data-dir`
+
string
+
Data directory for Embedded Cluster. **Default:** `/data-dir` (confirm with `install --help` for your binary).
+
+
+
`--headless`
+
+
Run installation without the interactive installer UI.
+
+
+
`--hostname`
+
string
+
Hostname to use for this node.
+
+
+
`--http-proxy`
+
string
+
HTTP proxy URL.
+
+
+
`--https-proxy`
+
string
+
HTTPS proxy URL.
+
+
+
`--ignore-app-preflights`
+
+
Skip application preflight checks.
+
+
+
`--ignore-host-preflights`
+
+
Skip Embedded Cluster host preflight checks.
+
+
+
`--installer-password`
+
string
+
Password for the installer UI.
+
+
+
`--installer-port`
+
int
+
Port for the installer UI. **Default:** `30080`
+
+
+
`-l`, `--license`
+
string
+
Path to the license file.
+
+
+
`--network-interface`
+
string
+
Network interface to use.
+
+
+
`--no-proxy`
+
string
+
Comma-separated list of hosts that should not use the proxy.
+
+
+
`--tls-cert`
+
string
+
Path to a TLS certificate file for the installer.
+
+
+
`--tls-key`
+
string
+
Path to a TLS private key file for the installer.
+
+
+
`-y`, `--yes`
+
+
Assume yes to prompts (for example, when skipping preflights).
+
+
+
`-h`, `--help`
+
+
Help for `install`.
+
+
diff --git a/embedded-cluster/embedded-cluster-node-join.mdx b/embedded-cluster/embedded-cluster-node-join.mdx
new file mode 100644
index 0000000000..ce91dbcc12
--- /dev/null
+++ b/embedded-cluster/embedded-cluster-node-join.mdx
@@ -0,0 +1,34 @@
+# node join (Beta)
+
+This topic describes the options available with the Embedded Cluster `node join` command.
+
+## Usage
+
+```bash
+sudo ./ node join [flags]
+```
+
+## Flags
+
+
+
+
Flag
+
Type
+
Description
+
+
+
`--ignore-host-preflights`
+
+
Skip Embedded Cluster host preflight checks.
+
+
+
`--network-interface`
+
string
+
Network interface to use.
+
+
+
`-h`, `--help`
+
+
Help for `node join`.
+
+
diff --git a/embedded-cluster/embedded-cluster-node-upgrade.mdx b/embedded-cluster/embedded-cluster-node-upgrade.mdx
new file mode 100644
index 0000000000..df79ed6644
--- /dev/null
+++ b/embedded-cluster/embedded-cluster-node-upgrade.mdx
@@ -0,0 +1,26 @@
+# node upgrade (Beta)
+
+This topic describes the options available with the Embedded Cluster `node upgrade` command.
+
+## Usage
+
+```bash
+sudo ./ node upgrade [flags]
+```
+
+## Flags
+
+Run `sudo ./ node upgrade --help` on your installation host to list flags supported by your release.
+
+
+
+
Flag
+
Type
+
Description
+
+
+
`-h`, `--help`
+
+
Help for `node upgrade`.
+
+
diff --git a/embedded-cluster/embedded-cluster-remove-node.mdx b/embedded-cluster/embedded-cluster-remove-node.mdx
new file mode 100644
index 0000000000..3f25b220bd
--- /dev/null
+++ b/embedded-cluster/embedded-cluster-remove-node.mdx
@@ -0,0 +1,36 @@
+# remove-node (Beta)
+
+This topic describes the options available with the Embedded Cluster `remove-node` command.
+
+## Usage
+
+```bash
+sudo ./ remove-node [flags]
+```
+
+Replace `node-name` with the Kubernetes node name to remove.
+
+## Flags
+
+
+
+
Flag
+
Type
+
Description
+
+
+
`--force`
+
+
Force removal without additional confirmation.
+
+
+
`--skip-drain`
+
+
Skip draining workloads from the node before removal.
+
+
+
`-h`, `--help`
+
+
Help for `remove-node`.
+
+
diff --git a/embedded-cluster/embedded-cluster-reset.mdx b/embedded-cluster/embedded-cluster-reset.mdx
new file mode 100644
index 0000000000..4fa7bfe186
--- /dev/null
+++ b/embedded-cluster/embedded-cluster-reset.mdx
@@ -0,0 +1,29 @@
+# reset (Beta)
+
+This topic describes the options available with the Embedded Cluster `reset` command.
+
+## Usage
+
+```bash
+sudo ./ reset [flags]
+```
+
+## Flags
+
+
+
+
Flag
+
Type
+
Description
+
+
+
`-f`, `--force`
+
+
Ignore errors encountered when resetting the node.
+
+
+
`-h`, `--help`
+
+
Help for `reset`.
+
+
diff --git a/embedded-cluster/embedded-cluster-shell.mdx b/embedded-cluster/embedded-cluster-shell.mdx
new file mode 100644
index 0000000000..6e8d673559
--- /dev/null
+++ b/embedded-cluster/embedded-cluster-shell.mdx
@@ -0,0 +1,29 @@
+# shell (Beta)
+
+This topic describes the options available with the Embedded Cluster `shell` command.
+
+## Usage
+
+```bash
+sudo ./ shell [flags]
+```
+
+## Flags
+
+
+
+
Flag
+
Type
+
Description
+
+
+
`-c`, `--command`
+
string
+
Command to run instead of starting an interactive shell.
+
+
+
`-h`, `--help`
+
+
Help for `shell`.
+
+
diff --git a/embedded-cluster/embedded-cluster-status.mdx b/embedded-cluster/embedded-cluster-status.mdx
new file mode 100644
index 0000000000..d46192b251
--- /dev/null
+++ b/embedded-cluster/embedded-cluster-status.mdx
@@ -0,0 +1,29 @@
+# status (Beta)
+
+This topic describes the options available with the Embedded Cluster `status` command.
+
+## Usage
+
+```bash
+sudo ./ status [flags]
+```
+
+## Flags
+
+
+
+
Flag
+
Type
+
Description
+
+
+
`--json`
+
+
Print status as JSON.
+
+
+
`-h`, `--help`
+
+
Help for `status`.
+
+
diff --git a/embedded-cluster/embedded-cluster-support-bundle.mdx b/embedded-cluster/embedded-cluster-support-bundle.mdx
new file mode 100644
index 0000000000..78d43d1bc0
--- /dev/null
+++ b/embedded-cluster/embedded-cluster-support-bundle.mdx
@@ -0,0 +1,29 @@
+# support-bundle (Beta)
+
+This topic describes the options available with the Embedded Cluster `support-bundle` command. For more information about troubleshooting Embedded Cluster, see [Troubleshoot Embedded Cluster](embedded-troubleshooting).
+
+## Usage
+
+```bash
+sudo ./ support-bundle [flags]
+```
+
+## Flags
+
+
+
+
Flag
+
Type
+
Description
+
+
+
`-o`, `--output`
+
string
+
Path for the support bundle output file.
+
+
+
`-h`, `--help`
+
+
Help for `support-bundle`.
+
+
diff --git a/embedded-cluster/embedded-cluster-upgrade.mdx b/embedded-cluster/embedded-cluster-upgrade.mdx
new file mode 100644
index 0000000000..d72620ba15
--- /dev/null
+++ b/embedded-cluster/embedded-cluster-upgrade.mdx
@@ -0,0 +1,84 @@
+# upgrade (Beta)
+
+This topic describes the options available with the Embedded Cluster `upgrade` command. For procedural steps, see [Perform updates in embedded clusters](updating-embedded).
+
+## Usage
+
+```bash
+sudo ./ upgrade --license [flags]
+```
+
+## Flags
+
+
+
+
Flag
+
Type
+
Description
+
+
+
`--config-values`
+
string
+
Path to the [ConfigValues](/reference/custom-resource-configvalues) file for headless upgrades.
+
+
+
`--force-skip-ha-migration-check`
+
+
Skip checks related to high availability (HA) migration. Use with caution.
+
+
+
`--headless`
+
+
Run the upgrade without the interactive installer UI.
+
+
+
`--hostname`
+
string
+
Hostname to use for this node.
+
+
+
`--ignore-app-preflights`
+
+
Skip application preflight checks.
+
+
+
`--ignore-host-preflights`
+
+
Skip Embedded Cluster host preflight checks.
+
+
+
`--installer-password`
+
string
+
Password for the installer UI.
+
+
+
`--installer-port`
+
int
+
Port for the installer UI. **Default:** `30080`
+
+
+
`-l`, `--license`
+
string
+
Path to the license file.
+
+
+
`--tls-cert`
+
string
+
Path to a TLS certificate file for the installer.
+
+
+
`--tls-key`
+
string
+
Path to a TLS private key file for the installer.
+
+
+
`-y`, `--yes`
+
+
Assume yes to prompts.
+
+
+
`-h`, `--help`
+
+
Help for `upgrade`.
+
+
diff --git a/embedded-cluster/embedded-cluster-version.mdx b/embedded-cluster/embedded-cluster-version.mdx
new file mode 100644
index 0000000000..40d9104ea4
--- /dev/null
+++ b/embedded-cluster/embedded-cluster-version.mdx
@@ -0,0 +1,24 @@
+# version (Beta)
+
+This topic describes the options available with the Embedded Cluster `version` command.
+
+## Usage
+
+```bash
+sudo ./ version [flags]
+```
+
+## Flags
+
+
+
+
Flag
+
Type
+
Description
+
+
+
`-h`, `--help`
+
+
Help for `version`.
+
+
diff --git a/embedded-cluster/embedded-config.mdx b/embedded-cluster/embedded-config.mdx
new file mode 100644
index 0000000000..3505bbee0e
--- /dev/null
+++ b/embedded-cluster/embedded-config.mdx
@@ -0,0 +1,246 @@
+import DoNotDowngrade from "../docs/partials/embedded-cluster/_warning-do-not-downgrade.mdx"
+
+# Embedded Cluster Config (Beta)
+
+This topic is a reference for the Replicated Embedded Cluster Config custom resource. For more information about Embedded Cluster, see [Use Embedded Cluster](embedded-overview).
+
+## Limitations
+
+* Most of the fields in the Config spec are plain YAML and do not support Go template functions, including [Replicated template functions](/reference/template-functions-about). The `values` field for each entry in `extensions.helmCharts` does support the use of template functions.
+
+* There are additional, property-specific limitations. For more information, see the following sections.
+
+## Example
+
+```yaml
+apiVersion: embeddedcluster.replicated.com/v1beta1
+kind: Config
+metadata:
+ name: my-embedded-cluster-config
+spec:
+ version: "3.0.0-alpha-31+k8s-1.34"
+ domains:
+ proxyRegistryDomain: proxy.example.com
+ replicatedAppDomain: updates.example.com
+ unsupportedOverrides:
+ k0s: |
+ config:
+ metadata:
+ name: foo
+ spec:
+ telemetry:
+ enabled: false
+ workerProfiles:
+ - name: ip-forward
+ values:
+ allowedUnsafeSysctls:
+ - net.ipv4.ip_forward
+ extensions:
+ helmCharts:
+ - chart:
+ name: ingress-nginx
+ chartVersion: "4.11.3"
+ releaseName: ingress-nginx
+ namespace: ingress-nginx
+ values: |
+ controller:
+ service:
+ type: NodePort
+ nodePorts:
+ http: "80"
+ https: "443"
+ image:
+ repository: 'repl{{ ReplicatedImageName "registry.k8s.io/ingress-nginx/controller" }}'
+ tag: 'repl{{ HelmValue ".Values.controller.image.tag" }}'
+ digest: ""
+ digestChroot: ""
+ admissionWebhooks:
+ patch:
+ image:
+ repository: 'repl{{ ReplicatedImageName "registry.k8s.io/ingress-nginx/kube-webhook-certgen" }}'
+ tag: 'repl{{ HelmValue ".Values.controller.admissionWebhooks.patch.image.tag" }}'
+ digest: ""
+ - chart:
+ name: goldpinger
+ chartVersion: "6.1.2"
+ releaseName: goldpinger
+ namespace: goldpinger
+ weight: 11
+ values: |
+ image:
+ repository: 'repl{{ ReplicatedImageName "docker.io/bloomberg/goldpinger" }}'
+```
+
+## version (Required)
+
+Specify the versions of Embedded Cluster and Kubernetes to install.
+
+Embedded Cluster appends the version of Kubernetes to the version label in the format `+k8s-1.34`. For example, Embedded Cluster `3.0.0-alpha-26+k8s-1.34` uses Embedded Cluster `3.0.0-alpha-26` and Kubernetes 1.34.
+
+Each version of Embedded Cluster includes specific versions of components like OpenEBS.
+For more information, see the [Embedded Cluster Release Notes](/release-notes/rn-embedded-cluster).
+
+Replicated recommends that you update the version frequently to ensure that you are using the latest version of Embedded Cluster.
+
+
+
+## domains
+
+Configure the `domains` key so that Embedded Cluster uses your custom domains for the Replicated proxy registry and Replicated app service.
+
+Embedded Cluster uses the custom domains specified in `domains.proxyRegistryDomain` and `domains.replicatedAppDomain` when making requests to the given service.
+
+You must add the custom domains that you specify in the `domains.proxyRegistryDomain` and `domains.replicatedAppDomain` fields to the Vendor Portal before Embedded Cluster can use them. For more information, see [Add a Custom Domain in the Vendor Portal](/vendor/custom-domains-using#add-domain) in _Using Custom Domains_.
+
+If `domains.proxyRegistryDomain` and `domains.replicatedAppDomain` are not set, Embedded Cluster uses the default Replicated domains. For more information about aliasing Replicated endpoints with custom domains, see [About Custom Domains](/vendor/custom-domains).
+
+#### Example
+
+```yaml
+apiVersion: embeddedcluster.replicated.com/v1beta1
+kind: Config
+spec:
+ domains:
+ proxyRegistryDomain: proxy.mycompany.com
+ replicatedAppDomain: updates.mycompany.com
+```
+
+## extensions
+
+Embedded Cluster installs Helm charts before your application as part of Embedded Cluster itself. Specify these charts in `spec.extensions.helmCharts`. Each item describes one chart release.
+
+### helmCharts
+
+Each object in `helmCharts` can include the following fields:
+
+* `chart`: (Required) Identifies the chart.
+ * `name`: Chart name.
+ * `chartVersion`: Chart version string to install.
+* `releaseName`: (Required) Helm release name.
+* `namespace`: (Required) Namespace for the release.
+* `weight`: Controls installation order relative to other Helm chart extensions. Lower weights install before higher weights.
+* `values`: Multi-line string of Helm values. This field supports [Replicated template functions](/reference/template-functions-about). Embedded Cluster updates Helm extensions when users deploy new versions of your application. For example, you can change `values` from one release to another, and those changes apply when the user deploys the new version.
+
+#### Requirements
+
+* You must provide `chart.chartVersion`. Omitting it can cause upgrade issues.
+
+* For air gap bundles, images used by Helm extensions must not refer to a multi-architecture image by digest. Air gap bundles include only x64 images, and the digest for the x64 image will be different from the digest for the multi-architecture image, preventing Kubernetes from locating the image in the bundle. For an example of how to set digests to empty strings and pull by tag only, see the `ingress-nginx` [Example](embedded-config#extension-example).
+
+#### Example {#extension-example}
+
+```yaml
+apiVersion: embeddedcluster.replicated.com/v1beta1
+kind: Config
+spec:
+ extensions:
+ helmCharts:
+ - chart:
+ name: ingress-nginx
+ chartVersion: "4.11.3"
+ releaseName: ingress-nginx
+ namespace: ingress-nginx
+ values: |
+ controller:
+ service:
+ type: NodePort
+ nodePorts:
+ http: "80"
+ https: "443"
+ image:
+ digest: ""
+ digestChroot: ""
+```
+
+## unsupportedOverrides
+
+:::important
+Advanced users who understand the risks and ramifications of changing the default configuration should use this feature with caution.
+:::
+
+Use unsupported overrides to change Embedded Cluster's default configuration, including the k0s config and Helm values for built-in extensions. Use overrides carefully. Replicated has not tested these combinations and they can disrupt clusters. Replicated does not support issues caused by unsupported overrides.
+
+While you should use them with caution, unsupported overrides are useful if you need to make changes that Embedded Cluster does not otherwise expose.
+
+### Override the k0s Config
+
+By default, Embedded Cluster uses a k0s config that Replicated has tested and confirmed works for Embedded Clusters. In some circumstances, you might want to change the k0s config.
+
+For more information on the k0s config, see [Configuration options](https://docs.k0sproject.io/stable/configuration/#configuration-file-reference) in the k0s documentation.
+
+The value of `unsupportedOverrides.k0s` is a string containing YAML that becomes (or patches) the k0s configuration Embedded Cluster uses. How deeply Embedded Cluster merges that YAML with its defaults depends on the field. Treat overrides as high risk and validate in a non-production cluster.
+
+For example, you can enable WireGuard-based encryption. You might need to add other configuration. See [`spec.network.calico`](https://docs.k0sproject.io/stable/configuration/#specnetworkcalico) in the k0s documentation:
+
+```yaml
+apiVersion: embeddedcluster.replicated.com/v1beta1
+kind: Config
+spec:
+ unsupportedOverrides:
+ k0s: |
+ config:
+ spec:
+ network:
+ calico:
+ wireguard: true
+```
+
+#### Limitations
+
+* You cannot change the `spec.api` and `spec.storage` keys in the k0s config after installation. Whereas most keys in the k0s config apply to the whole cluster, k0s sets these two keys for each node individually. Embedded Cluster cannot update these keys on each individual node during updates, so you cannot change them after installation.
+
+* Overrides can replace whole sections of the k0s configuration rather than deep-merge with every default. When overriding a list (for example, `workerProfiles`), you may need to include entries that Embedded Cluster relies on by default, or behavior can change in ways that are hard to predict. Confirm the effective k0s config for your release if you rely on defaults plus overrides.
+
+### Override the Helm values for built-in extensions
+
+Embedded Cluster deploys built-in extensions with Helm. You can patch their values with `unsupportedOverrides.builtInExtensions`. Each item sets `name` (the chart to patch) and `values` (a multi-line YAML string). Embedded Cluster merges your values into the defaults it uses.
+
+{/* #### Example
+
+```yaml
+apiVersion: embeddedcluster.replicated.com/v1beta1
+kind: Config
+spec:
+ unsupportedOverrides:
+ builtInExtensions:
+ - name: openebs
+ values: |
+ labels:
+ release-custom-label: release-custom-value
+``` */}
+
+### Configure the Kubelet
+
+You can configure the Kubelet to customize worker nodes with Embedded Cluster. One common use case is raising the per-node pod limit (`maxPods`). Another is tuning parallel image pulls (`maxParallelImagePulls`).
+
+Add a _worker profile_ in `unsupportedOverrides.k0s` at `config.spec.workerProfiles[]`. When you define a worker profile, Embedded Cluster uses it for every node during initial installation and when joining nodes.
+
+Each profile requires:
+
+* `name`: Profile name. Do not use `default` because k0s reserves that name.
+* `values`: Kubelet settings. See [KubeletConfiguration](https://kubernetes.io/docs/reference/config-api/kubelet-config.v1beta1/#kubelet-config-k8s-io-v1beta1-KubeletConfiguration) in the Kubernetes documentation.
+
+For more information, see [spec.workerProfiles](https://docs.k0sproject.io/stable/configuration/#specworkerprofiles) in the k0s documentation.
+
+You can combine worker profiles with other k0s settings in the same `k0s` string (for example, `metadata`, `telemetry`, or `network`).
+
+#### Limitations
+
+* Embedded Cluster sets the worker profile during initial installation. You cannot change or add worker profiles on upgrade.
+* Embedded Cluster supports only one worker profile and applies it to all nodes. If you add more than one profile in `workerProfiles[]`, Embedded Cluster applies only the first profile.
+
+#### Example
+
+```yaml
+apiVersion: embeddedcluster.replicated.com/v1beta1
+kind: Config
+spec:
+ unsupportedOverrides:
+ k0s: |
+ config:
+ spec:
+ workerProfiles:
+ - name: custom-maxpods
+ values:
+ maxPods: 150
+```
diff --git a/embedded-cluster/embedded-manage-nodes.mdx b/embedded-cluster/embedded-manage-nodes.mdx
new file mode 100644
index 0000000000..a032ef0a25
--- /dev/null
+++ b/embedded-cluster/embedded-manage-nodes.mdx
@@ -0,0 +1,161 @@
+import ShellCommand from "../docs/partials/embedded-cluster/_shell-command.mdx"
+
+# Access and manage embedded clusters (Beta)
+
+This topic describes managing nodes in clusters created with Replicated Embedded Cluster.
+
+## Access the cluster
+
+You can use the CLI to access the cluster. This is useful for development or troubleshooting.
+
+
+
+## Configure multi-node clusters
+
+This section describes how to join nodes to a cluster with Embedded Cluster.
+
+### Limitations
+
+Multi-node clusters with Embedded Cluster have the following limitations:
+
+* All nodes joined to the cluster use the same Embedded Cluster data directory as the installation node. You cannot choose a different data directory for Embedded Cluster when joining nodes.
+
+* You should not join more than one controller node at the same time. When joining a controller node, Embedded Cluster prints a warning explaining that you should not attempt to join another node until the controller node joins successfully.
+
+* You cannot change a node's role (`controller` or `worker`) after you join the node. If you need to change a node’s role, reset the node and add it again with the new role.
+
+### Requirement
+
+To deploy multi-node clusters with Embedded Cluster, you must enable the **Multi-node Cluster (Embedded Cluster only)** license field for the customer. For more information about managing customer licenses, see [Create and Manage Customers](/vendor/releases-creating-customer).
+
+### Join nodes {#add-nodes}
+
+To join a node:
+
+1. SSH into a controller node.
+
+1. Run the following command to generate the `.tar.gz` bundle for joining a node:
+
+ ```bash
+ sudo ./APP_SLUG create-join-bundle --role [controller | worker]
+ ```
+ Where:
+ * `APP_SLUG` is the unique slug for the application.
+ * `--role` is the role to assign the node (`controller` or `worker`).
+
+ :::note
+ You cannot change the role after you add a node. If you need to change a node’s role, reset the node and add it again with the new role.
+ :::
+
+1. Use `scp` to copy the `.tar.gz` bundle to the node that you want to join.
+
+1. Extract the `.tar.gz`.
+
+1. Run the join command to add the node to the cluster:
+
+ ```bash
+ sudo ./APP_SLUG node join
+ ```
+
+1. Repeat these steps for each node you want to add.
+
+## High availability for multi-node clusters {#ha}
+
+Embedded Cluster automatically enables high availability (HA) when at least three `controller` nodes are present in the cluster.
+
+In HA installations, Embedded Cluster deploys multiple replicas of the OpenEBS and image registry built-in extensions. Also, any Helm [extensions](embedded-config#extensions) that you include in the Embedded Cluster Config are installed in the cluster depending on the given chart and whether or not it is configured to be deployed with high availability.
+
+### Best practices for high availability
+
+Consider the following best practices and recommendations for HA clusters:
+
+* HA requires at least three _controller_ nodes that run the Kubernetes control plane. This is because clusters use a quorum system, in which more than half the nodes must be up and reachable. In clusters with three controller nodes, the Kubernetes control plane can continue to operate if one node fails because the remaining two nodes can still form a quorum.
+
+* Always use an odd number of controller nodes in HA clusters. Using an odd number of controller nodes ensures that the cluster can make decisions efficiently with quorum calculations. Clusters with an odd number of controller nodes also avoid split-brain scenarios where the cluster runs as two, independent groups of nodes, resulting in inconsistencies and conflicts.
+
+* You can have any number of _worker_ nodes in HA clusters. Worker nodes do not run the Kubernetes control plane, but can run workloads such as application workloads.
+
+### Create a multi-node cluster with HA
+
+To create a multi-node cluster with HA:
+
+* During installation with Embedded Cluster, follow the steps in the Embedded Cluster UI to join a total of three `controller` nodes to the cluster. For more information about joining nodes, see [Join nodes](#add-nodes) on this page.
+
+ Embedded Cluster automatically converts the installation to HA when three or more controller nodes are present.
+
+### Enable HA for an existing cluster {#enable-ha-existing}
+
+To enable HA for an existing Embedded Cluster installation with three or more controller nodes:
+
+* On one of the controller nodes, run this command:
+
+ ```bash
+ sudo ./APP_SLUG enable-ha
+ ```
+
+ Where `APP_SLUG` is the unique slug for the application.
+
+## Reset nodes and remove clusters
+
+This section describes how to reset individual nodes and how to delete an entire multi-node cluster using the Embedded Cluster [reset](embedded-cluster-reset) command.
+
+### About the `reset` command
+
+Resetting a node with Embedded Cluster removes the cluster and your application from that node. This is useful for iteration, development, and when you make mistakes because you can reuse the machine instead of having to procure a new one.
+
+The `reset` command performs the following steps:
+
+1. Run safety checks. For example, `reset` does not remove a controller node when there are workers nodes available. And, it does not remove a node when the etcd cluster is unhealthy.
+1. Drain the node and evict all the Pods gracefully
+1. Delete the node from the cluster
+1. Stop and reset k0s
+1. Remove all Embedded Cluster files
+1. Reboot the node
+
+For more information about the command, see [reset](embedded-cluster-reset).
+
+### Limitations and best practices
+
+Before you reset a node or remove a cluster, consider the following limitations and best practices:
+
+* When you reset a node, Embedded Cluster deletes OpenEBS PVCs on that node. Kubernetes automatically recreates only PVCs created as part of a StatefulSet on another node in the cluster. To recreate other PVCs, redeploy the application in the cluster.
+
+* If you need to reset one controller node in a three-node cluster, first join a fourth controller node to the cluster before removing the target node. This ensures that you maintain a minimum of three nodes for the Kubernetes control plane. You can add and remove worker nodes as needed because they do not have any control plane components.
+
+* When resetting a single node or deleting a test environment, you can include the `--force` flag with the `reset` command to ignore any errors.
+
+* When removing a multi-node cluster, run `reset` on each of the worker nodes first. Then, run `reset` on controller nodes. Controller nodes also remove themselves from etcd membership.
+
+### Reset a node {#reset-a-node}
+
+To reset a node:
+
+1. SSH onto the node. Ensure that the Embedded Cluster binary is still available on the machine.
+
+1. Run the following command to remove the node and reboot the machine:
+
+ ```bash
+ sudo ./APP_SLUG reset
+ ```
+ Where `APP_SLUG` is the unique slug for the application.
+
+### Remove a multi-node cluster
+
+To remove a multi-node cluster:
+
+1. SSH onto a worker node.
+
+ :::note
+ The safety checks for the `reset` command prevent you from removing a controller node when there are still worker nodes available in the cluster.
+ :::
+
+1. Remove the node and reboot the machine:
+
+ ```bash
+ sudo ./APP_SLUG reset
+ ```
+ Where `APP_SLUG` is the unique slug for the application.
+
+1. After removing all the worker nodes in the cluster, SSH onto a controller node and run the `reset` command to remove the node.
+
+1. Repeat the previous step on the remaining controller nodes in the cluster.
diff --git a/embedded-cluster/embedded-overview.mdx b/embedded-cluster/embedded-overview.mdx
new file mode 100644
index 0000000000..7a2cc59475
--- /dev/null
+++ b/embedded-cluster/embedded-overview.mdx
@@ -0,0 +1,68 @@
+import EmbeddedCluster from "../docs/partials/embedded-cluster/v3/_definition.mdx"
+import HaArchitecture from "../docs/partials/embedded-cluster/v3/_multi-node-ha-arch.mdx"
+
+# Embedded Cluster overview (Beta)
+
+This topic provides an introduction to Replicated Embedded Cluster.
+
+## Overview
+
+
+
+## Limitations {#ec-limitations}
+
+* Embedded Cluster v3 is Beta. The limitations and features are subject to change.
+
+* Embedded Cluster v3 (Beta) does not support disaster recovery.
+
+* Some Replicated template functions are not implemented in Embedded Cluster v3 (Beta). Contact Replicated if a missing template function blocks your release.
+
+* Embedded Cluster v3 (Beta) does not support custom node roles. You can assign nodes the `controller` or `worker` role.
+
+## Built-in extensions {#built-in-extensions}
+
+The built-in extensions installed by Embedded Cluster include:
+
+* **OpenEBS:** Embedded Cluster uses OpenEBS to provide local PersistentVolume (PV) storage. For more information, see the [OpenEBS](https://openebs.io/docs/) documentation.
+
+* **Image registry:** Embedded Cluster installs an image registry where it pushes the images required to install and run the application.
+
+Embedded Cluster installs each built-in extension in its own namespace.
+
+## About installing with Embedded Cluster
+
+Embedded Cluster supports installations in online (internet-connected) environments and air gap environments with no outbound internet access.
+
+To install, users first download and extract the Embedded Cluster installation assets. Then, users can choose to follow a guided installation with the UI or a headless install with the CLI.
+
+During installation, Embedded Cluster automatically runs preflight checks to verify that the installation environment meets the requirements. Users then configure the application and can optionally add nodes to the cluster before deploying.
+
+For more information about how to install with Embedded Cluster, see:
+* [Online Installation wtih Embedded Cluster](installing-embedded)
+* [Air Gap Installation with Embedded Cluster](installing-embedded-air-gap)
+
+## Embedded Cluster host preflight checks {#about-host-preflight-checks}
+
+During installation, Embedded Cluster automatically runs a default set of _host preflight checks_. The default host preflight checks verify that the installation environment meets the requirements for Embedded Cluster, such as:
+* The system has sufficient disk space
+* The system has at least 2G of memory and 2 CPU cores
+* The system clock syncs
+
+If any of the Embedded Cluster host preflight checks fail, Embedded Cluster blocks installation and displays a message describing the failure.
+
+For the full default host preflight spec for Embedded Cluster, see [`preflight/embedded`](https://github.com/replicatedhq/ec/tree/f845ba382719a6218ebdca1e0e712452cb3483a4/pkg/preflight/embedded) in the `ec` repository in GitHub.
+
+### Limitations
+
+Embedded Cluster host preflight checks have the following limitations:
+
+* Vendors cannot modify the default host preflight checks for Embedded Cluster or provide their own custom host preflight spec for Embedded Cluster.
+* Host preflight checks do not verify that the application meets any application-specific requirements. For more information about defining preflight checks for your application, see [Define Preflight Checks](/vendor/preflight-defining).
+
+## Multi-node installations
+
+Embedded Cluster supports installations in mutli-node clusters. Your end customers can add nodes to a cluster during or after installation from the UI.
+
+Embedded Cluster automatically enables high availability (HA) when at least three controller nodes are present in the cluster.
+
+For more information, see [Manage Multi-Node Clusters with Embedded Cluster](embedded-manage-nodes).
diff --git a/embedded-cluster/embedded-troubleshooting.mdx b/embedded-cluster/embedded-troubleshooting.mdx
new file mode 100644
index 0000000000..d758d799ff
--- /dev/null
+++ b/embedded-cluster/embedded-troubleshooting.mdx
@@ -0,0 +1,208 @@
+import SupportBundleIntro from "../docs/partials/support-bundles/_ec-support-bundle-intro.mdx"
+import EmbeddedClusterSupportBundle from "../docs/partials/embedded-cluster/v3/_generate-bundle-ec.mdx"
+import ShellCommand from "../docs/partials/embedded-cluster/_shell-command.mdx"
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+# Troubleshoot Embedded Cluster (Beta)
+
+This topic provides information about troubleshooting Replicated Embedded Cluster installations.
+
+For more information about Embedded Cluster, including built-in extensions and architecture, see [Embedded Cluster Overview](embedded-overview).
+
+## Troubleshoot with support bundles
+
+This section includes information about how to collect support bundles for Embedded Cluster installations. For more information about support bundles, see [About Preflight Checks and Support Bundles](/vendor/preflight-support-bundle-about).
+
+### About the default Embedded Cluster support bundle spec
+
+
+
+
+
+## View logs
+
+You can view logs for both Embedded Cluster and the k0s systemd service to help troubleshoot Embedded Cluster deployments.
+
+### View installation logs for Embedded Cluster
+
+To view installation logs for Embedded Cluster:
+
+1. SSH onto a controller node.
+
+1. Navigate to `/var/log/APP_SLUG`, where `APP_SLUG` is the unique slug for the application.
+
+1. Open the `.log` file to view logs.
+
+### View K0s logs
+
+You can use the journalctl command line tool to access logs for systemd services, including k0s. For more information about k0s, see the [k0s documentation](https://docs.k0sproject.io/stable/).
+
+To use journalctl to view k0s logs:
+
+1. SSH onto a controller node or a worker node.
+
+1. Use journalctl to view logs for the k0s systemd service that Embedded Cluster deployed.
+
+ **Examples:**
+
+ ```bash
+ journalctl -u k0scontroller
+ ```
+ ```bash
+ journalctl -u k0sworker
+ ```
+
+## Access the cluster
+
+When troubleshooting, it can be useful to list the cluster and view logs using the kubectl command line tool. For additional suggestions related to troubleshooting applications, see [Troubleshooting Applications](https://kubernetes.io/docs/tasks/debug/debug-application/) in the Kubernetes documentation.
+
+
+
+## Troubleshoot errors
+
+This section provides troubleshooting advice for common errors.
+
+### Installation failure when a release includes the NVIDIA gpu operator as a Helm extension {#nvidia}
+
+#### Symptom
+
+A release that includes that includes the NVIDIA GPU Operator as a Helm extension fails to install.
+
+#### Cause
+
+If there are any containerd services on the host, the NVIDIA GPU Operator will generate an invalid containerd config, causing the installation to fail.
+
+This is the result of a known issue with v24.9.x of the NVIDIA GPU Operator. For more information about the known issue, see [container-toolkit does not modify the containerd config correctly when there are multiple instances of the containerd binary](https://github.com/NVIDIA/nvidia-container-toolkit/issues/982) in the nvidia-container-toolkit repository in GitHub.
+
+For more information about including the GPU Operator as a Helm extension, see [NVIDIA GPU Operator](embedded-using#nvidia-gpu-operator) in _Configure Embedded Cluster_.
+
+#### Solution
+
+To troubleshoot:
+
+1. Remove any existing containerd services that are running on the host (such as those deployed by Docker).
+
+1. Reset and reboot the node:
+
+ ```bash
+ sudo ./APP_SLUG reset
+ ```
+ Where `APP_SLUG` is the unique slug for the application.
+
+ For more information, see [Reset a Node](embedded-manage-nodes#reset-a-node) in _Access and Manage Embedded Clusters_.
+
+1. Re-install with Embedded Cluster.
+
+### Calico networking issues
+
+#### Symptom
+
+Symptoms of Calico networking issues can include:
+
+* The pod enters a CrashLoopBackOff state with failed health checks:
+
+ ```
+ Warning Unhealthy 6h51m (x3 over 6h52m) kubelet Liveness probe failed: Get "http:///readyz": dial tcp : connect: no route to host
+ Warning Unhealthy 6h51m (x19 over 6h52m) kubelet Readiness probe failed: Get "http:///readyz": dial tcp : connect: no route to host
+ ....
+ Unhealthy pod/registry-dc699cbcf-pkkbr Readiness probe failed: Get "https:///": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
+ Unhealthy pod/registry-dc699cbcf-pkkbr Liveness probe failed: Get "https:///": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
+ ...
+ ```
+
+* The pod log contains an I/O timeout:
+
+ ```
+ server APIs: config.k8ssandra.io/v1beta1: Get \"https://***HIDDEN***:443/apis/config.k8ssandra.io/v1beta1\": dial tcp ***HIDDEN***:443: i/o timeout"}
+ ```
+
+#### Cause
+
+Reasons can include:
+
+* Pod CIDR and service CIDR overlap with the host network CIDR.
+
+* Incorrect kernel parameters values.
+
+* VXLAN traffic getting dropped. By default, Calico uses VXLAN as the overlay networking protocol, with Always mode. This mode encapsulates all pod-to-pod traffic in VXLAN packets. If for some reasons, the VXLAN packets get filtered by the network, the pod will not able to communicate with other pods.
+
+#### Solution
+
+
+
+ To troubleshoot pod CIDR and service CIDR overlapping with the host network CIDR:
+ 1. Run the following command to verify the pod and service CIDR:
+ ```
+ cat /etc/k0s/k0s.yaml | grep -i cidr
+ podCIDR: 10.244.0.0/17
+ serviceCIDR: 10.244.128.0/17
+ ```
+ The default pod CIDR is 10.244.0.0/16 and service CIDR is 10.96.0.0/12.
+
+ 1. View pod network interfaces excluding Calico interfaces, and ensure there are no overlapping CIDRs.
+ ```
+ ip route | grep -v cali
+ default via 10.152.0.1 dev ens4 proto dhcp src 10.152.0.4 metric 100
+ 10.152.0.1 dev ens4 proto dhcp scope link src 10.152.0.4 metric 100
+ blackhole 10.244.101.192/26 proto 80
+ 169.254.169.254 via 10.152.0.1 dev ens4 proto dhcp src 10.152.0.4 metric 100
+ ```
+
+ 1. Reset and reboot the installation:
+
+ ```bash
+ sudo ./APP_SLUG reset
+ ```
+ Where `APP_SLUG` is the unique slug for the application.
+
+ For more information, see [Reset a Node](embedded-manage-nodes#reset-a-node) in _Access and Manage Embedded Clusters_.
+
+ 1. Reinstall the application with different CIDRs using the `--cidr` flag:
+
+ ```bash
+ sudo ./APP_SLUG install --license license.yaml --cidr 172.16.136.0/16
+ ```
+
+ For more information, see [install](embedded-cluster-install).
+
+
+ Embedded Cluster 1.19.0 and later automatically sets the `net.ipv4.conf.default.arp_filter`, `net.ipv4.conf.default.arp_ignore`, and `net.ipv4.ip_forward` kernel parameters. Additionally, host preflight checks automatically run during installation to verify that Embedded Cluster set the kernel parameters correctly.
+
+ For more information about the Embedded Cluster preflight checks, see [About Host Preflight Checks](embedded-overview#about-host-preflight-checks) in _Embedded Cluster Overview_.
+
+ If kernel parameters are not set correctly and these preflight checks fail, you might see a message such as `IP forwarding must be enabled.` or `ARP filtering must be disabled by default for newly created interfaces.`.
+
+ To troubleshoot incorrect kernel parameter values:
+
+ 1. Use sysctl to set the kernel parameters to the correct values:
+
+ ```bash
+ echo "net.ipv4.conf.default.arp_filter=0" >> /etc/sysctl.d/99-embedded-cluster.conf
+ echo "net.ipv4.conf.default.arp_ignore=0" >> /etc/sysctl.d/99-embedded-cluster.conf
+ echo "net.ipv4.ip_forward=1" >> /etc/sysctl.d/99-embedded-cluster.conf
+
+ sysctl --system
+ ```
+
+ 1. Reset and reboot the installation:
+
+ ```bash
+ sudo ./APP_SLUG reset
+ ```
+ Where `APP_SLUG` is the unique slug for the application.
+ For more information, see [Reset a Node](embedded-manage-nodes#reset-a-node) in _Access and Manage Embedded Clusters_.
+
+ 1. Re-install with Embedded Cluster.
+
+
+
+ As a temporary troubleshooting measure, set the mode to CrossSubnet and see if the issue persists. This mode only encapsulates traffic between pods across different subnets with VXLAN.
+
+ ```bash
+ kubectl patch ippool default-ipv4-ippool --type=merge -p '{"spec": {"vxlanMode": "CrossSubnet"}}'
+ ```
+
+ If this resolves the connectivity issues, there is likely an underlying network configuration problem with VXLAN traffic that should be addressed.
+
+
\ No newline at end of file
diff --git a/embedded-cluster/embedded-using.mdx b/embedded-cluster/embedded-using.mdx
new file mode 100644
index 0000000000..61903d1055
--- /dev/null
+++ b/embedded-cluster/embedded-using.mdx
@@ -0,0 +1,97 @@
+import UpdateOverview from "../docs/partials/embedded-cluster/v3/_update-overview.mdx"
+import EcConfig from "../docs/partials/embedded-cluster/v3/_ec-config.mdx"
+import ShellCommand from "../docs/partials/embedded-cluster/_shell-command.mdx"
+
+# Configure Embedded Cluster (Beta)
+
+This topic describes how to configure your application releases to support installations with Replicated Embedded Cluster. For an introduction, see [Embedded Cluster Overview](embedded-overview).
+
+## Add the Embedded Cluster Config resource
+
+An [Embedded Cluster Config](embedded-config) must be present in the release to support installation with Embedded Cluster. The Embedded Cluster Config sets the version of Embedded Cluster to install, and lets you define additional characteristics about the cluster.
+
+To add the Embedded Cluster Config:
+
+1. Create a new release that includes your application and a unique [HelmChart v2](/reference/custom-resource-helmchart-v2) custom resource for each Helm chart in the release.
+
+ If you have not yet configured the HelmChart custom resource for your application, see [Onboard to the Replicated Platform](/vendor/replicated-onboarding). The onboarding guide provides detailed instructions for configuring releases that support installation with a Replicated installer.
+
+1. In the release, add an [Embedded Cluster Config](embedded-config) manifest that specifies the Embedded Cluster version to use:
+
+
+
+1. If your application requires that Embedded Cluster deploy certain components before the application and as part of the cluster itself, update the Embedded Cluster Config to add [extensions](embedded-config#extensions).
+
+1. Save the release and promote it to the channel that you use for testing internally.
+
+1. Install with Embedded Cluster in a development environment to test. See [Online installation with Embedded Cluster](installing-embedded) or [Air gap installation with Embedded Cluster](installing-embedded-air-gap).
+
+1. After successfully installing your application with Embedded Cluster, customize the [Embedded Cluster Config](embedded-config) as desired:
+ * Add your custom domain for the Replicated proxy registry and Replicated app service. See [domains](embedded-config#domains).
+ * Add custom Helm extensions. Extensions allow you to provide Helm charts that Embedded Cluster deploys before your application. For example, you can add a Helm extension to ship an ingress controller. See [extensions](embedded-config#extensions).
+ * Define roles to assign workloads to specific nodes in multi-node installations. See [roles](/embedded-cluster/v2/embedded-config#roles).
+
+ Replicated recommends that you work in small iterations and test your changes frequently in your development environment.
+
+## (Optional) Serve installation assets using the Vendor API
+
+To install with Embedded Cluster, your end customers need to download the Embedded Cluster installer binary and their license. Air gap installations also require an air gap bundle. End customers can download all these installation assets using a curl command by following the installation steps available in the [Replicated Enterprise Portal](/vendor/enterprise-portal-about).
+
+However, some vendors already have a portal where their customers can log in to access documentation or download artifacts. In cases like this, you can serve the Embedded Cluster installation assets yourself using the Replicated Vendor API. This removes the need for customers to download assets from the Replicated app service using a curl command during installation.
+
+To serve Embedded Cluster installation assets with the Vendor API:
+
+1. If you have not done so already, create an API token for the Vendor API. See [Use the Vendor API v3](/reference/vendor-api-using#api-token-requirement).
+
+1. Call the [Get an Embedded Cluster release](https://replicated-vendor-api.readme.io/reference/getembeddedclusterrelease) endpoint to download the assets needed to install your application with Embedded Cluster. Your customers must take this binary and their license and copy them to the machine where they will install your application.
+
+ Note the following:
+
+ * (Recommended) Provide the `customerId` query parameter so that the downloaded tarball includes the customer’s license. This mirrors what the Replicated app service returns when a customer downloads the binary directly and is the most useful option. Excluding the `customerId` is useful if you plan to distribute the license separately.
+
+ * If you do not provide any query parameters, this endpoint downloads the Embedded Cluster binary for the latest release on the specified channel. You can provide the `channelSequence` query parameter to download the binary for a particular release.
+
+## Distribute the NVIDIA gpu operator with Embedded Cluster {#nvidia-gpu-operator}
+
+:::note
+Distributing the NVIDIA GPU Operator with Embedded Cluster is not an officially supported feature from Replicated. However, it is a common use case.
+:::
+
+The NVIDIA GPU Operator uses the operator framework within Kubernetes to automate the management of all NVIDIA software components needed to provision GPUs. For more information about this operator, see the [NVIDIA GPU Operator](https://docs.nvidia.com/datacenter/cloud-native/gpu-operator/latest/overview.html) documentation.
+
+### Include the NVIDIA gpu operator and configure containerd options
+
+You can include the NVIDIA GPU Operator in your release as an additional Helm chart, or using Embedded Cluster Helm extensions. For information about adding Helm extensions, see [extensions](embedded-config#extensions) in _Embedded Cluster Config_.
+
+Using the NVIDIA GPU Operator with Embedded Cluster requires configuring the containerd options in the operator as follows:
+
+```yaml
+# Embedded Cluster Config
+
+ extensions:
+ helm:
+ repositories:
+ - name: nvidia
+ url: https://nvidia.github.io/gpu-operator
+ charts:
+ - name: gpu-operator
+ chartname: nvidia/gpu-operator
+ namespace: gpu-operator
+ version: "v24.9.1"
+ values: |
+ # configure the containerd options
+ toolkit:
+ env:
+ - name: CONTAINERD_CONFIG
+ value: /etc/k0s/containerd.d/nvidia.toml
+ - name: CONTAINERD_SOCKET
+ value: /run/k0s/containerd.sock
+```
+
+### containerd known issue
+
+When you configure the containerd options as shown earlier on this page, the NVIDIA GPU Operator automatically creates the required configurations in the `/etc/k0s/containerd.d/nvidia.toml` file. It is not necessary to create this file manually, or modify any other configuration on the hosts.
+
+If you include the NVIDIA GPU Operator as a Helm extension, remove any existing containerd services running on the host (such as those deployed by Docker) before installing the release with Embedded Cluster. If any containerd services are present on the host, the NVIDIA GPU Operator will generate an invalid containerd config, causing the installation to fail. For more information, see [Installation failure when NVIDIA GPU Operator is included as Helm extension](#nvidia-gpu-operator) in _Troubleshooting Embedded Cluster_.
+
+This is the result of a known issue with v24.9.x of the NVIDIA GPU Operator. For more information about the known issue, see [container-toolkit does not modify the containerd config correctly when there are multiple instances of the containerd binary](https://github.com/NVIDIA/nvidia-container-toolkit/issues/982) in the nvidia-container-toolkit repository in GitHub.
diff --git a/embedded-cluster/embedded-v3-migrate.mdx b/embedded-cluster/embedded-v3-migrate.mdx
new file mode 100644
index 0000000000..d1b3f81a5a
--- /dev/null
+++ b/embedded-cluster/embedded-v3-migrate.mdx
@@ -0,0 +1,147 @@
+import DependencyYaml from "../docs//partials/replicated-sdk/_dependency-yaml.mdx"
+import EcConfig from "../docs/partials/embedded-cluster/v3/_ec-config.mdx"
+
+# Migrate from Embedded Cluster v2
+
+This page describes how to migrate from Embedded Cluster v2 to Embedded Cluster v3.
+
+It includes information about how to update your application release to support Embedded Cluster v3. It also describes how to upgrade existing installations from Embedded Cluster v2 to v3.
+
+## Comparison to Embedded Cluster v2
+
+This section describes the key differences between Embedded Cluster v2 and v3.
+
+### Removal of KOTS
+
+Embedded Cluster v3 removes Replicated KOTS from the architecture. This reduces the number of dependencies that are running in the cluster, which improves reliability.
+
+The KOTS CLI does not work with Embedded Cluster v3, and there is no KOTS Admin Console.
+
+Embedded Cluster v3 still requires the KOTS HelmChart v2 custom resource to process and deploy Helm charts. Embedded Cluster v3 also still uses KOTS custom resources like the KOTS Application and KOTS Config resources to define aspects of the installation experience.
+
+### Replicated SDK required for application status informers
+
+Because Embedded Cluster v3 removes KOTS, you must include the [Replicated SDK](/vendor/replicated-sdk-overview) in your application to get instance reporting in the Vendor Portal from application status informers.
+
+### Troubleshoot Preflight `v1beta3` required
+
+Application preflight checks must use Troubleshoot `v1beta3`. `v1beta2` preflight specs are not supported.
+
+For more information, see [v1beta3 overview](https://troubleshoot.sh/docs/preflight/v1beta3-overview) in the Troubleshoot documentation.
+
+### HelmChart v2 required
+
+Embedded Cluster v3 supports installing Helm charts with a corresponding HelmChart v2 custom resource (API version `v1beta2`).
+
+Embedded Cluster v3 does not support Kustomize, Kubernetes manifests, or HelmChart v1.
+
+## Update your release to Embedded Cluster v3
+
+To update your release to support installation with Embedded Cluster v3:
+
+1. Remove any standalone Kubernetes manifests or `kustomization.yaml` files from your release. Embedded Cluster v3 only deploys resources that are managed by Helm charts. If you need to deploy any resources before Embedded Cluster deploys your application, you can use Helm chart [`extensions`](embedded-config#extensions) in the Embedded Cluster Config.
+
+1. In your application Helm chart `Chart.yaml` file, add the SDK as a dependency. With Embedded Cluster v3, the SDK is required to get instance insights from status informers.
+
+ If your application is installed as multiple charts, declare the SDK as a dependency of the chart that customers install first. Do not declare the SDK in more than one chart.
+
+
+
+1. Update your application Preflight specs to API version `troubleshoot.sh/v1beta3`. For more information, see [Migrate from v1beta2 to v1beta3](https://troubleshoot.sh/docs/preflight/v1beta3-migration) in the Troubleshoot documentation.
+
+1. Ensure that your release has a corresponding HelmChart v2 custom resource for each of your Helm charts. For information about how to configure the HelmChart v2 custom resource, see [Support installations with HelmChart v2](/vendor/helm-native-v2-using). For information about how to migrate from HelmChart v1 or Kubernetes manifests to HelmChart v2, see [Migrate existing installations to HelmChart v2](/vendor/helm-v2-migrate).
+
+1. In your Embedded Cluster Config, update `version` to the latest version of Embedded Cluster v3. You can also optionally increment the Kubernetes version by one minor version.
+
+ **Example:**
+
+
+
+1. Update any existing Helm extensions to use the `extensions.helmChart` format. See [`extensions`](embedded-config#extensions).
+
+ **Example:**
+
+ ```yaml
+ apiVersion: embeddedcluster.replicated.com/v1beta1
+ kind: Config
+ spec:
+ extensions:
+ helmCharts:
+ - chart:
+ name: ingress-nginx
+ chartVersion: "4.11.3"
+ releaseName: ingress-nginx
+ namespace: ingress-nginx
+ values: |
+ controller:
+ service:
+ type: NodePort
+ nodePorts:
+ http: "80"
+ https: "443"
+ image:
+ digest: ""
+ digestChroot: ""
+ ```
+
+1. Promote the release to a development channel that you use for testing.
+
+1. Test the installation using a development customer.
+
+## Migrate an installation from Embedded Cluster v2 to Embedded Cluster v3
+
+Embedded Cluster supports upgrading existing installations from v2 to v3 without having to reinstall the application.
+
+To migrate an existing installation to Embedded Cluster v3:
+
+1. Get the customer's Embedded Cluster install instructions from the Vendor Portal or from the Enterprise Portal.
+
+1. For application version, select the release that enables Embedded Cluster v3.
+
+1. SSH into the VM where the Embedded Cluster v2 installation is running.
+
+1. On the VM, run the commands to download and extract the installation assets for the target release. The installation assets include the Embedded Cluster binary, the license file, and the release assets.
+
+1. Run the following command to upgrade using the Embedded Cluster v3 upgrade wizard:
+
+ ```bash
+ sudo ./APP_SLUG upgrade --license license.yaml
+ ```
+ Where `APP_SLUG` in the unique application slug.
+
+1. When prompted, type `yes` to confirm that you want to migrate to v3.
+
+ ```bash
+ Detected EC v2 installation. This upgrade will migrate the cluster from v2 to v3.
+ This is a one-way migration and cannot be undone.
+ Do you want to proceed with the migration? (yes/NO): yes
+ ```
+
+1. When the upgrade command completes, go to the URL provided to access the upgrade wizard.
+
+ ```bash
+ Installation started. Connect to the web interface to continue the installation.
+
+ Open the following URL in your browser:
+
+ https://kotsadm.default.svc.cluster.local:30080
+
+ Note: You may see a browser warning for the self-signed certificate.
+ Click "Advanced" > "Proceed" to continue.
+
+ Press Ctrl+C when the installation is complete to stop the web interface.
+ ```
+
+1. Log in to the upgrade wizard using the existing password for the Admin Console.
+
+ 
+
+ [View a larger version of this image](/images/embedded-cluster-v3-slackernews-upgrade-wizard.png)
+
+1. Follow the steps in the wizard to upgrade any other nodes in the cluster, configure the application, and then deploy the application.
+
+ 
+
+ [View a larger version of this image](/images/embedded-cluster-v3-slackernews-upgrade-progress.png)
+
+1. Press Ctrl+C when the upgrade is complete to close the wizard.
diff --git a/embedded-cluster/installing-embedded-air-gap.mdx b/embedded-cluster/installing-embedded-air-gap.mdx
new file mode 100644
index 0000000000..4130cce32b
--- /dev/null
+++ b/embedded-cluster/installing-embedded-air-gap.mdx
@@ -0,0 +1,160 @@
+import Prerequisites from "../docs/partials/embedded-cluster/v3/_ec-prereqs.mdx"
+
+# Air gap installation with Embedded Cluster (Beta)
+
+This topic describes how to install an application with Replicated Embedded Cluster on a virtual machine (VM) or bare metal server with no outbound internet access. For online installations, see [Online installation with Embedded Cluster](installing-embedded). For an introduction to Embedded Cluster, see [Embedded Cluster overview](embedded-overview).
+
+## Overview
+
+Building an air gap bundle for a release with an Embedded Cluster Config produces both an application air gap bundle and an Embedded Cluster air gap bundle. You can use the application air gap bundle for air gap installations with Replicated kURL or with Replicated KOTS in an existing cluster. Use the Embedded Cluster air gap bundle for air gap installations with Embedded Cluster.
+
+The Embedded Cluster air gap bundle contains the assets normally found in an application air gap bundle (`airgap.yaml`, `app.tar.gz`, and an images directory). It also includes an `embedded-cluster` directory with the assets needed to install the infrastructure (Embedded Cluster/k0s and [extensions](embedded-config#extensions)).
+
+During installation with Embedded Cluster in air gap environments, Embedded Cluster deploys a Docker registry to the cluster to store application images. The installer preloads infrastructure images (for Embedded Cluster and Helm extensions) and the Helm charts on each node at installation time.
+
+## Limitations and known issues
+
+Embedded Cluster installations in air gap environments have the following limitations and known issues:
+
+* If you pass `?airgap=true` to the `replicated.app` endpoint but an air gap bundle is not built for the latest release, the API will not return a 404. Instead it will return the tarball without the air gap bundle (as in, with the installer and the license in it, like for online installations).
+
+* Images used by Helm extensions must not refer to a multi-architecture image by digest. Air gap bundles include only x64 images, and the digest for the x64 image will be different from the digest for the multi-architecture image, preventing Kubernetes from locating the image in the bundle. An example of a chart that does this is ingress-nginx/ingress-nginx chart. For an example of how to set digests to empty strings and pull by tag only, see [extensions](embedded-config#extensions) in _Embedded Cluster Config_.
+
+* Embedded Cluster loads images for Helm extensions directly into containerd so that they are available without internet access. But if an image used by a Helm extension has **Always** set as the image pull policy, Kubernetes will try to pull the image from the internet. If necessary, use the Helm values to configure `IfNotPresent` as the image pull policy to ensure the extension works in air gap environments.
+
+* On the channel release history page, the links for **Download air gap bundle**, **Copy download URL**, and **View bundle contents** pertain to the application air gap bundle only, not the Embedded Cluster bundle.
+
+## Prerequisites
+
+Before you install, complete the following prerequisites:
+
+
+
+## Install using the Embedded Cluster UI
+
+This section describes how to install using the interactive Embedded Cluster installer UI.
+
+:::note
+These steps assume you download installation assets on a host that has internet access. Then copy them into the air-gapped environment where Embedded Cluster will run.
+:::
+
+### 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 in an air gap environment.
+
+### Install using instructions from the Vendor Portal
+
+To install from the Vendor Portal:
+
+1. In the [Vendor Portal](https://vendor.replicated.com), open the channel where you promoted the target release so Replicated can build the air gap bundle. Do one of the following:
+
+ * If you have **Automatically create airgap builds for newly promoted releases in this channel** enabled on the channel, wait until the build completes.
+ * If automatic air gap builds are not enabled, open the **Release history** page for the channel and build the air gap bundle manually.
+
+ :::note
+ Errors from building the application air gap bundle or the Embedded Cluster infrastructure appear in the Vendor Portal when present.
+ :::
+
+1. Open **Customers** and select the target customer.
+
+1. On the **Manage customer** tab, in **License options**, enable **Airgap Download Enabled**.
+
+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 **Embedded Cluster install instructions** dialog, enable **Install in an air gap environment**.
+
+ 
+
+ [View a larger version of this image](/images/customer-install-instructions-dropdown.png)
+
+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 machine **with internet access**, run the download command from the dialog to save the air gap installation assets as a `.tgz` archive.
+
+1. Copy the `.tgz` file to the air-gapped machine where you will install.
+
+1. On the air-gapped machine, extract the `.tgz` using the command from the install instructions dialog. You should have at least:
+
+ * The installer binary
+ * The license file
+ * The air gap bundle (`APP_SLUG.airgap`)
+
+1. On the air-gapped machine, run the `install` command from the dialog. It must include `--airgap` pointing at your `.airgap` file. For example:
+
+ ```bash
+ sudo ./APP_SLUG install --license license.yaml --airgap APP_SLUG.airgap
+ ```
+
+ Replace `APP_SLUG` with your application slug and use the correct paths for your license and bundle files. Add any other flags you need. For the full set of flags, see [install](embedded-cluster-install).
+
+1. Complete any prompts from the install command (for example, acceptance of a self-signed certificate and installer password).
+
+1. On a machine with browser access to the installer (often the same air-gapped host, or another host on the same network), open the URL from the install output 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.
+
+1. On the **Run** page, start the installation and wait for it to complete.
+
+1. On the **Finish** page, confirm completion. If your KOTS 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 installations, you provide all the necessary installation assets with the installation command rather than through the UI. These assets include the license file and the application config values. Any preflight checks defined for the application run automatically from the command line rather than displaying in the UI. You can also ignore preflight checks during headless installations when testing in development environments. See [Ignore preflight checks during installation](#ignore-preflights) on this page.
+
+To install headlessly in an air gap environment:
+
+1. Complete the Vendor Portal steps to build the air gap bundle, enable **Airgap Download Enabled** for the customer, and open **Install instructions** with **Install in an air gap environment** selected. For more detail, see steps 1 through 6 in [Install using the Replicated Vendor Portal](#install-using-the-replicated-vendor-portal).
+
+1. In the **Select a version** field (or equivalent), choose the application version to install.
+
+1. On a machine **with internet access**, run the first two commands from the dialog (download the archive, then extract it).
+
+1. Copy the extracted directory (or the `.tgz` and extract on the air-gapped host) to the air-gapped machine.
+
+1. On the air-gapped machine, run `install` with:
+
+ * `--airgap` and the `APP_SLUG.airgap` file.
+ * `--headless` to skip 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.yaml --airgap APP_SLUG.airgap --headless --config-values PATH_TO_CONFIGVALUES --installer-password INSTALLER_PASSWORD
+ ```
+
+ Replace placeholders with 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) Ignore preflight checks during installation {#ignore-preflights}
+
+You can ignore both application-level preflight checks and Embedded Cluster host preflight checks during installation. When you ignore preflight checks, the installation proceeds despite any preflight failures. This is useful for automated installations in development environments. For more information about the `--ignore-host-preflights` and `--ignore-app-preflights` options, see [install](embedded-cluster-install).
+
+Ignoring host preflight checks is _not_ recommended for production installations.
+
+* To ignore preflight checks:
+
+ ```bash
+ sudo ./APP_SLUG install --license license.yaml --ignore-host-preflights --ignore-app-preflights --yes
+ ```
+ Where:
+ * `APP_SLUG` is the unique slug for the application
+ * The `--yes` flag addresses the prompt for `--ignore-host-preflights` to continue with installation
diff --git a/embedded-cluster/installing-embedded-requirements.mdx b/embedded-cluster/installing-embedded-requirements.mdx
new file mode 100644
index 0000000000..7604e76230
--- /dev/null
+++ b/embedded-cluster/installing-embedded-requirements.mdx
@@ -0,0 +1,90 @@
+import EmbeddedClusterRequirements from "../docs/partials/embedded-cluster/v3/_requirements.mdx"
+import EmbeddedClusterPortRequirements from "../docs/partials/embedded-cluster/v3/_port-reqs.mdx"
+import FirewallOpeningsIntro from "../docs/partials/install/_firewall-openings-intro.mdx"
+import FirewallOpeningsEc from "../docs/partials/install/_firewall-openings-embedded-cluster.mdx"
+
+# Embedded Cluster installation requirements (Beta)
+
+This topic lists the installation requirements for Replicated Embedded Cluster. Ensure that the installation environment meets these requirements before you attempt to install.
+
+## System requirements
+
+
+
+## Port requirements
+
+
+
+## Unix accounts for Kubernetes components
+
+During installation, Embedded Cluster automatically creates the following Unix accounts, which internal Kubernetes components require:
+
+* **etcd**: Used by the Kubernetes etcd database, which stores cluster state.
+* **konnectivity-server**: Used by the Konnectivity service, which facilitates secure communication between internal components.
+* **kube-apiserver**: Used by the Kubernetes API server.
+* **kube-scheduler**: Used by the Kubernetes scheduler to schedule workloads such as pods.
+
+You do not need to take any action to create these roles. Removing them will make the cluster non-functional.
+
+For more information about the internal Kubernetes components, see [Kubernetes Components](https://kubernetes.io/docs/concepts/overview/components/) in the Kubernetes documentation.
+
+For more information about the Konnectivity service, see [Set up Konnectivity service](https://kubernetes.io/docs/tasks/extend-kubernetes/setup-konnectivity/) in the Kubernetes documentation.
+
+## Firewall openings for online installations with Embedded Cluster {#firewall}
+
+
+
+
+
+:::note
+If you monitor the outbound traffic attempts made by Embedded Cluster, you might see an attempted call to `updates.k0sproject.io` approximately every 30 minutes. A feature of the upstream k0s project called `update-prober` makes these calls to check for k0s updates. Embedded Cluster does not use the `update-prober` feature and blocking it in your firewall rules will not affect Replicated product functionality.
+:::
+
+## About firewalld configuration
+
+When Firewalld runs in the installation environment, Embedded Cluster modifies the Firewalld config to allow traffic over the pod and service networks. It also opens the required ports on the host. No additional configuration is necessary.
+
+Embedded Cluster adds the following rule to Firewalld:
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+```
+
+Embedded Cluster opens the following ports in the default zone:
+
+
+
+
Port
+
Protocol
+
+
+
6443
+
TCP
+
+
+
10250
+
TCP
+
+
+
9443
+
TCP
+
+
+
2380
+
TCP
+
+
+
4789
+
UDP
+
+
diff --git a/embedded-cluster/installing-embedded.mdx b/embedded-cluster/installing-embedded.mdx
new file mode 100644
index 0000000000..58a4bcf5b0
--- /dev/null
+++ b/embedded-cluster/installing-embedded.mdx
@@ -0,0 +1,113 @@
+import Prerequisites from "../docs/partials/embedded-cluster/v3/_ec-prereqs.mdx"
+
+# 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).
+
+## Prerequisites
+
+Before you install, complete the following prerequisites:
+
+
+
+* 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.
+
+ After extraction, you may see additional binaries and artifacts compared to Embedded Cluster 2.x. Embedded Cluster uses these internally. You can ignore them.
+
+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. This corresponds to values you previously passed with install flags in Embedded Cluster 2.x (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 KOTS 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 ignore preflight checks during headless installations when testing in development environments. See [Ignore preflight checks during 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).
+
+ After extraction, you may see additional binaries and artifacts compared to Embedded Cluster 2.x. Embedded Cluster uses these internally. You can ignore them.
+
+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) Ignore preflight checks during installation {#ignore-preflights}
+
+You can ignore both application-level preflight checks and Embedded Cluster host preflight checks during installation. When you ignore preflight checks, the installation proceeds despite any preflight failures. This is useful for automated installations in development environments. For more information about the `--ignore-host-preflights` and `--ignore-app-preflights` options, see [install](embedded-cluster-install).
+
+Ignoring host preflight checks is _not_ recommended for production installations.
+
+* To ignore preflight checks:
+
+ ```bash
+ sudo ./APP_SLUG install --license license.yaml --ignore-host-preflights --ignore-app-preflights --yes
+ ```
+ Where:
+ * `APP_SLUG` is the unique slug for the application
+ * The `--yes` flag addresses the prompt for `--ignore-host-preflights` to continue with installation
diff --git a/embedded-cluster/updating-embedded.mdx b/embedded-cluster/updating-embedded.mdx
new file mode 100644
index 0000000000..6c2c8f9930
--- /dev/null
+++ b/embedded-cluster/updating-embedded.mdx
@@ -0,0 +1,109 @@
+# Perform updates in embedded clusters (Beta)
+
+This topic describes how to upgrade, redeploy, or reconfigure an application installed with Replicated Embedded Cluster 3.x. For an introduction to Embedded Cluster, see [Embedded Cluster overview](embedded-overview).
+
+## Overview
+
+Each Embedded Cluster binary that you download targets a particular application version. Running `install` or `upgrade` with that binary installs or upgrades to that version. Upgrades can update both your application and cluster infrastructure (including Kubernetes and Embedded Cluster components), depending on what changed in the release.
+
+You can upgrade interactively in the browser or headlessly from the command line. To change configuration or redeploy without moving to a newer application version, run `upgrade` using the binary for the version that is already installed.
+
+## Upgrade using the Embedded Cluster UI
+
+### Use the Enterprise Portal for a guided upgrade
+
+To use the guided upgrade 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. Open the **Update** tab and follow the instructions to upgrade the instance.
+
+### Upgrade using the instructions in the Vendor Portal
+
+To upgrade more directly from the Vendor Portal:
+
+1. In the [Vendor Portal](https://vendor.replicated.com), open the **Customers** page and select a customer that you assigned 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** section (or equivalent), choose the application version to upgrade to.
+
+1. On a Linux machine, run the first two commands from the dialog (download the archive, then extract it).
+
+1. For the third command, use `upgrade` instead of `install`, then run the command. For example:
+
+ ```bash
+ sudo ./APP_SLUG upgrade --license LICENSE_FILE
+ ```
+
+ Replace `APP_SLUG` with your application slug and `LICENSE_FILE` with the path to the license file. Add any other flags you use for this environment. For the full set of flags, see [upgrade](embedded-cluster-upgrade).
+
+1. When prompted, enter the password you set during installation to log in to the installer. To set a different password for the installer, use the `--installer-password` flag.
+
+1. On the **Configure** page, change any application configuration you need.
+
+1. On the **Upgrade** page, start the upgrade and wait for it to finish.
+
+1. On the **Finish** page, confirm completion. Use the provided links to open your application if needed.
+
+## Upgrade using the CLI (headless)
+
+To perform a headless upgrade from the CLI:
+
+1. In the Vendor Portal, open the **Customers** page and select the target customer.
+
+1. At the top of the customer page, click **Install instructions** and select **Embedded Cluster**. (The label might also appear as **Embedded Cluster install instructions**).
+
+1. In the **Select a version** section, choose the application version to upgrade to.
+
+1. On a Linux machine, run the first two commands from the dialog to download the archive and extract it.
+
+1. For the third command, do the following:
+
+ * Use `upgrade` instead of `install`.
+ * Pass `--headless` to run without the interactive installer UI.
+ * (Optional) Pass `--config-values` with the path to your [ConfigValues](/reference/custom-resource-configvalues) file to change configuration.
+ * (Optional) Pass `--installer-password` to change the installer password.
+
+ Example:
+
+ ```bash
+ sudo ./APP_SLUG upgrade --license LICENSE_FILE --headless
+ ```
+
+1. Monitor the command output until the upgrade completes.
+
+## Reconfigure an application without upgrading the application version
+
+To redeploy or reconfigure an instance without upgrading, include the installation assets for the currently installed version when you perform the upgrade.
+
+### UI-based upgrade
+
+To change an application's configuration without upgrading the application version:
+
+* In the Embedded Cluster UI, change the target values on the **Configure** page. Then, follow the interactive upgrade process in the UI.
+
+### Headless upgrade
+
+To change an application's configuration without upgrading the application version:
+
+1. Update the ConfigValues to make the application configuration changes.
+1. Run the `upgrade` command using the binary for the application version that you already have installed. For example, if you installed version 1.2.3, download and run `upgrade` with the assets for version 1.2.3. Pass the updated configuration values with `--config-values`.
+
+## Upgrade in air-gapped environments
+
+To perform an upgrade with Embedded Cluster in air-gapped environments:
+
+1. In the Vendor Portal, open the **Customers** page and select the target customer.
+
+1. At the top of the customer page, click **Install instructions** and select **Embedded Cluster**. (The label might also appear as **Embedded Cluster install instructions**).
+
+1. In the **Install instructions** dialog, enable the air gap option.
+
+1. Download the installations assets to a machine with internet access and transfer them to the air-gapped host.
+
+1. Run `upgrade` with the same air gap flags you use for `install` (for example, `--airgap-bundle`). For more information, see [Air gap installation with Embedded Cluster](installing-embedded-air-gap).
diff --git a/docs/reference/embedded-cluster-admin-console.mdx b/embedded-cluster_versioned_docs/version-2.0.0/embedded-cluster-admin-console.mdx
similarity index 100%
rename from docs/reference/embedded-cluster-admin-console.mdx
rename to embedded-cluster_versioned_docs/version-2.0.0/embedded-cluster-admin-console.mdx
diff --git a/docs/reference/embedded-cluster-completion.mdx b/embedded-cluster_versioned_docs/version-2.0.0/embedded-cluster-completion.mdx
similarity index 100%
rename from docs/reference/embedded-cluster-completion.mdx
rename to embedded-cluster_versioned_docs/version-2.0.0/embedded-cluster-completion.mdx
diff --git a/docs/reference/embedded-cluster-enable-ha.mdx b/embedded-cluster_versioned_docs/version-2.0.0/embedded-cluster-enable-ha.mdx
similarity index 100%
rename from docs/reference/embedded-cluster-enable-ha.mdx
rename to embedded-cluster_versioned_docs/version-2.0.0/embedded-cluster-enable-ha.mdx
diff --git a/docs/reference/embedded-cluster-install.mdx b/embedded-cluster_versioned_docs/version-2.0.0/embedded-cluster-install.mdx
similarity index 90%
rename from docs/reference/embedded-cluster-install.mdx
rename to embedded-cluster_versioned_docs/version-2.0.0/embedded-cluster-install.mdx
index f68e5b75ff..99553d0227 100644
--- a/docs/reference/embedded-cluster-install.mdx
+++ b/embedded-cluster_versioned_docs/version-2.0.0/embedded-cluster-install.mdx
@@ -1,11 +1,11 @@
-import ProxyLimitations from "../partials/embedded-cluster/_proxy-install-limitations.mdx"
-import ProxyRequirements from "../partials/embedded-cluster/_proxy-install-reqs.mdx"
-import ProxyEnvVars from "../partials/embedded-cluster/_proxy-env-vars.mdx"
-import DeprecatedPrivateCa from "../partials/embedded-cluster/_deprecated-private-ca.mdx"
+import ProxyLimitations from "../../docs/partials/embedded-cluster/_proxy-install-limitations.mdx"
+import ProxyRequirements from "../../docs/partials/embedded-cluster/_proxy-install-reqs.mdx"
+import ProxyEnvVars from "../../docs/partials/embedded-cluster/_proxy-env-vars.mdx"
+import DeprecatedPrivateCa from "../../docs/partials/embedded-cluster/_deprecated-private-ca.mdx"
# install
-This topic describes the options available with the Embedded Cluster install command. For more information about how to install with Embedded Cluster, see [Online Installation with Embedded Cluster](/enterprise/installing-embedded) or [Air Gap Installation with Embedded Cluster](/enterprise/installing-embedded).
+This topic describes the options available with the Embedded Cluster install command. For more information about how to install with Embedded Cluster, see [Online Installation with Embedded Cluster](installing-embedded) or [Air Gap Installation with Embedded Cluster](installing-embedded-air-gap).
## Usage
@@ -30,12 +30,12 @@ sudo ./ install --license [flags]
`--admin-console-port`
Port on which to run the KOTS Admin Console. **Default**: By default, the Admin Console runs on port 30000.
-
**Limitation:** It is not possible to change the port for the Admin Console during a restore with Embedded Cluster. For more information, see [Disaster Recovery for Embedded Cluster (Alpha)](/vendor/embedded-disaster-recovery).
+
**Limitation:** It is not possible to change the port for the Admin Console during a restore with Embedded Cluster. For more information, see [Disaster Recovery for Embedded Cluster (Alpha)](embedded-disaster-recovery).
`--airgap-bundle`
-
The Embedded Cluster air gap bundle used for installations in air-gapped environments with no outbound internet access. For information about how to install in an air-gapped environment, see [Air Gap Installation with Embedded Cluster](/enterprise/installing-embedded-air-gap).
+
The Embedded Cluster air gap bundle used for installations in air-gapped environments with no outbound internet access. For information about how to install in an air-gapped environment, see [Air Gap Installation with Embedded Cluster](installing-embedded-air-gap).
Path to the ConfigValues file for the application. The ConfigValues file can be used to pass the application configuration values from the command line during installation, such as when performing automated installations as part of CI/CD pipelines. For more information, see [Automate Installation with Embedded Cluster](/enterprise/installing-embedded-automation).
+
Path to the ConfigValues file for the application. The ConfigValues file can be used to pass the application configuration values from the command line during installation, such as when performing automated installations as part of CI/CD pipelines. For more information, see [Automate Installation with Embedded Cluster](installing-embedded-automation).
The data directory for Embedded Cluster cannot be changed after the cluster is installed.
-
For multi-node installations, the same data directory that is supplied at installation is used for all nodes joined to the cluster. You cannot choose a different data directory when joining nodes with the Embedded Cluster `join` command. For more information about joining nodes, see [Add Nodes to a Cluster](/enterprise/embedded-manage-nodes#add-nodes) in _Managing Multi-Node Clusters with Embedded Cluster_.
-
If you use the `--data-dir` flag to change the data directory during installation, then you must use the same location when restoring in a disaster recovery scenario. For more information about disaster recovery with Embedded Cluster, see [Disaster Recovery for Embedded Cluster](/vendor/embedded-disaster-recovery).
+
For multi-node installations, the same data directory that is supplied at installation is used for all nodes joined to the cluster. You cannot choose a different data directory when joining nodes with the Embedded Cluster `join` command. For more information about joining nodes, see [Add Nodes to a Cluster](embedded-manage-nodes#add-nodes) in _Managing Multi-Node Clusters with Embedded Cluster_.
+
If you use the `--data-dir` flag to change the data directory during installation, then you must use the same location when restoring in a disaster recovery scenario. For more information about disaster recovery with Embedded Cluster, see [Disaster Recovery for Embedded Cluster](embedded-disaster-recovery).
Replicated does not support using symlinks for the Embedded Cluster data directory. Use the `--data-dir` flag instead of symlinking `/var/lib/embedded-cluster`.
When `--ignore-host-preflights` is passed, the host preflight checks are still run, but the user is prompted and can choose to continue with the installation if preflight failures occur. Additionally, the Admin Console still runs any application-specific preflight checks before the application is deployed. For more information about the Embedded Cluster host preflight checks, see [About Host Preflight Checks](/vendor/embedded-overview#about-host-preflight-checks) in _Using Embedded Cluster_.
+
When `--ignore-host-preflights` is passed, the host preflight checks are still run, but the user is prompted and can choose to continue with the installation if preflight failures occur. Additionally, the Admin Console still runs any application-specific preflight checks before the application is deployed. For more information about the Embedded Cluster host preflight checks, see [About Host Preflight Checks](embedded-overview#about-host-preflight-checks) in _Using Embedded Cluster_.
Ignoring host preflight checks is _not_ recommended for production installations.
diff --git a/docs/reference/embedded-cluster-join-print-command.mdx b/embedded-cluster_versioned_docs/version-2.0.0/embedded-cluster-join-print-command.mdx
similarity index 93%
rename from docs/reference/embedded-cluster-join-print-command.mdx
rename to embedded-cluster_versioned_docs/version-2.0.0/embedded-cluster-join-print-command.mdx
index fbf003489b..1ebeaaf4db 100644
--- a/docs/reference/embedded-cluster-join-print-command.mdx
+++ b/embedded-cluster_versioned_docs/version-2.0.0/embedded-cluster-join-print-command.mdx
@@ -1,6 +1,6 @@
# join print-command
-This topic describes the options available with the Embedded Cluster `join print-command` command. For more information about joining nodes, see [Manage Multi-Node Clusters with Embedded Cluster](/enterprise/embedded-manage-nodes).
+This topic describes the options available with the Embedded Cluster `join print-command` command. For more information about joining nodes, see [Manage Multi-Node Clusters with Embedded Cluster](embedded-manage-nodes).
## Usage
diff --git a/docs/reference/embedded-cluster-join.mdx b/embedded-cluster_versioned_docs/version-2.0.0/embedded-cluster-join.mdx
similarity index 94%
rename from docs/reference/embedded-cluster-join.mdx
rename to embedded-cluster_versioned_docs/version-2.0.0/embedded-cluster-join.mdx
index 354a5c9826..364d13c178 100644
--- a/docs/reference/embedded-cluster-join.mdx
+++ b/embedded-cluster_versioned_docs/version-2.0.0/embedded-cluster-join.mdx
@@ -1,6 +1,6 @@
# join
-This topic describes the options available with the Embedded Cluster `join` command. For more information about joining nodes, see [Manage Multi-Node Clusters with Embedded Cluster](/enterprise/embedded-manage-nodes).
+This topic describes the options available with the Embedded Cluster `join` command. For more information about joining nodes, see [Manage Multi-Node Clusters with Embedded Cluster](embedded-manage-nodes).
## Usage
diff --git a/docs/reference/embedded-cluster-reset.mdx b/embedded-cluster_versioned_docs/version-2.0.0/embedded-cluster-reset.mdx
similarity index 100%
rename from docs/reference/embedded-cluster-reset.mdx
rename to embedded-cluster_versioned_docs/version-2.0.0/embedded-cluster-reset.mdx
diff --git a/docs/reference/embedded-cluster-restore.mdx b/embedded-cluster_versioned_docs/version-2.0.0/embedded-cluster-restore.mdx
similarity index 100%
rename from docs/reference/embedded-cluster-restore.mdx
rename to embedded-cluster_versioned_docs/version-2.0.0/embedded-cluster-restore.mdx
diff --git a/docs/reference/embedded-cluster-shell.mdx b/embedded-cluster_versioned_docs/version-2.0.0/embedded-cluster-shell.mdx
similarity index 100%
rename from docs/reference/embedded-cluster-shell.mdx
rename to embedded-cluster_versioned_docs/version-2.0.0/embedded-cluster-shell.mdx
diff --git a/docs/reference/embedded-cluster-support-bundle.mdx b/embedded-cluster_versioned_docs/version-2.0.0/embedded-cluster-support-bundle.mdx
similarity index 89%
rename from docs/reference/embedded-cluster-support-bundle.mdx
rename to embedded-cluster_versioned_docs/version-2.0.0/embedded-cluster-support-bundle.mdx
index 5eba094dc4..ef4f9331d7 100644
--- a/docs/reference/embedded-cluster-support-bundle.mdx
+++ b/embedded-cluster_versioned_docs/version-2.0.0/embedded-cluster-support-bundle.mdx
@@ -1,6 +1,6 @@
# support-bundle
-This topic describes the options available with the Embedded Cluster `support-bundle` command. For more information about generating support bundles for Embedded Cluster installations, see [Troubleshoot Embedded Cluster](/vendor/embedded-troubleshooting).
+This topic describes the options available with the Embedded Cluster `support-bundle` command. For more information about generating support bundles for Embedded Cluster installations, see [Troubleshoot Embedded Cluster](embedded-troubleshooting).
## Usage
diff --git a/docs/reference/embedded-cluster-update.mdx b/embedded-cluster_versioned_docs/version-2.0.0/embedded-cluster-update.mdx
similarity index 84%
rename from docs/reference/embedded-cluster-update.mdx
rename to embedded-cluster_versioned_docs/version-2.0.0/embedded-cluster-update.mdx
index 6fc8474972..dab5e88aa8 100644
--- a/docs/reference/embedded-cluster-update.mdx
+++ b/embedded-cluster_versioned_docs/version-2.0.0/embedded-cluster-update.mdx
@@ -1,6 +1,6 @@
# update
-This topic describes the options available with the Embedded Cluster `update` command. The `update` command allows you to update an instance with a new air gap bundle. This is part of the process for performing updates in air-gapped environments. For more information, see [Update in Air Gap Clusters](/enterprise/updating-embedded#update-in-air-gap-clusters) in _Perform Updates in Embedded Clusters_.
+This topic describes the options available with the Embedded Cluster `update` command. The `update` command allows you to update an instance with a new air gap bundle. This is part of the process for performing updates in air-gapped environments. For more information, see [Update in Air Gap Clusters](updating-embedded#update-in-air-gap-clusters) in _Perform Updates in Embedded Clusters_.
## Usage
diff --git a/docs/reference/embedded-cluster-version.mdx b/embedded-cluster_versioned_docs/version-2.0.0/embedded-cluster-version.mdx
similarity index 100%
rename from docs/reference/embedded-cluster-version.mdx
rename to embedded-cluster_versioned_docs/version-2.0.0/embedded-cluster-version.mdx
diff --git a/docs/reference/embedded-config.mdx b/embedded-cluster_versioned_docs/version-2.0.0/embedded-config.mdx
similarity index 98%
rename from docs/reference/embedded-config.mdx
rename to embedded-cluster_versioned_docs/version-2.0.0/embedded-config.mdx
index 8596011fe1..b76beaf880 100644
--- a/docs/reference/embedded-config.mdx
+++ b/embedded-cluster_versioned_docs/version-2.0.0/embedded-config.mdx
@@ -1,8 +1,8 @@
-import DoNotDowngrade from "../partials/embedded-cluster/_warning-do-not-downgrade.mdx"
+import DoNotDowngrade from "../../docs/partials/embedded-cluster/_warning-do-not-downgrade.mdx"
# Embedded Cluster Config
-This topic is a reference for the Replicated Embedded Cluster Config custom resource. For more information about Embedded Cluster, see [Use Embedded Cluster](/vendor/embedded-overview).
+This topic is a reference for the Replicated Embedded Cluster Config custom resource. For more information about Embedded Cluster, see [Use Embedded Cluster](embedded-overview).
## Overview
@@ -84,7 +84,7 @@ You can optionally customize node roles in the Embedded Cluster Config using the
A common use case for customizing node roles is to assign workloads to specific nodes. For example, if your application has graphics processing unit (GPU) workloads, you could create a `custom` role that will add a `gpu=true` label to any node that is assigned the role. This allows you to then schedule GPU workloads on nodes labled `gpu=true`.
-When the `roles` key is configured, users select one or more roles to assign to a node when it is joined to the cluster. For more information, see [Managing Multi-Node Clusters with Embedded Cluster](/enterprise/embedded-manage-nodes).
+When the `roles` key is configured, users select one or more roles to assign to a node when it is joined to the cluster. For more information, see [Managing Multi-Node Clusters with Embedded Cluster](embedded-manage-nodes).
If the `roles` key is _not_ configured, all nodes joined to the cluster are assigned the `controller` role. The `controller` role designates nodes that run the Kubernetes control plane. Controller nodes can also run other workloads, such as application or Replicated KOTS workloads.
@@ -277,7 +277,7 @@ Each plugin that you add to the `extensions.velero.plugins` key must have a name
#### Requirements
* The image for the Velero plugin must be available publicly. Images behind authentication are not supported.
-* The **Allow Disaster Recovery (Alpha)** option must be enabled in the license for Velero plugins to work. For more information about how to enable the Embedded Cluster disaster recovery feature, see [Disaster Recovery for Embedded Cluster (Alpha)](/vendor/embedded-disaster-recovery).
+* The **Allow Disaster Recovery (Alpha)** option must be enabled in the license for Velero plugins to work. For more information about how to enable the Embedded Cluster disaster recovery feature, see [Disaster Recovery for Embedded Cluster (Alpha)](embedded-disaster-recovery).
#### Example
diff --git a/docs/vendor/embedded-disaster-recovery.mdx b/embedded-cluster_versioned_docs/version-2.0.0/embedded-disaster-recovery.mdx
similarity index 96%
rename from docs/vendor/embedded-disaster-recovery.mdx
rename to embedded-cluster_versioned_docs/version-2.0.0/embedded-disaster-recovery.mdx
index d616ddb49e..5f4fe6571e 100644
--- a/docs/vendor/embedded-disaster-recovery.mdx
+++ b/embedded-cluster_versioned_docs/version-2.0.0/embedded-disaster-recovery.mdx
@@ -44,7 +44,7 @@ Embedded Cluster disaster recovery has the following limitations and known issue
* Velero is installed only during the initial installation process. Enabling the disaster recovery license field for customers after they have already installed will not do anything.
-* If the `--admin-console-port` flag was used during install to change the port for the Admin Console, note that during a restore the Admin Console port will be used from the backup and cannot be changed. For more information, see [install](/reference/embedded-cluster-install).
+* If the `--admin-console-port` flag was used during install to change the port for the Admin Console, note that during a restore the Admin Console port will be used from the backup and cannot be changed. For more information, see [install](embedded-cluster-install).
## Configure disaster recovery
@@ -166,7 +166,7 @@ To configure Velero Backup and Restore custom resources for Embedded Cluster dis
You can extend Velero's backup and restore capabilities by configuring custom Velero plugins in the Embedded Cluster Config. This is useful if you need to add support for specific backup scenarios, such as backing up databases like PostgreSQL, MySQL, or other stateful applications that require advanced disaster recovery capabilities.
-To configure custom Velero plugins, use the `extensions.velero.plugins` key in the Embedded Cluster Config. For more information, see [Configure Velero Plugins](/reference/embedded-config#configure-velero-plugins) in _Embedded Cluster Config_.
+To configure custom Velero plugins, use the `extensions.velero.plugins` key in the Embedded Cluster Config. For more information, see [Configure Velero Plugins](embedded-config#configure-velero-plugins) in _Embedded Cluster Config_.
### Enable the disaster recovery feature for your customers
@@ -216,7 +216,7 @@ To restore from a backup:
1. SSH onto a new machine where you want to restore from a backup.
-1. Download the Embedded Cluster installation assets for the version of the application that was included in the backup. You can find the command for downloading Embedded Cluster installation assets in the **Embedded Cluster install instructions dialog** for the customer. For more information, [Online Installation with Embedded Cluster](/enterprise/installing-embedded).
+1. Download the Embedded Cluster installation assets for the version of the application that was included in the backup. You can find the command for downloading Embedded Cluster installation assets in the **Embedded Cluster install instructions dialog** for the customer. For more information, [Online Installation with Embedded Cluster](installing-embedded).
:::note
The version of the Embedded Cluster installation assets must match the version that is in the backup. For more information, see [Limitations and Known Issues](#limitations-and-known-issues).
@@ -231,11 +231,11 @@ To restore from a backup:
Note the following requirements and guidance for the `restore` command:
- * If the installation is behind a proxy, the same proxy settings provided during install must be provided to the restore command using `--http-proxy`, `--https-proxy`, and `--no-proxy`. For more information, see [install](/reference/embedded-cluster-install).
+ * If the installation is behind a proxy, the same proxy settings provided during install must be provided to the restore command using `--http-proxy`, `--https-proxy`, and `--no-proxy`. For more information, see [install](embedded-cluster-install).
- * If the `--cidr` flag was used during install to the set IP address ranges for Pods and Services, this flag must be provided with the same CIDR during the restore. If this flag is not provided or is provided with a different CIDR, the restore will fail with an error message telling you to rerun with the appropriate value. However, it will take some time before that error occurs. For more information, see [install](/reference/embedded-cluster-install).
+ * If the `--cidr` flag was used during install to the set IP address ranges for Pods and Services, this flag must be provided with the same CIDR during the restore. If this flag is not provided or is provided with a different CIDR, the restore will fail with an error message telling you to rerun with the appropriate value. However, it will take some time before that error occurs. For more information, see [install](embedded-cluster-install).
- * If the `--local-artifact-mirror-port` flag was used during install to change the port for the Local Artifact Mirror (LAM), you can optionally use the `--local-artifact-mirror-port` flag to choose a different LAM port during restore. For example, `restore --local-artifact-mirror-port=50000`. If no LAM port is provided during restore, the LAM port that was supplied during installation will be used. For more information, see [install](/reference/embedded-cluster-install).
+ * If the `--local-artifact-mirror-port` flag was used during install to change the port for the Local Artifact Mirror (LAM), you can optionally use the `--local-artifact-mirror-port` flag to choose a different LAM port during restore. For example, `restore --local-artifact-mirror-port=50000`. If no LAM port is provided during restore, the LAM port that was supplied during installation will be used. For more information, see [install](embedded-cluster-install).
You will be guided through the process of restoring from a backup.
@@ -254,7 +254,7 @@ To restore from a backup:

[View a larger version of this image](/images/dr-restore-admin-console-url.png)
-1. (Optional) If the cluster should have multiple nodes, go to the Admin Console to get a join command and join additional nodes to the cluster. For more information, see [Manage Multi-Node Clusters with Embedded Cluster](/enterprise/embedded-manage-nodes).
+1. (Optional) If the cluster should have multiple nodes, go to the Admin Console to get a join command and join additional nodes to the cluster. For more information, see [Manage Multi-Node Clusters with Embedded Cluster](embedded-manage-nodes).
1. Type `continue` when you are ready to proceed with the restore process.
diff --git a/docs/enterprise/embedded-manage-nodes.mdx b/embedded-cluster_versioned_docs/version-2.0.0/embedded-manage-nodes.mdx
similarity index 88%
rename from docs/enterprise/embedded-manage-nodes.mdx
rename to embedded-cluster_versioned_docs/version-2.0.0/embedded-manage-nodes.mdx
index dd5805538f..53b82e3f85 100644
--- a/docs/enterprise/embedded-manage-nodes.mdx
+++ b/embedded-cluster_versioned_docs/version-2.0.0/embedded-manage-nodes.mdx
@@ -1,5 +1,5 @@
-import HaArchitecture from "../partials/embedded-cluster/_multi-node-ha-arch.mdx"
-import ShellCommand from "../partials/embedded-cluster/_shell-command.mdx"
+import HaArchitecture from "../../docs/partials/embedded-cluster/v2/_multi-node-ha-arch.mdx"
+import ShellCommand from "../../docs/partials/embedded-cluster/_shell-command.mdx"
# Access and manage embedded clusters
@@ -19,11 +19,11 @@ This section describes how to join nodes to a cluster with Embedded Cluster.
Multi-node clusters with Embedded Cluster have the following limitations:
-* Setting node roles with the Embedded Cluster Config [roles](/reference/embedded-config#roles-beta) key is Beta.
+* Setting node roles with the Embedded Cluster Config [roles](/embedded-cluster/v2/embedded-config#roles) key is Beta.
-* The first node added to the cluster is always a controller and cannot be assigned any custom roles. For more information about configuring node roles, see [roles](/reference/embedded-config#roles-beta) in _Embedded Cluster Config_.
+* The first node added to the cluster is always a controller and cannot be assigned any custom roles. For more information about configuring node roles, see [roles](/embedded-cluster/v2/embedded-config#roles) in _Embedded Cluster Config_.
-* The same Embedded Cluster data directory used at installation is used for all nodes joined to the cluster. This is either the default `/var/lib/embedded-cluster` directory or the directory set with the [`--data-dir`](/reference/embedded-cluster-install#flags) flag. You cannot choose a different data directory for Embedded Cluster when joining nodes.
+* The same Embedded Cluster data directory used at installation is used for all nodes joined to the cluster. This is either the default `/var/lib/embedded-cluster` directory or the directory set with the [`--data-dir`](embedded-cluster-install#flags) flag. You cannot choose a different data directory for Embedded Cluster when joining nodes.
* More than one controller node should not be joined at the same time. When joining a controller node, a warning is printed that explains that the user should not attempt to join another node until the controller node joins successfully.
@@ -39,17 +39,17 @@ This section describes how to add nodes to a cluster with Embedded Cluster.
To add a node to a cluster with Embedded Cluster:
-1. (Optional) In the Embedded Cluster Config, configure the `roles` key to customize node roles. For more information, see [roles](/reference/embedded-config#roles-beta) in _Embedded Cluster Config_. When you are done, create and promote a new release with the updated Config.
+1. (Optional) In the Embedded Cluster Config, configure the `roles` key to customize node roles. For more information, see [roles](/embedded-cluster/v2/embedded-config#roles) in _Embedded Cluster Config_. When you are done, create and promote a new release with the updated Config.
1. Do one of the following:
- 1. Follow the steps in [Online Installation with Embedded Cluster](/enterprise/installing-embedded) or [Air Gap Installation with Embedded Cluster](/enterprise/installing-embedded-air-gap)to install. When you see the **Nodes** screen as part of the installation flow in the Admin Console, continue to the next step.
+ 1. Follow the steps in [Online Installation with Embedded Cluster](installing-embedded) or [Air Gap Installation with Embedded Cluster](installing-embedded-air-gap) to install. When you see the **Nodes** screen as part of the installation flow in the Admin Console, continue to the next step.
1. Otherwise, to add a node to an existing cluster:
1. Log in to the Admin Console.
- 1. If you promoted a new release that configures the `roles` key in the Embedded Cluster Config, update the instance to the new version. See [Perform Updates in Embedded Clusters](/enterprise/updating-embedded).
+ 1. If you promoted a new release that configures the `roles` key in the Embedded Cluster Config, update the instance to the new version. See [Perform Updates in Embedded Clusters](updating-embedded).
1. Go to **Cluster Management > Add node** at the top of the page.
@@ -110,7 +110,7 @@ Users are automatically prompted to enable HA when joining the third controller
-For more information about the Embedded Cluster built-in extensions, see [Built-In Extensions](/vendor/embedded-overview#built-in-extensions) in _Embedded Cluster Overview_.
+For more information about the Embedded Cluster built-in extensions, see [Built-In Extensions](embedded-overview#built-in-extensions) in _Embedded Cluster Overview_.
### Requirements
@@ -126,7 +126,7 @@ Enabling high availability has the following requirements:
Consider the following best practices and recommendations for creating HA clusters:
-* At least three _controller_ nodes that run the Kubernetes control plane are required for HA. This is because clusters use a quorum system, in which more than half the nodes must be up and reachable. In clusters with three controller nodes, the Kubernetes control plane can continue to operate if one node fails because a quorum can still be reached by the remaining two nodes. By default, with Embedded Cluster, all new nodes added to a cluster are controller nodes. For information about customizing the controller node role, see [roles](/reference/embedded-config#roles-beta) in _Embedded Cluster Config_.
+* At least three _controller_ nodes that run the Kubernetes control plane are required for HA. This is because clusters use a quorum system, in which more than half the nodes must be up and reachable. In clusters with three controller nodes, the Kubernetes control plane can continue to operate if one node fails because a quorum can still be reached by the remaining two nodes. By default, with Embedded Cluster, all new nodes added to a cluster are controller nodes. For information about customizing the controller node role, see [roles](/embedded-cluster/v2/embedded-config#roles) in _Embedded Cluster Config_.
* Always use an odd number of controller nodes in HA clusters. Using an odd number of controller nodes ensures that the cluster can make decisions efficiently with quorum calculations. Clusters with an odd number of controller nodes also avoid split-brain scenarios where the cluster runs as two, independent groups of nodes, resulting in inconsistencies and conflicts.
@@ -138,7 +138,7 @@ You can enable high availability for a multi-node cluster when joining the third
To create a multi-node HA cluster:
-1. Set up a cluster with at least two controller nodes. You can do an online (internet-connected) or air gap installation. For more information, see [Online Installation with Embedded Cluster](/enterprise/installing-embedded) or [Air Gap Installation with Embedded Cluster](/enterprise/installing-embedded-air-gap).
+1. Set up a cluster with at least two controller nodes. You can do an online (internet-connected) or air gap installation. For more information, see [Online Installation with Embedded Cluster](installing-embedded) or [Air Gap Installation with Embedded Cluster](installing-embedded-air-gap).
1. Get the commands for downloading the Embedded Cluster binary, extracting the binary, and joining the third controller node either in the Admin Console **Cluster Management** tab or by running the following command on an existing node:
@@ -171,7 +171,7 @@ Where `APP_SLUG` is the unique slug for the application.
## Reset nodes and remove clusters
-This section describes how to reset individual nodes and how to delete an entire multi-node cluster using the Embedded Cluster [reset](/reference/embedded-cluster-reset) command.
+This section describes how to reset individual nodes and how to delete an entire multi-node cluster using the Embedded Cluster [reset](embedded-cluster-reset) command.
### About the `reset` command
@@ -186,7 +186,7 @@ The `reset` command performs the following steps:
1. Remove all Embedded Cluster files
1. Reboot the node
-For more information about the command, see [reset](/reference/embedded-cluster-reset).
+For more information about the command, see [reset](embedded-cluster-reset).
### Limitations and best practices
@@ -200,7 +200,7 @@ Before you reset a node or remove a cluster, consider the following limitations
* When removing a multi-node cluster, run `reset` on each of the worker nodes first. Then, run `reset` on controller nodes. Controller nodes also remove themselves from etcd membership.
-### Reset a node
+### Reset a node {#reset-a-node}
To reset a node:
diff --git a/docs/vendor/embedded-overview.mdx b/embedded-cluster_versioned_docs/version-2.0.0/embedded-overview.mdx
similarity index 83%
rename from docs/vendor/embedded-overview.mdx
rename to embedded-cluster_versioned_docs/version-2.0.0/embedded-overview.mdx
index 26e4222f1e..a5d2ce7032 100644
--- a/docs/vendor/embedded-overview.mdx
+++ b/embedded-cluster_versioned_docs/version-2.0.0/embedded-overview.mdx
@@ -1,14 +1,10 @@
-import EmbeddedCluster from "../partials/embedded-cluster/_definition.mdx"
-import HaArchitecture from "../partials/embedded-cluster/_multi-node-ha-arch.mdx"
+import EmbeddedCluster from "../../docs/partials/embedded-cluster/v2/_definition.mdx"
+import HaArchitecture from "../../docs/partials/embedded-cluster/v2/_multi-node-ha-arch.mdx"
# Embedded Cluster overview
This topic provides an introduction to Replicated Embedded Cluster.
-:::note
-If you are instead looking for information about creating Kubernetes Installers with Replicated kURL, see the [Replicated kURL](/vendor/packaging-embedded-kubernetes) section.
-:::
-
## Overview
@@ -21,7 +17,7 @@ Embedded Cluster is a successor to Replicated kURL. Compared to kURL, Embedded C
* Improved support for multi-node clusters
* One-click updates of both the application and the cluster at the same time
-Additionally, Embedded Cluster automatically deploys several built-in extensions like KOTS and OpenEBS to provide capabilities such as application management and storage. This represents an improvement over kURL because vendors distributing their application with Embedded Cluster no longer need choose and define various add-ons in the installer spec. For additional functionality that is not included in the built-in extensions, such as an ingress controller, vendors can provide their own [`extensions`](/reference/embedded-config#extensions) that will be deployed alongside the application.
+Additionally, Embedded Cluster automatically deploys several built-in extensions like KOTS and OpenEBS to provide capabilities such as application management and storage. This represents an improvement over kURL because vendors distributing their application with Embedded Cluster no longer need choose and define various add-ons in the installer spec. For additional functionality that is not included in the built-in extensions, such as an ingress controller, vendors can provide their own [`extensions`](embedded-config#extensions) that will be deployed alongside the application.
## About installing with Embedded Cluster
@@ -36,8 +32,8 @@ The following diagram demonstrates how Kubernetes and an application are install
As shown in the diagram above, the Embedded Cluster Config is included in the application release in the Replicated Vendor Portal and is used to generate the Embedded Cluster installation assets. Users can download these installation assets from the Replicated app service (`replicated.app`) on the command line, then run the Embedded Cluster installation command to install Kubernetes and the KOTS Admin Console. Finally, users access the Admin Console to optionally add nodes to the cluster and to configure and install the application.
For more information about how to install with Embedded Cluster, see:
-* [Online Installation wtih Embedded Cluster](/enterprise/installing-embedded)
-* [Air Gap Installation with Embedded Cluster](/enterprise/installing-embedded-air-gap)
+* [Online Installation wtih Embedded Cluster](installing-embedded)
+* [Air Gap Installation with Embedded Cluster](installing-embedded-air-gap)
### Embedded Cluster host preflight checks {#about-host-preflight-checks}
@@ -59,25 +55,25 @@ Embedded Cluster host preflight checks have the following limitations:
### Multi-node installations
-Embedded Cluster supports installations in mutli-node clusters. Your end customers can add nodes to a cluster during or after installation from the Admin Console. For more information, see [Manage Multi-Node Clusters with Embedded Cluster](/enterprise/embedded-manage-nodes).
+Embedded Cluster supports installations in mutli-node clusters. Your end customers can add nodes to a cluster during or after installation from the Admin Console. For more information, see [Manage Multi-Node Clusters with Embedded Cluster](embedded-manage-nodes).
#### High availability
Multi-node clusters are not highly available by default. Enabling high availability (HA) requires that at least three controller nodes are present in the cluster. Users can enable HA when joining the third node.
-For more information about creating HA multi-node clusters with Embedded Cluster, see [Enable High Availability](/enterprise/embedded-manage-nodes#ha) in _Managing Multi-Node Clusters with Embedded Cluster_.
+For more information about creating HA multi-node clusters with Embedded Cluster, see [Enable High Availability](embedded-manage-nodes#ha) in _Managing Multi-Node Clusters with Embedded Cluster_.
#### Node roles
You can optionally define node roles in the Embedded Cluster Config. For multi-node clusters, roles can be useful for the purpose of assigning specific application workloads to nodes. If nodes roles are defined, users assign one or more roles to a node when it is joined to the cluster.
-For more information, see [roles](/reference/embedded-config#roles) in _Embedded Cluster Config_.
+For more information, see [roles](/embedded-cluster/v2/embedded-config#roles) in _Embedded Cluster Config_.
## About configuring Embedded Cluster
To support installations with Embedded Cluster, an Embedded Cluster Config must be present in the application release. The Embedded Cluster Config lets you define several characteristics about the cluster that will be created.
-For more information, see [Embedded Cluster Config](/reference/embedded-config).
+For more information, see [Embedded Cluster Config](embedded-config).
## Architecture
@@ -97,7 +93,7 @@ When the user runs the Embedded Cluster install command, the Embedded Cluster bi
After all the Kubernetes components for the cluster are available, the Embedded Cluster binary then installs the Embedded Cluster built-in extensions.
-Any Helm extensions that were included in the [`extensions`](/reference/embedded-config#extensions) field of the Embedded Cluster Config are also installed. The namespace or namespaces where Helm extensions are installed is defined by the vendor in the Embedded Cluster Config.
+Any Helm extensions that were included in the [`extensions`](embedded-config#extensions) field of the Embedded Cluster Config are also installed. The namespace or namespaces where Helm extensions are installed is defined by the vendor in the Embedded Cluster Config.
Finally, Embedded Cluster also installs Local Artifact Mirror (LAM). In air gap installations, LAM is used to store and update images.
@@ -113,7 +109,7 @@ As shown in the diagram above, in multi-node installations, the Embedded Cluster
For installations that include disaster recovery with Velero, the Velero Node Agent runs on each node in the cluster. The Node Agent is a Kubernetes DaemonSet that performs backup and restore tasks such as creating snapshots and transferring data during restores.
-Additionally, any Helm [`extensions`](/reference/embedded-config#extensions) that you include in the Embedded Cluster Config are installed in the cluster depending on the given chart and how it is configured to be deployed.
+Additionally, any Helm [`extensions`](embedded-config#extensions) that you include in the Embedded Cluster Config are installed in the cluster depending on the given chart and how it is configured to be deployed.
### Multi-node architecture with high availability
@@ -131,9 +127,9 @@ The built-in extensions installed by Embedded Cluster include:
* **OpenEBS:** Embedded Cluster uses OpenEBS to provide local PersistentVolume (PV) storage, including the PV storage for rqlite used by KOTS. For more information, see the [OpenEBS](https://openebs.io/docs/) documentation.
-* **(Disaster Recovery Only) Velero:** If the installation uses the Embedded Cluster disaster recovery feature, Embedded Cluster installs Velero, which is an open-source tool that provides backup and restore functionality. For more information about Velero, see the [Velero](https://velero.io/docs/latest/) documentation. For more information about the disaster recovery feature, see [Disaster Recovery for Embedded Cluster (Alpha)](/vendor/embedded-disaster-recovery).
+* **(Disaster Recovery Only) Velero:** If the installation uses the Embedded Cluster disaster recovery feature, Embedded Cluster installs Velero, which is an open-source tool that provides backup and restore functionality. For more information about Velero, see the [Velero](https://velero.io/docs/latest/) documentation. For more information about the disaster recovery feature, see [Disaster Recovery for Embedded Cluster (Alpha)](embedded-disaster-recovery).
-* **(Air Gap Only) Image registry:** For air gap installations in environments with limited or no outbound internet access, Embedded Cluster installs an image registry where the images required to install and run the application are pushed. For more information about installing in air-gapped environments, see [Air Gap Installation with Embedded Cluster](/enterprise/installing-embedded-air-gap).
+* **(Air Gap Only) Image registry:** For air gap installations in environments with limited or no outbound internet access, Embedded Cluster installs an image registry where the images required to install and run the application are pushed. For more information about installing in air-gapped environments, see [Air Gap Installation with Embedded Cluster](installing-embedded-air-gap).
## Limitations {#ec-limitations}
@@ -141,11 +137,11 @@ Embedded Cluster has the following limitations:
* **Migration from kURL**: We are helping several customers migrate from kURL to Embedded Cluster. For more information about migrating from kURL to Embedded Cluster, including key considerations before migrating and an example step-by-step migration process, see [Replicated kURL to Embedded Cluster Migration](https://docs.google.com/document/d/1Qw9owCK4xNXHRRmxDgAq_NJdxQ4O-6w2rWk_luzBD7A/edit?tab=t.0). For additional questions and to begin the migration process for your application, reach out to Alex Parker at alexp@replicated.com.
-* **Disaster recovery is in alpha**: Disaster Recovery for Embedded Cluster installations is in alpha. For more information, see [Disaster Recovery for Embedded Cluster (Alpha)](/vendor/embedded-disaster-recovery).
+* **Disaster recovery is in alpha**: Disaster Recovery for Embedded Cluster installations is in alpha. For more information, see [Disaster Recovery for Embedded Cluster (Alpha)](embedded-disaster-recovery).
-* **Partial rollback support**: In Embedded Cluster 1.17.0 and later, rollbacks are supported only when rolling back to a version where there is no change to the [Embedded Cluster Config](/reference/embedded-config) compared to the currently-installed version. For example, users can roll back to release version 1.0.0 after upgrading to 1.1.0 only if both 1.0.0 and 1.1.0 use the same Embedded Cluster Config. For more information about how to enable rollbacks for your application in the KOTS Application custom resource, see [allowRollback](/reference/custom-resource-application#allowrollback) in _Application_.
+* **Partial rollback support**: In Embedded Cluster 1.17.0 and later, rollbacks are supported only when rolling back to a version where there is no change to the [Embedded Cluster Config](embedded-config) compared to the currently-installed version. For example, users can roll back to release version 1.0.0 after upgrading to 1.1.0 only if both 1.0.0 and 1.1.0 use the same Embedded Cluster Config. For more information about how to enable rollbacks for your application in the KOTS Application custom resource, see [allowRollback](/reference/custom-resource-application#allowrollback) in _Application_.
-* **Changing node hostnames is not supported**: After a host is added to a cluster, Kubernetes assumes that the hostname and IP address of the host will not change. If you need to change the hostname or IP address of a node, you must first remove the node from the cluster, reset it, and then rejoin it. For information about how to reset nodes with Embedded Cluster, see [Reset a Node](/enterprise/embedded-manage-nodes#reset-a-node). For information about the requirements for naming nodes, see [Node name uniqueness](https://kubernetes.io/docs/concepts/architecture/nodes/#node-name-uniqueness) in the Kubernetes documentation.
+* **Changing node hostnames is not supported**: After a host is added to a cluster, Kubernetes assumes that the hostname and IP address of the host will not change. If you need to change the hostname or IP address of a node, you must first remove the node from the cluster, reset it, and then rejoin it. For information about how to reset nodes with Embedded Cluster, see [Reset a Node](embedded-manage-nodes#reset-a-node). For information about the requirements for naming nodes, see [Node name uniqueness](https://kubernetes.io/docs/concepts/architecture/nodes/#node-name-uniqueness) in the Kubernetes documentation.
:::note
If you need to change the hostname or IP address of a controller node in a three-node cluster, Replicated recommends that you join a fourth controller node to the cluster before removing the target node. This ensures that you maintain a minimum of three nodes for the Kubernetes control plane. You can add and remove worker nodes as needed because they do not have any control plane components. For information about how to remove controller nodes, see [Remove or Replace a Controller](https://docs.k0sproject.io/stable/remove_controller/) in the k0s documentation.
@@ -165,7 +161,7 @@ Embedded Cluster has the following limitations:
* **Upgrading by more than one Kubernetes version at a time not supported**: Kubernetes does not support upgrading by more than one minor version at a time. To upgrade Kubernetes by more than one minor version, promote multiple releases, incrementing the version of Kubernetes by one minor version in each release.
-* **Templating not supported in Embedded Cluster Config**: The [Embedded Cluster Config](/reference/embedded-config) resource does not support the use of Go template functions, including [Replicated template functions](/reference/template-functions-about). This only applies to the Embedded Cluster Config. You can still use template functions in the rest of your release as usual.
+* **Templating not supported in Embedded Cluster Config**: The [Embedded Cluster Config](embedded-config) resource does not support the use of Go template functions, including [Replicated template functions](/reference/template-functions-about). This only applies to the Embedded Cluster Config. You can still use template functions in the rest of your release as usual.
* **Policy enforcement on Embedded Cluster workloads is not supported**: The Embedded Cluster runs workloads that require higher levels of privilege. If your application installs a policy enforcement engine such as Gatekeeper or Kyverno, ensure that its policies are not enforced in the namespaces used by Embedded Cluster.
diff --git a/docs/enterprise/embedded-tls-certs.mdx b/embedded-cluster_versioned_docs/version-2.0.0/embedded-tls-certs.mdx
similarity index 100%
rename from docs/enterprise/embedded-tls-certs.mdx
rename to embedded-cluster_versioned_docs/version-2.0.0/embedded-tls-certs.mdx
diff --git a/docs/vendor/embedded-troubleshooting.mdx b/embedded-cluster_versioned_docs/version-2.0.0/embedded-troubleshooting.mdx
similarity index 88%
rename from docs/vendor/embedded-troubleshooting.mdx
rename to embedded-cluster_versioned_docs/version-2.0.0/embedded-troubleshooting.mdx
index 6c1a8faa25..1973f6f399 100644
--- a/docs/vendor/embedded-troubleshooting.mdx
+++ b/embedded-cluster_versioned_docs/version-2.0.0/embedded-troubleshooting.mdx
@@ -1,12 +1,12 @@
-import SupportBundleIntro from "../partials/support-bundles/_ec-support-bundle-intro.mdx"
-import EmbeddedClusterSupportBundle from "../partials/support-bundles/_generate-bundle-ec.mdx"
-import ShellCommand from "../partials/embedded-cluster/_shell-command.mdx"
+import SupportBundleIntro from "../../docs/partials/support-bundles/_ec-support-bundle-intro.mdx"
+import EmbeddedClusterSupportBundle from "../../docs/partials/embedded-cluster/v2/_generate-bundle-ec.mdx"
+import ShellCommand from "../../docs/partials/embedded-cluster/_shell-command.mdx"
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Troubleshoot Embedded Cluster
-This topic provides information about troubleshooting Replicated Embedded Cluster installations. For more information about Embedded Cluster, including built-in extensions and architecture, see [Embedded Cluster Overview](/vendor/embedded-overview).
+This topic provides information about troubleshooting Replicated Embedded Cluster installations. For more information about Embedded Cluster, including built-in extensions and architecture, see [Embedded Cluster Overview](embedded-overview).
## Troubleshoot with support bundles
@@ -71,7 +71,7 @@ If there are any containerd services on the host, the NVIDIA GPU Operator will g
This is the result of a known issue with v24.9.x of the NVIDIA GPU Operator. For more information about the known issue, see [container-toolkit does not modify the containerd config correctly when there are multiple instances of the containerd binary](https://github.com/NVIDIA/nvidia-container-toolkit/issues/982) in the nvidia-container-toolkit repository in GitHub.
-For more information about including the GPU Operator as a Helm extension, see [NVIDIA GPU Operator](/vendor/embedded-using#nvidia-gpu-operator) in _Configure Embedded Cluster_.
+For more information about including the GPU Operator as a Helm extension, see [NVIDIA GPU Operator](embedded-using#nvidia-gpu-operator) in _Configure Embedded Cluster_.
#### Solution
@@ -86,7 +86,7 @@ To troubleshoot:
```
Where `APP_SLUG` is the unique slug for the application.
- For more information, see [Reset a Node](/enterprise/embedded-manage-nodes#reset-a-node) in _Access and Manage Embedded Clusters_.
+ For more information, see [Reset a Node](embedded-manage-nodes#reset-a-node) in _Access and Manage Embedded Clusters_.
1. Re-install with Embedded Cluster.
@@ -152,7 +152,7 @@ Reasons can include:
```
Where `APP_SLUG` is the unique slug for the application.
- For more information, see [Reset a Node](/enterprise/embedded-manage-nodes#reset-a-node) in _Access and Manage Embedded Clusters_.
+ For more information, see [Reset a Node](embedded-manage-nodes#reset-a-node) in _Access and Manage Embedded Clusters_.
1. Reinstall the application with different CIDRs using the `--cidr` flag:
@@ -160,10 +160,10 @@ Reasons can include:
sudo ./APP_SLUG install --license license.yaml --cidr 172.16.136.0/16
```
- For more information, see [Embedded Cluster Install Options](/reference/embedded-cluster-install).
+ For more information, see [Embedded Cluster Install Options](embedded-cluster-install).
- Embedded Cluster 1.19.0 and later automatically sets the `net.ipv4.conf.default.arp_filter`, `net.ipv4.conf.default.arp_ignore`, and `net.ipv4.ip_forward` kernel parameters. Additionally, host preflight checks automatically run during installation to verify that the kernel parameters were set correctly. For more information about the Embedded Cluster preflight checks, see [About Host Preflight Checks](/vendor/embedded-overview#about-host-preflight-checks) in _Embedded Cluster Overview_.
+ Embedded Cluster 1.19.0 and later automatically sets the `net.ipv4.conf.default.arp_filter`, `net.ipv4.conf.default.arp_ignore`, and `net.ipv4.ip_forward` kernel parameters. Additionally, host preflight checks automatically run during installation to verify that the kernel parameters were set correctly. For more information about the Embedded Cluster preflight checks, see [About Host Preflight Checks](embedded-overview#about-host-preflight-checks) in _Embedded Cluster Overview_.
If kernel parameters are not set correctly and these preflight checks fail, you might see a message such as `IP forwarding must be enabled.` or `ARP filtering must be disabled by default for newly created interfaces.`.
@@ -185,7 +185,7 @@ Reasons can include:
sudo ./APP_SLUG reset
```
Where `APP_SLUG` is the unique slug for the application.
- For more information, see [Reset a Node](/enterprise/embedded-manage-nodes#reset-a-node) in _Access and Manage Embedded Clusters_.
+ For more information, see [Reset a Node](embedded-manage-nodes#reset-a-node) in _Access and Manage Embedded Clusters_.
1. Re-install with Embedded Cluster.
diff --git a/docs/vendor/embedded-using.mdx b/embedded-cluster_versioned_docs/version-2.0.0/embedded-using.mdx
similarity index 86%
rename from docs/vendor/embedded-using.mdx
rename to embedded-cluster_versioned_docs/version-2.0.0/embedded-using.mdx
index bcefc3f41b..8dcf8cdaec 100644
--- a/docs/vendor/embedded-using.mdx
+++ b/embedded-cluster_versioned_docs/version-2.0.0/embedded-using.mdx
@@ -1,6 +1,6 @@
-import UpdateOverview from "../partials/embedded-cluster/_update-overview.mdx"
-import EcConfig from "../partials/embedded-cluster/_ec-config.mdx"
-import ShellCommand from "../partials/embedded-cluster/_shell-command.mdx"
+import UpdateOverview from "../../docs/partials/embedded-cluster/v2/_update-overview.mdx"
+import EcConfig from "../../docs/partials/embedded-cluster/v2/_ec-config.mdx"
+import ShellCommand from "../../docs/partials/embedded-cluster/_shell-command.mdx"
# Configure Embedded Cluster
@@ -8,7 +8,7 @@ This topic provides information about how to configure your application releases
## Add the Embedded Cluster Config resource
-An [Embedded Cluster Config](/reference/embedded-config) must be present in the release to support installation with Embedded Cluster. The Embedded Cluster Config sets the version of Embedded Cluster to install, and lets you define additional characteristics about the cluster.
+An [Embedded Cluster Config](embedded-config) must be present in the release to support installation with Embedded Cluster. The Embedded Cluster Config sets the version of Embedded Cluster to install, and lets you define additional characteristics about the cluster.
To add the Embedded Cluster Config:
@@ -16,11 +16,11 @@ To add the Embedded Cluster Config:
If you have not yet configured the HelmChart custom resource for your application, see [Onboard to the Replicated Platform](/vendor/replicated-onboarding) for more detailed instructions on how to configure releases that support installation with a Replicated installer.
-1. In the release, add an [Embedded Cluster Config](/reference/embedded-config) manifest that specifies the Embedded Cluster version to use:
+1. In the release, add an [Embedded Cluster Config](embedded-config) manifest that specifies the Embedded Cluster version to use:
-1. If your application requires that certain components are deployed before the application and as part of the Embedded Cluster itself, update the Embedded Cluster Config to add [extensions](/reference/embedded-config#extensions).
+1. If your application requires that certain components are deployed before the application and as part of the Embedded Cluster itself, update the Embedded Cluster Config to add [extensions](embedded-config#extensions).
1. Save the release and promote it to the channel that you use for testing internally.
@@ -46,10 +46,10 @@ To add the Embedded Cluster Config:
The Admin Console URL is printed when the installation finishes. Access the Admin Console and follow the instructions in the wizard to install your application.
-1. After successfully installing your application with Embedded Cluster, customize the [Embedded Cluster Config](/reference/embedded-config) as desired:
- * Add your custom domain for the Replicated proxy registry and Replicated app service. See [domains](/reference/embedded-config#domains).
- * Add custom Helm extensions. Extensions allow you to provide Helm charts that are deployed before your application. For example, you can add a Helm extension to ship an ingress controller. See [extensions](/reference/embedded-config#extensions).
- * Define roles to assign workloads to specific nodes in multi-node installations. See [roles](/reference/embedded-config#roles).
+1. After successfully installing your application with Embedded Cluster, customize the [Embedded Cluster Config](embedded-config) as desired:
+ * Add your custom domain for the Replicated proxy registry and Replicated app service. See [domains](embedded-config#domains).
+ * Add custom Helm extensions. Extensions allow you to provide Helm charts that are deployed before your application. For example, you can add a Helm extension to ship an ingress controller. See [extensions](embedded-config#extensions).
+ * Define roles to assign workloads to specific nodes in multi-node installations. See [roles](/embedded-cluster/v2/embedded-config#roles).
Replicated recommends that you work in small iterations and test your changes frequently in your development environment.
@@ -81,7 +81,7 @@ The NVIDIA GPU Operator uses the operator framework within Kubernetes to automat
### Include the NVIDIA gpu operator and configure containerd options
-You can include the NVIDIA GPU Operator in your release as an additional Helm chart, or using Embedded Cluster Helm extensions. For information about adding Helm extensions, see [extensions](/reference/embedded-config#extensions) in _Embedded Cluster Config_.
+You can include the NVIDIA GPU Operator in your release as an additional Helm chart, or using Embedded Cluster Helm extensions. For information about adding Helm extensions, see [extensions](embedded-config#extensions) in _Embedded Cluster Config_.
Using the NVIDIA GPU Operator with Embedded Cluster requires configuring the containerd options in the operator as follows:
diff --git a/docs/enterprise/installing-embedded-air-gap.mdx b/embedded-cluster_versioned_docs/version-2.0.0/installing-embedded-air-gap.mdx
similarity index 89%
rename from docs/enterprise/installing-embedded-air-gap.mdx
rename to embedded-cluster_versioned_docs/version-2.0.0/installing-embedded-air-gap.mdx
index d6f8ff581a..e037312b66 100644
--- a/docs/enterprise/installing-embedded-air-gap.mdx
+++ b/embedded-cluster_versioned_docs/version-2.0.0/installing-embedded-air-gap.mdx
@@ -1,8 +1,4 @@
-import UpdateAirGapAdm from "../partials/embedded-cluster/_update-air-gap-admin-console.mdx"
-import UpdateAirGapCli from "../partials/embedded-cluster/_update-air-gap-cli.mdx"
-import UpdateAirGapOverview from "../partials/embedded-cluster/_update-air-gap-overview.mdx"
-import DoNotDowngrade from "../partials/embedded-cluster/_warning-do-not-downgrade.mdx"
-import Prerequisites from "../partials/install/_ec-prereqs.mdx"
+import Prerequisites from "../../docs/partials/embedded-cluster/v2/_ec-prereqs.mdx"
# Air gap installation with Embedded Cluster
@@ -12,21 +8,17 @@ This topic describes how to install applications with Embedded Cluster on a virt
When an air gap bundle is built for a release containing an Embedded Cluster Config, both an application air gap bundle and an Embedded Cluster air gap bundle are built. The application air gap bundle can be used for air gap installations with Replicated kURL or with Replicated KOTS in an existing cluster. The Embedded Cluster air gap bundle is used for air gap installations with Embedded Cluster.
-The Embedded Cluster air gap bundle not only contains the assets normally contained in an application air gap bundle (`airgap.yaml`, `app.tar.gz`, and an images directory), but it also contains an `embedded-cluster` directory with the assets needed to install the infrastructure (Embedded Cluster/k0s and [extensions](/reference/embedded-config#extensions).
+The Embedded Cluster air gap bundle not only contains the assets normally contained in an application air gap bundle (`airgap.yaml`, `app.tar.gz`, and an images directory), but it also contains an `embedded-cluster` directory with the assets needed to install the infrastructure (Embedded Cluster/k0s and [extensions](embedded-config#extensions)).
During installation with Embedded Cluster in air gap environments, a Docker registry is deployed to the cluster to store application images. Infrastructure images (for Embedded Cluster and Helm extensions) and the Helm charts are preloaded on each node at installation time.
-## Requirement
-
-Air gap installations are supported with Embedded Cluster version 1.3.0 or later.
-
## Limitations and known issues
Embedded Cluster installations in air gap environments have the following limitations and known issues:
* If you pass `?airgap=true` to the `replicated.app` endpoint but an air gap bundle is not built for the latest release, the API will not return a 404. Instead it will return the tarball without the air gap bundle (as in, with the installer and the license in it, like for online installations).
-* Images used by Helm extensions must not refer to a multi-architecture image by digest. Only x64 images are included in air gap bundles, and the digest for the x64 image will be different from the digest for the multi-architecture image, preventing the image from being discovered in the bundle. An example of a chart that does this is ingress-nginx/ingress-nginx chart. For an example of how the digests should be set to empty string to pull by tag only, see [extensions](/reference/embedded-config#extensions) in _Embedded Cluster Config_.
+* Images used by Helm extensions must not refer to a multi-architecture image by digest. Only x64 images are included in air gap bundles, and the digest for the x64 image will be different from the digest for the multi-architecture image, preventing the image from being discovered in the bundle. An example of a chart that does this is ingress-nginx/ingress-nginx chart. For an example of how the digests should be set to empty string to pull by tag only, see [extensions](embedded-config#extensions) in _Embedded Cluster Config_.
* Images for Helm extensions are loaded directly into containerd so that they are available without internet access. But if an image used by a Helm extension has **Always** set as the image pull policy, Kubernetes will try to pull the image from the internet. If necessary, use the Helm values to set `IfNotPresent` as the image pull policy to ensure the extension works in air gap environments.
@@ -86,11 +78,11 @@ To install with Embedded Cluster in an air gap environment:
```
Where `APP_SLUG` is the unique application slug.
- For the list of flags supported with the Embedded Cluster `install` command, see [install](/reference/embedded-cluster-install).
+ For the list of flags supported with the Embedded Cluster `install` command, see [install](embedded-cluster-install).
1. When prompted, enter a password for accessing the KOTS Admin Console.
- The installation command takes a few minutes to complete. During installation, Embedded Cluster completes tasks to prepare the cluster and install KOTS in the cluster. Embedded Cluster also automatically runs a default set of [_host preflight checks_](/vendor/embedded-overview#about-host-preflight-checks) which verify that the environment meets the requirements for the installer.
+ The installation command takes a few minutes to complete. During installation, Embedded Cluster completes tasks to prepare the cluster and install KOTS in the cluster. Embedded Cluster also automatically runs a default set of [_host preflight checks_](embedded-overview#about-host-preflight-checks) which verify that the environment meets the requirements for the installer.
**Example output:**
@@ -123,7 +115,7 @@ To install with Embedded Cluster in an air gap environment:
1. On the **Nodes** page, you can view details about the machine where you installed, including its node role, status, CPU, and memory.
- Optionally, add nodes to the cluster before deploying the application. For more information about joining nodes, see [Manage Multi-Node Clusters with Embedded Cluster](/enterprise/embedded-manage-nodes). Click **Continue**.
+ Optionally, add nodes to the cluster before deploying the application. For more information about joining nodes, see [Manage Multi-Node Clusters with Embedded Cluster](embedded-manage-nodes). Click **Continue**.
1. On the **Configure [App Name]** screen, complete the fields for the application configuration options. Click **Continue**.
diff --git a/docs/enterprise/installing-embedded-automation.mdx b/embedded-cluster_versioned_docs/version-2.0.0/installing-embedded-automation.mdx
similarity index 87%
rename from docs/enterprise/installing-embedded-automation.mdx
rename to embedded-cluster_versioned_docs/version-2.0.0/installing-embedded-automation.mdx
index 422b1d37f7..da933db8a0 100644
--- a/docs/enterprise/installing-embedded-automation.mdx
+++ b/embedded-cluster_versioned_docs/version-2.0.0/installing-embedded-automation.mdx
@@ -1,6 +1,6 @@
-import ConfigValuesExample from "../partials/configValues/_configValuesExample.mdx"
-import ConfigValuesProcedure from "../partials/configValues/_config-values-procedure.mdx"
-import ConfigValuesRequirements from "../partials/configValues/_requirements.mdx"
+import ConfigValuesExample from "../../docs/partials/configValues/_configValuesExample.mdx"
+import ConfigValuesProcedure from "../../docs/partials/configValues/_config-values-procedure.mdx"
+import ConfigValuesRequirements from "../../docs/partials/configValues/_requirements.mdx"
# Automate installation with Embedded Cluster
@@ -28,13 +28,13 @@ For more information, see [ConfigValues](/reference/custom-resource-configvalues
## Limitation
-Automating deployment with Embedded Cluster is supported only for the initial installation. Performing automated (headless) updates of existing installations with Embedded Cluster is not supported. For information about how to update an existing installation through the Admin Console UI, see [Perform Updates in Embedded Clusters](/enterprise/updating-embedded).
+Automating deployment with Embedded Cluster is supported only for the initial installation. Performing automated (headless) updates of existing installations with Embedded Cluster is not supported. For information about how to update an existing installation through the Admin Console UI, see [Perform Updates in Embedded Clusters](updating-embedded).
## Online (internet-connected) installation
To install with Embedded Cluster in an online environment:
-1. Follow the steps provided in the Vendor Portal to download and untar the Embedded Cluster installation assets. For more information, see [Online Installation with Embedded Cluster](/enterprise/installing-embedded).
+1. Follow the steps provided in the Vendor Portal to download and untar the Embedded Cluster installation assets. For more information, see [Online Installation with Embedded Cluster](installing-embedded).
1. Run the following command to install:
@@ -50,13 +50,13 @@ To install with Embedded Cluster in an online environment:
* `ADMIN_CONSOLE_PASSWORD` is a password for accessing the Admin Console.
* `PATH_TO_CONFIGVALUES` is the path to the ConfigValues file.
- For more information about the `install` command options, see [install](/reference/embedded-cluster-install).
+ For more information about the `install` command options, see [install](embedded-cluster-install).
## Air gap installation
To install with Embedded Cluster in an air-gapped environment:
-1. Follow the steps provided in the Vendor Portal to download and untar the Embedded Cluster air gap installation assets. For more information, see [Air Gap Installation with Embedded Cluster](/enterprise/installing-embedded-air-gap).
+1. Follow the steps provided in the Vendor Portal to download and untar the Embedded Cluster air gap installation assets. For more information, see [Air Gap Installation with Embedded Cluster](installing-embedded-air-gap).
1. Ensure that the Embedded Cluster installation assets are available on the air-gapped machine, then run the following command to install:
@@ -74,11 +74,11 @@ To install with Embedded Cluster in an air-gapped environment:
* `ADMIN_CONSOLE_PASSWORD` with a password for accessing the Admin Console.
* `PATH_TO_AIRGAP_BUNDLE` with the path to the Embedded Cluster `.airgap` bundle for the release.
- For the complete list of `install` options, see [install](/reference/embedded-cluster-install).
+ For the complete list of `install` options, see [install](embedded-cluster-install).
## (Optional) Ignore preflight checks during installation
-You can ignore both application-level preflight checks and Embedded Cluster host preflight checks during installation. When you ignore preflight checks, the installation proceeds despite any preflight failures. This is useful for automated installations in development environments. For more information about the `--ignore-host-preflights` and `--ignore-app-preflights` options, see [install](/reference/embedded-cluster-install).
+You can ignore both application-level preflight checks and Embedded Cluster host preflight checks during installation. When you ignore preflight checks, the installation proceeds despite any preflight failures. This is useful for automated installations in development environments. For more information about the `--ignore-host-preflights` and `--ignore-app-preflights` options, see [install](embedded-cluster-install).
Ignoring host preflight checks is _not_ recommended for production installations.
diff --git a/docs/enterprise/installing-embedded-requirements.mdx b/embedded-cluster_versioned_docs/version-2.0.0/installing-embedded-requirements.mdx
similarity index 88%
rename from docs/enterprise/installing-embedded-requirements.mdx
rename to embedded-cluster_versioned_docs/version-2.0.0/installing-embedded-requirements.mdx
index 3d7508ba9b..3098137ccd 100644
--- a/docs/enterprise/installing-embedded-requirements.mdx
+++ b/embedded-cluster_versioned_docs/version-2.0.0/installing-embedded-requirements.mdx
@@ -1,7 +1,7 @@
-import EmbeddedClusterRequirements from "../partials/embedded-cluster/_requirements.mdx"
-import EmbeddedClusterPortRequirements from "../partials/embedded-cluster/_port-reqs.mdx"
-import FirewallOpeningsIntro from "../partials/install/_firewall-openings-intro.mdx"
-import FirewallOpeningsEc from "../partials/install/_firewall-openings-embedded-cluster.mdx"
+import EmbeddedClusterRequirements from "../../docs/partials/embedded-cluster/v2/_requirements.mdx"
+import EmbeddedClusterPortRequirements from "../../docs/partials/embedded-cluster/v2/_port-reqs.mdx"
+import FirewallOpeningsIntro from "../../docs/partials/install/_firewall-openings-intro.mdx"
+import FirewallOpeningsEc from "../../docs/partials/install/_firewall-openings-embedded-cluster.mdx"
# Embedded Cluster installation requirements
diff --git a/docs/enterprise/installing-embedded.mdx b/embedded-cluster_versioned_docs/version-2.0.0/installing-embedded.mdx
similarity index 90%
rename from docs/enterprise/installing-embedded.mdx
rename to embedded-cluster_versioned_docs/version-2.0.0/installing-embedded.mdx
index dafb7f5da4..088fddd7d8 100644
--- a/docs/enterprise/installing-embedded.mdx
+++ b/embedded-cluster_versioned_docs/version-2.0.0/installing-embedded.mdx
@@ -1,10 +1,10 @@
-import Prerequisites from "../partials/install/_ec-prereqs.mdx"
+import Prerequisites from "../../docs/partials/embedded-cluster/v2/_ec-prereqs.mdx"
# Online installation with Embedded Cluster
-This topic describes how to install an application in an online (internet-connected) environment with the Replicated Embedded Cluster installer. For information about air gap installations with Embedded Cluster, see [Air Gap Installation with Embedded Cluster](/enterprise/installing-embedded-air-gap).
+This topic describes how to install an application in an online (internet-connected) environment with the Replicated Embedded Cluster installer. For information about air gap installations with Embedded Cluster, see [Air Gap Installation with Embedded Cluster](installing-embedded-air-gap).
-For the list of all Embedded Cluster installation options, including how to install behind a proxy, how to use a specific network interface, and more, see [install](/reference/embedded-cluster-install).
+For the list of all Embedded Cluster installation options, including how to install behind a proxy, how to use a specific network interface, and more, see [install](embedded-cluster-install).
## Prerequisites
@@ -12,7 +12,7 @@ Before you install, complete the following prerequisites:
-* Ensure that the required domains are accessible from servers performing the installation. See [Firewall Openings for Online Installations](/enterprise/installing-embedded-requirements#firewall).
+* Ensure that the required domains are accessible from servers performing the installation. See [Firewall Openings for Online Installations](installing-embedded-requirements#firewall).
## Install
@@ -50,11 +50,11 @@ To install an application with Embedded Cluster:
* `APP_SLUG` is the unique slug for the application.
* `LICENSE_FILE` is the customer license.
- For the list of all Embedded Cluster installation options, including how to install behind a proxy, how to use a specific network interface, and more, see [install](/reference/embedded-cluster-install).
+ For the list of all Embedded Cluster installation options, including how to install behind a proxy, how to use a specific network interface, and more, see [install](embedded-cluster-install).
1. When prompted, enter a password for accessing the KOTS Admin Console.
- The installation command takes a few minutes to complete. During installation, Embedded Cluster completes tasks to prepare the cluster and install KOTS in the cluster. Embedded Cluster also automatically runs a default set of [_host preflight checks_](/vendor/embedded-overview#about-host-preflight-checks) which verify that the environment meets the requirements for the installer.
+ The installation command takes a few minutes to complete. During installation, Embedded Cluster completes tasks to prepare the cluster and install KOTS in the cluster. Embedded Cluster also automatically runs a default set of [_host preflight checks_](embedded-overview#about-host-preflight-checks) which verify that the environment meets the requirements for the installer.
**Example output:**
@@ -87,7 +87,7 @@ To install an application with Embedded Cluster:
1. On the **Nodes** page, you can view details about the machine where you installed, including its node role, status, CPU, and memory.
- Optionally, add nodes to the cluster before deploying the application. For more information about joining nodes, see [Manage Multi-Node Clusters with Embedded Cluster](/enterprise/embedded-manage-nodes). Click **Continue**.
+ Optionally, add nodes to the cluster before deploying the application. For more information about joining nodes, see [Manage Multi-Node Clusters with Embedded Cluster](embedded-manage-nodes). Click **Continue**.
1. On the **Configure [App Name]** screen, complete the fields for the application configuration options. Click **Continue**.
diff --git a/docs/enterprise/updating-embedded.mdx b/embedded-cluster_versioned_docs/version-2.0.0/updating-embedded.mdx
similarity index 83%
rename from docs/enterprise/updating-embedded.mdx
rename to embedded-cluster_versioned_docs/version-2.0.0/updating-embedded.mdx
index ce34166f40..67880ad17b 100644
--- a/docs/enterprise/updating-embedded.mdx
+++ b/embedded-cluster_versioned_docs/version-2.0.0/updating-embedded.mdx
@@ -1,15 +1,12 @@
-import UpdateAirGapAdm from "../partials/embedded-cluster/_update-air-gap-admin-console.mdx"
-import UpdateAirGapCli from "../partials/embedded-cluster/_update-air-gap-cli.mdx"
-import UpdateAirGapOverview from "../partials/embedded-cluster/_update-air-gap-overview.mdx"
-import Overview from "../partials/embedded-cluster/_update-overview.mdx"
+import UpdateAirGapAdm from "../../docs/partials/embedded-cluster/v2/_update-air-gap-admin-console.mdx"
+import UpdateAirGapCli from "../../docs/partials/embedded-cluster/v2/_update-air-gap-cli.mdx"
+import UpdateAirGapOverview from "../../docs/partials/embedded-cluster/v2/_update-air-gap-overview.mdx"
+import DoNotDowngrade from "../../docs/partials/embedded-cluster/_warning-do-not-downgrade.mdx"
+import Overview from "../../docs/partials/embedded-cluster/v2/_update-overview.mdx"
# Perform updates in embedded clusters
-This topic describes how to perform updates for [Replicated Embedded Cluster](/vendor/embedded-overview) installations.
-
-:::note
-If you are instead looking for information about Replicated kURL, see [Perform Updates in kURL Clusters](updating-kurl).
-:::
+This topic describes how to perform updates for [Replicated Embedded Cluster](embedded-overview) installations.
## Overview
diff --git a/embedded-cluster_versioned_sidebars/version-2.0.0-sidebars.json b/embedded-cluster_versioned_sidebars/version-2.0.0-sidebars.json
new file mode 100644
index 0000000000..79bcb0084a
--- /dev/null
+++ b/embedded-cluster_versioned_sidebars/version-2.0.0-sidebars.json
@@ -0,0 +1,40 @@
+{
+ "embeddedClusterSidebar": [
+ "embedded-overview",
+ "embedded-using",
+ "embedded-config",
+ {
+ "type": "category",
+ "label": "Install with Embedded Cluster",
+ "items": [
+ "installing-embedded-requirements",
+ "installing-embedded",
+ "installing-embedded-air-gap",
+ "installing-embedded-automation"
+ ]
+ },
+ "embedded-manage-nodes",
+ "updating-embedded",
+ "embedded-troubleshooting",
+ "embedded-tls-certs",
+ "embedded-disaster-recovery",
+ {
+ "type": "category",
+ "label": "Embedded Cluster Commands",
+ "items": [
+ "embedded-cluster-admin-console",
+ "embedded-cluster-completion",
+ "embedded-cluster-enable-ha",
+ "embedded-cluster-install",
+ "embedded-cluster-join",
+ "embedded-cluster-join-print-command",
+ "embedded-cluster-reset",
+ "embedded-cluster-restore",
+ "embedded-cluster-shell",
+ "embedded-cluster-support-bundle",
+ "embedded-cluster-update",
+ "embedded-cluster-version"
+ ]
+ }
+ ]
+}
diff --git a/embedded-cluster_versions.json b/embedded-cluster_versions.json
new file mode 100644
index 0000000000..ca7ffcdaa9
--- /dev/null
+++ b/embedded-cluster_versions.json
@@ -0,0 +1,3 @@
+[
+ "2.0.0"
+]
\ No newline at end of file
diff --git a/netlify.toml b/netlify.toml
index 20b689f1b8..7fd5166f1d 100644
--- a/netlify.toml
+++ b/netlify.toml
@@ -15,6 +15,11 @@
#to = "TO_URL"
# For more information, see https://docs.netlify.com/configure-builds/file-based-configuration/#redirects
+#
+# Use path-only `from` and `to` values (starting with `/`, not
+# `https://docs.replicated.com/...`) so redirects run on production, branch
+# deploys, and Deploy Previews. Host-specific `from` URLs only match that exact
+# hostname.
###################################################
# High-Level Redirects
@@ -27,245 +32,482 @@
#to = "/blog/:splat"
# See https://docs.netlify.com/configure-builds/file-based-configuration/#redirects
- from = "https://docs.replicated.com/vendor"
- to = "https://docs.replicated.com/"
+ from = "/vendor"
+ to = "/"
[[redirects]]
- from = "https://docs.replicated.com/enterprise"
- to = "https://docs.replicated.com/enterprise/installing-overview"
+ from = "/enterprise"
+ to = "/enterprise/installing-overview"
[[redirects]]
- from = "https://docs.replicated.com/reference"
- to = "https://docs.replicated.com/reference/kots-cli-getting-started"
+ from = "/reference"
+ to = "/reference/kots-cli-getting-started"
[[redirects]]
- from = "https://docs.replicated.com/release-notes"
- to = "https://docs.replicated.com/release-notes/rn-whats-new"
+ from = "/release-notes"
+ to = "/release-notes/rn-whats-new"
+###################################################
+# Embedded Cluster docs (moved to /embedded-cluster plugin)
+#
+# Default version is v3. Pages that exist only in v2 use /embedded-cluster/v2/...
+# Note: URL fragments (#anchors) are not sent to the server; old deep links may
+# land on the new page without the intended heading anchor.
+###################################################
+
+# bare plugin path → current Embedded Cluster docs (v3 landing page)
+
+[[redirects]]
+ from = "/embedded-cluster"
+ to = "/embedded-cluster/v3/embedded-overview"
+
+[[redirects]]
+ from = "/embedded-cluster/"
+ to = "/embedded-cluster/v3/embedded-overview"
+
+[[redirects]]
+ from = "/embedded-cluster/v3"
+ to = "/embedded-cluster/v3/embedded-overview"
+
+[[redirects]]
+ from = "/embedded-cluster/v3/"
+ to = "/embedded-cluster/v3/embedded-overview"
+
+# Unversioned /embedded-cluster/ → default Embedded Cluster version (v3).
+# Use these stable URLs in cross-docs links; when "latest" changes, update the
+# `to` paths below (or switch v3 → v4 in bulk). Keep this list in sync with
+# sidebarEmbeddedCluster.js doc IDs.
+#
+# Does not use a single /embedded-cluster/* wildcard so /embedded-cluster/v2/...
+# and /embedded-cluster/v3/... are never rewritten incorrectly.
+
+[[redirects]]
+ from = "/embedded-cluster/embedded-overview"
+ to = "/embedded-cluster/v3/embedded-overview"
+
+[[redirects]]
+ from = "/embedded-cluster/embedded-v3-migrate"
+ to = "/embedded-cluster/v3/embedded-v3-migrate"
+
+[[redirects]]
+ from = "/embedded-cluster/embedded-using"
+ to = "/embedded-cluster/v3/embedded-using"
+
+[[redirects]]
+ from = "/embedded-cluster/embedded-config"
+ to = "/embedded-cluster/v3/embedded-config"
+
+[[redirects]]
+ from = "/embedded-cluster/installing-embedded-requirements"
+ to = "/embedded-cluster/v3/installing-embedded-requirements"
+
+[[redirects]]
+ from = "/embedded-cluster/installing-embedded"
+ to = "/embedded-cluster/v3/installing-embedded"
+
+[[redirects]]
+ from = "/embedded-cluster/installing-embedded-air-gap"
+ to = "/embedded-cluster/v3/installing-embedded-air-gap"
+
+[[redirects]]
+ from = "/embedded-cluster/embedded-manage-nodes"
+ to = "/embedded-cluster/v3/embedded-manage-nodes"
+
+[[redirects]]
+ from = "/embedded-cluster/updating-embedded"
+ to = "/embedded-cluster/v3/updating-embedded"
+
+[[redirects]]
+ from = "/embedded-cluster/embedded-troubleshooting"
+ to = "/embedded-cluster/v3/embedded-troubleshooting"
+
+[[redirects]]
+ from = "/embedded-cluster/embedded-cluster-completion"
+ to = "/embedded-cluster/v3/embedded-cluster-completion"
+
+[[redirects]]
+ from = "/embedded-cluster/embedded-cluster-create-join-bundle"
+ to = "/embedded-cluster/v3/embedded-cluster-create-join-bundle"
+
+[[redirects]]
+ from = "/embedded-cluster/embedded-cluster-create-upgrade-bundle"
+ to = "/embedded-cluster/v3/embedded-cluster-create-upgrade-bundle"
+
+[[redirects]]
+ from = "/embedded-cluster/embedded-cluster-enable-ha"
+ to = "/embedded-cluster/v3/embedded-cluster-enable-ha"
+
+[[redirects]]
+ from = "/embedded-cluster/embedded-cluster-install"
+ to = "/embedded-cluster/v3/embedded-cluster-install"
+
+[[redirects]]
+ from = "/embedded-cluster/embedded-cluster-node-join"
+ to = "/embedded-cluster/v3/embedded-cluster-node-join"
+
+[[redirects]]
+ from = "/embedded-cluster/embedded-cluster-node-upgrade"
+ to = "/embedded-cluster/v3/embedded-cluster-node-upgrade"
+
+[[redirects]]
+ from = "/embedded-cluster/embedded-cluster-remove-node"
+ to = "/embedded-cluster/v3/embedded-cluster-remove-node"
+
+[[redirects]]
+ from = "/embedded-cluster/embedded-cluster-reset"
+ to = "/embedded-cluster/v3/embedded-cluster-reset"
+
+[[redirects]]
+ from = "/embedded-cluster/embedded-cluster-shell"
+ to = "/embedded-cluster/v3/embedded-cluster-shell"
+
+[[redirects]]
+ from = "/embedded-cluster/embedded-cluster-status"
+ to = "/embedded-cluster/v3/embedded-cluster-status"
+
+[[redirects]]
+ from = "/embedded-cluster/embedded-cluster-support-bundle"
+ to = "/embedded-cluster/v3/embedded-cluster-support-bundle"
+
+[[redirects]]
+ from = "/embedded-cluster/embedded-cluster-upgrade"
+ to = "/embedded-cluster/v3/embedded-cluster-upgrade"
+
+[[redirects]]
+ from = "/embedded-cluster/embedded-cluster-version"
+ to = "/embedded-cluster/v3/embedded-cluster-version"
+
+# Vendor (→ v3)
+[[redirects]]
+ from = "/vendor/embedded-overview"
+ to = "/embedded-cluster/v3/embedded-overview"
+
+[[redirects]]
+ from = "/vendor/embedded-using"
+ to = "/embedded-cluster/v3/embedded-using"
+
+[[redirects]]
+ from = "/vendor/embedded-troubleshooting"
+ to = "/embedded-cluster/v3/embedded-troubleshooting"
+
+# Vendor (→ v2 only)
+[[redirects]]
+ from = "/vendor/embedded-disaster-recovery"
+ to = "/embedded-cluster/v2/embedded-disaster-recovery"
+
+[[redirects]]
+ from = "/vendor/embedded-tls-certs"
+ to = "/embedded-cluster/v2/embedded-tls-certs"
+
+# Enterprise install / manage / update (→ v3)
+[[redirects]]
+ from = "/enterprise/installing-embedded"
+ to = "/embedded-cluster/v3/installing-embedded"
+
+[[redirects]]
+ from = "/enterprise/installing-embedded-air-gap"
+ to = "/embedded-cluster/v3/installing-embedded-air-gap"
+
+[[redirects]]
+ from = "/enterprise/installing-embedded-requirements"
+ to = "/embedded-cluster/v3/installing-embedded-requirements"
+
+[[redirects]]
+ from = "/enterprise/embedded-manage-nodes"
+ to = "/embedded-cluster/v3/embedded-manage-nodes"
+
+[[redirects]]
+ from = "/enterprise/updating-embedded"
+ to = "/embedded-cluster/v3/updating-embedded"
+
+# Enterprise (→ v2 only)
+[[redirects]]
+ from = "/enterprise/installing-embedded-automation"
+ to = "/embedded-cluster/v2/installing-embedded-automation"
+
+[[redirects]]
+ from = "/enterprise/embedded-tls-certs"
+ to = "/embedded-cluster/v2/embedded-tls-certs"
+
+# Reference (→ v3)
+[[redirects]]
+ from = "/reference/embedded-config"
+ to = "/embedded-cluster/v3/embedded-config"
+
+[[redirects]]
+ from = "/reference/embedded-cluster-install"
+ to = "/embedded-cluster/v3/embedded-cluster-install"
+
+[[redirects]]
+ from = "/reference/embedded-cluster-reset"
+ to = "/embedded-cluster/v3/embedded-cluster-reset"
+
+[[redirects]]
+ from = "/reference/embedded-cluster-shell"
+ to = "/embedded-cluster/v3/embedded-cluster-shell"
+
+[[redirects]]
+ from = "/reference/embedded-cluster-version"
+ to = "/embedded-cluster/v3/embedded-cluster-version"
+
+[[redirects]]
+ from = "/reference/embedded-cluster-support-bundle"
+ to = "/embedded-cluster/v3/embedded-cluster-support-bundle"
+
+[[redirects]]
+ from = "/reference/embedded-cluster-enable-ha"
+ to = "/embedded-cluster/v3/embedded-cluster-enable-ha"
+
+[[redirects]]
+ from = "/reference/embedded-cluster-completion"
+ to = "/embedded-cluster/v3/embedded-cluster-completion"
+
+# Reference: v3 renamed CLI topics (old slug → new doc)
+[[redirects]]
+ from = "/reference/embedded-cluster-update"
+ to = "/embedded-cluster/v3/embedded-cluster-upgrade"
+
+# Reference (→ v2 only)
+[[redirects]]
+ from = "/reference/embedded-cluster-join"
+ to = "/embedded-cluster/v2/embedded-cluster-join"
+
+[[redirects]]
+ from = "/reference/embedded-cluster-join-print-command"
+ to = "/embedded-cluster/v2/embedded-cluster-join-print-command"
+
+[[redirects]]
+ from = "/reference/embedded-cluster-restore"
+ to = "/embedded-cluster/v2/embedded-cluster-restore"
+
+[[redirects]]
+ from = "/reference/embedded-cluster-admin-console"
+ to = "/embedded-cluster/v2/embedded-cluster-admin-console"
+
###################################################
# Redirects To the Getting Started Section
###################################################
[[redirects]]
- from = "https://docs.replicated.com/vendor/tutorial-installing-with-existing-cluster"
- to = "https://docs.replicated.com/vendor/quick-start"
+ from = "/vendor/tutorial-installing-with-existing-cluster"
+ to = "/vendor/quick-start"
[[redirects]]
- from = "https://docs.replicated.com/vendor/tutorial-installing-with-cli"
- to = "https://docs.replicated.com/vendor/quick-start"
+ from = "/vendor/tutorial-installing-with-cli"
+ to = "/vendor/quick-start"
[[redirects]]
- from = "https://docs.replicated.com/vendor/tutorial-installing-without-existing-cluster"
- to = "https://docs.replicated.com/vendor/quick-start"
+ from = "/vendor/tutorial-installing-without-existing-cluster"
+ to = "/vendor/quick-start"
[[redirects]]
- from = "https://docs.replicated.com/vendor/helm-mapping-example"
- to = "https://docs.replicated.com/vendor/quick-start"
+ from = "/vendor/helm-mapping-example"
+ to = "/vendor/quick-start"
[[redirects]]
- from = "https://docs.replicated.com/vendor/releases-download-airgap-bundles"
- to = "https://docs.replicated.com/vendor/releases-share-download-portal"
+ from = "/vendor/releases-download-airgap-bundles"
+ to = "/vendor/releases-share-download-portal"
###################################################
# Redirects To the Vendor Section
###################################################
[[redirects]]
- from = "https://docs.replicated.com/vendor/helm-chart-components"
- to = "https://docs.replicated.com/vendor/packaging-include-resources"
+ from = "/vendor/helm-chart-components"
+ to = "/vendor/packaging-include-resources"
[[redirects]]
- from = "https://docs.replicated.com/vendor/helm-optional-charts"
- to = "https://docs.replicated.com/vendor/packaging-include-resources"
+ from = "/vendor/helm-optional-charts"
+ to = "/vendor/packaging-include-resources"
[[redirects]]
- from = "https://docs.replicated.com/vendor/packaging-custom-resources"
- to = "https://docs.replicated.com/vendor/releases-creating-releases"
+ from = "/vendor/packaging-custom-resources"
+ to = "/vendor/releases-creating-releases"
[[redirects]]
- from="https://docs.replicated.com/vendor/tutorial-ha-cluster-deploying"
- to="https://docs.replicated.com/enterprise/installing-embedded-cluster#install-with-ha-in-online-environments"
+ from="/vendor/tutorial-ha-cluster-deploying"
+ to="/embedded-cluster/v3/embedded-manage-nodes#create-ha"
[[redirects]]
- from="https://docs.replicated.com/vendor/tutorial-installing-air-gap-existing-cluster-gcp"
- to="https://docs.replicated.com/enterprise/installing-existing-cluster-airgapped"
+ from="/vendor/tutorial-installing-air-gap-existing-cluster-gcp"
+ to="/enterprise/installing-existing-cluster-airgapped"
[[redirects]]
- from="https://docs.replicated.com/vendor/releases-promoting"
- to="https://docs.replicated.com/vendor/releases-creating-releases"
+ from="/vendor/releases-promoting"
+ to="/vendor/releases-creating-releases"
[[redirects]]
- from="https://docs.replicated.com/vendor/packaging-private-registry-cname"
- to="https://docs.replicated.com/vendor/custom-domains"
+ from="/vendor/packaging-private-registry-cname"
+ to="/vendor/custom-domains"
[[redirects]]
- from="https://docs.replicated.com/vendor/releases-semantic-versioning"
- to="https://docs.replicated.com/vendor/releases-about"
+ from="/vendor/releases-semantic-versioning"
+ to="/vendor/releases-about"
[[redirects]]
- from="https://docs.replicated.com/vendor/helm-installing-native-helm"
- to="https://docs.replicated.com/vendor/helm-native-about"
+ from="/vendor/helm-installing-native-helm"
+ to="/vendor/helm-native-about"
[[redirects]]
- from="https://docs.replicated.com/vendor/helm-processing"
- to="https://docs.replicated.com/vendor/helm-native-about"
+ from="/vendor/helm-processing"
+ to="/vendor/helm-native-about"
[[redirects]]
- from="https://docs.replicated.com/vendor/team-management-rbac-about"
- to="https://docs.replicated.com/vendor/team-management-rbac-configuring"
+ from="/vendor/team-management-rbac-about"
+ to="/vendor/team-management-rbac-configuring"
[[redirects]]
- from="https://docs.replicated.com/vendor/preflight-support-bundle-creating"
- to="https://docs.replicated.com/vendor/preflight-support-bundle-about"
+ from="/vendor/preflight-support-bundle-creating"
+ to="/vendor/preflight-support-bundle-about"
[[redirects]]
- from="https://docs.replicated.com/vendor/custom-domains-download-portal"
- to="https://docs.replicated.com/vendor/custom-domains-using"
+ from="/vendor/custom-domains-download-portal"
+ to="/vendor/custom-domains-using"
[[redirects]]
- from="https://docs.replicated.com/vendor/helm-release-creating-package"
- to="https://docs.replicated.com/vendor/helm-install-release"
+ from="/vendor/helm-release-creating-package"
+ to="/vendor/helm-install-release"
[[redirects]]
- from="https://docs.replicated.com/vendor/helm-release"
- to="https://docs.replicated.com/vendor/helm-native-v2-using"
+ from="/vendor/helm-release"
+ to="/vendor/helm-native-v2-using"
[[redirects]]
- from="https://docs.replicated.com/vendor/helm-overview"
- to="https://docs.replicated.com/vendor/helm-install-overview"
+ from="/vendor/helm-overview"
+ to="/vendor/helm-install-overview"
[[redirects]]
- from="https://docs.replicated.com/vendor/helm-install"
- to="https://docs.replicated.com/vendor/helm-install-overview"
+ from="/vendor/helm-install"
+ to="/vendor/helm-install-overview"
[[redirects]]
- from="https://docs.replicated.com/vendor/testing-replicated-instance-types"
- to="https://docs.replicated.com/vendor/testing-supported-clusters"
+ from="/vendor/testing-replicated-instance-types"
+ to="/vendor/testing-supported-clusters"
[[redirects]]
- from="https://docs.replicated.com/vendor/testing-shared-networks"
- to="https://docs.replicated.com/vendor/testing-how-to"
+ from="/vendor/testing-shared-networks"
+ to="/vendor/testing-how-to"
[[redirects]]
- from="https://docs.replicated.com/vendor/testing-vm-about"
- to="https://docs.replicated.com/vendor/testing-about"
+ from="/vendor/testing-vm-about"
+ to="/vendor/testing-about"
[[redirects]]
- from="https://docs.replicated.com/vendor/testing-vm-networking"
- to="https://docs.replicated.com/vendor/testing-ingress"
+ from="/vendor/testing-vm-networking"
+ to="/vendor/testing-ingress"
[[redirects]]
- from="https://docs.replicated.com/vendor/testing-transfer-files"
- to="https://docs.replicated.com/vendor/testing-vm-create"
+ from="/vendor/testing-transfer-files"
+ to="/vendor/testing-vm-create"
[[redirects]]
- from="https://docs.replicated.com/vendor/repository-workflow-and-tagging-releases"
- to="https://docs.replicated.com/vendor/ci-workflows"
+ from="/vendor/repository-workflow-and-tagging-releases"
+ to="/vendor/ci-workflows"
[[redirects]]
- from="https://docs.replicated.com/vendor/releases-about-channels"
- to="https://docs.replicated.com/vendor/releases-about"
+ from="/vendor/releases-about-channels"
+ to="/vendor/releases-about"
[[redirects]]
- from="https://docs.replicated.com/vendor/replicated-sdk-rbac"
- to="https://docs.replicated.com/vendor/replicated-sdk-customizing"
+ from="/vendor/replicated-sdk-rbac"
+ to="/vendor/replicated-sdk-customizing"
[[redirects]]
- from="https://docs.replicated.com/vendor/helm-kots-using-sdk"
- to="https://docs.replicated.com/vendor/helm-native-about"
+ from="/vendor/helm-kots-using-sdk"
+ to="/vendor/helm-native-about"
[[redirects]]
- from="https://docs.replicated.com/vendor/helm-native-helm-install-order"
- to="https://docs.replicated.com/vendor/orchestrating-resource-deployment"
+ from="/vendor/helm-native-helm-install-order"
+ to="/vendor/orchestrating-resource-deployment"
[[redirects]]
- from="https://docs.replicated.com/vendor/preflight-kots-defining"
- to="https://docs.replicated.com/vendor/preflight-defining"
+ from="/vendor/preflight-kots-defining"
+ to="/vendor/preflight-defining"
[[redirects]]
- from="https://docs.replicated.com/vendor/preflight-helm-defining"
- to="https://docs.replicated.com/vendor/preflight-defining"
+ from="/vendor/preflight-helm-defining"
+ to="/vendor/preflight-defining"
[[redirects]]
- from="https://docs.replicated.com/vendor/support-bundle-kots-customizing"
- to="https://docs.replicated.com/vendor/support-bundle-customizing"
+ from="/vendor/support-bundle-kots-customizing"
+ to="/vendor/support-bundle-customizing"
[[redirects]]
- from="https://docs.replicated.com/vendor/support-bundle-helm-customizing"
- to="https://docs.replicated.com/vendor/support-bundle-customizing"
+ from="/vendor/support-bundle-helm-customizing"
+ to="/vendor/support-bundle-customizing"
[[redirects]]
- from="https://docs.replicated.com/vendor/distributing-overview"
- to="https://docs.replicated.com/intro-replicated"
+ from="/vendor/distributing-overview"
+ to="/intro-replicated"
[[redirects]]
- from="https://docs.replicated.com/vendor/distributing-workflow"
- to="https://docs.replicated.com/vendor/replicated-onboarding"
+ from="/vendor/distributing-workflow"
+ to="/vendor/replicated-onboarding"
[[redirects]]
- from = "https://docs.replicated.com/vendor/tutorial-ci-cd-integration"
- to = "https://docs.replicated.com/vendor/ci-overview"
+ from = "/vendor/tutorial-ci-cd-integration"
+ to = "/vendor/ci-overview"
[[redirects]]
- from = "https://docs.replicated.com/vendor/embedded-kubernetes-overview"
- to = "https://docs.replicated.com/vendor/embedded-overview"
+ from = "/vendor/embedded-kubernetes-overview"
+ to = "/embedded-cluster/v3/embedded-overview"
###################################################
# Redirects To the Enterprise Section
###################################################
[[redirects]]
- from="https://docs.replicated.com/enterprise/updating-existing-cluster"
- to="https://docs.replicated.com/enterprise/updating-app-manager"
+ from="/enterprise/updating-existing-cluster"
+ to="/enterprise/updating-app-manager"
[[redirects]]
- from="https://docs.replicated.com/enterprise/snapshots-restoring-partial"
- to="https://docs.replicated.com/enterprise/snapshots-restoring-full"
+ from="/enterprise/snapshots-restoring-partial"
+ to="/enterprise/snapshots-restoring-full"
[[redirects]]
- from="https://docs.replicated.com/enterprise/snapshots-scheduling"
- to="https://docs.replicated.com/enterprise/snapshots-creating"
+ from="/enterprise/snapshots-scheduling"
+ to="/enterprise/snapshots-creating"
[[redirects]]
- from="https://docs.replicated.com/enterprise//snapshots-config-workflow"
- to="https://docs.replicated.com/enterprise/snapshots-velero-cli-installing"
+ from="/enterprise//snapshots-config-workflow"
+ to="/enterprise/snapshots-velero-cli-installing"
[[redirects]]
- from="https://docs.replicated.com/enterprise/image-registry-airgap"
- to="https://docs.replicated.com/enterprise/installing-general-requirements"
+ from="/enterprise/image-registry-airgap"
+ to="/enterprise/installing-general-requirements"
[[redirects]]
- from="https://docs.replicated.com/enterprise/installing-app-setup"
- to="https://docs.replicated.com/enterprise/installing-existing-cluster#install-app"
+ from="/enterprise/installing-app-setup"
+ to="/enterprise/installing-existing-cluster#install-app"
[[redirects]]
- from="https://docs.replicated.com/enterprise/installing-embedded-airgapped"
- to="https://docs.replicated.com/enterprise/installing-kurl-airgap"
+ from="/enterprise/installing-embedded-airgapped"
+ to="/embedded-cluster/v3/installing-embedded-air-gap"
[[redirects]]
- from="https://docs.replicated.com/enterprise/installing-embedded-cluster"
- to="https://docs.replicated.com/enterprise/installing-kurl"
+ from="/enterprise/installing-embedded-cluster"
+ to="/enterprise/installing-kurl"
[[redirects]]
- from="https://docs.replicated.com/enterprise/updating-embedded-cluster"
- to="https://docs.replicated.com/enterprise/updating-kurl"
+ from="/enterprise/updating-embedded-cluster"
+ to="/embedded-cluster/v3/updating-embedded"
[[redirects]]
- from="https://docs.replicated.com/enterprise/image-registry-embedded-cluster"
- to="https://docs.replicated.com/enterprise/image-registry-kurl"
+ from="/enterprise/image-registry-embedded-cluster"
+ to="/enterprise/image-registry-kurl"
[[redirects]]
- from="https://docs.replicated.com/vendor/releases-configvalues"
- to="https://docs.replicated.com/enterprise/installing-embedded-automation"
+ from="/vendor/releases-configvalues"
+ to="/reference/custom-resource-configvalues"
[[redirects]]
- from="https://docs.replicated.com/enterprise/snapshots-understanding"
- to="https://docs.replicated.com/vendor/snapshots-overview"
+ from="/enterprise/snapshots-understanding"
+ to="/vendor/snapshots-overview"
###################################################
# Redirects To the References Section
@@ -273,30 +515,30 @@
# Redirects from the removed packaging-template-functions topic
[[redirects]]
- from="https://docs.replicated.com/vendor/packaging-template-functions"
- to= "https://docs.replicated.com/reference/template-functions-about"
+ from="/vendor/packaging-template-functions"
+ to= "/reference/template-functions-about"
# Redirects from the old topic name KOTS Lint Rules to the new topic name Lint Rules
[[redirects]]
- from="https://docs.replicated.com/reference/kots-lint"
- to="https://docs.replicated.com/reference/linter"
+ from="/reference/kots-lint"
+ to="/reference/linter"
# Redirects from the reference section to the teams section for generating API tokens
[[redirects]]
- from="https://docs.replicated.com/reference/replicated-cli-tokens"
- to="https://docs.replicated.com/vendor/replicated-api-tokens"
+ from="/reference/replicated-cli-tokens"
+ to="/vendor/replicated-api-tokens"
[[redirects]]
- from="https://docs.replicated.com/reference/custom-resource-sig-application"
- to="https://docs.replicated.com/vendor/admin-console-adding-buttons-links"
+ from="/reference/custom-resource-sig-application"
+ to="/vendor/admin-console-adding-buttons-links"
[[redirects]]
- from="https://docs.replicated.com/reference/replicated-cli-app-delete"
- to="https://docs.replicated.com/reference/replicated-cli-app-rm"
+ from="/reference/replicated-cli-app-delete"
+ to="/reference/replicated-cli-app-rm"
[[redirects]]
- from="https://docs.replicated.com/reference/replicated-cli-channel-delete"
- to="https://docs.replicated.com/reference/replicated-cli-channel-rm"
+ from="/reference/replicated-cli-channel-delete"
+ to="/reference/replicated-cli-channel-rm"
###################################################
# Redirects To the Release Notes Section
diff --git a/scripts/fix-installer-links.js b/scripts/fix-installer-links.js
new file mode 100644
index 0000000000..9fdb6f0aec
--- /dev/null
+++ b/scripts/fix-installer-links.js
@@ -0,0 +1,123 @@
+#!/usr/bin/env node
+/**
+ * Fix broken links that point to docs which were moved to the installer docs instance.
+ *
+ * Mappings: old path prefix → new doc id (under /installer/{version}/)
+ * - /vendor/embedded-* and /enterprise/embedded-* and /enterprise/installing-embedded*
+ * and /enterprise/updating-embedded and /reference/embedded-*
+ *
+ * Skips: release-notes (per user request)
+ *
+ * Usage: node scripts/fix-installer-links.js [--dry-run]
+ * --dry-run Log changes without writing files
+ */
+
+const fs = require('fs');
+const path = require('path');
+
+const DRY_RUN = process.argv.includes('--dry-run');
+const ROOT = path.resolve(__dirname, '..');
+
+// Old path (without leading slash) → new doc id in installer
+const MAPPINGS = [
+ ['vendor/embedded-overview', 'embedded-overview'],
+ ['vendor/embedded-disaster-recovery', 'embedded-disaster-recovery'],
+ ['vendor/embedded-troubleshooting', 'embedded-troubleshooting'],
+ ['vendor/embedded-using', 'embedded-using'],
+ ['enterprise/installing-embedded', 'installing-embedded'],
+ ['enterprise/installing-embedded-air-gap', 'installing-embedded-air-gap'],
+ ['enterprise/installing-embedded-automation', 'installing-embedded-automation'],
+ ['enterprise/installing-embedded-requirements', 'installing-embedded-requirements'],
+ ['enterprise/embedded-manage-nodes', 'embedded-manage-nodes'],
+ ['enterprise/updating-embedded', 'updating-embedded'],
+ ['reference/embedded-config', 'embedded-config'],
+ ['reference/embedded-cluster-install', 'embedded-cluster-install'],
+ ['reference/embedded-cluster-reset', 'embedded-cluster-reset'],
+];
+
+function getAllDocFiles(dir, files = []) {
+ if (!fs.existsSync(dir)) return files;
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
+ for (const e of entries) {
+ const full = path.join(dir, e.name);
+ if (e.isDirectory()) {
+ if (e.name === 'release-notes') continue; // skip release notes
+ if (e.name === '.history') continue; // skip local history
+ getAllDocFiles(full, files);
+ } else if (/\.(md|mdx)$/i.test(e.name)) {
+ files.push(full);
+ }
+ }
+ return files;
+}
+
+function getVersionForFile(filePath) {
+ // All installer doc content lives under v2; v3 is placeholder-only. Use v2 so links resolve.
+ return 'v2';
+}
+
+function fixContent(content, version) {
+ let updated = content;
+ let changeCount = 0;
+
+ for (const [oldPath, newDocId] of MAPPINGS) {
+ // Match: optional leading /, oldPath, optional .md or .mdx, optional #anchor
+ // Capture hash so we can preserve it
+ const escaped = oldPath.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
+ const regex = new RegExp(
+ `(/?)(?:${escaped})(\\.mdx?)?(#[^)\\s"'\\]]*)?`,
+ 'gi'
+ );
+
+ const newPath = `/installer/${version}/${newDocId}`;
+ updated = updated.replace(regex, (match, slash, ext, hash) => {
+ changeCount++;
+ return newPath + (hash || '');
+ });
+ }
+
+ return { content: updated, changeCount };
+}
+
+function main() {
+ const docsDir = path.join(ROOT, 'docs');
+ const installerDir = path.join(ROOT, 'installer');
+ const versionedDir = path.join(ROOT, 'installer_versioned_docs');
+
+ const files = [
+ ...getAllDocFiles(docsDir),
+ ...getAllDocFiles(installerDir),
+ ...getAllDocFiles(versionedDir),
+ ];
+
+ console.log(`Found ${files.length} doc files (excluding release-notes).`);
+ if (DRY_RUN) console.log('DRY RUN - no files will be modified.\n');
+
+ let totalReplacements = 0;
+ let filesModified = 0;
+
+ for (const file of files) {
+ const content = fs.readFileSync(file, 'utf8');
+ const version = getVersionForFile(file);
+ const { content: updated, changeCount } = fixContent(content, version);
+
+ if (changeCount > 0) {
+ const rel = path.relative(ROOT, file);
+ console.log(`${rel} (version=${version}): ${changeCount} link(s) updated`);
+ totalReplacements += changeCount;
+ filesModified++;
+ if (!DRY_RUN) {
+ fs.writeFileSync(file, updated, 'utf8');
+ }
+ }
+ }
+
+ console.log('\n---');
+ console.log(`Files with changes: ${filesModified}`);
+ console.log(`Total link replacements: ${totalReplacements}`);
+ if (DRY_RUN && totalReplacements > 0) {
+ console.log('\nRun without --dry-run to apply changes.');
+ }
+}
+
+main();
diff --git a/sidebarEmbeddedCluster.js b/sidebarEmbeddedCluster.js
new file mode 100644
index 0000000000..11bea866dc
--- /dev/null
+++ b/sidebarEmbeddedCluster.js
@@ -0,0 +1,41 @@
+module.exports = {
+ embeddedClusterSidebar: [
+ "embedded-overview",
+ "embedded-v3-migrate",
+ "embedded-using",
+ "embedded-config",
+ {
+
+ type: "category",
+ label: "Install with Embedded Cluster",
+ items: [
+ "installing-embedded-requirements",
+ "installing-embedded",
+ "installing-embedded-air-gap",
+ ]
+ },
+ "embedded-manage-nodes",
+ "updating-embedded",
+ "embedded-troubleshooting",
+ {
+ type: "category",
+ label: "Embedded Cluster Commands",
+ items: [
+ "embedded-cluster-completion",
+ "embedded-cluster-create-join-bundle",
+ "embedded-cluster-create-upgrade-bundle",
+ "embedded-cluster-enable-ha",
+ "embedded-cluster-install",
+ "embedded-cluster-node-join",
+ "embedded-cluster-node-upgrade",
+ "embedded-cluster-remove-node",
+ "embedded-cluster-reset",
+ "embedded-cluster-shell",
+ "embedded-cluster-status",
+ "embedded-cluster-support-bundle",
+ "embedded-cluster-upgrade",
+ "embedded-cluster-version",
+ ],
+ },
+ ],
+};
diff --git a/sidebars.js b/sidebars.js
index 9932e5c4c9..0b91f85d9a 100644
--- a/sidebars.js
+++ b/sidebars.js
@@ -60,35 +60,44 @@ const sidebars = {
},
{
type: "category",
- label: "Labs",
+ label: "Add Replicated to CI/CD Workflows",
items: [
- {
- type: "link",
- href: "https://play.instruqt.com/embed/replicated/tracks/distributing-with-replicated?token=em_VHOEfNnBgU3auAnN",
- label: "Distributing Your Application with Replicated",
- },
- {
- type: "link",
- href: "https://play.instruqt.com/embed/replicated/tracks/delivering-as-an-appliance?token=em_lUZdcv0LrF6alIa3",
- label: "Delivering Your Application as a Kubernetes Appliance",
- },
- {
- type: "link",
- href: "https://play.instruqt.com/embed/replicated/tracks/avoiding-installation-pitfalls?token=em_gJjtIzzTTtdd5RFG",
- label: "Avoiding Installation Pitfalls",
- },
- {
- type: "link",
- href: "https://play.instruqt.com/embed/replicated/tracks/closing-information-gap?token=em_MO2XXCz3bAgwtEca",
- label: "Closing the Support Information Gap",
- },
- {
- type: "link",
- href: "https://play.instruqt.com/embed/replicated/tracks/protecting-your-assets?token=em_7QjY34G_UHKoREBd",
- label: "Protecting Your Assets",
- },
+ "vendor/ci-overview",
+ "vendor/ci-workflows",
+ "vendor/ci-workflows-github-actions",
],
},
+ // {
+ // type: "category",
+ // label: "Labs",
+ // items: [
+ // {
+ // type: "link",
+ // href: "https://play.instruqt.com/embed/replicated/tracks/distributing-with-replicated?token=em_VHOEfNnBgU3auAnN",
+ // label: "Distributing Your Application with Replicated",
+ // },
+ // {
+ // type: "link",
+ // href: "https://play.instruqt.com/embed/replicated/tracks/delivering-as-an-appliance?token=em_lUZdcv0LrF6alIa3",
+ // label: "Delivering Your Application as a Kubernetes Appliance",
+ // },
+ // {
+ // type: "link",
+ // href: "https://play.instruqt.com/embed/replicated/tracks/avoiding-installation-pitfalls?token=em_gJjtIzzTTtdd5RFG",
+ // label: "Avoiding Installation Pitfalls",
+ // },
+ // {
+ // type: "link",
+ // href: "https://play.instruqt.com/embed/replicated/tracks/closing-information-gap?token=em_MO2XXCz3bAgwtEca",
+ // label: "Closing the Support Information Gap",
+ // },
+ // {
+ // type: "link",
+ // href: "https://play.instruqt.com/embed/replicated/tracks/protecting-your-assets?token=em_7QjY34G_UHKoREBd",
+ // label: "Protecting Your Assets",
+ // },
+ // ],
+ // },
// PRODUCT DOCS
{ type: "html", value: "