fork mirror of shipcat up until july'21 since babylonhealth closed it soon after
APACHE-2.0 License
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
env:
DATABASE_URL: IN_VAULT
resources:
requests:
cpu: 100m
memory: 100Mi
limits:
cpu: 300m
memory: 300Mi
replicaCount: 2
health:
uri: /health
httpPort: 8000
regions:
- minikube
metadata:
team: Doves
repo: https://github.com/clux/webapp-rs
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:
manifest.yml
+ shipcat.conf
shipcatmanifests
custom resourceWhile shipcat mainly deals with kubernetes, there are extensive and optional integrations with:
and some minor convenience integrations from common technologies like: Grafana, CircleCI, Quay.io, logz.io, Sentry, New Relic
git pull && cargo build
brew install shipcat
or brew update && brew upgrade shipcat
via the internal brew tapSee the building guide, for setting up auto-complete, and being able to use from outside a manifests repo.
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.