Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

deploydocus

What can deploydocus do?

deploydocus, in its first phase, seeks to combine the capabilities of helm and kustomize under one roof.

deploydocus, in a nutshell

  1. It is a Python application. It will do everything that helm v3.x does except it will do it in a Pythonic way.
  2. You don't have to deal with YAML or Go-templates if you don't want to. You can spec the exact same thing using a Python dict
  3. It provides sane starting points for applications meant to be deployed to Kubernetes. They can be re-configured/tweaked by changing only a few keys.
  4. It can deploy applications to clusters in steps. If a deployment process fails, the application deployer can continue from the last failed point.
  5. Instead of a chart - as in helm -, everything is spec-ed as dicts so erroneous specifications are easier to debug - they show up as a stack trace.

Why deploydocus?

or why not stick with helm, kustomize et al

  1. helm does plenty well but reusing a helm chart is hard. Here are some examples.
    1. Swapping out one container image for another is not easy: for example, not all images have the same liveness and readiness.
    2. Not everyone uses secrets or configmaps and also not in the same ways: some use it to mount .env files, others to set environment variables.
    3. Once the base chart changes, the dependent chart breaks easily. This is because hard as YAML is, Go templates are even harder. The tiniest change in indentation using nindent and good luck figuring out what went wrong.
    4. Tooling around Helm charts
  2. Expressing an kustomize idea in it is really really verbose.
    1. On top of that, try chaining a helm post-render hook with kustomize and you will see that the slightest change in what helm renders - say based on what the values are set for a helm chart - the changes you may need to the kustomize patches can be very different. i
    2. Debugging kustomize build failures are difficult in the best of circumstances. Coupled with helm, you will have even more trouble understanding if the failure happened because of helm or because of the kustomize patch.

deploydocus on the other hand, expresses Kubernetes manifests as Python object. Yes, even though behind the scenes, it has no choice but to deal in YAML (or JSON), every Kubernetes manifest is encapsulated in a Python object. To change a deployment, say, to insert an init container, to the deployment spec, is as simple as

deployment["spec"]["template"]["spec"]["initContainers"].append(initContainersList)

deploydocus FAQs?

  • Q. Why is this in Python?

    A. This could have been done using a number of languages but they had to be a scripted language. So C/C++/Go/Rust/Java and the like were out. Any one of the likes of Ruby, Python and Javascript could have fixed the bill.

Metadata

Release files for deploydocus 0.0.1a1

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

Source distribution (sdist)

Source distribution for deploydocus 0.0.1a1
File Size Uploaded
deploydocus-0.0.1a1.tar.gz 29.2 kB Details

Built distribution (wheel)

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

Total release size: 63.7 kB

Release files / deploydocus-0.0.1a1.tar.gz

Download URL deploydocus-0.0.1a1.tar.gz
Size 29.2 kB
Tags Source
SHA-256 checksum
How to use checksums
2178fcdb5ec9712d4a4526a128bdc94b8329cdb01efbb8053935065f5a4d49cc
BLAKE2b-256 checksum
How to use checksums
ad4c0b64da2717402562d3d5de551f441306ecdb03ccebfb4fc3f863baaa60fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.4 CPython/3.12.7 Darwin/24.1.0

Release files / deploydocus-0.0.1a1-py3-none-any.whl

Download URL deploydocus-0.0.1a1-py3-none-any.whl
Size 34.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
09eabc3f406a0be0d751c3df06c9f25f8fe8afe78b0968866c2a7175ab294f54
BLAKE2b-256 checksum
How to use checksums
f7920361244811aae49703e8e8ba247d3e68df41b64783eeb00b9f68b37b1ee0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.4 CPython/3.12.7 Darwin/24.1.0

Release history Release notifications | RSS feed

This release

0.0.1a1 This release

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