starkandwayne/genesis-index

Name: genesis-index

Owner: Stark & Wayne

Description: An index for Genesis to look up Stemcell / Release metadata.

Created: 2016-06-22 15:17:44.0

Updated: 2017-04-05 11:31:54.0

Pushed: 2017-06-15 16:34:19.0

Homepage: null

Size: 1909

Language: Go

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Genesis Index

genesis-index is a small CF-ready application that tracks stemcells and releases from bosh.io and other places. The [genesis][genesis] utility uses the index to look up versions, URLs and SHA1 checksums of said releases and stemcells.

Using the CLI

indexer is a small Bash script that provides a basic command-line interface for dealing with the Genesis Index.

It obeys the following environment variables:

Here are the commands:

xer version (release|stemcell) NAME [VERSION]
xer show    (release|stemcell) NAME
xer check   (release|stemcell) NAME VERSION
xer create  (release|stemcell) NAME URL
xer remove  (release|stemcell) NAME [VERSION]
xer releases
xer stemcells
xer help

So, for example, to get the latest version of the SHIELD BOSH release:

dexer version release shield

Or, to get the SHA1 sum of v19 of the Consul BOSH release:

dexer version release consul 19

API Overview

The Genesis Index API strives to be simple and clean

Get a List of Tracked Releases
/v1/release
Get Latest Versions of All Tracked Releases
/v1/release/latest
Get All Release Versions
/v1/release/:name
Get Release Metadata
/v1/release/:name/metadata
Get The Latest Release Version
/v1/release/:name/latest
Get a Specific Release Version
/v1/release/:name/v/:version
Start Tracking a New Release

(this endpoint requires authentication)

 /v1/release

ame": "release name",
rl":  "https://wherever/to/get/it?v={{version}}"

Check a Specific Release Version

(this endpoint requires authentication)

/v1/release/:name/v/:version
Stop Tracking a Release

(this endpoint requires authentication)

TE /v1/release/:name
Drop a Release Version

(this endpoint requires authentication)

TE /v1/release/:name/v/:version
Get a List of Tracked Stemcells
/v1/stemcell
Get Latest Versions of All Tracked Stemcells
/v1/stemcell/latest
Get All Stemcell Versions
/v1/stemcell/:name
Get Stemcell Metadata
/v1/stemcell/:name/metadata
Get The Latest Stemcell Version
/v1/stemcell/:name/latest
Get a Specific Stemcell Version
/v1/stemcell/:name/v/:version
Start Tracking a New Stemcell

(this endpoint requires authentication)

 /v1/stemcell

ame": "stemcell name",
rl":  "https://wherever/to/get/it?v={{version}}"

Check a Specific Stemcell Version

(this endpoint requires authentication)

/v1/stemcell/:name/v/:version
Stop Tracking a Stemcell

(this endpoint requires authentication)

TE /v1/stemcell/:name
Drop a Stemcell Version

(this endpoint requires authentication)

TE /v1/stemcell/:name/v/:version

Installation And Operation

To deploy to Pivotal Web Services:

ush

You need to bind a PostgreSQL database to your running app. The application will automatically detect the service if it is tagged postgres.

The following environment variables should also be set:

Pipelining The Updates

Tracking all those versions and letting Genesis Index know when they need updated is tedious work. Let's make the robots do it!

The pipeline/ directory contains the scripts for building a concourse pipeline based off of the current configured set of tracked releases and stemcells. To use it:

peline/repipe

At the moment, it's tied directly to the Stark & Wayne concourse installation, under the alias sw. That may change in the future

(Note: the ci/ directory name is reserved for a future in which we want / need to do CI/CD for the Genesis Index code / deployment itself.) if anyone is interested in more flexibility.


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.