Skip to content

Structure of a Hygroscopic Template

Daniel Silverman edited this page Feb 4, 2015 · 2 revisions

Hygroscope must be run within a directory that is structured as a hygroscopic template. The structure is very simple, consisting of three folders:

.
├── paramsets
│   ├── my-paramset.yaml
│   └── other-paramset.yaml
├── payload
│   └── my-bootstrap.sh
└── template
    ├── instances.yaml
    └── buckets.yaml

paramsets

This directory is used to hold saved paramsets. It may be empty but must be present. Contents of this directory should probably not be checked into Git.

payload

This directory is optional. If it is present, Hygroscope will zip its contents and upload them to S3. Parameters will be generated and automatically passed to your template if the template defines them:

  • HygroscopePayloadBucket
  • HygroscopePayloadKey
    The bucket name and object key (URL path) to the location of the timestamped payload. The template must further create an instance profile with access to this location.
  • HygroscopePayloadSignedUrl
    A signed, time-limited URL (default 1 hour) for accessing the payload from anywhere without additional authentication.

Either or both of these parameters will not be passed if they are not specified in the template, and no parameter prefixed with "Hygroscope" will be interactively prompted for from the command line.

template

The CloudFormation template is described in one or more YAML files in this required directory. The YAML format may be decorated with cfoo grammar, as it will be parsed with cfoo to create the resulting JSON file to be passed to AWS.

Clone this wiki locally