Skip to main content

Step 4: Add the Chart Archive to a Release

Next, add the Helm chart archive to a new release for the application in the Replicated vendor platform.

The purpose of this step is to configure a release that supports installation with KOTS. Additionally, this step defines a user-facing application configuration page that displays in the KOTS admin console during installation where users can set their own Grafana login credentials.

To create a release:

  1. In the grafana directory, create a subdirectory named manifests:

    mkdir manifests

    You will add the files required to support installation with Replicated KOTS to this subdirectory.

  2. Move the Helm chart archive that you created to manifests:

    mv grafana-9.6.5.tgz manifests
  3. In the manifests directory, create the following YAML files to configure the release:

    cd manifests
    touch kots-app.yaml k8s-app.yaml kots-config.yaml grafana.yaml
  4. In each file, paste the corresponding YAML provided in the tabs below:

    Description

    The KOTS Application custom resource enables features in the admin console such as branding, release notes, port forwarding, dashboard buttons, application status indicators, and custom graphs.

    The YAML below provides a name for the application to display in the admin console, adds a custom status informer that displays the status of the grafana Deployment resource in the admin console dashboard, adds a custom application icon, and creates a port forward so that the user can open the Grafana application in a browser.

    YAML
    apiVersion: kots.io/v1beta1
    kind: Application
    metadata:
    name: grafana
    spec:
    title: Grafana
    statusInformers:
    - deployment/grafana
    ports:
    - serviceName: "grafana"
    servicePort: 3000
    localPort: 8888
    applicationUrl: "http://grafana"
    icon: https://raw.githubusercontent.com/cncf/artwork/master/projects/kubernetes/icon/color/kubernetes-icon-color.png
  5. From the manifests directory, lint the YAML files to confirm that there are no errors:

    replicated release lint --yaml-dir .

    --yaml-dir is the path to the directory that contains the Helm chart archive and the manifest files required by KOTS.

    Example output:

    RULE                               TYPE    FILENAME        LINE  MESSAGE                                                     
    preflight-spec warn Missing preflight spec
    troubleshoot-spec warn Missing troubleshoot spec
    nonexistent-status-informer-object warn kots-app.yaml 8 Status informer points to a nonexistent kubernetes object. If this is a Helm resource, this warning can be ignored.
    note

    The output includes warning messages that list missing manifest files. These manifests control additional KOTS functionality and can be ignored for the purpose of this tutorial. The nonexistent-status-informer-object warning can also be ignored because the grafana Deployment resource that was added as a status informer in the KOTS Application custom resource is a Helm resource.

  6. Create a release:

    replicated release create --yaml-dir .

    Example output:

    • Reading manifests from . ✓
    • Creating Release ✓
    • SEQUENCE: 1
  7. Log in to the vendor portal and go to Releases.

    The release that you created is listed under All releases.

    Release page in the vendor portal with one release

    View a larger version of this image

  8. Click Edit release to view the files in the release.

    In the release editor, you can see the manifest files that you created, the Helm chart .tgz archive, and the Chart.yaml and values.yaml files for the Grafana Helm chart. You can also see the same warning messages that were displayed in the CLI output.

    Edit Release page in the vendor portal

    View a larger version of this image

  9. At the top of the page, click Promote.

  10. In the dialog, for Which channels you would like to promote this release to?, select Unstable. Unstable is a default channel that is intended for use with internal testing. Click Promote.

    Promote release dialog

    View a larger version of this image

Next Step

Create a customer with the KOTS entitlement so that you can install the release in your cluster using Replicated KOTS. See Step 5: Create a KOTS-Enabled Customer.