Skip to main content
Terraform services provision and manage cloud infrastructure using Terraform modules. Use them to create resources like S3 buckets, databases, and other cloud infrastructure.

Build from source

Package Terraform modules from your GitHub repository. Ryvn will package the Terraform files from your repository and create versioned releases that can be deployed across environments.
For Terraform files at the repository root, omit the path field or use ..

Use public modules

From Terraform Registry:
Omit repo when referencing a module from a Terraform Registry
From Public GitHub repo:

Properties

name

string — required Service identifier. Must be lowercase, alphanumeric with hyphens only.

labels

object — optional Key-value labels for grouping and filtering services. Use labels to organize services by team, tier, or any other dimension. Constraints:
  • Maximum 50 labels per service
  • Keys must start with an alphanumeric character and contain only alphanumerics, dots, hyphens, and underscores
  • Keys and values are each limited to 63 characters

type

string — required Must be terraform.

repo

string — conditional GitHub repository in owner/repo format. Required when building from source.

source

string — conditional Terraform module source reference. Required when using public modules. Supports Terraform Registry modules, GitHub, Git repositories, etc. Do not include version/ref—Ryvn manages versioning.

autoApprove

boolean — optional Auto-approve Terraform plans during deployments. Use with caution in production environments.

promotionPipeline

string — optional Name of promotion pipeline to follow for automated release promotion.

maintenanceWindow

string — optional Maintenance window for this service. Automated deployments will only occur during specified intervals.

build.path

string — optional Directory containing .tf files, relative to repository root. Defaults to repository root if not specified. Required when building from source.

build.tagPrefix

string — optional Git tag prefix for versioning. The version number will be appended to this prefix. For example, infra@ creates tags like [email protected].

build.branches

array — optional List of branches that trigger Terraform plans and applies on push. Each entry has a name. When configured, pushing to any listed branch produces a versioned release on the branch:{name} channel. Installations can then track a specific branch using the branch field. Only applies when building from a GitHub repository (repo + build), not when using source. Compatible with promotionPipeline, but a branch release channel can only appear once in a pipeline.

Examples

Using public modules: