Skip to main content

Getting Started

Getting started with the Ignition Helm Chart is easy. You'll need a few prerequisites to get started.

You can review which context you're currently using (which will be shared by kubectl and helm utilities) with:

# List the current K8s contexts in your configuration
kubectl config get-contexts
warning

Make sure to exercise any examples in this documentation on a cluster dedicated to testing!

Examples in this documentation will assume a POSIX shell such as can be found in Linux/WSL2/macOS.

Setting up the Helm repo​

We publish to a traditional Helm chart repository. You can add the repository to your local Helm configuration and refer to it via a helpful name, such as inductiveautomation.

# Add the IA Helm Charts Repository
helm repo add inductiveautomation https://charts.ia.io

This processes the index.yaml and makes Helm aware of what charts are available and where they can be downloaded.

Verifying Chart Provenance and Signature​

note

The steps in this section are not required to use the chart; they are recommended to help ensure that the chart you're using is authentic and hasn't been tampered with.

We sign each release of the Helm chart with a PGP keypair from IA Helm Charts <charts@ia.io>. You can use the public key to verify the authenticity of the chart .tgz file using the steps below:

  1. Download the public key and inspect:
curl -fsSL -O https://github.com/inductiveautomation/ignition-helm-chart/raw/main/publickey.gpg.asc
gpg --show-keys publickey.gpg.asc

The key should have fingerprint: 7D09D98C884BAE9248186059EFF55DC769C5C70D

  1. Import the public key and export your current set of public keys to a keyring file (used by Helm):
# Import the public key
gpg --import publickey.gpg.asc
# Export to public keys to legacy keyring format used by Helm CLI
gpg --export > ~/.gnupg/pubring.gpg
  1. Verify the downloaded chart:
$ helm repo add inductiveautomation https://charts.ia.io
$ helm pull inductiveautomation/ignition --prov
$ helm verify ignition-*.tgz
Signed by: IA Helm Charts <charts@ia.io>
Using Key With Fingerprint: 7D09D98C884BAE9248186059EFF55DC769C5C70D
Chart Hash Verified: sha256:xxxxxxxxx

Understanding Versioning​

The Ignition Helm Chart uses semantic versioning. In the table below, you can find information on the chart versions that are available.

Version ConstraintIgnition VersionDescription
~0.1.x8.1.43+Preview, compatible with Ignition 8.1.x
~0.2.x8.3.0+Preview, compatible with Ignition 8.3.x
^1.0.0 (future)8.1.43+Compatible with Ignition 8.1.x
^2.0.0 (future)8.3.0+Compatible with Ignition 8.3.x

You can use the version constraints shown above to "pin" to a compatible version of the chart for your needs. Without any version constraints applied, the latest version of the chart will be used. Take a look at the docs for Helm commands such as helm install to learn more about using the --version option. For more information on version constraint syntax, refer to Masterminds/semver.

Reviewing the CHANGELOG​

We maintain a changelog that lists updates to the chart with each new version. It is packaged with the chart under CHANGELOG.md, but you can also review it online here.

Inspecting the default configuration values​

Each Helm chart comes with a set of pre-defined configurations, called "values". These are stored in the chart under a values.yaml file and are applied when you install the chart with no additional overrides. Each value is documented with helpful information. The various examples in this documentation will omit these comments for brevity, so make sure you refer to the default values in detail as you configure the chart. The example below shows how you can retrieve a copy of the default values for review:

# Show default values of the chart
helm show values inductiveautomation/ignition

Installing Ignition​

You can install Ignition as a "release" into a namespace of your cluster with the default values like below:

# Install into "demo" namespace
helm upgrade --install ignition inductiveautomation/ignition -n demo --create-namespace

# Change current K8s context to default to "demo" namespace
kubectl config set-context --current --namespace=demo

From this point forward, any further commands (such as ones in this guide) will now default to resources in the "demo" namespace.

Customizing chart values​

Various sections in this documentation may refer to setting specific values directly with an inline mention (e.g. commissioning.edition=standard). You can apply value overrides to your release in a couple of equivalent ways.

Example 1 - Set values directly via the helm CLI

helm upgrade --install ignition inductiveautomation/ignition -n demo --create-namespace \
--set commissioning.edition=standard \
--set commissioning.acceptIgnitionEULA=true

This is helpful for iterative testing, but overriding many values on the command line can become burdensome. Instead, consider placing values in a YAML file, such as testing.yaml:

# testing.yaml
commissioning:
edition: standard
acceptIgnitionEULA: true

Example 2 - Set values via a file

helm upgrade --install ignition inductiveautomation/ignition -n demo --create-namespace \
--values testing.yaml

Uninstalling Ignition​

If you've installed the "ignition" release into the "demo" namespace as shown above, you can uninstall it just as simply.

# Uninstall the "ignition" release
helm uninstall ignition -n demo
note

By default, Persistent Volume Claim[s] (PVC) will be retained on an uninstall as a safety measure against accidental deletion. If you're doing repetitive testing you can set gateway.persistentVolumeClaimRetentionPolicy=Delete to have the PVC removed upon helm uninstall. Otherwise, you may need to remove them manually.