Properties
name
string — required
Environment identifier. Must be lowercase, alphanumeric with hyphens only.
releaseChannel
string — optional
Default release channel for installations in this environment. When installations
don’t specify a release channel, they use the environment’s channel.
maintenanceWindow
string — optional
Maintenance window for this environment. Automated deployments will only occur during specified intervals.
config
object — optional
Configuration passed to the Ryvn environment provisioner.
config.region
string — optional
AWS region where resources will be provisioned. Defaults to us-east-1.
config.internal_root_domain
string — optional
Internal root domain for services using internal networking. If not specified, Ryvn
generates a default domain in the format {environment}.{org-slug}.ryvn.internal.
config.public_root_domain
string — optional
Public root domain for services using public networking. If not specified, Ryvn
generates a default domain in the format {environment}.{org-slug}.ryvn.run.
config.vpc_cidr
string — optional
CIDR block for the VPC. Defaults to 10.0.0.0/16.
config.cluster_bootstrap_perms
boolean — optional
If true, grants cluster admin permissions to the Ryvn Agent for initial setup.
Should be disabled after bootstrap. Defaults to false.
config.eks_managed_node_groups
object — optional
Map of EKS managed node group definitions to create. Each key is a node group name, and its value is an object with the following fields. Values will be merged with defaults if not specified.
| Field | Type | Description |
|---|---|---|
instance_types | list(string) | EC2 instance types for the node group (e.g., ["t3.large", "t3.xlarge"]) |
min_size | number | Minimum number of nodes |
max_size | number | Maximum number of nodes |
desired_size | number | Initial desired number of nodes |
ami_type | string | AMI type (e.g., AL2_x86_64, AL2_ARM_64, BOTTLEROCKET_x86_64) |
labels | map(string) | Kubernetes labels applied to nodes |
subnet_ids | list(string) | Specific subnet IDs for node placement |
block_device_mappings | map(object) | EBS volume configuration (see example below) |
config.create_cloudwatch_log_group
boolean — optional
If true, creates a new CloudWatch log group for EKS cluster logging. Defaults
to false.
config.terraform_executor_policies
array — optional
Additional IAM policy statements to be added to the Ryvn Agent role. Each policy
statement should include effect, actions, and resources.
config.cluster_endpoint_public_access_cidrs
array — optional
List of CIDR blocks which can access the Amazon EKS public API server endpoint.
If not specified, defaults to Ryvn Hub IPs.
config.enable_flow_log
boolean — optional
If true, enables VPC Flow Logs. Defaults to false.
config.skip_dns_provisioning
boolean — optional
If true, skips provisioning DNS managed zones. Defaults to false.
config.cluster_addons
object — optional
Map of cluster addon configurations. Each key is an addon name (e.g., vpc-cni, coredns, kube-proxy, aws-ebs-csi-driver), and its value is passed to the terraform-aws-modules/eks module’s cluster_addons input. Will be merged with Ryvn’s default addon configurations.
Default addons include coredns, eks-pod-identity-agent, kube-proxy, vpc-cni, and aws-ebs-csi-driver. Common fields per addon:
| Field | Type | Description |
|---|---|---|
configuration_values | string | JSON or YAML string of addon-specific configuration |
resolve_conflicts_on_create | string | Conflict resolution on create: OVERWRITE or NONE |
resolve_conflicts_on_update | string | Conflict resolution on update: OVERWRITE, PRESERVE, or NONE |
before_compute | boolean | Install addon before compute resources are created |
config.enable_transit_gateway_subnets
boolean — optional
If true, enables creation of Transit Gateway subnets. When enabled, creates /28 subnets
(14 usable IPs each) following AWS best practices. Defaults to false.
config.transit_gateway_subnets
array — optional
Custom CIDR blocks for transit gateway subnets. If empty, will auto-calculate
/28 subnets when enable_transit_gateway_subnets is true. AWS recommends /28
subnets to minimize IP usage.
config.pod_identity_associations
object — optional
Map of additional EKS Pod Identity associations to create. Assumes IAM roles already exist.
Cannot create associations in system-managed namespaces.
setup
string — optional
Environment setup type. Controls who provisions the environment infrastructure.
Available values:
customer-controlled- Ryvn Provisioner (EC2 instance in the customer’s AWS account) provisions the infrastructureself- Ryvn Control Plane uses cross-account permissions to provision the infrastructure (default)
customer-controlled, combine with customerEmail to automatically generate customer invite codes.
customerEmail
string — optional
Email address of the customer admin for this environment. Only used with setup: customer-controlled.
When specified, Ryvn automatically:
- Creates a customer organization and user account
- Sends an invite code to the customer to provision the environment
requireApproval
boolean — optional (default: false)
When true, deployments require approval before executing. See Deployment Approvals.
provider
object — required
AWS provider configuration.
provider.type
string — required
Must be aws.
provider.accountId
string — optional
AWS account ID where resources will be provisioned.
installations
array — optional
List of service installations to deploy in this environment. See
Server, Job,
Helm Chart,
Terraform, and
Blueprint installation documentation for details.
Platform Blueprint Configuration
The AWS platform blueprint (ryvn.app/aws-platform) accepts the following configuration inputs when installed in an environment:
Node Configuration
| Input | Type | Default | Description |
|---|---|---|---|
instanceCategories | array | ["m", "r"] | Types of EC2 instances to use. Options include general purpose (m), memory optimized (r), compute optimized (c), and burstable performance (t). |
cpuSizes | array | ["4", "8", "16", "32"] | The number of vCPUs allowed for each instance. |
diskSize | string | "128Gi" | Amount of ephemeral disk space allocated to each node for storing container images, logs, and application data. Data does not persist if the node is replaced. |
customNodePools | string | "" | Advanced configuration for defining custom node pools with specific requirements, taints, or labels. Provide as YAML. |
customNodeClasses | string | "" | Advanced configuration for defining custom node classes with specific AMIs, block devices, or instance store policies. Provide as YAML. |
Observability Configuration
| Input | Type | Default | Description |
|---|---|---|---|
logRedaction | boolean | false | Enable log redaction to remove sensitive information from logs |
redactionPatterns | array | - | Regex patterns for log redaction (available when logRedaction is enabled) |
metrics | boolean | true | Enable metrics collection and forwarding |
Outputs
Environment outputs are available in service installation configs using template syntax. Reference these values to configure services with infrastructure details provisioned by Ryvn..ryvn.env.name
The name of the environment.
.ryvn.env.orgId
The organization ID.
.ryvn.env.defaultNamespace
The default Kubernetes namespace for the environment (typically same as environment name).
.ryvn.env.releaseChannel
The release channel for this environment.
.ryvn.env.provider.type
The provider type (e.g., aws, gcp, azure, k3s).