Kubetools is a tool and processes for developing and deploying microservices to Kubernetes.
Project description
Kubetools
Kubetools is a tool and processes for developing and deploying microservices to Kubernetes. Say that:
- You have a bunch of repositories, each containing one or more microservices
- You want to deploy each of these microservices into one or more Kubernetes clusters
- You want a single configuration file per project (repository)
And you would like:
- Development setup should be near-instant - and not require specific K8s knowledge
- Deployment to production can be automated - and integrated with existing CI tooling
Kubetools provides the tooling required to achieve this, by way of two CLI tools:
ktd
: generates 100% local development environments using Docker/docker-composekubetools
: deploys projects to Kubernetes, handling any changes/jobs as required
Both of these use a single configuration file, kubetools.yml
, for example a basic django
app:
name: my-app
containerContexts:
django_app:
build:
registry: my-registry.net
dockerfile: Dockerfile
dev:
volumes:
- ./:/opt/django_app
upgrades:
- name: Upgrade database
containerContext: django_app
command: [./manage.py, migrate, --noinput]
tests:
- name: Nosetests
containerContext: django_app
command: [./manage.py, test]
deployments:
my-app-webserver:
containers:
uwsgi:
command: [uwsgi, --ini, /etc/uwsgi.conf]
containerContext: django_app
ports:
- 80
dev:
command: [./manage.py, runserver, '0.0.0.0:80']
dependencies:
mariadb:
containers:
mariadb:
image: mariadb:v10.4.1
With this in your current directory, you can now:
# Bring up a local development environment using docker-compose
ktd up
# Deploy the project to a Kubernetes namespace
kubetools deploy my-namespace
Installing
pip install kubetools
Developing
Install the package in editable mode, with the dev extras:
pip install -e .[dev]
Releasing
- Update CHANGELOG to add new version and document it
- In GitHub, create a new release
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
kubetools-12.2.0.tar.gz
(41.3 kB
view hashes)
Built Distribution
kubetools-12.2.0-py3-none-any.whl
(51.1 kB
view hashes)
Close
Hashes for kubetools-12.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c1378376e0c95dffc579505be226c8dc00fa900747ac749a9c329fa1977c8176 |
|
MD5 | c6548d25d4ab18438bbd078ae6e1d3d1 |
|
BLAKE2b-256 | 6f1de3550dde81e2b9a75b4ab9f067c1d9b2302c36840364ae030f40b6e67dea |