From ed73f231e7098e4c48cd0441a351a4483a779975 Mon Sep 17 00:00:00 2001
From: Rama Chavali
Date: Tue, 17 Jun 2025 16:55:47 +0530
Subject: [PATCH] add support for additional cookie attributes
Signed-off-by: Rama Chavali
---
kubernetes/customresourcedefinitions.gen.yaml | 186 ++++++++++++++
networking/v1/destination_rule_alias.gen.go | 3 +
networking/v1alpha3/destination_rule.pb.go | 237 ++++++++++++------
networking/v1alpha3/destination_rule.pb.html | 45 +++-
networking/v1alpha3/destination_rule.proto | 11 +
.../v1alpha3/destination_rule_deepcopy.gen.go | 21 ++
.../v1alpha3/destination_rule_json.gen.go | 11 +
.../v1beta1/destination_rule_alias.gen.go | 3 +
8 files changed, 433 insertions(+), 84 deletions(-)
diff --git a/kubernetes/customresourcedefinitions.gen.yaml b/kubernetes/customresourcedefinitions.gen.yaml
index a0894476a9d..174ac9ecb2b 100644
--- a/kubernetes/customresourcedefinitions.gen.yaml
+++ b/kubernetes/customresourcedefinitions.gen.yaml
@@ -594,6 +594,21 @@ spec:
httpCookie:
description: Hash based on HTTP cookie.
properties:
+ attributes:
+ description: Additional attributes for the cookie.
+ items:
+ properties:
+ name:
+ description: The name of the cookie attribute.
+ type: string
+ value:
+ description: The optional value of the
+ cookie attribute.
+ type: string
+ required:
+ - name
+ type: object
+ type: array
name:
description: Name of the cookie.
type: string
@@ -957,6 +972,23 @@ spec:
httpCookie:
description: Hash based on HTTP cookie.
properties:
+ attributes:
+ description: Additional attributes for
+ the cookie.
+ items:
+ properties:
+ name:
+ description: The name of the cookie
+ attribute.
+ type: string
+ value:
+ description: The optional value
+ of the cookie attribute.
+ type: string
+ required:
+ - name
+ type: object
+ type: array
name:
description: Name of the cookie.
type: string
@@ -1477,6 +1509,21 @@ spec:
httpCookie:
description: Hash based on HTTP cookie.
properties:
+ attributes:
+ description: Additional attributes for the cookie.
+ items:
+ properties:
+ name:
+ description: The name of the cookie attribute.
+ type: string
+ value:
+ description: The optional value of the cookie
+ attribute.
+ type: string
+ required:
+ - name
+ type: object
+ type: array
name:
description: Name of the cookie.
type: string
@@ -1833,6 +1880,21 @@ spec:
httpCookie:
description: Hash based on HTTP cookie.
properties:
+ attributes:
+ description: Additional attributes for the cookie.
+ items:
+ properties:
+ name:
+ description: The name of the cookie attribute.
+ type: string
+ value:
+ description: The optional value of the
+ cookie attribute.
+ type: string
+ required:
+ - name
+ type: object
+ type: array
name:
description: Name of the cookie.
type: string
@@ -2493,6 +2555,21 @@ spec:
httpCookie:
description: Hash based on HTTP cookie.
properties:
+ attributes:
+ description: Additional attributes for the cookie.
+ items:
+ properties:
+ name:
+ description: The name of the cookie attribute.
+ type: string
+ value:
+ description: The optional value of the
+ cookie attribute.
+ type: string
+ required:
+ - name
+ type: object
+ type: array
name:
description: Name of the cookie.
type: string
@@ -2856,6 +2933,23 @@ spec:
httpCookie:
description: Hash based on HTTP cookie.
properties:
+ attributes:
+ description: Additional attributes for
+ the cookie.
+ items:
+ properties:
+ name:
+ description: The name of the cookie
+ attribute.
+ type: string
+ value:
+ description: The optional value
+ of the cookie attribute.
+ type: string
+ required:
+ - name
+ type: object
+ type: array
name:
description: Name of the cookie.
type: string
@@ -3376,6 +3470,21 @@ spec:
httpCookie:
description: Hash based on HTTP cookie.
properties:
+ attributes:
+ description: Additional attributes for the cookie.
+ items:
+ properties:
+ name:
+ description: The name of the cookie attribute.
+ type: string
+ value:
+ description: The optional value of the cookie
+ attribute.
+ type: string
+ required:
+ - name
+ type: object
+ type: array
name:
description: Name of the cookie.
type: string
@@ -3732,6 +3841,21 @@ spec:
httpCookie:
description: Hash based on HTTP cookie.
properties:
+ attributes:
+ description: Additional attributes for the cookie.
+ items:
+ properties:
+ name:
+ description: The name of the cookie attribute.
+ type: string
+ value:
+ description: The optional value of the
+ cookie attribute.
+ type: string
+ required:
+ - name
+ type: object
+ type: array
name:
description: Name of the cookie.
type: string
@@ -4392,6 +4516,21 @@ spec:
httpCookie:
description: Hash based on HTTP cookie.
properties:
+ attributes:
+ description: Additional attributes for the cookie.
+ items:
+ properties:
+ name:
+ description: The name of the cookie attribute.
+ type: string
+ value:
+ description: The optional value of the
+ cookie attribute.
+ type: string
+ required:
+ - name
+ type: object
+ type: array
name:
description: Name of the cookie.
type: string
@@ -4755,6 +4894,23 @@ spec:
httpCookie:
description: Hash based on HTTP cookie.
properties:
+ attributes:
+ description: Additional attributes for
+ the cookie.
+ items:
+ properties:
+ name:
+ description: The name of the cookie
+ attribute.
+ type: string
+ value:
+ description: The optional value
+ of the cookie attribute.
+ type: string
+ required:
+ - name
+ type: object
+ type: array
name:
description: Name of the cookie.
type: string
@@ -5275,6 +5431,21 @@ spec:
httpCookie:
description: Hash based on HTTP cookie.
properties:
+ attributes:
+ description: Additional attributes for the cookie.
+ items:
+ properties:
+ name:
+ description: The name of the cookie attribute.
+ type: string
+ value:
+ description: The optional value of the cookie
+ attribute.
+ type: string
+ required:
+ - name
+ type: object
+ type: array
name:
description: Name of the cookie.
type: string
@@ -5631,6 +5802,21 @@ spec:
httpCookie:
description: Hash based on HTTP cookie.
properties:
+ attributes:
+ description: Additional attributes for the cookie.
+ items:
+ properties:
+ name:
+ description: The name of the cookie attribute.
+ type: string
+ value:
+ description: The optional value of the
+ cookie attribute.
+ type: string
+ required:
+ - name
+ type: object
+ type: array
name:
description: Name of the cookie.
type: string
diff --git a/networking/v1/destination_rule_alias.gen.go b/networking/v1/destination_rule_alias.gen.go
index db66de58357..84dad7609df 100644
--- a/networking/v1/destination_rule_alias.gen.go
+++ b/networking/v1/destination_rule_alias.gen.go
@@ -160,6 +160,9 @@ type LoadBalancerSettings_ConsistentHashLB_MagLev = v1alpha3.LoadBalancerSetting
// Consistent Hash load balancer.
type LoadBalancerSettings_ConsistentHashLB_HTTPCookie = v1alpha3.LoadBalancerSettings_ConsistentHashLB_HTTPCookie
+// Attribute defines an API for adding additional attributes for a HTTP cookie.
+type LoadBalancerSettings_ConsistentHashLB_HTTPCookie_Attribute = v1alpha3.LoadBalancerSettings_ConsistentHashLB_HTTPCookie_Attribute
+
// Hash based on a specific HTTP header.
type LoadBalancerSettings_ConsistentHashLB_HttpHeaderName = v1alpha3.LoadBalancerSettings_ConsistentHashLB_HttpHeaderName
diff --git a/networking/v1alpha3/destination_rule.pb.go b/networking/v1alpha3/destination_rule.pb.go
index 883a94eae31..b6e8bde2144 100644
--- a/networking/v1alpha3/destination_rule.pb.go
+++ b/networking/v1alpha3/destination_rule.pb.go
@@ -2201,7 +2201,9 @@ type LoadBalancerSettings_ConsistentHashLB_HTTPCookie struct {
// generated if the cookie is not present. If the TTL is present and zero,
// the generated cookie will be a session cookie.
// +protoc-gen-crd:duration-validation:none
- Ttl *duration.Duration `protobuf:"bytes,3,opt,name=ttl,proto3" json:"ttl,omitempty"`
+ Ttl *duration.Duration `protobuf:"bytes,3,opt,name=ttl,proto3" json:"ttl,omitempty"`
+ // Additional attributes for the cookie. They will be used when generating a new cookie.
+ Attributes []*LoadBalancerSettings_ConsistentHashLB_HTTPCookie_Attribute `protobuf:"bytes,4,rep,name=attributes,proto3" json:"attributes,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@@ -2257,6 +2259,68 @@ func (x *LoadBalancerSettings_ConsistentHashLB_HTTPCookie) GetTtl() *duration.Du
return nil
}
+func (x *LoadBalancerSettings_ConsistentHashLB_HTTPCookie) GetAttributes() []*LoadBalancerSettings_ConsistentHashLB_HTTPCookie_Attribute {
+ if x != nil {
+ return x.Attributes
+ }
+ return nil
+}
+
+// Attribute defines an API for adding additional attributes for a HTTP cookie.
+type LoadBalancerSettings_ConsistentHashLB_HTTPCookie_Attribute struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ // The name of the cookie attribute.
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ // The optional value of the cookie attribute.
+ Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *LoadBalancerSettings_ConsistentHashLB_HTTPCookie_Attribute) Reset() {
+ *x = LoadBalancerSettings_ConsistentHashLB_HTTPCookie_Attribute{}
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[17]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *LoadBalancerSettings_ConsistentHashLB_HTTPCookie_Attribute) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*LoadBalancerSettings_ConsistentHashLB_HTTPCookie_Attribute) ProtoMessage() {}
+
+func (x *LoadBalancerSettings_ConsistentHashLB_HTTPCookie_Attribute) ProtoReflect() protoreflect.Message {
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[17]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use LoadBalancerSettings_ConsistentHashLB_HTTPCookie_Attribute.ProtoReflect.Descriptor instead.
+func (*LoadBalancerSettings_ConsistentHashLB_HTTPCookie_Attribute) Descriptor() ([]byte, []int) {
+ return file_networking_v1alpha3_destination_rule_proto_rawDescGZIP(), []int{3, 0, 2, 0}
+}
+
+func (x *LoadBalancerSettings_ConsistentHashLB_HTTPCookie_Attribute) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *LoadBalancerSettings_ConsistentHashLB_HTTPCookie_Attribute) GetValue() string {
+ if x != nil {
+ return x.Value
+ }
+ return ""
+}
+
// Settings common to both HTTP and TCP upstream connections.
type ConnectionPoolSettings_TCPSettings struct {
state protoimpl.MessageState `protogen:"open.v1"`
@@ -2287,7 +2351,7 @@ type ConnectionPoolSettings_TCPSettings struct {
func (x *ConnectionPoolSettings_TCPSettings) Reset() {
*x = ConnectionPoolSettings_TCPSettings{}
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[17]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2299,7 +2363,7 @@ func (x *ConnectionPoolSettings_TCPSettings) String() string {
func (*ConnectionPoolSettings_TCPSettings) ProtoMessage() {}
func (x *ConnectionPoolSettings_TCPSettings) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[17]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[18]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2392,7 +2456,7 @@ type ConnectionPoolSettings_HTTPSettings struct {
func (x *ConnectionPoolSettings_HTTPSettings) Reset() {
*x = ConnectionPoolSettings_HTTPSettings{}
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[18]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2404,7 +2468,7 @@ func (x *ConnectionPoolSettings_HTTPSettings) String() string {
func (*ConnectionPoolSettings_HTTPSettings) ProtoMessage() {}
func (x *ConnectionPoolSettings_HTTPSettings) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[18]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[19]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2497,7 +2561,7 @@ type ConnectionPoolSettings_TCPSettings_TcpKeepalive struct {
func (x *ConnectionPoolSettings_TCPSettings_TcpKeepalive) Reset() {
*x = ConnectionPoolSettings_TCPSettings_TcpKeepalive{}
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[19]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2509,7 +2573,7 @@ func (x *ConnectionPoolSettings_TCPSettings_TcpKeepalive) String() string {
func (*ConnectionPoolSettings_TCPSettings_TcpKeepalive) ProtoMessage() {}
func (x *ConnectionPoolSettings_TCPSettings_TcpKeepalive) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[19]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[20]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2570,7 +2634,7 @@ type LocalityLoadBalancerSetting_Distribute struct {
func (x *LocalityLoadBalancerSetting_Distribute) Reset() {
*x = LocalityLoadBalancerSetting_Distribute{}
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[20]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2582,7 +2646,7 @@ func (x *LocalityLoadBalancerSetting_Distribute) String() string {
func (*LocalityLoadBalancerSetting_Distribute) ProtoMessage() {}
func (x *LocalityLoadBalancerSetting_Distribute) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[20]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[21]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2632,7 +2696,7 @@ type LocalityLoadBalancerSetting_Failover struct {
func (x *LocalityLoadBalancerSetting_Failover) Reset() {
*x = LocalityLoadBalancerSetting_Failover{}
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[21]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2644,7 +2708,7 @@ func (x *LocalityLoadBalancerSetting_Failover) String() string {
func (*LocalityLoadBalancerSetting_Failover) ProtoMessage() {}
func (x *LocalityLoadBalancerSetting_Failover) ProtoReflect() protoreflect.Message {
- mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[21]
+ mi := &file_networking_v1alpha3_destination_rule_proto_msgTypes[22]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2717,14 +2781,13 @@ const file_networking_v1alpha3_destination_rule_proto_rawDesc = "" +
"\x0etraffic_policy\x18\x03 \x01(\v2(.istio.networking.v1alpha3.TrafficPolicyR\rtrafficPolicy\x1a9\n" +
"\vLabelsEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
- "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xcc\n" +
- "\n" +
+ "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\x81\f\n" +
"\x14LoadBalancerSettings\x12R\n" +
"\x06simple\x18\x01 \x01(\x0e28.istio.networking.v1alpha3.LoadBalancerSettings.SimpleLBH\x00R\x06simple\x12k\n" +
"\x0fconsistent_hash\x18\x02 \x01(\v2@.istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLBH\x00R\x0econsistentHash\x12f\n" +
"\x13locality_lb_setting\x18\x03 \x01(\v26.istio.networking.v1alpha3.LocalityLoadBalancerSettingR\x11localityLbSetting\x12K\n" +
"\x14warmup_duration_secs\x18\x04 \x01(\v2\x19.google.protobuf.DurationR\x12warmupDurationSecs\x12F\n" +
- "\x06warmup\x18\x05 \x01(\v2..istio.networking.v1alpha3.WarmupConfigurationR\x06warmup\x1a\xf6\x05\n" +
+ "\x06warmup\x18\x05 \x01(\v2..istio.networking.v1alpha3.WarmupConfigurationR\x06warmup\x1a\xab\a\n" +
"\x10ConsistentHashLB\x12*\n" +
"\x10http_header_name\x18\x01 \x01(\tH\x00R\x0ehttpHeaderName\x12n\n" +
"\vhttp_cookie\x18\x02 \x01(\v2K.istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.HTTPCookieH\x00R\n" +
@@ -2738,12 +2801,18 @@ const file_networking_v1alpha3_destination_rule_proto_rawDesc = "" +
"\x11minimum_ring_size\x18\x01 \x01(\x04R\x0fminimumRingSize\x1a'\n" +
"\x06MagLev\x12\x1d\n" +
"\n" +
- "table_size\x18\x01 \x01(\x04R\ttableSize\x1ag\n" +
+ "table_size\x18\x01 \x01(\x04R\ttableSize\x1a\x9b\x02\n" +
"\n" +
"HTTPCookie\x12\x18\n" +
"\x04name\x18\x01 \x01(\tB\x04\xe2A\x01\x02R\x04name\x12\x12\n" +
"\x04path\x18\x02 \x01(\tR\x04path\x12+\n" +
- "\x03ttl\x18\x03 \x01(\v2\x19.google.protobuf.DurationR\x03ttlB\n" +
+ "\x03ttl\x18\x03 \x01(\v2\x19.google.protobuf.DurationR\x03ttl\x12u\n" +
+ "\n" +
+ "attributes\x18\x04 \x03(\v2U.istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.HTTPCookie.AttributeR\n" +
+ "attributes\x1a;\n" +
+ "\tAttribute\x12\x18\n" +
+ "\x04name\x18\x01 \x01(\tB\x04\xe2A\x01\x02R\x04name\x12\x14\n" +
+ "\x05value\x18\x02 \x01(\tR\x05valueB\n" +
"\n" +
"\bhash_keyB\x10\n" +
"\x0ehash_algorithm\"p\n" +
@@ -2850,46 +2919,47 @@ func file_networking_v1alpha3_destination_rule_proto_rawDescGZIP() []byte {
}
var file_networking_v1alpha3_destination_rule_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
-var file_networking_v1alpha3_destination_rule_proto_msgTypes = make([]protoimpl.MessageInfo, 23)
+var file_networking_v1alpha3_destination_rule_proto_msgTypes = make([]protoimpl.MessageInfo, 24)
var file_networking_v1alpha3_destination_rule_proto_goTypes = []any{
- (TrafficPolicy_ProxyProtocol_VERSION)(0), // 0: istio.networking.v1alpha3.TrafficPolicy.ProxyProtocol.VERSION
- (LoadBalancerSettings_SimpleLB)(0), // 1: istio.networking.v1alpha3.LoadBalancerSettings.SimpleLB
- (ConnectionPoolSettings_HTTPSettings_H2UpgradePolicy)(0), // 2: istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.H2UpgradePolicy
- (ClientTLSSettings_TLSmode)(0), // 3: istio.networking.v1alpha3.ClientTLSSettings.TLSmode
- (*DestinationRule)(nil), // 4: istio.networking.v1alpha3.DestinationRule
- (*TrafficPolicy)(nil), // 5: istio.networking.v1alpha3.TrafficPolicy
- (*Subset)(nil), // 6: istio.networking.v1alpha3.Subset
- (*LoadBalancerSettings)(nil), // 7: istio.networking.v1alpha3.LoadBalancerSettings
- (*WarmupConfiguration)(nil), // 8: istio.networking.v1alpha3.WarmupConfiguration
- (*ConnectionPoolSettings)(nil), // 9: istio.networking.v1alpha3.ConnectionPoolSettings
- (*OutlierDetection)(nil), // 10: istio.networking.v1alpha3.OutlierDetection
- (*ClientTLSSettings)(nil), // 11: istio.networking.v1alpha3.ClientTLSSettings
- (*LocalityLoadBalancerSetting)(nil), // 12: istio.networking.v1alpha3.LocalityLoadBalancerSetting
- (*TrafficPolicy_PortTrafficPolicy)(nil), // 13: istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy
- (*TrafficPolicy_TunnelSettings)(nil), // 14: istio.networking.v1alpha3.TrafficPolicy.TunnelSettings
- (*TrafficPolicy_ProxyProtocol)(nil), // 15: istio.networking.v1alpha3.TrafficPolicy.ProxyProtocol
- nil, // 16: istio.networking.v1alpha3.Subset.LabelsEntry
- (*LoadBalancerSettings_ConsistentHashLB)(nil), // 17: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB
- (*LoadBalancerSettings_ConsistentHashLB_RingHash)(nil), // 18: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.RingHash
- (*LoadBalancerSettings_ConsistentHashLB_MagLev)(nil), // 19: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.MagLev
- (*LoadBalancerSettings_ConsistentHashLB_HTTPCookie)(nil), // 20: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.HTTPCookie
- (*ConnectionPoolSettings_TCPSettings)(nil), // 21: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings
- (*ConnectionPoolSettings_HTTPSettings)(nil), // 22: istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings
- (*ConnectionPoolSettings_TCPSettings_TcpKeepalive)(nil), // 23: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive
- (*LocalityLoadBalancerSetting_Distribute)(nil), // 24: istio.networking.v1alpha3.LocalityLoadBalancerSetting.Distribute
- (*LocalityLoadBalancerSetting_Failover)(nil), // 25: istio.networking.v1alpha3.LocalityLoadBalancerSetting.Failover
- nil, // 26: istio.networking.v1alpha3.LocalityLoadBalancerSetting.Distribute.ToEntry
- (*v1beta1.WorkloadSelector)(nil), // 27: istio.type.v1beta1.WorkloadSelector
- (*duration.Duration)(nil), // 28: google.protobuf.Duration
- (*wrappers.DoubleValue)(nil), // 29: google.protobuf.DoubleValue
- (*wrappers.UInt32Value)(nil), // 30: google.protobuf.UInt32Value
- (*wrappers.BoolValue)(nil), // 31: google.protobuf.BoolValue
- (*PortSelector)(nil), // 32: istio.networking.v1alpha3.PortSelector
+ (TrafficPolicy_ProxyProtocol_VERSION)(0), // 0: istio.networking.v1alpha3.TrafficPolicy.ProxyProtocol.VERSION
+ (LoadBalancerSettings_SimpleLB)(0), // 1: istio.networking.v1alpha3.LoadBalancerSettings.SimpleLB
+ (ConnectionPoolSettings_HTTPSettings_H2UpgradePolicy)(0), // 2: istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.H2UpgradePolicy
+ (ClientTLSSettings_TLSmode)(0), // 3: istio.networking.v1alpha3.ClientTLSSettings.TLSmode
+ (*DestinationRule)(nil), // 4: istio.networking.v1alpha3.DestinationRule
+ (*TrafficPolicy)(nil), // 5: istio.networking.v1alpha3.TrafficPolicy
+ (*Subset)(nil), // 6: istio.networking.v1alpha3.Subset
+ (*LoadBalancerSettings)(nil), // 7: istio.networking.v1alpha3.LoadBalancerSettings
+ (*WarmupConfiguration)(nil), // 8: istio.networking.v1alpha3.WarmupConfiguration
+ (*ConnectionPoolSettings)(nil), // 9: istio.networking.v1alpha3.ConnectionPoolSettings
+ (*OutlierDetection)(nil), // 10: istio.networking.v1alpha3.OutlierDetection
+ (*ClientTLSSettings)(nil), // 11: istio.networking.v1alpha3.ClientTLSSettings
+ (*LocalityLoadBalancerSetting)(nil), // 12: istio.networking.v1alpha3.LocalityLoadBalancerSetting
+ (*TrafficPolicy_PortTrafficPolicy)(nil), // 13: istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy
+ (*TrafficPolicy_TunnelSettings)(nil), // 14: istio.networking.v1alpha3.TrafficPolicy.TunnelSettings
+ (*TrafficPolicy_ProxyProtocol)(nil), // 15: istio.networking.v1alpha3.TrafficPolicy.ProxyProtocol
+ nil, // 16: istio.networking.v1alpha3.Subset.LabelsEntry
+ (*LoadBalancerSettings_ConsistentHashLB)(nil), // 17: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB
+ (*LoadBalancerSettings_ConsistentHashLB_RingHash)(nil), // 18: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.RingHash
+ (*LoadBalancerSettings_ConsistentHashLB_MagLev)(nil), // 19: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.MagLev
+ (*LoadBalancerSettings_ConsistentHashLB_HTTPCookie)(nil), // 20: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.HTTPCookie
+ (*LoadBalancerSettings_ConsistentHashLB_HTTPCookie_Attribute)(nil), // 21: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.HTTPCookie.Attribute
+ (*ConnectionPoolSettings_TCPSettings)(nil), // 22: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings
+ (*ConnectionPoolSettings_HTTPSettings)(nil), // 23: istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings
+ (*ConnectionPoolSettings_TCPSettings_TcpKeepalive)(nil), // 24: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive
+ (*LocalityLoadBalancerSetting_Distribute)(nil), // 25: istio.networking.v1alpha3.LocalityLoadBalancerSetting.Distribute
+ (*LocalityLoadBalancerSetting_Failover)(nil), // 26: istio.networking.v1alpha3.LocalityLoadBalancerSetting.Failover
+ nil, // 27: istio.networking.v1alpha3.LocalityLoadBalancerSetting.Distribute.ToEntry
+ (*v1beta1.WorkloadSelector)(nil), // 28: istio.type.v1beta1.WorkloadSelector
+ (*duration.Duration)(nil), // 29: google.protobuf.Duration
+ (*wrappers.DoubleValue)(nil), // 30: google.protobuf.DoubleValue
+ (*wrappers.UInt32Value)(nil), // 31: google.protobuf.UInt32Value
+ (*wrappers.BoolValue)(nil), // 32: google.protobuf.BoolValue
+ (*PortSelector)(nil), // 33: istio.networking.v1alpha3.PortSelector
}
var file_networking_v1alpha3_destination_rule_proto_depIdxs = []int32{
5, // 0: istio.networking.v1alpha3.DestinationRule.traffic_policy:type_name -> istio.networking.v1alpha3.TrafficPolicy
6, // 1: istio.networking.v1alpha3.DestinationRule.subsets:type_name -> istio.networking.v1alpha3.Subset
- 27, // 2: istio.networking.v1alpha3.DestinationRule.workload_selector:type_name -> istio.type.v1beta1.WorkloadSelector
+ 28, // 2: istio.networking.v1alpha3.DestinationRule.workload_selector:type_name -> istio.type.v1beta1.WorkloadSelector
7, // 3: istio.networking.v1alpha3.TrafficPolicy.load_balancer:type_name -> istio.networking.v1alpha3.LoadBalancerSettings
9, // 4: istio.networking.v1alpha3.TrafficPolicy.connection_pool:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings
10, // 5: istio.networking.v1alpha3.TrafficPolicy.outlier_detection:type_name -> istio.networking.v1alpha3.OutlierDetection
@@ -2902,24 +2972,24 @@ var file_networking_v1alpha3_destination_rule_proto_depIdxs = []int32{
1, // 12: istio.networking.v1alpha3.LoadBalancerSettings.simple:type_name -> istio.networking.v1alpha3.LoadBalancerSettings.SimpleLB
17, // 13: istio.networking.v1alpha3.LoadBalancerSettings.consistent_hash:type_name -> istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB
12, // 14: istio.networking.v1alpha3.LoadBalancerSettings.locality_lb_setting:type_name -> istio.networking.v1alpha3.LocalityLoadBalancerSetting
- 28, // 15: istio.networking.v1alpha3.LoadBalancerSettings.warmup_duration_secs:type_name -> google.protobuf.Duration
+ 29, // 15: istio.networking.v1alpha3.LoadBalancerSettings.warmup_duration_secs:type_name -> google.protobuf.Duration
8, // 16: istio.networking.v1alpha3.LoadBalancerSettings.warmup:type_name -> istio.networking.v1alpha3.WarmupConfiguration
- 28, // 17: istio.networking.v1alpha3.WarmupConfiguration.duration:type_name -> google.protobuf.Duration
- 29, // 18: istio.networking.v1alpha3.WarmupConfiguration.minimum_percent:type_name -> google.protobuf.DoubleValue
- 29, // 19: istio.networking.v1alpha3.WarmupConfiguration.aggression:type_name -> google.protobuf.DoubleValue
- 21, // 20: istio.networking.v1alpha3.ConnectionPoolSettings.tcp:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings
- 22, // 21: istio.networking.v1alpha3.ConnectionPoolSettings.http:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings
- 30, // 22: istio.networking.v1alpha3.OutlierDetection.consecutive_local_origin_failures:type_name -> google.protobuf.UInt32Value
- 30, // 23: istio.networking.v1alpha3.OutlierDetection.consecutive_gateway_errors:type_name -> google.protobuf.UInt32Value
- 30, // 24: istio.networking.v1alpha3.OutlierDetection.consecutive_5xx_errors:type_name -> google.protobuf.UInt32Value
- 28, // 25: istio.networking.v1alpha3.OutlierDetection.interval:type_name -> google.protobuf.Duration
- 28, // 26: istio.networking.v1alpha3.OutlierDetection.base_ejection_time:type_name -> google.protobuf.Duration
+ 29, // 17: istio.networking.v1alpha3.WarmupConfiguration.duration:type_name -> google.protobuf.Duration
+ 30, // 18: istio.networking.v1alpha3.WarmupConfiguration.minimum_percent:type_name -> google.protobuf.DoubleValue
+ 30, // 19: istio.networking.v1alpha3.WarmupConfiguration.aggression:type_name -> google.protobuf.DoubleValue
+ 22, // 20: istio.networking.v1alpha3.ConnectionPoolSettings.tcp:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings
+ 23, // 21: istio.networking.v1alpha3.ConnectionPoolSettings.http:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings
+ 31, // 22: istio.networking.v1alpha3.OutlierDetection.consecutive_local_origin_failures:type_name -> google.protobuf.UInt32Value
+ 31, // 23: istio.networking.v1alpha3.OutlierDetection.consecutive_gateway_errors:type_name -> google.protobuf.UInt32Value
+ 31, // 24: istio.networking.v1alpha3.OutlierDetection.consecutive_5xx_errors:type_name -> google.protobuf.UInt32Value
+ 29, // 25: istio.networking.v1alpha3.OutlierDetection.interval:type_name -> google.protobuf.Duration
+ 29, // 26: istio.networking.v1alpha3.OutlierDetection.base_ejection_time:type_name -> google.protobuf.Duration
3, // 27: istio.networking.v1alpha3.ClientTLSSettings.mode:type_name -> istio.networking.v1alpha3.ClientTLSSettings.TLSmode
- 31, // 28: istio.networking.v1alpha3.ClientTLSSettings.insecure_skip_verify:type_name -> google.protobuf.BoolValue
- 24, // 29: istio.networking.v1alpha3.LocalityLoadBalancerSetting.distribute:type_name -> istio.networking.v1alpha3.LocalityLoadBalancerSetting.Distribute
- 25, // 30: istio.networking.v1alpha3.LocalityLoadBalancerSetting.failover:type_name -> istio.networking.v1alpha3.LocalityLoadBalancerSetting.Failover
- 31, // 31: istio.networking.v1alpha3.LocalityLoadBalancerSetting.enabled:type_name -> google.protobuf.BoolValue
- 32, // 32: istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy.port:type_name -> istio.networking.v1alpha3.PortSelector
+ 32, // 28: istio.networking.v1alpha3.ClientTLSSettings.insecure_skip_verify:type_name -> google.protobuf.BoolValue
+ 25, // 29: istio.networking.v1alpha3.LocalityLoadBalancerSetting.distribute:type_name -> istio.networking.v1alpha3.LocalityLoadBalancerSetting.Distribute
+ 26, // 30: istio.networking.v1alpha3.LocalityLoadBalancerSetting.failover:type_name -> istio.networking.v1alpha3.LocalityLoadBalancerSetting.Failover
+ 32, // 31: istio.networking.v1alpha3.LocalityLoadBalancerSetting.enabled:type_name -> google.protobuf.BoolValue
+ 33, // 32: istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy.port:type_name -> istio.networking.v1alpha3.PortSelector
7, // 33: istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy.load_balancer:type_name -> istio.networking.v1alpha3.LoadBalancerSettings
9, // 34: istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy.connection_pool:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings
10, // 35: istio.networking.v1alpha3.TrafficPolicy.PortTrafficPolicy.outlier_detection:type_name -> istio.networking.v1alpha3.OutlierDetection
@@ -2928,21 +2998,22 @@ var file_networking_v1alpha3_destination_rule_proto_depIdxs = []int32{
20, // 38: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.http_cookie:type_name -> istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.HTTPCookie
18, // 39: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.ring_hash:type_name -> istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.RingHash
19, // 40: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.maglev:type_name -> istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.MagLev
- 28, // 41: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.HTTPCookie.ttl:type_name -> google.protobuf.Duration
- 28, // 42: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.connect_timeout:type_name -> google.protobuf.Duration
- 23, // 43: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.tcp_keepalive:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive
- 28, // 44: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.max_connection_duration:type_name -> google.protobuf.Duration
- 28, // 45: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.idle_timeout:type_name -> google.protobuf.Duration
- 28, // 46: istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.idle_timeout:type_name -> google.protobuf.Duration
- 2, // 47: istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.h2_upgrade_policy:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.H2UpgradePolicy
- 28, // 48: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive.time:type_name -> google.protobuf.Duration
- 28, // 49: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive.interval:type_name -> google.protobuf.Duration
- 26, // 50: istio.networking.v1alpha3.LocalityLoadBalancerSetting.Distribute.to:type_name -> istio.networking.v1alpha3.LocalityLoadBalancerSetting.Distribute.ToEntry
- 51, // [51:51] is the sub-list for method output_type
- 51, // [51:51] is the sub-list for method input_type
- 51, // [51:51] is the sub-list for extension type_name
- 51, // [51:51] is the sub-list for extension extendee
- 0, // [0:51] is the sub-list for field type_name
+ 29, // 41: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.HTTPCookie.ttl:type_name -> google.protobuf.Duration
+ 21, // 42: istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.HTTPCookie.attributes:type_name -> istio.networking.v1alpha3.LoadBalancerSettings.ConsistentHashLB.HTTPCookie.Attribute
+ 29, // 43: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.connect_timeout:type_name -> google.protobuf.Duration
+ 24, // 44: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.tcp_keepalive:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive
+ 29, // 45: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.max_connection_duration:type_name -> google.protobuf.Duration
+ 29, // 46: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.idle_timeout:type_name -> google.protobuf.Duration
+ 29, // 47: istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.idle_timeout:type_name -> google.protobuf.Duration
+ 2, // 48: istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.h2_upgrade_policy:type_name -> istio.networking.v1alpha3.ConnectionPoolSettings.HTTPSettings.H2UpgradePolicy
+ 29, // 49: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive.time:type_name -> google.protobuf.Duration
+ 29, // 50: istio.networking.v1alpha3.ConnectionPoolSettings.TCPSettings.TcpKeepalive.interval:type_name -> google.protobuf.Duration
+ 27, // 51: istio.networking.v1alpha3.LocalityLoadBalancerSetting.Distribute.to:type_name -> istio.networking.v1alpha3.LocalityLoadBalancerSetting.Distribute.ToEntry
+ 52, // [52:52] is the sub-list for method output_type
+ 52, // [52:52] is the sub-list for method input_type
+ 52, // [52:52] is the sub-list for extension type_name
+ 52, // [52:52] is the sub-list for extension extendee
+ 0, // [0:52] is the sub-list for field type_name
}
func init() { file_networking_v1alpha3_destination_rule_proto_init() }
@@ -2969,7 +3040,7 @@ func file_networking_v1alpha3_destination_rule_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: unsafe.Slice(unsafe.StringData(file_networking_v1alpha3_destination_rule_proto_rawDesc), len(file_networking_v1alpha3_destination_rule_proto_rawDesc)),
NumEnums: 4,
- NumMessages: 23,
+ NumMessages: 24,
NumExtensions: 0,
NumServices: 0,
},
diff --git a/networking/v1alpha3/destination_rule.pb.html b/networking/v1alpha3/destination_rule.pb.html
index a5b21c46640..d61914a7c9e 100644
--- a/networking/v1alpha3/destination_rule.pb.html
+++ b/networking/v1alpha3/destination_rule.pb.html
@@ -6,7 +6,7 @@
generator: protoc-gen-docs
schema: istio.networking.v1alpha3.DestinationRule
aliases: [/docs/reference/config/networking/v1alpha3/destination-rule]
-number_of_entries: 26
+number_of_entries: 27
---
DestinationRule
defines policies that apply to traffic intended for a
service after routing has occurred. These rules specify configuration
@@ -792,6 +792,49 @@
HTTPCookie
generated if the cookie is not present. If the TTL is present and zero,
the generated cookie will be a session cookie.
+
+
+
+ |
+
+ Additional attributes for the cookie. They will be used when generating a new cookie.
+
+ |
+
+
+
+
+Attribute
+
+Attribute defines an API for adding additional attributes for a HTTP cookie.
+
+
+
+
+Field |
+Description |
+
+
+
+
+ |
+
+ The name of the cookie attribute.
+
+ |
+
+
+ |
+
+ The optional value of the cookie attribute.
+
|
diff --git a/networking/v1alpha3/destination_rule.proto b/networking/v1alpha3/destination_rule.proto
index 47c7b7a06c5..4e55dd33ad0 100644
--- a/networking/v1alpha3/destination_rule.proto
+++ b/networking/v1alpha3/destination_rule.proto
@@ -451,6 +451,15 @@ message LoadBalancerSettings {
// Describes a HTTP cookie that will be used as the hash key for the
// Consistent Hash load balancer.
message HTTPCookie {
+ // Attribute defines an API for adding additional attributes for a HTTP cookie.
+ message Attribute {
+ // The name of the cookie attribute.
+ string name = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // The optional value of the cookie attribute.
+ string value = 2;
+ }
+
// Name of the cookie.
string name = 1 [(google.api.field_behavior) = REQUIRED];
// Path to set for the cookie.
@@ -460,6 +469,8 @@ message LoadBalancerSettings {
// the generated cookie will be a session cookie.
// +protoc-gen-crd:duration-validation:none
google.protobuf.Duration ttl = 3;
+ // Additional attributes for the cookie. They will be used when generating a new cookie.
+ repeated Attribute attributes = 4;
}
// The hash key to use.
diff --git a/networking/v1alpha3/destination_rule_deepcopy.gen.go b/networking/v1alpha3/destination_rule_deepcopy.gen.go
index 0f61ea8d3ae..254c5f17921 100644
--- a/networking/v1alpha3/destination_rule_deepcopy.gen.go
+++ b/networking/v1alpha3/destination_rule_deepcopy.gen.go
@@ -236,6 +236,27 @@ func (in *LoadBalancerSettings_ConsistentHashLB_HTTPCookie) DeepCopyInterface()
return in.DeepCopy()
}
+// DeepCopyInto supports using LoadBalancerSettings_ConsistentHashLB_HTTPCookie_Attribute within kubernetes types, where deepcopy-gen is used.
+func (in *LoadBalancerSettings_ConsistentHashLB_HTTPCookie_Attribute) DeepCopyInto(out *LoadBalancerSettings_ConsistentHashLB_HTTPCookie_Attribute) {
+ p := proto.Clone(in).(*LoadBalancerSettings_ConsistentHashLB_HTTPCookie_Attribute)
+ *out = *p
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerSettings_ConsistentHashLB_HTTPCookie_Attribute. Required by controller-gen.
+func (in *LoadBalancerSettings_ConsistentHashLB_HTTPCookie_Attribute) DeepCopy() *LoadBalancerSettings_ConsistentHashLB_HTTPCookie_Attribute {
+ if in == nil {
+ return nil
+ }
+ out := new(LoadBalancerSettings_ConsistentHashLB_HTTPCookie_Attribute)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerSettings_ConsistentHashLB_HTTPCookie_Attribute. Required by controller-gen.
+func (in *LoadBalancerSettings_ConsistentHashLB_HTTPCookie_Attribute) DeepCopyInterface() interface{} {
+ return in.DeepCopy()
+}
+
// DeepCopyInto supports using WarmupConfiguration within kubernetes types, where deepcopy-gen is used.
func (in *WarmupConfiguration) DeepCopyInto(out *WarmupConfiguration) {
p := proto.Clone(in).(*WarmupConfiguration)
diff --git a/networking/v1alpha3/destination_rule_json.gen.go b/networking/v1alpha3/destination_rule_json.gen.go
index 4e65aa9c891..6cdff9fedd2 100644
--- a/networking/v1alpha3/destination_rule_json.gen.go
+++ b/networking/v1alpha3/destination_rule_json.gen.go
@@ -127,6 +127,17 @@ func (this *LoadBalancerSettings_ConsistentHashLB_HTTPCookie) UnmarshalJSON(b []
return DestinationRuleUnmarshaler.Unmarshal(bytes.NewReader(b), this)
}
+// MarshalJSON is a custom marshaler for LoadBalancerSettings_ConsistentHashLB_HTTPCookie_Attribute
+func (this *LoadBalancerSettings_ConsistentHashLB_HTTPCookie_Attribute) MarshalJSON() ([]byte, error) {
+ str, err := DestinationRuleMarshaler.MarshalToString(this)
+ return []byte(str), err
+}
+
+// UnmarshalJSON is a custom unmarshaler for LoadBalancerSettings_ConsistentHashLB_HTTPCookie_Attribute
+func (this *LoadBalancerSettings_ConsistentHashLB_HTTPCookie_Attribute) UnmarshalJSON(b []byte) error {
+ return DestinationRuleUnmarshaler.Unmarshal(bytes.NewReader(b), this)
+}
+
// MarshalJSON is a custom marshaler for WarmupConfiguration
func (this *WarmupConfiguration) MarshalJSON() ([]byte, error) {
str, err := DestinationRuleMarshaler.MarshalToString(this)
diff --git a/networking/v1beta1/destination_rule_alias.gen.go b/networking/v1beta1/destination_rule_alias.gen.go
index 834941f88bb..bf1f400c57b 100644
--- a/networking/v1beta1/destination_rule_alias.gen.go
+++ b/networking/v1beta1/destination_rule_alias.gen.go
@@ -160,6 +160,9 @@ type LoadBalancerSettings_ConsistentHashLB_MagLev = v1alpha3.LoadBalancerSetting
// Consistent Hash load balancer.
type LoadBalancerSettings_ConsistentHashLB_HTTPCookie = v1alpha3.LoadBalancerSettings_ConsistentHashLB_HTTPCookie
+// Attribute defines an API for adding additional attributes for a HTTP cookie.
+type LoadBalancerSettings_ConsistentHashLB_HTTPCookie_Attribute = v1alpha3.LoadBalancerSettings_ConsistentHashLB_HTTPCookie_Attribute
+
// Hash based on a specific HTTP header.
type LoadBalancerSettings_ConsistentHashLB_HttpHeaderName = v1alpha3.LoadBalancerSettings_ConsistentHashLB_HttpHeaderName