Skip to main content

No project description provided

Project description

Gybe

PyPI Package

Transpile Kubernetes manifests with your simple values.yaml files using python type-hints. Gybe is a simple, declarative, and more pythonic alternative to helm that makes it easier to develop modest kubernetes deployments.

Reqiurements

Python 3.10+

Install

pip install gybe

Example

Create a values.yaml file:

image: python:3
command:
  - python
  - -m
  - http.server

Create a chart.py file:

import gybe


def create_standard_container(image: str, command: list[str]):
    return gybe.k8s.Container(image=image, command=command, name='my-python-server')


@gybe.transpiler
def two_pods(image: str, command: list[str]) -> gybe.Manifest:
    pod_spec = gybe.k8s.PodSpec(
        containers=[create_standard_container(image=image, command=command)],
    )
    return [
        gybe.k8s.Pod(
            kind='Pod',
            apiVersion='v1',
            metadata=gybe.k8s.ObjectMeta(name='pod-1'),
            spec=pod_spec,
        ),
        gybe.k8s.Pod(
            kind='Pod',
            apiVersion='v1',
            metadata=gybe.k8s.ObjectMeta(name='pod-2'),
            spec=pod_spec,
        ),
    ]


if __name__ == '__main__':
    two_pods()

Now run your transpiler with your values file:

python chart.py values.yaml
apiVersion: v1
kind: Pod
metadata:
  name: pod-1
spec:
  containers:
  - command:
    - python
    - -m
    - http.server
    image: python:3
    name: my-python-server
---
apiVersion: v1
kind: Pod
metadata:
  name: pod-2
spec:
  containers:
  - command:
    - python
    - -m
    - http.server
    image: python:3
    name: my-python-server

If you're feeling lucky, you can pipe that into kubectl:

python chart.py values.yaml | kubectl apply -f -
pod/pod-1 created
pod/pod-2 created
kubectl get pods
NAME    READY   STATUS    RESTARTS   AGE
pod-1   1/1     Running   0          5s
pod-2   1/1     Running   0          5s
python chart.py values.yaml | kubectl delete -f -
pod "pod-1" deleted
pod "pod-2" deleted

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

gybe-0.7.0.tar.gz (46.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gybe-0.7.0-py3-none-any.whl (903.1 kB view details)

Uploaded Python 3

File details

Details for the file gybe-0.7.0.tar.gz.

File metadata

  • Download URL: gybe-0.7.0.tar.gz
  • Upload date:
  • Size: 46.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.28.1

File hashes

Hashes for gybe-0.7.0.tar.gz
Algorithm Hash digest
SHA256 57b0ed537dc28b285d9a4eaa8fdefcdb24db44d3731486f27dade3aff13c4332
MD5 415fbf3ef43aa87b55155ba6b8bac172
BLAKE2b-256 9270a650afd6af7409ab1381778819f1c03350a3709e68fc67b313d7247082a0

See more details on using hashes here.

File details

Details for the file gybe-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: gybe-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 903.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.28.1

File hashes

Hashes for gybe-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4814e765d62c7d9c2e0f4ec2e46803b10cba7382cbcfa28bb95e15c29e3a28cc
MD5 241d1bec0900f62bc8dc485a2495172b
BLAKE2b-256 09ada40061622fdbf92e0d0f501b097be876efcb53cad058a518083bf46d643e

See more details on using hashes here.

Supported by

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