Terraform
Properties
| Property | Description | Values | Example |
|---|---|---|---|
typestring | component type Type of component to deploy. Determines which configuration block is required (helm_chart, terraform_module, docker_build, container_image, kubernetes_manifest, or job) | ✅ Required | "terraform_module", "helm_chart", "docker_build", "container_image", "kubernetes_manifest" |
namestring | component name Unique identifier for the component within the app. Used for referencing in dependencies and templates | ✅ Required | "database", "api-server", "frontend" |
terraform_versionstring | Terraform version Version of Terraform to use for deployments | ✅ Required | "1.5.0", "1.6.0", "latest" |
var_namestring | variable name for component output Optional name to use when storing component outputs as variables. If not specified, uses the component name | Optional | "db_endpoint", "api_host" |
dependenciesarray | component dependencies List of other components that must be deployed before this component. Automatically extracted from template references | Optional | "database", "infrastructure" |
operation_rolesarray | operation-specific IAM role assignments Map of component operations to IAM role names. Allows using different roles for different operations (provision, deprovision, update). Roles must be defined … | Optional | - |
env_varsobject | environment variables Map of environment variables passed to Terraform as key-value pairs | Optional | - |
varsobject | Terraform variables Map of Terraform input variables as key-value pairs. Supports templating | Optional | - |
var_filearray | Terraform variable files Array of external Terraform variable files to load. Each file contents support templating and external file sources: HTTP(S) URLs (https://example.com/vars.tfvars), git rep… | Optional | - |
public_repoPublicRepoConfig | public repository configuration Configuration for a public repository accessible without authentication | Optional | - |
connected_repoConnectedRepoConfig | connected repository configuration Configuration for a private repository connected to the Nuon platform | Optional | - |
drift_schedulestring | drift detection schedule Cron expression for periodic drift detection. If not set, drift detection is disabled. Supports templating | Optional | "0 2 * * *", "*/10 * * * *" |
build_timeoutstring | build operation timeout Duration string for build operations (e.g., “30m”, “1h”). Default: 5m. Max: 1h | Optional Default: "5m" | "30m", "1h" |
deploy_timeoutstring | deploy operation timeout Duration string for deploy operations (e.g., “30m”, “1h”). Default: 60m. Max: 1h | Optional Default: "60m" | "30m", "1h" |
vararray | deprecated: use vars map instead Deprecated: Array of name/value pairs for Terraform variables. Use the vars map instead | Optional | - |
env_vararray | deprecated: use env_vars map instead Deprecated: Array of name/value pairs for environment variables. Use the env_vars map instead | Optional | - |
operation_roles
| Property | Description | Values | Example |
|---|---|---|---|
operationstring | operation type Type of operation: provision, deprovision, update, reprovision, or trigger | ✅ Required | "provision", "deploy", "deprovision" |
rolestring | IAM role name Name of the IAM role to use for this operation (not ARN). Role must exist in install stack outputs | ✅ Required | "{{.nuon.install.id}}-maintenance", "{{.nuon.install.id}}-provision" |
var_file
| Property | Description | Values | Example |
|---|---|---|---|
contentsstring | variable file contents Contents of a Terraform .tfvars file. Supports Nuon templating and external file sources: HTTP(S) URLs (https://example.com/vars.tfvars), git repositories (git::https://githu… | Optional | "./sandbox.tfvars", "./variables/production.tfvars" |
public_repo
| Property | Description | Values | Example |
|---|---|---|---|
repostring | repository URL HTTPS URL to the public Git repository | ✅ Required | "https://github.com/user/repo.git", "https://github.com/user/terraform-modules.git" |
directorystring | directory path Path within the repository to the configuration files | ✅ Required | "terraform", "infra/terraform" |
branchstring | Git branch Git branch to checkout and use for deployments | ✅ Required | "main", "develop", "production" |
connected_repo
| Property | Description | Values | Example |
|---|---|---|---|
repostring | repository identifier Identifier of the connected repository configured in the Nuon platform | ✅ Required | "my-repo", "production-infrastructure" |
directorystring | directory path Path within the repository to the configuration files | ✅ Required | "terraform", "infra/terraform" |
branchstring | Git branch Git branch to checkout and use for deployments | ✅ Required | "main", "develop", "production" |
var
| Property | Description | Values | Example |
|---|---|---|---|
namestring | terraform variable name | Optional | "cluster_name", "install_id", "region" |
valuestring | terraform variable value | Optional | "{{.nuon.install.id}}", "true", "us-west-2" |
env_var
| Property | Description | Values | Example |
|---|---|---|---|
namestring | environment variable name | Optional | "NAMESPACE", "INGRESS_NAME", "LOG_LEVEL" |
valuestring | environment variable value | Optional | "kube-system", "{{.nuon.install.id}}-public", "info" |