> For the complete documentation index, see [llms.txt](https://bluebricks.co/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bluebricks.co/docs/orchestration/runs/deployment-manifest-file-format.md).

# Environment Manifest File Format

The environment manifest file defines the desired state of a Blueprint in Bluebricks. Each environment is represented as a declarative YAML file, which can be integrated into CI/CD processes to enable Git-based workflows and trigger infrastructure changes.

{% hint style="info" %}
Learn more about using the environment declarative file in [Managing Configuration on Git](/docs/orchestration/bluebricks-git-repository-guide/managing-configuration-on-git.md).
{% endhint %}

### Examples

The following manifest file demonstrates how to declare an environment of an RDS instance to an AWS collection using Bluebricks:

```
---
apiVersion: bricks/v1 
kind: Deployment
metadata:
  name: aws-rds-postgres-bluebricks-staging
spec:
  blueprint: "aws_rds_postgres"
  version: "1.8.0"
  force: false
  planOnly: false
  collection: "bluebricks-staging"
  props:
    rds_postgres_family: postgres16
    rds_postgres_identifier: stage-db
    rds_postgres_engine_version: "16.4"
    rds_postgres_instance_class: db.t4g.micro
    rds_postgres_allocated_storage: 20
    rds_postgres_major_engine_version: "16"
    rds_postgres_max_allocated_storage: 100
    rds_postgres_db_name: bluebricks
    rds_postgres_vpc_private_subnets_ids:
      - "subnet-066c7.....3b6"
      - "subnet-00484.....9d6"
      - "subnet-0321e.....357"
    rds_postgres_create_db_subnet_group: true
    rds_postgres_db_subnet_group_name: staging
    rds_postgres_vpc_security_group_ids:
      - "sg-0e262....536"
```

### Reference

<table><thead><tr><th width="250">Keys</th><th width="418">Description</th><th width="108" data-type="checkbox">Mandatory</th></tr></thead><tbody><tr><td><code>apiVersion</code></td><td>Constant value, should always be <code>bricks/v1</code></td><td>true</td></tr><tr><td><code>kind</code></td><td>Constant value, should always be <code>Deployment</code></td><td>true</td></tr><tr><td><code>metadata</code></td><td>Metadata object, contain non-spec values</td><td>true</td></tr><tr><td><code>metadata.name</code></td><td>The environment name, aka "the slug"</td><td>true</td></tr><tr><td><code>spec</code></td><td>Spec object</td><td>true</td></tr><tr><td><code>spec.blueprint</code></td><td>The name of the blueprint to deploy</td><td>true</td></tr><tr><td><code>spec.version</code></td><td>The blueprint version to deploy</td><td>true</td></tr><tr><td><code>spec.force</code></td><td>Indicate if Orchestrator should skip the "pending for review" step. Default: <code>false</code></td><td>false</td></tr><tr><td><code>spec.planOnly</code></td><td>Indicate if the environment life-cycle ended after the plan step is done. Default: <code>false</code></td><td>false</td></tr><tr><td><code>spec.collection</code></td><td>The targeted collection of the environment. If not provided, targeting the default collection</td><td>false</td></tr><tr><td><code>spec.props</code></td><td>Properties of the environment. Equivalent to <code>props.json</code> file when executing <code>bricks install</code></td><td>true</td></tr><tr><td><code>spec.props.{{name}}</code></td><td>Property name and value</td><td>false</td></tr></tbody></table>
