Infra¶
Overview¶
Persona¶
Infrastructure provider
Network operator
Function¶
Declares the infrastructure configuration for a CNE instance, defining the IPAM configurations, network attachments, VRFs, networks, static routes, and egress defaults that other resources reference for modular, reusable network design.
This resource centralizes the underlay network configuration for a BIG-IP Next for Kubernetes instance. It also provides the default network configuration for any gateway that doesn’t reference a GatewaySettings resource.
Note
This resource is a singleton. Deploy only one Infra resource in the BIG-IP Next for Kubernetes namespace. Multiple Infra resources aren’t supported.
Names¶
Singular name |
Plural name |
Short name |
|---|---|---|
infra |
infras |
infra |
API group and version¶
gateway.k8s.f5.com/v1alpha1
Scope¶
Namespace
Specification¶
spec¶
Field |
Required |
Default |
Description |
|---|---|---|---|
|
Yes |
— |
IPAM configurations used to allocate addresses. Must contain no more than 256 items. |
|
Yes |
— |
Named groups of |
|
Yes |
— |
Network definitions for VLAN and VXLAN connectivity. Must contain no more than 64 items. |
|
No |
— |
VRF definitions available for network and route binding. Must contain no more than 64 items. |
|
No |
— |
Static routes programmed in the selected VRF contexts. Must contain no more than 256 items. |
|
No |
— |
Defaults for egress tunnel network configuration. |
spec.ipams[]¶
Field |
Required |
Default |
Description |
|---|---|---|---|
|
Yes |
— |
Unique name of this IPAM configuration. Must be 1 to 255 characters. The name |
|
Yes |
— |
Address pools that network references can consume. Must contain 1 to 64 items. |
|
No |
|
IPAM network view (an Infoblox concept) that scopes address allocation to a logical partition. Must be 1 to 255 characters. |
spec.ipams[].ipPools[]¶
Set either cidr or both rangeStart and rangeEnd, but not both modes. When you use a range, rangeStart and rangeEnd must be the same IP family.
Field |
Required |
Default |
Description |
|---|---|---|---|
|
No |
— |
CIDR notation for the IP pool from which the system auto-generates addresses through IPAM. Maximum length is 45 characters. |
|
No |
— |
Starting IP address for explicit range mode. Set this with |
|
No |
— |
Ending IP address for explicit range mode. Set this with |
|
No |
— |
Availability zone for this IP pool, for example |
Limits: Maximum 256 IPAM entries. Maximum 64 ipPools per IPAM entry.
spec.networkAttachments[]¶
Field |
Required |
Default |
Description |
|---|---|---|---|
|
Yes |
— |
Logical name for this network attachment group. Must be 1 to 255 characters. |
|
Yes |
— |
Kubernetes |
spec.networkAttachments[].networkAttachmentDefinitions[]¶
Field |
Required |
Default |
Description |
|---|---|---|---|
|
Yes |
— |
Name of the |
spec.vrfs[]¶
Field |
Required |
Default |
Description |
|---|---|---|---|
|
Yes |
— |
Name of the VRF. Must be 1 to 255 characters. |
|
No |
|
When |
spec.networks[]¶
For a vlan network type, set vlan only. For a vxlan network type, set vxlan only.
Field |
Required |
Default |
Description |
|---|---|---|---|
|
Yes |
— |
Unique name of the network entry. Must be 1 to 255 characters. |
|
Yes |
— |
Network type that controls whether the system uses VLAN or VXLAN settings. Accepted values: |
|
No |
— |
VLAN-specific settings. Set this when |
|
No |
— |
VXLAN-specific settings. Set this when |
spec.networks[].vlan¶
Field |
Required |
Default |
Description |
|---|---|---|---|
|
Yes |
— |
Reference to a |
|
Yes |
— |
References to IPAM configurations used for VLAN address allocation. Must contain at least one item. |
|
No |
|
802.1Q VLAN tag. |
|
No |
|
MTU for the VLAN interface. Accepted values: 576 to 9198. |
|
No |
— |
Reference to a |
spec.networks[].vlan.networkAttachmentRef¶
Field |
Required |
Default |
Description |
|---|---|---|---|
|
Yes |
— |
Name of the |
spec.networks[].vlan.ipamRefs[]¶
Field |
Required |
Default |
Description |
|---|---|---|---|
|
Yes |
— |
Name of a |
spec.networks[].vlan.vrfRef¶
Field |
Required |
Default |
Description |
|---|---|---|---|
|
Yes |
— |
Name of the VRF. Must be 1 to 255 characters. |
spec.networks[].vxlan¶
Set either networkRef or vtepIpamRefs, but not both.
Field |
Required |
Default |
Description |
|---|---|---|---|
|
Yes |
— |
VXLAN Network Identifier (VNI). Accepted values: 0 to 16777215. |
|
No |
— |
Reference to another |
|
No |
— |
References to IPAM configurations used for VXLAN Self IP address allocation. Must contain at least one item. |
|
No |
— |
References to IPAM configurations used for VXLAN tunnel IP address allocation. Must contain at least one item. |
|
No |
|
MTU for VXLAN tunnel traffic. Accepted values: 1280 to 9000. |
|
No |
|
UDP destination port used for VXLAN encapsulation. Accepted values: 1 to 65535. |
|
No |
— |
Reference to a |
spec.networks[].vxlan.networkRef¶
Field |
Required |
Default |
Description |
|---|---|---|---|
|
Yes |
— |
Name of the |
spec.networks[].vxlan.ipamRefs[]¶
Field |
Required |
Default |
Description |
|---|---|---|---|
|
Yes |
— |
Name of a |
spec.networks[].vxlan.vtepIpamRefs[]¶
Field |
Required |
Default |
Description |
|---|---|---|---|
|
Yes |
— |
Name of a |
spec.networks[].vxlan.vrfRef¶
Field |
Required |
Default |
Description |
|---|---|---|---|
|
Yes |
— |
Name of the VRF. Must be 1 to 255 characters. |
spec.staticRoutes[]¶
Set exactly one of nextHop or networkRef.
Field |
Required |
Default |
Description |
|---|---|---|---|
|
Yes |
— |
Unique name of the static route entry. Must be 1 to 255 characters. |
|
Yes |
— |
Destination prefixes in CIDR notation. Must contain 1 to 255 items. |
|
No |
— |
Next-hop IP address. Mutually exclusive with |
|
No |
— |
Reference to a |
|
No |
— |
Reference to a |
spec.staticRoutes[].networkRef¶
Field |
Required |
Default |
Description |
|---|---|---|---|
|
Yes |
— |
Name of the |
spec.staticRoutes[].vrfRef¶
Field |
Required |
Default |
Description |
|---|---|---|---|
|
Yes |
— |
Name of the VRF. Must be 1 to 255 characters. |
spec.egressDefaults¶
Field |
Required |
Default |
Description |
|---|---|---|---|
|
Yes |
— |
Reference to a |
|
No |
— |
Subnet used for egress tunnels. When omitted, the system assumes an internal default subnet. |
|
No |
|
UDP destination port used for VXLAN encapsulation. Accepted values: 1 to 65535. |
spec.egressDefaults.networkRef¶
Field |
Required |
Default |
Description |
|---|---|---|---|
|
Yes |
— |
Name of a |
Example manifest¶
The following manifest defines IPAM pools, network attachments, two VLAN networks, and a default static route.
apiVersion: gateway.k8s.f5.com/v1alpha1
kind: Infra
metadata:
name: infra
namespace: bnk-system
spec:
ipams:
- name: client-pool
infobloxNetview: "default"
ipPools:
- cidr: 192.0.2.0/24
- name: server-pool
infobloxNetview: "default"
ipPools:
- cidr: 198.51.100.0/24
- cidr: 2001:db8::22:22:22:0/112
- name: listener-pool
infobloxNetview: "default"
ipPools:
- cidr: 198.51.100.0/24
- cidr: 2001:db8::22:22:22:0/112
networkAttachments:
- name: client-attach
networkAttachmentDefinitions:
- name: sriov-client-netattach
- name: server-attach
networkAttachmentDefinitions:
- name: sriov-server-netattach
networks:
- name: tmm-client
type: vlan
vlan:
tag: 0
mtu: 1500
networkAttachmentRef:
name: client-attach
ipamRefs:
- name: client-pool
- name: tmm-server
type: vlan
vlan:
tag: 0
mtu: 1500
networkAttachmentRef:
name: server-attach
ipamRefs:
- name: server-pool
staticRoutes:
- name: default-route
destinations:
- 0.0.0.0/0
nextHop: 198.51.100.1
Delete the resource¶
After you delete the Infra resource, verify that the system removed both the IPAM and IPAMRange resources from the BIG-IP Next for Kubernetes namespace before you reapply the resource. If you use Infoblox, confirm that the system released the associated IP addresses. A clean state before you reapply the resource prevents unpredictable behavior.