Skip to main content

kubeyard

Latest Version Supported Python versions Wheel Status License Build

A utility to develop, test and deploy Kubernetes microservices.

Requirements

  • bash
  • minikube
  • kubectl
  • docker
  • conntrack

Important: Kubeyard is tested on:

  • minikube == v1.29.0 (should work with v1.29.0 and above)
  • docker == 20.10.23 (should work with any version)
  • kubectl == v1.21.14 (should work with v1.21.14 and above)

Installation

rm -rf $HOME/kubeyard-venv
virtualenv -p python3 $HOME/kubeyard-venv
. $HOME/kubeyard-venv/bin/activate
pip install kubeyard
echo '. $HOME/kubeyard-venv/bin/activate' >> $HOME/.bashrc

Configuration

Settings come from three layers, each overriding the one before:

  1. defaults built into kubeyard
  2. the project's config/kubeyard.yml
  3. your ~/.kubeyard/context.yml

Your own file wins over everything, so keep it to machine-wide settings such as KUBEYARD_MODE or KUBEYARD_VM_DRIVER. A project-level key placed there applies to every project on the machine, and no project can override it: if one of them needs a different value, it has no way to ask for one.

Every context key is exported as an environment variable to custom scripts and to Docker builds.

Workspaces

A workspace is an isolated development environment: one Kubernetes namespace (ws-<name>) holding the services you are changing, with every other service aliased back to default. This lets several coding agents, or several features in flight, run concurrently in separate git worktrees without colliding.

kubeyard workspace create example
cd .worktrees/example
kubeyard build && kubeyard deploy

create makes the git worktree too, on a branch ws-<name>, and prints the path to cd into, along with how to tear it down again.

The workspace is recorded in a .kubeyard-workspace file in the worktree, so every later command picks it up automatically. Add both that filename and .worktrees/ to the repository's .gitignore.

kubeyard workspace show       # what is deployed here versus aliased
kubeyard undeploy             # put this service back on the shared instance
kubeyard workspace destroy    # remove the whole workspace

Seeding development data

A project can declare how to load its development data:

dev_seed_command: python -m tests.demo
dev_seed_pod: api            # optional; defaults to the shortest running pod name

kubeyard seed then runs that command inside the deployed pod, in the namespace kubeyard already knows - so from a workspace it seeds that workspace's database.

deploy runs it for you when it has just created the database - so a new workspace, or a new checkout of the shared environment, comes up with data already in it. A redeploy finds the database present and leaves it alone.

Without a .kubeyard-workspace file, kubeyard behaves exactly as it always has and targets the shared environment.

See docs/workspaces.md for why workspaces exist, how the alias overlay works, and the limits worth knowing before relying on them.

Release files for kubeyard 1.3.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kubeyard 1.3.2
File Size Uploaded
kubeyard-1.3.2.tar.gz 114.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for kubeyard 1.3.2
File Interpreter ABI Platform
kubeyard-1.3.2-py3-none-any.whl Python 3 none any Details

Total release size: 256.8 kB

Release files / kubeyard-1.3.2.tar.gz

Download URL kubeyard-1.3.2.tar.gz
Size 114.6 kB
Tags Source
SHA-256 checksum
How to use checksums
711c3f48cd1956a7d97eca472bfe5dd0c64337bf303ff1cfd3f39ccf45090b71
BLAKE2b-256 checksum
How to use checksums
f2fde51036896cd4983c995a10452cbf6632f8cfe98a322c28ea85c68c8e49b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / kubeyard-1.3.2-py3-none-any.whl

Download URL kubeyard-1.3.2-py3-none-any.whl
Size 142.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
398f23efa5949a3294a36d039e19f70969823b15b3f0af970b4b69b1075d7c2c
BLAKE2b-256 checksum
How to use checksums
ee31ec182c66c1e93dfaf7f6dc57fecc50718cf78aba6231a4fea200650ff7d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release history Release notifications | RSS feed

This release

1.3.2 This release

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.11.1

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page