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 theinstall-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 thenuonco/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
2. Configure remote state (recommended)
Create abackend.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
Theinstall_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
Thesecrets 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 theinputs.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.
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 thesandbox 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.
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.