Skip to main content

Terraform

Properties

PropertyDescriptionValuesExample
type
string
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"
name
string
component name Unique identifier for the component within the app. Used for referencing in dependencies and templates✅ Required"database", "api-server", "frontend"
terraform_version
string
Terraform version Version of Terraform to use for deployments✅ Required"1.5.0", "1.6.0", "latest"
var_name
string
variable name for component output Optional name to use when storing component outputs as variables. If not specified, uses the component nameOptional"db_endpoint", "api_host"
dependencies
array
component dependencies List of other components that must be deployed before this component. Automatically extracted from template referencesOptional"database", "infrastructure"
operation_roles
array
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_vars
object
environment variables Map of environment variables passed to Terraform as key-value pairsOptional-
vars
object
Terraform variables Map of Terraform input variables as key-value pairs. Supports templatingOptional-
var_file
array
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_repo
PublicRepoConfig
public repository configuration Configuration for a public repository accessible without authenticationOptional-
connected_repo
ConnectedRepoConfig
connected repository configuration Configuration for a private repository connected to the Nuon platformOptional-
drift_schedule
string
drift detection schedule Cron expression for periodic drift detection. If not set, drift detection is disabled. Supports templatingOptional"0 2 * * *", "*/10 * * * *"
build_timeout
string
build operation timeout Duration string for build operations (e.g., “30m”, “1h”). Default: 5m. Max: 1hOptional
Default: "5m"
"30m", "1h"
deploy_timeout
string
deploy operation timeout Duration string for deploy operations (e.g., “30m”, “1h”). Default: 60m. Max: 1hOptional
Default: "60m"
"30m", "1h"
var
array
deprecated: use vars map instead Deprecated: Array of name/value pairs for Terraform variables. Use the vars map insteadOptional-
env_var
array
deprecated: use env_vars map instead Deprecated: Array of name/value pairs for environment variables. Use the env_vars map insteadOptional-

operation_roles

PropertyDescriptionValuesExample
operation
string
operation type Type of operation: provision, deprovision, update, reprovision, or trigger✅ Required"provision", "deploy", "deprovision"
role
string
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

PropertyDescriptionValuesExample
contents
string
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://githuOptional"./sandbox.tfvars", "./variables/production.tfvars"

public_repo

PropertyDescriptionValuesExample
repo
string
repository URL HTTPS URL to the public Git repository✅ Required"https://github.com/user/repo.git", "https://github.com/user/terraform-modules.git"
directory
string
directory path Path within the repository to the configuration files✅ Required"terraform", "infra/terraform"
branch
string
Git branch Git branch to checkout and use for deployments✅ Required"main", "develop", "production"

connected_repo

PropertyDescriptionValuesExample
repo
string
repository identifier Identifier of the connected repository configured in the Nuon platform✅ Required"my-repo", "production-infrastructure"
directory
string
directory path Path within the repository to the configuration files✅ Required"terraform", "infra/terraform"
branch
string
Git branch Git branch to checkout and use for deployments✅ Required"main", "develop", "production"

var

PropertyDescriptionValuesExample
name
string
terraform variable nameOptional"cluster_name", "install_id", "region"
value
string
terraform variable valueOptional"{{.nuon.install.id}}", "true", "us-west-2"

env_var

PropertyDescriptionValuesExample
name
string
environment variable nameOptional"NAMESPACE", "INGRESS_NAME", "LOG_LEVEL"
value
string
environment variable valueOptional"kube-system", "{{.nuon.install.id}}-public", "info"