kind, metadata, and spec fields, making it easy to organize, version, and manage your infrastructure.
Structure
Each resource follows a standard pattern:kind- The type of resource (Service, Environment, Blueprint, etc.)metadata.name- The name of the resource (must be unique within its kind)spec- The resource-specific configuration
kind field, not their file location or naming.
Add
# yaml-language-server: $schema=https://api.ryvn.app/v1/schemas/resources.json at the top of your resource files to enable autocomplete and validation in editors that support YAML Language Server (VS Code, Neovim, etc.).Services
Services define what you’re deploying. Ryvn supports multiple service types:- Server - Long-running web applications, APIs, and microservices
- Job - One-time or scheduled batch jobs and background tasks
- Helm Chart - Pre-packaged Kubernetes applications
- Terraform - Infrastructure resources managed by Terraform
Environments
Environments define where your services run. Each environment represents a deployment target in a customer’s cloud account:- AWS - Deploy to Amazon Web Services
- GCP - Deploy to Google Cloud Platform
- Azure - Deploy to Microsoft Azure
Installations
Installations connect services to environments. They define environment-specific configuration for each service deployment:- Server Installation - Configure replicas, resources, environment variables, ingress
- Job Installation - Configure schedules, concurrency, resource limits
- Helm Chart Installation - Provide Helm values
- Terraform Installation - Supply Terraform variables
- Blueprint Installation - Deploy pre-configured stacks
Blueprints
Blueprints package multiple services together as reusable deployment units. They enable you to define common deployment patterns with configurable inputs, making it easy to deploy complete stacks across environments.- Blueprint - Package services with inputs for customization
- Preview - Automatic preview environments for pull requests
Releases
Ryvn provides several features for managing how releases are promoted and deployed across environments:- Deploy from branches - Configure one or more branches on a service to create releases automatically on push. Each branch gets its own release channel (
branch:main,branch:staging, etc.). See thebuild.branchesproperty on service types. - Release Channels - Define channels like staging, production, and stable for progressive rollouts
- Promotion Pipelines - Automate release promotion with manual, timed, or canary criteria
- Maintenance Windows - Control when automated deployments can occur
Drift Protection
When Git Sync is active and you modify a resource through the dashboard or API, Ryvn marks it as drifted and prevents git sync from overwriting your changes. You can export dashboard changes to a git branch or remove protection to re-sync from git. See the Drift Protection guide for details.Outputs
Environments and installations can expose outputs that other installations can reference via template syntax. This enables dynamic configuration based on provisioned infrastructure:- Environment outputs like cluster names, VPC IDs, and DNS domains (see environment-specific docs: AWS, Azure, GCP)
- Installation outputs from Terraform modules and other services (see Terraform Outputs)
{{ .ryvn.env.state.cluster_name }} or {{ (serviceInstallation "database").outputs.endpoint }} to reference these values in your configuration.
Navigation
This reference documentation is organized by resource type:- Core Resources - Dive into specific service types, environments, and installations
- Properties - Each page documents all available configuration properties
- Examples - See complete, working configurations at the bottom of each page