.toml files. 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.nuon
nuon
Sync an App
To sync an app, and it’s configuration run:nuon
Breaking up Config Files
Since configs can get complex as your application grows, we follow a structured approach to organize your configuration files. Create acomponents directory
in your project root with individual files for each component. e.g.,
components/helm_deploy.toml.
components/helm_deploy.toml
example-app-configs repository
for common directory structures.
Reference
Input Config
Define inputs for an app usinginputs.toml file.
To configure a sensitive api_key and vpc_id input:
inputs.toml
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:
sandbox.toml
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 theterraform_module type.
To configure a terraform component using a connected repo:
components/terraform.toml
Helm Chart Component
To define a helm chart component use thehelm_chart type.
To configure a helm chart in a connected repo:
components/helm.toml
Kubernetes Manifest Component
To define a kubernetes manifest component use thekubernetes_manifest type.
manifest-db-secret.toml
Docker Build Component
To define a docker build component use thedocker_build type.
To configure a docker build component from a private repo:
components/docker_build.toml
Container Image Component
To define a container image component use thecontainer_image type.
To configure a public container image:
components/container_image.toml
components/container_image_ecr.toml
Install Config
You can create and manage Installs by creating<install>.toml files in an installs directory managed separately from the
apps. An Install config must declare a name field and any relevant
install-specific configuration.
The inputs are defined as a list of input groups. This is just for logical
grouping, and inputs from different groups can be defined together. Note that if
an input is defined multiple times, the last defined value would be used.
When you generate a config, inputs will be grouped together, reflecting the
input groups you have defined in the app. Sensitive inputs will be excluded, to
avoid saving them in plain text in version control. When syncing install config
files, sensitive inputs will be ignored. They can still be managed manually via
the Dashboard.
Currently only AWS installs are supported using Install config files.
nuon installs generate-config to export an existing install to stdout. Create
a TOML config file for the install in the installs folder of your app’s config
and paste the stout.
nuon installs sync command can be used with a single install config file
or with a directory containing multiple install config files.
installs/install.toml
All input values should be defined as strings. They will be parsed into the
correct type by Nuon.