Skip to main content

Step 3: Add the Chart Archive to a Release

Next, add the Helm chart archive to a new release for the application in the Replicated Vendor Portal. The purpose of this step is to configure a release that supports installation with Replicated Embedded Cluster.

A release represents a single version of your application and contains your application files. Each release is promoted to one or more channels. Channels provide a way to progress releases through the software development lifecycle: from internal testing, to sharing with early-adopters, and finally to making the release generally available.

To create a release:

  1. In the gitea 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 gitea-1.0.6.tgz manifests
  3. In manifests, create the YAML manifests required by KOTS:

    cd manifests
    touch gitea.yaml kots-app.yaml k8s-app.yaml embedded-cluster.yaml
  4. In each of the files that you created, paste the corresponding YAML provided in the tabs below:

    Description

    The KOTS HelmChart custom resource provides instructions to KOTS about how to deploy the Helm chart. The name and chartVersion listed in the HelmChart custom resource must match the name and version of a Helm chart archive in the release. The optionalValues field sets the specified Helm values when a given conditional statement evaluates to true. In this case, if the application is installed with Embedded Cluster, then the Gitea service type is set to NodePort and the node port is set to "32000". This will allow Gitea to be accessed from the local machine after deployment.

    YAML
    apiVersion: kots.io/v1beta2
    kind: HelmChart
    metadata:
    name: gitea
    spec:
    # chart identifies a matching chart from a .tgz
    chart:
    name: gitea
    chartVersion: 1.0.6
    optionalValues:
    - when: 'repl{{ eq Distribution "embedded-cluster" }}'
    recursiveMerge: false
    values:
    service:
    type: NodePort
    nodePorts:
    http: "32000"
  5. Lint:

    replicated release lint --yaml-dir .
    RULE                                  TYPE    FILENAME         LINE    MESSAGE
    config-spec warn Missing config spec
    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

    You can ignore any warning messages for the purpose of this tutorial.

  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 the dot menu then Edit release to view the files in the release.

    dot menu

    View a larger version of this image

    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 Gitea 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 Embedded Cluster entitlement so that you can install the release using Embedded Cluster. See Step 4: Create an Embedded Cluster-Enabled Customer.