Skip to content

Concourse CI resource to check for new Amazon Machine Images (AMI)

Notifications You must be signed in to change notification settings

renderinc/ami-resource

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AMI Update Resource

A Concourse CI resource to check for new Amazon Machine Images (AMI).

Source Configuration

  • aws_access_key_id: Your AWS access key ID.

  • aws_secret_access_key: Your AWS secret access key.

  • region: Required. The AWS region to search for AMIs.

  • owners: A list of owners to filter for. See the --owners flag in the AWS CLI describe-images documentation.

  • filters: Required. A map of named filters to their values. Check the AWS CLI describe-images documentation for a complete list of acceptable filters and values.

If aws_access_key_id and aws_secret_access_key are both absent, AWS CLI will fall back to other authentication mechanisms. See Configuration setting and precedence

Behaviour

check: Check for new AMIs

Searches for AMIs that match the provided source filters, ordered by their creation date. The AMI ID serves as the resulting version.

Parameters

None.

in: Fetch the description of an AMI

Places the following files in the destination:

  • output.json: The complete AMI description object in JSON format. Check the AWS CLI describe-images documentation for examples.

  • id: A plain text file containing the AMI ID, e.g. ami-5731123e

  • packer.json: The AMI ID in Packer var-file input format, typically for use with packer-resource, e.g.

    {"source_ami": "ami-5731123e"}

out: Check that an AMI exists

For bookkeeping in Concourse—generates a new version immediately so it can be passed to the next job in a pipeline without needing a check to run. Expects a JSON file at input/json with an object containing an ImageId property e.g.

{
  "ImageId": "ami-...",
  ...
}

input can be overridden with the put params input e.g.

put: my-image
params:
  input: other-input

in which case the JSON file is expected at other-input/json.

Parameters

None.

Example

This pipeline will check for a new Ubuntu 14.04 LTS AMI in the Sydney region every hour, triggering the next step of the build plan if it finds one.

resource_types:
- name: ami
  type: docker-image
  source:
    repository: jdub/ami-resource

resources:
- name: ubuntu-ami
  type: ami
  check_every: 1h
  source:
    aws_access_key_id: "..."
    aws_secret_access_key: "..."
    region: ap-southeast-2
    filters:
      owner-id: "099720109477"
      is-public: true
      state: available
      name: ubuntu/images/hvm-ssd/ubuntu-trusty-*server*

jobs:
- name: my-ami
  plan:
  - get: ubuntu-ami
    trigger: true
  - task: build-fresh-image
    ...

About

Concourse CI resource to check for new Amazon Machine Images (AMI)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 96.2%
  • Dockerfile 3.8%