Manage your Microsoft Azure resources through Ryvn’s provisioning interface.

Prerequisites

Before you begin, make sure you have:

Configure Your Environment

  1. Go to the Environments tab in the Ryvn Dashboard
  2. Click Create Environment in the top-right corner
  3. Give your environment a name (e.g. production)
  4. Select a release channel (e.g. production)
    Release channels link services to environments. When you push code changes, services publish releases to release channels. Environments subscribed to those channels automatically deploy new releases.
  5. Click Create Environment

Provisioning Steps

  1. From your environment in the Ryvn Dashboard, click View Environment
  2. Click Self Setup
  3. Click Start Provisioning
  4. Select Azure as your cloud provider
  5. Fill out the form with your Azure credentials
  6. Click Continue
  7. Click Create Permissions
  8. Follow the Azure-specific instructions shown in the dashboard
  9. Return to Ryvn and wait for provisioning to complete
The provisioning process is automated and typically takes 15-20 minutes. Ryvn will set up all necessary Azure resources including networking, security, and compute infrastructure.

AKS Node Pool Configuration

Ryvn uses Azure Kubernetes Service (AKS) to provide scalable compute resources for your applications. You can configure node pools through the aks_node_pools section in your YAML configuration.

Default Node Pools

Ryvn automatically creates two node pools by default:
  • application: For running your application workloads
  • system: For running system components and infrastructure services

Available Configuration Options

The following configuration options are available for each node pool:

Basic Configuration

OptionTypeDefaultDescription
vm_sizestring"Standard_D2als_v6" (app), "Standard_D2as_v6" (system)Azure VM size for the node pool
node_countnumber2 (app), 1 (system)Initial number of nodes in the pool
min_countnumber2 (app), 1 (system)Minimum number of nodes in the pool
max_countnumber4 (app), 3 (system)Maximum number of nodes in the pool
os_disk_size_gbnumber50Size of the OS disk in GB

Advanced Configuration

OptionTypeDescription
node_labelsobjectKubernetes labels to apply to nodes
node_taintslist(object)Kubernetes taints to apply to nodes
max_podsnumberMaximum number of pods per node
enable_auto_scalingboolEnable cluster autoscaler for the node pool
zoneslist(string)Availability zones to deploy nodes in
vnet_subnet_idstringSpecific subnet to deploy nodes in

Configuration Examples

Basic Node Pool Configuration

aks_node_pools:
  application:
    vm_size: "Standard_D2als_v6"
    node_count: 2
    min_count: 2
    max_count: 5
    os_disk_size_gb: 50
  system:
    vm_size: "Standard_D2as_v6"
    node_count: 1
    min_count: 1
    max_count: 3
    os_disk_size_gb: 50

Advanced Node Pool with Custom Labels

aks_node_pools:
  application:
    vm_size: "Standard_D4als_v6"
    node_count: 3
    min_count: 2
    max_count: 8
    os_disk_size_gb: 100
    max_pods: 110
    node_labels:
      workload-type: "application"
      environment: "production"
      tier: "web"

Node Pool with GPU Support

aks_node_pools:
  application:
    vm_size: "Standard_D2als_v6"
    node_count: 2
    min_count: 2
    max_count: 5
    os_disk_size_gb: 50
  gpu:
    vm_size: "Standard_NC4as_T4_v3"
    node_count: 1
    min_count: 1
    max_count: 3
    os_disk_size_gb: 100
    node_labels:
      node-type: "gpu"
      accelerator: "nvidia-t4"
    node_taints:
      - key: "nvidia.com/gpu"
        value: "present"
        effect: "NoSchedule"

Custom Node Pools

You can create additional node pools beyond the default application and system pools:
aks_node_pools:
  application:
    vm_size: "Standard_D2als_v6"
    node_count: 2
    min_count: 2
    max_count: 5
    os_disk_size_gb: 50
  monitoring:
    vm_size: "Standard_D2als_v6"
    node_count: 1
    min_count: 1
    max_count: 2
    os_disk_size_gb: 50
    node_labels:
      workload-type: "monitoring"
  batch:
    vm_size: "Standard_D4als_v6"
    node_count: 0
    min_count: 0
    max_count: 5
    os_disk_size_gb: 100
    node_labels:
      workload-type: "batch"

VM Size Recommendations

Azure offers various VM sizes optimized for different workloads:

General Purpose

  • Standard_D2als_v6: 2 vCPUs, 8 GB RAM (default for application nodes)
  • Standard_D4als_v6: 4 vCPUs, 16 GB RAM
  • Standard_D8als_v6: 8 vCPUs, 32 GB RAM

Memory Optimized

  • Standard_E4as_v6: 4 vCPUs, 32 GB RAM
  • Standard_E8as_v6: 8 vCPUs, 64 GB RAM

Compute Optimized

  • Standard_F4as_v6: 4 vCPUs, 8 GB RAM
  • Standard_F8as_v6: 8 vCPUs, 16 GB RAM

GPU Enabled

  • Standard_NC4as_T4_v3: 4 vCPUs, 28 GB RAM, 1 NVIDIA T4 GPU
  • Standard_NC8as_T4_v3: 8 vCPUs, 56 GB RAM, 1 NVIDIA T4 GPU

Advanced Configuration Options

For advanced AKS configurations not covered here, refer to the Azure AKS Terraform module documentation. This upstream module provides comprehensive configuration options for specialized use cases including advanced networking, security, and monitoring configurations.
Ryvn automatically adds the label ryvn.app/node-group-name to all nodes for identification and management purposes.
AKS node pools use Virtual Machine Scale Sets (VMSS) for automatic scaling and high availability across availability zones.

What Gets Created

Ryvn provisions a production-ready AKS cluster in your Azure account, complete with secure networking and RBAC configuration. This includes a VNet with private subnets, load balancers for service exposure, and all necessary network security groups and managed identities.