NAME
IO::K8s::GatewayAPI - Gateway API CRD resource map provider for IO::K8s
VERSION
version 1.108
SYNOPSIS
my $k8s = IO::K8s->new(with => ['IO::K8s::GatewayAPI']);
my $gw = $k8s->new_object('Gateway',
metadata => { name => 'my-gateway', namespace => 'default' },
spec => {
gatewayClassName => 'istio',
listeners => [{ name => 'http', port => 80, protocol => 'HTTP' }],
},
);
print $gw->to_yaml;
DESCRIPTION
Resource map provider for the Kubernetes Gateway API Custom Resource Definitions, modeled to full depth (D5/D6): spec and status are typed field-by-field, nested classes carry their upstream Go type names, and embedded core types (LabelSelector-shaped structs, ...) are referenced rather than re-modeled. 143 classes across 14 GVKs: 10 Kinds at gateway.networking.k8s.io/v1 (GA/Standard channel) and, per D7, every Kind upstream also serves at gateway.networking.k8s.io/v1beta1 -- Gateway, GatewayClass, HTTPRoute and ReferenceGrant.
The Gateway API is an official Kubernetes SIG-Network project that provides expressive, extensible, and role-oriented interfaces for service networking.
Not loaded by default — opt in via the with constructor parameter of IO::K8s or by calling $k8s->add('IO::K8s::GatewayAPI') at runtime.
Included CRDs (gateway.networking.k8s.io/v1)
These are the storage version of every Kind except ReferenceGrant, so every short name except ReferenceGrant resolves here.
GatewayClass(cluster-scoped) -- describes a class of Gateways available to the user for creatingGatewayresources, provided by the infrastructure/controller (the Gateway API counterpart of Kubernetes'IngressClass).Gateway(namespaced) -- represents an instance of service-traffic handling infrastructure by binding Listeners to a set of IP addresses; creating one triggers itsGatewayClass's controller to provision or reconfigure the underlying load balancer.HTTPRoute(namespaced) -- provides a way to route HTTP requests from aGatewaylistener to backend Services.GRPCRoute(namespaced) -- provides a way to route gRPC requests; the gRPC counterpart ofHTTPRoute.BackendTLSPolicy(namespaced) -- provides a way to configure how aGatewayconnects to a backend via TLS (client-side backend TLS, as opposed to a Listener's own server-side TLS).ListenerSet(namespaced) -- defines a set of additional listeners to attach to an existingGateway, letting a delegated team add listeners without editing theGatewayitself.TLSRoute(namespaced) -- similar toTCPRoute, but matches against TLS-specific metadata (SNI) without terminating TLS.TCPRoute(namespaced) -- provides a way to route TCP requests from aGatewaylistener to backend Services.UDPRoute(namespaced) -- provides a way to route UDP traffic from aGatewaylistener to backend Services.ReferenceGrant(namespaced; reachable only via the domain-qualified namegateway.networking.k8s.io/v1/ReferenceGrantsince the short nameReferenceGrantresolves to the v1beta1 storage version) -- identifies kinds of resources in other namespaces that are trusted to reference the specified kinds of resources in the same namespace as the policy: the opt-in that makes cross-namespace backend references safe by default.
Included CRDs (gateway.networking.k8s.io/v1beta1)
ReferenceGrant (namespaced) is the storage version here, so the short name ReferenceGrant resolves to this class -- same purpose as described above. Gateway, GatewayClass and HTTPRoute (namespaced) are also served at v1beta1 upstream but v1 is their storage version, so these three are reachable only via their domain-qualified names (gateway.networking.k8s.io/v1beta1/Gateway, gateway.networking.k8s.io/v1beta1/GatewayClass, gateway.networking.k8s.io/v1beta1/HTTPRoute) -- again, same purpose as their v1 counterparts above.
SEE ALSO
SUPPORT
Issues
Please report bugs and feature requests on GitHub at https://github.com/pplu/io-k8s-p5/issues.
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) 2018-2026 by Jose Luis Martinez Torres <jlmartin@cpan.org>.
This is free software, licensed under:
The Apache License, Version 2.0, January 2004