portforward

Easy Kubernetes Port-Forward For Python


Keywords
portforward, kubernetes, k8s, go, golang, pypi, python
License
MIT
Install
pip install portforward==0.6.1

Documentation

portforward

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.