Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
7c450c5
Implement dynamic module lb policy
jukie Apr 9, 2026
a6921c5
Remote source and e2e
jukie Apr 9, 2026
ceb48a2
license
jukie Apr 9, 2026
2792839
fix e2e
jukie Apr 10, 2026
c453654
Adjust field names
jukie Apr 10, 2026
2954cb3
fix
jukie Apr 10, 2026
0dd658b
Merge branch 'main' into dym-lb-policy
jukie Apr 13, 2026
9cf3f3c
regen
jukie Apr 13, 2026
6514964
Split types
jukie Apr 13, 2026
1b6d015
Merge branch 'main' into dym-lb-policy
jukie Apr 13, 2026
29e3d54
gen-check
jukie Apr 13, 2026
c966a12
Merge branch 'main' into dym-lb-policy
jukie Apr 13, 2026
78609b8
bump examples go version
jukie Apr 13, 2026
24d38dd
release note
jukie Apr 13, 2026
f1e9ed6
feedback
jukie Apr 14, 2026
bf1a39c
Merge branch 'main' into dym-lb-policy
jukie Apr 14, 2026
ea79bde
Merge branch 'main' into dym-lb-policy
jukie Apr 15, 2026
76f4d06
lint
jukie Apr 15, 2026
749172c
golint
jukie Apr 15, 2026
5fced38
Merge branch 'main' into dym-lb-policy
jukie Apr 16, 2026
75fece3
Merge branch 'main' into dym-lb-policy
jukie Apr 17, 2026
ca76bd8
Merge branch 'main' into dym-lb-policy
jukie Apr 17, 2026
1a7125b
Merge branch 'main' into dym-lb-policy
jukie Apr 20, 2026
dec7e3d
Merge branch 'main' into dym-lb-policy
jukie Apr 23, 2026
6875a44
feedback
jukie Apr 23, 2026
d0a65f4
Merge branch 'main' into dym-lb-policy
jukie Apr 23, 2026
eeb675c
Merge branch 'main' into dym-lb-policy
jukie Apr 24, 2026
38a3dfe
Update current.yaml
jukie Apr 25, 2026
ae259ec
Merge branch 'main' into dym-lb-policy
jukie Apr 25, 2026
67ef699
Merge branch 'main' into dym-lb-policy
jukie Apr 26, 2026
83d3c13
Merge branch 'main' into dym-lb-policy
jukie Apr 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions api/v1alpha1/dynamic_module_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -120,10 +120,10 @@ type DynamicModule struct {
// +kubebuilder:validation:Pattern=`^[a-z0-9]([a-z0-9.-]*[a-z0-9])?$`
Name string `json:"name"`

// FilterName identifies a specific filter implementation within the dynamic
// module. A single shared library can contain multiple filter implementations.
// This value is passed to the module's HTTP filter config init function to
// select the appropriate implementation.
// FilterName identifies a specific HTTP filter implementation within the
// dynamic module. A single shared library can contain multiple filter
// implementations; this value is passed to the module's initialization
// function to select one.
// If not specified, defaults to an empty string.
//
// +optional
Expand Down
22 changes: 9 additions & 13 deletions api/v1alpha1/loadbalancer_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@ type LoadBalancer struct {
// EnvoyProxy resource's dynamicModules allowlist.
//
// +optional
// +notImplementedHide
DynamicModule *DynamicModuleLBPolicy `json:"dynamicModule,omitempty"`

// EndpointOverride defines the configuration for endpoint override.
Expand Down Expand Up @@ -91,7 +90,6 @@ const (
// BackendUtilizationLoadBalancerType load balancer policy.
BackendUtilizationLoadBalancerType LoadBalancerType = "BackendUtilization"
// DynamicModuleLoadBalancerType load balancer policy.
// +notImplementedHide
DynamicModuleLoadBalancerType LoadBalancerType = "DynamicModule"
)

Expand Down Expand Up @@ -236,8 +234,6 @@ type BackendUtilization struct {
// The module must be registered in the EnvoyProxy resource's dynamicModules allowlist.
//
// See https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/load_balancing_policies/dynamic_modules/v3/dynamic_modules.proto
//
// +notImplementedHide
type DynamicModuleLBPolicy struct {
// Name references a dynamic module registered in the EnvoyProxy resource's
// dynamicModules list. The referenced module must exist in the registry;
Expand All @@ -248,18 +244,18 @@ type DynamicModuleLBPolicy struct {
// +kubebuilder:validation:Pattern=`^[a-z0-9]([a-z0-9.-]*[a-z0-9])?$`
Name string `json:"name"`

// LBPolicyName identifies a specific load balancer implementation within
// the dynamic module. A single shared library can contain multiple LB
// policy implementations. This value is passed to the module's
// initialization function to select the appropriate implementation.
// PolicyName identifies a specific load balancing policy implementation
// within the dynamic module. A single shared library can contain multiple
// policy implementations; this value is passed to the module's
// initialization function to select one.
// If not specified, defaults to an empty string.
//
// +kubebuilder:validation:MinLength=1
// +optional
// +kubebuilder:validation:MaxLength=253
LBPolicyName string `json:"lbPolicyName"`
PolicyName *string `json:"policyName,omitempty"`
Comment thread
jukie marked this conversation as resolved.
Comment thread
jukie marked this conversation as resolved.

// Config is optional configuration for the module's load balancer
// implementation. This is serialized and passed to the module's
// initialization function.
// Config is the configuration for the dynamic module load balancer policy.
// This is serialized as JSON and passed to the module's initialization function.
//
// +optional
Config *apiextensionsv1.JSON `json:"config,omitempty"`
Expand Down
5 changes: 5 additions & 0 deletions api/v1alpha1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -1197,19 +1197,9 @@ spec:
properties:
config:
description: |-
Config is optional configuration for the module's load balancer
implementation. This is serialized and passed to the module's
initialization function.
Config is the configuration for the dynamic module load balancer policy.
This is serialized as JSON and passed to the module's initialization function.
x-kubernetes-preserve-unknown-fields: true
lbPolicyName:
description: |-
LBPolicyName identifies a specific load balancer implementation within
the dynamic module. A single shared library can contain multiple LB
policy implementations. This value is passed to the module's
initialization function to select the appropriate implementation.
maxLength: 253
minLength: 1
type: string
name:
description: |-
Name references a dynamic module registered in the EnvoyProxy resource's
Expand All @@ -1219,8 +1209,16 @@ spec:
minLength: 1
pattern: ^[a-z0-9]([a-z0-9.-]*[a-z0-9])?$
type: string
policyName:
description: |-
PolicyName identifies a specific load balancing policy implementation
within the dynamic module. A single shared library can contain multiple
policy implementations; this value is passed to the module's
initialization function to select one.
If not specified, defaults to an empty string.
maxLength: 253
type: string
required:
- lbPolicyName
- name
type: object
endpointOverride:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,10 +68,10 @@ spec:
x-kubernetes-preserve-unknown-fields: true
filterName:
description: |-
FilterName identifies a specific filter implementation within the dynamic
module. A single shared library can contain multiple filter implementations.
This value is passed to the module's HTTP filter config init function to
select the appropriate implementation.
FilterName identifies a specific HTTP filter implementation within the
dynamic module. A single shared library can contain multiple filter
implementations; this value is passed to the module's initialization
function to select one.
If not specified, defaults to an empty string.
maxLength: 253
type: string
Expand Down Expand Up @@ -1076,19 +1076,9 @@ spec:
properties:
config:
description: |-
Config is optional configuration for the module's load balancer
implementation. This is serialized and passed to the module's
initialization function.
Config is the configuration for the dynamic module load balancer policy.
This is serialized as JSON and passed to the module's initialization function.
x-kubernetes-preserve-unknown-fields: true
lbPolicyName:
description: |-
LBPolicyName identifies a specific load balancer implementation within
the dynamic module. A single shared library can contain multiple LB
policy implementations. This value is passed to the module's
initialization function to select the appropriate implementation.
maxLength: 253
minLength: 1
type: string
name:
description: |-
Name references a dynamic module registered in the EnvoyProxy resource's
Expand All @@ -1098,8 +1088,16 @@ spec:
minLength: 1
pattern: ^[a-z0-9]([a-z0-9.-]*[a-z0-9])?$
type: string
policyName:
description: |-
PolicyName identifies a specific load balancing policy implementation
within the dynamic module. A single shared library can contain multiple
policy implementations; this value is passed to the module's
initialization function to select one.
If not specified, defaults to an empty string.
maxLength: 253
type: string
required:
- lbPolicyName
- name
type: object
endpointOverride:
Expand Down
Loading
Loading