A Kubernetes templating and deployment tool.
- Simple, logicless template engine designed for YAML
- Work with multiple environments
- In use in production at Wongnai
- Extensible plugin architecture
Note that Eastern requires kubectl
.
Run pip install eastern
to install.
Eastern is available on Docker Hub for continuous delivery users.
docker run -v `pwd`:/projects/ --rm wongnai/eastern eastern generate /projects/kubernetes.yaml
- Clone this repository
- Run
python3 setup.py install
. You might to run this as root. - Run
eastern
to verify that it is installed.
At its core, Eastern is a YAML templating tool. Eastern provides the following commands as YAML comment.
load? file_1.yaml, file_2.yaml ...
: Load the first file availableload! file_1.yaml, file_2.yaml ...
: Same asload?
but throw when no file is loaded.
The file name and contents may contains variable interpolation. Available variable is
${NAMESPACE}
: Name of namespace
Additional variables can be passed by -s var=value
.
For example:
image: wongnai/eastern:${IMAGE_TAG}
env:
# load! env-${NAMESPACE}.yaml, env.yaml
See full deployment example in the example folder.
Once you have written a template, test it with eastern generate path/to/file.yaml namespace -s IMAGE_TAG=2.0
.
To deploy, run eastern deploy path/to/file.yaml namespace
.
Available options:
--set var=value
(-s
): Set additional template variables--edit
(-e
): Edit resulting YAML before deploying--no-wait
: Exit after runningkubectl
without waiting for rolling deploy
Eastern comes with Job deployment tool.
To start a job, run eastern job path/to/file.yaml namespace image_tag
. The file must have the job as its only document. Eastern will add image_tag
as job suffix, deploy, wait until job's completion and remove the job.
Supplied image_tag
is available in the template as ${IMAGE_TAG}
.
Eastern is extensible. We use Eastern plugins ourselves. The API docs is available on Read the Docs.
(C) 2017 Wongnai Media Co, Ltd.
Eastern is licensed under MIT License