Skip to main content
Helm chart components allow you to deploy any helm from a public or connected repo.

Configuring a Helm component

To configure a Helm component, specify a repo, the required configuration values and version to deploy it with.
components/helm_chart.toml
You can also put the Helm chart source inside of the same repo as the app, and point to it.
If you include the Helm chart source in the app repo, you must push the entire repo and do a manual build of the component in the dashboard or CLI. The CLI’s nuon apps sync will not recognize that the component has changed so will not do the build.

Multiple ways to use Helm with components

You can configure Helm components to use either a Helm repository (using a helm_repo block), a public repo (using a public_repo block), or a private GitHub repo (using a connected_repo block). Read more about VCS configuration here.

Using Public Helm Repositories

Helm repositories are the standard way to share and discover Helm charts across the Kubernetes ecosystem. You can deploy charts directly from public Helm repositories without needing to store them in your own Git repository. To use a public Helm chart, specify the repository URL and chart name:
components/prometheus.toml
This is equivalent to the Helm CLI command:
You can find public Helm charts on Artifact Hub, which indexes thousands of open-source Helm charts. Each chart page lists its repository URL, which you can use in the repo_url field.

Open Source and Private Charts

Nuon supports any Helm chart that can be accessed using git. It is common for apps to have both a combination of public, open source helm charts for deploying standard components and private helm charts for application specific configuration.

Helm Value Configuration

One of the most important parts of deploying a Helm chart into a customer account, includes setting values properly. Values can be used for everything from accessing infrastructure, setting images or scaling pods. Variables allow you to set default values for a Nuon app, expose customer configuration options, reference infrastructure from other components or access an image that was synced into the customer account. Examples for accessing common interpolated variables:
components/helm_chart.toml

Using a Helm Values File

You can add a values file and locate it in the app repository.
components/grafana.toml

Nuon Managed Sandbox Components and DNS

The aws-eks-sandbox managed sandbox ships with standard Helm components + DNS zones to solve for common use cases, such as exposing a public or private https service. This includes: The Sandboxes are open source and can be customized, if these components do not work for your application.

Using Domains

The Nuon managed Sandboxes automatically deploy the components required to provision DNS, Certificate and Load Balancer resources using Helm. There are multiple ways to use these components. Here are examples of the two most common.

AWS NLB with AWS ACM

If you want to leverage AWS services, you can provision an NLB that uses an ACM certificate. Your chart would contain a Service resource, configured so that the operator will create an NLB.
nlb_public.tpl
You would parametrize the Service with the following values in your chart’s values.yaml file, to accept public and private domains and an ACM certificate ARN.
Then, you could set those values per install with the following component config.
components/nlb.toml

Nginx Ingress with Cert Manager

If you would prefer to manage resources within Kubernetes instead, you could use the Nginx ingress and have the cert-manager operator provision a certificate. In your chart, you would define the Ingress and Certificate resources.
components/api_public.tpl
Then, allow configuring the domain in the chart’s values.yaml file.
You could then set the domain per install in your Component config.
components/nlb.toml

By default, Nuon provisions a custom domain for each install id under the nuon.run domain (eg: inl8ybt7gajofh33e0h3pqyw1t.nuon.run).If you would like to use a customer provided domain, you can accept customer domains using inputs. We are planning to improve support for this, and would love to hear about your use case.

Per-install value overrides

To customize a Helm chart’s values for a single install without changing your app config, use component overrides.