Skip to main content

Create a Workloads Manifest

A Manifest is a YAML file. Stax interprets the Manifest and deploys whatever is outlined within the Manifest. Stax Workloads utilize AWS CloudFormation for deployment. The Manifest can reference one or more CloudFormation templates which Stax will execute.

When defining your Manifest, it should consist of the sections below.

Resources

The AWS resources that will be deployed. Resources will be sequentially created in order of definition.

The below example will deploy two Cloudformation Stacks. First the S3Bucket Stack, then the EC2Instance Stack.

A Stax Workloads manifest can support up to 10 individual resources.

Resources:
- S3Bucket:
Type: AWS::Cloudformation
TemplateURL: s3://example-artifactbucket/cloudformation/s3.yml
- EC2Instance:
Type: AWS::Cloudformation
TemplateURL: s3://example-artifactbucket/cloudformation/ec2.yml

Parameters

These are the parameters that the AWS resources require in order to be deployed. Read more about Workload Parameters.

Protected Resources

These are the CloudFormation resources that you wish to protect from being modified, replaced, or deleted. You can either list the individual resources you want protected or pass All for the whole stack to be protected. Read more about Protected Resources.

Formatting

When creating a Manifest, utilize the following formatting:

  1. Top Level key Resources must be of list type

  2. Values in Resources list must be of dictionary type

  3. Each item in the dictionary must include the Type key

  4. TemplateURL is required for a valid Workload Manifest

  5. Parameters key is optional, but the value must be of dictionary type

  6. ProtectedResources key is optional, but must be of dictionary type

Limitations

  • When naming your Workloads and resources, be sure that lengths do not exceed the defined limits.

Example Manifest

An example Manifest is shown below. This Manifest creates the S3Bucket Cloudformation Stack and passes two parameters to the s3.yml template. Protection has also been enabled on the CustomResource1 resource in the s3.yml template.

Resources:
- S3Bucket:
Type: AWS::Cloudformation
TemplateURL: s3://example-artifactbucket/cloudformation/s3.yml
Parameters:
BucketName: my-s3-bucket
BucketDeletionPolicy: Retain
ProtectedResources:
All:
- CustomResource1

Validation

Stax validates the structure of Workload Manifests, as well as ensuring that the references to CloudFormation templates are reachable, and are valid JSON or YAML.

When developing a CloudFormation template, it is recommended to validate the template using the AWS Console, CLI, or API. When doing so, target a similar account and region to the Workload Catalog item's intended target.