Properties
service
string — required
Name of the Terraform service to install.
environment
string — required
Target environment for this installation.
name
string — optional
Custom name for this installation. If not specified, uses the service name.
namespace
string — optional
Kubernetes namespace to install into. If not provided, uses the environment’s
default namespace, which has the same name as the environment. Cannot be
changed after install. See Namespaces.
releaseChannel
string — optional
Release channel to follow for this installation. If not specified, uses the
environment’s channel.
dependencies
array — optional
Installations that must be ready before this installation installs for the
first time. Ryvn holds the first install until every entry is satisfied. After
that, dependencies hold nothing: upgrades, configuration changes, and secret
rotations deploy even while a dependency is being reinstalled.
Each entry sets exactly one key:
Dependencies have no version bounds; version requirements belong in the
service’s release dependencies.
When this installation’s release depends on a service and
dependencies names
installations of that service, the release’s range is checked against the named
installations only. See
Installation dependencies.
You can name several installations of the same service. An entry can’t name
this installation, name its own service with service, repeat another entry,
sit beside a serviceInstallation entry of the same service, or form a cycle
with other installations’ dependencies. Installations created by a blueprint
take their dependencies from the blueprint; to set them directly, exclude the
installation from blueprint updates first. See
Installation Dependencies.
Variable Groups
All variable groups in the environment are automatically available to Terraform installations as Kubernetes secrets — no explicit linking required. Terraform variables take literal values, so read individual keys withk8sSecretValue:
Unlike server and job installations, Terraform installations do not use
the
variableGroups field. Any variable group created in the environment is
automatically accessible.config
string or array — optional
Service configuration. For Terraform, this is the terraform variables in YAML
format.
secrets
array — optional
Secrets to be passed to the Terraform module. Each secret can be generated or
get values from blueprint inputs. To share values
across installations, use variable groups: all
environment variable groups are available to Terraform installations as
Kubernetes secrets and can be referenced in config via k8sSecretValue.
secrets[].name
string — required
Name of the secret.
secrets[].generated
object — optional
Configuration for generating a secret automatically. Cannot be used with
values.
secrets[].generated.type
string — required
Type of secret to generate. Valid values: random-string, random-bytes,
rsa-key, ec-key.
secrets[].generated.length
integer — optional
Length of the random string or bytes to generate. Only valid for random-string
and random-bytes types.
secrets[].values
array — optional
Key-value pairs for the secret. Cannot be used with generated.
secrets[].values[].key
string — required
Secret key name.
secrets[].values[].valueFromInput
object — optional
Reference to a blueprint input for the value. If the referenced input has a condition that evaluates to false, this secret key is automatically omitted.
secrets[].values[].valueFromInput.name
string — required
Name of the blueprint input to get the value from.
Outputs
Terraform installation outputs are available to other installations via template syntax. After a Terraform service completes its apply, any outputs defined in the Terraform module become available for reference in other installation configs.Referencing outputs
Use theserviceInstallation template function to reference outputs from a Terraform installation:
{{ (serviceInstallation "installation-name").outputs.* }}
Scalar outputs
Reference simple string, number, or boolean outputs directly:Nested outputs
Access nested object properties using dot notation:Array outputs
Use theindex function to access array elements:
Complex outputs with toJson
For complex data structures, usetoJson to serialize the entire output: