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
easternto 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.yamlSee 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 runningkubectlwithout 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