You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// +kubebuilder:validation:XValidation:rule="self.type == 'ConsistentHash' ? has(self.consistentHash) : !has(self.consistentHash)",message="If LoadBalancer type is consistentHash, consistentHash field needs to be set."
14
14
// +kubebuilder:validation:XValidation:rule="self.type in ['Random', 'ConsistentHash'] ? !has(self.slowStart) : true ",message="Currently SlowStart is only supported for RoundRobin and LeastRequest load balancers."
15
+
// +kubebuilder:validation:XValidation:rule="self.type == 'ConsistentHash' ? !has(self.zoneAware) : true ",message="Currently ZoneAware is only supported for LeastRequest, Random, and RoundRobin load balancers."
15
16
typeLoadBalancerstruct {
16
17
// Type decides the type of Load Balancer policy.
17
18
// Valid LoadBalancerType values are
@@ -34,6 +35,12 @@ type LoadBalancer struct {
34
35
//
35
36
// +optional
36
37
SlowStart*SlowStart`json:"slowStart,omitempty"`
38
+
39
+
// ZoneAware defines the configuration related to the distribution of requests between locality zones.
40
+
//
41
+
// +optional
42
+
// +notImplementedHide
43
+
ZoneAware*ZoneAware`json:"zoneAware,omitempty"`
37
44
}
38
45
39
46
// LoadBalancerType specifies the types of LoadBalancer.
@@ -135,3 +142,39 @@ type SlowStart struct {
135
142
Window*metav1.Duration`json:"window"`
136
143
// TODO: Add support for non-linear traffic increases based on user usage.
137
144
}
145
+
146
+
// ZoneAware defines the configuration related to the distribution of requests between locality zones.
147
+
typeZoneAwarestruct {
148
+
// PreferLocalZone configures zone-aware routing to prefer sending traffic to the local locality zone.
// The OIDC Provider's [end session endpoint](https://openid.net/specs/openid-connect-core-1_0.html#RPLogout).
167
+
//
168
+
// If the end session endpoint is provided, EG will use it to log out the user from the OIDC Provider when the user accesses the logout path.
169
+
// EG will also try to discover the end session endpoint from the provider's [Well-Known Configuration Endpoint](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfigurationResponse) when authorizationEndpoint or tokenEndpoint is not provided.
Copy file name to clipboardExpand all lines: api/v1alpha1/shared_types.go
+4-1Lines changed: 4 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -231,13 +231,15 @@ type KubernetesContainerSpec struct {
231
231
// Image specifies the EnvoyProxy container image to be used including a tag, instead of the default image.
232
232
// This field is mutually exclusive with ImageRepository.
233
233
//
234
+
// +kubebuilder:validation:XValidation:rule="self.matches('^[a-zA-Z0-9._/-]+:[a-zA-Z0-9._-]+$')",message="Image must include a tag and allowed characters only (e.g., 'repo:tag')."
234
235
// +optional
235
236
Image*string`json:"image,omitempty"`
236
237
237
238
// ImageRepository specifies the container image repository to be used without specifying a tag.
238
239
// The default tag will be used.
239
240
// This field is mutually exclusive with Image.
240
241
//
242
+
// +kubebuilder:validation:XValidation:rule="self.matches('^[a-zA-Z0-9._/-]+$')",message="ImageRepository must contain only allowed characters and must not include a tag or any colons."
0 commit comments