Uses old Rust 2015

0.66.0 Oct 22, 2018

#13 in #helm

Custom license

340KB
7K SLoC

shipcat

CircleCI Docker Repository on Quay

A standardisation tool and yaml abstraction on top of kubernetes via shipcat.yml manifest files. Introduction to shipcat.

Lives on your ship.

Installation

  • Babylon employees can use brew install shipcat via homebrew-babylon
  • Mac/Linux users can install from the releases page
  • Users with rust installed can use git pull && cargo build

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

Usage

In general, define your shipcat.yml file in the manifests repo and make sure shipcat validate passes.

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

shipcat validate gate-annotator --secrets

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

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

# Pass completed manifest to helm template
shipcat template gate-annotator

Upgrading and diffing

With rollout access (kubectl auth can-i rollout Deployment) you can also perform upgrades:

# helm upgrade corresponding service (check your context first)
shipcat apply gate-annotator

This requires helm diff installed to work, and it will work against the region in your context (kubectl config current-context).

For auditing; this also uses slack credentials to notify about these upgrades:

export SLACK_SHIPCAT_HOOK_URL=...
export SLACK_SHIPCAT_CHANNEL="#kubernetes"

Documentation

Explicit guides for shipcat is available in the doc directory. In particular:

Dependencies

~31–42MB
~747K SLoC