Skip to main content
Blueprint installations add all services defined in a blueprint as installations on an environment. Configure blueprint inputs to customize the installation for each environment.
# yaml-language-server: $schema=https://api.ryvn.app/v1/schemas/resources.json
kind: BlueprintInstallation
metadata:
  name: webapp-production
spec:
  blueprint: webapp
  environment: production
  inputs:
    - name: dbPassword
      value: "secure-password"

Properties

blueprint

string — required Name of the blueprint to install. All services defined in the blueprint will be added as installations on the environment.
blueprint: webapp

environment

string — required Target environment for this installation.
environment: production

blueprintInstallationName

string — optional Custom name for this blueprint installation. If not specified, uses the blueprint name.
blueprintInstallationName: webapp-prod

releaseChannel

string — optional Release channel to follow for this installation. If not specified, uses the environment’s channel.
releaseChannel: stable

inputs

array — optional Input parameters to pass to the blueprint. These inputs override any default values defined on the blueprint and are used by services within the blueprint.
inputs:
  - name: dbPassword
    value: "secure-password"
  - name: apiDomain
    value: "api.example.com"

inputs[].name

string — required Name of the blueprint input parameter.
inputs:
  - name: dbPassword

inputs[].value

string — optional Value for the input parameter. Cannot be used with valueFromOrgSecret.
inputs:
  - name: apiDomain
    value: "api.example.com"

inputs[].valueFromVariableGroup

object — optional Reference an environment-scoped variable group to use as the input value. Only valid for map type inputs with isSecret: true. Cannot be used with value or valueFromOrgSecret.
inputs:
  - name: db_credentials
    valueFromVariableGroup:
      name: db-credentials
  - name: db_password
    valueFromVariableGroup:
      name: db-credentials
      key: password
The variable group must exist in the target environment. This is the explicit equivalent of defaultFrom on the blueprint input definition — use defaultFrom when you want a fallback when no value is provided, and valueFromVariableGroup when you want to explicitly bind the input to a variable group.

inputs[].valueFromVariableGroup.name

string — required Name of the variable group in the target environment.

inputs[].valueFromVariableGroup.key

string — optional The specific key to get from the variable group. If not specified, the entire variable group key-value map is used. When a key is specified, only that key’s value is used as the input value.

inputs[].valueFromOrgSecret

object — optional Reference to an organization-level secret for the input value. Cannot be used with value.
inputs:
  - name: dbPassword
    valueFromOrgSecret:
      name: prod-db-credentials
      key: password

inputs[].valueFromOrgSecret.name

string — required Name of the organization secret.
valueFromOrgSecret:
  name: prod-db-credentials
  key: password

inputs[].valueFromOrgSecret.key

string — required Key within the organization secret to get the value from.
valueFromOrgSecret:
  name: prod-db-credentials
  key: password

excludedInstallations

array — optional List of service installations within this blueprint that should be excluded from automatic updates. These installations will not receive automatic updates when the blueprint is updated, allowing you to pin specific services to their current versions.
excludedInstallations:
  - name: redis-cache
  - name: postgres-db

Examples

With organization secrets:
kind: BlueprintInstallation
metadata:
  name: webapp-production
spec:
  blueprint: webapp
  environment: production
  inputs:
    - name: dbPassword
      valueFromOrgSecret:
        name: prod-db-credentials
        key: password
    - name: apiKey
      valueFromOrgSecret:
        name: prod-api-keys
        key: stripe_key
Multiple blueprints:
kind: BlueprintInstallation
metadata:
  name: webapp-production
spec:
  blueprint: webapp
  environment: production
  inputs:
    - name: environment
      value: "production"
    - name: dbPassword
      valueFromOrgSecret:
        name: prod-credentials
        key: db_password
---
kind: BlueprintInstallation
metadata:
  name: monitoring-production
spec:
  blueprint: monitoring
  environment: production
  inputs:
    - name: slackWebhook
      valueFromOrgSecret:
        name: prod-webhooks
        key: slack_url
Mixed inputs:
kind: BlueprintInstallation
metadata:
  name: platform-production
spec:
  blueprint: platform
  environment: production
  inputs:
    - name: region
      value: "us-east-1"
    - name: instanceType
      value: "t3.large"
    - name: awsAccessKey
      valueFromOrgSecret:
        name: prod-aws-credentials
        key: access_key
    - name: awsSecretKey
      valueFromOrgSecret:
        name: prod-aws-credentials
        key: secret_key
    - name: encryptionEnabled
      value: "true"
With variable groups:
kind: BlueprintInstallation
metadata:
  name: api-with-db-production
spec:
  blueprint: api-with-db
  environment: production
  inputs:
    - name: db_credentials
      valueFromVariableGroup:
        name: db-credentials
Excluding installations from updates:
kind: BlueprintInstallation
metadata:
  name: webapp-production
spec:
  blueprint: webapp
  environment: production
  excludedInstallations:
    - name: postgres-db
    - name: redis-cache
  inputs:
    - name: environment
      value: "production"