Documentation Index
Fetch the complete documentation index at: https://docs.nuon.co/llms.txt
Use this file to discover all available pages before exploring further.
Deploying an Example App
If you’re still designing your BYOC architecture, it is helpful to deploy a sample app. For the Customer Cluster architecture, see byo-eks in nuonco/example-app-configs.
Overview
Custom nested stacks wire the Runner into the cluster.
Common when the app is an agent or operator that needs in-cluster access, or when the customer requires a single shared cluster for all vendor apps.
App config
Start from the Customer VPC pattern, then add custom nested stacks to wire the Runner into the existing cluster.
Customer Cluster is natively supported via the Nuon-generated CloudFormation template. Terraform deployments are also possible but require forking the published modules at install-stacks — see the Terraform section below.
The vendor’s stack.toml references CloudFormation nested templates plus the custom nested stacks that wire the Runner into the cluster:
vpc_nested_template_url = "https://nuon-artifacts.s3.us-west-2.amazonaws.com/aws-cloudformation-templates/v0.4.0/byo-vpc/default/stack.yaml"
runner_nested_template_url = "https://nuon-artifacts.s3.us-west-2.amazonaws.com/aws-cloudformation-templates/v0.4.0/runner/asg/stack.yaml"
[[custom_nested_stacks]]
name = "runner_sg_eks_access" # grant the Runner SG access to the cluster
template_url = "CUSTOMER_CLOUD_DEPENDENT"
index = 0
[[custom_nested_stacks]]
name = "k8s_namespaces" # create namespaces for the app
template_url = "CUSTOMER_CLOUD_DEPENDENT"
index = 1
[[custom_nested_stacks]]
name = "eks_access_entries" # add EKS access entries for Runner roles
template_url = "CUSTOMER_CLOUD_DEPENDENT"
index = 2
The customer enters the VPC and subnet IDs (plus the cluster name) when deploying the stack.
Custom nested stacks are CloudFormation-only. To support Terraform deployments for this pattern, fork install-stacks and add equivalent resources (BYO-VPC inputs, cluster security-group access, namespaces, EKS access entries) directly in the Terraform module — see Customizing Terraform Stack Templates.
Sandbox
The Sandbox skips cluster provisioning and consumes the customer’s cluster name plus the subnet IDs from install stack outputs:
[vars]
cluster_name = "{{.nuon.inputs.inputs.cluster_name}}"
public_subnet_ids = "{{.nuon.install_stack.outputs.public_subnets}}"
private_subnet_ids = "{{.nuon.install_stack.outputs.private_subnets}}"
runner_subnet_id = "{{.nuon.install_stack.outputs.runner_subnet}}"