Maintainer: Nick Schuch
M8s is a CLI and API for building temporary environments in Kubernetes.
Often in your CI/CD workflows, you want a real environment to run automated or manual tests. For example, you might want to preview changes you are making in a branch or Pull Request. m8s provides a simple tool for acheiving this. It takes a docker compose file, and translates that into a pod definition Kubernetes understands, and deploys it on Kubernetes. The pod is ephemeral, meaning it's not meant to stick around for long, and any data will be deleted once the pod is removed.
To get started you will need 1 of each of the following:
Cluster
Kubernetes and the M8s API server running.
- GKE
- Openshift - Coming soon...
- Kops - Coming soon...
Pipelines
A continuous integration service / setup which will send information to the M8s API.
- CircleCI
- Bitbucket Pipelines - Coming soon...
- Jenkins - Coming soon...
- TravisCI - Coming soon...
Projects
Example implementations for applications.
Built in partnership with:
- Transport for NSW - https://www.transport.nsw.gov.au
Our product roadmap can be found here
- Dependency management - https://github.com/golang/dep
- Build - https://github.com/mitchellh/gox
- Linting - https://github.com/golang/lint
- GitHub Releases - https://github.com/tcnksm/ghr
- Install Go: https://golang.org/doc/install
- Fork this repository
- Checkout the code under your GOPATH
# Make sure the parent directories exist.
mkdir -p $GOPATH/src/github.com/<your github>
# Checkout the codebase.
git clone [email protected]:<your github>/m8s $GOPATH/src/github.com/<your github>/m8s
# Change into the project to run workflow commands.
cd $GOPATH/src/github.com/<your github>/m8s
Installing a new dependency
dep ensure -add github.com/foo/bar
Running quality checks
make lint test
Building binaries
make build
Release
Release artifacts are pushed to the github releases page when tagged
properly. Use semantic versioning prefixed with v
for version scheme. Examples:
v1.0.0
v1.1.0-beta1