Skip to main content
Nuon supports several different Component types that allow you to connect your existing container images, Helm charts, Kubernetes Manifests and Terraform code to your app.

What is a Component?

A Component represents a part of your App. Nuon supports the following Component types:

How do you configure a Component?

A Component is configured in an individual <component name>.toml file inside a directory called components in the root of your App Config directory. e.g., a Helm chart Component named grafana would be defined in a file named grafana.toml inside a directory named components. Additional Component configuration files can be added to the components directory or another directory in the App Config directory, and referenced in the Component’s config file. e.g., you can have a values.yaml file for a Helm chart Component to deploy observability platform from Grafana Labs located in components/values/grafana You can configure Components to use either a public repo (using a public_repo block) or a private GitHub repo (using a connected_repo block). Read more about VCS configuration here.
#:schema https://api.nuon.co/v1/general/config-schema?type=helm
name           = "grafana"
type           = "helm_chart"
chart_name     = "grafana"
namespace      = "grafana"
storage_driver = "configmap"
dependencies   = ["prometheus"]

[public_repo] repo = "grafana/helm-charts" directory = "charts/grafana" branch =
"main"

[[values_file]] contents = "./values/grafana/values.yaml"

By default, every Component must have a git repository to store its source files, but you can include them in the App Config directory and reference the same App Config repo in the Component TOML file. This example shows a Component that uses the same repo as the App Config to store its AWS Terraform module to create the certificate in AWS:
[public_repo]
repo      = "nuonco/example-app-configs"
directory = "grafana/src/components/certificate"
branch    = "main"

Component Management

The CLI exposes many operational commands to manage components. To see all available commands, run: nuon components --help.
Make sure to select an App using nuon apps select before using the nuon components commands, or pass the -a flag to each nuon component command.

Component Management Commands

There no longer is a nuon components select command to pin a Component. Instead, pass the -c flag to each command to specify the Component by its ID or name.
Commands for working with Components:
Components can only be created using a configuration file.
List Components - List Components for an App.
sh nuon nuon components list
Get a Component
nuon components get -c <component_id or component_name>
Delete a Component - Delete a Component.
It is not recommended to delete Components using the CLI. Instead, manage them using config files.
sh nuon nuon components delete -c component_id
Print a Component config - Print the latest configuration for a Component.
nuon components latest-config -c <component_id or component_name>

Component Builds

All Components must be built before releasing. Syncing an App Config for the first time or if a Component configuration has changed will also trigger a Build. The release commands support an -auto-build flag which will trigger a Build. Create a Build - Create a Build using the latest Component configuration.
sh nuon nuon builds create -c component_id
List Builds - List Builds for a Component.
nuon builds list -c <component_id or component_name>
If you do not pass the -c flag, all Builds for all Components in the currently selected App will be listed.
Get a Build - Print out Build details.
nuon builds get -b <build-id> -c <component_id or component_name>
Logs - Show logs for a Build by opening the Dashboard.
nuon builds logs -b <build-id> -c <component_id or component_name>
I