F5BigLogHslpub

Overview

The F5BigLogHslpub Custom Resource (CR) defines the various logging options, such as syslog message format, protocol, distribution method, and logging endpoints. F5BigLogHslpub can be referenced in F5BigLogProfile, F5BigDdosGlobal CRs.

Parameters

metadata

Parameters

Description

name

The The unique name identifying the HSL Publisher resource.

namespace

The Kubernetes namespace in which the HSL Publisher resource is created.

spec

Parameter

Type

Description

Default

loadBalancingMethod

string

Defines the load balancing mode used to distribute traffic across multiple pool members. Allowed values: ROUND_ROBIN, RATIO_LEAST_CONN_MEMBER, RATIO_MEMBER, RATIO_SESSION.

ROUND_ROBIN

pool

array

Specifies the pool(s) of logging endpoints to receive logging messages.

[]

pool[]

object

Configuration object defining a logging pool with its name and associated endpoints for message distribution. Required field: name.

(none)

pool[].name

string

User defined name for the HSL logging pool. Pattern: ^[0-9a-zA-Z._-]+$. Min 1, max 255.

(none)

pool[].minActiveMembers

integer

Minimum number of members that must be available in one priority group; if fewer are active, selects the next priority group. Range: 0–65535.

0

pool[].endpoint

array

IPv4/IPv6 endpoint list in IP:PORT or [IPv6]:PORT format. If provided, must have at least 1 item (minItems: 1). Mutually exclusive with members.

(none)

pool[].endpoint[]

string

A valid IPv4 or IPv6 address with port (IP:PORT or [IPv6]:PORT). Min 1, max 51. Must match the CRD patterns and excludes certain invalid addresses via not: rules.

(none)

pool[].members

array

Structured list of pool members (address/port/priorityGroup). If provided, must have at least 1 item (minItems: 1). Mutually exclusive with endpoint.

(none)

pool[].members[]

object

Configuration object for a pool member.

{}

pool[].members[].address

string

Address of the service to which logging messages are sent (IPv4 or IPv6, no prefix). Min 2, max 39.

::

pool[].members[].port

integer

Port of the service to which logging messages are sent. Range: 0–65535.

0

pool[].members[].priorityGroup

integer

Priority group to determine order in which pool members are selected. Range: 0–8.

0

pool[].monitors

object

Monitors used to monitor pool members. TCP and ICMP are supported.

{}

pool[].monitors.icmp

array

ICMP monitor definitions.

[]

pool[].monitors.icmp[]

object

ICMP monitor configuration object.

{}

pool[].monitors.icmp[].interval

integer (int32)

Frequency in seconds for monitor checks when resource is down/unknown. Range: 0–4294967295.

5

pool[].monitors.icmp[].timeout

integer

Seconds the target has to respond. Range: 0–4294967295. (Description says timeout must be <= interval.)

16

pool[].monitors.tcp

array

TCP monitor definitions.

[]

pool[].monitors.tcp[]

object

TCP monitor configuration object.

{}

pool[].monitors.tcp[].interval

integer (int32)

Frequency in seconds for monitor checks when resource is down/unknown. Range: 0–4294967295.

5

pool[].monitors.tcp[].timeout

integer

Seconds the target has to respond. Range: 0–4294967295. (Description says timeout must be <= interval.)

16

syslog

array

Syslog configurations for different logging destinations and their properties.

[]

syslog[]

object

Individual syslog configuration object. Required fields: name, pool.

(none)

syslog[].name

string

User defined name for the syslog configuration. Pattern: ^[0-9a-zA-Z._-]+$. Min 1, max 255.

(none)

syslog[].format

string

Syslog message format for output log data. Allowed values: rfc5424, rfc3164, legacy-bigip.

rfc5424

syslog[].protocol

string

Protocol to use when connecting to the logging endpoint. Allowed values: udp, tcp.

udp

syslog[].distribution

string

Distribution method for sending messages to pool members. Allowed values: replicate, balanced, adaptive.

adaptive

syslog[].pool

string

Name of the pool (from spec.pool[].name) used for this syslog destination. Pattern: ^[0-9a-zA-Z._-]+$. Min 1, max 255.

(none)

ipfix

array

IPFIX (or Netflow-9) logging configurations.

[]

ipfix[]

object

Individual IPFIX configuration object. Required fields: name, pool.

(none)

ipfix[].name

string

User defined name for the IPFIX configuration. Pattern: ^[0-9a-zA-Z._-]+$. Min 1, max 255.

(none)

ipfix[].templateRetransmitInterval

integer

Retransmit interval (seconds) for IPFIX templates; helpful for UDP. Range: 0–4294967295.

30

ipfix[].protocolVersion

string

Protocol type/version. Allowed values: ipfix, netflow-9.

netflow-9

ipfix[].pool

string

Name of the pool (from spec.pool[].name) used for IPFIX destination. Pattern: ^[0-9a-zA-Z._-]+$. Min 1, max 255.

(none)

ipfix[].profileName

object

Specifies either a TCP or UDP profile for IPFIX logging. Must set exactly one of tcpProfileName or udpProfileName (maxProperties 1).

{udpProfileName: "sys-default-udp"}

ipfix[].profileName.tcpProfileName

string

TCP profile name (F5BigTcpSetting) for IPFIX logging. Pattern: ^[0-9a-zA-Z._-]*$. Min 0, max 255.

(none)

ipfix[].profileName.udpProfileName

string

UDP profile name (F5BigUdpSetting) for IPFIX logging. Pattern: ^[0-9a-zA-Z._-]*$. Min 0, max 255.

(none)

Sample CR

apiVersion: k8s.f5net.com/v1
kind: F5BigLogHslpub
metadata:
  name: hsl-publisher
  namespace: f5-bnk
spec:
  pool:
    -
      name: hsl-pool
      endpoint:
        - 11.19.10.100:514
  syslog:
    -
      name: syslog
      format: rfc5424
      protocol: tcp
      pool: hsl-pool

Create and apply F5BigLogHslpub CR

  1. Copy the sample CR into a YAML <hsl.yaml> file.

  2. Apply the F5BigLogHslpub CR:

kubectl apply -f hsl.yaml
f5bigloghslpub.k8s.f5net.com/hsl-publisher created
kubectl get -f hsl.yaml
NAME            READY   MESSAGE                                AGE
hsl-publisher   True    CR config sent to all grpc endpoints   6s

The log message indicates that the F5BigLogHslpub CR was added/updated:

kubectl describe -f hsl.yaml
..
Status:
  Conditions:
    Last Transition Time:  2026-03-18T13:11:13Z
    Message:
    Observed Generation:   0
    Reason:                Accepted
    Status:                True
    Type:                  Accepted
    Last Transition Time:  2026-03-18T13:11:13Z
    Message:               CR config sent to all grpc endpoints
    Observed Generation:   2
    Reason:                Programmed
    Status:                True
    Type:                  Programmed
  Generation Id:           0
Events:
  Type    Reason         Age   From               Message
  ----    ------         ----  ----               -------
  Normal  Added/Updated  11s   f5-cne-controller  F5Hslpub f5-bnk/hsl-publisher was added/updated