K8sCertificateSetting configures the provision of certificates (#1105)

This commit is contained in:
lei-tang 2019-09-30 17:46:24 -07:00 committed by Istio Automation
parent 33a483a29b
commit ca4d65802c
6 changed files with 659 additions and 147 deletions

View File

@ -440,10 +440,12 @@ type MeshConfig struct {
// Following are some examples of supported patterns for reviews.
// %SERVICE_FQDN%_%SERVICE_PORT% will use reviews.prod.svc.cluster.local_7443 as the stats name.
// %SERVICE% will use reviews.prod as the stats name.
OutboundClusterStatName string `protobuf:"bytes,45,opt,name=outbound_cluster_stat_name,json=outboundClusterStatName,proto3" json:"outbound_cluster_stat_name,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
OutboundClusterStatName string `protobuf:"bytes,45,opt,name=outbound_cluster_stat_name,json=outboundClusterStatName,proto3" json:"outbound_cluster_stat_name,omitempty"`
// Configure the provision of certificates.
Certificates []*Certificate `protobuf:"bytes,47,rep,name=certificates,proto3" json:"certificates,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *MeshConfig) Reset() { *m = MeshConfig{} }
@ -791,6 +793,13 @@ func (m *MeshConfig) GetOutboundClusterStatName() string {
return ""
}
func (m *MeshConfig) GetCertificates() []*Certificate {
if m != nil {
return m.Certificates
}
return nil
}
type MeshConfig_OutboundTrafficPolicy struct {
Mode MeshConfig_OutboundTrafficPolicy_Mode `protobuf:"varint,1,opt,name=mode,proto3,enum=istio.mesh.v1alpha1.MeshConfig_OutboundTrafficPolicy_Mode" json:"mode,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
@ -1154,6 +1163,80 @@ func (m *LocalityLoadBalancerSetting_Failover) GetTo() string {
return ""
}
// Certificate configures the provision of a certificate and its key.
// Example 1: key and cert stored in a secret
// { secretName: galley-cert
// secretNamespace: istio-system
// dnsNames:
// - galley.istio-system.svc
// - galley.mydomain.com
// }
// Example 2: key and cert stored in a directory
// { dnsNames:
// - pilot.istio-system
// - pilot.istio-system.svc
// - pilot.mydomain.com
// }
type Certificate struct {
// Name of the secret the certificate and its key will be stored into.
// If it is empty, it will not be stored into a secret.
// Instead, the certificate and its key will be stored into a hard-coded directory.
SecretName string `protobuf:"bytes,1,opt,name=secret_name,json=secretName,proto3" json:"secret_name,omitempty"`
// The DNS names for the certificate. A certificate may contain
// multiple DNS names.
DnsNames []string `protobuf:"bytes,2,rep,name=dns_names,json=dnsNames,proto3" json:"dns_names,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Certificate) Reset() { *m = Certificate{} }
func (m *Certificate) String() string { return proto.CompactTextString(m) }
func (*Certificate) ProtoMessage() {}
func (*Certificate) Descriptor() ([]byte, []int) {
return fileDescriptor_b5c7ece76d5d5022, []int{3}
}
func (m *Certificate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *Certificate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_Certificate.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
if err != nil {
return nil, err
}
return b[:n], nil
}
}
func (m *Certificate) XXX_Merge(src proto.Message) {
xxx_messageInfo_Certificate.Merge(m, src)
}
func (m *Certificate) XXX_Size() int {
return m.Size()
}
func (m *Certificate) XXX_DiscardUnknown() {
xxx_messageInfo_Certificate.DiscardUnknown(m)
}
var xxx_messageInfo_Certificate proto.InternalMessageInfo
func (m *Certificate) GetSecretName() string {
if m != nil {
return m.SecretName
}
return ""
}
func (m *Certificate) GetDnsNames() []string {
if m != nil {
return m.DnsNames
}
return nil
}
func init() {
proto.RegisterEnum("istio.mesh.v1alpha1.Resource", Resource_name, Resource_value)
proto.RegisterEnum("istio.mesh.v1alpha1.MeshConfig_IngressControllerMode", MeshConfig_IngressControllerMode_name, MeshConfig_IngressControllerMode_value)
@ -1168,126 +1251,131 @@ func init() {
proto.RegisterType((*LocalityLoadBalancerSetting_Distribute)(nil), "istio.mesh.v1alpha1.LocalityLoadBalancerSetting.Distribute")
proto.RegisterMapType((map[string]uint32)(nil), "istio.mesh.v1alpha1.LocalityLoadBalancerSetting.Distribute.ToEntry")
proto.RegisterType((*LocalityLoadBalancerSetting_Failover)(nil), "istio.mesh.v1alpha1.LocalityLoadBalancerSetting.Failover")
proto.RegisterType((*Certificate)(nil), "istio.mesh.v1alpha1.Certificate")
}
func init() { proto.RegisterFile("mesh/v1alpha1/config.proto", fileDescriptor_b5c7ece76d5d5022) }
var fileDescriptor_b5c7ece76d5d5022 = []byte{
// 1813 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x57, 0xdd, 0x52, 0x1b, 0xc9,
0x15, 0xf6, 0x00, 0xb6, 0xf1, 0x01, 0x89, 0xa1, 0x01, 0x6f, 0x5b, 0x8e, 0x59, 0x59, 0x1b, 0xdb,
0x0a, 0xd9, 0x88, 0x35, 0xae, 0xad, 0xd8, 0xbb, 0x57, 0x20, 0x09, 0x1b, 0x56, 0x20, 0x6a, 0x24,
0xbc, 0x71, 0xf6, 0xa2, 0xd3, 0x9a, 0x69, 0x49, 0x1d, 0x46, 0xd3, 0xaa, 0xe9, 0x1e, 0x6c, 0x9e,
0x20, 0x2f, 0x93, 0x54, 0xe5, 0x25, 0x52, 0x95, 0xcb, 0x3c, 0x42, 0xca, 0x4f, 0x92, 0xea, 0x9f,
0x41, 0x02, 0x54, 0x4b, 0x36, 0xb9, 0x9b, 0x3e, 0xe7, 0x3b, 0x5f, 0x77, 0x9f, 0xf3, 0xf5, 0xe9,
0x1e, 0x28, 0x8d, 0x98, 0x1c, 0x6e, 0x9f, 0xbf, 0xa4, 0xf1, 0x78, 0x48, 0x5f, 0x6e, 0x87, 0x22,
0xe9, 0xf3, 0x41, 0x6d, 0x9c, 0x0a, 0x25, 0xd0, 0x1a, 0x97, 0x8a, 0x8b, 0x9a, 0x46, 0xd4, 0x72,
0x44, 0x69, 0x73, 0x20, 0xc4, 0x20, 0x66, 0xdb, 0x06, 0xd2, 0xcb, 0xfa, 0xdb, 0x51, 0x96, 0x52,
0xc5, 0x45, 0x62, 0x83, 0x6e, 0xfa, 0x3f, 0xa6, 0x74, 0x3c, 0x66, 0xa9, 0x74, 0xfe, 0x47, 0x57,
0x27, 0x1c, 0xa7, 0xe2, 0xd3, 0x85, 0x73, 0x6d, 0x25, 0x4c, 0x7d, 0x14, 0xe9, 0x19, 0x4f, 0x06,
0x39, 0xe0, 0xd5, 0x76, 0xc4, 0xa4, 0xe2, 0x89, 0x99, 0x81, 0xa4, 0x59, 0xcc, 0x2c, 0xb6, 0xf2,
0x97, 0x47, 0x00, 0x47, 0x4c, 0x0e, 0xeb, 0x66, 0xc1, 0xe8, 0x6b, 0x40, 0x23, 0xfe, 0x89, 0xa5,
0x24, 0x1c, 0xb2, 0xf0, 0x8c, 0x48, 0x96, 0x9e, 0xb3, 0x14, 0x7b, 0x65, 0xaf, 0xfa, 0x20, 0xf0,
0x8d, 0xa7, 0xae, 0x1d, 0x1d, 0x63, 0x47, 0x35, 0x58, 0xb3, 0xe8, 0x94, 0x8d, 0x45, 0xaa, 0x72,
0xf8, 0x9c, 0x81, 0xaf, 0x1a, 0x57, 0x60, 0x3c, 0x0e, 0xbf, 0x03, 0x1b, 0x11, 0x97, 0xb4, 0x17,
0x33, 0x32, 0x16, 0x31, 0x0f, 0x2f, 0xec, 0x34, 0x12, 0xcf, 0x97, 0xbd, 0xea, 0x62, 0xb0, 0xe6,
0x9c, 0x27, 0xc6, 0x67, 0x26, 0x92, 0xe8, 0x15, 0x3c, 0x9c, 0xc6, 0x92, 0x3e, 0xe5, 0x31, 0x11,
0x63, 0x96, 0xe0, 0x47, 0x36, 0x68, 0x3c, 0x41, 0xef, 0x53, 0x1e, 0xb7, 0xc7, 0x2c, 0x41, 0x27,
0xf0, 0x4c, 0xf2, 0x88, 0x85, 0x34, 0x25, 0x4a, 0x10, 0xc5, 0x62, 0x36, 0x62, 0x2a, 0xbd, 0x20,
0x92, 0x49, 0xa9, 0x13, 0x40, 0xfb, 0x7d, 0x9e, 0x70, 0x75, 0x81, 0x37, 0x0d, 0xc7, 0x53, 0x07,
0xee, 0x8a, 0x6e, 0x0e, 0xed, 0x58, 0xe4, 0xae, 0x03, 0xa2, 0x2d, 0x58, 0x35, 0x29, 0x26, 0x31,
0x97, 0x8a, 0x25, 0x44, 0xef, 0x0a, 0x2f, 0x94, 0xbd, 0xea, 0xdd, 0x60, 0xc5, 0x38, 0x5a, 0xc6,
0x7e, 0x22, 0x52, 0x85, 0x9e, 0x83, 0x35, 0x91, 0xa1, 0x52, 0x63, 0x8b, 0xbc, 0x6b, 0x90, 0x05,
0x63, 0x7e, 0xa7, 0xd4, 0xd8, 0xe0, 0xf6, 0x60, 0x25, 0x14, 0x49, 0xc2, 0x42, 0x45, 0x14, 0x1f,
0x31, 0x91, 0x29, 0x7c, 0xaf, 0xec, 0x55, 0x97, 0x76, 0x1e, 0xd5, 0x6c, 0xf1, 0x6b, 0x79, 0xf1,
0x6b, 0x0d, 0x27, 0x8e, 0xa0, 0xe8, 0x22, 0xba, 0x36, 0x00, 0xfd, 0x08, 0x25, 0x03, 0x0a, 0x45,
0x4c, 0x22, 0xa6, 0x58, 0x68, 0x0a, 0x9c, 0xd3, 0x6d, 0xdd, 0x46, 0x87, 0xf3, 0xe0, 0x46, 0x1e,
0x9b, 0x13, 0x0b, 0x28, 0xa8, 0x70, 0x4c, 0xce, 0x18, 0x1b, 0xd3, 0x98, 0x9f, 0x33, 0xfc, 0x2b,
0xc3, 0x75, 0x58, 0xb3, 0x62, 0x9e, 0x48, 0x2c, 0x97, 0xf4, 0xab, 0x5a, 0xdd, 0x2e, 0x8d, 0x8b,
0xe4, 0x44, 0x88, 0xb8, 0xc3, 0x94, 0xe2, 0xc9, 0x40, 0xd6, 0xba, 0xf5, 0x93, 0xc9, 0x77, 0x38,
0xfe, 0x21, 0x67, 0x0c, 0x96, 0xd5, 0xd4, 0x08, 0x7d, 0x05, 0x05, 0x9e, 0x0c, 0x52, 0x26, 0x25,
0x09, 0x63, 0x2a, 0x25, 0xbe, 0x6f, 0x64, 0xb4, 0xec, 0x8c, 0x75, 0x6d, 0x43, 0x2f, 0x60, 0x25,
0x07, 0x69, 0xb1, 0xf1, 0x90, 0xe1, 0x45, 0x03, 0x2b, 0x3a, 0x73, 0xc7, 0x5a, 0xd1, 0x08, 0xbe,
0xb8, 0x64, 0x13, 0x89, 0x4a, 0x45, 0x1c, 0xb3, 0x94, 0x8c, 0x44, 0xc4, 0xf0, 0x83, 0xb2, 0x57,
0x2d, 0xee, 0x7c, 0x5b, 0x9b, 0x71, 0x2a, 0x6b, 0x93, 0xa3, 0x50, 0x3b, 0x70, 0xf3, 0x5e, 0x46,
0x1f, 0x89, 0x88, 0x05, 0x1b, 0x7c, 0x96, 0x19, 0xb5, 0x61, 0x89, 0x66, 0x6a, 0xe8, 0x64, 0x8d,
0xc1, 0x4c, 0xb1, 0x75, 0xdb, 0x14, 0xbb, 0x99, 0x1a, 0x5a, 0xb1, 0xef, 0xcd, 0x61, 0x2f, 0x00,
0x7a, 0x39, 0x46, 0x07, 0xb0, 0x9a, 0x46, 0x92, 0xa4, 0xac, 0x9f, 0x32, 0x39, 0x24, 0x11, 0x8b,
0xe9, 0x05, 0x5e, 0xba, 0xa5, 0x9c, 0x86, 0x65, 0x25, 0x8d, 0x64, 0x60, 0xc3, 0x1a, 0x3a, 0x0a,
0x3d, 0x83, 0x22, 0x4b, 0xcc, 0xa1, 0x53, 0x29, 0x0d, 0x79, 0x32, 0xc0, 0xcb, 0x46, 0xf5, 0x05,
0x6b, 0xed, 0x5a, 0xa3, 0x56, 0x2d, 0x0d, 0x43, 0x9d, 0xb0, 0x58, 0x0c, 0x48, 0x9f, 0xc7, 0x0c,
0x17, 0x4c, 0x6a, 0x0b, 0xd6, 0xdc, 0x12, 0x83, 0x7d, 0x1e, 0x33, 0x7d, 0x12, 0xa6, 0x71, 0x22,
0x1d, 0x51, 0x85, 0xb1, 0x41, 0xae, 0x4c, 0x90, 0xc6, 0x8c, 0x28, 0xac, 0x4d, 0x61, 0x59, 0x12,
0x8a, 0x48, 0xcf, 0xff, 0xd8, 0xa4, 0xe7, 0xe5, 0xad, 0xe9, 0xc9, 0xd9, 0x9a, 0x2e, 0x30, 0x58,
0xa5, 0xd7, 0x4d, 0xa8, 0x01, 0x5f, 0xba, 0xdd, 0xb1, 0xe4, 0x5c, 0x5c, 0x90, 0xa9, 0xf9, 0x72,
0x85, 0x54, 0xcd, 0x76, 0x1f, 0x5b, 0x58, 0x53, 0xa3, 0x2e, 0x99, 0x73, 0xb9, 0xbc, 0x85, 0x62,
0xc4, 0xfa, 0x34, 0x8b, 0x15, 0xb1, 0xad, 0x1b, 0x17, 0x4d, 0xae, 0xcb, 0x33, 0xd7, 0x78, 0xa2,
0x8f, 0xb1, 0x5d, 0x64, 0x50, 0x70, 0x71, 0xae, 0x81, 0xbe, 0x80, 0x82, 0x6d, 0x89, 0x34, 0x8a,
0xb4, 0x4e, 0xb0, 0xaf, 0x33, 0x63, 0x0a, 0xb3, 0x6c, 0x1c, 0xbb, 0xd6, 0xae, 0x05, 0x2a, 0x32,
0xd5, 0x13, 0x59, 0x12, 0xe9, 0xba, 0xf4, 0xfb, 0x3c, 0xcc, 0xd5, 0xb3, 0x6a, 0xa6, 0xbe, 0x55,
0xa0, 0x6d, 0x17, 0xde, 0xb5, 0xd1, 0x56, 0x38, 0xc1, 0x86, 0x98, 0x65, 0x9e, 0x4a, 0x53, 0x18,
0x73, 0x96, 0x28, 0xa2, 0x5b, 0xde, 0x95, 0x2e, 0x8c, 0xd7, 0xa6, 0xd3, 0x54, 0x37, 0xa8, 0x0e,
0x8f, 0xa6, 0xbb, 0x31, 0x2a, 0xc3, 0xb2, 0x8c, 0x24, 0xc9, 0x22, 0x49, 0xc6, 0x54, 0x0d, 0xf1,
0xba, 0x29, 0x3b, 0xc8, 0x48, 0x9e, 0x46, 0xf2, 0x84, 0xaa, 0xa1, 0xd6, 0xad, 0xbc, 0xa1, 0xdb,
0x8d, 0xff, 0x4a, 0xb7, 0xf2, 0x9a, 0x6e, 0xdf, 0x41, 0xd1, 0xd6, 0x82, 0x48, 0x91, 0xa5, 0x21,
0x93, 0xf8, 0x61, 0x79, 0xbe, 0xba, 0xb4, 0xf3, 0x74, 0x66, 0x62, 0x6c, 0x52, 0x3a, 0x06, 0x19,
0x14, 0xc2, 0xa9, 0x91, 0x44, 0x0d, 0xf0, 0xdd, 0xe6, 0x69, 0xa6, 0x04, 0x19, 0xa9, 0x58, 0xe2,
0xdf, 0x9a, 0x35, 0x95, 0x6e, 0xac, 0x69, 0x4f, 0x88, 0xf8, 0x3d, 0x8d, 0x33, 0x16, 0xb8, 0x53,
0xb3, 0x9b, 0x29, 0x71, 0xa4, 0x62, 0x73, 0x13, 0x39, 0x16, 0xbd, 0x43, 0x25, 0xce, 0x58, 0x42,
0x46, 0x22, 0x4b, 0x14, 0xfe, 0xc2, 0xde, 0x44, 0xd6, 0xdb, 0x89, 0x64, 0x57, 0xfb, 0x8e, 0xb4,
0x0b, 0x6d, 0x01, 0x32, 0x19, 0x93, 0x8c, 0x9c, 0xbd, 0x96, 0x44, 0x52, 0xf2, 0xe7, 0x8f, 0x0a,
0x3f, 0x31, 0x01, 0x45, 0x9d, 0x37, 0xc9, 0x7e, 0x78, 0x2d, 0x3b, 0xf4, 0xf0, 0xa3, 0x42, 0x4f,
0x61, 0x59, 0xa5, 0x99, 0x54, 0x24, 0x12, 0x23, 0xca, 0x13, 0x5c, 0x32, 0xd9, 0x5d, 0x32, 0xb6,
0x86, 0x31, 0xa1, 0x6f, 0x60, 0x7d, 0x1a, 0x42, 0x68, 0xcc, 0xa9, 0x64, 0x12, 0xd7, 0xca, 0xf3,
0xd5, 0x07, 0x01, 0x9a, 0x82, 0xee, 0x5a, 0x0f, 0x7a, 0x03, 0x8f, 0x72, 0x65, 0xbb, 0xf3, 0x40,
0xd8, 0x27, 0x73, 0x5b, 0x2b, 0x81, 0xbf, 0x34, 0x61, 0x0f, 0x1d, 0xc0, 0x1d, 0x86, 0xa6, 0x71,
0x77, 0x05, 0x7a, 0x07, 0x4f, 0xf3, 0xd0, 0x73, 0x9e, 0xaa, 0x8c, 0xc6, 0x33, 0x28, 0xca, 0x86,
0xe2, 0x89, 0x03, 0xbe, 0xb7, 0xb8, 0xeb, 0x4c, 0x87, 0x50, 0xc9, 0x99, 0xae, 0xbf, 0x43, 0xa6,
0xa8, 0x9e, 0x1a, 0xaa, 0x4d, 0x87, 0x6c, 0x4c, 0x80, 0x41, 0x16, 0x4f, 0xb8, 0x9e, 0x41, 0x31,
0x15, 0x42, 0x91, 0x84, 0x8e, 0x98, 0x1c, 0xd3, 0x90, 0xe1, 0x8a, 0x6d, 0x53, 0xda, 0x7a, 0x9c,
0x1b, 0xd1, 0x9f, 0x60, 0x2d, 0x16, 0x21, 0x8d, 0xb9, 0xba, 0x20, 0x71, 0x8f, 0x48, 0x7b, 0x03,
0xe1, 0xaf, 0x4c, 0xd9, 0xbf, 0x99, 0x29, 0xa1, 0x96, 0xc3, 0xb7, 0x04, 0x8d, 0xf6, 0x68, 0x4c,
0x93, 0x90, 0xa5, 0xee, 0xe6, 0x0a, 0x56, 0x73, 0xb2, 0x56, 0xcf, 0x99, 0x50, 0x1d, 0xfc, 0x28,
0x99, 0x48, 0x3d, 0xa5, 0x8a, 0xe1, 0x5f, 0xdf, 0x7a, 0x7f, 0x47, 0x49, 0xae, 0xf2, 0x80, 0x2a,
0xa6, 0x0b, 0x9a, 0x3f, 0x89, 0xdc, 0x23, 0xaa, 0x47, 0x55, 0x38, 0xc4, 0xcf, 0x8c, 0x42, 0x90,
0xf3, 0xd9, 0x57, 0xd4, 0x9e, 0xf6, 0xa0, 0xdf, 0x03, 0x9e, 0x46, 0x92, 0x11, 0xfd, 0x44, 0x58,
0xa2, 0x52, 0xce, 0x24, 0x7e, 0x5e, 0xf6, 0xaa, 0x85, 0x60, 0x23, 0x9d, 0xc0, 0x8f, 0xe8, 0xa7,
0xa6, 0x75, 0xa2, 0x16, 0x6c, 0xdc, 0x08, 0xd4, 0x0f, 0x05, 0xfc, 0xe2, 0xb6, 0x45, 0xa3, 0xab,
0x84, 0xfa, 0x89, 0x80, 0x7e, 0x82, 0xd5, 0xe1, 0x0e, 0xc9, 0xc6, 0x83, 0x94, 0x5e, 0x36, 0x12,
0xfc, 0x1b, 0xd3, 0xd8, 0xb7, 0x6f, 0xeb, 0x5c, 0xef, 0x76, 0x4e, 0x6d, 0x9c, 0xeb, 0x59, 0x2b,
0xc3, 0xab, 0x06, 0x2d, 0x5a, 0x9e, 0xd8, 0xde, 0x18, 0xc6, 0x99, 0x54, 0x2c, 0x25, 0x52, 0x51,
0x5b, 0x73, 0xfc, 0xb5, 0x29, 0xf7, 0x43, 0x07, 0xa8, 0x5b, 0x7f, 0x47, 0x51, 0x53, 0x7c, 0xf4,
0x3d, 0x94, 0x2e, 0xfb, 0xea, 0xcd, 0xd8, 0xdf, 0x99, 0xd8, 0xcb, 0xce, 0x7b, 0x2d, 0xb8, 0xf4,
0x37, 0x0f, 0x36, 0x66, 0xb6, 0x55, 0x74, 0x0c, 0x0b, 0xe6, 0xf1, 0xe0, 0x99, 0x1d, 0x7e, 0xf7,
0x3f, 0xf5, 0xe6, 0x9a, 0x79, 0x41, 0x18, 0x9e, 0x4a, 0x03, 0x16, 0xcc, 0xc3, 0x61, 0x15, 0x0a,
0x41, 0xf3, 0xed, 0x41, 0xa7, 0x1b, 0x7c, 0x20, 0xed, 0xe3, 0xd6, 0x07, 0xff, 0x0e, 0x2a, 0xc0,
0x83, 0xdd, 0x56, 0xab, 0xfd, 0x23, 0xd9, 0x3d, 0xfe, 0xe0, 0x7b, 0x95, 0x85, 0xc5, 0x39, 0x7f,
0x6e, 0x6b, 0xfd, 0xfd, 0x41, 0xd0, 0x3d, 0xdd, 0x6d, 0x91, 0x4e, 0x33, 0x78, 0x7f, 0x50, 0x6f,
0x1a, 0x70, 0xe5, 0x0d, 0x6c, 0xcc, 0x7c, 0xa6, 0xa0, 0xfb, 0x30, 0xdf, 0xde, 0xdf, 0xf7, 0xef,
0xa0, 0x25, 0xb8, 0xdf, 0x68, 0xee, 0xef, 0x9e, 0xb6, 0xba, 0xbe, 0x87, 0x00, 0xee, 0x75, 0xba,
0xc1, 0x41, 0xbd, 0xeb, 0xcf, 0x55, 0x9e, 0x03, 0x4c, 0x9e, 0x1f, 0x68, 0x11, 0x16, 0x8e, 0xdb,
0xc7, 0x4d, 0xff, 0x0e, 0x2a, 0x02, 0x1c, 0x9d, 0x9a, 0x99, 0xba, 0xad, 0x8e, 0xef, 0x55, 0x5e,
0xc0, 0xea, 0x8d, 0x7b, 0x58, 0xc3, 0xbb, 0xcd, 0x3f, 0x74, 0xfd, 0x3b, 0xfa, 0xeb, 0xb0, 0xd3,
0x3e, 0xf6, 0xbd, 0xca, 0x0e, 0xac, 0x5c, 0xab, 0x2b, 0x42, 0x50, 0x6c, 0xb4, 0xc9, 0x71, 0xbb,
0x4b, 0x4e, 0x4f, 0xde, 0x06, 0xbb, 0x8d, 0xa6, 0x5d, 0x50, 0x3e, 0xf0, 0x0e, 0x17, 0x16, 0x57,
0x7c, 0xff, 0x70, 0x61, 0x11, 0xf9, 0x6b, 0x95, 0x7f, 0x78, 0xb0, 0x3c, 0xdd, 0xc4, 0x11, 0x86,
0xfb, 0xf9, 0x25, 0x6a, 0x7f, 0x40, 0xf2, 0x21, 0x3a, 0x80, 0x65, 0x15, 0xcb, 0xfc, 0x4c, 0x4b,
0xf3, 0xc3, 0xb1, 0xb4, 0xf3, 0xfc, 0x67, 0x9e, 0xa6, 0xdd, 0x56, 0x27, 0x7f, 0x83, 0x06, 0x4b,
0x2a, 0x96, 0xf9, 0x00, 0x9d, 0xc0, 0xba, 0xcc, 0x7a, 0x32, 0x4c, 0x79, 0x8f, 0x45, 0x24, 0x65,
0xf9, 0x55, 0x33, 0x5f, 0x9e, 0xaf, 0x16, 0x77, 0x9e, 0xcc, 0xac, 0x73, 0xe0, 0x50, 0xc1, 0xda,
0x24, 0x34, 0xb7, 0xc9, 0xca, 0xdf, 0xe7, 0xe1, 0xf1, 0xcf, 0x74, 0x12, 0xf4, 0x13, 0x40, 0xc4,
0xa5, 0x4a, 0x79, 0x2f, 0x53, 0x5a, 0x4f, 0xfa, 0x4a, 0xfb, 0xfe, 0x97, 0xf6, 0xa3, 0x5a, 0xe3,
0x92, 0x22, 0x98, 0xa2, 0x43, 0xa7, 0xb0, 0xa8, 0x7f, 0x90, 0x84, 0xfd, 0x0d, 0xd3, 0xd4, 0x6f,
0x7e, 0x31, 0xf5, 0xbe, 0x23, 0x08, 0x2e, 0xa9, 0x4a, 0x7f, 0xf5, 0x00, 0x26, 0x33, 0x22, 0x04,
0x0b, 0xfd, 0x54, 0x8c, 0x5c, 0x59, 0xcc, 0x37, 0xea, 0xc0, 0x9c, 0x12, 0x6e, 0xce, 0xfa, 0xff,
0xb1, 0x9d, 0x5a, 0x57, 0xe8, 0x86, 0x75, 0x11, 0xcc, 0x29, 0x51, 0xfa, 0x16, 0xee, 0xbb, 0x21,
0xf2, 0x61, 0xfe, 0x8c, 0x5d, 0xb8, 0x29, 0xf5, 0x27, 0x5a, 0x87, 0xbb, 0xe7, 0xfa, 0xa2, 0x36,
0xe5, 0x2f, 0x04, 0x76, 0xf0, 0xdd, 0xdc, 0x6b, 0xaf, 0x54, 0x83, 0xc5, 0x7c, 0x13, 0x33, 0xd7,
0x5a, 0x74, 0x6b, 0xd5, 0x96, 0x39, 0x25, 0xb6, 0xca, 0xb0, 0x98, 0xd7, 0x0f, 0xad, 0x83, 0x9f,
0x1f, 0xb1, 0xfc, 0x60, 0xfa, 0x77, 0xf6, 0xaa, 0xff, 0xfc, 0xbc, 0xe9, 0xfd, 0xeb, 0xf3, 0xa6,
0xf7, 0xef, 0xcf, 0x9b, 0xde, 0x1f, 0x4b, 0x76, 0x7b, 0x5c, 0x6c, 0xd3, 0x31, 0xdf, 0xbe, 0xf2,
0x23, 0xde, 0xbb, 0x67, 0xda, 0xe7, 0xab, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0x6a, 0xba, 0x5a,
0xa8, 0x11, 0x10, 0x00, 0x00,
// 1874 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x58, 0xef, 0x52, 0x1b, 0xc9,
0x11, 0xf7, 0x02, 0xb6, 0xa1, 0x41, 0x42, 0x0c, 0xe0, 0x1b, 0xcb, 0x31, 0x96, 0x75, 0xb1, 0xad,
0x90, 0x8b, 0x38, 0xe3, 0xba, 0x8a, 0x7d, 0xf7, 0x09, 0x24, 0x61, 0x83, 0xc5, 0x9f, 0x5a, 0x09,
0x5f, 0x9c, 0xfb, 0x30, 0x19, 0x76, 0x47, 0x68, 0xc2, 0x6a, 0x47, 0x35, 0x33, 0x8b, 0xcd, 0x3b,
0x25, 0x55, 0x79, 0x89, 0x54, 0xe5, 0x4b, 0xaa, 0xf2, 0x08, 0x29, 0x3f, 0x49, 0x6a, 0xfe, 0x2c,
0x12, 0xa0, 0x3a, 0x72, 0xc9, 0x37, 0x4d, 0xf7, 0xaf, 0x7b, 0x66, 0xba, 0x7f, 0xd3, 0xdd, 0x2b,
0x28, 0x0f, 0x98, 0xea, 0x6f, 0x9c, 0xbf, 0xa4, 0xc9, 0xb0, 0x4f, 0x5f, 0x6e, 0x44, 0x22, 0xed,
0xf1, 0xd3, 0xfa, 0x50, 0x0a, 0x2d, 0xd0, 0x32, 0x57, 0x9a, 0x8b, 0xba, 0x41, 0xd4, 0x73, 0x44,
0x79, 0xed, 0x54, 0x88, 0xd3, 0x84, 0x6d, 0x58, 0xc8, 0x49, 0xd6, 0xdb, 0x88, 0x33, 0x49, 0x35,
0x17, 0xa9, 0x33, 0xba, 0xa9, 0xff, 0x24, 0xe9, 0x70, 0xc8, 0xa4, 0xf2, 0xfa, 0x87, 0x57, 0x37,
0x1c, 0x4a, 0xf1, 0xf9, 0xc2, 0xab, 0xd6, 0x53, 0xa6, 0x3f, 0x09, 0x79, 0xc6, 0xd3, 0xd3, 0x1c,
0xf0, 0x6a, 0x23, 0x66, 0x4a, 0xf3, 0xd4, 0xee, 0x40, 0x64, 0x96, 0x30, 0x87, 0xad, 0xfe, 0xf3,
0x21, 0xc0, 0x3e, 0x53, 0xfd, 0x86, 0x3d, 0x30, 0xfa, 0x06, 0xd0, 0x80, 0x7f, 0x66, 0x92, 0x44,
0x7d, 0x16, 0x9d, 0x11, 0xc5, 0xe4, 0x39, 0x93, 0x38, 0xa8, 0x04, 0xb5, 0xb9, 0xb0, 0x64, 0x35,
0x0d, 0xa3, 0xe8, 0x58, 0x39, 0xaa, 0xc3, 0xb2, 0x43, 0x4b, 0x36, 0x14, 0x52, 0xe7, 0xf0, 0x29,
0x0b, 0x5f, 0xb2, 0xaa, 0xd0, 0x6a, 0x3c, 0x7e, 0x13, 0x56, 0x63, 0xae, 0xe8, 0x49, 0xc2, 0xc8,
0x50, 0x24, 0x3c, 0xba, 0x70, 0xdb, 0x28, 0x3c, 0x5d, 0x09, 0x6a, 0xb3, 0xe1, 0xb2, 0x57, 0x1e,
0x59, 0x9d, 0xdd, 0x48, 0xa1, 0x57, 0xf0, 0x60, 0x1c, 0x4b, 0x7a, 0x94, 0x27, 0x44, 0x0c, 0x59,
0x8a, 0x1f, 0x3a, 0xa3, 0xe1, 0x08, 0xbd, 0x43, 0x79, 0x72, 0x38, 0x64, 0x29, 0x3a, 0x82, 0x67,
0x8a, 0xc7, 0x2c, 0xa2, 0x92, 0x68, 0x41, 0x34, 0x4b, 0xd8, 0x80, 0x69, 0x79, 0x41, 0x14, 0x53,
0xca, 0x04, 0x80, 0xf6, 0x7a, 0x3c, 0xe5, 0xfa, 0x02, 0xaf, 0x59, 0x1f, 0x4f, 0x3d, 0xb8, 0x2b,
0xba, 0x39, 0xb4, 0xe3, 0x90, 0x5b, 0x1e, 0x88, 0xd6, 0x61, 0xc9, 0x86, 0x98, 0x24, 0x5c, 0x69,
0x96, 0x12, 0x73, 0x2b, 0x3c, 0x53, 0x09, 0x6a, 0x77, 0xc3, 0x45, 0xab, 0x68, 0x5b, 0xf9, 0x91,
0x90, 0x1a, 0x3d, 0x07, 0x27, 0x22, 0x7d, 0xad, 0x87, 0x0e, 0x79, 0xd7, 0x22, 0x0b, 0x56, 0xfc,
0x4e, 0xeb, 0xa1, 0xc5, 0x6d, 0xc3, 0x62, 0x24, 0xd2, 0x94, 0x45, 0x9a, 0x68, 0x3e, 0x60, 0x22,
0xd3, 0xf8, 0x5e, 0x25, 0xa8, 0xcd, 0x6f, 0x3e, 0xac, 0xbb, 0xe4, 0xd7, 0xf3, 0xe4, 0xd7, 0x9b,
0x9e, 0x1c, 0x61, 0xd1, 0x5b, 0x74, 0x9d, 0x01, 0xfa, 0x11, 0xca, 0x16, 0x14, 0x89, 0x84, 0xc4,
0x4c, 0xb3, 0xc8, 0x26, 0x38, 0x77, 0xb7, 0x7e, 0x9b, 0x3b, 0x9c, 0x1b, 0x37, 0x73, 0xdb, 0xdc,
0xb1, 0x80, 0x82, 0x8e, 0x86, 0xe4, 0x8c, 0xb1, 0x21, 0x4d, 0xf8, 0x39, 0xc3, 0xbf, 0xb2, 0xbe,
0xf6, 0xea, 0x8e, 0xcc, 0x23, 0x8a, 0xe5, 0x94, 0x7e, 0x55, 0x6f, 0xb8, 0xa3, 0x71, 0x91, 0x1e,
0x09, 0x91, 0x74, 0x98, 0xd6, 0x3c, 0x3d, 0x55, 0xf5, 0x6e, 0xe3, 0x68, 0xf4, 0x3b, 0x1a, 0xbe,
0xcf, 0x3d, 0x86, 0x0b, 0x7a, 0x6c, 0x85, 0xbe, 0x86, 0x02, 0x4f, 0x4f, 0x25, 0x53, 0x8a, 0x44,
0x09, 0x55, 0x0a, 0xdf, 0xb7, 0x34, 0x5a, 0xf0, 0xc2, 0x86, 0x91, 0xa1, 0x17, 0xb0, 0x98, 0x83,
0x0c, 0xd9, 0x78, 0xc4, 0xf0, 0xac, 0x85, 0x15, 0xbd, 0xb8, 0xe3, 0xa4, 0x68, 0x00, 0x5f, 0x5d,
0x7a, 0x13, 0xa9, 0x96, 0x22, 0x49, 0x98, 0x24, 0x03, 0x11, 0x33, 0x3c, 0x57, 0x09, 0x6a, 0xc5,
0xcd, 0xef, 0xea, 0x13, 0x5e, 0x65, 0x7d, 0xf4, 0x14, 0xea, 0xbb, 0x7e, 0xdf, 0x4b, 0xeb, 0x7d,
0x11, 0xb3, 0x70, 0x95, 0x4f, 0x12, 0xa3, 0x43, 0x98, 0xa7, 0x99, 0xee, 0x7b, 0x5a, 0x63, 0xb0,
0x5b, 0xac, 0xdf, 0xb6, 0xc5, 0x56, 0xa6, 0xfb, 0x8e, 0xec, 0xdb, 0x53, 0x38, 0x08, 0x81, 0x5e,
0xae, 0xd1, 0x2e, 0x2c, 0xc9, 0x58, 0x11, 0xc9, 0x7a, 0x92, 0xa9, 0x3e, 0x89, 0x59, 0x42, 0x2f,
0xf0, 0xfc, 0x2d, 0xe9, 0xb4, 0x5e, 0x16, 0x65, 0xac, 0x42, 0x67, 0xd6, 0x34, 0x56, 0xe8, 0x19,
0x14, 0x59, 0x6a, 0x1f, 0x9d, 0x96, 0x34, 0xe2, 0xe9, 0x29, 0x5e, 0xb0, 0xac, 0x2f, 0x38, 0x69,
0xd7, 0x09, 0x0d, 0x6b, 0x69, 0x14, 0x99, 0x80, 0x25, 0xe2, 0x94, 0xf4, 0x78, 0xc2, 0x70, 0xc1,
0x86, 0xb6, 0xe0, 0xc4, 0x6d, 0x71, 0xba, 0xc3, 0x13, 0x66, 0x5e, 0xc2, 0x38, 0x4e, 0xc8, 0x01,
0xd5, 0x18, 0x5b, 0xe4, 0xe2, 0x08, 0x69, 0xc5, 0x88, 0xc2, 0xf2, 0x18, 0x96, 0xa5, 0x91, 0x88,
0xcd, 0xfe, 0x8f, 0x6c, 0x78, 0x5e, 0xde, 0x1a, 0x9e, 0xdc, 0x5b, 0xcb, 0x1b, 0x86, 0x4b, 0xf4,
0xba, 0x08, 0x35, 0xe1, 0x89, 0xbf, 0x1d, 0x4b, 0xcf, 0xc5, 0x05, 0x19, 0xdb, 0x2f, 0x67, 0x48,
0xcd, 0x5e, 0xf7, 0x91, 0x83, 0xb5, 0x0c, 0xea, 0xd2, 0x73, 0x4e, 0x97, 0xb7, 0x50, 0x8c, 0x59,
0x8f, 0x66, 0x89, 0x26, 0xae, 0x74, 0xe3, 0xa2, 0x8d, 0x75, 0x65, 0xe2, 0x19, 0x8f, 0xcc, 0x33,
0x76, 0x87, 0x0c, 0x0b, 0xde, 0xce, 0x17, 0xd0, 0x17, 0x50, 0x70, 0x25, 0x91, 0xc6, 0xb1, 0xe1,
0x09, 0x2e, 0x99, 0xc8, 0xd8, 0xc4, 0x2c, 0x58, 0xc5, 0x96, 0x93, 0x1b, 0x82, 0x8a, 0x4c, 0x9f,
0x88, 0x2c, 0x8d, 0x4d, 0x5e, 0x7a, 0x3d, 0x1e, 0xe5, 0xec, 0x59, 0xb2, 0x5b, 0xdf, 0x4a, 0xd0,
0x43, 0x6f, 0xde, 0x75, 0xd6, 0x8e, 0x38, 0xe1, 0xaa, 0x98, 0x24, 0x1e, 0x0b, 0x53, 0x94, 0x70,
0x96, 0x6a, 0x62, 0x4a, 0xde, 0x95, 0x2a, 0x8c, 0x97, 0xc7, 0xc3, 0xd4, 0xb0, 0xa8, 0x0e, 0x8f,
0xc7, 0xab, 0x31, 0xaa, 0xc0, 0x82, 0x8a, 0x15, 0xc9, 0x62, 0x45, 0x86, 0x54, 0xf7, 0xf1, 0x8a,
0x4d, 0x3b, 0xa8, 0x58, 0x1d, 0xc7, 0xea, 0x88, 0xea, 0xbe, 0xe1, 0xad, 0xba, 0xc1, 0xdb, 0xd5,
0xff, 0x8a, 0xb7, 0xea, 0x1a, 0x6f, 0xdf, 0x41, 0xd1, 0xe5, 0x82, 0x28, 0x91, 0xc9, 0x88, 0x29,
0xfc, 0xa0, 0x32, 0x5d, 0x9b, 0xdf, 0x7c, 0x3a, 0x31, 0x30, 0x2e, 0x28, 0x1d, 0x8b, 0x0c, 0x0b,
0xd1, 0xd8, 0x4a, 0xa1, 0x26, 0x94, 0xfc, 0xe5, 0x69, 0xa6, 0x05, 0x19, 0xe8, 0x44, 0xe1, 0xdf,
0xda, 0x33, 0x95, 0x6f, 0x9c, 0x69, 0x5b, 0x88, 0xe4, 0x03, 0x4d, 0x32, 0x16, 0xfa, 0x57, 0xb3,
0x95, 0x69, 0xb1, 0xaf, 0x13, 0xdb, 0x89, 0xbc, 0x17, 0x73, 0x43, 0x2d, 0xce, 0x58, 0x4a, 0x06,
0x22, 0x4b, 0x35, 0xfe, 0xca, 0x75, 0x22, 0xa7, 0xed, 0xc4, 0xaa, 0x6b, 0x74, 0xfb, 0x46, 0x85,
0xd6, 0x01, 0xd9, 0x88, 0x29, 0x46, 0xce, 0x5e, 0x2b, 0xa2, 0x28, 0xf9, 0xf3, 0x27, 0x8d, 0x1f,
0x5b, 0x83, 0xa2, 0x89, 0x9b, 0x62, 0xef, 0x5f, 0xab, 0x0e, 0xdd, 0xfb, 0xa4, 0xd1, 0x53, 0x58,
0xd0, 0x32, 0x53, 0x9a, 0xc4, 0x62, 0x40, 0x79, 0x8a, 0xcb, 0x36, 0xba, 0xf3, 0x56, 0xd6, 0xb4,
0x22, 0xf4, 0x2d, 0xac, 0x8c, 0x43, 0x08, 0x4d, 0x38, 0x55, 0x4c, 0xe1, 0x7a, 0x65, 0xba, 0x36,
0x17, 0xa2, 0x31, 0xe8, 0x96, 0xd3, 0xa0, 0x37, 0xf0, 0x30, 0x67, 0xb6, 0x7f, 0x0f, 0x84, 0x7d,
0xb6, 0xdd, 0x5a, 0x0b, 0xfc, 0xc4, 0x9a, 0x3d, 0xf0, 0x00, 0xff, 0x18, 0x5a, 0x56, 0xdd, 0x15,
0xe8, 0x1d, 0x3c, 0xcd, 0x4d, 0xcf, 0xb9, 0xd4, 0x19, 0x4d, 0x26, 0xb8, 0xa8, 0x58, 0x17, 0x8f,
0x3d, 0xf0, 0x83, 0xc3, 0x5d, 0xf7, 0xb4, 0x07, 0xd5, 0xdc, 0xd3, 0xf5, 0x39, 0x64, 0xcc, 0xd5,
0x53, 0xeb, 0x6a, 0xcd, 0x23, 0x9b, 0x23, 0x60, 0x98, 0x25, 0x23, 0x5f, 0xcf, 0xa0, 0x28, 0x85,
0xd0, 0x24, 0xa5, 0x03, 0xa6, 0x86, 0x34, 0x62, 0xb8, 0xea, 0xca, 0x94, 0x91, 0x1e, 0xe4, 0x42,
0xf4, 0x27, 0x58, 0x4e, 0x44, 0x44, 0x13, 0xae, 0x2f, 0x48, 0x72, 0x42, 0x94, 0xeb, 0x40, 0xf8,
0x6b, 0x9b, 0xf6, 0x6f, 0x27, 0x52, 0xa8, 0xed, 0xf1, 0x6d, 0x41, 0xe3, 0x6d, 0x9a, 0xd0, 0x34,
0x62, 0xd2, 0x77, 0xae, 0x70, 0x29, 0x77, 0xd6, 0x3e, 0xf1, 0x22, 0xd4, 0x80, 0x52, 0x9c, 0x8e,
0xa8, 0x2e, 0xa9, 0x66, 0xf8, 0xd7, 0xb7, 0xf6, 0xef, 0x38, 0xcd, 0x59, 0x1e, 0x52, 0xcd, 0x4c,
0x42, 0xf3, 0x91, 0xc8, 0x0f, 0x51, 0x27, 0x54, 0x47, 0x7d, 0xfc, 0xcc, 0x32, 0x04, 0x79, 0x9d,
0x9b, 0xa2, 0xb6, 0x8d, 0x06, 0xfd, 0x1e, 0xf0, 0x38, 0x92, 0x0c, 0xe8, 0x67, 0xc2, 0x52, 0x2d,
0x39, 0x53, 0xf8, 0x79, 0x25, 0xa8, 0x15, 0xc2, 0x55, 0x39, 0x82, 0xef, 0xd3, 0xcf, 0x2d, 0xa7,
0x44, 0x6d, 0x58, 0xbd, 0x61, 0x68, 0x06, 0x05, 0xfc, 0xe2, 0xb6, 0x43, 0xa3, 0xab, 0x0e, 0xcd,
0x88, 0x80, 0x7e, 0x82, 0xa5, 0xfe, 0x26, 0xc9, 0x86, 0xa7, 0x92, 0x5e, 0x16, 0x12, 0xfc, 0x1b,
0x5b, 0xd8, 0x37, 0x6e, 0xab, 0x5c, 0xef, 0x36, 0x8f, 0x9d, 0x9d, 0xaf, 0x59, 0x8b, 0xfd, 0xab,
0x02, 0x43, 0x5a, 0x9e, 0xba, 0xda, 0x18, 0x25, 0x99, 0xd2, 0x4c, 0x12, 0xa5, 0xa9, 0xcb, 0x39,
0xfe, 0xc6, 0xa6, 0xfb, 0x81, 0x07, 0x34, 0x9c, 0xbe, 0xa3, 0xa9, 0x4d, 0x3e, 0xfa, 0x01, 0xca,
0x97, 0x75, 0xf5, 0xa6, 0xed, 0xef, 0xac, 0xed, 0x65, 0xe5, 0xbd, 0x6e, 0xdc, 0x84, 0x85, 0x88,
0x49, 0xcd, 0x7b, 0x3c, 0xa2, 0x9a, 0x29, 0xbc, 0x61, 0x0b, 0xce, 0xe4, 0x26, 0xd0, 0x18, 0x01,
0xc3, 0x2b, 0x56, 0xe5, 0xbf, 0x06, 0xb0, 0x3a, 0xb1, 0x38, 0xa3, 0x03, 0x98, 0xb1, 0x23, 0x48,
0x60, 0xe3, 0xf4, 0xfd, 0xff, 0x54, 0xe1, 0xeb, 0x76, 0x0e, 0xb1, 0x7e, 0xaa, 0x4d, 0x98, 0xb1,
0xe3, 0xc7, 0x12, 0x14, 0xc2, 0xd6, 0xdb, 0xdd, 0x4e, 0x37, 0xfc, 0x48, 0x0e, 0x0f, 0xda, 0x1f,
0x4b, 0x77, 0x50, 0x01, 0xe6, 0xb6, 0xda, 0xed, 0xc3, 0x1f, 0xc9, 0xd6, 0xc1, 0xc7, 0x52, 0x50,
0x9d, 0x99, 0x9d, 0x2a, 0x4d, 0xad, 0xaf, 0x7c, 0xd8, 0x0d, 0xbb, 0xc7, 0x5b, 0x6d, 0xd2, 0x69,
0x85, 0x1f, 0x76, 0x1b, 0x2d, 0x0b, 0xae, 0xbe, 0x81, 0xd5, 0x89, 0xc3, 0x0e, 0xba, 0x0f, 0xd3,
0x87, 0x3b, 0x3b, 0xa5, 0x3b, 0x68, 0x1e, 0xee, 0x37, 0x5b, 0x3b, 0x5b, 0xc7, 0xed, 0x6e, 0x29,
0x40, 0x00, 0xf7, 0x3a, 0xdd, 0x70, 0xb7, 0xd1, 0x2d, 0x4d, 0x55, 0x9f, 0x03, 0x8c, 0x86, 0x18,
0x34, 0x0b, 0x33, 0x07, 0x87, 0x07, 0xad, 0xd2, 0x1d, 0x54, 0x04, 0xd8, 0x3f, 0xb6, 0x3b, 0x75,
0xdb, 0x9d, 0x52, 0x50, 0x7d, 0x01, 0x4b, 0x37, 0xba, 0xb9, 0x81, 0x77, 0x5b, 0x7f, 0xe8, 0x96,
0xee, 0x98, 0x5f, 0x7b, 0x9d, 0xc3, 0x83, 0x52, 0x50, 0xdd, 0x84, 0xc5, 0x6b, 0xec, 0x40, 0x08,
0x8a, 0xcd, 0x43, 0x72, 0x70, 0xd8, 0x25, 0xc7, 0x47, 0x6f, 0xc3, 0xad, 0x66, 0xcb, 0x1d, 0x28,
0x5f, 0x04, 0x7b, 0x33, 0xb3, 0x8b, 0xa5, 0xd2, 0xde, 0xcc, 0x2c, 0x2a, 0x2d, 0x57, 0xff, 0x1e,
0xc0, 0xc2, 0x78, 0x2b, 0x40, 0x18, 0xee, 0xe7, 0xad, 0xd8, 0x7d, 0xc6, 0xe4, 0x4b, 0xb4, 0x0b,
0x0b, 0x3a, 0x51, 0x79, 0x65, 0x50, 0xf6, 0xb3, 0x65, 0x7e, 0xf3, 0xf9, 0xcf, 0x0c, 0xb8, 0xdd,
0x76, 0x27, 0x9f, 0x64, 0xc3, 0x79, 0x9d, 0xa8, 0x7c, 0x81, 0x8e, 0x60, 0x45, 0x65, 0x27, 0x2a,
0x92, 0xfc, 0x84, 0xc5, 0x44, 0xb2, 0xbc, 0x61, 0x4d, 0x57, 0xa6, 0x6b, 0xc5, 0xcd, 0xc7, 0x13,
0xf3, 0x1c, 0x7a, 0x54, 0xb8, 0x3c, 0x32, 0xcd, 0x65, 0xaa, 0xfa, 0xb7, 0x69, 0x78, 0xf4, 0x33,
0xf5, 0x08, 0xfd, 0x04, 0x10, 0x73, 0xa5, 0x25, 0x3f, 0xc9, 0xb4, 0xe1, 0x93, 0xe1, 0xe9, 0x0f,
0xbf, 0xb4, 0xaa, 0xd5, 0x9b, 0x97, 0x2e, 0xc2, 0x31, 0x77, 0xe8, 0x18, 0x66, 0xcd, 0x67, 0x96,
0x70, 0x1f, 0x73, 0xc6, 0xf5, 0x9b, 0x5f, 0xec, 0x7a, 0xc7, 0x3b, 0x08, 0x2f, 0x5d, 0x95, 0xff,
0x12, 0x00, 0x8c, 0x76, 0x44, 0x08, 0x66, 0x7a, 0x52, 0x0c, 0x7c, 0x5a, 0xec, 0x6f, 0xd4, 0x81,
0x29, 0x2d, 0xfc, 0x9e, 0x8d, 0xff, 0xe3, 0x3a, 0xf5, 0xae, 0x30, 0x65, 0xef, 0x22, 0x9c, 0xd2,
0xa2, 0xfc, 0x1d, 0xdc, 0xf7, 0x4b, 0x54, 0x82, 0xe9, 0x33, 0x76, 0xe1, 0xb7, 0x34, 0x3f, 0xd1,
0x0a, 0xdc, 0x3d, 0x37, 0xed, 0xde, 0xa6, 0xbf, 0x10, 0xba, 0xc5, 0xf7, 0x53, 0xaf, 0x83, 0x72,
0x1d, 0x66, 0xf3, 0x4b, 0x4c, 0x3c, 0x6b, 0xd1, 0x9f, 0xd5, 0x48, 0xa6, 0xb4, 0xa8, 0xbe, 0x87,
0xf9, 0xb1, 0x9a, 0x80, 0x9e, 0xc0, 0xbc, 0x62, 0x91, 0x64, 0xbe, 0xf2, 0x04, 0x7e, 0x54, 0xb2,
0x22, 0x5b, 0x6c, 0x1e, 0xc1, 0x9c, 0xe9, 0x1f, 0xb6, 0x8f, 0xd9, 0x2b, 0xcf, 0x85, 0xb3, 0x71,
0xaa, 0x6c, 0x0b, 0x5b, 0xaf, 0xc0, 0x6c, 0x4e, 0x06, 0xb4, 0x02, 0xa5, 0xfc, 0xbd, 0xe6, 0xaf,
0xbc, 0x74, 0x67, 0xbb, 0xf6, 0x8f, 0x2f, 0x6b, 0xc1, 0xbf, 0xbe, 0xac, 0x05, 0xff, 0xfe, 0xb2,
0x16, 0xfc, 0xb1, 0xec, 0x62, 0xc5, 0xc5, 0x06, 0x1d, 0xf2, 0x8d, 0x2b, 0xff, 0x0d, 0x9c, 0xdc,
0xb3, 0x15, 0xfd, 0xd5, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x42, 0x1a, 0x4a, 0xa4, 0x10,
0x00, 0x00,
}
func (m *MeshConfig) Marshal() (dAtA []byte, err error) {
@ -1314,6 +1402,22 @@ func (m *MeshConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
if len(m.Certificates) > 0 {
for iNdEx := len(m.Certificates) - 1; iNdEx >= 0; iNdEx-- {
{
size, err := m.Certificates[iNdEx].MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintConfig(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x2
i--
dAtA[i] = 0xfa
}
}
if len(m.TrustDomainAliases) > 0 {
for iNdEx := len(m.TrustDomainAliases) - 1; iNdEx >= 0; iNdEx-- {
i -= len(m.TrustDomainAliases[iNdEx])
@ -2011,6 +2115,49 @@ func (m *LocalityLoadBalancerSetting_Failover) MarshalToSizedBuffer(dAtA []byte)
return len(dAtA) - i, nil
}
func (m *Certificate) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *Certificate) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *Certificate) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
if m.XXX_unrecognized != nil {
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
if len(m.DnsNames) > 0 {
for iNdEx := len(m.DnsNames) - 1; iNdEx >= 0; iNdEx-- {
i -= len(m.DnsNames[iNdEx])
copy(dAtA[i:], m.DnsNames[iNdEx])
i = encodeVarintConfig(dAtA, i, uint64(len(m.DnsNames[iNdEx])))
i--
dAtA[i] = 0x12
}
}
if len(m.SecretName) > 0 {
i -= len(m.SecretName)
copy(dAtA[i:], m.SecretName)
i = encodeVarintConfig(dAtA, i, uint64(len(m.SecretName)))
i--
dAtA[i] = 0xa
}
return len(dAtA) - i, nil
}
func encodeVarintConfig(dAtA []byte, offset int, v uint64) int {
offset -= sovConfig(v)
base := offset
@ -2198,6 +2345,12 @@ func (m *MeshConfig) Size() (n int) {
n += 2 + l + sovConfig(uint64(l))
}
}
if len(m.Certificates) > 0 {
for _, e := range m.Certificates {
l = e.Size()
n += 2 + l + sovConfig(uint64(l))
}
}
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@ -2314,6 +2467,28 @@ func (m *LocalityLoadBalancerSetting_Failover) Size() (n int) {
return n
}
func (m *Certificate) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
l = len(m.SecretName)
if l > 0 {
n += 1 + l + sovConfig(uint64(l))
}
if len(m.DnsNames) > 0 {
for _, s := range m.DnsNames {
l = len(s)
n += 1 + l + sovConfig(uint64(l))
}
}
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
return n
}
func sovConfig(x uint64) (n int) {
return (math_bits.Len64(x|1) + 6) / 7
}
@ -3604,6 +3779,40 @@ func (m *MeshConfig) Unmarshal(dAtA []byte) error {
}
m.TrustDomainAliases = append(m.TrustDomainAliases, string(dAtA[iNdEx:postIndex]))
iNdEx = postIndex
case 47:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Certificates", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowConfig
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthConfig
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthConfig
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Certificates = append(m.Certificates, &Certificate{})
if err := m.Certificates[len(m.Certificates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipConfig(dAtA[iNdEx:])
@ -4332,6 +4541,124 @@ func (m *LocalityLoadBalancerSetting_Failover) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *Certificate) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowConfig
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: Certificate: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: Certificate: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field SecretName", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowConfig
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthConfig
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthConfig
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.SecretName = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field DnsNames", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowConfig
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthConfig
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthConfig
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.DnsNames = append(m.DnsNames, string(dAtA[iNdEx:postIndex]))
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipConfig(dAtA[iNdEx:])
if err != nil {
return err
}
if skippy < 0 {
return ErrInvalidLengthConfig
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthConfig
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func skipConfig(dAtA []byte) (n int, err error) {
l := len(dAtA)
iNdEx := 0

View File

@ -371,8 +371,11 @@ message MeshConfig {
// %SERVICE% will use reviews.prod as the stats name.
string outbound_cluster_stat_name = 45;
// Configure the provision of certificates.
repeated Certificate certificates = 47;
// $hide_from_docs
// Next available field number: 47
// Next available field number: 48
}
// Resource describes the source of configuration
@ -492,3 +495,27 @@ message LocalityLoadBalancerSetting{
// Note: if no OutlierDetection specified, this will not take effect.
repeated Failover failover = 2;
}
// Certificate configures the provision of a certificate and its key.
// Example 1: key and cert stored in a secret
// { secretName: galley-cert
// secretNamespace: istio-system
// dnsNames:
// - galley.istio-system.svc
// - galley.mydomain.com
// }
// Example 2: key and cert stored in a directory
// { dnsNames:
// - pilot.istio-system
// - pilot.istio-system.svc
// - pilot.mydomain.com
// }
message Certificate {
// Name of the secret the certificate and its key will be stored into.
// If it is empty, it will not be stored into a secret.
// Instead, the certificate and its key will be stored into a hard-coded directory.
string secret_name = 1;
// The DNS names for the certificate. A certificate may contain
// multiple DNS names.
repeated string dns_names = 2;
}

View File

@ -212,6 +212,13 @@
"description": "Name to be used while emitting statistics for outbound clusters. By default, Istio emits statistics with the pattern outbound|\u003cport\u003e|\u003csubsetname\u003e|\u003cservice-FQDN\u003e. For example outbound|8080|v2|reviews.prod.svc.cluster.local. This can be used to override that pattern.",
"type": "string",
"format": "string"
},
"certificates": {
"description": "Configure the provision of certificates.",
"type": "array",
"items": {
"$ref": "#/components/schemas/istio.mesh.v1alpha1.Certificate"
}
}
}
},
@ -404,6 +411,25 @@
],
"default": "DO_NOT_UPGRADE"
},
"istio.mesh.v1alpha1.Certificate": {
"description": "Certificate configures the provision of a certificate and its key. Example 1: key and cert stored in a secret { secretName: galley-cert secretNamespace: istio-system dnsNames: - galley.istio-system.svc - galley.mydomain.com } Example 2: key and cert stored in a directory { dnsNames: - pilot.istio-system - pilot.istio-system.svc - pilot.mydomain.com }",
"type": "object",
"properties": {
"secretName": {
"description": "Name of the secret the certificate and its key will be stored into. If it is empty, it will not be stored into a secret. Instead, the certificate and its key will be stored into a hard-coded directory.",
"type": "string",
"format": "string"
},
"dnsNames": {
"description": "The DNS names for the certificate. A certificate may contain multiple DNS names.",
"type": "array",
"items": {
"type": "string",
"format": "string"
}
}
}
},
"istio.mesh.v1alpha1.MeshConfig.OutboundTrafficPolicy.Mode": {
"type": "string",
"enum": [

View File

@ -4,7 +4,7 @@ description: Configuration affecting the service mesh as a whole.
location: https://istio.io/docs/reference/config/istio.mesh.v1alpha1.html
layout: protoc-gen-docs
generator: protoc-gen-docs
number_of_entries: 25
number_of_entries: 26
---
<p>Configuration affecting the service mesh as a whole.</p>
@ -43,6 +43,54 @@ Mesh policy cannot be INHERIT.</p>
<p>Use the policy defined by the parent scope. Should not be used for mesh
policy.</p>
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="Certificate">Certificate</h2>
<section>
<p>Certificate configures the provision of a certificate and its key.
Example 1: key and cert stored in a secret
&lbrace; secretName: galley-cert
secretNamespace: istio-system
dnsNames:
- galley.istio-system.svc
- galley.mydomain.com
}
Example 2: key and cert stored in a directory
&lbrace; dnsNames:
- pilot.istio-system
- pilot.istio-system.svc
- pilot.mydomain.com
}</p>
<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="Certificate-secret_name">
<td><code>secretName</code></td>
<td><code>string</code></td>
<td>
<p>Name of the secret the certificate and its key will be stored into.
If it is empty, it will not be stored into a secret.
Instead, the certificate and its key will be stored into a hard-coded directory.</p>
</td>
</tr>
<tr id="Certificate-dns_names">
<td><code>dnsNames</code></td>
<td><code>string[]</code></td>
<td>
<p>The DNS names for the certificate. A certificate may contain
multiple DNS names.</p>
</td>
</tr>
</tbody>
@ -715,6 +763,14 @@ For example outbound|8080|v2|reviews.prod.svc.cluster.local. This can be used to
%SERVICE<em>FQDN%</em>%SERVICE<em>PORT% will use reviews.prod.svc.cluster.local</em>7443 as the stats name.
%SERVICE% will use reviews.prod as the stats name.</p>
</td>
</tr>
<tr id="MeshConfig-certificates">
<td><code>certificates</code></td>
<td><code><a href="#Certificate">Certificate[]</a></code></td>
<td>
<p>Configure the provision of certificates.</p>
</td>
</tr>
</tbody>

View File

@ -35960,6 +35960,12 @@
"id": 45,
"name": "outbound_cluster_stat_name",
"type": "string"
},
{
"id": 47,
"name": "certificates",
"type": "Certificate",
"is_repeated": true
}
],
"reserved_ids": [
@ -36053,6 +36059,22 @@
]
}
]
},
{
"name": "Certificate",
"fields": [
{
"id": 1,
"name": "secret_name",
"type": "string"
},
{
"id": 2,
"name": "dns_names",
"type": "string",
"is_repeated": true
}
]
}
],
"imports": [

File diff suppressed because one or more lines are too long