diff --git a/docs/vendor/helm-native-about.mdx b/docs/vendor/helm-native-about.mdx index 8a5502663d..171bf60dbb 100644 --- a/docs/vendor/helm-native-about.mdx +++ b/docs/vendor/helm-native-about.mdx @@ -109,7 +109,51 @@ When installing an application that includes one or more Helm charts, KOTS alway For information about how to set the deployment order for Helm charts with KOTS, see [Orchestrate Resource Deployment](/vendor/orchestrating-resource-deployment). -## Deprecated HelmChart kots.io/v1beta1 Installation Methods +## Comparison to HelmChart v1 + +### HelmChart v1 and v2 Differences + +To support the use of local registries with version `kots.io/v1beta2` of the HelmChart custom resource, provide the necessary values in the builder field to render the Helm chart with all of the necessary images so that KOTS knows where to pull the images from to push them into the local registry. + +For more information about how to configure the `builder` key, see [Packaging Air Gap Bundles for Helm Charts](/vendor/helm-packaging-airgap-bundles) and [`builder`](/reference/custom-resource-helmchart-v2#builder) in _HelmChart v2_. + +The `kots.io/v1beta2` HelmChart custom resource has the following differences from `kots.io/v1beta1`: + +
HelmChart v1beta2 | +HelmChart v1beta1 | +Description | +
---|---|---|
apiVersion: kots.io/v1beta2 |
+ apiVersion: kots.io/v1beta1 |
+ apiVersion is updated to kots.io/v1beta2 |
+
releaseName |
+ chart.releaseName |
+ releaseName is a top level field under spec |
+
N/A | +helmVersion |
+ helmVersion field is removed |
+
N/A | +useHelmInstall |
+ useHelmInstall field is removed |
+
HelmChart v1beta2 | -HelmChart v1beta1 | -Description | -
---|---|---|
apiVersion: kots.io/v1beta2 |
- apiVersion: kots.io/v1beta1 |
- apiVersion is updated to kots.io/v1beta2 |
-
releaseName |
- chart.releaseName |
- releaseName is a top level field under spec |
-
N/A | -helmVersion |
- helmVersion field is removed |
-
N/A | -useHelmInstall |
- useHelmInstall field is removed |
-
The registry namespace is the path between the registry and the image name. For example, `images.yourcompany.com/namespace/image:tag`.
+During application deployment, KOTS automatically creates an `imagePullSecret` with `type: kubernetes.io/dockerconfigjson` that is based on the customer license. This secret is used to authenticate with the proxy registry and grant proxy access to private images.
+For information about how Kubernetes uses the `kubernetes.io/dockerconfigjson` Secret type to authenticate to a private image registry, see [Pull an Image from a Private Registry](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) in the Kubernetes documentation.
+For applications packaged with the [HelmChart v1](/reference/custom-resource-helmchart) custom resource or with standard Kubernetes manifests, KOTS automatically patches image names to the location of the image at `proxy.replicated.com` or your custom domain during deployment. If KOTS receives a 401 response when attempting to load image manifests using the image reference from the PodSpec, it assumes that this is a private image that must be proxied through the proxy registry.
+KOTS uses Kustomize to patch the `midstream/kustomization.yaml` file to change the image name during deployment to reference the proxy registry. For example, a PodSpec for a Deployment references a private image hosted at `quay.io/my-org/api:v1.0.1`:
```yaml apiVersion: apps/v1 @@ -35,9 +122,9 @@ spec: image: quay.io/my-org/api:v1.0.1 ``` -When this application is deployed, KOTS detects that it cannot access +When this application is deployed, KOTS detects that it cannot access the image at quay.io. So, it creates a patch in the `midstream/kustomization.yaml` -file that changes the image name in all manifest files for the application. This causes the container runtime in the cluster to use the proxy registry to pull the images, using the license information provided to KOTS for authentication. +file that changes the image name in all manifest files for the application. This causes the container runtime in the cluster to use the proxy registry to pull the images, using the license information provided to KOTS for authentication.
```yaml apiVersion: kustomize.config.k8s.io/v1beta1 @@ -47,29 +134,16 @@ images: - name: quay.io/my-org/api:v1.0.1 newName: proxy.replicated.com/proxy/my-kots-app/quay.io/my-org/api ``` +