What is a Component?
A component represents a part of your App. Nuon supports the following component types:- Helm Charts - Any Helm chart located in a repository
- Terraform - Any Terraform module
- Kubernetes Manifest - Any raw kubernetes manifest
- Docker - Any Dockerfile that can be built
- Container Images - Any prebuilt OCI image
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 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 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.
components/grafana.toml
git repository to store its source files, but you can include them in the app directory and reference the same app repo in the component .toml file. This example shows a component that uses the same repo as the app to store its AWS Terraform module to create the certificate in AWS:
components/certificate.toml
If you are iterating and making changes to the source files of a component, running
nuon apps sync will not trigger a new build. You need to first push your changes to your repo then create a new build manually using Dashboard UI or CLI after syncing the app. During development, it is recommended to create a branch and use that branch in the component config file.
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
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.It is not recommended to delete components using the CLI. Instead, manage them
by removing a component
.toml file from the app directory and then running nuon apps sync.Component Builds
All components must be built before creating an install or updating an install.nuon apps sync for the first time or if a component .toml or related Helm values.yaml has changed will also trigger a build. The release commands support an -auto-build flag which will trigger a build.
Any of the following CLI commands can use component_id or component_name with the -c flag to specify which component to build.
Create or re-create a Build - Create a build using the latest component configuration in the Dashboard UI or with the CLI.

If you do not pass the
-c flag, all Builds for all components in the
currently selected spp will be listed.
