|
1 | | -import HelmDiagramOverview from "../partials/helm/_helm-diagram-overview.mdx" |
| 1 | +import Prerequisites from "../partials/helm/_helm-install-prereqs.mdx" |
2 | 2 |
|
3 | 3 | # Installing with Helm |
4 | 4 |
|
5 | 5 | This topic describes how to use Helm to install releases that contain one or more Helm charts. For more information about the `helm install` command, including how to override values in a chart during installation, see [Helm Install](https://helm.sh/docs/helm/helm_install/) in the Helm documentation. |
6 | 6 |
|
7 | | -## Overview |
8 | | - |
9 | | -The following diagram shows how Helm charts distributed with Replicated are installed with Helm in customer environments: |
10 | | - |
11 | | -<img src="/images/helm-install-diagram.png" alt="diagram of a helm chart in a custom environment" width="700px"/> |
12 | | - |
13 | | -[View a larger version of this image](/images/helm-install-diagram.png) |
14 | | - |
15 | | -<HelmDiagramOverview/> |
16 | | - |
17 | | -### Replicated Helm Values |
18 | | - |
19 | | -When a customer installs your Helm chart from the Replicated registry, the Replicated registry injects values into the `global.replicated` field of the Helm chart values file. |
20 | | - |
21 | | -The following is an example of a Helm values file containing the `global.replicated` field injected by the Replicated registry: |
22 | | - |
23 | | -```yaml |
24 | | -# Helm values.yaml |
25 | | -global: |
26 | | - replicated: |
27 | | - channelName: Stable |
28 | | - |
29 | | - customerName: Example Customer |
30 | | - dockerconfigjson: eyJhdXRocyI6eyJd1dIRk5NbEZFVGsxd2JGUmFhWGxYWm5scloyNVRSV1pPT2pKT2NGaHhUVEpSUkU1... |
31 | | - licenseFields: |
32 | | - expires_at: |
33 | | - description: License Expiration |
34 | | - name: expires_at |
35 | | - signature: |
36 | | - v1: iZBpESXx7fpdtnbMKingYHiJH42rP8fPs0x8izy1mODckGBwVoA... |
37 | | - title: Expiration |
38 | | - value: "2023-05-30T00:00:00Z" |
39 | | - valueType: String |
40 | | - licenseID: YiIXRTjiB7R... |
41 | | - licenseType: dev |
42 | | -``` |
43 | | -
|
44 | | -The values in the `global.replicated` field provide information about the following: |
45 | | -* Details about the fields in the customer's license, such as the field name, description, signature, value, and any custom license fields that you define. You can use this license information to check license entitlments before the application is installed. For more information, see [Checking Entitlements in Helm Charts Before Deployment](/vendor/licenses-reference-helm). |
46 | | -* A base64 encoded Docker configuration file. To proxy images from an external private registry with the Replicated proxy registry, you can use the `global.replicated.dockerconfigjson` field to create an image pull secret for the proxy registry. For more information, see [Proxying Images for Helm Installations](/vendor/helm-image-registry). |
47 | | - |
48 | | -### Limitations |
49 | | - |
50 | | -Helm CLI installations do not provide access to any of the features of the Replicated KOTS installer, such as: |
51 | | -* Air gap bundles for installations into air gapped environments |
52 | | -* The KOTS Admin Console |
53 | | -* Strict preflight checks that block installation |
54 | | -* Backup and restore with snapshots |
55 | | -* Required releases with the **Prevent this release from being skipped during upgrades** option |
56 | | - |
57 | 7 | ## Prerequisites |
58 | 8 |
|
59 | 9 | Before you install, complete the following prerequisites: |
60 | 10 |
|
61 | | -* You must have a customer in the Replicated Vendor Portal with a valid email address. This email address is only used as a username for the Replicated registry and is never contacted. For more information about creating and editing customers in the Vendor Portal, see [Creating a Customer](/vendor/releases-creating-customer). |
62 | | -* (Recommended) To install the Replicated SDK alongside the application, declare the SDK as a dependency. For more information, see [Install the SDK as a Subchart](replicated-sdk-installing#install-the-sdk-as-a-subchart) in _Installing the Replicated SDK_. |
| 11 | +<Prerequisites/> |
63 | 12 |
|
64 | 13 | ## Install |
65 | 14 |
|
@@ -110,40 +59,4 @@ To install a Helm chart: |
110 | 59 | **Example**: |
111 | 60 |
|
112 | 61 |  |
113 | | - [View a larger version of this image](/images/sdk-customer-active-example.png) |
114 | | - |
115 | | - |
116 | | -## Helm installs for Airgap Environments (Alpha) |
117 | | -Replicated supports installing and updating Helm charts in Airgapped environments and guiding end customers through the process with the [Download Portal](/vendor/releases-share-download-portal). Please ask your account rep to enable this feature if you're interested in trying it and providing feedback. |
118 | | - |
119 | | -When this feature is enabled, a new option will be displayed for the Download Portal on the left nav, that when selected, will display 3 tabs (Install, Manual Update, Automate Updates): |
120 | | - |
121 | | - |
122 | | -Each of these instruction sets assumes that your customer is accessing the Download Portal from a workstation that can access the internet and their internal private registry. Direct access to the target cluster is not required. Each method assumes that your customer is familiar with `curl`, `docker`, `helm`, `kubernetes`, and a bit of `bash`, particularly for automate. |
123 | | - |
124 | | -### Install |
125 | | -The install instructions are designed to walk your customer through the first installation of your chart in a disconnected environment. |
126 | | -They'll be presented with credentials (the license_id) to authenticate into the proxy registry that Replicated manages for you. |
127 | | -From there, we present them with the full list of images and the corresponding `docker` `pull`, `tag`, and `push` commands for each. |
128 | | -If they've provided their registry URI, we pre-configure the commands, else they'll need to manually replace the image names in the `tag` and `push` commands. |
129 | | -Next they'll authenticate into the OCI registry that contains your Helm chart, and then install the `preflight` plugin. |
130 | | -In the next steps, they'll get your default `values.yaml` and edit it to meet their environment's configuration needs. |
131 | | -We recommend that your accompanying documentation include detailed instructions on what values they need to configure. |
132 | | -Finally, your customer will specify how they access their cluster and then use the corresponding commands and their edited `values.yaml` to run the Preflight Checks and install the chart. |
133 | | - |
134 | | -### Manual Updates |
135 | | -The manual update instructions follow closely with the install instructions. |
136 | | -However, the first step prompts the customer to select their current version and target version to install. |
137 | | -This step takes [required releases](/vendor/releases-about#properties) into consideration, thereby guiding the customer to the versions that are upgradable from their current version. |
138 | | -The additional steps are very consistent with install process until the `preflight` and `install` commands where we need to get the existing values from the cluster with the `helm get values` and `--reuse-values` commands. |
139 | | -Should you introduce new images, or other values, you should call this out at the top of your release notes so that customers know they will need to make additional edits to the `values.yaml` before installing. |
140 | | - |
141 | | -### Automate Updates |
142 | | -The automate update instructions rely on a few new API endpoints that your customers can automate against. |
143 | | -We provide each customer with example commands that can be put into a script that they run periodically (i.e. nightly, weekly) via GitHub Actions, Jenkins etc. |
144 | | -This method assumes that the customer has already done a successful manual installation, including the configuration the appropriate `values`. |
145 | | - |
146 | | -After logging into the registry, we have the customer export their current version and use that to query an endpoint that provides the latest installable version number (either the next required release, or the latest release) and export it as the target version. |
147 | | -With the target version, they can now query an API for the list of images. |
148 | | -With this list of images the provided `bash` script will automate the process of pulling updated images from the repository, tagging them with a name for an internal registry, and then pushing the newly tagged images to their internal registry. |
149 | | -With the assumption that the customer has set up the `values` to preserve the updated tag, they should now be able to login to the OCI registry and perform the commands to install the updated chart. |
| 62 | + [View a larger version of this image](/images/sdk-customer-active-example.png) |
0 commit comments