pytogo / portforward

Kubernetes Port-Forward Go-Edition For Python

Home Page:https://portforward.readthedocs.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

portforward

image

image

PyPI - Downloads

Documentation Status

Build status

Easy Kubernetes Port-Forward For Python

Installation

Wheels are available for:

  • Windows
  • MacOS X
  • Linux

with Python versions:

  • 3.7
  • 3.8
  • 3.9
  • 3.10
  • 3.11

and architectures:

  • x84_64
  • arm64 (known as M1/Apple Chip - MacOS only)

Requirements for installation from source

The following things are required when there is no wheel available for the target system.

Pip knows how to install portforward.

pip install portforward

Quickstart

import requests

import portforward


def main():
    namespace = "test"
    pod_name = "web"  # You can also use a service name instead
    local_port = 9000  # from port
    pod_port = 80  # to port

    # No path to kube config provided - will use default from $HOME/.kube/config
    with portforward.forward(namespace, pod_name, local_port, pod_port):
        response = requests.get("http://localhost:9000")
        print(f"Done: \n'{response.status_code}'\n'{response.text[:20]}...'")


if __name__ == "__main__":
    main()

Features

  • Native Kubernetes port-forwarding with the .kube/config from the home dir or any other path to config.
  • Portforward for pods and services - the lib will first look for a pod with matching name then for a service
  • Waiting for a pod to become ready
  • Multiple forwards per pod or service
  • As context manager, sync or async client

Development

In case you want to develop on this library itself please take a look at the CONTRIBUTING page.

Credits

This project is enabled by PyO3.

About

Kubernetes Port-Forward Go-Edition For Python

https://portforward.readthedocs.io

License:MIT License


Languages

Language:Python 49.8%Language:Rust 36.2%Language:Makefile 14.1%