stackql-deploy 2.0.9

Infrastructure-as-code framework for declarative cloud resource management using StackQL
import File from '/src/components/File';
import LeftAlignedTable from '@site/src/components/LeftAlignedTable';

<LeftAlignedTable 
  type="resource[]" 
  required={true} 
  fields={[
    { name: 'resource.name', anchor: 'resourcename' },
    { name: 'resource.type', anchor: 'resourcetype' },
    { name: 'resource.file', anchor: 'resourcefile' },
    { name: 'resource.props', anchor: 'resourceprops' },
    { name: 'resource.exports', anchor: 'resourceexports' },
    { name: 'resource.protected', anchor: 'resourceprotected' },
    { name: 'resource.description', anchor: 'resourcedescription' },
    { name: 'resource.if', anchor: 'resourceif' },
    { name: 'resource.auth', anchor: 'resourceauth' },
    { name: 'resource.sql', anchor: 'resourcesql' },
    { name: 'resource.skipvalidation', anchor: 'resourceskipvalidation' },
  ]} 
/>

Defines resources in your stack, including the properties and their desired state values.

<File name='stackql_manifest.yml'>

```yaml
resources:
- name: network
  description: vpc network for k8s-the-hard-way sample app
  props:
  - name: vpc_name
    description: name for the vpc
    value: "{{ stack_name }}-{{ stack_env }}-vpc"
  exports:
  - vpc_name    
  - vpc_link
```

</File>

:::note

A file with the name of the resource with an `.iql` extension is expected to exist in the `resources` subdirectory of your stack directory.  You can reference a different file using the `file` field as shown here:

<File name='stackql_manifest.yml'>

```yaml
- name: controller_instances
  file: instances.iql
  props:
  - name: num_instances
    value: 3
  - name: instance_name_prefix
    value: "{{ stack_name }}-{{ stack_env }}-controller"
```

</File>

:::