Skip to main content
Nuon can install Nuon on your cloud. Please reach out to sales.

Architecture

Nuon Cloud manages your BYOC control plane as an install — the same way your control plane will manage installs for your own customers. Upgrades, provisioning, and lifecycle operations are all driven remotely by Nuon. Cloud SQL backs both the Nuon control-plane database and Temporal’s database; the two run as separate Cloud SQL instances and are sized independently through inputs.

DNS Configuration

Before proceeding with the installation creation, Nuon will need the following values. These are used to configure DNS for the services and the DNS Delegation feature. Nuon sets these values on install creation so they are required up front.

GCP Project

You’ll need a GCP project with a few APIs enabled. The install stack provisions a VPC and other network primitives, so make sure your account has IAM permissions to create those resources and the project has not hit quota limits for VPCs, Cloud SQL instances, or GKE clusters. The following APIs are required by the install-stack and BYOC Nuon. These will be enabled by the install-stack terraform module.
  • Secret Manager API
  • Compute Engine API
  • IAM Service Account Credentials API
  • Cloud Resource Manager API
  • Kubernetes Engine API
  • Cloud DNS API
  • Artifact Registry API
  • Certificate Manager API
  • Service Networking API
  • Cloud SQL Admin API

AWS Account

An AWS Account is required solely for the purpose of hosting a single S3 bucket which holds install templates for use by CloudFormation stacks for BYOC Installs targetting AWS. We can, and will initially, provide this bucket but you can bring your own at any time.

Provision the Install Stack

BYOC Nuon on GCP is provisioned with terraform using the the nuonco/install-stacks module. Nuon will share inputs.auto.tfvars and secrets.auto.tfvars files with the values specific to your install which you will augment with configuration and input values you control. Once the vars files are populated and the module is in your CI pipeline, you will apply the nuonco/install-stacks module to provision the following resources for BYOC Nuon:
  • VPC
  • GKE cluster
  • Cloud
  • SQL instances
  • Cloud Storage buckets
  • Artifact Registry
  • IAM service accounts
  • Secret Manager

1. Clone the install stack module

Create a backend.tf file to store Terraform state in GCS.
backend.tf

3. Populate and save the install configuration

Save the install config Nuon shared with you as two files: inputs.auto.tfvars and secrets.auto.tfvars. Both use the .auto.tfvars suffix so Terraform loads them automatically at apply time. All variables below live in inputs.auto.tfvars except secrets and auto_generate_secrets, which go in secrets.auto.tfvars. The values fall into two categories. Provided by Nuon — these come from your install record and Nuon will share them with you: Configured by you — these define what the runner is allowed to do in your project:

Install Inputs

The install_inputs map must be populated with the following values.
GitHub Configuration
Documentation for the GitHub App can be found here.
OIDC Authentication
Documentation for Nuon Auth can be found here.
Slack Configuration (Optional)
Provide these only if you created a Slack app in the Slack App section. Leave blank to disable the Slack integration.

Secrets

The secrets map must be popoulated with the following:
The GitHub App PEM key must be base64 encoded because AWS CloudFormation doesn’t preserve newlines in text fields.To encode your PEM key:

4. Apply the install stack

After the inputs.auto.tfvars and secrets.auto.tfvars files are populated, you can apply the stack. Both files are loaded automatically, so no -var-file flag is needed.
All of the core-infra will be created with your gcloud permissions. After this, the Nuon Runner will be deployed in your project and will poll Nuon Cloud for jobs to deploy the control plane components.

Configure DNS

Once the sandbox is applied, we will share DNS details for you to configure DNS for your root domain to point to the Cloud DNS zone created in the sandbox.
  • A Zone Name for your public domain.
  • Nameserver records to add to your domain’s DNS.
Once you create NS records in your registrar, you will be able to visit the services at the root_domain you specified.

Verify Installation

After successful provisioning, verify your installation by visiting these URLs. You can also verify the API is responding by curling it directly.