NAME
Kubernetes::REST::LWPIO - HTTP client using LWP::UserAgent
VERSION
version 1.110
SYNOPSIS
use Kubernetes::REST::LWPIO;
my $io = Kubernetes::REST::LWPIO->new(
ssl_verify_server => 1,
ssl_ca_file => '/path/to/ca.crt',
);
# Access the LWP::UserAgent for debugging (e.g. with LWP::ConsoleLogger)
use LWP::ConsoleLogger::Easy qw(debug_ua);
debug_ua($io->ua);
DESCRIPTION
HTTP client implementation using LWP::UserAgent for making Kubernetes API requests. This is the default IO backend for Kubernetes::REST.
The ua attribute is exposed so that debugging tools like LWP::ConsoleLogger can be attached to inspect HTTP traffic.
Response bodies are returned as bytes, via decoded_content(charset => 'none'): Content-Encoding is undone, the charset is left to Kubernetes::REST. See "Encoding contract" in Kubernetes::REST::Role::IO.
This backend does not implement call_duplex: Kubernetes::REST methods that need full-duplex transport (port_forward, exec, attach) croak against it by design. Use Net::Async::Kubernetes for those.
ssl_verify_server
Boolean. Whether to verify the server's SSL certificate. Defaults to true.
ssl_cert_file
Path to a client certificate file (PEM) for TLS client-certificate authentication. Ignored when ssl_cert_pem is set.
ssl_cert_pem
Client certificate as a PEM string, for TLS client-certificate authentication. Takes precedence over ssl_cert_file.
ssl_key_file
Path to the private key file (PEM) matching ssl_cert_file or ssl_cert_pem. Ignored when ssl_key_pem is set.
ssl_key_pem
Private key as a PEM string, matching ssl_cert_file or ssl_cert_pem. Takes precedence over ssl_key_file.
ssl_ca_file
Path to a CA certificate file (PEM) used to verify the server's certificate. Ignored when ssl_ca_pem is set.
ssl_ca_pem
CA certificate as a PEM string, used to verify the server's certificate. Takes precedence over ssl_ca_file.
timeout
Timeout in seconds for HTTP requests. Defaults to 310 (slightly more than the Kubernetes default watch timeout of 300s).
ua
The underlying LWP::UserAgent instance. Access this to attach middleware such as LWP::ConsoleLogger for HTTP debugging.
call
my $response = $io->call($req);
Execute an HTTP request. Receives a fully prepared Kubernetes::REST::HTTPRequest (URL, headers, content all set). Returns a Kubernetes::REST::HTTPResponse.
A failure of LWP::UserAgent itself (cannot connect, TLS error, timeout, unsupported scheme, LWP::Protocol::https not installed) is returned as status 599 with the message as content; any other status is the API server's. See "Error contract" in Kubernetes::REST::Role::IO.
call_streaming
my $response = $io->call_streaming($req, sub { my ($chunk) = @_; ... });
Execute an HTTP request with streaming response. The $data_callback is called with each chunk of data as it arrives.
Used internally by "watch" in Kubernetes::REST and "log" in Kubernetes::REST for the Watch and Pod Log APIs.
Transport failures, a transfer cut off in the middle of the body included, come back as status 599. If the callback dies, the transfer is aborted and the same exception is rethrown unchanged, with no response. See "Error contract" in Kubernetes::REST::Role::IO.
SEE ALSO
Kubernetes::REST - Main API client
Kubernetes::REST::Role::IO - IO interface role
Kubernetes::REST::HTTPTinyIO - Alternative HTTP::Tiny backend
LWP::ConsoleLogger - HTTP debugging tool
SUPPORT
Issues
Please report bugs and feature requests on GitHub at https://github.com/pplu/kubernetes-rest/issues.
IRC
Join #kubernetes on irc.perl.org or message Getty directly.
CONTRIBUTING
Contributions are welcome! Please fork the repository and submit a pull request.
AUTHORS
Torsten Raudssus <getty@cpan.org>
Jose Luis Martinez Torres <jlmartin@cpan.org>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2019-2026 by Jose Luis Martinez Torres <jlmartin@cpan.org>.
This is free software, licensed under:
The Apache License, Version 2.0, January 2004