.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.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
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 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
.Install Config
You can create and manage Installs by creating<install>.toml
files
in an installs
directory managed separately from the app configs. 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.
Currently only AWS installs are supported using Install config files.
installs/install.toml
All input values should be defined as strings. They will be parsed into the correct type by Nuon.
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
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
Kubernetes Manifest Component
To define a kubernetes manifest component use thekubernetes_manifest
type.
helm.toml