Skip to content
Deploy right meow! 🚢😾
Rust Shell Makefile Dockerfile CSS JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci [DEVP-1171] Remove enum from dataHandling field names to allow looser… ( Jan 7, 2020
.github/workflows rustfmt + clippy ci (#393) Feb 10, 2020
examples manifest.workload + statefulset basic support (#380) Feb 5, 2020
logo New Logo (#272) Sep 3, 2019
merge 0.146 with eventstream logic (#392) Feb 10, 2020
raftcat upgrade reqwest to 0.10 (#403) Feb 21, 2020
scripts bump versions + fix version script (shellcheck) Feb 7, 2019
shipcat_cli Better error messages in async (#408) Feb 24, 2020
shipcat_definitions upgrade reqwest to 0.10 (#403) Feb 21, 2020
shipcat_filebacked Better error messages in async (#408) Feb 24, 2020
tests Remove teams support in shipcat.conf (#354) Nov 16, 2019
.dockerignore fix docker image Nov 19, 2018
.editorconfig [IDM-104] Extract reading manifests from files from `shipcat_definiti… Mar 21, 2019
.gitattributes gitattrs take 2 Oct 9, 2019
.gitignore HANDS-35 (#349) Nov 20, 2019 org rename docs (#321) Oct 18, 2019
Cargo.lock upgrade reqwest to 0.10 (#403) Feb 21, 2020
Cargo.toml Fixes for speedups (#267) Aug 21, 2019
Dockerfile remove old tiller logic + make template verification useful (#375) Jan 22, 2020
Dockerfile.circleci [OB-61] kubernetes 1.15.5 client (#326) Oct 21, 2019
Dockerfile.kongfig Support for Kongfig output (#211) Oct 10, 2018
Dockerfile.raftcat fix image Nov 19, 2018
LICENSE open source cleanups Oct 11, 2018
Makefile rustfmt + clippy ci (#393) Feb 10, 2020 org rename docs (#321) Oct 18, 2019
rustfmt.toml rustfmt + clippy ci (#393) Feb 10, 2020


Shipcat logo

CircleCI Docker Repository on Quay

A standardisation tool and security layer on top of kubernetes to config manage microservices. Developers write manifests:

name: webapp
image: clux/webapp-rs
version: 0.2.0
    cpu: 100m
    memory: 100Mi
    cpu: 300m
    memory: 300Mi
replicaCount: 2
  uri: /health
httpPort: 8000
- minikube
  team: Doves

and shipcat creates a 2 replica kubernetes deployment for this sample webapp, with a health check to ensure smooth upgrades. Contacts will be slack notified on upgrades.

Secrets are managed by Vault and resolved by shipcat pre-merge, and pre-upgrade.


Browse the API documentation, or the setup guides available at:


Shipcat is made up of three main components:

  • shipcat_definitions - allowed syntax in our kube clusters - manifest.yml + shipcat.conf
  • shipcat - the pipeline cli and validator useable by developers and CI
  • raftcat - an kubernetes api/watcher that reads the shipcatmanifests custom resource


While shipcat mainly deals with kubernetes, there are extensive and optional integrations with:

and some minor convenience integrations from common technologies like: Grafana, CircleCI,,, Sentry, New Relic

CLI installation

  • Mac/Linux users can install from the releases page
  • Users with rust installed can use git pull && cargo build
  • Babylon employees can brew install shipcat or brew update && brew upgrade shipcat via the internal brew tap

See the building guide, for setting up auto-complete, and being able to use from outside a manifests repo.

CLI Usage

Define your manifest.yml file in a manifests repo, make sure shipcat validate passes.

You either need to have a ~/.kube/config whose current-context is set to the shipcat region you wish to validate, or pass the shipcat region in explicitly with -r region.

If you have vault read credentials (a VAULT_TOKEN evar, or a ~/.vault-token file) you can validate secret existence and generate the completed manifest (values):

shipcat validate webapp --secrets

# Generate completed manifest (what's passed to your chart)
shipcat values webapp -s

If you have helm installed you can generate the helm template via the associated helm chart:

# Pass completed manifest to helm template
shipcat template webapp


Apache 2.0 licensed. See LICENSE for details.

You can’t perform that action at this time.