Uses old Rust 2015
0.66.0 |
|
---|
#13 in #helm
340KB
7K
SLoC
shipcat
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
- API documentation (from
cargo doc
)
Explicit guides for shipcat is available in the doc directory. In particular:
Dependencies
~31–42MB
~747K SLoC