Skip to main content

Simple Kubernetes Deployment

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eastern-5.0.0.tar.gz (13.7 kB view details)

Uploaded Source

Built Distribution

eastern-5.0.0-py3-none-any.whl (15.4 kB view details)

Uploaded Python 3

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

Hashes for eastern-5.0.0.tar.gz
Algorithm Hash digest
SHA256 a1b0454065bc58661ab9187449d1d44a72d36ede4612b3f7ba986456f02838b8
MD5 38cde83ca8ae3e41c06a0cb6c9d7475d
BLAKE2b-256 603ee0be95cd612c8b0a63f7bfae6ae21d1e5f2c2ad2b8f7b6a55c28508d6500

See more details on using hashes here.

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

Hashes for eastern-5.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 82a49518a1657713e299a743b5a08414261194363292390c3a05e3fc3608da60
MD5 92ecaa81d166cec39f0e95c093ae6ad6
BLAKE2b-256 b5a394938cf55b37b28361460397080cebae9ce9df0eac2842bfe576d7d5a449

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page