kr8s.asyncio.portforward¶
Objects for managing a port forward connection.
This module provides a class for managing a port forward connection to a Kubernetes Pod or Service.
Classes¶
Start a tcp server and forward all connections to a Pod port. |
Module Contents¶
- class kr8s.asyncio.portforward.PortForward(resource: kr8s._objects.APIObject, remote_port: int, local_port: LocalPortType = 'match', address: list[str] | str = '127.0.0.1')¶
Start a tcp server and forward all connections to a Pod port.
You can either pass a
kr8s.objects.Pod
or any resource with aready_pods
method such as akr8s.objects.Service
.Note
The
ready_pods
method should return a list of Pods that are ready to accept connections.- Args:
- resource:
The Pod or Resource to forward to.
- remote_port:
The port on the Pod to forward to.
- local_port:
The local port to listen on. Defaults to
"match"
, which will match theremote_port
. Set to"auto"
orNone
to find an available high port. Set to anint
to specify a specific port.- address:
List of addresses or address to listen on. Defaults to [“127.0.0.1”], will listen only on 127.0.0.1.
- Example:
This class can be used as a an async context manager or with explicit start/stop methods.
Context manager:
>>> async with PortForward(pod, 8888) as port: ... print(f"Forwarding to port {port}") ... # Do something with port 8888 on the Pod
Explict start/stop:
>>> pf = PortForward(pod, 8888) >>> await pf.start() >>> print(f"Forwarding to port {pf.local_port}") >>> # Do something with port 8888 on the Pod >>> await pf.stop()
Explict bind address:
>>> async with PortForward(pod, 8888, address=["127.0.0.1", "10.20.0.1"]) as port: ... print(f"Forwarding to port {port}") ... # Do something with port 8888 on the Pod, port will be bind to 127.0.0.1 and 10.20.0.1
- server = None¶
- servers: list[asyncio.Server] = []¶
- remote_port¶
- address = '127.0.0.1'¶
- pod = None¶