User-Settable Annotations#

These annotations are set by users on Service resources to control PureLB behavior.

AnnotationValueDescription
purelb.io/service-groupServiceGroup nameSelect which ServiceGroup to allocate from. If not set, the default ServiceGroup is used.
purelb.io/addressesIP address(es)Request a specific IP. For dual-stack, comma-separate: "192.168.1.100,fd00:1::100". Must be within the ServiceGroup’s pool.
purelb.io/allow-shared-ipsharing key (string)Enable IP sharing between services with the same key. Services must use different ports. Forces externalTrafficPolicy: Cluster.
purelb.io/allow-local"true"Override: allow externalTrafficPolicy: Local on local address pools. Not recommended – local addresses are announced by a single node, so Local policy drops traffic when target pods aren’t on that node.
purelb.io/multi-pool"true" or "false"Override the ServiceGroup’s multiPool setting for this service.
purelb.io/re-evaluate"true"One-shot trigger to force reprocessing. PureLB deletes this annotation after processing. Useful when subnets change without a config change.

PureLB-Set Annotations#

These annotations are set by PureLB on Service resources. They are informational and should not be modified by users.

AnnotationValueDescription
purelb.io/allocated-by"PureLB"Marks services managed by PureLB.
purelb.io/allocated-fromServiceGroup nameThe ServiceGroup from which addresses were allocated.
purelb.io/pool-type"local" or "remote"The type of pool the address came from.
purelb.io/announcing-IPv4"node,interface"Which node and interface is announcing the IPv4 address.
purelb.io/announcing-IPv6"node,interface"Which node and interface is announcing the IPv6 address.
purelb.io/skip-ipv6-dad"true"Set when the ServiceGroup has skipIPv6DAD enabled.