GitXplorerGitXplorer
p

pylot

public
0 stars
0 forks
7 issues

Commits

List of commits on branch master.
Verified
6e1a599d046f8fa1efd8bedaafb97e486dea5b65

Merge pull request #3 from paultiplady/circleci-tweaks

ppaultiplady committed 7 years ago
Unverified
a899d6858f1885aa318ea9ec67903055ffa19990

Improve CircleCI structure

ppaultiplady committed 7 years ago
Verified
c76a97afa05c16fd3341bc0dd8ef4b40f0cfd49a

Merge pull request #2 from paultiplady/configurable-specs

ppaultiplady committed 7 years ago
Unverified
3b9a6760fd1b3782059081ef071fd85062315e20

Temporarily disable client-python test in CI

ppaultiplady committed 7 years ago
Unverified
b3b4b488b099df0d670f184f50ef1e0853f6ce4c

Add LICENSE.md

ppaultiplady committed 7 years ago
Unverified
974405d8b2b6c7c5d6a7e6f2a21ca297fb35bed8

Add Job object, encapsulating a deploy action

ppaultiplady committed 7 years ago

README

The README file for this repository.

Pylot

A Kubernetes deploy tool

Purpose

Pylot is a prototype exploring ways to provide a more user-friendly way to deploy kubernetes applications.

The main design goals are:

  1. to incorporate typing using the client-python Swagger specs, to make writing specs as IDE-friendly as possible
  2. to wrap and/or hide the complexity of client-python's Swagger types if/where possible
  3. to enable the specification of nontrivial scripted deployment flows in Python, such as canary or green-blue deploys.

Getting started

Installing

First install pylot. Currently this project is not hosted on PyPi, so clone the repo and egg-install it:

git clone git@github.com:paultiplady/pylot.git
cd pylot
pip install -e .

Configuration

The Configuration class specifies config values that are to be injected into the application.

class MyConfig(Configuration):
    foo = Field()
    bar = Field(default='BAR')

Job

The Job class encapsulates a deploy job, binding a Configuration to a set of Kubernetes API objects.

At runtime the configuration values will be injected into the Job, producing the final specs to be created.

my_job = Job(
    configuration_cls=MyConfig,
    objects=[V1Pod()],
)

Deploying

After specifying a job, it can be run like so:

pylot deploy --dry-run package.job_module

Note that the string package.job_module refers to the package containing the Job to be run, which must be on the Python path.