Prerequisites
Before you begin, make sure you have:- An AWS account
- Access to the AWS Console
Configure Your Environment
- Go to the Environments tab in the Ryvn Dashboard
- Click Create Environment in the top-right corner
- Give your environment a name (e.g. production)
- 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.
- Click Create Environment
Provisioning Steps
- From your environment in the Ryvn Dashboard, click View Environment
- Click Self Setup
- Click Start Provisioning
- Select AWS as your cloud provider
- Fill out the form with your AWS credentials
- Click Continue
- Click Create Permissions
- Follow the AWS-specific instructions shown in the dashboard
- 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 AWS resources
including networking, security, and compute infrastructure.
Provisioning Methods
Ryvn offers two methods for provisioning AWS infrastructure:BYOC (Bring Your Own Cloud)
With BYOC, Ryvn creates a new VPC in your AWS account with the specified CIDR block.Configuration Interface
BYOC provisioning offers two configuration modes: Basic Mode A user-friendly form interface with the following options:- Region: Select your AWS region (e.g., US East, EU West)
- VPC CIDR Block: Specify the IP range for your VPC (default: 10.42.0.0/16)
- Application Node Group Configuration:
- Instance Type: Choose from t3.medium (2 CPU, 4GB RAM), t3.large (2 CPU, 8GB RAM), or t3.xlarge (4 CPU, 16GB RAM)
- Min Size: Minimum number of nodes (recommended: 2)
- Max Size: Maximum number of nodes for scaling
- You must specify a
vpc_cidrvalue in the standard CIDR notation format (e.g.,10.0.0.0/16) - The CIDR block must be a valid IPv4 address range with a subnet mask between /0 and /32
Custom Terraform Executor Policies
For cases where you need to deploy Terraform services with specific permissions, you can add custom IAM policy statements to the Ryvn Agent role by adding aterraform_executor_policies block to your configuration:
The
terraform_executor_policies configuration is particularly useful when you need to deploy custom infrastructure
using Terraform services. By default, Terraform services have restricted permissions.BYOVPC (Bring Your Own VPC)
With BYOVPC, Ryvn uses an existing VPC in your AWS account. Configuration Requirements:- You must specify a
vpc_idthat starts with “vpc-” - You must provide at least 3 unique private subnet IDs, each starting with “subnet-”
- All subnet IDs must be unique
The provisioning button will be disabled until your configuration meets all the requirements for your selected method.
A tooltip will display if there are any validation errors in your configuration.
EKS Node Pool Configuration
Ryvn uses AWS EKS Managed Node Groups to provide scalable compute resources for your applications. You can configure node pools through theeks_managed_node_groups section in your YAML configuration.
Default Node Groups
Ryvn automatically creates two node groups 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 group:Basic Configuration
| Option | Type | Default | Description |
|---|---|---|---|
instance_types | list(string) | ["t3.medium"] (app), ["t3.xlarge"] (system) | List of EC2 instance types for the node group |
min_size | number | 2 (app), 1 (system) | Minimum number of nodes in the group |
max_size | number | 5 (app), 3 (system) | Maximum number of nodes in the group |
desired_size | number | 2 (app), 1 (system) | Desired number of nodes in the group |
ami_type | string | "AL2023_x86_64_STANDARD" | AMI type for the nodes |
Storage Configuration
| Option | Type | Default | Description |
|---|---|---|---|
block_device_mappings | object | See below | EBS volume configuration for the root device |
Advanced Configuration
| Option | Type | Description |
|---|---|---|
labels | object | Kubernetes labels to apply to nodes |
taints | list(object) | Kubernetes taints to apply to nodes |
subnet_ids | list(string) | Specific subnets to deploy nodes in |
capacity_type | string | Spot or On-Demand instances ("ON_DEMAND" or "SPOT") |
disk_size | number | Root volume size in GB |
force_update_version | bool | Force update of node group version |
launch_template | object | Custom launch template configuration |
Configuration Examples
Basic Node Group Configuration
Advanced Node Group with Custom Storage
Node Group with Taints
Custom Node Groups
You can create additional node groups beyond the defaultapplication and system groups:
Advanced Configuration Options
For advanced node group configurations not covered here, refer to the AWS EKS Managed Node Group Terraform module documentation. This upstream module provides comprehensive configuration options for specialized use cases.Ryvn automatically adds the label
ryvn.app/node-group-name to all nodes for identification and management purposes.