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
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
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.
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:
GENESIS_INDEX
- The base URL of the Genesis Index. If not
set, defaults to https://genesis.starkandwayne.com
GENESIS_CREDS
- The username and password for accessing the
protected parts of the Index API, separated by a colon.INDEXER_DEBUG
- Set to a non-empty value to enable debuggingHere 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
The Genesis Index API strives to be simple and clean
/v1/release
/v1/release/latest
/v1/release/:name
/v1/release/:name/metadata
/v1/release/:name/latest
/v1/release/:name/v/:version
(this endpoint requires authentication)
/v1/release
ame": "release name",
rl": "https://wherever/to/get/it?v={{version}}"
(this endpoint requires authentication)
/v1/release/:name/v/:version
(this endpoint requires authentication)
TE /v1/release/:name
(this endpoint requires authentication)
TE /v1/release/:name/v/:version
/v1/stemcell
/v1/stemcell/latest
/v1/stemcell/:name
/v1/stemcell/:name/metadata
/v1/stemcell/:name/latest
/v1/stemcell/:name/v/:version
(this endpoint requires authentication)
/v1/stemcell
ame": "stemcell name",
rl": "https://wherever/to/get/it?v={{version}}"
(this endpoint requires authentication)
/v1/stemcell/:name/v/:version
(this endpoint requires authentication)
TE /v1/stemcell/:name
(this endpoint requires authentication)
TE /v1/stemcell/:name/v/:version
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:
AUTH_USERNAME
- The username for authenticated endpointsAUTH_PASSWORD
- The password for authenticated endpointsTracking 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.