API Reference¶
Packages¶
gateway.k8s.aws/v1beta1¶
Package v1beta1 contains API Schema definitions for the elbv2 v1beta1 API group
Resource Types¶
ALPNPolicy¶
Underlying type: string
ALPNPolicy defines the ALPN policy configuration for TLS listeners forwarding to TLS target groups HTTP1Only Negotiate only HTTP/1.. The ALPN preference list is http/1.1, http/1.0. HTTP2Only Negotiate only HTTP/2. The ALPN preference list is h2. HTTP2Optional Prefer HTTP/1. over HTTP/2 (which can be useful for HTTP/2 testing). The ALPN preference list is http/1.1, http/1.0, h2. HTTP2Preferred Prefer HTTP/2 over HTTP/1.*. The ALPN preference list is h2, http/1.1, http/1.0. None Do not negotiate ALPN. This is the default.
Validation: - Enum: [HTTP1Only HTTP2Only HTTP2Optional HTTP2Preferred None]
Appears in: - ListenerConfiguration
Field | Description |
---|---|
None |
|
HTTP1Only |
|
HTTP2Only |
|
HTTP2Optional |
|
HTTP2Preferred |
AdvertiseTrustStoreCaNamesEnum¶
Underlying type: string
Validation: - Enum: [on off]
Appears in: - MutualAuthenticationAttributes
Field | Description |
---|---|
on |
|
off |
HealthCheckConfiguration¶
HealthCheckConfiguration defines the Health Check configuration for a Target Group.
Appears in: - TargetGroupProps
Field | Description | Default | Validation |
---|---|---|---|
healthyThresholdCount integer |
healthyThresholdCount The number of consecutive health checks successes required before considering an unhealthy target healthy. | ||
healthCheckInterval integer |
healthCheckInterval The approximate amount of time, in seconds, between health checks of an individual target. | ||
healthCheckPath string |
healthCheckPath The destination for health checks on the targets. | ||
healthCheckPort string |
healthCheckPort The port the load balancer uses when performing health checks on targets. The default is to use the port on which each target receives traffic from the load balancer. |
||
healthCheckProtocol TargetGroupHealthCheckProtocol |
healthCheckProtocol The protocol to use to connect with the target. The GENEVE, TLS, UDP, and TCP_UDP protocols are not supported for health checks. | Enum: [http https tcp] |
|
healthCheckTimeout integer |
healthCheckTimeout The amount of time, in seconds, during which no response means a failed health check | ||
unhealthyThresholdCount integer |
unhealthyThresholdCount The number of consecutive health check failures required before considering the target unhealthy. | ||
matcher HealthCheckMatcher |
healthCheckCodes The HTTP or gRPC codes to use when checking for a successful response from a target |
HealthCheckMatcher¶
TODO: Add a validation in the admission webhook to check if only one of HTTPCode or GRPCCode is set. Information to use when checking for a successful response from a target.
Appears in: - HealthCheckConfiguration
Field | Description | Default | Validation |
---|---|---|---|
httpCode string |
The HTTP codes. | ||
grpcCode string |
The gRPC codes |
ListenerAttribute¶
ListenerAttribute defines listener attribute.
Appears in: - ListenerConfiguration
Field | Description | Default | Validation |
---|---|---|---|
key string |
The key of the attribute. | ||
value string |
The value of the attribute. |
ListenerConfiguration¶
Appears in: - LoadBalancerConfigurationSpec
Field | Description | Default | Validation |
---|---|---|---|
protocolPort ProtocolPort |
protocolPort is identifier for the listener on load balancer. It should be of the form PROTOCOL:PORT | Pattern: ^(HTTP\|HTTPS\|TLS\|TCP\|UDP)?:(6553[0-5]\|655[0-2]\d\|65[0-4]\d\{2\}\|6[0-4]\d\{3\}\|[1-5]\d\{4\}\|[1-9]\d\{0,3\})?$ |
|
defaultCertificate string |
TODO: Add validation in admission webhook to make it required for secure protocols defaultCertificate the cert arn to be used by default. |
||
certificates string array |
certificates is the list of other certificates to add to the listener. | ||
sslPolicy string |
sslPolicy is the security policy that defines which protocols and ciphers are supported for secure listeners [HTTPS or TLS listener]. | ||
alpnPolicy ALPNPolicy |
alpnPolicy an optional string that allows you to configure ALPN policies on your Load Balancer | Enum: [HTTP1Only HTTP2Only HTTP2Optional HTTP2Preferred None] |
|
mutualAuthentication MutualAuthenticationAttributes |
mutualAuthentication defines the mutual authentication configuration information. | ||
listenerAttributes ListenerAttribute array |
listenerAttributes defines the attributes for the listener |
LoadBalancerAttribute¶
LoadBalancerAttribute defines LB attribute.
Appears in: - LoadBalancerConfigurationSpec
Field | Description | Default | Validation |
---|---|---|---|
key string |
The key of the attribute. | ||
value string |
The value of the attribute. |
LoadBalancerConfigMergeMode¶
Underlying type: string
LoadBalancerConfigMergeMode is the merging behavior defined when both Gateway and GatewayClass have lb configurations. See the individual configuration fields for the exact merge behavior applied.
Validation: - Enum: [prefer-gateway prefer-gateway-class]
Appears in: - LoadBalancerConfigurationSpec
Field | Description |
---|---|
prefer-gateway-class |
MergeModePreferGatewayClass when both lb configurations have a field specified, this mode gives precedence to the configuration in the GatewayClass |
prefer-gateway |
MergeModePreferGatewayClass when both lb configurations have a field specified, this mode gives precedence to the configuration in the Gateway |
LoadBalancerConfiguration¶
LoadBalancerConfiguration is the Schema for the LoadBalancerConfiguration API
Field | Description | Default | Validation |
---|---|---|---|
apiVersion string |
gateway.k8s.aws/v1beta1 |
||
kind string |
LoadBalancerConfiguration |
||
metadata ObjectMeta |
Refer to Kubernetes API documentation for fields of metadata . |
||
spec LoadBalancerConfigurationSpec |
|||
status LoadBalancerConfigurationStatus |
LoadBalancerConfigurationSpec¶
LoadBalancerConfigurationSpec defines the desired state of LoadBalancerConfiguration
Appears in: - LoadBalancerConfiguration
Field | Description | Default | Validation |
---|---|---|---|
mergingMode LoadBalancerConfigMergeMode |
mergingMode defines the merge behavior when both the Gateway and GatewayClass have a defined LoadBalancerConfiguration. This field is only honored for the configuration attached to the GatewayClass. |
Enum: [prefer-gateway prefer-gateway-class] |
|
loadBalancerName string |
loadBalancerName defines the name of the LB to provision. If unspecified, it will be automatically generated. | MaxLength: 32 MinLength: 1 |
|
scheme LoadBalancerScheme |
scheme defines the type of LB to provision. If unspecified, it will be automatically inferred. | Enum: [internal internet-facing] |
|
ipAddressType LoadBalancerIpAddressType |
loadBalancerIPType defines what kind of load balancer to provision (ipv4, dual stack) | Enum: [ipv4 dualstack dualstack-without-public-ipv4] |
|
enforceSecurityGroupInboundRulesOnPrivateLinkTraffic string |
enforceSecurityGroupInboundRulesOnPrivateLinkTraffic Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through Amazon Web Services PrivateLink. | ||
customerOwnedIpv4Pool string |
customerOwnedIpv4Pool [Application LoadBalancer] is the ID of the customer-owned address for Application Load Balancers on Outposts pool. |
||
ipv4IPAMPoolId string |
IPv4IPAMPoolId [Application LoadBalancer] defines the IPAM pool ID used for IPv4 Addresses on the ALB. |
||
loadBalancerSubnets SubnetConfiguration |
loadBalancerSubnets is an optional list of subnet configurations to be used in the LB This value takes precedence over loadBalancerSubnetsSelector if both are selected. |
||
loadBalancerSubnetsSelector map[string][]string |
LoadBalancerSubnetsSelector specifies subnets in the load balancer's VPC where each tag specified in the map key contains one of the values in the corresponding value list. |
||
listenerConfigurations ListenerConfiguration |
listenerConfigurations is an optional list of configurations for each listener on LB | ||
securityGroups string |
securityGroups an optional list of security group ids or names to apply to the LB | ||
securityGroupPrefixes string |
securityGroupPrefixes an optional list of prefixes that are allowed to access the LB. | ||
sourceRanges string |
sourceRanges an optional list of CIDRs that are allowed to access the LB. | ||
vpcId string |
vpcId is the ID of the VPC for the load balancer. | ||
loadBalancerAttributes LoadBalancerAttribute array |
LoadBalancerAttributes defines the attribute of LB | ||
tags map[string]string |
Tags the AWS Tags on all related resources to the gateway. | ||
enableICMP boolean |
EnableICMP [Network LoadBalancer] enables the creation of security group rules to the managed security group to allow explicit ICMP traffic for Path MTU discovery for IPv4 and dual-stack VPCs |
||
manageBackendSecurityGroupRules boolean |
ManageBackendSecurityGroupRules [Application / Network LoadBalancer] specifies whether you want the controller to configure security group rules on Node/Pod for traffic access when you specify securityGroups |
||
minimumLoadBalancerCapacity MinimumLoadBalancerCapacity |
MinimumLoadBalancerCapacity define the capacity reservation for LoadBalancers |
LoadBalancerConfigurationStatus¶
LoadBalancerConfigurationStatus defines the observed state of TargetGroupBinding
Appears in: - LoadBalancerConfiguration
Field | Description | Default | Validation |
---|---|---|---|
observedGatewayConfigurationGeneration integer |
The generation of the Gateway Configuration attached to the Gateway object. | ||
observedGatewayClassConfigurationGeneration integer |
The generation of the Gateway Configuration attached to the GatewayClass object. |
LoadBalancerIpAddressType¶
Underlying type: string
LoadBalancerIpAddressType is the IP Address type of your LB.
Validation: - Enum: [ipv4 dualstack dualstack-without-public-ipv4]
Appears in: - LoadBalancerConfigurationSpec
Field | Description |
---|---|
ipv4 |
|
dualstack |
|
dualstack-without-public-ipv4 |
LoadBalancerScheme¶
Underlying type: string
LoadBalancerScheme is the scheme of your LB
- with
internal
scheme, the LB is only accessible within the VPC. - with
internet-facing
scheme, the LB is accesible via the public internet.
Validation: - Enum: [internal internet-facing]
Appears in: - LoadBalancerConfigurationSpec
Field | Description |
---|---|
internal |
|
internet-facing |
MinimumLoadBalancerCapacity¶
MinimumLoadBalancerCapacity Information about a load balancer capacity reservation.
Appears in: - LoadBalancerConfigurationSpec
Field | Description | Default | Validation |
---|---|---|---|
capacityUnits integer |
The Capacity Units Value. |
MutualAuthenticationAttributes¶
Information about the mutual authentication attributes of a listener.
Appears in: - ListenerConfiguration
Field | Description | Default | Validation |
---|---|---|---|
advertiseTrustStoreCaNames AdvertiseTrustStoreCaNamesEnum |
Indicates whether trust store CA certificate names are advertised. | Enum: [on off] |
|
ignoreClientCertificateExpiry boolean |
Indicates whether expired client certificates are ignored. | ||
mode MutualAuthenticationMode |
The client certificate handling method. Options are off, passthrough or verify | Enum: [off passthrough verify] |
|
trustStore string |
The Name or ARN of the trust store. |
MutualAuthenticationMode¶
Underlying type: string
MutualAuthenticationMode mTLS mode for mutual TLS authentication config for listener
Validation: - Enum: [off passthrough verify]
Appears in: - MutualAuthenticationAttributes
Field | Description |
---|---|
off |
|
passthrough |
|
verify |
Protocol¶
Underlying type: string
Validation: - Enum: [HTTP HTTPS TCP TLS UDP TCP_UDP]
Appears in: - TargetGroupProps
Field | Description |
---|---|
HTTP |
|
HTTPS |
|
TCP |
|
TLS |
|
UDP |
|
TCP_UDP |
ProtocolPort¶
Underlying type: string
Validation:
- Pattern: ^(HTTP|HTTPS|TLS|TCP|UDP)?:(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|[1-5]\d{4}|[1-9]\d{0,3})?$
Appears in: - ListenerConfiguration
ProtocolVersion¶
Underlying type: string
Validation: - Enum: [HTTP1 HTTP2 GRPC]
Appears in: - TargetGroupProps
Field | Description |
---|---|
HTTP1 |
|
HTTP2 |
|
GRPC |
Reference¶
Reference defines how to look up the Target Group configuration for a service.
Appears in: - TargetGroupConfigurationSpec
Field | Description | Default | Validation |
---|---|---|---|
group string |
Group is the group of the referent. For example, "gateway.networking.k8s.io". When unspecified or empty string, core API group is inferred. |
||
kind string |
Kind is the Kubernetes resource kind of the referent. For example "Service". Defaults to "Service" when not specified. |
Service | |
name string |
Name is the name of the referent. |
RouteConfiguration¶
RouteConfiguration defines the per route configuration
Appears in: - TargetGroupConfigurationSpec
Field | Description | Default | Validation |
---|---|---|---|
routeIdentifier RouteIdentifier |
name the identifier of the route, it should be in the form of ROUTE:NAMESPACE:NAME | ||
targetGroupProps TargetGroupProps |
targetGroupProps the target group specific properties |
RouteIdentifier¶
RouteIdentifier the complete set of route attributes that identify a route.
Appears in: - RouteConfiguration
Field | Description | Default | Validation |
---|---|---|---|
kind string |
|||
namespace string |
|||
name string |
SubnetConfiguration¶
SubnetConfiguration defines the subnet settings for a Load Balancer.
Appears in: - LoadBalancerConfigurationSpec
Field | Description | Default | Validation |
---|---|---|---|
identifier string |
identifier [Application LoadBalancer / Network LoadBalancer] name or id for the subnet | ||
eipAllocation string |
eipAllocation [Network LoadBalancer] the EIP name for this subnet. | ||
privateIPv4Allocation string |
privateIPv4Allocation [Network LoadBalancer] the private ipv4 address to assign to this subnet. | ||
ipv6Allocation string |
IPv6Allocation [Network LoadBalancer] the ipv6 address to assign to this subnet. | ||
sourceNatIPv6Prefix string |
SourceNatIPv6Prefix [Network LoadBalancer] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or auto_assigned to use an IPv6 prefix selected at random from the subnet CIDR block. |
TargetGroupAttribute¶
TargetGroupAttribute defines target group attribute.
Appears in: - TargetGroupProps
Field | Description | Default | Validation |
---|---|---|---|
key string |
The key of the attribute. | ||
value string |
The value of the attribute. |
TargetGroupConfiguration¶
TargetGroupConfiguration is the Schema for defining TargetGroups with an AWS ELB Gateway
Field | Description | Default | Validation |
---|---|---|---|
apiVersion string |
gateway.k8s.aws/v1beta1 |
||
kind string |
TargetGroupConfiguration |
||
metadata ObjectMeta |
Refer to Kubernetes API documentation for fields of metadata . |
||
spec TargetGroupConfigurationSpec |
|||
status TargetGroupConfigurationStatus |
TargetGroupConfigurationSpec¶
TargetGroupConfigurationSpec defines the TargetGroup properties for a route.
Appears in: - TargetGroupConfiguration
Field | Description | Default | Validation |
---|---|---|---|
targetReference Reference |
targetReference the kubernetes object to attach the Target Group settings to. | ||
defaultConfiguration TargetGroupProps |
defaultRouteConfiguration fallback configuration applied to all routes, unless overridden by route-specific configurations. | ||
routeConfigurations RouteConfiguration array |
routeConfigurations the route configuration for specific routes. the longest prefix match (kind:namespace:name) is taken to combine with the default properties. |
TargetGroupConfigurationStatus¶
TargetGroupConfigurationStatus defines the observed state of TargetGroupConfiguration
Appears in: - TargetGroupConfiguration
Field | Description | Default | Validation |
---|---|---|---|
observedGatewayConfigurationGeneration integer |
The generation of the Gateway Configuration attached to the Gateway object. | ||
observedGatewayClassConfigurationGeneration integer |
The generation of the Gateway Configuration attached to the GatewayClass object. |
TargetGroupHealthCheckProtocol¶
Underlying type: string
Validation: - Enum: [http https tcp]
Appears in: - HealthCheckConfiguration
Field | Description |
---|---|
HTTP |
|
HTTPS |
|
TCP |
TargetGroupIPAddressType¶
Underlying type: string
TargetGroupIPAddressType is the IP Address type of your ELBV2 TargetGroup.
Validation: - Enum: [ipv4 ipv6]
Appears in: - TargetGroupProps
Field | Description |
---|---|
ipv4 |
|
ipv6 |
TargetGroupProps¶
TargetGroupProps defines the target group properties
Appears in: - RouteConfiguration - TargetGroupConfigurationSpec
Field | Description | Default | Validation |
---|---|---|---|
targetGroupName string |
targetGroupName specifies the name to assign to the Target Group. If not defined, then one is generated. | ||
ipAddressType TargetGroupIPAddressType |
ipAddressType specifies whether the target group is of type IPv4 or IPv6. If unspecified, it will be automatically inferred. | Enum: [ipv4 ipv6] |
|
healthCheckConfig HealthCheckConfiguration |
healthCheckConfig The Health Check configuration for this backend. | ||
nodeSelector LabelSelector |
node selector for instance type target groups to only register certain nodes | ||
targetGroupAttributes TargetGroupAttribute array |
targetGroupAttributes defines the attribute of target group | ||
targetType TargetType |
targetType is the TargetType of TargetGroup. If unspecified, it will be automatically inferred as instance. | Enum: [instance ip] |
|
protocol Protocol |
Protocol [Application / Network Load Balancer] the protocol for the target group. If unspecified, it will be automatically inferred. |
Enum: [HTTP HTTPS TCP TLS UDP TCP_UDP] |
|
protocolVersion ProtocolVersion |
protocolVersion [HTTP/HTTPS protocol] The protocol version. The possible values are GRPC , HTTP1 and HTTP2 | Enum: [HTTP1 HTTP2 GRPC] |
|
enableMultiCluster boolean |
EnableMultiCluster [Application / Network LoadBalancer] Allows for multiple Clusters / Services to use the generated TargetGroup ARN |
||
tags map[string]string |
Tags the Tags to add on the target group. |
TargetType¶
Underlying type: string
TargetType is the targetType of your ELBV2 TargetGroup.
- with
instance
TargetType, nodes with nodePort for your service will be registered as targets - with
ip
TargetType, Pods with containerPort for your service will be registered as targets
Validation: - Enum: [instance ip]
Appears in: - TargetGroupProps
Field | Description |
---|---|
instance |
|
ip |