Create a Workload Manifest

Create a Workload Manifest to deploy AWS resources

Article Tags
On This Page
ResourcesParametersProtected ResourcesFormattingExample ManifestSee also

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 two top level sections below.

Resources

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

StaxVPC:
    Type: AWS::Cloudformation
    Name: Stax-dev-VPC
    Parameters:
        VpcCidr: 10.0.1.0/24
        RedundantNAT: false

Parameters

These are the parameters that the AWS resources require in order to be deployed. Input parameters defined here will be passed to anything defined in Resources above. Stax parameters are available in all workloads by default:

  • StaxAccountId
  • StaxAwsAccountId
  • StaxOrgAlias
  • StaxOrgId
  • StaxServiceName
  • StaxWorkloadId
  • StaxWorkloadName

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 or TemplateBody keys are optional values, but one 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

Example Manifest

An example Manifest is shown below. This Manifest creates a VPC:

Resources:
  - WorkloadVpc:
      Type: AWS::Cloudformation
      TemplateURL: s3://example-artifactbucket-162c4klr0aklc/workload-manifest/vpc.yml
      Parameters:
        CIDR: 10.0.1.0/24
        ServiceName: service_name
        Branch: branch
        Stage: stage
        DomainName: domain.local
      ProtectedResources:
        All:
          - CustomResource1

See also