API Version
kubelb.k8c.io/v1alpha1
Spec Fields
Annotation Settings
Defines the list of annotations (key-value pairs) that will be propagated to the LoadBalancer service. Keep the
value field empty in the key-value pair to allow any value.Tenant configuration has higher precedence than the annotations specified at the Config level.Defines whether all annotations will be propagated to the LoadBalancer service. If set to true,
propagatedAnnotations will be ignored.Tenant configuration has higher precedence than the value specified at the Config level.Defines the list of annotations (key-value pairs) that will be set on the load balancing resources if not already present. A special key
all can be used to apply the same set of annotations to all resources.Tenant configuration has higher precedence than the annotations specified at the Config level.Valid resource types: all, service, ingress, gateway, httproute, grpcroute, tcproute, udproute, tlsrouteEnvoy Proxy Configuration
Defines the deployment topology for Envoy Proxy. The only supported value is
shared.DEPRECATION NOTICE: The values dedicated and global are deprecated and will be removed in a future release. Both will now default to shared topology.Allowed values: shared, dedicated (deprecated), global (deprecated)Validation: Value is immutable and only allowed change is from dedicated or global to shared.Defines whether Envoy Proxy will run as daemonset. By default, Envoy Proxy will run as deployment. If set to true,
replicas will be ignored.Defines the number of replicas for Envoy Proxy. This field is ignored if
useDaemonset is set to true.Minimum value: 1Defines whether Envoy Proxy pods will be spread across nodes. This ensures that multiple replicas are not running on the same node.
Used to select nodes to run Envoy Proxy. If specified, the node must have all the indicated labels.
Used to schedule Envoy Proxy pods on nodes with matching taints.
Defines the resource requirements for Envoy Proxy.
Resource limits (e.g., cpu, memory).
Resource requests (e.g., cpu, memory).
Used to schedule Envoy Proxy pods on nodes with matching affinity.
Defines the Envoy Proxy image to use.
Defines the graceful shutdown configuration for Envoy Proxy.
Controls whether graceful shutdown is disabled.
Maximum time to wait for connections to drain. Must be less than
terminationGracePeriodSeconds.Minimum time to wait before checking connection count. This prevents premature termination.
Grace period for pod termination. Must be greater than
drainTimeout.Minimum value: 30envoyProxy.gracefulShutdown.shutdownManagerImage
string
default:"docker.io/envoyproxy/gateway:v1.3.0"
Docker image for the shutdown-manager sidecar.
Defines the overload manager configuration for Envoy XDS.
Controls whether overload manager is enabled.
Maximum number of active downstream connections for the Envoy.
Maximum heap size for the Envoy in bytes. On reaching the limit, the Envoy will start to reject new connections.
LoadBalancer Settings
Class of the load balancer to use.
Flag that can be used to disable L4 load balancing.
Ingress Settings
Class of the ingress to use.
Flag that can be used to disable Ingress.
Gateway API Settings
Class of the gateway API to use. This can be used to specify a specific gateway API implementation.
Default gateway reference to use. This is only used for load balancer hostname.
Flag that can be used to disable Gateway API.
DNS Settings
Domain that will be used as the base domain to create wildcard DNS records for DNS resources. This is only used for determining the hostname for LoadBalancer resources at
LoadBalancer.Spec.Hostname.Flag that can be used to allow explicit hostnames to be used for DNS resources. This is only used when
LoadBalancer.Spec.Hostname is set.Flag that can be used to add DNS annotations to DNS resources. This is only used when
LoadBalancer.Spec.Hostname is set.Flag that can be used to add Certificate annotations to Certificate resources. This is only used when
LoadBalancer.Spec.Hostname is set.Certificate Settings
The Cluster Issuer to use for the certificates by default. This is only used for load balancer hostname.
Example
Basic Config
Config with Daemonset
Config with Graceful Shutdown
Config with Overload Manager
Config with Custom Annotations
Notes
- The Config resource is typically named
kubelb-configand is used for global settings - Tenant-specific configuration always overrides Config-level settings
- The
sharedtopology is the only supported and recommended topology for Envoy Proxy - When using
useDaemonset: true, thereplicasfield is ignored - Graceful shutdown settings help prevent connection drops during rolling updates
- Overload manager helps protect Envoy from overload by limiting connections and memory usage
