mesh: rename Upstreams and UpstreamsConfiguration to Destinations* (#18995)

This commit is contained in:
Iryna Shustava 2023-09-25 12:03:45 -06:00 committed by GitHub
parent 202090e5d5
commit 3ea6afb4d4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
32 changed files with 1562 additions and 1556 deletions

View File

@ -37,7 +37,7 @@ func TestResourceApplyCommand(t *testing.T) {
{ {
name: "nested data format", name: "nested data format",
args: []string{"-f=../testdata/nested_data.hcl"}, args: []string{"-f=../testdata/nested_data.hcl"},
output: "mesh.v2beta1.Upstreams 'api' created.", output: "mesh.v2beta1.Destinations 'api' created.",
}, },
} }

View File

@ -2,7 +2,7 @@
# SPDX-License-Identifier: BUSL-1.1 # SPDX-License-Identifier: BUSL-1.1
ID { ID {
Type = gvk("mesh.v2beta1.Upstreams") Type = gvk("mesh.v2beta1.Destinations")
Name = "api" Name = "api"
} }
@ -11,7 +11,7 @@ Data {
Prefixes = ["api"] Prefixes = ["api"]
} }
Upstreams = [ Destinations = [
{ {
DestinationRef = { DestinationRef = {
Type = gvk("catalog.v2beta1.Service") Type = gvk("catalog.v2beta1.Service")

View File

@ -61,7 +61,7 @@ func (c *DestinationsCache) WriteDestination(d intermediate.CombinedDestinationR
// Also, check that explicit destination reference is a mesh.Upstreams type. // Also, check that explicit destination reference is a mesh.Upstreams type.
if d.ExplicitDestinationsID != nil && if d.ExplicitDestinationsID != nil &&
!resource.EqualType(pbmesh.UpstreamsType, d.ExplicitDestinationsID.Type) { !resource.EqualType(pbmesh.DestinationsType, d.ExplicitDestinationsID.Type) {
panic("ExplicitDestinationsID must be of type mesh.Upstreams") panic("ExplicitDestinationsID must be of type mesh.Upstreams")
} }

View File

@ -233,7 +233,7 @@ func testDestination(proxyID *pbresource.ID) intermediate.CombinedDestinationRef
ServiceRef: resourcetest.Resource(pbcatalog.ServiceType, "test-service"). ServiceRef: resourcetest.Resource(pbcatalog.ServiceType, "test-service").
WithTenancy(resource.DefaultNamespacedTenancy()).ReferenceNoSection(), WithTenancy(resource.DefaultNamespacedTenancy()).ReferenceNoSection(),
Port: "tcp", Port: "tcp",
ExplicitDestinationsID: resourcetest.Resource(pbmesh.UpstreamsType, "test-servicedestinations"). ExplicitDestinationsID: resourcetest.Resource(pbmesh.DestinationsType, "test-servicedestinations").
WithTenancy(resource.DefaultNamespacedTenancy()).ID(), WithTenancy(resource.DefaultNamespacedTenancy()).ID(),
SourceProxies: map[resource.ReferenceKey]struct{}{ SourceProxies: map[resource.ReferenceKey]struct{}{
resource.NewReferenceKey(proxyID): {}, resource.NewReferenceKey(proxyID): {},

View File

@ -429,13 +429,13 @@ func (b *ListenerBuilder) addL7Router(statPrefix string, protocol pbcatalog.Prot
} }
// addExplicitOutboundListener creates an outbound listener for an explicit destination. // addExplicitOutboundListener creates an outbound listener for an explicit destination.
func (b *Builder) addExplicitOutboundListener(explicit *pbmesh.Upstream) *ListenerBuilder { func (b *Builder) addExplicitOutboundListener(explicit *pbmesh.Destination) *ListenerBuilder {
listener := makeExplicitListener(explicit, pbproxystate.Direction_DIRECTION_OUTBOUND) listener := makeExplicitListener(explicit, pbproxystate.Direction_DIRECTION_OUTBOUND)
return b.NewListenerBuilder(listener) return b.NewListenerBuilder(listener)
} }
func makeExplicitListener(explicit *pbmesh.Upstream, direction pbproxystate.Direction) *pbproxystate.Listener { func makeExplicitListener(explicit *pbmesh.Destination, direction pbproxystate.Direction) *pbproxystate.Listener {
if explicit == nil { if explicit == nil {
panic("explicit upstream required") panic("explicit upstream required")
} }
@ -448,8 +448,8 @@ func makeExplicitListener(explicit *pbmesh.Upstream, direction pbproxystate.Dire
// Create outbound listener address. // Create outbound listener address.
switch explicit.ListenAddr.(type) { switch explicit.ListenAddr.(type) {
case *pbmesh.Upstream_IpPort: case *pbmesh.Destination_IpPort:
destinationAddr := explicit.ListenAddr.(*pbmesh.Upstream_IpPort) destinationAddr := explicit.ListenAddr.(*pbmesh.Destination_IpPort)
listener.BindAddress = &pbproxystate.Listener_HostPort{ listener.BindAddress = &pbproxystate.Listener_HostPort{
HostPort: &pbproxystate.HostPortAddress{ HostPort: &pbproxystate.HostPortAddress{
Host: destinationAddr.IpPort.Ip, Host: destinationAddr.IpPort.Ip,
@ -457,8 +457,8 @@ func makeExplicitListener(explicit *pbmesh.Upstream, direction pbproxystate.Dire
}, },
} }
listener.Name = DestinationListenerName(explicit.DestinationRef.Name, explicit.DestinationPort, destinationAddr.IpPort.Ip, destinationAddr.IpPort.Port) listener.Name = DestinationListenerName(explicit.DestinationRef.Name, explicit.DestinationPort, destinationAddr.IpPort.Ip, destinationAddr.IpPort.Port)
case *pbmesh.Upstream_Unix: case *pbmesh.Destination_Unix:
destinationAddr := explicit.ListenAddr.(*pbmesh.Upstream_Unix) destinationAddr := explicit.ListenAddr.(*pbmesh.Destination_Unix)
listener.BindAddress = &pbproxystate.Listener_UnixSocket{ listener.BindAddress = &pbproxystate.Listener_UnixSocket{
UnixSocket: &pbproxystate.UnixSocketAddress{ UnixSocket: &pbproxystate.UnixSocketAddress{
Path: destinationAddr.Unix.Path, Path: destinationAddr.Unix.Path,

View File

@ -308,11 +308,11 @@ func TestBuildExplicitDestinations(t *testing.T) {
require.NotNil(t, api2ComputedRoutes) require.NotNil(t, api2ComputedRoutes)
destinationIpPort := &intermediate.Destination{ destinationIpPort := &intermediate.Destination{
Explicit: &pbmesh.Upstream{ Explicit: &pbmesh.Destination{
DestinationRef: resource.Reference(api1Endpoints.Id, ""), DestinationRef: resource.Reference(api1Endpoints.Id, ""),
DestinationPort: "tcp", DestinationPort: "tcp",
Datacenter: "dc1", Datacenter: "dc1",
ListenAddr: &pbmesh.Upstream_IpPort{ ListenAddr: &pbmesh.Destination_IpPort{
IpPort: &pbmesh.IPPortAddress{Ip: "1.1.1.1", Port: 1234}, IpPort: &pbmesh.IPPortAddress{Ip: "1.1.1.1", Port: 1234},
}, },
}, },
@ -332,11 +332,11 @@ func TestBuildExplicitDestinations(t *testing.T) {
} }
destinationIpPort2 := &intermediate.Destination{ destinationIpPort2 := &intermediate.Destination{
Explicit: &pbmesh.Upstream{ Explicit: &pbmesh.Destination{
DestinationRef: resource.Reference(api1Endpoints.Id, ""), DestinationRef: resource.Reference(api1Endpoints.Id, ""),
DestinationPort: "tcp2", DestinationPort: "tcp2",
Datacenter: "dc1", Datacenter: "dc1",
ListenAddr: &pbmesh.Upstream_IpPort{ ListenAddr: &pbmesh.Destination_IpPort{
IpPort: &pbmesh.IPPortAddress{Ip: "1.1.1.1", Port: 2345}, IpPort: &pbmesh.IPPortAddress{Ip: "1.1.1.1", Port: 2345},
}, },
}, },
@ -356,11 +356,11 @@ func TestBuildExplicitDestinations(t *testing.T) {
} }
destinationUnix := &intermediate.Destination{ destinationUnix := &intermediate.Destination{
Explicit: &pbmesh.Upstream{ Explicit: &pbmesh.Destination{
DestinationRef: resource.Reference(api2Endpoints.Id, ""), DestinationRef: resource.Reference(api2Endpoints.Id, ""),
DestinationPort: "tcp", DestinationPort: "tcp",
Datacenter: "dc1", Datacenter: "dc1",
ListenAddr: &pbmesh.Upstream_Unix{ ListenAddr: &pbmesh.Destination_Unix{
Unix: &pbmesh.UnixSocketAddress{Path: "/path/to/socket", Mode: "0666"}, Unix: &pbmesh.UnixSocketAddress{Path: "/path/to/socket", Mode: "0666"},
}, },
}, },
@ -376,11 +376,11 @@ func TestBuildExplicitDestinations(t *testing.T) {
} }
destinationUnix2 := &intermediate.Destination{ destinationUnix2 := &intermediate.Destination{
Explicit: &pbmesh.Upstream{ Explicit: &pbmesh.Destination{
DestinationRef: resource.Reference(api2Endpoints.Id, ""), DestinationRef: resource.Reference(api2Endpoints.Id, ""),
DestinationPort: "tcp2", DestinationPort: "tcp2",
Datacenter: "dc1", Datacenter: "dc1",
ListenAddr: &pbmesh.Upstream_Unix{ ListenAddr: &pbmesh.Destination_Unix{
Unix: &pbmesh.UnixSocketAddress{Path: "/path/to/socket", Mode: "0666"}, Unix: &pbmesh.UnixSocketAddress{Path: "/path/to/socket", Mode: "0666"},
}, },
}, },
@ -395,11 +395,11 @@ func TestBuildExplicitDestinations(t *testing.T) {
}), }),
} }
destinationIpPortHTTP := &intermediate.Destination{ destinationIpPortHTTP := &intermediate.Destination{
Explicit: &pbmesh.Upstream{ Explicit: &pbmesh.Destination{
DestinationRef: resource.Reference(api1Endpoints.Id, ""), DestinationRef: resource.Reference(api1Endpoints.Id, ""),
DestinationPort: "http", DestinationPort: "http",
Datacenter: "dc1", Datacenter: "dc1",
ListenAddr: &pbmesh.Upstream_IpPort{ ListenAddr: &pbmesh.Destination_IpPort{
IpPort: &pbmesh.IPPortAddress{Ip: "1.1.1.1", Port: 1234}, IpPort: &pbmesh.IPPortAddress{Ip: "1.1.1.1", Port: 1234},
}, },
}, },
@ -533,11 +533,11 @@ func TestBuildImplicitDestinations(t *testing.T) {
} }
destination3 := &intermediate.Destination{ destination3 := &intermediate.Destination{
Explicit: &pbmesh.Upstream{ Explicit: &pbmesh.Destination{
DestinationRef: resource.Reference(api1Endpoints.Id, ""), DestinationRef: resource.Reference(api1Endpoints.Id, ""),
DestinationPort: "tcp", DestinationPort: "tcp",
Datacenter: "dc1", Datacenter: "dc1",
ListenAddr: &pbmesh.Upstream_IpPort{ ListenAddr: &pbmesh.Destination_IpPort{
IpPort: &pbmesh.IPPortAddress{Ip: "1.1.1.1", Port: 1234}, IpPort: &pbmesh.IPPortAddress{Ip: "1.1.1.1", Port: 1234},
}, },
}, },

View File

@ -89,7 +89,7 @@ func Controller(
return controller.ForType(pbmesh.ProxyStateTemplateType). return controller.ForType(pbmesh.ProxyStateTemplateType).
WithWatch(pbcatalog.ServiceType, mapper.MapServiceToProxyStateTemplate). WithWatch(pbcatalog.ServiceType, mapper.MapServiceToProxyStateTemplate).
WithWatch(pbcatalog.ServiceEndpointsType, mapper.MapServiceEndpointsToProxyStateTemplate). WithWatch(pbcatalog.ServiceEndpointsType, mapper.MapServiceEndpointsToProxyStateTemplate).
WithWatch(pbmesh.UpstreamsType, mapper.MapDestinationsToProxyStateTemplate). WithWatch(pbmesh.DestinationsType, mapper.MapDestinationsToProxyStateTemplate).
WithWatch(pbmesh.ProxyConfigurationType, mapper.MapProxyConfigurationToProxyStateTemplate). WithWatch(pbmesh.ProxyConfigurationType, mapper.MapProxyConfigurationToProxyStateTemplate).
WithWatch(pbmesh.ComputedRoutesType, mapper.MapComputedRoutesToProxyStateTemplate). WithWatch(pbmesh.ComputedRoutesType, mapper.MapComputedRoutesToProxyStateTemplate).
WithWatch(pbauth.ComputedTrafficPermissionsType, mapper.MapComputedTrafficPermissionsToProxyStateTemplate). WithWatch(pbauth.ComputedTrafficPermissionsType, mapper.MapComputedTrafficPermissionsToProxyStateTemplate).

View File

@ -390,14 +390,14 @@ func (suite *meshControllerTestSuite) TestController() {
) )
// Add a source service and check that a new proxy state is generated. // Add a source service and check that a new proxy state is generated.
webDestinations = resourcetest.Resource(pbmesh.UpstreamsType, "web-destinations"). webDestinations = resourcetest.Resource(pbmesh.DestinationsType, "web-destinations").
WithData(suite.T(), &pbmesh.Upstreams{ WithData(suite.T(), &pbmesh.Destinations{
Workloads: &pbcatalog.WorkloadSelector{Names: []string{"web-def"}}, Workloads: &pbcatalog.WorkloadSelector{Names: []string{"web-def"}},
Upstreams: []*pbmesh.Upstream{ Destinations: []*pbmesh.Destination{
{ {
DestinationRef: resource.Reference(suite.apiService.Id, ""), DestinationRef: resource.Reference(suite.apiService.Id, ""),
DestinationPort: "tcp", DestinationPort: "tcp",
ListenAddr: &pbmesh.Upstream_IpPort{ ListenAddr: &pbmesh.Destination_IpPort{
IpPort: &pbmesh.IPPortAddress{ IpPort: &pbmesh.IPPortAddress{
Ip: "127.0.0.1", Ip: "127.0.0.1",
Port: 1234, Port: 1234,
@ -466,7 +466,7 @@ func (suite *meshControllerTestSuite) TestController() {
suite.client.RequireResourceNotFound(r, apiProxyStateTemplateID) suite.client.RequireResourceNotFound(r, apiProxyStateTemplateID)
}) })
// Check status on the pbmesh.Upstreams resource. // Check status on the pbmesh.Destinations resource.
serviceRef := resource.ReferenceToString(resource.Reference(suite.apiService.Id, "")) serviceRef := resource.ReferenceToString(resource.Reference(suite.apiService.Id, ""))
suite.client.WaitForStatusCondition(t, webDestinations.Id, ControllerName, suite.client.WaitForStatusCondition(t, webDestinations.Id, ControllerName,
status.ConditionMeshProtocolNotFound(serviceRef)) status.ConditionMeshProtocolNotFound(serviceRef))

View File

@ -90,7 +90,7 @@ func (f *Fetcher) FetchService(ctx context.Context, id *pbresource.ID) (*types.D
} }
func (f *Fetcher) FetchDestinations(ctx context.Context, id *pbresource.ID) (*types.DecodedDestinations, error) { func (f *Fetcher) FetchDestinations(ctx context.Context, id *pbresource.ID) (*types.DecodedDestinations, error) {
return resource.GetDecodedResource[*pbmesh.Upstreams](ctx, f.Client, id) return resource.GetDecodedResource[*pbmesh.Destinations](ctx, f.Client, id)
} }
func (f *Fetcher) FetchComputedRoutes(ctx context.Context, id *pbresource.ID) (*types.DecodedComputedRoutes, error) { func (f *Fetcher) FetchComputedRoutes(ctx context.Context, id *pbresource.ID) (*types.DecodedComputedRoutes, error) {
@ -490,8 +490,8 @@ func findServicePort(ports []*pbcatalog.ServicePort, name string) *pbcatalog.Ser
return nil return nil
} }
func findDestination(ref *pbresource.Reference, port string, destinations *pbmesh.Upstreams) *pbmesh.Upstream { func findDestination(ref *pbresource.Reference, port string, destinations *pbmesh.Destinations) *pbmesh.Destination {
for _, destination := range destinations.Upstreams { for _, destination := range destinations.Destinations {
if resource.EqualReference(ref, destination.DestinationRef) && if resource.EqualReference(ref, destination.DestinationRef) &&
port == destination.DestinationPort { port == destination.DestinationPort {
return destination return destination

View File

@ -138,7 +138,7 @@ type dataFetcherSuite struct {
api2ServiceEndpoints *pbresource.Resource api2ServiceEndpoints *pbresource.Resource
api2ServiceEndpointsData *pbcatalog.ServiceEndpoints api2ServiceEndpointsData *pbcatalog.ServiceEndpoints
webDestinations *pbresource.Resource webDestinations *pbresource.Resource
webDestinationsData *pbmesh.Upstreams webDestinationsData *pbmesh.Destinations
webProxy *pbresource.Resource webProxy *pbresource.Resource
webWorkload *pbresource.Resource webWorkload *pbresource.Resource
} }
@ -205,8 +205,8 @@ func (suite *dataFetcherSuite) SetupTest() {
WithData(suite.T(), suite.api2ServiceEndpointsData). WithData(suite.T(), suite.api2ServiceEndpointsData).
Write(suite.T(), suite.client) Write(suite.T(), suite.client)
suite.webDestinationsData = &pbmesh.Upstreams{ suite.webDestinationsData = &pbmesh.Destinations{
Upstreams: []*pbmesh.Upstream{ Destinations: []*pbmesh.Destination{
{ {
DestinationRef: resource.Reference(suite.api1Service.Id, ""), DestinationRef: resource.Reference(suite.api1Service.Id, ""),
DestinationPort: "tcp", DestinationPort: "tcp",
@ -222,7 +222,7 @@ func (suite *dataFetcherSuite) SetupTest() {
}, },
} }
suite.webDestinations = resourcetest.Resource(pbmesh.UpstreamsType, "web-destinations"). suite.webDestinations = resourcetest.Resource(pbmesh.DestinationsType, "web-destinations").
WithData(suite.T(), suite.webDestinationsData). WithData(suite.T(), suite.webDestinationsData).
Write(suite.T(), suite.client) Write(suite.T(), suite.client)
@ -264,7 +264,7 @@ func (suite *dataFetcherSuite) TestFetcher_FetchWorkload_WorkloadNotFound() {
dest1 := intermediate.CombinedDestinationRef{ dest1 := intermediate.CombinedDestinationRef{
ServiceRef: resourcetest.Resource(pbcatalog.ServiceType, "test-service-1").ReferenceNoSection(), ServiceRef: resourcetest.Resource(pbcatalog.ServiceType, "test-service-1").ReferenceNoSection(),
Port: "tcp", Port: "tcp",
ExplicitDestinationsID: resourcetest.Resource(pbmesh.UpstreamsType, "test-servicedestinations-1").ID(), ExplicitDestinationsID: resourcetest.Resource(pbmesh.DestinationsType, "test-servicedestinations-1").ID(),
SourceProxies: map[resource.ReferenceKey]struct{}{ SourceProxies: map[resource.ReferenceKey]struct{}{
resource.NewReferenceKey(proxyID): {}, resource.NewReferenceKey(proxyID): {},
}, },
@ -272,7 +272,7 @@ func (suite *dataFetcherSuite) TestFetcher_FetchWorkload_WorkloadNotFound() {
dest2 := intermediate.CombinedDestinationRef{ dest2 := intermediate.CombinedDestinationRef{
ServiceRef: resourcetest.Resource(pbcatalog.ServiceType, "test-service-2").ReferenceNoSection(), ServiceRef: resourcetest.Resource(pbcatalog.ServiceType, "test-service-2").ReferenceNoSection(),
Port: "tcp", Port: "tcp",
ExplicitDestinationsID: resourcetest.Resource(pbmesh.UpstreamsType, "test-servicedestinations-2").ID(), ExplicitDestinationsID: resourcetest.Resource(pbmesh.DestinationsType, "test-servicedestinations-2").ID(),
SourceProxies: map[resource.ReferenceKey]struct{}{ SourceProxies: map[resource.ReferenceKey]struct{}{
resource.NewReferenceKey(proxyID): {}, resource.NewReferenceKey(proxyID): {},
}, },
@ -344,7 +344,7 @@ func (suite *dataFetcherSuite) TestFetcher_NotFound() {
}, },
}, },
"destinations": { "destinations": {
typ: pbmesh.UpstreamsType, typ: pbmesh.DestinationsType,
fetchFunc: func(id *pbresource.ID) error { fetchFunc: func(id *pbresource.ID) error {
_, err := f.FetchDestinations(context.Background(), id) _, err := f.FetchDestinations(context.Background(), id)
return err return err
@ -442,15 +442,15 @@ func (suite *dataFetcherSuite) TestFetcher_FetchErrors() {
} }
func (suite *dataFetcherSuite) syncDestinations(destinations ...intermediate.CombinedDestinationRef) { func (suite *dataFetcherSuite) syncDestinations(destinations ...intermediate.CombinedDestinationRef) {
data := &pbmesh.Upstreams{} data := &pbmesh.Destinations{}
for _, dest := range destinations { for _, dest := range destinations {
data.Upstreams = append(data.Upstreams, &pbmesh.Upstream{ data.Destinations = append(data.Destinations, &pbmesh.Destination{
DestinationRef: dest.ServiceRef, DestinationRef: dest.ServiceRef,
DestinationPort: dest.Port, DestinationPort: dest.Port,
}) })
} }
suite.webDestinations = resourcetest.Resource(pbmesh.UpstreamsType, "web-destinations"). suite.webDestinations = resourcetest.Resource(pbmesh.DestinationsType, "web-destinations").
WithData(suite.T(), data). WithData(suite.T(), data).
Write(suite.T(), suite.client) Write(suite.T(), suite.client)
} }
@ -482,7 +482,7 @@ func (suite *dataFetcherSuite) TestFetcher_FetchExplicitDestinationsData() {
destinationRefNoDestinations := intermediate.CombinedDestinationRef{ destinationRefNoDestinations := intermediate.CombinedDestinationRef{
ServiceRef: api1ServiceRef, ServiceRef: api1ServiceRef,
Port: "tcp", Port: "tcp",
ExplicitDestinationsID: resourcetest.Resource(pbmesh.UpstreamsType, "not-found").ID(), ExplicitDestinationsID: resourcetest.Resource(pbmesh.DestinationsType, "not-found").ID(),
SourceProxies: map[resource.ReferenceKey]struct{}{ SourceProxies: map[resource.ReferenceKey]struct{}{
resource.NewReferenceKey(suite.webProxy.Id): {}, resource.NewReferenceKey(suite.webProxy.Id): {},
}, },
@ -515,13 +515,13 @@ func (suite *dataFetcherSuite) TestFetcher_FetchExplicitDestinationsData() {
t.Cleanup(func() { t.Cleanup(func() {
// Restore this for the next test step. // Restore this for the next test step.
suite.webDestinations = resourcetest.Resource(pbmesh.UpstreamsType, "web-destinations"). suite.webDestinations = resourcetest.Resource(pbmesh.DestinationsType, "web-destinations").
WithData(suite.T(), suite.webDestinationsData). WithData(suite.T(), suite.webDestinationsData).
Write(suite.T(), suite.client) Write(suite.T(), suite.client)
}) })
suite.webDestinations = resourcetest.Resource(pbmesh.UpstreamsType, "web-destinations"). suite.webDestinations = resourcetest.Resource(pbmesh.DestinationsType, "web-destinations").
WithData(suite.T(), &pbmesh.Upstreams{ WithData(suite.T(), &pbmesh.Destinations{
Upstreams: []*pbmesh.Upstream{{ Destinations: []*pbmesh.Destination{{
DestinationRef: notFoundServiceRef, DestinationRef: notFoundServiceRef,
DestinationPort: "tcp", DestinationPort: "tcp",
}}, }},
@ -644,7 +644,7 @@ func (suite *dataFetcherSuite) TestFetcher_FetchExplicitDestinationsData() {
// Check that we didn't return any destinations. // Check that we didn't return any destinations.
require.Empty(t, destinations) require.Empty(t, destinations)
// Check that destination service is still in cache because it's still referenced from the pbmesh.Upstreams // Check that destination service is still in cache because it's still referenced from the pbmesh.Destinations
// resource. // resource.
_, foundDest := c.ReadDestination(destinationMeshDestinationPort.ServiceRef, destinationMeshDestinationPort.Port) _, foundDest := c.ReadDestination(destinationMeshDestinationPort.ServiceRef, destinationMeshDestinationPort.Port)
require.True(t, foundDest) require.True(t, foundDest)
@ -746,7 +746,7 @@ func (suite *dataFetcherSuite) TestFetcher_FetchExplicitDestinationsData() {
// Check that we didn't return any destinations. // Check that we didn't return any destinations.
require.Nil(t, destinations) require.Nil(t, destinations)
// Check that destination service is still in cache because it's still referenced from the pbmesh.Upstreams // Check that destination service is still in cache because it's still referenced from the pbmesh.Destinations
// resource. // resource.
_, foundDest := c.ReadDestination(destination1.ServiceRef, destination1.Port) _, foundDest := c.ReadDestination(destination1.ServiceRef, destination1.Port)
require.True(t, foundDest) require.True(t, foundDest)
@ -779,7 +779,7 @@ func (suite *dataFetcherSuite) TestFetcher_FetchExplicitDestinationsData() {
expectedDestinations := []*intermediate.Destination{ expectedDestinations := []*intermediate.Destination{
{ {
Explicit: suite.webDestinationsData.Upstreams[0], Explicit: suite.webDestinationsData.Destinations[0],
Service: resourcetest.MustDecode[*pbcatalog.Service](suite.T(), suite.api1Service), Service: resourcetest.MustDecode[*pbcatalog.Service](suite.T(), suite.api1Service),
ComputedPortRoutes: routestest.MutateTargets(suite.T(), api1ComputedRoutes.Data, "tcp", func(t *testing.T, details *pbmesh.BackendTargetDetails) { ComputedPortRoutes: routestest.MutateTargets(suite.T(), api1ComputedRoutes.Data, "tcp", func(t *testing.T, details *pbmesh.BackendTargetDetails) {
switch { switch {
@ -821,7 +821,7 @@ func (suite *dataFetcherSuite) TestFetcher_FetchExplicitDestinationsData() {
destinationRefs := []intermediate.CombinedDestinationRef{destination1, destination2, destination3} destinationRefs := []intermediate.CombinedDestinationRef{destination1, destination2, destination3}
expectedDestinations := []*intermediate.Destination{ expectedDestinations := []*intermediate.Destination{
{ {
Explicit: suite.webDestinationsData.Upstreams[0], Explicit: suite.webDestinationsData.Destinations[0],
Service: resourcetest.MustDecode[*pbcatalog.Service](suite.T(), suite.api1Service), Service: resourcetest.MustDecode[*pbcatalog.Service](suite.T(), suite.api1Service),
ComputedPortRoutes: routestest.MutateTargets(suite.T(), api1ComputedRoutes.Data, "tcp", func(t *testing.T, details *pbmesh.BackendTargetDetails) { ComputedPortRoutes: routestest.MutateTargets(suite.T(), api1ComputedRoutes.Data, "tcp", func(t *testing.T, details *pbmesh.BackendTargetDetails) {
switch { switch {
@ -837,7 +837,7 @@ func (suite *dataFetcherSuite) TestFetcher_FetchExplicitDestinationsData() {
}), }),
}, },
{ {
Explicit: suite.webDestinationsData.Upstreams[1], Explicit: suite.webDestinationsData.Destinations[1],
Service: resourcetest.MustDecode[*pbcatalog.Service](suite.T(), suite.api2Service), Service: resourcetest.MustDecode[*pbcatalog.Service](suite.T(), suite.api2Service),
ComputedPortRoutes: routestest.MutateTargets(suite.T(), api2ComputedRoutes.Data, "tcp1", func(t *testing.T, details *pbmesh.BackendTargetDetails) { ComputedPortRoutes: routestest.MutateTargets(suite.T(), api2ComputedRoutes.Data, "tcp1", func(t *testing.T, details *pbmesh.BackendTargetDetails) {
switch { switch {
@ -853,7 +853,7 @@ func (suite *dataFetcherSuite) TestFetcher_FetchExplicitDestinationsData() {
}), }),
}, },
{ {
Explicit: suite.webDestinationsData.Upstreams[2], Explicit: suite.webDestinationsData.Destinations[2],
Service: resourcetest.MustDecode[*pbcatalog.Service](suite.T(), suite.api2Service), Service: resourcetest.MustDecode[*pbcatalog.Service](suite.T(), suite.api2Service),
ComputedPortRoutes: routestest.MutateTargets(suite.T(), api2ComputedRoutes.Data, "tcp2", func(t *testing.T, details *pbmesh.BackendTargetDetails) { ComputedPortRoutes: routestest.MutateTargets(suite.T(), api2ComputedRoutes.Data, "tcp2", func(t *testing.T, details *pbmesh.BackendTargetDetails) {
switch { switch {
@ -947,7 +947,7 @@ func (suite *dataFetcherSuite) TestFetcher_FetchImplicitDestinationsData() {
existingDestinations := []*intermediate.Destination{ existingDestinations := []*intermediate.Destination{
{ {
Explicit: suite.webDestinationsData.Upstreams[0], Explicit: suite.webDestinationsData.Destinations[0],
Service: resourcetest.MustDecode[*pbcatalog.Service](suite.T(), suite.api1Service), Service: resourcetest.MustDecode[*pbcatalog.Service](suite.T(), suite.api1Service),
ComputedPortRoutes: routestest.MutateTargets(suite.T(), api1ComputedRoutes.Data, "tcp", func(t *testing.T, details *pbmesh.BackendTargetDetails) { ComputedPortRoutes: routestest.MutateTargets(suite.T(), api1ComputedRoutes.Data, "tcp", func(t *testing.T, details *pbmesh.BackendTargetDetails) {
switch { switch {
@ -963,7 +963,7 @@ func (suite *dataFetcherSuite) TestFetcher_FetchImplicitDestinationsData() {
}), }),
}, },
{ {
Explicit: suite.webDestinationsData.Upstreams[1], Explicit: suite.webDestinationsData.Destinations[1],
Service: resourcetest.MustDecode[*pbcatalog.Service](suite.T(), suite.api2Service), Service: resourcetest.MustDecode[*pbcatalog.Service](suite.T(), suite.api2Service),
ComputedPortRoutes: routestest.MutateTargets(suite.T(), api2ComputedRoutes.Data, "tcp1", func(t *testing.T, details *pbmesh.BackendTargetDetails) { ComputedPortRoutes: routestest.MutateTargets(suite.T(), api2ComputedRoutes.Data, "tcp1", func(t *testing.T, details *pbmesh.BackendTargetDetails) {
switch { switch {
@ -979,7 +979,7 @@ func (suite *dataFetcherSuite) TestFetcher_FetchImplicitDestinationsData() {
}), }),
}, },
{ {
Explicit: suite.webDestinationsData.Upstreams[2], Explicit: suite.webDestinationsData.Destinations[2],
Service: resourcetest.MustDecode[*pbcatalog.Service](suite.T(), suite.api2Service), Service: resourcetest.MustDecode[*pbcatalog.Service](suite.T(), suite.api2Service),
ComputedPortRoutes: routestest.MutateTargets(suite.T(), api2ComputedRoutes.Data, "tcp2", func(t *testing.T, details *pbmesh.BackendTargetDetails) { ComputedPortRoutes: routestest.MutateTargets(suite.T(), api2ComputedRoutes.Data, "tcp2", func(t *testing.T, details *pbmesh.BackendTargetDetails) {
switch { switch {

View File

@ -14,7 +14,7 @@ import (
) )
func (m *Mapper) MapDestinationsToProxyStateTemplate(ctx context.Context, rt controller.Runtime, res *pbresource.Resource) ([]controller.Request, error) { func (m *Mapper) MapDestinationsToProxyStateTemplate(ctx context.Context, rt controller.Runtime, res *pbresource.Resource) ([]controller.Request, error) {
destinations, err := resource.Decode[*pbmesh.Upstreams](res) destinations, err := resource.Decode[*pbmesh.Destinations](res)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -30,7 +30,7 @@ func (m *Mapper) MapDestinationsToProxyStateTemplate(ctx context.Context, rt con
} }
// Add this destination to destinationsCache. // Add this destination to destinationsCache.
for _, destination := range destinations.Data.Upstreams { for _, destination := range destinations.Data.Destinations {
destinationRef := intermediate.CombinedDestinationRef{ destinationRef := intermediate.CombinedDestinationRef{
ServiceRef: destination.DestinationRef, ServiceRef: destination.DestinationRef,
Port: destination.DestinationPort, Port: destination.DestinationPort,

View File

@ -55,12 +55,12 @@ func TestMapDestinationsToProxyStateTemplate(t *testing.T) {
ReferenceNoSection() ReferenceNoSection()
) )
webDestinationsData := &pbmesh.Upstreams{ webDestinationsData := &pbmesh.Destinations{
Workloads: &pbcatalog.WorkloadSelector{ Workloads: &pbcatalog.WorkloadSelector{
Names: []string{"non-prefix-web"}, Names: []string{"non-prefix-web"},
Prefixes: []string{"web"}, Prefixes: []string{"web"},
}, },
Upstreams: []*pbmesh.Upstream{ Destinations: []*pbmesh.Destination{
{ {
DestinationRef: api1ServiceRef, DestinationRef: api1ServiceRef,
DestinationPort: "tcp", DestinationPort: "tcp",
@ -76,7 +76,7 @@ func TestMapDestinationsToProxyStateTemplate(t *testing.T) {
}, },
} }
webDestinations := resourcetest.Resource(pbmesh.UpstreamsType, "web-destinations"). webDestinations := resourcetest.Resource(pbmesh.DestinationsType, "web-destinations").
WithTenancy(resource.DefaultNamespacedTenancy()). WithTenancy(resource.DefaultNamespacedTenancy()).
WithData(t, webDestinationsData). WithData(t, webDestinationsData).
Write(t, client) Write(t, client)
@ -102,7 +102,7 @@ func TestMapDestinationsToProxyStateTemplate(t *testing.T) {
proxy3ID = resourcetest.Resource(pbmesh.ProxyStateTemplateType, webWorkload3.Id.Name). proxy3ID = resourcetest.Resource(pbmesh.ProxyStateTemplateType, webWorkload3.Id.Name).
WithTenancy(resource.DefaultNamespacedTenancy()).ID() WithTenancy(resource.DefaultNamespacedTenancy()).ID()
) )
for _, u := range webDestinationsData.Upstreams { for _, u := range webDestinationsData.Destinations {
expDestination := intermediate.CombinedDestinationRef{ expDestination := intermediate.CombinedDestinationRef{
ServiceRef: u.DestinationRef, ServiceRef: u.DestinationRef,
Port: u.DestinationPort, Port: u.DestinationPort,

View File

@ -22,6 +22,6 @@ type (
DecodedServiceEndpoints = resource.DecodedResource[*pbcatalog.ServiceEndpoints] DecodedServiceEndpoints = resource.DecodedResource[*pbcatalog.ServiceEndpoints]
DecodedWorkload = resource.DecodedResource[*pbcatalog.Workload] DecodedWorkload = resource.DecodedResource[*pbcatalog.Workload]
DecodedProxyConfiguration = resource.DecodedResource[*pbmesh.ProxyConfiguration] DecodedProxyConfiguration = resource.DecodedResource[*pbmesh.ProxyConfiguration]
DecodedDestinations = resource.DecodedResource[*pbmesh.Upstreams] DecodedDestinations = resource.DecodedResource[*pbmesh.Destinations]
DecodedProxyStateTemplate = resource.DecodedResource[*pbmesh.ProxyStateTemplate] DecodedProxyStateTemplate = resource.DecodedResource[*pbmesh.ProxyStateTemplate]
) )

View File

@ -15,8 +15,8 @@ import (
func RegisterUpstreams(r resource.Registry) { func RegisterUpstreams(r resource.Registry) {
r.Register(resource.Registration{ r.Register(resource.Registration{
Type: pbmesh.UpstreamsType, Type: pbmesh.DestinationsType,
Proto: &pbmesh.Upstreams{}, Proto: &pbmesh.Destinations{},
Scope: resource.ScopeNamespace, Scope: resource.ScopeNamespace,
Mutate: MutateUpstreams, Mutate: MutateUpstreams,
Validate: ValidateUpstreams, Validate: ValidateUpstreams,
@ -24,7 +24,7 @@ func RegisterUpstreams(r resource.Registry) {
} }
func MutateUpstreams(res *pbresource.Resource) error { func MutateUpstreams(res *pbresource.Resource) error {
var destinations pbmesh.Upstreams var destinations pbmesh.Destinations
if err := res.Data.UnmarshalTo(&destinations); err != nil { if err := res.Data.UnmarshalTo(&destinations); err != nil {
return resource.NewErrDataParse(&destinations, err) return resource.NewErrDataParse(&destinations, err)
@ -32,7 +32,7 @@ func MutateUpstreams(res *pbresource.Resource) error {
changed := false changed := false
for _, dest := range destinations.Upstreams { for _, dest := range destinations.Destinations {
if dest.DestinationRef == nil { if dest.DestinationRef == nil {
continue // skip; let the validation hook error out instead continue // skip; let the validation hook error out instead
} }
@ -65,7 +65,7 @@ func isLocalPeer(p string) bool {
} }
func ValidateUpstreams(res *pbresource.Resource) error { func ValidateUpstreams(res *pbresource.Resource) error {
var destinations pbmesh.Upstreams var destinations pbmesh.Destinations
if err := res.Data.UnmarshalTo(&destinations); err != nil { if err := res.Data.UnmarshalTo(&destinations); err != nil {
return resource.NewErrDataParse(&destinations, err) return resource.NewErrDataParse(&destinations, err)
@ -73,7 +73,7 @@ func ValidateUpstreams(res *pbresource.Resource) error {
var merr error var merr error
for i, dest := range destinations.Upstreams { for i, dest := range destinations.Destinations {
wrapDestErr := func(err error) error { wrapDestErr := func(err error) error {
return resource.ErrInvalidListElement{ return resource.ErrInvalidListElement{
Name: "upstreams", Name: "upstreams",

View File

@ -10,8 +10,8 @@ import (
func RegisterUpstreamsConfiguration(r resource.Registry) { func RegisterUpstreamsConfiguration(r resource.Registry) {
r.Register(resource.Registration{ r.Register(resource.Registration{
Type: pbmesh.UpstreamsConfigurationType, Type: pbmesh.DestinationsConfigurationType,
Proto: &pbmesh.UpstreamsConfiguration{}, Proto: &pbmesh.DestinationsConfiguration{},
Scope: resource.ScopeNamespace, Scope: resource.ScopeNamespace,
Validate: nil, Validate: nil,
}) })

View File

@ -20,20 +20,20 @@ import (
func TestMutateUpstreams(t *testing.T) { func TestMutateUpstreams(t *testing.T) {
type testcase struct { type testcase struct {
tenancy *pbresource.Tenancy tenancy *pbresource.Tenancy
data *pbmesh.Upstreams data *pbmesh.Destinations
expect *pbmesh.Upstreams expect *pbmesh.Destinations
expectErr string expectErr string
} }
run := func(t *testing.T, tc testcase) { run := func(t *testing.T, tc testcase) {
res := resourcetest.Resource(pbmesh.UpstreamsType, "api"). res := resourcetest.Resource(pbmesh.DestinationsType, "api").
WithTenancy(tc.tenancy). WithTenancy(tc.tenancy).
WithData(t, tc.data). WithData(t, tc.data).
Build() Build()
err := MutateUpstreams(res) err := MutateUpstreams(res)
got := resourcetest.MustDecode[*pbmesh.Upstreams](t, res) got := resourcetest.MustDecode[*pbmesh.Destinations](t, res)
if tc.expectErr == "" { if tc.expectErr == "" {
require.NoError(t, err) require.NoError(t, err)
@ -45,32 +45,32 @@ func TestMutateUpstreams(t *testing.T) {
cases := map[string]testcase{ cases := map[string]testcase{
"empty-1": { "empty-1": {
data: &pbmesh.Upstreams{}, data: &pbmesh.Destinations{},
expect: &pbmesh.Upstreams{}, expect: &pbmesh.Destinations{},
}, },
"invalid/nil dest ref": { "invalid/nil dest ref": {
data: &pbmesh.Upstreams{ data: &pbmesh.Destinations{
Upstreams: []*pbmesh.Upstream{ Destinations: []*pbmesh.Destination{
{DestinationRef: nil}, {DestinationRef: nil},
}, },
}, },
expect: &pbmesh.Upstreams{ // untouched expect: &pbmesh.Destinations{ // untouched
Upstreams: []*pbmesh.Upstream{ Destinations: []*pbmesh.Destination{
{DestinationRef: nil}, {DestinationRef: nil},
}, },
}, },
}, },
"dest ref tenancy defaulting": { "dest ref tenancy defaulting": {
tenancy: newTestTenancy("foo.bar"), tenancy: newTestTenancy("foo.bar"),
data: &pbmesh.Upstreams{ data: &pbmesh.Destinations{
Upstreams: []*pbmesh.Upstream{ Destinations: []*pbmesh.Destination{
{DestinationRef: newRefWithTenancy(pbcatalog.ServiceType, newTestTenancy(""), "api")}, {DestinationRef: newRefWithTenancy(pbcatalog.ServiceType, newTestTenancy(""), "api")},
{DestinationRef: newRefWithTenancy(pbcatalog.ServiceType, newTestTenancy(".zim"), "api")}, {DestinationRef: newRefWithTenancy(pbcatalog.ServiceType, newTestTenancy(".zim"), "api")},
{DestinationRef: newRefWithTenancy(pbcatalog.ServiceType, newTestTenancy("gir.zim"), "api")}, {DestinationRef: newRefWithTenancy(pbcatalog.ServiceType, newTestTenancy("gir.zim"), "api")},
}, },
}, },
expect: &pbmesh.Upstreams{ expect: &pbmesh.Destinations{
Upstreams: []*pbmesh.Upstream{ Destinations: []*pbmesh.Destination{
{DestinationRef: newRefWithTenancy(pbcatalog.ServiceType, newTestTenancy("foo.bar"), "api")}, {DestinationRef: newRefWithTenancy(pbcatalog.ServiceType, newTestTenancy("foo.bar"), "api")},
{DestinationRef: newRefWithTenancy(pbcatalog.ServiceType, newTestTenancy("foo.zim"), "api")}, {DestinationRef: newRefWithTenancy(pbcatalog.ServiceType, newTestTenancy("foo.zim"), "api")},
{DestinationRef: newRefWithTenancy(pbcatalog.ServiceType, newTestTenancy("gir.zim"), "api")}, {DestinationRef: newRefWithTenancy(pbcatalog.ServiceType, newTestTenancy("gir.zim"), "api")},
@ -88,13 +88,13 @@ func TestMutateUpstreams(t *testing.T) {
func TestValidateUpstreams(t *testing.T) { func TestValidateUpstreams(t *testing.T) {
type testcase struct { type testcase struct {
data *pbmesh.Upstreams data *pbmesh.Destinations
skipMutate bool skipMutate bool
expectErr string expectErr string
} }
run := func(t *testing.T, tc testcase) { run := func(t *testing.T, tc testcase) {
res := resourcetest.Resource(pbmesh.UpstreamsType, "api"). res := resourcetest.Resource(pbmesh.DestinationsType, "api").
WithTenancy(resource.DefaultNamespacedTenancy()). WithTenancy(resource.DefaultNamespacedTenancy()).
WithData(t, tc.data). WithData(t, tc.data).
Build() Build()
@ -103,14 +103,14 @@ func TestValidateUpstreams(t *testing.T) {
require.NoError(t, MutateUpstreams(res)) require.NoError(t, MutateUpstreams(res))
// Verify that mutate didn't actually change the object. // Verify that mutate didn't actually change the object.
got := resourcetest.MustDecode[*pbmesh.Upstreams](t, res) got := resourcetest.MustDecode[*pbmesh.Destinations](t, res)
prototest.AssertDeepEqual(t, tc.data, got.Data) prototest.AssertDeepEqual(t, tc.data, got.Data)
} }
err := ValidateUpstreams(res) err := ValidateUpstreams(res)
// Verify that validate didn't actually change the object. // Verify that validate didn't actually change the object.
got := resourcetest.MustDecode[*pbmesh.Upstreams](t, res) got := resourcetest.MustDecode[*pbmesh.Destinations](t, res)
prototest.AssertDeepEqual(t, tc.data, got.Data) prototest.AssertDeepEqual(t, tc.data, got.Data)
if tc.expectErr == "" { if tc.expectErr == "" {
@ -123,12 +123,12 @@ func TestValidateUpstreams(t *testing.T) {
cases := map[string]testcase{ cases := map[string]testcase{
// emptiness // emptiness
"empty": { "empty": {
data: &pbmesh.Upstreams{}, data: &pbmesh.Destinations{},
}, },
"dest/nil ref": { "dest/nil ref": {
skipMutate: true, skipMutate: true,
data: &pbmesh.Upstreams{ data: &pbmesh.Destinations{
Upstreams: []*pbmesh.Upstream{ Destinations: []*pbmesh.Destination{
{DestinationRef: nil}, {DestinationRef: nil},
}, },
}, },
@ -136,8 +136,8 @@ func TestValidateUpstreams(t *testing.T) {
}, },
"dest/bad type": { "dest/bad type": {
skipMutate: true, skipMutate: true,
data: &pbmesh.Upstreams{ data: &pbmesh.Destinations{
Upstreams: []*pbmesh.Upstream{ Destinations: []*pbmesh.Destination{
{DestinationRef: newRefWithTenancy(pbcatalog.WorkloadType, nil, "api")}, {DestinationRef: newRefWithTenancy(pbcatalog.WorkloadType, nil, "api")},
}, },
}, },
@ -145,8 +145,8 @@ func TestValidateUpstreams(t *testing.T) {
}, },
"dest/nil tenancy": { "dest/nil tenancy": {
skipMutate: true, skipMutate: true,
data: &pbmesh.Upstreams{ data: &pbmesh.Destinations{
Upstreams: []*pbmesh.Upstream{ Destinations: []*pbmesh.Destination{
{DestinationRef: &pbresource.Reference{Type: pbcatalog.ServiceType, Name: "api"}}, {DestinationRef: &pbresource.Reference{Type: pbcatalog.ServiceType, Name: "api"}},
}, },
}, },
@ -154,8 +154,8 @@ func TestValidateUpstreams(t *testing.T) {
}, },
"dest/bad dest tenancy/partition": { "dest/bad dest tenancy/partition": {
skipMutate: true, skipMutate: true,
data: &pbmesh.Upstreams{ data: &pbmesh.Destinations{
Upstreams: []*pbmesh.Upstream{ Destinations: []*pbmesh.Destination{
{DestinationRef: newRefWithTenancy(pbcatalog.ServiceType, newTestTenancy(".bar"), "api")}, {DestinationRef: newRefWithTenancy(pbcatalog.ServiceType, newTestTenancy(".bar"), "api")},
}, },
}, },
@ -163,8 +163,8 @@ func TestValidateUpstreams(t *testing.T) {
}, },
"dest/bad dest tenancy/namespace": { "dest/bad dest tenancy/namespace": {
skipMutate: true, skipMutate: true,
data: &pbmesh.Upstreams{ data: &pbmesh.Destinations{
Upstreams: []*pbmesh.Upstream{ Destinations: []*pbmesh.Destination{
{DestinationRef: newRefWithTenancy(pbcatalog.ServiceType, newTestTenancy("foo"), "api")}, {DestinationRef: newRefWithTenancy(pbcatalog.ServiceType, newTestTenancy("foo"), "api")},
}, },
}, },
@ -172,16 +172,16 @@ func TestValidateUpstreams(t *testing.T) {
}, },
"dest/bad dest tenancy/peer_name": { "dest/bad dest tenancy/peer_name": {
skipMutate: true, skipMutate: true,
data: &pbmesh.Upstreams{ data: &pbmesh.Destinations{
Upstreams: []*pbmesh.Upstream{ Destinations: []*pbmesh.Destination{
{DestinationRef: newRefWithTenancy(pbcatalog.ServiceType, &pbresource.Tenancy{Partition: "foo", Namespace: "bar"}, "api")}, {DestinationRef: newRefWithTenancy(pbcatalog.ServiceType, &pbresource.Tenancy{Partition: "foo", Namespace: "bar"}, "api")},
}, },
}, },
expectErr: `invalid element at index 0 of list "upstreams": invalid "destination_ref" field: invalid "tenancy" field: invalid "peer_name" field: must be set to "local"`, expectErr: `invalid element at index 0 of list "upstreams": invalid "destination_ref" field: invalid "tenancy" field: invalid "peer_name" field: must be set to "local"`,
}, },
"normal": { "normal": {
data: &pbmesh.Upstreams{ data: &pbmesh.Destinations{
Upstreams: []*pbmesh.Upstream{ Destinations: []*pbmesh.Destination{
{DestinationRef: newRefWithTenancy(pbcatalog.ServiceType, newTestTenancy("foo.bar"), "api")}, {DestinationRef: newRefWithTenancy(pbcatalog.ServiceType, newTestTenancy("foo.bar"), "api")},
{DestinationRef: newRefWithTenancy(pbcatalog.ServiceType, newTestTenancy("foo.zim"), "api")}, {DestinationRef: newRefWithTenancy(pbcatalog.ServiceType, newTestTenancy("foo.zim"), "api")},
{DestinationRef: newRefWithTenancy(pbcatalog.ServiceType, newTestTenancy("gir.zim"), "api")}, {DestinationRef: newRefWithTenancy(pbcatalog.ServiceType, newTestTenancy("gir.zim"), "api")},

View File

@ -22,13 +22,13 @@ type CombinedDestinationRef struct {
// SourceProxies are the reference keys of source proxy state template resources. // SourceProxies are the reference keys of source proxy state template resources.
SourceProxies map[resource.ReferenceKey]struct{} SourceProxies map[resource.ReferenceKey]struct{}
// ExplicitDestinationsID is the id of the pbmesh.Upstreams resource. For implicit destinations, // ExplicitDestinationsID is the id of the pbmesh.Destinations resource. For implicit destinations,
// this should be nil. // this should be nil.
ExplicitDestinationsID *pbresource.ID ExplicitDestinationsID *pbresource.ID
} }
type Destination struct { type Destination struct {
Explicit *pbmesh.Upstream Explicit *pbmesh.Destination
Service *types.DecodedService // for the name of this destination Service *types.DecodedService // for the name of this destination
VirtualIPs []string // for the name of this destination VirtualIPs []string // for the name of this destination
ComputedPortRoutes *pbmesh.ComputedPortRoutes // for the name of this destination ComputedPortRoutes *pbmesh.ComputedPortRoutes // for the name of this destination

View File

@ -20,8 +20,8 @@ func TestTypeRegistration(t *testing.T) {
// from types.go a second time here. // from types.go a second time here.
requiredKinds := []string{ requiredKinds := []string{
pbmesh.ProxyConfigurationKind, pbmesh.ProxyConfigurationKind,
pbmesh.UpstreamsKind, pbmesh.DestinationsKind,
pbmesh.UpstreamsConfigurationKind, pbmesh.DestinationsConfigurationKind,
pbmesh.ProxyStateTemplateKind, pbmesh.ProxyStateTemplateKind,
pbmesh.HTTPRouteKind, pbmesh.HTTPRouteKind,
pbmesh.TCPRouteKind, pbmesh.TCPRouteKind,

View File

@ -0,0 +1 @@
{"id":{"name":"api","type":{"group":"mesh","groupVersion":"v2beta1","kind":"Destinations"}},"data":{"@type":"hashicorp.consul.mesh.v2beta1.Destinations","workloads":{"prefixes":["api"]},"destinations":[{"destinationRef":{"name":"db","type":{"group":"catalog","groupVersion":"v2beta1","kind":"Service"}},"destinationPort":"tcp","ipPort":{"port":1234}}]}}

View File

@ -1,5 +1,5 @@
ID { ID {
Type = gvk("mesh.v2beta1.Upstreams") Type = gvk("mesh.v2beta1.Destinations")
Name = "api" Name = "api"
} }
@ -8,7 +8,7 @@ Data {
Prefixes = ["api"] Prefixes = ["api"]
} }
Upstreams = [ Destinations = [
{ {
DestinationRef = { DestinationRef = {
Type = gvk("catalog.v2beta1.Service") Type = gvk("catalog.v2beta1.Service")

View File

@ -1 +1 @@
{"id":{"type":{"group":"mesh","groupVersion":"v2beta1","kind":"Upstreams"}},"data":{"@type":"hashicorp.consul.mesh.v2beta1.Upstreams","workloads":{"prefixes":["api"]},"upstreams":[{"destinationRef":{"name":"db","type":{"group":"catalog","groupVersion":"v2beta1","kind":"Service"}},"destinationPort":"tcp","ipPort":{"port":1234}}]}} {"id":{"type":{"group":"mesh","groupVersion":"v2beta1","kind":"Destinations"}},"data":{"@type":"hashicorp.consul.mesh.v2beta1.Destinations","workloads":{"prefixes":["api"]},"destinations":[{"destinationRef":{"name":"db","type":{"group":"catalog","groupVersion":"v2beta1","kind":"Service"}},"destinationPort":"tcp","ipPort":{"port":1234}}]}}

View File

@ -2,7 +2,7 @@ ID = {
Type = { Type = {
Group = "mesh" Group = "mesh"
GroupVersion = "v2beta1" GroupVersion = "v2beta1"
Kind = "Upstreams" Kind = "Destinations"
} }
} }
@ -11,7 +11,7 @@ Data = {
Prefixes = ["api"] Prefixes = ["api"]
} }
Upstreams = [ Destinations = [
{ {
DestinationRef = { DestinationRef = {
Type = { Type = {

View File

@ -1 +0,0 @@
{"id":{"name":"api","type":{"group":"mesh","groupVersion":"v2beta1","kind":"Upstreams"}},"data":{"@type":"hashicorp.consul.mesh.v2beta1.Upstreams","workloads":{"prefixes":["api"]},"upstreams":[{"destinationRef":{"name":"db","type":{"group":"catalog","groupVersion":"v2beta1","kind":"Service"}},"destinationPort":"tcp","ipPort":{"port":1234}}]}}

View File

@ -1,5 +1,5 @@
// Code generated by protoc-gen-go-binary. DO NOT EDIT. // Code generated by protoc-gen-go-binary. DO NOT EDIT.
// source: pbmesh/v2beta1/upstreams.proto // source: pbmesh/v2beta1/destinations.proto
package meshv2beta1 package meshv2beta1
@ -8,22 +8,22 @@ import (
) )
// MarshalBinary implements encoding.BinaryMarshaler // MarshalBinary implements encoding.BinaryMarshaler
func (msg *Upstreams) MarshalBinary() ([]byte, error) { func (msg *Destinations) MarshalBinary() ([]byte, error) {
return proto.Marshal(msg) return proto.Marshal(msg)
} }
// UnmarshalBinary implements encoding.BinaryUnmarshaler // UnmarshalBinary implements encoding.BinaryUnmarshaler
func (msg *Upstreams) UnmarshalBinary(b []byte) error { func (msg *Destinations) UnmarshalBinary(b []byte) error {
return proto.Unmarshal(b, msg) return proto.Unmarshal(b, msg)
} }
// MarshalBinary implements encoding.BinaryMarshaler // MarshalBinary implements encoding.BinaryMarshaler
func (msg *Upstream) MarshalBinary() ([]byte, error) { func (msg *Destination) MarshalBinary() ([]byte, error) {
return proto.Marshal(msg) return proto.Marshal(msg)
} }
// UnmarshalBinary implements encoding.BinaryUnmarshaler // UnmarshalBinary implements encoding.BinaryUnmarshaler
func (msg *Upstream) UnmarshalBinary(b []byte) error { func (msg *Destination) UnmarshalBinary(b []byte) error {
return proto.Unmarshal(b, msg) return proto.Unmarshal(b, msg)
} }
@ -48,11 +48,11 @@ func (msg *UnixSocketAddress) UnmarshalBinary(b []byte) error {
} }
// MarshalBinary implements encoding.BinaryMarshaler // MarshalBinary implements encoding.BinaryMarshaler
func (msg *PreparedQueryUpstream) MarshalBinary() ([]byte, error) { func (msg *PreparedQueryDestination) MarshalBinary() ([]byte, error) {
return proto.Marshal(msg) return proto.Marshal(msg)
} }
// UnmarshalBinary implements encoding.BinaryUnmarshaler // UnmarshalBinary implements encoding.BinaryUnmarshaler
func (msg *PreparedQueryUpstream) UnmarshalBinary(b []byte) error { func (msg *PreparedQueryDestination) UnmarshalBinary(b []byte) error {
return proto.Unmarshal(b, msg) return proto.Unmarshal(b, msg)
} }

View File

@ -0,0 +1,670 @@
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.30.0
// protoc (unknown)
// source: pbmesh/v2beta1/destinations.proto
package meshv2beta1
import (
v2beta1 "github.com/hashicorp/consul/proto-public/pbcatalog/v2beta1"
pbresource "github.com/hashicorp/consul/proto-public/pbresource"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type Destinations struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Selection of workloads these destinations should apply to.
// These can be prefixes or specific workload names.
Workloads *v2beta1.WorkloadSelector `protobuf:"bytes,1,opt,name=workloads,proto3" json:"workloads,omitempty"`
// destinations is the list of explicit destinations to define for the selected workloads.
Destinations []*Destination `protobuf:"bytes,2,rep,name=destinations,proto3" json:"destinations,omitempty"`
// pq_destinations is the list of prepared query destinations. This field is not supported directly in v2
// and should only be used for migration reasons.
PqDestinations []*PreparedQueryDestination `protobuf:"bytes,3,rep,name=pq_destinations,json=pqDestinations,proto3" json:"pq_destinations,omitempty"`
}
func (x *Destinations) Reset() {
*x = Destinations{}
if protoimpl.UnsafeEnabled {
mi := &file_pbmesh_v2beta1_destinations_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Destinations) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Destinations) ProtoMessage() {}
func (x *Destinations) ProtoReflect() protoreflect.Message {
mi := &file_pbmesh_v2beta1_destinations_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Destinations.ProtoReflect.Descriptor instead.
func (*Destinations) Descriptor() ([]byte, []int) {
return file_pbmesh_v2beta1_destinations_proto_rawDescGZIP(), []int{0}
}
func (x *Destinations) GetWorkloads() *v2beta1.WorkloadSelector {
if x != nil {
return x.Workloads
}
return nil
}
func (x *Destinations) GetDestinations() []*Destination {
if x != nil {
return x.Destinations
}
return nil
}
func (x *Destinations) GetPqDestinations() []*PreparedQueryDestination {
if x != nil {
return x.PqDestinations
}
return nil
}
type Destination struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// destination_ref is the reference to an destination service. This has to be pbcatalog.Service type.
DestinationRef *pbresource.Reference `protobuf:"bytes,1,opt,name=destination_ref,json=destinationRef,proto3" json:"destination_ref,omitempty"`
// destination_port is the port name of the destination service. This should be the name
// of the service's target port.
DestinationPort string `protobuf:"bytes,2,opt,name=destination_port,json=destinationPort,proto3" json:"destination_port,omitempty"`
// datacenter is the datacenter for where this destination service lives.
Datacenter string `protobuf:"bytes,3,opt,name=datacenter,proto3" json:"datacenter,omitempty"`
// listen_addr is the address where Envoy will listen for requests to this destination.
// It can provided either as an ip:port or as a Unix domain socket.
//
// Types that are assignable to ListenAddr:
//
// *Destination_IpPort
// *Destination_Unix
ListenAddr isDestination_ListenAddr `protobuf_oneof:"listen_addr"`
}
func (x *Destination) Reset() {
*x = Destination{}
if protoimpl.UnsafeEnabled {
mi := &file_pbmesh_v2beta1_destinations_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Destination) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Destination) ProtoMessage() {}
func (x *Destination) ProtoReflect() protoreflect.Message {
mi := &file_pbmesh_v2beta1_destinations_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Destination.ProtoReflect.Descriptor instead.
func (*Destination) Descriptor() ([]byte, []int) {
return file_pbmesh_v2beta1_destinations_proto_rawDescGZIP(), []int{1}
}
func (x *Destination) GetDestinationRef() *pbresource.Reference {
if x != nil {
return x.DestinationRef
}
return nil
}
func (x *Destination) GetDestinationPort() string {
if x != nil {
return x.DestinationPort
}
return ""
}
func (x *Destination) GetDatacenter() string {
if x != nil {
return x.Datacenter
}
return ""
}
func (m *Destination) GetListenAddr() isDestination_ListenAddr {
if m != nil {
return m.ListenAddr
}
return nil
}
func (x *Destination) GetIpPort() *IPPortAddress {
if x, ok := x.GetListenAddr().(*Destination_IpPort); ok {
return x.IpPort
}
return nil
}
func (x *Destination) GetUnix() *UnixSocketAddress {
if x, ok := x.GetListenAddr().(*Destination_Unix); ok {
return x.Unix
}
return nil
}
type isDestination_ListenAddr interface {
isDestination_ListenAddr()
}
type Destination_IpPort struct {
IpPort *IPPortAddress `protobuf:"bytes,4,opt,name=ip_port,json=ipPort,proto3,oneof"`
}
type Destination_Unix struct {
Unix *UnixSocketAddress `protobuf:"bytes,5,opt,name=unix,proto3,oneof"`
}
func (*Destination_IpPort) isDestination_ListenAddr() {}
func (*Destination_Unix) isDestination_ListenAddr() {}
type IPPortAddress struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// ip is an IPv4 or an IPv6 address.
Ip string `protobuf:"bytes,1,opt,name=ip,proto3" json:"ip,omitempty"`
// port is the port number.
Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
}
func (x *IPPortAddress) Reset() {
*x = IPPortAddress{}
if protoimpl.UnsafeEnabled {
mi := &file_pbmesh_v2beta1_destinations_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *IPPortAddress) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*IPPortAddress) ProtoMessage() {}
func (x *IPPortAddress) ProtoReflect() protoreflect.Message {
mi := &file_pbmesh_v2beta1_destinations_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use IPPortAddress.ProtoReflect.Descriptor instead.
func (*IPPortAddress) Descriptor() ([]byte, []int) {
return file_pbmesh_v2beta1_destinations_proto_rawDescGZIP(), []int{2}
}
func (x *IPPortAddress) GetIp() string {
if x != nil {
return x.Ip
}
return ""
}
func (x *IPPortAddress) GetPort() uint32 {
if x != nil {
return x.Port
}
return 0
}
type UnixSocketAddress struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// path is the file system path at which to bind a Unix domain socket listener.
Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
// mode is the Unix file mode for the socket file. It should be provided
// in the numeric notation, for example, "0600".
Mode string `protobuf:"bytes,2,opt,name=mode,proto3" json:"mode,omitempty"`
}
func (x *UnixSocketAddress) Reset() {
*x = UnixSocketAddress{}
if protoimpl.UnsafeEnabled {
mi := &file_pbmesh_v2beta1_destinations_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UnixSocketAddress) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UnixSocketAddress) ProtoMessage() {}
func (x *UnixSocketAddress) ProtoReflect() protoreflect.Message {
mi := &file_pbmesh_v2beta1_destinations_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UnixSocketAddress.ProtoReflect.Descriptor instead.
func (*UnixSocketAddress) Descriptor() ([]byte, []int) {
return file_pbmesh_v2beta1_destinations_proto_rawDescGZIP(), []int{3}
}
func (x *UnixSocketAddress) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
func (x *UnixSocketAddress) GetMode() string {
if x != nil {
return x.Mode
}
return ""
}
type PreparedQueryDestination struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// name is the name of the prepared query to use as an destination.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// datacenter is the datacenter for where this destination service lives.
Datacenter string `protobuf:"bytes,2,opt,name=datacenter,proto3" json:"datacenter,omitempty"`
// listen_addr is the address where Envoy will listen for requests to this destination.
// It can provided either as an ip:port or as a Unix domain socket.
//
// Types that are assignable to ListenAddr:
//
// *PreparedQueryDestination_Tcp
// *PreparedQueryDestination_Unix
ListenAddr isPreparedQueryDestination_ListenAddr `protobuf_oneof:"listen_addr"`
DestinationConfig *DestinationConfiguration `protobuf:"bytes,6,opt,name=destination_config,json=destinationConfig,proto3" json:"destination_config,omitempty"`
}
func (x *PreparedQueryDestination) Reset() {
*x = PreparedQueryDestination{}
if protoimpl.UnsafeEnabled {
mi := &file_pbmesh_v2beta1_destinations_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PreparedQueryDestination) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PreparedQueryDestination) ProtoMessage() {}
func (x *PreparedQueryDestination) ProtoReflect() protoreflect.Message {
mi := &file_pbmesh_v2beta1_destinations_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PreparedQueryDestination.ProtoReflect.Descriptor instead.
func (*PreparedQueryDestination) Descriptor() ([]byte, []int) {
return file_pbmesh_v2beta1_destinations_proto_rawDescGZIP(), []int{4}
}
func (x *PreparedQueryDestination) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *PreparedQueryDestination) GetDatacenter() string {
if x != nil {
return x.Datacenter
}
return ""
}
func (m *PreparedQueryDestination) GetListenAddr() isPreparedQueryDestination_ListenAddr {
if m != nil {
return m.ListenAddr
}
return nil
}
func (x *PreparedQueryDestination) GetTcp() *IPPortAddress {
if x, ok := x.GetListenAddr().(*PreparedQueryDestination_Tcp); ok {
return x.Tcp
}
return nil
}
func (x *PreparedQueryDestination) GetUnix() *UnixSocketAddress {
if x, ok := x.GetListenAddr().(*PreparedQueryDestination_Unix); ok {
return x.Unix
}
return nil
}
func (x *PreparedQueryDestination) GetDestinationConfig() *DestinationConfiguration {
if x != nil {
return x.DestinationConfig
}
return nil
}
type isPreparedQueryDestination_ListenAddr interface {
isPreparedQueryDestination_ListenAddr()
}
type PreparedQueryDestination_Tcp struct {
Tcp *IPPortAddress `protobuf:"bytes,4,opt,name=tcp,proto3,oneof"`
}
type PreparedQueryDestination_Unix struct {
Unix *UnixSocketAddress `protobuf:"bytes,5,opt,name=unix,proto3,oneof"`
}
func (*PreparedQueryDestination_Tcp) isPreparedQueryDestination_ListenAddr() {}
func (*PreparedQueryDestination_Unix) isPreparedQueryDestination_ListenAddr() {}
var File_pbmesh_v2beta1_destinations_proto protoreflect.FileDescriptor
var file_pbmesh_v2beta1_destinations_proto_rawDesc = []byte{
0x0a, 0x21, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31,
0x2f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x12, 0x1d, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63,
0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74,
0x61, 0x31, 0x1a, 0x20, 0x70, 0x62, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x2f, 0x76, 0x32,
0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2f, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x32, 0x62,
0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x70, 0x62, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
0x65, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x70, 0x62, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2f,
0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9a,
0x02, 0x0a, 0x0c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12,
0x50, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x32, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63,
0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x2e, 0x76, 0x32,
0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65,
0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64,
0x73, 0x12, 0x4e, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63,
0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e,
0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x73, 0x12, 0x60, 0x0a, 0x0f, 0x70, 0x71, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x68, 0x61, 0x73,
0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65,
0x73, 0x68, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x61,
0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x70, 0x71, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x73, 0x3a, 0x06, 0xa2, 0x93, 0x04, 0x02, 0x08, 0x03, 0x22, 0xc7, 0x02, 0x0a, 0x0b,
0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4d, 0x0a, 0x0f, 0x64,
0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70,
0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0e, 0x64, 0x65, 0x73, 0x74,
0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65,
0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x63, 0x65, 0x6e,
0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x63,
0x65, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x07, 0x69, 0x70, 0x5f, 0x70, 0x6f, 0x72, 0x74,
0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f,
0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76,
0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x50, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x64, 0x64,
0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x06, 0x69, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x46,
0x0a, 0x04, 0x75, 0x6e, 0x69, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x68,
0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e,
0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69,
0x78, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00,
0x52, 0x04, 0x75, 0x6e, 0x69, 0x78, 0x42, 0x0d, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e,
0x5f, 0x61, 0x64, 0x64, 0x72, 0x22, 0x33, 0x0a, 0x0d, 0x49, 0x50, 0x50, 0x6f, 0x72, 0x74, 0x41,
0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02,
0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x3b, 0x0a, 0x11, 0x55, 0x6e,
0x69, 0x78, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12,
0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70,
0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0xcf, 0x02, 0x0a, 0x18, 0x50, 0x72, 0x65, 0x70,
0x61, 0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61,
0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61,
0x74, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x40, 0x0a, 0x03, 0x74, 0x63, 0x70, 0x18,
0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72,
0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x32,
0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x50, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x64, 0x64, 0x72,
0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x03, 0x74, 0x63, 0x70, 0x12, 0x46, 0x0a, 0x04, 0x75, 0x6e,
0x69, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69,
0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68,
0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x78, 0x53, 0x6f, 0x63,
0x6b, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x04, 0x75, 0x6e,
0x69, 0x78, 0x12, 0x66, 0x0a, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37,
0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75,
0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44,
0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x0d, 0x0a, 0x0b, 0x6c, 0x69,
0x73, 0x74, 0x65, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x42, 0x92, 0x02, 0x0a, 0x21, 0x63, 0x6f,
0x6d, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73,
0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42,
0x11, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x72, 0x6f,
0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
0x2f, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75,
0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2f, 0x70,
0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x6d, 0x65,
0x73, 0x68, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x48, 0x43, 0x4d, 0xaa,
0x02, 0x1d, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x73,
0x75, 0x6c, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x2e, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca,
0x02, 0x1d, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x5c, 0x43, 0x6f, 0x6e, 0x73,
0x75, 0x6c, 0x5c, 0x4d, 0x65, 0x73, 0x68, 0x5c, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2,
0x02, 0x29, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x5c, 0x43, 0x6f, 0x6e, 0x73,
0x75, 0x6c, 0x5c, 0x4d, 0x65, 0x73, 0x68, 0x5c, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c,
0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x20, 0x48, 0x61,
0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x3a, 0x3a, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x3a,
0x3a, 0x4d, 0x65, 0x73, 0x68, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_pbmesh_v2beta1_destinations_proto_rawDescOnce sync.Once
file_pbmesh_v2beta1_destinations_proto_rawDescData = file_pbmesh_v2beta1_destinations_proto_rawDesc
)
func file_pbmesh_v2beta1_destinations_proto_rawDescGZIP() []byte {
file_pbmesh_v2beta1_destinations_proto_rawDescOnce.Do(func() {
file_pbmesh_v2beta1_destinations_proto_rawDescData = protoimpl.X.CompressGZIP(file_pbmesh_v2beta1_destinations_proto_rawDescData)
})
return file_pbmesh_v2beta1_destinations_proto_rawDescData
}
var file_pbmesh_v2beta1_destinations_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
var file_pbmesh_v2beta1_destinations_proto_goTypes = []interface{}{
(*Destinations)(nil), // 0: hashicorp.consul.mesh.v2beta1.Destinations
(*Destination)(nil), // 1: hashicorp.consul.mesh.v2beta1.Destination
(*IPPortAddress)(nil), // 2: hashicorp.consul.mesh.v2beta1.IPPortAddress
(*UnixSocketAddress)(nil), // 3: hashicorp.consul.mesh.v2beta1.UnixSocketAddress
(*PreparedQueryDestination)(nil), // 4: hashicorp.consul.mesh.v2beta1.PreparedQueryDestination
(*v2beta1.WorkloadSelector)(nil), // 5: hashicorp.consul.catalog.v2beta1.WorkloadSelector
(*pbresource.Reference)(nil), // 6: hashicorp.consul.resource.Reference
(*DestinationConfiguration)(nil), // 7: hashicorp.consul.mesh.v2beta1.DestinationConfiguration
}
var file_pbmesh_v2beta1_destinations_proto_depIdxs = []int32{
5, // 0: hashicorp.consul.mesh.v2beta1.Destinations.workloads:type_name -> hashicorp.consul.catalog.v2beta1.WorkloadSelector
1, // 1: hashicorp.consul.mesh.v2beta1.Destinations.destinations:type_name -> hashicorp.consul.mesh.v2beta1.Destination
4, // 2: hashicorp.consul.mesh.v2beta1.Destinations.pq_destinations:type_name -> hashicorp.consul.mesh.v2beta1.PreparedQueryDestination
6, // 3: hashicorp.consul.mesh.v2beta1.Destination.destination_ref:type_name -> hashicorp.consul.resource.Reference
2, // 4: hashicorp.consul.mesh.v2beta1.Destination.ip_port:type_name -> hashicorp.consul.mesh.v2beta1.IPPortAddress
3, // 5: hashicorp.consul.mesh.v2beta1.Destination.unix:type_name -> hashicorp.consul.mesh.v2beta1.UnixSocketAddress
2, // 6: hashicorp.consul.mesh.v2beta1.PreparedQueryDestination.tcp:type_name -> hashicorp.consul.mesh.v2beta1.IPPortAddress
3, // 7: hashicorp.consul.mesh.v2beta1.PreparedQueryDestination.unix:type_name -> hashicorp.consul.mesh.v2beta1.UnixSocketAddress
7, // 8: hashicorp.consul.mesh.v2beta1.PreparedQueryDestination.destination_config:type_name -> hashicorp.consul.mesh.v2beta1.DestinationConfiguration
9, // [9:9] is the sub-list for method output_type
9, // [9:9] is the sub-list for method input_type
9, // [9:9] is the sub-list for extension type_name
9, // [9:9] is the sub-list for extension extendee
0, // [0:9] is the sub-list for field type_name
}
func init() { file_pbmesh_v2beta1_destinations_proto_init() }
func file_pbmesh_v2beta1_destinations_proto_init() {
if File_pbmesh_v2beta1_destinations_proto != nil {
return
}
file_pbmesh_v2beta1_destinations_configuration_proto_init()
if !protoimpl.UnsafeEnabled {
file_pbmesh_v2beta1_destinations_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Destinations); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_pbmesh_v2beta1_destinations_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Destination); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_pbmesh_v2beta1_destinations_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*IPPortAddress); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_pbmesh_v2beta1_destinations_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UnixSocketAddress); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_pbmesh_v2beta1_destinations_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PreparedQueryDestination); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
file_pbmesh_v2beta1_destinations_proto_msgTypes[1].OneofWrappers = []interface{}{
(*Destination_IpPort)(nil),
(*Destination_Unix)(nil),
}
file_pbmesh_v2beta1_destinations_proto_msgTypes[4].OneofWrappers = []interface{}{
(*PreparedQueryDestination_Tcp)(nil),
(*PreparedQueryDestination_Unix)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_pbmesh_v2beta1_destinations_proto_rawDesc,
NumEnums: 0,
NumMessages: 5,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_pbmesh_v2beta1_destinations_proto_goTypes,
DependencyIndexes: file_pbmesh_v2beta1_destinations_proto_depIdxs,
MessageInfos: file_pbmesh_v2beta1_destinations_proto_msgTypes,
}.Build()
File_pbmesh_v2beta1_destinations_proto = out.File
file_pbmesh_v2beta1_destinations_proto_rawDesc = nil
file_pbmesh_v2beta1_destinations_proto_goTypes = nil
file_pbmesh_v2beta1_destinations_proto_depIdxs = nil
}

View File

@ -6,37 +6,37 @@ syntax = "proto3";
package hashicorp.consul.mesh.v2beta1; package hashicorp.consul.mesh.v2beta1;
import "pbcatalog/v2beta1/selector.proto"; import "pbcatalog/v2beta1/selector.proto";
import "pbmesh/v2beta1/upstreams_configuration.proto"; import "pbmesh/v2beta1/destinations_configuration.proto";
import "pbresource/annotations.proto"; import "pbresource/annotations.proto";
import "pbresource/resource.proto"; import "pbresource/resource.proto";
message Upstreams { message Destinations {
option (hashicorp.consul.resource.spec) = {scope: SCOPE_NAMESPACE}; option (hashicorp.consul.resource.spec) = {scope: SCOPE_NAMESPACE};
// Selection of workloads these upstreams should apply to. // Selection of workloads these destinations should apply to.
// These can be prefixes or specific workload names. // These can be prefixes or specific workload names.
hashicorp.consul.catalog.v2beta1.WorkloadSelector workloads = 1; hashicorp.consul.catalog.v2beta1.WorkloadSelector workloads = 1;
// upstreams is the list of explicit upstreams to define for the selected workloads. // destinations is the list of explicit destinations to define for the selected workloads.
repeated Upstream upstreams = 2; repeated Destination destinations = 2;
// pq_upstreams is the list of prepared query upstreams. This field is not supported directly in v2 // pq_destinations is the list of prepared query destinations. This field is not supported directly in v2
// and should only be used for migration reasons. // and should only be used for migration reasons.
repeated PreparedQueryUpstream pq_upstreams = 3; repeated PreparedQueryDestination pq_destinations = 3;
} }
message Upstream { message Destination {
// destination_ref is the reference to an upstream service. This has to be pbcatalog.Service type. // destination_ref is the reference to an destination service. This has to be pbcatalog.Service type.
hashicorp.consul.resource.Reference destination_ref = 1; hashicorp.consul.resource.Reference destination_ref = 1;
// destination_port is the port name of the upstream service. This should be the name // destination_port is the port name of the destination service. This should be the name
// of the service's target port. // of the service's target port.
string destination_port = 2; string destination_port = 2;
// datacenter is the datacenter for where this upstream service lives. // datacenter is the datacenter for where this destination service lives.
string datacenter = 3; string datacenter = 3;
// listen_addr is the address where Envoy will listen for requests to this upstream. // listen_addr is the address where Envoy will listen for requests to this destination.
// It can provided either as an ip:port or as a Unix domain socket. // It can provided either as an ip:port or as a Unix domain socket.
oneof listen_addr { oneof listen_addr {
IPPortAddress ip_port = 4; IPPortAddress ip_port = 4;
@ -61,19 +61,19 @@ message UnixSocketAddress {
string mode = 2; string mode = 2;
} }
message PreparedQueryUpstream { message PreparedQueryDestination {
// name is the name of the prepared query to use as an upstream. // name is the name of the prepared query to use as an destination.
string name = 1; string name = 1;
// datacenter is the datacenter for where this upstream service lives. // datacenter is the datacenter for where this destination service lives.
string datacenter = 2; string datacenter = 2;
// listen_addr is the address where Envoy will listen for requests to this upstream. // listen_addr is the address where Envoy will listen for requests to this destination.
// It can provided either as an ip:port or as a Unix domain socket. // It can provided either as an ip:port or as a Unix domain socket.
oneof listen_addr { oneof listen_addr {
IPPortAddress tcp = 4; IPPortAddress tcp = 4;
UnixSocketAddress unix = 5; UnixSocketAddress unix = 5;
} }
UpstreamConfig upstream_config = 6; DestinationConfiguration destination_config = 6;
} }

View File

@ -1,5 +1,5 @@
// Code generated by protoc-gen-go-binary. DO NOT EDIT. // Code generated by protoc-gen-go-binary. DO NOT EDIT.
// source: pbmesh/v2beta1/upstreams_configuration.proto // source: pbmesh/v2beta1/destinations_configuration.proto
package meshv2beta1 package meshv2beta1
@ -8,42 +8,42 @@ import (
) )
// MarshalBinary implements encoding.BinaryMarshaler // MarshalBinary implements encoding.BinaryMarshaler
func (msg *UpstreamsConfiguration) MarshalBinary() ([]byte, error) { func (msg *DestinationsConfiguration) MarshalBinary() ([]byte, error) {
return proto.Marshal(msg) return proto.Marshal(msg)
} }
// UnmarshalBinary implements encoding.BinaryUnmarshaler // UnmarshalBinary implements encoding.BinaryUnmarshaler
func (msg *UpstreamsConfiguration) UnmarshalBinary(b []byte) error { func (msg *DestinationsConfiguration) UnmarshalBinary(b []byte) error {
return proto.Unmarshal(b, msg) return proto.Unmarshal(b, msg)
} }
// MarshalBinary implements encoding.BinaryMarshaler // MarshalBinary implements encoding.BinaryMarshaler
func (msg *UpstreamConfigOverrides) MarshalBinary() ([]byte, error) { func (msg *DestinationConfigOverrides) MarshalBinary() ([]byte, error) {
return proto.Marshal(msg) return proto.Marshal(msg)
} }
// UnmarshalBinary implements encoding.BinaryUnmarshaler // UnmarshalBinary implements encoding.BinaryUnmarshaler
func (msg *UpstreamConfigOverrides) UnmarshalBinary(b []byte) error { func (msg *DestinationConfigOverrides) UnmarshalBinary(b []byte) error {
return proto.Unmarshal(b, msg) return proto.Unmarshal(b, msg)
} }
// MarshalBinary implements encoding.BinaryMarshaler // MarshalBinary implements encoding.BinaryMarshaler
func (msg *UpstreamConfig) MarshalBinary() ([]byte, error) { func (msg *DestinationConfiguration) MarshalBinary() ([]byte, error) {
return proto.Marshal(msg) return proto.Marshal(msg)
} }
// UnmarshalBinary implements encoding.BinaryUnmarshaler // UnmarshalBinary implements encoding.BinaryUnmarshaler
func (msg *UpstreamConfig) UnmarshalBinary(b []byte) error { func (msg *DestinationConfiguration) UnmarshalBinary(b []byte) error {
return proto.Unmarshal(b, msg) return proto.Unmarshal(b, msg)
} }
// MarshalBinary implements encoding.BinaryMarshaler // MarshalBinary implements encoding.BinaryMarshaler
func (msg *UpstreamLimits) MarshalBinary() ([]byte, error) { func (msg *DestinationLimits) MarshalBinary() ([]byte, error) {
return proto.Marshal(msg) return proto.Marshal(msg)
} }
// UnmarshalBinary implements encoding.BinaryUnmarshaler // UnmarshalBinary implements encoding.BinaryUnmarshaler
func (msg *UpstreamLimits) UnmarshalBinary(b []byte) error { func (msg *DestinationLimits) UnmarshalBinary(b []byte) error {
return proto.Unmarshal(b, msg) return proto.Unmarshal(b, msg)
} }

View File

@ -0,0 +1,699 @@
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.30.0
// protoc (unknown)
// source: pbmesh/v2beta1/destinations_configuration.proto
package meshv2beta1
import (
v2beta1 "github.com/hashicorp/consul/proto-public/pbcatalog/v2beta1"
pbresource "github.com/hashicorp/consul/proto-public/pbresource"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
durationpb "google.golang.org/protobuf/types/known/durationpb"
wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type DestinationsConfiguration struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Selection of workloads these destinations should apply to.
// These can be prefixes or specific workload names.
Workloads *v2beta1.WorkloadSelector `protobuf:"bytes,1,opt,name=workloads,proto3" json:"workloads,omitempty"`
// default_config applies to all destinations for the workloads selected by this resource.
DefaultConfig *DestinationConfiguration `protobuf:"bytes,2,opt,name=default_config,json=defaultConfig,proto3" json:"default_config,omitempty"`
// config_overrides provides per-destination or per-destination-port config overrides.
ConfigOverrides []*DestinationConfigOverrides `protobuf:"bytes,3,rep,name=config_overrides,json=configOverrides,proto3" json:"config_overrides,omitempty"`
}
func (x *DestinationsConfiguration) Reset() {
*x = DestinationsConfiguration{}
if protoimpl.UnsafeEnabled {
mi := &file_pbmesh_v2beta1_destinations_configuration_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DestinationsConfiguration) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DestinationsConfiguration) ProtoMessage() {}
func (x *DestinationsConfiguration) ProtoReflect() protoreflect.Message {
mi := &file_pbmesh_v2beta1_destinations_configuration_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DestinationsConfiguration.ProtoReflect.Descriptor instead.
func (*DestinationsConfiguration) Descriptor() ([]byte, []int) {
return file_pbmesh_v2beta1_destinations_configuration_proto_rawDescGZIP(), []int{0}
}
func (x *DestinationsConfiguration) GetWorkloads() *v2beta1.WorkloadSelector {
if x != nil {
return x.Workloads
}
return nil
}
func (x *DestinationsConfiguration) GetDefaultConfig() *DestinationConfiguration {
if x != nil {
return x.DefaultConfig
}
return nil
}
func (x *DestinationsConfiguration) GetConfigOverrides() []*DestinationConfigOverrides {
if x != nil {
return x.ConfigOverrides
}
return nil
}
// UpstreamConfigOverrides allow to override destination configuration per destination_ref/port/datacenter.
// In that sense, those three fields (destination_ref, destination_port and datacenter) are treated
// sort of like map keys and config is a like a map value for that key.
type DestinationConfigOverrides struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// destination_ref is the reference to an destination service that this configuration applies to.
// This has to be pbcatalog.Service type.
DestinationRef *pbresource.Reference `protobuf:"bytes,1,opt,name=destination_ref,json=destinationRef,proto3" json:"destination_ref,omitempty"`
// destination_port is the port name of the destination service. This should be the name
// of the service's target port. If not provided, this configuration will apply to all ports of an destination.
DestinationPort string `protobuf:"bytes,2,opt,name=destination_port,json=destinationPort,proto3" json:"destination_port,omitempty"`
// datacenter is the datacenter for where this destination service lives.
Datacenter string `protobuf:"bytes,3,opt,name=datacenter,proto3" json:"datacenter,omitempty"`
// config is the configuration that should apply to this destination.
Config *DestinationConfiguration `protobuf:"bytes,4,opt,name=config,proto3" json:"config,omitempty"`
}
func (x *DestinationConfigOverrides) Reset() {
*x = DestinationConfigOverrides{}
if protoimpl.UnsafeEnabled {
mi := &file_pbmesh_v2beta1_destinations_configuration_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DestinationConfigOverrides) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DestinationConfigOverrides) ProtoMessage() {}
func (x *DestinationConfigOverrides) ProtoReflect() protoreflect.Message {
mi := &file_pbmesh_v2beta1_destinations_configuration_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DestinationConfigOverrides.ProtoReflect.Descriptor instead.
func (*DestinationConfigOverrides) Descriptor() ([]byte, []int) {
return file_pbmesh_v2beta1_destinations_configuration_proto_rawDescGZIP(), []int{1}
}
func (x *DestinationConfigOverrides) GetDestinationRef() *pbresource.Reference {
if x != nil {
return x.DestinationRef
}
return nil
}
func (x *DestinationConfigOverrides) GetDestinationPort() string {
if x != nil {
return x.DestinationPort
}
return ""
}
func (x *DestinationConfigOverrides) GetDatacenter() string {
if x != nil {
return x.Datacenter
}
return ""
}
func (x *DestinationConfigOverrides) GetConfig() *DestinationConfiguration {
if x != nil {
return x.Config
}
return nil
}
type DestinationConfiguration struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// protocol overrides destination's port protocol. If no port for an destination is specified
// or if used in the default configuration, this protocol will be used for all ports
// or for all ports of all destinations respectively.
Protocol v2beta1.Protocol `protobuf:"varint,1,opt,name=protocol,proto3,enum=hashicorp.consul.catalog.v2beta1.Protocol" json:"protocol,omitempty"`
// connect_timeout is the timeout used when making a new
// connection to this destination. Defaults to 5 seconds if not set.
ConnectTimeout *durationpb.Duration `protobuf:"bytes,2,opt,name=connect_timeout,json=connectTimeout,proto3" json:"connect_timeout,omitempty"`
// limits are the set of limits that are applied to the proxy for a specific destination.
Limits *DestinationLimits `protobuf:"bytes,3,opt,name=limits,proto3" json:"limits,omitempty"`
// passive_health_check configuration determines how destination proxy instances will
// be monitored for removal from the load balancing pool.
PassiveHealthCheck *PassiveHealthCheck `protobuf:"bytes,4,opt,name=passive_health_check,json=passiveHealthCheck,proto3" json:"passive_health_check,omitempty"`
// balance_outbound_connections indicates how the proxy should attempt to distribute
// connections across worker threads.
BalanceOutboundConnections BalanceConnections `protobuf:"varint,5,opt,name=balance_outbound_connections,json=balanceOutboundConnections,proto3,enum=hashicorp.consul.mesh.v2beta1.BalanceConnections" json:"balance_outbound_connections,omitempty"`
// MeshGatewayMode is the Mesh Gateway routing mode.
MeshGatewayMode MeshGatewayMode `protobuf:"varint,6,opt,name=mesh_gateway_mode,json=meshGatewayMode,proto3,enum=hashicorp.consul.mesh.v2beta1.MeshGatewayMode" json:"mesh_gateway_mode,omitempty"`
}
func (x *DestinationConfiguration) Reset() {
*x = DestinationConfiguration{}
if protoimpl.UnsafeEnabled {
mi := &file_pbmesh_v2beta1_destinations_configuration_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DestinationConfiguration) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DestinationConfiguration) ProtoMessage() {}
func (x *DestinationConfiguration) ProtoReflect() protoreflect.Message {
mi := &file_pbmesh_v2beta1_destinations_configuration_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DestinationConfiguration.ProtoReflect.Descriptor instead.
func (*DestinationConfiguration) Descriptor() ([]byte, []int) {
return file_pbmesh_v2beta1_destinations_configuration_proto_rawDescGZIP(), []int{2}
}
func (x *DestinationConfiguration) GetProtocol() v2beta1.Protocol {
if x != nil {
return x.Protocol
}
return v2beta1.Protocol(0)
}
func (x *DestinationConfiguration) GetConnectTimeout() *durationpb.Duration {
if x != nil {
return x.ConnectTimeout
}
return nil
}
func (x *DestinationConfiguration) GetLimits() *DestinationLimits {
if x != nil {
return x.Limits
}
return nil
}
func (x *DestinationConfiguration) GetPassiveHealthCheck() *PassiveHealthCheck {
if x != nil {
return x.PassiveHealthCheck
}
return nil
}
func (x *DestinationConfiguration) GetBalanceOutboundConnections() BalanceConnections {
if x != nil {
return x.BalanceOutboundConnections
}
return BalanceConnections_BALANCE_CONNECTIONS_DEFAULT
}
func (x *DestinationConfiguration) GetMeshGatewayMode() MeshGatewayMode {
if x != nil {
return x.MeshGatewayMode
}
return MeshGatewayMode_MESH_GATEWAY_MODE_UNSPECIFIED
}
// UpstreamLimits describes the limits that are associated with a specific
// destination of a service instance.
type DestinationLimits struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// max_connections is the maximum number of connections the local proxy can
// make to the destination service.
MaxConnections *wrapperspb.UInt32Value `protobuf:"bytes,1,opt,name=max_connections,json=maxConnections,proto3" json:"max_connections,omitempty"`
// max_pending_requests is the maximum number of requests that will be queued
// waiting for an available connection. This is mostly applicable to HTTP/1.1
// clusters since all HTTP/2 requests are streamed over a single
// connection.
MaxPendingRequests *wrapperspb.UInt32Value `protobuf:"bytes,2,opt,name=max_pending_requests,json=maxPendingRequests,proto3" json:"max_pending_requests,omitempty"`
// max_concurrent_requests is the maximum number of in-flight requests that will be allowed
// to the destination cluster at a point in time. This is mostly applicable to HTTP/2
// clusters since all HTTP/1.1 requests are limited by MaxConnections.
MaxConcurrentRequests *wrapperspb.UInt32Value `protobuf:"bytes,3,opt,name=max_concurrent_requests,json=maxConcurrentRequests,proto3" json:"max_concurrent_requests,omitempty"`
}
func (x *DestinationLimits) Reset() {
*x = DestinationLimits{}
if protoimpl.UnsafeEnabled {
mi := &file_pbmesh_v2beta1_destinations_configuration_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DestinationLimits) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DestinationLimits) ProtoMessage() {}
func (x *DestinationLimits) ProtoReflect() protoreflect.Message {
mi := &file_pbmesh_v2beta1_destinations_configuration_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DestinationLimits.ProtoReflect.Descriptor instead.
func (*DestinationLimits) Descriptor() ([]byte, []int) {
return file_pbmesh_v2beta1_destinations_configuration_proto_rawDescGZIP(), []int{3}
}
func (x *DestinationLimits) GetMaxConnections() *wrapperspb.UInt32Value {
if x != nil {
return x.MaxConnections
}
return nil
}
func (x *DestinationLimits) GetMaxPendingRequests() *wrapperspb.UInt32Value {
if x != nil {
return x.MaxPendingRequests
}
return nil
}
func (x *DestinationLimits) GetMaxConcurrentRequests() *wrapperspb.UInt32Value {
if x != nil {
return x.MaxConcurrentRequests
}
return nil
}
type PassiveHealthCheck struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// interval between health check analysis sweeps. Each sweep may remove
// hosts or return hosts to the pool.
Interval *durationpb.Duration `protobuf:"bytes,1,opt,name=interval,proto3" json:"interval,omitempty"`
// max_failures is the count of consecutive failures that results in a host
// being removed from the pool.
MaxFailures uint32 `protobuf:"varint,2,opt,name=max_failures,json=maxFailures,proto3" json:"max_failures,omitempty"`
// enforcing_consecutive_5xx is the % chance that a host will be actually ejected
// when an outlier status is detected through consecutive 5xx.
// This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100.
EnforcingConsecutive_5Xx uint32 `protobuf:"varint,3,opt,name=enforcing_consecutive_5xx,json=enforcingConsecutive5xx,proto3" json:"enforcing_consecutive_5xx,omitempty"`
}
func (x *PassiveHealthCheck) Reset() {
*x = PassiveHealthCheck{}
if protoimpl.UnsafeEnabled {
mi := &file_pbmesh_v2beta1_destinations_configuration_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PassiveHealthCheck) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PassiveHealthCheck) ProtoMessage() {}
func (x *PassiveHealthCheck) ProtoReflect() protoreflect.Message {
mi := &file_pbmesh_v2beta1_destinations_configuration_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PassiveHealthCheck.ProtoReflect.Descriptor instead.
func (*PassiveHealthCheck) Descriptor() ([]byte, []int) {
return file_pbmesh_v2beta1_destinations_configuration_proto_rawDescGZIP(), []int{4}
}
func (x *PassiveHealthCheck) GetInterval() *durationpb.Duration {
if x != nil {
return x.Interval
}
return nil
}
func (x *PassiveHealthCheck) GetMaxFailures() uint32 {
if x != nil {
return x.MaxFailures
}
return 0
}
func (x *PassiveHealthCheck) GetEnforcingConsecutive_5Xx() uint32 {
if x != nil {
return x.EnforcingConsecutive_5Xx
}
return 0
}
var File_pbmesh_v2beta1_destinations_configuration_proto protoreflect.FileDescriptor
var file_pbmesh_v2beta1_destinations_configuration_proto_rawDesc = []byte{
0x0a, 0x2f, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31,
0x2f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f,
0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x12, 0x1d, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e,
0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31,
0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x1a, 0x20, 0x70, 0x62, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x2f, 0x76, 0x32, 0x62, 0x65,
0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x1a, 0x20, 0x70, 0x62, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x2f, 0x76, 0x32,
0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x32, 0x62,
0x65, 0x74, 0x61, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x32,
0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x70, 0x62, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2f,
0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x1a, 0x19, 0x70, 0x62, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2f, 0x72, 0x65,
0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbb, 0x02, 0x0a,
0x19, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x6f, 0x6e,
0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x09, 0x77, 0x6f,
0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e,
0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c,
0x2e, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31,
0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f,
0x72, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x12, 0x5e, 0x0a, 0x0e,
0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70,
0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x32, 0x62,
0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x64,
0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x64, 0x0a, 0x10,
0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73,
0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f,
0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76,
0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65,
0x73, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64,
0x65, 0x73, 0x3a, 0x06, 0xa2, 0x93, 0x04, 0x02, 0x08, 0x03, 0x22, 0x87, 0x02, 0x0a, 0x1a, 0x44,
0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x0f, 0x64, 0x65, 0x73,
0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x24, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63,
0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x52,
0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0e, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74,
0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50,
0x6f, 0x72, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x65,
0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x63, 0x65, 0x6e,
0x74, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e,
0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x32, 0x62, 0x65,
0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43,
0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x63, 0x6f,
0x6e, 0x66, 0x69, 0x67, 0x22, 0xa6, 0x04, 0x0a, 0x18, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x12, 0x46, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e,
0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x2e, 0x76,
0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52,
0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x42, 0x0a, 0x0f, 0x63, 0x6f, 0x6e,
0x6e, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x63,
0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x48, 0x0a,
0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e,
0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c,
0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65,
0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52,
0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x63, 0x0a, 0x14, 0x70, 0x61, 0x73, 0x73, 0x69,
0x76, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18,
0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72,
0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x32,
0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x48, 0x65, 0x61,
0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x12, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76,
0x65, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x73, 0x0a, 0x1c,
0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64,
0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01,
0x28, 0x0e, 0x32, 0x31, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63,
0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74,
0x61, 0x31, 0x2e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x1a, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4f, 0x75,
0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x73, 0x12, 0x5a, 0x0a, 0x11, 0x6d, 0x65, 0x73, 0x68, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61,
0x79, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x68,
0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e,
0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x73,
0x68, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0f, 0x6d, 0x65,
0x73, 0x68, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x80, 0x02,
0x0a, 0x11, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6d,
0x69, 0x74, 0x73, 0x12, 0x45, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55,
0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x43,
0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4e, 0x0a, 0x14, 0x6d, 0x61,
0x78, 0x5f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33,
0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x50, 0x65, 0x6e, 0x64, 0x69,
0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x54, 0x0a, 0x17, 0x6d, 0x61,
0x78, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49,
0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x6d, 0x61, 0x78, 0x43, 0x6f,
0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73,
0x22, 0xaa, 0x01, 0x0a, 0x12, 0x50, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x48, 0x65, 0x61, 0x6c,
0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x35, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72,
0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x21,
0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x18, 0x02,
0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65,
0x73, 0x12, 0x3a, 0x0a, 0x19, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x69, 0x6e, 0x67, 0x5f, 0x63,
0x6f, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x35, 0x78, 0x78, 0x18, 0x03,
0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x69, 0x6e, 0x67, 0x43,
0x6f, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x74, 0x69, 0x76, 0x65, 0x35, 0x78, 0x78, 0x42, 0x9f, 0x02,
0x0a, 0x21, 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e,
0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x32, 0x62, 0x65,
0x74, 0x61, 0x31, 0x42, 0x1e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72,
0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f,
0x6d, 0x2f, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2f, 0x63, 0x6f, 0x6e, 0x73,
0x75, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2f,
0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x6d,
0x65, 0x73, 0x68, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x48, 0x43, 0x4d,
0xaa, 0x02, 0x1d, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x43, 0x6f, 0x6e,
0x73, 0x75, 0x6c, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x2e, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31,
0xca, 0x02, 0x1d, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x5c, 0x43, 0x6f, 0x6e,
0x73, 0x75, 0x6c, 0x5c, 0x4d, 0x65, 0x73, 0x68, 0x5c, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31,
0xe2, 0x02, 0x29, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x5c, 0x43, 0x6f, 0x6e,
0x73, 0x75, 0x6c, 0x5c, 0x4d, 0x65, 0x73, 0x68, 0x5c, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31,
0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x20, 0x48,
0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x3a, 0x3a, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c,
0x3a, 0x3a, 0x4d, 0x65, 0x73, 0x68, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62,
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_pbmesh_v2beta1_destinations_configuration_proto_rawDescOnce sync.Once
file_pbmesh_v2beta1_destinations_configuration_proto_rawDescData = file_pbmesh_v2beta1_destinations_configuration_proto_rawDesc
)
func file_pbmesh_v2beta1_destinations_configuration_proto_rawDescGZIP() []byte {
file_pbmesh_v2beta1_destinations_configuration_proto_rawDescOnce.Do(func() {
file_pbmesh_v2beta1_destinations_configuration_proto_rawDescData = protoimpl.X.CompressGZIP(file_pbmesh_v2beta1_destinations_configuration_proto_rawDescData)
})
return file_pbmesh_v2beta1_destinations_configuration_proto_rawDescData
}
var file_pbmesh_v2beta1_destinations_configuration_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
var file_pbmesh_v2beta1_destinations_configuration_proto_goTypes = []interface{}{
(*DestinationsConfiguration)(nil), // 0: hashicorp.consul.mesh.v2beta1.DestinationsConfiguration
(*DestinationConfigOverrides)(nil), // 1: hashicorp.consul.mesh.v2beta1.DestinationConfigOverrides
(*DestinationConfiguration)(nil), // 2: hashicorp.consul.mesh.v2beta1.DestinationConfiguration
(*DestinationLimits)(nil), // 3: hashicorp.consul.mesh.v2beta1.DestinationLimits
(*PassiveHealthCheck)(nil), // 4: hashicorp.consul.mesh.v2beta1.PassiveHealthCheck
(*v2beta1.WorkloadSelector)(nil), // 5: hashicorp.consul.catalog.v2beta1.WorkloadSelector
(*pbresource.Reference)(nil), // 6: hashicorp.consul.resource.Reference
(v2beta1.Protocol)(0), // 7: hashicorp.consul.catalog.v2beta1.Protocol
(*durationpb.Duration)(nil), // 8: google.protobuf.Duration
(BalanceConnections)(0), // 9: hashicorp.consul.mesh.v2beta1.BalanceConnections
(MeshGatewayMode)(0), // 10: hashicorp.consul.mesh.v2beta1.MeshGatewayMode
(*wrapperspb.UInt32Value)(nil), // 11: google.protobuf.UInt32Value
}
var file_pbmesh_v2beta1_destinations_configuration_proto_depIdxs = []int32{
5, // 0: hashicorp.consul.mesh.v2beta1.DestinationsConfiguration.workloads:type_name -> hashicorp.consul.catalog.v2beta1.WorkloadSelector
2, // 1: hashicorp.consul.mesh.v2beta1.DestinationsConfiguration.default_config:type_name -> hashicorp.consul.mesh.v2beta1.DestinationConfiguration
1, // 2: hashicorp.consul.mesh.v2beta1.DestinationsConfiguration.config_overrides:type_name -> hashicorp.consul.mesh.v2beta1.DestinationConfigOverrides
6, // 3: hashicorp.consul.mesh.v2beta1.DestinationConfigOverrides.destination_ref:type_name -> hashicorp.consul.resource.Reference
2, // 4: hashicorp.consul.mesh.v2beta1.DestinationConfigOverrides.config:type_name -> hashicorp.consul.mesh.v2beta1.DestinationConfiguration
7, // 5: hashicorp.consul.mesh.v2beta1.DestinationConfiguration.protocol:type_name -> hashicorp.consul.catalog.v2beta1.Protocol
8, // 6: hashicorp.consul.mesh.v2beta1.DestinationConfiguration.connect_timeout:type_name -> google.protobuf.Duration
3, // 7: hashicorp.consul.mesh.v2beta1.DestinationConfiguration.limits:type_name -> hashicorp.consul.mesh.v2beta1.DestinationLimits
4, // 8: hashicorp.consul.mesh.v2beta1.DestinationConfiguration.passive_health_check:type_name -> hashicorp.consul.mesh.v2beta1.PassiveHealthCheck
9, // 9: hashicorp.consul.mesh.v2beta1.DestinationConfiguration.balance_outbound_connections:type_name -> hashicorp.consul.mesh.v2beta1.BalanceConnections
10, // 10: hashicorp.consul.mesh.v2beta1.DestinationConfiguration.mesh_gateway_mode:type_name -> hashicorp.consul.mesh.v2beta1.MeshGatewayMode
11, // 11: hashicorp.consul.mesh.v2beta1.DestinationLimits.max_connections:type_name -> google.protobuf.UInt32Value
11, // 12: hashicorp.consul.mesh.v2beta1.DestinationLimits.max_pending_requests:type_name -> google.protobuf.UInt32Value
11, // 13: hashicorp.consul.mesh.v2beta1.DestinationLimits.max_concurrent_requests:type_name -> google.protobuf.UInt32Value
8, // 14: hashicorp.consul.mesh.v2beta1.PassiveHealthCheck.interval:type_name -> google.protobuf.Duration
15, // [15:15] is the sub-list for method output_type
15, // [15:15] is the sub-list for method input_type
15, // [15:15] is the sub-list for extension type_name
15, // [15:15] is the sub-list for extension extendee
0, // [0:15] is the sub-list for field type_name
}
func init() { file_pbmesh_v2beta1_destinations_configuration_proto_init() }
func file_pbmesh_v2beta1_destinations_configuration_proto_init() {
if File_pbmesh_v2beta1_destinations_configuration_proto != nil {
return
}
file_pbmesh_v2beta1_connection_proto_init()
file_pbmesh_v2beta1_routing_proto_init()
if !protoimpl.UnsafeEnabled {
file_pbmesh_v2beta1_destinations_configuration_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DestinationsConfiguration); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_pbmesh_v2beta1_destinations_configuration_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DestinationConfigOverrides); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_pbmesh_v2beta1_destinations_configuration_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DestinationConfiguration); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_pbmesh_v2beta1_destinations_configuration_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DestinationLimits); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_pbmesh_v2beta1_destinations_configuration_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PassiveHealthCheck); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_pbmesh_v2beta1_destinations_configuration_proto_rawDesc,
NumEnums: 0,
NumMessages: 5,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_pbmesh_v2beta1_destinations_configuration_proto_goTypes,
DependencyIndexes: file_pbmesh_v2beta1_destinations_configuration_proto_depIdxs,
MessageInfos: file_pbmesh_v2beta1_destinations_configuration_proto_msgTypes,
}.Build()
File_pbmesh_v2beta1_destinations_configuration_proto = out.File
file_pbmesh_v2beta1_destinations_configuration_proto_rawDesc = nil
file_pbmesh_v2beta1_destinations_configuration_proto_goTypes = nil
file_pbmesh_v2beta1_destinations_configuration_proto_depIdxs = nil
}

View File

@ -14,53 +14,53 @@ import "pbmesh/v2beta1/routing.proto";
import "pbresource/annotations.proto"; import "pbresource/annotations.proto";
import "pbresource/resource.proto"; import "pbresource/resource.proto";
message UpstreamsConfiguration { message DestinationsConfiguration {
option (hashicorp.consul.resource.spec) = {scope: SCOPE_NAMESPACE}; option (hashicorp.consul.resource.spec) = {scope: SCOPE_NAMESPACE};
// Selection of workloads these upstreams should apply to. // Selection of workloads these destinations should apply to.
// These can be prefixes or specific workload names. // These can be prefixes or specific workload names.
hashicorp.consul.catalog.v2beta1.WorkloadSelector workloads = 1; hashicorp.consul.catalog.v2beta1.WorkloadSelector workloads = 1;
// default_config applies to all upstreams for the workloads selected by this resource. // default_config applies to all destinations for the workloads selected by this resource.
UpstreamConfig default_config = 2; DestinationConfiguration default_config = 2;
// config_overrides provides per-upstream or per-upstream-port config overrides. // config_overrides provides per-destination or per-destination-port config overrides.
repeated UpstreamConfigOverrides config_overrides = 3; repeated DestinationConfigOverrides config_overrides = 3;
} }
// UpstreamConfigOverrides allow to override upstream configuration per destination_ref/port/datacenter. // UpstreamConfigOverrides allow to override destination configuration per destination_ref/port/datacenter.
// In that sense, those three fields (destination_ref, destination_port and datacenter) are treated // In that sense, those three fields (destination_ref, destination_port and datacenter) are treated
// sort of like map keys and config is a like a map value for that key. // sort of like map keys and config is a like a map value for that key.
message UpstreamConfigOverrides { message DestinationConfigOverrides {
// destination_ref is the reference to an upstream service that this configuration applies to. // destination_ref is the reference to an destination service that this configuration applies to.
// This has to be pbcatalog.Service type. // This has to be pbcatalog.Service type.
hashicorp.consul.resource.Reference destination_ref = 1; hashicorp.consul.resource.Reference destination_ref = 1;
// destination_port is the port name of the upstream service. This should be the name // destination_port is the port name of the destination service. This should be the name
// of the service's target port. If not provided, this configuration will apply to all ports of an upstream. // of the service's target port. If not provided, this configuration will apply to all ports of an destination.
string destination_port = 2; string destination_port = 2;
// datacenter is the datacenter for where this upstream service lives. // datacenter is the datacenter for where this destination service lives.
string datacenter = 3; string datacenter = 3;
// config is the configuration that should apply to this upstream. // config is the configuration that should apply to this destination.
UpstreamConfig config = 4; DestinationConfiguration config = 4;
} }
message UpstreamConfig { message DestinationConfiguration {
// protocol overrides upstream's port protocol. If no port for an upstream is specified // protocol overrides destination's port protocol. If no port for an destination is specified
// or if used in the default configuration, this protocol will be used for all ports // or if used in the default configuration, this protocol will be used for all ports
// or for all ports of all upstreams respectively. // or for all ports of all destinations respectively.
hashicorp.consul.catalog.v2beta1.Protocol protocol = 1; hashicorp.consul.catalog.v2beta1.Protocol protocol = 1;
// connect_timeout is the timeout used when making a new // connect_timeout is the timeout used when making a new
// connection to this upstream. Defaults to 5 seconds if not set. // connection to this destination. Defaults to 5 seconds if not set.
google.protobuf.Duration connect_timeout = 2; google.protobuf.Duration connect_timeout = 2;
// limits are the set of limits that are applied to the proxy for a specific upstream. // limits are the set of limits that are applied to the proxy for a specific destination.
UpstreamLimits limits = 3; DestinationLimits limits = 3;
// passive_health_check configuration determines how upstream proxy instances will // passive_health_check configuration determines how destination proxy instances will
// be monitored for removal from the load balancing pool. // be monitored for removal from the load balancing pool.
PassiveHealthCheck passive_health_check = 4; PassiveHealthCheck passive_health_check = 4;
@ -73,10 +73,10 @@ message UpstreamConfig {
} }
// UpstreamLimits describes the limits that are associated with a specific // UpstreamLimits describes the limits that are associated with a specific
// upstream of a service instance. // destination of a service instance.
message UpstreamLimits { message DestinationLimits {
// max_connections is the maximum number of connections the local proxy can // max_connections is the maximum number of connections the local proxy can
// make to the upstream service. // make to the destination service.
google.protobuf.UInt32Value max_connections = 1; google.protobuf.UInt32Value max_connections = 1;
// max_pending_requests is the maximum number of requests that will be queued // max_pending_requests is the maximum number of requests that will be queued
@ -86,7 +86,7 @@ message UpstreamLimits {
google.protobuf.UInt32Value max_pending_requests = 2; google.protobuf.UInt32Value max_pending_requests = 2;
// max_concurrent_requests is the maximum number of in-flight requests that will be allowed // max_concurrent_requests is the maximum number of in-flight requests that will be allowed
// to the upstream cluster at a point in time. This is mostly applicable to HTTP/2 // to the destination cluster at a point in time. This is mostly applicable to HTTP/2
// clusters since all HTTP/1.1 requests are limited by MaxConnections. // clusters since all HTTP/1.1 requests are limited by MaxConnections.
google.protobuf.UInt32Value max_concurrent_requests = 3; google.protobuf.UInt32Value max_concurrent_requests = 3;
} }

View File

@ -10,15 +10,15 @@ const (
GroupName = "mesh" GroupName = "mesh"
Version = "v2beta1" Version = "v2beta1"
ComputedRoutesKind = "ComputedRoutes" ComputedRoutesKind = "ComputedRoutes"
DestinationPolicyKind = "DestinationPolicy" DestinationPolicyKind = "DestinationPolicy"
GRPCRouteKind = "GRPCRoute" DestinationsKind = "Destinations"
HTTPRouteKind = "HTTPRoute" DestinationsConfigurationKind = "DestinationsConfiguration"
ProxyConfigurationKind = "ProxyConfiguration" GRPCRouteKind = "GRPCRoute"
ProxyStateTemplateKind = "ProxyStateTemplate" HTTPRouteKind = "HTTPRoute"
TCPRouteKind = "TCPRoute" ProxyConfigurationKind = "ProxyConfiguration"
UpstreamsKind = "Upstreams" ProxyStateTemplateKind = "ProxyStateTemplate"
UpstreamsConfigurationKind = "UpstreamsConfiguration" TCPRouteKind = "TCPRoute"
) )
var ( var (
@ -34,6 +34,18 @@ var (
Kind: DestinationPolicyKind, Kind: DestinationPolicyKind,
} }
DestinationsType = &pbresource.Type{
Group: GroupName,
GroupVersion: Version,
Kind: DestinationsKind,
}
DestinationsConfigurationType = &pbresource.Type{
Group: GroupName,
GroupVersion: Version,
Kind: DestinationsConfigurationKind,
}
GRPCRouteType = &pbresource.Type{ GRPCRouteType = &pbresource.Type{
Group: GroupName, Group: GroupName,
GroupVersion: Version, GroupVersion: Version,
@ -63,16 +75,4 @@ var (
GroupVersion: Version, GroupVersion: Version,
Kind: TCPRouteKind, Kind: TCPRouteKind,
} }
UpstreamsType = &pbresource.Type{
Group: GroupName,
GroupVersion: Version,
Kind: UpstreamsKind,
}
UpstreamsConfigurationType = &pbresource.Type{
Group: GroupName,
GroupVersion: Version,
Kind: UpstreamsConfigurationKind,
}
) )

View File

@ -1,667 +0,0 @@
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.30.0
// protoc (unknown)
// source: pbmesh/v2beta1/upstreams.proto
package meshv2beta1
import (
v2beta1 "github.com/hashicorp/consul/proto-public/pbcatalog/v2beta1"
pbresource "github.com/hashicorp/consul/proto-public/pbresource"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type Upstreams struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Selection of workloads these upstreams should apply to.
// These can be prefixes or specific workload names.
Workloads *v2beta1.WorkloadSelector `protobuf:"bytes,1,opt,name=workloads,proto3" json:"workloads,omitempty"`
// upstreams is the list of explicit upstreams to define for the selected workloads.
Upstreams []*Upstream `protobuf:"bytes,2,rep,name=upstreams,proto3" json:"upstreams,omitempty"`
// pq_upstreams is the list of prepared query upstreams. This field is not supported directly in v2
// and should only be used for migration reasons.
PqUpstreams []*PreparedQueryUpstream `protobuf:"bytes,3,rep,name=pq_upstreams,json=pqUpstreams,proto3" json:"pq_upstreams,omitempty"`
}
func (x *Upstreams) Reset() {
*x = Upstreams{}
if protoimpl.UnsafeEnabled {
mi := &file_pbmesh_v2beta1_upstreams_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Upstreams) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Upstreams) ProtoMessage() {}
func (x *Upstreams) ProtoReflect() protoreflect.Message {
mi := &file_pbmesh_v2beta1_upstreams_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Upstreams.ProtoReflect.Descriptor instead.
func (*Upstreams) Descriptor() ([]byte, []int) {
return file_pbmesh_v2beta1_upstreams_proto_rawDescGZIP(), []int{0}
}
func (x *Upstreams) GetWorkloads() *v2beta1.WorkloadSelector {
if x != nil {
return x.Workloads
}
return nil
}
func (x *Upstreams) GetUpstreams() []*Upstream {
if x != nil {
return x.Upstreams
}
return nil
}
func (x *Upstreams) GetPqUpstreams() []*PreparedQueryUpstream {
if x != nil {
return x.PqUpstreams
}
return nil
}
type Upstream struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// destination_ref is the reference to an upstream service. This has to be pbcatalog.Service type.
DestinationRef *pbresource.Reference `protobuf:"bytes,1,opt,name=destination_ref,json=destinationRef,proto3" json:"destination_ref,omitempty"`
// destination_port is the port name of the upstream service. This should be the name
// of the service's target port.
DestinationPort string `protobuf:"bytes,2,opt,name=destination_port,json=destinationPort,proto3" json:"destination_port,omitempty"`
// datacenter is the datacenter for where this upstream service lives.
Datacenter string `protobuf:"bytes,3,opt,name=datacenter,proto3" json:"datacenter,omitempty"`
// listen_addr is the address where Envoy will listen for requests to this upstream.
// It can provided either as an ip:port or as a Unix domain socket.
//
// Types that are assignable to ListenAddr:
//
// *Upstream_IpPort
// *Upstream_Unix
ListenAddr isUpstream_ListenAddr `protobuf_oneof:"listen_addr"`
}
func (x *Upstream) Reset() {
*x = Upstream{}
if protoimpl.UnsafeEnabled {
mi := &file_pbmesh_v2beta1_upstreams_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Upstream) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Upstream) ProtoMessage() {}
func (x *Upstream) ProtoReflect() protoreflect.Message {
mi := &file_pbmesh_v2beta1_upstreams_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Upstream.ProtoReflect.Descriptor instead.
func (*Upstream) Descriptor() ([]byte, []int) {
return file_pbmesh_v2beta1_upstreams_proto_rawDescGZIP(), []int{1}
}
func (x *Upstream) GetDestinationRef() *pbresource.Reference {
if x != nil {
return x.DestinationRef
}
return nil
}
func (x *Upstream) GetDestinationPort() string {
if x != nil {
return x.DestinationPort
}
return ""
}
func (x *Upstream) GetDatacenter() string {
if x != nil {
return x.Datacenter
}
return ""
}
func (m *Upstream) GetListenAddr() isUpstream_ListenAddr {
if m != nil {
return m.ListenAddr
}
return nil
}
func (x *Upstream) GetIpPort() *IPPortAddress {
if x, ok := x.GetListenAddr().(*Upstream_IpPort); ok {
return x.IpPort
}
return nil
}
func (x *Upstream) GetUnix() *UnixSocketAddress {
if x, ok := x.GetListenAddr().(*Upstream_Unix); ok {
return x.Unix
}
return nil
}
type isUpstream_ListenAddr interface {
isUpstream_ListenAddr()
}
type Upstream_IpPort struct {
IpPort *IPPortAddress `protobuf:"bytes,4,opt,name=ip_port,json=ipPort,proto3,oneof"`
}
type Upstream_Unix struct {
Unix *UnixSocketAddress `protobuf:"bytes,5,opt,name=unix,proto3,oneof"`
}
func (*Upstream_IpPort) isUpstream_ListenAddr() {}
func (*Upstream_Unix) isUpstream_ListenAddr() {}
type IPPortAddress struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// ip is an IPv4 or an IPv6 address.
Ip string `protobuf:"bytes,1,opt,name=ip,proto3" json:"ip,omitempty"`
// port is the port number.
Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
}
func (x *IPPortAddress) Reset() {
*x = IPPortAddress{}
if protoimpl.UnsafeEnabled {
mi := &file_pbmesh_v2beta1_upstreams_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *IPPortAddress) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*IPPortAddress) ProtoMessage() {}
func (x *IPPortAddress) ProtoReflect() protoreflect.Message {
mi := &file_pbmesh_v2beta1_upstreams_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use IPPortAddress.ProtoReflect.Descriptor instead.
func (*IPPortAddress) Descriptor() ([]byte, []int) {
return file_pbmesh_v2beta1_upstreams_proto_rawDescGZIP(), []int{2}
}
func (x *IPPortAddress) GetIp() string {
if x != nil {
return x.Ip
}
return ""
}
func (x *IPPortAddress) GetPort() uint32 {
if x != nil {
return x.Port
}
return 0
}
type UnixSocketAddress struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// path is the file system path at which to bind a Unix domain socket listener.
Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
// mode is the Unix file mode for the socket file. It should be provided
// in the numeric notation, for example, "0600".
Mode string `protobuf:"bytes,2,opt,name=mode,proto3" json:"mode,omitempty"`
}
func (x *UnixSocketAddress) Reset() {
*x = UnixSocketAddress{}
if protoimpl.UnsafeEnabled {
mi := &file_pbmesh_v2beta1_upstreams_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UnixSocketAddress) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UnixSocketAddress) ProtoMessage() {}
func (x *UnixSocketAddress) ProtoReflect() protoreflect.Message {
mi := &file_pbmesh_v2beta1_upstreams_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UnixSocketAddress.ProtoReflect.Descriptor instead.
func (*UnixSocketAddress) Descriptor() ([]byte, []int) {
return file_pbmesh_v2beta1_upstreams_proto_rawDescGZIP(), []int{3}
}
func (x *UnixSocketAddress) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
func (x *UnixSocketAddress) GetMode() string {
if x != nil {
return x.Mode
}
return ""
}
type PreparedQueryUpstream struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// name is the name of the prepared query to use as an upstream.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// datacenter is the datacenter for where this upstream service lives.
Datacenter string `protobuf:"bytes,2,opt,name=datacenter,proto3" json:"datacenter,omitempty"`
// listen_addr is the address where Envoy will listen for requests to this upstream.
// It can provided either as an ip:port or as a Unix domain socket.
//
// Types that are assignable to ListenAddr:
//
// *PreparedQueryUpstream_Tcp
// *PreparedQueryUpstream_Unix
ListenAddr isPreparedQueryUpstream_ListenAddr `protobuf_oneof:"listen_addr"`
UpstreamConfig *UpstreamConfig `protobuf:"bytes,6,opt,name=upstream_config,json=upstreamConfig,proto3" json:"upstream_config,omitempty"`
}
func (x *PreparedQueryUpstream) Reset() {
*x = PreparedQueryUpstream{}
if protoimpl.UnsafeEnabled {
mi := &file_pbmesh_v2beta1_upstreams_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PreparedQueryUpstream) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PreparedQueryUpstream) ProtoMessage() {}
func (x *PreparedQueryUpstream) ProtoReflect() protoreflect.Message {
mi := &file_pbmesh_v2beta1_upstreams_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PreparedQueryUpstream.ProtoReflect.Descriptor instead.
func (*PreparedQueryUpstream) Descriptor() ([]byte, []int) {
return file_pbmesh_v2beta1_upstreams_proto_rawDescGZIP(), []int{4}
}
func (x *PreparedQueryUpstream) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *PreparedQueryUpstream) GetDatacenter() string {
if x != nil {
return x.Datacenter
}
return ""
}
func (m *PreparedQueryUpstream) GetListenAddr() isPreparedQueryUpstream_ListenAddr {
if m != nil {
return m.ListenAddr
}
return nil
}
func (x *PreparedQueryUpstream) GetTcp() *IPPortAddress {
if x, ok := x.GetListenAddr().(*PreparedQueryUpstream_Tcp); ok {
return x.Tcp
}
return nil
}
func (x *PreparedQueryUpstream) GetUnix() *UnixSocketAddress {
if x, ok := x.GetListenAddr().(*PreparedQueryUpstream_Unix); ok {
return x.Unix
}
return nil
}
func (x *PreparedQueryUpstream) GetUpstreamConfig() *UpstreamConfig {
if x != nil {
return x.UpstreamConfig
}
return nil
}
type isPreparedQueryUpstream_ListenAddr interface {
isPreparedQueryUpstream_ListenAddr()
}
type PreparedQueryUpstream_Tcp struct {
Tcp *IPPortAddress `protobuf:"bytes,4,opt,name=tcp,proto3,oneof"`
}
type PreparedQueryUpstream_Unix struct {
Unix *UnixSocketAddress `protobuf:"bytes,5,opt,name=unix,proto3,oneof"`
}
func (*PreparedQueryUpstream_Tcp) isPreparedQueryUpstream_ListenAddr() {}
func (*PreparedQueryUpstream_Unix) isPreparedQueryUpstream_ListenAddr() {}
var File_pbmesh_v2beta1_upstreams_proto protoreflect.FileDescriptor
var file_pbmesh_v2beta1_upstreams_proto_rawDesc = []byte{
0x0a, 0x1e, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31,
0x2f, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x12, 0x1d, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73,
0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a,
0x20, 0x70, 0x62, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74,
0x61, 0x31, 0x2f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x1a, 0x2c, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61,
0x31, 0x2f, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66,
0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
0x1c, 0x70, 0x62, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2f, 0x61, 0x6e, 0x6e, 0x6f,
0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x70,
0x62, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72,
0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x85, 0x02, 0x0a, 0x09, 0x55, 0x70, 0x73,
0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x50, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f,
0x61, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x68, 0x61, 0x73, 0x68,
0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x63, 0x61, 0x74,
0x61, 0x6c, 0x6f, 0x67, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x57, 0x6f, 0x72,
0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x09, 0x77,
0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x75, 0x70, 0x73, 0x74,
0x72, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x68, 0x61,
0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d,
0x65, 0x73, 0x68, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x73, 0x74,
0x72, 0x65, 0x61, 0x6d, 0x52, 0x09, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x12,
0x57, 0x0a, 0x0c, 0x70, 0x71, 0x5f, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x18,
0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72,
0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x32,
0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x64, 0x51, 0x75,
0x65, 0x72, 0x79, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x0b, 0x70, 0x71, 0x55,
0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x3a, 0x06, 0xa2, 0x93, 0x04, 0x02, 0x08, 0x03,
0x22, 0xc4, 0x02, 0x0a, 0x08, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x4d, 0x0a,
0x0f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f,
0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72,
0x63, 0x65, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0e, 0x64, 0x65,
0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x12, 0x29, 0x0a, 0x10,
0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x63,
0x65, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x74,
0x61, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x07, 0x69, 0x70, 0x5f, 0x70, 0x6f,
0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69,
0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68,
0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x50, 0x50, 0x6f, 0x72, 0x74, 0x41,
0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x06, 0x69, 0x70, 0x50, 0x6f, 0x72, 0x74,
0x12, 0x46, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30,
0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75,
0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55,
0x6e, 0x69, 0x78, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
0x48, 0x00, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x78, 0x42, 0x0d, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74,
0x65, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x22, 0x33, 0x0a, 0x0d, 0x49, 0x50, 0x50, 0x6f, 0x72,
0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x3b, 0x0a, 0x11,
0x55, 0x6e, 0x69, 0x78, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73,
0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0xbc, 0x02, 0x0a, 0x15, 0x50, 0x72,
0x65, 0x70, 0x61, 0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x55, 0x70, 0x73, 0x74, 0x72,
0x65, 0x61, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x63,
0x65, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x74,
0x61, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x40, 0x0a, 0x03, 0x74, 0x63, 0x70, 0x18, 0x04,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70,
0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x32, 0x62,
0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x50, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65,
0x73, 0x73, 0x48, 0x00, 0x52, 0x03, 0x74, 0x63, 0x70, 0x12, 0x46, 0x0a, 0x04, 0x75, 0x6e, 0x69,
0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63,
0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e,
0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x78, 0x53, 0x6f, 0x63, 0x6b,
0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x04, 0x75, 0x6e, 0x69,
0x78, 0x12, 0x56, 0x0a, 0x0f, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x63, 0x6f,
0x6e, 0x66, 0x69, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x68, 0x61, 0x73,
0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65,
0x73, 0x68, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72,
0x65, 0x61, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x75, 0x70, 0x73, 0x74, 0x72,
0x65, 0x61, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x0d, 0x0a, 0x0b, 0x6c, 0x69, 0x73,
0x74, 0x65, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x42, 0x8f, 0x02, 0x0a, 0x21, 0x63, 0x6f, 0x6d,
0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75,
0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0e,
0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01,
0x5a, 0x43, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x61, 0x73,
0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2f, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x2d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2f, 0x70, 0x62, 0x6d, 0x65, 0x73,
0x68, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x6d, 0x65, 0x73, 0x68, 0x76, 0x32,
0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x48, 0x43, 0x4d, 0xaa, 0x02, 0x1d, 0x48, 0x61,
0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x4d,
0x65, 0x73, 0x68, 0x2e, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1d, 0x48, 0x61,
0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x5c, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x5c, 0x4d,
0x65, 0x73, 0x68, 0x5c, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x29, 0x48, 0x61,
0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x5c, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x5c, 0x4d,
0x65, 0x73, 0x68, 0x5c, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d,
0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x20, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63,
0x6f, 0x72, 0x70, 0x3a, 0x3a, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x3a, 0x3a, 0x4d, 0x65, 0x73,
0x68, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x33,
}
var (
file_pbmesh_v2beta1_upstreams_proto_rawDescOnce sync.Once
file_pbmesh_v2beta1_upstreams_proto_rawDescData = file_pbmesh_v2beta1_upstreams_proto_rawDesc
)
func file_pbmesh_v2beta1_upstreams_proto_rawDescGZIP() []byte {
file_pbmesh_v2beta1_upstreams_proto_rawDescOnce.Do(func() {
file_pbmesh_v2beta1_upstreams_proto_rawDescData = protoimpl.X.CompressGZIP(file_pbmesh_v2beta1_upstreams_proto_rawDescData)
})
return file_pbmesh_v2beta1_upstreams_proto_rawDescData
}
var file_pbmesh_v2beta1_upstreams_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
var file_pbmesh_v2beta1_upstreams_proto_goTypes = []interface{}{
(*Upstreams)(nil), // 0: hashicorp.consul.mesh.v2beta1.Upstreams
(*Upstream)(nil), // 1: hashicorp.consul.mesh.v2beta1.Upstream
(*IPPortAddress)(nil), // 2: hashicorp.consul.mesh.v2beta1.IPPortAddress
(*UnixSocketAddress)(nil), // 3: hashicorp.consul.mesh.v2beta1.UnixSocketAddress
(*PreparedQueryUpstream)(nil), // 4: hashicorp.consul.mesh.v2beta1.PreparedQueryUpstream
(*v2beta1.WorkloadSelector)(nil), // 5: hashicorp.consul.catalog.v2beta1.WorkloadSelector
(*pbresource.Reference)(nil), // 6: hashicorp.consul.resource.Reference
(*UpstreamConfig)(nil), // 7: hashicorp.consul.mesh.v2beta1.UpstreamConfig
}
var file_pbmesh_v2beta1_upstreams_proto_depIdxs = []int32{
5, // 0: hashicorp.consul.mesh.v2beta1.Upstreams.workloads:type_name -> hashicorp.consul.catalog.v2beta1.WorkloadSelector
1, // 1: hashicorp.consul.mesh.v2beta1.Upstreams.upstreams:type_name -> hashicorp.consul.mesh.v2beta1.Upstream
4, // 2: hashicorp.consul.mesh.v2beta1.Upstreams.pq_upstreams:type_name -> hashicorp.consul.mesh.v2beta1.PreparedQueryUpstream
6, // 3: hashicorp.consul.mesh.v2beta1.Upstream.destination_ref:type_name -> hashicorp.consul.resource.Reference
2, // 4: hashicorp.consul.mesh.v2beta1.Upstream.ip_port:type_name -> hashicorp.consul.mesh.v2beta1.IPPortAddress
3, // 5: hashicorp.consul.mesh.v2beta1.Upstream.unix:type_name -> hashicorp.consul.mesh.v2beta1.UnixSocketAddress
2, // 6: hashicorp.consul.mesh.v2beta1.PreparedQueryUpstream.tcp:type_name -> hashicorp.consul.mesh.v2beta1.IPPortAddress
3, // 7: hashicorp.consul.mesh.v2beta1.PreparedQueryUpstream.unix:type_name -> hashicorp.consul.mesh.v2beta1.UnixSocketAddress
7, // 8: hashicorp.consul.mesh.v2beta1.PreparedQueryUpstream.upstream_config:type_name -> hashicorp.consul.mesh.v2beta1.UpstreamConfig
9, // [9:9] is the sub-list for method output_type
9, // [9:9] is the sub-list for method input_type
9, // [9:9] is the sub-list for extension type_name
9, // [9:9] is the sub-list for extension extendee
0, // [0:9] is the sub-list for field type_name
}
func init() { file_pbmesh_v2beta1_upstreams_proto_init() }
func file_pbmesh_v2beta1_upstreams_proto_init() {
if File_pbmesh_v2beta1_upstreams_proto != nil {
return
}
file_pbmesh_v2beta1_upstreams_configuration_proto_init()
if !protoimpl.UnsafeEnabled {
file_pbmesh_v2beta1_upstreams_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Upstreams); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_pbmesh_v2beta1_upstreams_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Upstream); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_pbmesh_v2beta1_upstreams_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*IPPortAddress); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_pbmesh_v2beta1_upstreams_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UnixSocketAddress); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_pbmesh_v2beta1_upstreams_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PreparedQueryUpstream); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
file_pbmesh_v2beta1_upstreams_proto_msgTypes[1].OneofWrappers = []interface{}{
(*Upstream_IpPort)(nil),
(*Upstream_Unix)(nil),
}
file_pbmesh_v2beta1_upstreams_proto_msgTypes[4].OneofWrappers = []interface{}{
(*PreparedQueryUpstream_Tcp)(nil),
(*PreparedQueryUpstream_Unix)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_pbmesh_v2beta1_upstreams_proto_rawDesc,
NumEnums: 0,
NumMessages: 5,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_pbmesh_v2beta1_upstreams_proto_goTypes,
DependencyIndexes: file_pbmesh_v2beta1_upstreams_proto_depIdxs,
MessageInfos: file_pbmesh_v2beta1_upstreams_proto_msgTypes,
}.Build()
File_pbmesh_v2beta1_upstreams_proto = out.File
file_pbmesh_v2beta1_upstreams_proto_rawDesc = nil
file_pbmesh_v2beta1_upstreams_proto_goTypes = nil
file_pbmesh_v2beta1_upstreams_proto_depIdxs = nil
}

View File

@ -1,696 +0,0 @@
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.30.0
// protoc (unknown)
// source: pbmesh/v2beta1/upstreams_configuration.proto
package meshv2beta1
import (
v2beta1 "github.com/hashicorp/consul/proto-public/pbcatalog/v2beta1"
pbresource "github.com/hashicorp/consul/proto-public/pbresource"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
durationpb "google.golang.org/protobuf/types/known/durationpb"
wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type UpstreamsConfiguration struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Selection of workloads these upstreams should apply to.
// These can be prefixes or specific workload names.
Workloads *v2beta1.WorkloadSelector `protobuf:"bytes,1,opt,name=workloads,proto3" json:"workloads,omitempty"`
// default_config applies to all upstreams for the workloads selected by this resource.
DefaultConfig *UpstreamConfig `protobuf:"bytes,2,opt,name=default_config,json=defaultConfig,proto3" json:"default_config,omitempty"`
// config_overrides provides per-upstream or per-upstream-port config overrides.
ConfigOverrides []*UpstreamConfigOverrides `protobuf:"bytes,3,rep,name=config_overrides,json=configOverrides,proto3" json:"config_overrides,omitempty"`
}
func (x *UpstreamsConfiguration) Reset() {
*x = UpstreamsConfiguration{}
if protoimpl.UnsafeEnabled {
mi := &file_pbmesh_v2beta1_upstreams_configuration_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UpstreamsConfiguration) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UpstreamsConfiguration) ProtoMessage() {}
func (x *UpstreamsConfiguration) ProtoReflect() protoreflect.Message {
mi := &file_pbmesh_v2beta1_upstreams_configuration_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UpstreamsConfiguration.ProtoReflect.Descriptor instead.
func (*UpstreamsConfiguration) Descriptor() ([]byte, []int) {
return file_pbmesh_v2beta1_upstreams_configuration_proto_rawDescGZIP(), []int{0}
}
func (x *UpstreamsConfiguration) GetWorkloads() *v2beta1.WorkloadSelector {
if x != nil {
return x.Workloads
}
return nil
}
func (x *UpstreamsConfiguration) GetDefaultConfig() *UpstreamConfig {
if x != nil {
return x.DefaultConfig
}
return nil
}
func (x *UpstreamsConfiguration) GetConfigOverrides() []*UpstreamConfigOverrides {
if x != nil {
return x.ConfigOverrides
}
return nil
}
// UpstreamConfigOverrides allow to override upstream configuration per destination_ref/port/datacenter.
// In that sense, those three fields (destination_ref, destination_port and datacenter) are treated
// sort of like map keys and config is a like a map value for that key.
type UpstreamConfigOverrides struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// destination_ref is the reference to an upstream service that this configuration applies to.
// This has to be pbcatalog.Service type.
DestinationRef *pbresource.Reference `protobuf:"bytes,1,opt,name=destination_ref,json=destinationRef,proto3" json:"destination_ref,omitempty"`
// destination_port is the port name of the upstream service. This should be the name
// of the service's target port. If not provided, this configuration will apply to all ports of an upstream.
DestinationPort string `protobuf:"bytes,2,opt,name=destination_port,json=destinationPort,proto3" json:"destination_port,omitempty"`
// datacenter is the datacenter for where this upstream service lives.
Datacenter string `protobuf:"bytes,3,opt,name=datacenter,proto3" json:"datacenter,omitempty"`
// config is the configuration that should apply to this upstream.
Config *UpstreamConfig `protobuf:"bytes,4,opt,name=config,proto3" json:"config,omitempty"`
}
func (x *UpstreamConfigOverrides) Reset() {
*x = UpstreamConfigOverrides{}
if protoimpl.UnsafeEnabled {
mi := &file_pbmesh_v2beta1_upstreams_configuration_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UpstreamConfigOverrides) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UpstreamConfigOverrides) ProtoMessage() {}
func (x *UpstreamConfigOverrides) ProtoReflect() protoreflect.Message {
mi := &file_pbmesh_v2beta1_upstreams_configuration_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UpstreamConfigOverrides.ProtoReflect.Descriptor instead.
func (*UpstreamConfigOverrides) Descriptor() ([]byte, []int) {
return file_pbmesh_v2beta1_upstreams_configuration_proto_rawDescGZIP(), []int{1}
}
func (x *UpstreamConfigOverrides) GetDestinationRef() *pbresource.Reference {
if x != nil {
return x.DestinationRef
}
return nil
}
func (x *UpstreamConfigOverrides) GetDestinationPort() string {
if x != nil {
return x.DestinationPort
}
return ""
}
func (x *UpstreamConfigOverrides) GetDatacenter() string {
if x != nil {
return x.Datacenter
}
return ""
}
func (x *UpstreamConfigOverrides) GetConfig() *UpstreamConfig {
if x != nil {
return x.Config
}
return nil
}
type UpstreamConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// protocol overrides upstream's port protocol. If no port for an upstream is specified
// or if used in the default configuration, this protocol will be used for all ports
// or for all ports of all upstreams respectively.
Protocol v2beta1.Protocol `protobuf:"varint,1,opt,name=protocol,proto3,enum=hashicorp.consul.catalog.v2beta1.Protocol" json:"protocol,omitempty"`
// connect_timeout is the timeout used when making a new
// connection to this upstream. Defaults to 5 seconds if not set.
ConnectTimeout *durationpb.Duration `protobuf:"bytes,2,opt,name=connect_timeout,json=connectTimeout,proto3" json:"connect_timeout,omitempty"`
// limits are the set of limits that are applied to the proxy for a specific upstream.
Limits *UpstreamLimits `protobuf:"bytes,3,opt,name=limits,proto3" json:"limits,omitempty"`
// passive_health_check configuration determines how upstream proxy instances will
// be monitored for removal from the load balancing pool.
PassiveHealthCheck *PassiveHealthCheck `protobuf:"bytes,4,opt,name=passive_health_check,json=passiveHealthCheck,proto3" json:"passive_health_check,omitempty"`
// balance_outbound_connections indicates how the proxy should attempt to distribute
// connections across worker threads.
BalanceOutboundConnections BalanceConnections `protobuf:"varint,5,opt,name=balance_outbound_connections,json=balanceOutboundConnections,proto3,enum=hashicorp.consul.mesh.v2beta1.BalanceConnections" json:"balance_outbound_connections,omitempty"`
// MeshGatewayMode is the Mesh Gateway routing mode.
MeshGatewayMode MeshGatewayMode `protobuf:"varint,6,opt,name=mesh_gateway_mode,json=meshGatewayMode,proto3,enum=hashicorp.consul.mesh.v2beta1.MeshGatewayMode" json:"mesh_gateway_mode,omitempty"`
}
func (x *UpstreamConfig) Reset() {
*x = UpstreamConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_pbmesh_v2beta1_upstreams_configuration_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UpstreamConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UpstreamConfig) ProtoMessage() {}
func (x *UpstreamConfig) ProtoReflect() protoreflect.Message {
mi := &file_pbmesh_v2beta1_upstreams_configuration_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UpstreamConfig.ProtoReflect.Descriptor instead.
func (*UpstreamConfig) Descriptor() ([]byte, []int) {
return file_pbmesh_v2beta1_upstreams_configuration_proto_rawDescGZIP(), []int{2}
}
func (x *UpstreamConfig) GetProtocol() v2beta1.Protocol {
if x != nil {
return x.Protocol
}
return v2beta1.Protocol(0)
}
func (x *UpstreamConfig) GetConnectTimeout() *durationpb.Duration {
if x != nil {
return x.ConnectTimeout
}
return nil
}
func (x *UpstreamConfig) GetLimits() *UpstreamLimits {
if x != nil {
return x.Limits
}
return nil
}
func (x *UpstreamConfig) GetPassiveHealthCheck() *PassiveHealthCheck {
if x != nil {
return x.PassiveHealthCheck
}
return nil
}
func (x *UpstreamConfig) GetBalanceOutboundConnections() BalanceConnections {
if x != nil {
return x.BalanceOutboundConnections
}
return BalanceConnections_BALANCE_CONNECTIONS_DEFAULT
}
func (x *UpstreamConfig) GetMeshGatewayMode() MeshGatewayMode {
if x != nil {
return x.MeshGatewayMode
}
return MeshGatewayMode_MESH_GATEWAY_MODE_UNSPECIFIED
}
// UpstreamLimits describes the limits that are associated with a specific
// upstream of a service instance.
type UpstreamLimits struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// max_connections is the maximum number of connections the local proxy can
// make to the upstream service.
MaxConnections *wrapperspb.UInt32Value `protobuf:"bytes,1,opt,name=max_connections,json=maxConnections,proto3" json:"max_connections,omitempty"`
// max_pending_requests is the maximum number of requests that will be queued
// waiting for an available connection. This is mostly applicable to HTTP/1.1
// clusters since all HTTP/2 requests are streamed over a single
// connection.
MaxPendingRequests *wrapperspb.UInt32Value `protobuf:"bytes,2,opt,name=max_pending_requests,json=maxPendingRequests,proto3" json:"max_pending_requests,omitempty"`
// max_concurrent_requests is the maximum number of in-flight requests that will be allowed
// to the upstream cluster at a point in time. This is mostly applicable to HTTP/2
// clusters since all HTTP/1.1 requests are limited by MaxConnections.
MaxConcurrentRequests *wrapperspb.UInt32Value `protobuf:"bytes,3,opt,name=max_concurrent_requests,json=maxConcurrentRequests,proto3" json:"max_concurrent_requests,omitempty"`
}
func (x *UpstreamLimits) Reset() {
*x = UpstreamLimits{}
if protoimpl.UnsafeEnabled {
mi := &file_pbmesh_v2beta1_upstreams_configuration_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UpstreamLimits) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UpstreamLimits) ProtoMessage() {}
func (x *UpstreamLimits) ProtoReflect() protoreflect.Message {
mi := &file_pbmesh_v2beta1_upstreams_configuration_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UpstreamLimits.ProtoReflect.Descriptor instead.
func (*UpstreamLimits) Descriptor() ([]byte, []int) {
return file_pbmesh_v2beta1_upstreams_configuration_proto_rawDescGZIP(), []int{3}
}
func (x *UpstreamLimits) GetMaxConnections() *wrapperspb.UInt32Value {
if x != nil {
return x.MaxConnections
}
return nil
}
func (x *UpstreamLimits) GetMaxPendingRequests() *wrapperspb.UInt32Value {
if x != nil {
return x.MaxPendingRequests
}
return nil
}
func (x *UpstreamLimits) GetMaxConcurrentRequests() *wrapperspb.UInt32Value {
if x != nil {
return x.MaxConcurrentRequests
}
return nil
}
type PassiveHealthCheck struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// interval between health check analysis sweeps. Each sweep may remove
// hosts or return hosts to the pool.
Interval *durationpb.Duration `protobuf:"bytes,1,opt,name=interval,proto3" json:"interval,omitempty"`
// max_failures is the count of consecutive failures that results in a host
// being removed from the pool.
MaxFailures uint32 `protobuf:"varint,2,opt,name=max_failures,json=maxFailures,proto3" json:"max_failures,omitempty"`
// enforcing_consecutive_5xx is the % chance that a host will be actually ejected
// when an outlier status is detected through consecutive 5xx.
// This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100.
EnforcingConsecutive_5Xx uint32 `protobuf:"varint,3,opt,name=enforcing_consecutive_5xx,json=enforcingConsecutive5xx,proto3" json:"enforcing_consecutive_5xx,omitempty"`
}
func (x *PassiveHealthCheck) Reset() {
*x = PassiveHealthCheck{}
if protoimpl.UnsafeEnabled {
mi := &file_pbmesh_v2beta1_upstreams_configuration_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PassiveHealthCheck) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PassiveHealthCheck) ProtoMessage() {}
func (x *PassiveHealthCheck) ProtoReflect() protoreflect.Message {
mi := &file_pbmesh_v2beta1_upstreams_configuration_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PassiveHealthCheck.ProtoReflect.Descriptor instead.
func (*PassiveHealthCheck) Descriptor() ([]byte, []int) {
return file_pbmesh_v2beta1_upstreams_configuration_proto_rawDescGZIP(), []int{4}
}
func (x *PassiveHealthCheck) GetInterval() *durationpb.Duration {
if x != nil {
return x.Interval
}
return nil
}
func (x *PassiveHealthCheck) GetMaxFailures() uint32 {
if x != nil {
return x.MaxFailures
}
return 0
}
func (x *PassiveHealthCheck) GetEnforcingConsecutive_5Xx() uint32 {
if x != nil {
return x.EnforcingConsecutive_5Xx
}
return 0
}
var File_pbmesh_v2beta1_upstreams_configuration_proto protoreflect.FileDescriptor
var file_pbmesh_v2beta1_upstreams_configuration_proto_rawDesc = []byte{
0x0a, 0x2c, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31,
0x2f, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1d,
0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c,
0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x1e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64,
0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77,
0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x70,
0x62, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31,
0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
0x20, 0x70, 0x62, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74,
0x61, 0x31, 0x2f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x1a, 0x1f, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61,
0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x1a, 0x1c, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74,
0x61, 0x31, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x1a, 0x1c, 0x70, 0x62, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2f, 0x61, 0x6e, 0x6e,
0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19,
0x70, 0x62, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75,
0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xab, 0x02, 0x0a, 0x16, 0x55, 0x70,
0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64,
0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63,
0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x63, 0x61, 0x74, 0x61, 0x6c,
0x6f, 0x67, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c,
0x6f, 0x61, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x09, 0x77, 0x6f, 0x72,
0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x12, 0x54, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c,
0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d,
0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75,
0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55,
0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x64,
0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x61, 0x0a, 0x10,
0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73,
0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f,
0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76,
0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43,
0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x52, 0x0f,
0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x3a,
0x06, 0xa2, 0x93, 0x04, 0x02, 0x08, 0x03, 0x22, 0xfa, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x73, 0x74,
0x72, 0x65, 0x61, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69,
0x64, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x68,
0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e,
0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,
0x63, 0x65, 0x52, 0x0e, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
0x65, 0x66, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65,
0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1e, 0x0a,
0x0a, 0x64, 0x61, 0x74, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28,
0x09, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x45, 0x0a,
0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e,
0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c,
0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70,
0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f,
0x6e, 0x66, 0x69, 0x67, 0x22, 0x99, 0x04, 0x0a, 0x0e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61,
0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x46, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x63, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x68, 0x61, 0x73, 0x68,
0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x63, 0x61, 0x74,
0x61, 0x6c, 0x6f, 0x67, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f,
0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12,
0x42, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f,
0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65,
0x6f, 0x75, 0x74, 0x12, 0x45, 0x0a, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x03, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e,
0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x32, 0x62, 0x65,
0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4c, 0x69, 0x6d, 0x69,
0x74, 0x73, 0x52, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x63, 0x0a, 0x14, 0x70, 0x61,
0x73, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x63, 0x68, 0x65,
0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69,
0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68,
0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65,
0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x12, 0x70, 0x61, 0x73,
0x73, 0x69, 0x76, 0x65, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12,
0x73, 0x0a, 0x1c, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x62, 0x6f,
0x75, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,
0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72,
0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x32,
0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6e,
0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x1a, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63,
0x65, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74,
0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5a, 0x0a, 0x11, 0x6d, 0x65, 0x73, 0x68, 0x5f, 0x67, 0x61, 0x74,
0x65, 0x77, 0x61, 0x79, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32,
0x2e, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73,
0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
0x4d, 0x65, 0x73, 0x68, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x52,
0x0f, 0x6d, 0x65, 0x73, 0x68, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x6f, 0x64, 0x65,
0x22, 0xfd, 0x01, 0x0a, 0x0e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4c, 0x69, 0x6d,
0x69, 0x74, 0x73, 0x12, 0x45, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55,
0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x43,
0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4e, 0x0a, 0x14, 0x6d, 0x61,
0x78, 0x5f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33,
0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x50, 0x65, 0x6e, 0x64, 0x69,
0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x54, 0x0a, 0x17, 0x6d, 0x61,
0x78, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49,
0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x6d, 0x61, 0x78, 0x43, 0x6f,
0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73,
0x22, 0xaa, 0x01, 0x0a, 0x12, 0x50, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x48, 0x65, 0x61, 0x6c,
0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x35, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72,
0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x21,
0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x18, 0x02,
0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65,
0x73, 0x12, 0x3a, 0x0a, 0x19, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x69, 0x6e, 0x67, 0x5f, 0x63,
0x6f, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x35, 0x78, 0x78, 0x18, 0x03,
0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x69, 0x6e, 0x67, 0x43,
0x6f, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x74, 0x69, 0x76, 0x65, 0x35, 0x78, 0x78, 0x42, 0x9c, 0x02,
0x0a, 0x21, 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e,
0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x32, 0x62, 0x65,
0x74, 0x61, 0x31, 0x42, 0x1b, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x43, 0x6f,
0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f,
0x50, 0x01, 0x5a, 0x43, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68,
0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2f,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2f, 0x70, 0x62, 0x6d,
0x65, 0x73, 0x68, 0x2f, 0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x6d, 0x65, 0x73, 0x68,
0x76, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x48, 0x43, 0x4d, 0xaa, 0x02, 0x1d,
0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c,
0x2e, 0x4d, 0x65, 0x73, 0x68, 0x2e, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1d,
0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x5c, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c,
0x5c, 0x4d, 0x65, 0x73, 0x68, 0x5c, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x29,
0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x5c, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c,
0x5c, 0x4d, 0x65, 0x73, 0x68, 0x5c, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50,
0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x20, 0x48, 0x61, 0x73, 0x68,
0x69, 0x63, 0x6f, 0x72, 0x70, 0x3a, 0x3a, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x3a, 0x3a, 0x4d,
0x65, 0x73, 0x68, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x33,
}
var (
file_pbmesh_v2beta1_upstreams_configuration_proto_rawDescOnce sync.Once
file_pbmesh_v2beta1_upstreams_configuration_proto_rawDescData = file_pbmesh_v2beta1_upstreams_configuration_proto_rawDesc
)
func file_pbmesh_v2beta1_upstreams_configuration_proto_rawDescGZIP() []byte {
file_pbmesh_v2beta1_upstreams_configuration_proto_rawDescOnce.Do(func() {
file_pbmesh_v2beta1_upstreams_configuration_proto_rawDescData = protoimpl.X.CompressGZIP(file_pbmesh_v2beta1_upstreams_configuration_proto_rawDescData)
})
return file_pbmesh_v2beta1_upstreams_configuration_proto_rawDescData
}
var file_pbmesh_v2beta1_upstreams_configuration_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
var file_pbmesh_v2beta1_upstreams_configuration_proto_goTypes = []interface{}{
(*UpstreamsConfiguration)(nil), // 0: hashicorp.consul.mesh.v2beta1.UpstreamsConfiguration
(*UpstreamConfigOverrides)(nil), // 1: hashicorp.consul.mesh.v2beta1.UpstreamConfigOverrides
(*UpstreamConfig)(nil), // 2: hashicorp.consul.mesh.v2beta1.UpstreamConfig
(*UpstreamLimits)(nil), // 3: hashicorp.consul.mesh.v2beta1.UpstreamLimits
(*PassiveHealthCheck)(nil), // 4: hashicorp.consul.mesh.v2beta1.PassiveHealthCheck
(*v2beta1.WorkloadSelector)(nil), // 5: hashicorp.consul.catalog.v2beta1.WorkloadSelector
(*pbresource.Reference)(nil), // 6: hashicorp.consul.resource.Reference
(v2beta1.Protocol)(0), // 7: hashicorp.consul.catalog.v2beta1.Protocol
(*durationpb.Duration)(nil), // 8: google.protobuf.Duration
(BalanceConnections)(0), // 9: hashicorp.consul.mesh.v2beta1.BalanceConnections
(MeshGatewayMode)(0), // 10: hashicorp.consul.mesh.v2beta1.MeshGatewayMode
(*wrapperspb.UInt32Value)(nil), // 11: google.protobuf.UInt32Value
}
var file_pbmesh_v2beta1_upstreams_configuration_proto_depIdxs = []int32{
5, // 0: hashicorp.consul.mesh.v2beta1.UpstreamsConfiguration.workloads:type_name -> hashicorp.consul.catalog.v2beta1.WorkloadSelector
2, // 1: hashicorp.consul.mesh.v2beta1.UpstreamsConfiguration.default_config:type_name -> hashicorp.consul.mesh.v2beta1.UpstreamConfig
1, // 2: hashicorp.consul.mesh.v2beta1.UpstreamsConfiguration.config_overrides:type_name -> hashicorp.consul.mesh.v2beta1.UpstreamConfigOverrides
6, // 3: hashicorp.consul.mesh.v2beta1.UpstreamConfigOverrides.destination_ref:type_name -> hashicorp.consul.resource.Reference
2, // 4: hashicorp.consul.mesh.v2beta1.UpstreamConfigOverrides.config:type_name -> hashicorp.consul.mesh.v2beta1.UpstreamConfig
7, // 5: hashicorp.consul.mesh.v2beta1.UpstreamConfig.protocol:type_name -> hashicorp.consul.catalog.v2beta1.Protocol
8, // 6: hashicorp.consul.mesh.v2beta1.UpstreamConfig.connect_timeout:type_name -> google.protobuf.Duration
3, // 7: hashicorp.consul.mesh.v2beta1.UpstreamConfig.limits:type_name -> hashicorp.consul.mesh.v2beta1.UpstreamLimits
4, // 8: hashicorp.consul.mesh.v2beta1.UpstreamConfig.passive_health_check:type_name -> hashicorp.consul.mesh.v2beta1.PassiveHealthCheck
9, // 9: hashicorp.consul.mesh.v2beta1.UpstreamConfig.balance_outbound_connections:type_name -> hashicorp.consul.mesh.v2beta1.BalanceConnections
10, // 10: hashicorp.consul.mesh.v2beta1.UpstreamConfig.mesh_gateway_mode:type_name -> hashicorp.consul.mesh.v2beta1.MeshGatewayMode
11, // 11: hashicorp.consul.mesh.v2beta1.UpstreamLimits.max_connections:type_name -> google.protobuf.UInt32Value
11, // 12: hashicorp.consul.mesh.v2beta1.UpstreamLimits.max_pending_requests:type_name -> google.protobuf.UInt32Value
11, // 13: hashicorp.consul.mesh.v2beta1.UpstreamLimits.max_concurrent_requests:type_name -> google.protobuf.UInt32Value
8, // 14: hashicorp.consul.mesh.v2beta1.PassiveHealthCheck.interval:type_name -> google.protobuf.Duration
15, // [15:15] is the sub-list for method output_type
15, // [15:15] is the sub-list for method input_type
15, // [15:15] is the sub-list for extension type_name
15, // [15:15] is the sub-list for extension extendee
0, // [0:15] is the sub-list for field type_name
}
func init() { file_pbmesh_v2beta1_upstreams_configuration_proto_init() }
func file_pbmesh_v2beta1_upstreams_configuration_proto_init() {
if File_pbmesh_v2beta1_upstreams_configuration_proto != nil {
return
}
file_pbmesh_v2beta1_connection_proto_init()
file_pbmesh_v2beta1_routing_proto_init()
if !protoimpl.UnsafeEnabled {
file_pbmesh_v2beta1_upstreams_configuration_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UpstreamsConfiguration); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_pbmesh_v2beta1_upstreams_configuration_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UpstreamConfigOverrides); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_pbmesh_v2beta1_upstreams_configuration_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UpstreamConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_pbmesh_v2beta1_upstreams_configuration_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UpstreamLimits); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_pbmesh_v2beta1_upstreams_configuration_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PassiveHealthCheck); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_pbmesh_v2beta1_upstreams_configuration_proto_rawDesc,
NumEnums: 0,
NumMessages: 5,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_pbmesh_v2beta1_upstreams_configuration_proto_goTypes,
DependencyIndexes: file_pbmesh_v2beta1_upstreams_configuration_proto_depIdxs,
MessageInfos: file_pbmesh_v2beta1_upstreams_configuration_proto_msgTypes,
}.Build()
File_pbmesh_v2beta1_upstreams_configuration_proto = out.File
file_pbmesh_v2beta1_upstreams_configuration_proto_rawDesc = nil
file_pbmesh_v2beta1_upstreams_configuration_proto_goTypes = nil
file_pbmesh_v2beta1_upstreams_configuration_proto_depIdxs = nil
}