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.
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:
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.Components can only be created using a configuration file.
It is not recommended to delete Components using the CLI. Instead, manage them
using config files.
Component Builds
All Components must be built before releasing. Syncing an app 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.
If you do not pass the
-c flag, all Builds for all Components in the
currently selected App will be listed.