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 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.
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:
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 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.
If you do not pass the
-c
flag, all Builds for all Components in the
currently selected App will be listed.