Sign inSign up

wongnai/eastern

By wongnai

•Updated about 5 years ago

Simple Kubernetes Deployment

Image
0

5.7K

wongnai/eastern repository overview

⁠Project Eastern

Travis GitHub license Read the Docs PyPI Docker Hub

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
  1. Clone this repository
  2. Run python3 setup.py install. You might to run this as root.
  3. 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 available
  • load! file_1.yaml, file_2.yaml ...: Same as load? 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 running kubectl 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⁠

Tag summary

Content type

Image

Digest

Size

344.6 MB

Last updated

about 6 years ago

docker pull wongnai/eastern