Duncan is a Docker deployment tool which aims to be like Tim Duncan: consistent, reliable, and un-flashy.
- Duncan manages Kubernetes Deployment or StatefulSet resources (could be extended but this is all that is currently supported now).
- Managed deployments must contain Kubernetes labels that enable the CLI to identify and manage them
- Dynamic configuration is handled via updating environment variables in both
Consul (unencrypted) and Vault (encrypted) and are managed with the
env
andsecrets
commands respectively - Dynamic configuration is restricted by Consul and Vault ACL policies (read-only and read-write)
- Deployment is also restricted via Consul ACL
- Docker registry is Quay.io (TODO: add support different options)
Usage:
duncan [command]
Available Commands:
config Search ENV/secrets across all applications
deploy Deploy an application
env Manage Consul key/values (ENV vars) for an app
help Help about any command
list List applications
secrets Manage Vault secrets (ENV vars) for an app
version Print the version of duncan
Download a binary release
OR build from source
Requires Golang
# clone to $GOPATH
cd $GOPATH/src/github.com/deepthawtz
git clone git@github.com:deepthawtz/duncan.git && cd duncan
make
make install
# confirm installation
duncan version
cp example_duncan.yml $HOME/.duncan.yml
# populate YAML w/ valid values (ask ops team for help if stuck)