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 replace the Ryvn Agent role’s default policy with your own IAM policy statements by adding aterraform_executor_policies block to your
configuration:
Policy conditions
Add IAM policy conditions to scope permissions for specific use cases. The optionalcondition field supports standard IAM condition operators like StringEquals, StringNotEquals, ArnLike, and others.
For example, to restrict KMS access to requests coming through Secrets Manager in a specific region:
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
Storage configuration
Default storage configuration:
Advanced configuration
Configuration examples
Basic node group configuration
Advanced node group with custom storage
Node group with taints
Definetaints as a map of named objects. Ryvn passes this configuration to the Terraform EKS module. Each entry requires a key and an effect; value is optional. Use the AWS effect values NO_SCHEDULE, PREFER_NO_SCHEDULE, or NO_EXECUTE.
gpu under taints identifies the configuration entry. The key field sets the Kubernetes taint key (nvidia.com/gpu).
This format applies to eks_managed_node_groups. Custom Karpenter NodePools use a list of taints with Kubernetes effect values such as NoSchedule; see the GPU workloads guide.
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.