Configuration Files
Configure apps using a single .toml
file
Config files allow you to define a BYOC application using a single .toml
file.
Under the hood, Nuon will handle keeping your configuration in sync.
Create an app
Create a local App directory - Create a directory and name it after your App. This directory will contain your App’s configuration files.
Config files are used to sync the configuration for a single App. To create an App with no configuration files. e.g., so you can sync existing config files later. For consistency, use the same name as the directory you created above.
If you happened to create the App without --no-template
and a your-app.toml
was created, delete the file and create you own config files.
Sync an App
To sync an app, and it’s configuration run:
Breaking up Config Files
As your config grows, keeping everything in a single file can become
unmanagable. Create components
and actions
directories in your project root and individual files for each component. e.g., helm_deploy.toml
.
When loading a component from a source, the components
prefix is not needed
for each field, like it is in the main config file.
Reference
Input Config
Define inputs for an app using inputs.toml
file.
To configure a sensitive api_key
and vpc_id
input:
Inputs are not required, unless you are using a Sandbox that requires Inputs. e.g., root_domain
for the aws-eks-sandbox
.
Sandbox Config
Define the sandbox for an app using a [sandbox]
block.
To define an aws-eks-sandbox
Sandbox:
Notice how variables can be defined in the vars
block and with var_file
.
Component Config
You can define components by creating <component>.toml
files in a components
directory. Components must declare
a type
field and any relevant component-specific configuration.
Each component will have dependencies automatically defined based on the order in the config file. Learn more about depencencies here.
Terraform Module Component
To define a terraform module component use the
terraform_module
type.
To configure a terraform component using a connected repo:
Helm Chart Component
To define a helm chart component use the
helm_chart
type.
To configure a helm chart in a connected repo:
Docker Build Component
To define a docker build component use the
docker_build
type.
To configure a docker build component from a private repo:
Container Image Component
To define a container image component use
the container_image
type.
To configure a public container image:
To configure a container image from an ECR repo: