GatewaySettings¶
Overview¶
The GatewaySettings custom resource configures tenant-specific traffic settings for Gateway and EgressGateway resources. It defines Source NAT (SNAT) pools and specifies how ingress and egress traffic should be handled. This custom resource references infrastructure elements — such as IPAM pools and networks — defined in a separate Infra CR, which enables modular and reusable network design.
Scope and persona¶
Scope: Namespaced. Must be deployed in the same namespace as the Gateway or EgressGateway that references it.
Persona: Cluster operator or tenant network administrator.
API details¶
Property |
Value |
|---|---|
API group |
|
API version |
|
Kind |
|
Short name |
|
Scope |
Namespaced |
Spec fields¶
The spec must include at least one of ingressConfig or egressConfigs (or both).
sourceNATPools¶
Defines SNAT pools available for use by ingress and egress configurations. SNAT pool addresses are auto-generated by IPAM from the pools referenced in the Infra CRD.
Field |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
string |
Yes |
— |
Name of the SNAT pool. Max 255 characters. |
|
string |
No |
— |
Reference to a VRF for this SNAT pool. If not provided, the default VRF is used. |
|
string |
Yes |
— |
Name of an IPAM configuration entry in the referenced Infra CRD ( |
|
boolean |
No |
|
When |
ingressConfig¶
Configuration for handling incoming traffic. Contains a single defaultListenerNetwork object.
defaultListenerNetwork¶
Field |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
string |
Yes |
— |
Name of an IPAM configuration entry in the Infra CRD ( |
|
array |
No |
— |
Name of a network entry in the Infra CRD ( |
|
string |
No |
— |
Reference to a VRF for this listener network. If not provided, the default VRF is used. |
|
object |
No |
— |
SNAT configuration for the listener network. |
sourceNATConfig (ingress)¶
Field |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
string |
Yes |
|
SNAT mode. Accepted values: |
|
string |
Conditional |
— |
Name of a |
egressConfigs¶
An array of one or more named egress configurations for handling outgoing traffic.
Field |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
string |
Yes |
— |
Name of this egress configuration. Max 255 characters. This name is referenced by the |
|
string |
No |
— |
Reference to a VRF for this egress configuration. |
|
string |
No |
— |
Name of a network entry in the Infra CRD ( |
|
object |
Yes |
— |
SNAT configuration for the egress path. |
|
string |
No |
|
Preferred acceleration mode for the Packet Velocity ASIC (PVA). Accepted values: |
sourceNATConfig (egress)¶
Field |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
string |
Yes |
|
SNAT mode. Accepted values: |
|
string |
Conditional |
— |
Name of a |
SNAT mode descriptions:
Mode |
Behavior |
|---|---|
|
Default. Automatically maps egress traffic to available SNAT addresses. |
|
Disables SNAT for egress traffic. |
|
Uses a specific SNAT pool referenced by |
|
Uses the ingress path source address as the SNAT address for egress traffic. Available for egress only. |
Configuration patterns¶
Pattern |
What to configure |
|---|---|
Minimal ingress |
Set only |
Routed ingress |
Add |
Deterministic SNAT (ingress) |
Set |
Simple egress |
Set |
Egress with specific path |
Add |
Combined ingress and egress |
Configure both |
Egress-only deployment |
Configure only |
Ingress-only deployment |
Configure only |
Status fields¶
The controller populates the status section after reconciliation.
Top-level status¶
Field |
Type |
Description |
|---|---|---|
|
integer |
Most recent |
|
array |
Top-level conditions. Max 8 conditions. |
Condition types¶
Type |
Description |
|---|---|
|
The resource is syntactically valid and accepted by the controller. |
|
All referenced resources (Infra, SNAT pools) have been resolved. |
Known reason values¶
Programmed, UserError, DependencyMissing.
Per-resource status¶
Status section |
Description |
Max items |
|---|---|---|
|
Sub-status for the ingress configuration. Includes |
— |
|
Sub-status for each egress configuration, keyed by |
64 |
|
Sub-status for each SNAT pool, keyed by |
64 |
Printer columns¶
When you run kubectl get gatewaysettings, the following columns display:
Column |
Source |
|---|---|
Accepted |
|
ResolvedRefs |
|
Age |
|
Example¶
apiVersion: gateway.k8s.f5.com/v1alpha1
kind: GatewaySettings
metadata:
name: my-gateway-settings
namespace: f5-gateways
spec:
# Source NAT pools
sourceNATPools:
- name: egress-snat
ipamRefs:
- name: server-pool
shared: false
# Ingress configuration
ingressConfig:
defaultListenerNetwork:
ipamRefs:
- name: listener-pool
sourceNATConfig:
type: Automap
# Egress configuration
egressConfigs:
- name: default-egress
networkRef:
name: tmm-server
sourceNATConfig:
type: Pool
sourceNATPoolRef:
name: egress-snat