Simple Kubernetes Deployment
Project description
Project Eastern
A Kubernetes templating and deployment tool.
Table of Contents
Features
- Simple, logicless template engine designed for YAML
- Work with multiple environments
- In use in production at Wongnai
- Extensible plugin architecture
Installation
Note that Eastern requires kubectl
.
Installing from PyPI
Run pip install eastern
to install.
Running from Docker Image
Eastern is available on Docker Hub for continuous delivery users.
docker run -v `pwd`:/projects/ --rm wongnai/eastern eastern generate /projects/kubernetes.yaml
Installing from Git
- Clone this repository
- Run
python3 setup.py install
. You might to run this as root. - Run
eastern
to verify that it is installed.
Usage
Template language
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
.
Deploy
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
Deploy jobs
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}
.
Plugin
Eastern is extensible. We use Eastern plugins ourselves. The API docs is available on Read the Docs.
License
(C) 2017 Wongnai Media Co, Ltd.
Eastern is licensed under MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file eastern-5.0.0.tar.gz
.
File metadata
- Download URL: eastern-5.0.0.tar.gz
- Upload date:
- Size: 13.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.10.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1b0454065bc58661ab9187449d1d44a72d36ede4612b3f7ba986456f02838b8 |
|
MD5 | 38cde83ca8ae3e41c06a0cb6c9d7475d |
|
BLAKE2b-256 | 603ee0be95cd612c8b0a63f7bfae6ae21d1e5f2c2ad2b8f7b6a55c28508d6500 |
File details
Details for the file eastern-5.0.0-py3-none-any.whl
.
File metadata
- Download URL: eastern-5.0.0-py3-none-any.whl
- Upload date:
- Size: 15.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.10.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82a49518a1657713e299a743b5a08414261194363292390c3a05e3fc3608da60 |
|
MD5 | 92ecaa81d166cec39f0e95c093ae6ad6 |
|
BLAKE2b-256 | b5a394938cf55b37b28361460397080cebae9ce9df0eac2842bfe576d7d5a449 |