Azure AKS with Karpenter and Virtual Nodes
Azure sandbox that provisions the following:
VPN
AKS Cluster with ACI Connector for virtual nodes
ACI-enabled subnet for Karpenter autoscaling
To use this in your BYOC app, please use the azure-aks runner type:
version = " v1"
[runner ]
runner_type = " azure-aks"
[sandbox ]
terraform_version = " 1.11.3"
[sandbox .public_repo ]
directory = " ."
repo = " nuonco/azure-aks-sandbox"
branch = " main"
This sandbox can be tested outside of nuon by following these steps:
Ensure you have an Azure account setup and az installed
Create Service Principal Credentials
Create a terraform.tfvars with the correct variable inputs
Name
Source
Version
aks
Azure/aks/azurerm//v4
~> 10.1.0
Name
Description
Type
Default
Required
cluster_version
The Kubernetes version to use for the AKS cluster.
string
"1.33"
no
internal_root_domain
The internal root domain.
string
n/a
yes
location
The location to launch the cluster in
string
n/a
yes
nuon_id
The nuon id for this install. Used for naming purposes.
string
n/a
yes
private_subnet_names
The subnets to deploy private resources into.
string
n/a
yes
public_root_domain
The public root domain.
string
n/a
yes
public_subnet_names
The subnets to deploy public resources into.
string
n/a
yes
resource_group_name
The resource group name where the existing Virtual Network is located.
string
n/a
yes
vnet_name
The name of the existing Virtual Network created by Bicep.
string
n/a
yes
Name
Description
account
A map of Azure account attributes: location, subscription_id, client_id, resource_group_name.
acr
A map of ACR attributes: id, login_server.
cluster
A map of AKS cluster attributes: id, name, client_certificate, client_key, cluster_ca_certificate, cluster_fqdn, oidc_issuer_url, location, kube_config_raw, kube_admin_config_raw.
internal_domain
A map of internal domain attributes: nameservers, name, id.
public_domain
A map of public domain attributes: nameservers, name, id.
vnet
A map of vnet attributes: name, subnet_ids.