F5BigCnePool

Overview

F5BigCnePool is a namespaced Custom Resource in the k8s.f5net.com API group. It represents a Network Function (NF) pool: a list of NF endpoints (members) plus optional health monitors.

CR Parameters

metadata

Parameter Type Description
name string Unique name of the custom resource.
namespace string Namespace where the resource is created (because the CRD is namespaced).

spec

spec defines pool behavior and membership.

Parameter Type Description Default
minActiveMembers integer Minimum number of members that must be available for a priority group to activate. Minimum 0, maximum 65535. 0
vrf string The name of the VRF (tenant) all pool members are in. It is a soft-reference to a VRF CR. If not specified, the pool members will exist in the default route domain. Maximum length 255. ""
members array(object) List of server endpoints in this pool. Each item requires address and port. []
members.address string IPv4 or IPv6 address of this server endpoint. Max length 46, min length 7. Must match one of the IPv4/IPv6 patterns (no prefix).
members.port integer Port for the monitor to check. Minimum 0, maximum 65535.
members.priorityGroup integer Priority group assignment for this pool member. Higher priority groups are used first. Minimum 0, maximum 8. 0
dynamicMembers array(object) Specifies a list of kubernetes services containing endpoints. Any endpoints associated with the specified services will be dynamically added to this pool as members, once for each target port in the service. []
dynamicMembers.serviceNamespace string The namespace of the kubernetes service from which to discover endpoints dynamically. If this field is empty, it defaults to the same namespace as the pool. If the referenced service is in a different namespace than the pool, it MUST be given the annotation "k8s.f5.com/allow-cross-namespace-refs"="true". ""
dynamicMembers.serviceName string The name of the kubernetes service from which to discover endpoints dynamically.
monitors object Monitor configuration for checking pool members at a set interval. {}
monitors.http2 array(object) HTTP/2 monitor configurations. []
monitors.http2.interval integer Frequency (seconds) when resource is down/unknown. Format int32. Minimum 0, maximum 4294967295. 5
monitors.http2.timeout integer Seconds target has to respond. Must be ≤ interval (documented). Minimum 0, maximum 4294967295. 16
monitors.http2.upInterval integer Frequency (seconds) when resource is up. 0 means disabled (use interval). Minimum 0, maximum 4294967295. 0
monitors.http2.timeUntilUp integer Seconds after first successful response before node is marked up. Minimum 0, maximum 4294967295. 0
monitors.http2.sendString string String sent to the target. Maximum length 64000. "GET / HTTP/1.1"
monitors.http2.receiveString string Regex indicating target is up. Maximum length 64000. '200'
monitors.http2.receiveDisableString string Regex indicating target should be disabled. Maximum length 64000. ''
monitors.http2.serversslProfileName string Server-side SSL profile used by the HTTP/2 monitor. Maximum length 255. ''
monitors.http array(object) HTTP monitor configurations. []
monitors.http.interval integer Frequency (seconds) when resource is down/unknown. Format int64. Minimum 0, maximum 4294967295. 5
monitors.http.timeout integer Seconds target has to respond. Minimum 0, maximum 4294967295. 16
monitors.http.sendString string String sent to the target. Maximum length 64000. "GET / HTTP/1.0\r\n\r\n"
monitors.http.receiveString string Regex indicating target is up. Maximum length 64000. '200'
monitors.http.receiveDisableString string Regex indicating target should be disabled. Maximum length 64000. ''
monitors.http.username string Username for authenticating to the target. Maximum length 255. ''
monitors.http.password string Password for authenticating to the target. Maximum length 255. ''
monitors.icmp array(object) ICMP monitor configurations. []
monitors.icmp.interval integer Frequency (seconds) when resource is down/unknown. Format int32. Minimum 0, maximum 4294967295. 5
monitors.icmp.timeout integer Seconds target has to respond. Must be ≤ interval (documented). Minimum 0, maximum 4294967295. 16
monitors.tcp array(object) TCP monitor configurations. []
monitors.tcp.interval integer Frequency (seconds) when resource is down/unknown. Format int32. Minimum 0, maximum 4294967295. 5
monitors.tcp.timeout integer Seconds target has to respond. Must be ≤ interval (documented). Minimum 0, maximum 4294967295. 16
monitors.tcp.sendString string String sent to the target. Maximum length 64000. ''
monitors.tcp.receiveString string Regex indicating target is up. Maximum length 64000. ''
monitors.tcp.receiveDisableString string Regex indicating target should be disabled. Maximum length 64000. ''
monitors.dns array(object) DNS monitor configurations. []
monitors.dns.interval integer Frequency (seconds) when resource is down/unknown. Minimum 0, maximum 4294967295. 5
monitors.dns.timeout integer Seconds target has to respond. Must be ≤ interval (documented). Minimum 0, maximum 4294967295. 16
monitors.dns.upInterval integer Frequency (seconds) when resource is up. 0 means disabled (use interval). Minimum 0, maximum 4294967295. 0
monitors.dns.timeUntilUp integer Seconds after first successful response before node is marked up. Minimum 0, maximum 4294967295. 0
monitors.dns.aliasAddress string Destination IP of the monitor. IPv4/IPv6 (no prefix). Minimum length 2, maximum length 39. "::"
monitors.dns.aliasPort integer Destination port of the monitor. Minimum 0, maximum 65535. 0
monitors.dns.reverse boolean Reverse mode: successful receive match marks object down instead of up. false
monitors.dns.recursionDesired boolean Sets the RD flag in query packets (required for monitoring recursive DNS servers). false
monitors.dns.queryName string Domain name to query. Maximum length 255.
monitors.dns.queryType string DNS query type. Enum: a, aaaa. a
monitors.dns.answerContains string Record types required in the answer section to mark up. Enum: query-type, any-type, anything. query-type
monitors.dns.acceptRcode string RCODE required in the response for an up status. Enum: no-error, anything. no-error
monitors.dns.recvAddress string Address the monitor looks for in DNS response RR sections. OneOf: empty/IPv4/IPv6. Minimum length 2, maximum length 39. "::"
monitors.inband array(object) Passive monitoring based on actual traffic. []
monitors.inband.failures integer Number of failed attempts before marking a pool member down. Minimum 0, maximum 4294967295. 5
monitors.inband.failureInterval integer Interval (seconds) in which failures are counted. Minimum 0, maximum 4294967295. 30
monitors.inband.responseTime integer Interval (seconds) in which a pool member must respond with data. Minimum 0, maximum 4294967295. 10
monitors.inband.retryTime integer Wait time (seconds) before retrying whether a pool member is up. Minimum 0, maximum 4294967295. 300
monitors.tcpHalfOpen array(object) TCP half-open monitor configurations. []
monitors.tcpHalfOpen.interval integer Frequency (seconds) when resource is down/unknown. Format int64. Minimum 0, maximum 4294967295. 5
monitors.tcpHalfOpen.timeout integer Seconds target has to respond. Minimum 0, maximum 4294967295. 16

CR Example

apiVersion: k8s.f5net.com/v1
kind: F5BigCnePool
metadata:
  name: example-nf-pool
  namespace: "cnf-gateway"
spec:
  minActiveMembers: 1
  members:
  - address: "192.0.2.10"
    port: 8080
    priorityGroup: 1
  - address: "2001:db8::10"
    port: 8080
    priorityGroup: 0
  monitors:
    http:
    - interval: 5
      timeout: 16
      sendString: "GET /health HTTP/1.0\r\n\r\n"
      receiveString: "200"