Skip to content

Commit

Permalink
Merge branch 'main' into automation/vendor-portal-release-notes-v2024…
Browse files Browse the repository at this point in the history
….05.03-1
  • Loading branch information
paigecalvert committed May 6, 2024
2 parents e9517ae + bc6781c commit 752b3c9
Show file tree
Hide file tree
Showing 14 changed files with 199 additions and 44 deletions.
1 change: 1 addition & 0 deletions docs/partials/airgap/_airgap-bundle.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Air gap bundles (`.airgap`) contain the images needed to install and run a single release of your application in _air gap_ environments with no outbound internet access. For more information about how to build and download air gap bundles, see [Downloading Air Gap Bundles](/vendor/releases-download-airgap-bundles).
2 changes: 1 addition & 1 deletion docs/partials/helm/_helm-builder-requirements.mdx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
The `builder` key has the following requirements and recommendations:
* Replicated recommends that you include only the minimum Helm values in the `builder` key that are required to template the Helm chart with the correct image tags.
* Use only static, or _hardcoded_, values in the `builder` key. You cannot use template functions in the `builder` key because values in the `builder` key are not rendered in a customer environment.
* Any Helm values entries that are required for rendering Helm chart templates must have a value supplied in the `builder` key. For more information about the Helm `required` function, see [Using the 'required' function](https://helm.sh/docs/howto/charts_tips_and_tricks/#using-the-required-function) in the Helm documentation.
* Any Helm values that are required for rendering Helm chart templates must have a value supplied in the `builder` key. For more information about the Helm `required` function, see [Using the 'required' function](https://helm.sh/docs/howto/charts_tips_and_tricks/#using-the-required-function) in the Helm documentation.
2 changes: 1 addition & 1 deletion docs/partials/helm/_helm-cr-builder-airgap-intro.mdx
Original file line number Diff line number Diff line change
@@ -1 +1 @@
To create an `.airgap` bundle for a release that uses Helm charts, the Replicated vendor portal renders the Helm charts' templates with `helm template`. The `builder` key specifies the Helm chart values that the vendor portal uses when running `helm template` to create the `.airgap` bundle.
In the `builder` key, you provide the minimum Helm values required to render the chart templates so that the output includes any images that must be included in the air gap bundle. The vendor portal uses these values to render the Helm chart templates when building the `.airgap` bundle for the release.
45 changes: 37 additions & 8 deletions docs/partials/helm/_helm-cr-builder-example.mdx
Original file line number Diff line number Diff line change
@@ -1,17 +1,46 @@
The following example demonstrates how to add a conditional `postgresql` resource to the `builder` key.

`postgresql` is defined as a conditional resource in the `values` key of the HelmChart custom resource:
For example, a Helm chart might include a conditional PostgreSQL Deployment, as shown in the Helm template below:

```yaml
values:
postgresql:
enabled: repl{{ ConfigOptionEquals `postgres_type` `embedded_postgres`}}
{{- if .Values.postgresql.enabled }}
apiVersion: apps/v1
kind: Deployment
metadata:
name: postgresql
labels:
app: postgresql
spec:
selector:
matchLabels:
app: postgresql
template:
metadata:
labels:
app: postgresql
spec:
containers:
- name: postgresql
image: "postgres:10.17"
ports:
- name: postgresql
containerPort: 80
# ...
{{- end }}
```
As shown above, `postgresql` is included only when the user selects the `embedded_postgres` option.

To ensure this conditional `postgresql` resource is included in the installation files, add the same `postgresql` value to the `builder` key with `enabled` set to `true`:
To ensure that the `postgresql` image is included in the air gap bundle for the release, the `postgresql.enabled` value is added to the `builder` key of the HelmChart custom resource and is hardcoded to `true`:

```yaml
apiVersion: kots.io/v1beta2
kind: HelmChart
metadata:
name: samplechart
spec:
chart:
name: samplechart
chartVersion: 3.1.7
values:
postgresql:
enabled: repl{{ ConfigOptionEquals `postgres_type` `embedded_postgres`}}
builder:
postgresql:
enabled: true
Expand Down
2 changes: 2 additions & 0 deletions docs/reference/custom-resource-helmchart-v2.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,8 @@ The `builder` key is required for the following use cases:

<BuilderAirgapIntro/>

For more information, see [Packaging Air Gap Bundles for Helm Charts](/vendor/helm-packaging-airgap-bundles).

* To support online installations that use a local private registry, the `builder` field renders the Helm chart with all of the necessary images so that KOTS knows where to pull the images.

You cannot prevent customers from configuring a local private registry in KOTS. If you think any of your customers will use a local private registry, you should use the `builder` key. For more information, see [Using Private Registries](/enterprise/image-registry-settings).
Expand Down
9 changes: 9 additions & 0 deletions docs/release-notes/rn-app-manager.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,15 @@ The following table lists the versions of Kubernetes that are compatible with ea

<!--RELEASE_NOTES_PLACEHOLDER-->

## 1.108.13

Released on May 6, 2024

Support for Kubernetes: 1.26, 1.27, 1.28, and 1.29

### Improvements {#improvements-1-108-13}
* Updates the snapshot settings page to clarify that the retention policy applies to all snapshots, not just scheduled snapshots.

## 1.108.12

Released on May 3, 2024
Expand Down
12 changes: 12 additions & 0 deletions docs/release-notes/rn-kubernetes-installer.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,18 @@ pagination_prev: null

<!--RELEASE_NOTES_PLACEHOLDER-->

## v2024.05.03-0

Released on May 3, 2024

### New Features {#new-features-v2024-05-03-0}
* Adds [Kubernetes](https://kurl.sh/docs/add-ons/kubernetes) version 1.30.0.

### Bug Fixes {#bug-fixes-v2024-05-03-0}
* Fixes list of host package dependencies for RHEL-9.
* Stop using default yum repos if all dependencies are already installed on RHEL 9.
* Stop installing sub-dependencies on RHEL-9 systems.

## v2024.04.19-0

Released on April 19, 2024
Expand Down
16 changes: 15 additions & 1 deletion docs/release-notes/rn-vendor-platform.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,21 @@ pagination_prev: null
Released on May 3, 2024

### Bug Fixes {#bug-fixes-v2024-05-03-1}
* Fixes an issue which causes addons to stay in a pending state for multi-node clusters.
* Fixes an issue that caused compatibility matrix addons to stay in a pending state for multi-node clusters.

## v2024.05.01-2

Released on May 1, 2024

### New Features {#new-features-v2024-05-01-2}
* Adds support for creating RKE2 clusters with compatibility matrix using the vendor portal UI.

## v2024.04.29-0

Released on April 29, 2024

### New Features {#new-features-v2024-04-29-0}
* Adds support for creating RKE2 clusters with compatibility matrix using the Vendor API v3.

## v2024.04.26-5

Expand Down
4 changes: 2 additions & 2 deletions docs/vendor/helm-native-about.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -99,9 +99,9 @@ For more information about Helm hooks, see [Chart Hooks](https://helm.sh/docs/to

## Air Gap Installations

KOTS supports installation of Helm charts into air gap environments with configuration of the HelmChart custom resource `builder` key. The `builder` key specifies the Helm values to use when building the air gap bundle for the application.
KOTS supports installation of Helm charts into air gap environments with configuration of the HelmChart custom resource [`builder`](/reference/custom-resource-helmchart-v2#builder) key. The `builder` key specifies the Helm values to use when building the air gap bundle for the application.

For more information about how to configure the `builder` key to support air gap installations including requirements and recommendations, see [builder](/reference/custom-resource-helmchart-v2#builder) in HelmChart v2.
For more information about how to configure the `builder` key to support air gap installations, see [Packaging Air Gap Bundles for Helm Charts](/vendor/helm-packaging-airgap-bundles).

## Resource Deployment Order

Expand Down
79 changes: 79 additions & 0 deletions docs/vendor/helm-packaging-airgap-bundles.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
import HelmBuilderRequirements from "../partials/helm/_helm-builder-requirements.mdx"
import BuilderAirgapIntro from "../partials/helm/_helm-cr-builder-airgap-intro.mdx"
import BuilderExample from "../partials/helm/_helm-cr-builder-example.mdx"
import AirGapBundle from "../partials/airgap/_airgap-bundle.mdx"

# Packaging Air Gap Bundles for Helm Charts

This topic describes how to package and build air gap bundles for releases that contain one or more Helm charts. This topic applies to applications deployed with Replicated KOTS.

## Overview

<AirGapBundle/>

When building the `.airgap` bundle for a release that contains one or more Helm charts, the vendor portal renders the Helm chart templates in the release using values supplied in the KOTS HelmChart custom resource [`builder`](/reference/custom-resource-helmchart-v2#builder) key. This ensures that the `.airgap` bundle includes all images needed to successfully deploy the chart in air gap environments.

## Configure the `builder` Key

To build an `.airgap` bundle for a release that contains one or more Helm charts, you must configure the [`builder`](/reference/custom-resource-helmchart-v2#builder) key in the KOTS HelmChart custom resource for each Helm chart in the release.

<BuilderAirgapIntro/>

The values in the `builder` key map to values in the given Helm chart's `values.yaml` file. For example, `spec.builder.postres.enabled` in the example HelmChart custom resource below would map to a `postgres.enabled` field in the `values.yaml` file for the `samplechart` chart:

```yaml
# KOTS HelmChart custom resource

apiVersion: kots.io/v1beta2
kind: HelmChart
metadata:
name: samplechart
spec:
chart:
name: samplechart
chartVersion: 3.1.7
builder:
postgres:
enabled: true
```

For requirements, recommendations, and examples of common use cases for the `builder` key, see the sections below.

### Requirements and Recommendations

<HelmBuilderRequirements/>

### Example: Set the Image Registry for Air Gap Installations

For air gap installations, if the [Replicated proxy service](/vendor/private-images-about) domain `proxy.replicated.com` is used as the default image name for any images, you need to rewrite the image to the upstream image name so that it can be processed and included in the air gap bundle. You can use the `builder` key to do this by hardcoding the upstream location of the image (image registry, repository, and tag), as shown in the example below:

```yaml
apiVersion: kots.io/v1beta2
kind: HelmChart
metadata:
name: samplechart
spec:
chart:
name: samplechart
chartVersion: 3.1.7
builder:
my-service:
image:
registry: 12345.dkr.ecr.us-west-1.amazonaws.com
repository: my-app
tag: "1.0.2"
```
When building the `.airgap` bundle for the release, the vendor portal uses the registry, repository, and tag values supplied in the `builder` key to template the Helm chart, rather than the default values defined in the Helm `values.yaml` file. This ensures that the image is pulled from the upstream registry using the credentials supplied in the vendor portal, without requiring any changes to the Helm chart directly.

### Example: Include Conditional Images

Many applications have images that are included or excluded based on a given condition. For example, enterprise users might have the option to deploy an embedded database with the application or bring their own database. To support this use case for air gap installations, the images for any conditionally-deployed components must always be included in the air gap bundle.

<BuilderExample/>

## Related Topics

* [Downloading Air Gap Bundles](/vendor/releases-download-airgap-bundles)
* [Build and Download the Application Bundle](/vendor/releases-download-airgap-bundles#air-gap-bundle)
* [builder](/reference/custom-resource-helmchart-v2#builder)
* [Air Gap Installation in Existing Clusters](/enterprise/installing-existing-cluster-airgapped)
30 changes: 0 additions & 30 deletions docs/vendor/operator-defining-additional-images.md

This file was deleted.

38 changes: 38 additions & 0 deletions docs/vendor/operator-defining-additional-images.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import AirGapBundle from "../partials/airgap/_airgap-bundle.mdx"

# Defining Additional Images

This topic describes how to define additional images to be included in the `.airgap` bundle for a release.

## Overview

<AirGapBundle/>

When building the `.airgap` bundle for a release, the Replicated vendor portal finds and includes all images defined in the Pod specs for the release. During installation or upgrade, KOTS retags images from the `.airgap` bundle and pushes them to the registry configured in KOTS.

Any required images that are _not_ defined in your application manifests must be listed in the `additionalImages` attribute of the KOTS Application custom resource. This ensures that the images are included in the `.airgap` bundle for the release.

## Define Additional Images for Air Gap Bundles

KOTS supports including the following types of images in the `additionalImages` field:

* Public images referenced by the docker pullable image name.
* Images pushed to a private registry that was configured in the vendor portal, referenced by the docker-pullable, upstream image name. For more information about configuring private registries, see [Connecting to an External Registry](/vendor/packaging-private-images).
:::note
If you use the [Replicated proxy service](/vendor/private-images-about) for online (internet-connected) installations, be sure to use the _upstream_ image name in the `additionalImages` field, rather than referencing the location of the image at `proxy.replicated.com`.
:::
* Images pushed to the Replicated registry referenced by the `registry.replicated.com` name.

The following example demonstrates adding multiple images to `additionalImages`:

```yaml
apiVersion: kots.io/v1beta1
kind: Application
metadata:
name: my-app
spec:
additionalImages:
- elasticsearch:7.6.0
- quay.io/orgname/private-image:v1.2.3
- registry.replicated.com/my-operator/my-private-image:abd123f
```
3 changes: 2 additions & 1 deletion sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -193,8 +193,9 @@ const sidebars = {
items: [
'vendor/helm-native-about',
'vendor/helm-native-v2-using',
'vendor/helm-v2-migrate',
'vendor/helm-packaging-airgap-bundles',
'vendor/helm-optional-value-keys',
'vendor/helm-v2-migrate',
],
},
{
Expand Down

0 comments on commit 752b3c9

Please sign in to comment.