https://github.com/coinbase/bifrost
Conventions/Paved Path/ Standard for building deployers
https://github.com/coinbase/bifrost
Last synced: about 1 year ago
JSON representation
Conventions/Paved Path/ Standard for building deployers
- Host: GitHub
- URL: https://github.com/coinbase/bifrost
- Owner: coinbase
- Created: 2018-07-24T13:28:22.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2023-02-14T15:10:28.000Z (about 3 years ago)
- Last Synced: 2025-03-24T10:38:42.097Z (about 1 year ago)
- Language: Go
- Size: 63.5 KB
- Stars: 7
- Watchers: 27
- Forks: 3
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Bifrost
Bifrost is a set of conventions for building a deployer using the Step framework. The goal of this repository is to be a template, a "paved road", to building a deployer quickly and safely. This is accomplished by implementing a demo-deployer that deploys a single EC2 instance (**NOT FOR PRODUCTION**).
### Folder Structure
Here is a quick breakdown to the files in this repository
```
bifrost/
├── .circleci/
│ └── config.yml # example CI setup
├── aws/
│ ├── ec2/ # example ec2 client
│ ├── mocks/ # example mock clients
│ └── aws.go # setup for aws.Clients
├── client/
│ └── client.go # example client code
├── deployer/
│ ├── fuzz_test.go # Fuzz Test example
│ ├── integration_test.go # Tests for the Deployer
│ ├── machine.go # state-machine definition
│ ├── handlers.go # Handler functions for states
│ └── release.go # Bifrost Release
├── releases/
│ └── release.json # example release
├── scripts/
│ └── bootstrap_deplyer # bootstraping script
├── bifrost.go # executable code
├── Gopkg.toml # Go dependencies
└── Dockerfile # Build bifrost for deploy
```
Each folder has a README.md that contains a description of what should exist in that folder.
### Getting Started
The way to use this is to execute in the correct folder in your GOPATH:
```
export ORG=
export DEPLOYER=
git clone git@github.com:coinbase/bifrost.git $DEPLOYER
cd $DEPLOYER
scripts/rename
```
This can be tested by ensuring tests pass with `go test ./...` and Docker builds `docker build`: