sherlock

module
v0.0.16 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 1, 2021 License: BSD-3-Clause

README

Sherlock

codecov Go Report Card latest build

Sherlock is a devops built and maintained service which serves will maintain a historical record of deployments to all Terra services across all environments. Additionally it will extract delivery metadata from updates to this historical deployment log. In the future it will also act as the control layer for preview environments. The eventual replacement for fiabs.

Warning

This tool is currently in a POC state and under active development. Frequent and potentially breaking changes are to be expected at the moment.

Developing Locally

Sherlock consists of 3 core components. a CLI client, a web server, and a postgres database. To facilitate local development this repo provides utilities to easily spin up a local development environment consisting of the webserver and the database. The cli client can then be used with this local server and db over localhost. Under the hood this process uses docker-compose to build a sherlock server image with your local changes and then spin it up and connect it to a postgres13 container. When running the server locally database changelogs will automatically be applied the server on start up so that the database is setup and ready to go.

Spinning up the local environment is as simple as running make local-up Additionally make local-stop will stop all the containers and make local-down where tear down your local environment completely.

Directories

Path Synopsis
cmd
cli
go-shared module
internal
allocationpools
Package allocationPools defines data structure representing a allocationPool instance and methods for interacting with them it is left to concrete implementations in package db or others to implement these interfaces
Package allocationPools defines data structure representing a allocationPool instance and methods for interacting with them it is left to concrete implementations in package db or others to implement these interfaces
builds
Package builds contains the definitions for a control plan for sherlock's build management systems.
Package builds contains the definitions for a control plan for sherlock's build management systems.
cli
db
Package db contains a variety of utility functions and test helpers for working with Sherlock's database.
Package db contains a variety of utility functions and test helpers for working with Sherlock's database.
environments
Package environments defines data structure representing a environment instance and methods for interacting with them it is left to concrete implementations in package db or others to implement these interfaces
Package environments defines data structure representing a environment instance and methods for interacting with them it is left to concrete implementations in package db or others to implement these interfaces
services
Package services defines the control plane for sherlock's service entities and api routes for interating with those control plane methods
Package services defines the control plane for sherlock's service entities and api routes for interating with those control plane methods
sherlock module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL