mirror of https://github.com/status-im/consul.git
parent
c42ea82883
commit
1950ebbe1f
|
@ -635,7 +635,7 @@ func TestAgent_Service(t *testing.T) {
|
||||||
req, _ := http.NewRequest("GET", tt.url, nil)
|
req, _ := http.NewRequest("GET", tt.url, nil)
|
||||||
|
|
||||||
// Inject the root token for tests that don't care about ACL
|
// Inject the root token for tests that don't care about ACL
|
||||||
var token = "root"
|
token := "root"
|
||||||
if tt.tokenRules != "" {
|
if tt.tokenRules != "" {
|
||||||
// Create new token and use that.
|
// Create new token and use that.
|
||||||
token = testCreateToken(t, a, tt.tokenRules)
|
token = testCreateToken(t, a, tt.tokenRules)
|
||||||
|
@ -2131,7 +2131,6 @@ func TestAgent_ForceLeave(t *testing.T) {
|
||||||
r.Fatalf("got status %q want %q", got, want)
|
r.Fatalf("got status %q want %q", got, want)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestOpenMetricsMimeTypeHeaders(t *testing.T) {
|
func TestOpenMetricsMimeTypeHeaders(t *testing.T) {
|
||||||
|
@ -2185,7 +2184,7 @@ func TestAgent_ForceLeave_ACLDeny(t *testing.T) {
|
||||||
|
|
||||||
t.Run("operator write token", func(t *testing.T) {
|
t.Run("operator write token", func(t *testing.T) {
|
||||||
// Create an ACL with operator read permissions.
|
// Create an ACL with operator read permissions.
|
||||||
var rules = `
|
rules := `
|
||||||
operator = "write"
|
operator = "write"
|
||||||
`
|
`
|
||||||
opToken := testCreateToken(t, a, rules)
|
opToken := testCreateToken(t, a, rules)
|
||||||
|
@ -2226,7 +2225,6 @@ func TestAgent_ForceLeavePrune(t *testing.T) {
|
||||||
if member.Status != serf.StatusFailed {
|
if member.Status != serf.StatusFailed {
|
||||||
r.Fatalf("got status %q want %q", member.Status, serf.StatusFailed)
|
r.Fatalf("got status %q want %q", member.Status, serf.StatusFailed)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -2246,7 +2244,6 @@ func TestAgent_ForceLeavePrune(t *testing.T) {
|
||||||
r.Fatalf("want one member, got %v", m)
|
r.Fatalf("want one member, got %v", m)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestAgent_RegisterCheck(t *testing.T) {
|
func TestAgent_RegisterCheck(t *testing.T) {
|
||||||
|
@ -2646,7 +2643,6 @@ func TestAgent_RegisterCheck_ACLDeny(t *testing.T) {
|
||||||
require.NoError(r, err)
|
require.NoError(r, err)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestAgent_DeregisterCheck(t *testing.T) {
|
func TestAgent_DeregisterCheck(t *testing.T) {
|
||||||
|
@ -3335,6 +3331,7 @@ func testAgent_RegisterService_TranslateKeys(t *testing.T, extraHCL string) {
|
||||||
{
|
{
|
||||||
"destination_type": "service",
|
"destination_type": "service",
|
||||||
"destination_namespace": "default",
|
"destination_namespace": "default",
|
||||||
|
"destination_partition": "default",
|
||||||
"destination_name": "db",
|
"destination_name": "db",
|
||||||
"local_bind_address": "` + tt.ip + `",
|
"local_bind_address": "` + tt.ip + `",
|
||||||
"local_bind_port": 1234,
|
"local_bind_port": 1234,
|
||||||
|
@ -3363,6 +3360,7 @@ func testAgent_RegisterService_TranslateKeys(t *testing.T, extraHCL string) {
|
||||||
{
|
{
|
||||||
"destination_type": "service",
|
"destination_type": "service",
|
||||||
"destination_namespace": "default",
|
"destination_namespace": "default",
|
||||||
|
"destination_partition": "default",
|
||||||
"destination_name": "db",
|
"destination_name": "db",
|
||||||
"local_bind_address": "` + tt.ip + `",
|
"local_bind_address": "` + tt.ip + `",
|
||||||
"local_bind_port": 1234,
|
"local_bind_port": 1234,
|
||||||
|
@ -3420,6 +3418,7 @@ func testAgent_RegisterService_TranslateKeys(t *testing.T, extraHCL string) {
|
||||||
DestinationType: structs.UpstreamDestTypeService,
|
DestinationType: structs.UpstreamDestTypeService,
|
||||||
DestinationName: "db",
|
DestinationName: "db",
|
||||||
DestinationNamespace: "default",
|
DestinationNamespace: "default",
|
||||||
|
DestinationPartition: "default",
|
||||||
LocalBindAddress: tt.ip,
|
LocalBindAddress: tt.ip,
|
||||||
LocalBindPort: 1234,
|
LocalBindPort: 1234,
|
||||||
Config: map[string]interface{}{
|
Config: map[string]interface{}{
|
||||||
|
@ -3463,6 +3462,7 @@ func testAgent_RegisterService_TranslateKeys(t *testing.T, extraHCL string) {
|
||||||
DestinationType: structs.UpstreamDestTypeService,
|
DestinationType: structs.UpstreamDestTypeService,
|
||||||
DestinationName: "db",
|
DestinationName: "db",
|
||||||
DestinationNamespace: "default",
|
DestinationNamespace: "default",
|
||||||
|
DestinationPartition: "default",
|
||||||
LocalBindAddress: tt.ip,
|
LocalBindAddress: tt.ip,
|
||||||
LocalBindPort: 1234,
|
LocalBindPort: 1234,
|
||||||
Config: map[string]interface{}{
|
Config: map[string]interface{}{
|
||||||
|
@ -3662,6 +3662,10 @@ func testAgent_RegisterService_UnmanagedConnectProxy(t *testing.T, extraHCL stri
|
||||||
args.Proxy.Upstreams[i].DestinationNamespace =
|
args.Proxy.Upstreams[i].DestinationNamespace =
|
||||||
structs.DefaultEnterpriseMetaInDefaultPartition().NamespaceOrEmpty()
|
structs.DefaultEnterpriseMetaInDefaultPartition().NamespaceOrEmpty()
|
||||||
}
|
}
|
||||||
|
if args.Proxy.Upstreams[i].DestinationPartition == "" {
|
||||||
|
args.Proxy.Upstreams[i].DestinationPartition =
|
||||||
|
structs.DefaultEnterpriseMetaInDefaultPartition().PartitionOrEmpty()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
require.Equal(t, args.Proxy, svc.Proxy.ToAPI())
|
require.Equal(t, args.Proxy, svc.Proxy.ToAPI())
|
||||||
|
|
|
@ -366,7 +366,7 @@ func (b *builder) build() (rt RuntimeConfig, err error) {
|
||||||
// process/merge some complex values
|
// process/merge some complex values
|
||||||
//
|
//
|
||||||
|
|
||||||
var dnsServiceTTL = map[string]time.Duration{}
|
dnsServiceTTL := map[string]time.Duration{}
|
||||||
for k, v := range c.DNS.ServiceTTL {
|
for k, v := range c.DNS.ServiceTTL {
|
||||||
dnsServiceTTL[k] = b.durationVal(fmt.Sprintf("dns_config.service_ttl[%q]", k), &v)
|
dnsServiceTTL[k] = b.durationVal(fmt.Sprintf("dns_config.service_ttl[%q]", k), &v)
|
||||||
}
|
}
|
||||||
|
@ -1181,10 +1181,9 @@ func validateBasicName(field, value string, allowEmpty bool) error {
|
||||||
|
|
||||||
// validate performs semantic validation of the runtime configuration.
|
// validate performs semantic validation of the runtime configuration.
|
||||||
func (b *builder) validate(rt RuntimeConfig) error {
|
func (b *builder) validate(rt RuntimeConfig) error {
|
||||||
|
|
||||||
// validContentPath defines a regexp for a valid content path name.
|
// validContentPath defines a regexp for a valid content path name.
|
||||||
var validContentPath = regexp.MustCompile(`^[A-Za-z0-9/_-]+$`)
|
validContentPath := regexp.MustCompile(`^[A-Za-z0-9/_-]+$`)
|
||||||
var hasVersion = regexp.MustCompile(`^/v\d+/$`)
|
hasVersion := regexp.MustCompile(`^/v\d+/$`)
|
||||||
// ----------------------------------------------------------------
|
// ----------------------------------------------------------------
|
||||||
// check required params we cannot recover from first
|
// check required params we cannot recover from first
|
||||||
//
|
//
|
||||||
|
@ -1651,7 +1650,6 @@ func (b *builder) serviceVal(v *ServiceDefinition) *structs.ServiceDefinition {
|
||||||
b.err = multierror.Append(
|
b.err = multierror.Append(
|
||||||
fmt.Errorf("service %s cannot have both socket path %s and address/port",
|
fmt.Errorf("service %s cannot have both socket path %s and address/port",
|
||||||
stringVal(v.Name), stringVal(v.SocketPath)), b.err)
|
stringVal(v.Name), stringVal(v.SocketPath)), b.err)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return &structs.ServiceDefinition{
|
return &structs.ServiceDefinition{
|
||||||
|
@ -1718,6 +1716,7 @@ func (b *builder) upstreamsVal(v []Upstream) structs.Upstreams {
|
||||||
ups[i] = structs.Upstream{
|
ups[i] = structs.Upstream{
|
||||||
DestinationType: stringVal(u.DestinationType),
|
DestinationType: stringVal(u.DestinationType),
|
||||||
DestinationNamespace: stringVal(u.DestinationNamespace),
|
DestinationNamespace: stringVal(u.DestinationNamespace),
|
||||||
|
DestinationPartition: stringVal(u.DestinationPartition),
|
||||||
DestinationName: stringVal(u.DestinationName),
|
DestinationName: stringVal(u.DestinationName),
|
||||||
Datacenter: stringVal(u.Datacenter),
|
Datacenter: stringVal(u.Datacenter),
|
||||||
LocalBindAddress: stringVal(u.LocalBindAddress),
|
LocalBindAddress: stringVal(u.LocalBindAddress),
|
||||||
|
@ -2369,7 +2368,6 @@ func validateAutoConfigAuthorizer(rt RuntimeConfig) error {
|
||||||
// build out the validator to ensure that the given configuration was valid
|
// build out the validator to ensure that the given configuration was valid
|
||||||
null := hclog.NewNullLogger()
|
null := hclog.NewNullLogger()
|
||||||
validator, err := ssoauth.NewValidator(null, &authz.AuthMethod)
|
validator, err := ssoauth.NewValidator(null, &authz.AuthMethod)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("auto_config.authorization.static has invalid configuration: %v", err)
|
return fmt.Errorf("auto_config.authorization.static has invalid configuration: %v", err)
|
||||||
}
|
}
|
||||||
|
|
|
@ -511,6 +511,7 @@ type Upstream struct {
|
||||||
// on service definitions in various places.
|
// on service definitions in various places.
|
||||||
DestinationType *string `mapstructure:"destination_type"`
|
DestinationType *string `mapstructure:"destination_type"`
|
||||||
DestinationNamespace *string `mapstructure:"destination_namespace"`
|
DestinationNamespace *string `mapstructure:"destination_namespace"`
|
||||||
|
DestinationPartition *string `mapstructure:"destination_partition"`
|
||||||
DestinationName *string `mapstructure:"destination_name"`
|
DestinationName *string `mapstructure:"destination_name"`
|
||||||
|
|
||||||
// Datacenter that the service discovery request should be run against. Note
|
// Datacenter that the service discovery request should be run against. Note
|
||||||
|
|
|
@ -5656,6 +5656,7 @@ func TestLoad_FullConfig(t *testing.T) {
|
||||||
{
|
{
|
||||||
DestinationType: "service", // Default should be explicitly filled
|
DestinationType: "service", // Default should be explicitly filled
|
||||||
DestinationName: "KPtAj2cb",
|
DestinationName: "KPtAj2cb",
|
||||||
|
DestinationPartition: defaultEntMeta.PartitionOrEmpty(),
|
||||||
DestinationNamespace: defaultEntMeta.NamespaceOrEmpty(),
|
DestinationNamespace: defaultEntMeta.NamespaceOrEmpty(),
|
||||||
LocalBindPort: 4051,
|
LocalBindPort: 4051,
|
||||||
Config: map[string]interface{}{
|
Config: map[string]interface{}{
|
||||||
|
@ -5665,6 +5666,7 @@ func TestLoad_FullConfig(t *testing.T) {
|
||||||
{
|
{
|
||||||
DestinationType: "prepared_query",
|
DestinationType: "prepared_query",
|
||||||
DestinationNamespace: "9nakw0td",
|
DestinationNamespace: "9nakw0td",
|
||||||
|
DestinationPartition: "part-9nakw0td",
|
||||||
DestinationName: "KSd8HsRl",
|
DestinationName: "KSd8HsRl",
|
||||||
LocalBindPort: 11884,
|
LocalBindPort: 11884,
|
||||||
LocalBindAddress: "127.24.88.0",
|
LocalBindAddress: "127.24.88.0",
|
||||||
|
@ -5672,6 +5674,7 @@ func TestLoad_FullConfig(t *testing.T) {
|
||||||
{
|
{
|
||||||
DestinationType: "prepared_query",
|
DestinationType: "prepared_query",
|
||||||
DestinationNamespace: "9nakw0td",
|
DestinationNamespace: "9nakw0td",
|
||||||
|
DestinationPartition: "part-9nakw0td",
|
||||||
DestinationName: "placeholder",
|
DestinationName: "placeholder",
|
||||||
LocalBindSocketPath: "/foo/bar/upstream",
|
LocalBindSocketPath: "/foo/bar/upstream",
|
||||||
LocalBindSocketMode: "0600",
|
LocalBindSocketMode: "0600",
|
||||||
|
|
|
@ -576,6 +576,7 @@ services = [
|
||||||
{
|
{
|
||||||
destination_type = "prepared_query"
|
destination_type = "prepared_query"
|
||||||
destination_namespace = "9nakw0td"
|
destination_namespace = "9nakw0td"
|
||||||
|
destination_partition = "part-9nakw0td"
|
||||||
destination_name = "KSd8HsRl"
|
destination_name = "KSd8HsRl"
|
||||||
local_bind_port = 11884
|
local_bind_port = 11884
|
||||||
local_bind_address = "127.24.88.0"
|
local_bind_address = "127.24.88.0"
|
||||||
|
@ -583,6 +584,7 @@ services = [
|
||||||
{
|
{
|
||||||
destination_type = "prepared_query"
|
destination_type = "prepared_query"
|
||||||
destination_namespace = "9nakw0td"
|
destination_namespace = "9nakw0td"
|
||||||
|
destination_partition = "part-9nakw0td"
|
||||||
destination_name = "placeholder"
|
destination_name = "placeholder"
|
||||||
local_bind_socket_path = "/foo/bar/upstream"
|
local_bind_socket_path = "/foo/bar/upstream"
|
||||||
local_bind_socket_mode = "0600"
|
local_bind_socket_mode = "0600"
|
||||||
|
|
|
@ -589,6 +589,7 @@
|
||||||
{
|
{
|
||||||
"destination_name": "KSd8HsRl",
|
"destination_name": "KSd8HsRl",
|
||||||
"destination_namespace": "9nakw0td",
|
"destination_namespace": "9nakw0td",
|
||||||
|
"destination_partition": "part-9nakw0td",
|
||||||
"destination_type": "prepared_query",
|
"destination_type": "prepared_query",
|
||||||
"local_bind_address": "127.24.88.0",
|
"local_bind_address": "127.24.88.0",
|
||||||
"local_bind_port": 11884
|
"local_bind_port": 11884
|
||||||
|
@ -596,6 +597,7 @@
|
||||||
{
|
{
|
||||||
"destination_name": "placeholder",
|
"destination_name": "placeholder",
|
||||||
"destination_namespace": "9nakw0td",
|
"destination_namespace": "9nakw0td",
|
||||||
|
"destination_partition": "part-9nakw0td",
|
||||||
"destination_type": "prepared_query",
|
"destination_type": "prepared_query",
|
||||||
"local_bind_socket_path": "/foo/bar/upstream",
|
"local_bind_socket_path": "/foo/bar/upstream",
|
||||||
"local_bind_socket_mode": "0600"
|
"local_bind_socket_mode": "0600"
|
||||||
|
|
|
@ -55,6 +55,7 @@ func (c *DiscoveryChain) Get(args *structs.DiscoveryChainRequest, reply *structs
|
||||||
req := discoverychain.CompileRequest{
|
req := discoverychain.CompileRequest{
|
||||||
ServiceName: args.Name,
|
ServiceName: args.Name,
|
||||||
EvaluateInNamespace: entMeta.NamespaceOrDefault(),
|
EvaluateInNamespace: entMeta.NamespaceOrDefault(),
|
||||||
|
EvaluateInPartition: entMeta.PartitionOrDefault(),
|
||||||
EvaluateInDatacenter: evalDC,
|
EvaluateInDatacenter: evalDC,
|
||||||
UseInDatacenter: c.srv.config.Datacenter,
|
UseInDatacenter: c.srv.config.Datacenter,
|
||||||
OverrideMeshGateway: args.OverrideMeshGateway,
|
OverrideMeshGateway: args.OverrideMeshGateway,
|
||||||
|
|
|
@ -15,6 +15,7 @@ import (
|
||||||
type CompileRequest struct {
|
type CompileRequest struct {
|
||||||
ServiceName string
|
ServiceName string
|
||||||
EvaluateInNamespace string
|
EvaluateInNamespace string
|
||||||
|
EvaluateInPartition string
|
||||||
EvaluateInDatacenter string
|
EvaluateInDatacenter string
|
||||||
EvaluateInTrustDomain string
|
EvaluateInTrustDomain string
|
||||||
UseInDatacenter string // where the results will be used from
|
UseInDatacenter string // where the results will be used from
|
||||||
|
@ -906,11 +907,9 @@ RESOLVE_AGAIN:
|
||||||
// TODO (mesh-gateway)- maybe allow using a gateway within a datacenter at some point
|
// TODO (mesh-gateway)- maybe allow using a gateway within a datacenter at some point
|
||||||
if target.Datacenter == c.useInDatacenter {
|
if target.Datacenter == c.useInDatacenter {
|
||||||
target.MeshGateway.Mode = structs.MeshGatewayModeDefault
|
target.MeshGateway.Mode = structs.MeshGatewayModeDefault
|
||||||
|
|
||||||
} else if target.External {
|
} else if target.External {
|
||||||
// Bypass mesh gateways if it is an external service.
|
// Bypass mesh gateways if it is an external service.
|
||||||
target.MeshGateway.Mode = structs.MeshGatewayModeDefault
|
target.MeshGateway.Mode = structs.MeshGatewayModeDefault
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// Default mesh gateway settings
|
// Default mesh gateway settings
|
||||||
if serviceDefault := c.entries.GetService(targetID); serviceDefault != nil {
|
if serviceDefault := c.entries.GetService(targetID); serviceDefault != nil {
|
||||||
|
|
|
@ -162,6 +162,7 @@ func (s *handlerConnectProxy) initialize(ctx context.Context) (ConfigSnapshot, e
|
||||||
case structs.UpstreamDestTypeService:
|
case structs.UpstreamDestTypeService:
|
||||||
fallthrough
|
fallthrough
|
||||||
|
|
||||||
|
// TODO (partition): pass Partition to DiscoveryChainRequest?
|
||||||
case "": // Treat unset as the default Service type
|
case "": // Treat unset as the default Service type
|
||||||
err = s.cache.Notify(ctx, cachetype.CompiledDiscoveryChainName, &structs.DiscoveryChainRequest{
|
err = s.cache.Notify(ctx, cachetype.CompiledDiscoveryChainName, &structs.DiscoveryChainRequest{
|
||||||
Datacenter: s.source.Datacenter,
|
Datacenter: s.source.Datacenter,
|
||||||
|
|
|
@ -103,6 +103,7 @@ func (s *handlerIngressGateway) handleUpdate(ctx context.Context, u cache.Update
|
||||||
id: u.Identifier(),
|
id: u.Identifier(),
|
||||||
name: u.DestinationName,
|
name: u.DestinationName,
|
||||||
namespace: u.DestinationNamespace,
|
namespace: u.DestinationNamespace,
|
||||||
|
partition: u.DestinationPartition,
|
||||||
datacenter: s.source.Datacenter,
|
datacenter: s.source.Datacenter,
|
||||||
}
|
}
|
||||||
up := &handlerUpstreams{handlerState: s.handlerState}
|
up := &handlerUpstreams{handlerState: s.handlerState}
|
||||||
|
@ -146,6 +147,7 @@ func makeUpstream(g *structs.GatewayService) structs.Upstream {
|
||||||
upstream := structs.Upstream{
|
upstream := structs.Upstream{
|
||||||
DestinationName: g.Service.Name,
|
DestinationName: g.Service.Name,
|
||||||
DestinationNamespace: g.Service.NamespaceOrDefault(),
|
DestinationNamespace: g.Service.NamespaceOrDefault(),
|
||||||
|
DestinationPartition: g.Gateway.PartitionOrDefault(),
|
||||||
LocalBindPort: g.Port,
|
LocalBindPort: g.Port,
|
||||||
IngressHosts: g.Hosts,
|
IngressHosts: g.Hosts,
|
||||||
// Pass the protocol that was configured on the ingress listener in order
|
// Pass the protocol that was configured on the ingress listener in order
|
||||||
|
|
|
@ -969,6 +969,7 @@ func TestState_WatchesAndUpdates(t *testing.T) {
|
||||||
require.Equal(t, snap.IngressGateway.Upstreams[key], structs.Upstreams{
|
require.Equal(t, snap.IngressGateway.Upstreams[key], structs.Upstreams{
|
||||||
{
|
{
|
||||||
DestinationNamespace: "default",
|
DestinationNamespace: "default",
|
||||||
|
DestinationPartition: "default",
|
||||||
DestinationName: "api",
|
DestinationName: "api",
|
||||||
LocalBindPort: 9999,
|
LocalBindPort: 9999,
|
||||||
Config: map[string]interface{}{
|
Config: map[string]interface{}{
|
||||||
|
|
|
@ -345,6 +345,7 @@ type discoveryChainWatchOpts struct {
|
||||||
id string
|
id string
|
||||||
name string
|
name string
|
||||||
namespace string
|
namespace string
|
||||||
|
partition string
|
||||||
datacenter string
|
datacenter string
|
||||||
cfg reducedUpstreamConfig
|
cfg reducedUpstreamConfig
|
||||||
meshGateway structs.MeshGatewayConfig
|
meshGateway structs.MeshGatewayConfig
|
||||||
|
|
|
@ -398,6 +398,7 @@ func mergeServiceConfig(defaults *structs.ServiceConfigResponse, service *struct
|
||||||
|
|
||||||
remoteUpstreams[us.Upstream] = structs.Upstream{
|
remoteUpstreams[us.Upstream] = structs.Upstream{
|
||||||
DestinationNamespace: us.Upstream.NamespaceOrDefault(),
|
DestinationNamespace: us.Upstream.NamespaceOrDefault(),
|
||||||
|
DestinationPartition: us.Upstream.PartitionOrDefault(),
|
||||||
DestinationName: us.Upstream.ID,
|
DestinationName: us.Upstream.ID,
|
||||||
Config: us.Config,
|
Config: us.Config,
|
||||||
MeshGateway: parsed.MeshGateway,
|
MeshGateway: parsed.MeshGateway,
|
||||||
|
|
|
@ -117,6 +117,7 @@ func TestServiceManager_RegisterSidecar(t *testing.T) {
|
||||||
{
|
{
|
||||||
DestinationName: "redis",
|
DestinationName: "redis",
|
||||||
DestinationNamespace: "default",
|
DestinationNamespace: "default",
|
||||||
|
DestinationPartition: "default",
|
||||||
LocalBindPort: 5000,
|
LocalBindPort: 5000,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -147,6 +148,7 @@ func TestServiceManager_RegisterSidecar(t *testing.T) {
|
||||||
{
|
{
|
||||||
DestinationName: "redis",
|
DestinationName: "redis",
|
||||||
DestinationNamespace: "default",
|
DestinationNamespace: "default",
|
||||||
|
DestinationPartition: "default",
|
||||||
LocalBindPort: 5000,
|
LocalBindPort: 5000,
|
||||||
Config: map[string]interface{}{
|
Config: map[string]interface{}{
|
||||||
"protocol": "tcp",
|
"protocol": "tcp",
|
||||||
|
@ -348,6 +350,7 @@ func TestServiceManager_PersistService_API(t *testing.T) {
|
||||||
{
|
{
|
||||||
DestinationName: "redis",
|
DestinationName: "redis",
|
||||||
DestinationNamespace: "default",
|
DestinationNamespace: "default",
|
||||||
|
DestinationPartition: "default",
|
||||||
LocalBindPort: 5000,
|
LocalBindPort: 5000,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -375,6 +378,7 @@ func TestServiceManager_PersistService_API(t *testing.T) {
|
||||||
{
|
{
|
||||||
DestinationName: "redis",
|
DestinationName: "redis",
|
||||||
DestinationNamespace: "default",
|
DestinationNamespace: "default",
|
||||||
|
DestinationPartition: "default",
|
||||||
LocalBindPort: 5000,
|
LocalBindPort: 5000,
|
||||||
Config: map[string]interface{}{
|
Config: map[string]interface{}{
|
||||||
"protocol": "tcp",
|
"protocol": "tcp",
|
||||||
|
@ -567,6 +571,7 @@ func TestServiceManager_PersistService_ConfigFiles(t *testing.T) {
|
||||||
upstreams = [{
|
upstreams = [{
|
||||||
destination_name = "redis"
|
destination_name = "redis"
|
||||||
destination_namespace = "default"
|
destination_namespace = "default"
|
||||||
|
destination_partition = "default"
|
||||||
local_bind_port = 5000
|
local_bind_port = 5000
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
|
@ -612,6 +617,7 @@ func TestServiceManager_PersistService_ConfigFiles(t *testing.T) {
|
||||||
DestinationType: "service",
|
DestinationType: "service",
|
||||||
DestinationName: "redis",
|
DestinationName: "redis",
|
||||||
DestinationNamespace: "default",
|
DestinationNamespace: "default",
|
||||||
|
DestinationPartition: "default",
|
||||||
LocalBindPort: 5000,
|
LocalBindPort: 5000,
|
||||||
Config: map[string]interface{}{
|
Config: map[string]interface{}{
|
||||||
"protocol": "tcp",
|
"protocol": "tcp",
|
||||||
|
@ -909,6 +915,7 @@ func Test_mergeServiceConfig_UpstreamOverrides(t *testing.T) {
|
||||||
Upstreams: structs.Upstreams{
|
Upstreams: structs.Upstreams{
|
||||||
structs.Upstream{
|
structs.Upstream{
|
||||||
DestinationNamespace: "default",
|
DestinationNamespace: "default",
|
||||||
|
DestinationPartition: "default",
|
||||||
DestinationName: "zap",
|
DestinationName: "zap",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -924,6 +931,7 @@ func Test_mergeServiceConfig_UpstreamOverrides(t *testing.T) {
|
||||||
Upstreams: structs.Upstreams{
|
Upstreams: structs.Upstreams{
|
||||||
structs.Upstream{
|
structs.Upstream{
|
||||||
DestinationNamespace: "default",
|
DestinationNamespace: "default",
|
||||||
|
DestinationPartition: "default",
|
||||||
DestinationName: "zap",
|
DestinationName: "zap",
|
||||||
Config: map[string]interface{}{
|
Config: map[string]interface{}{
|
||||||
"passive_health_check": map[string]interface{}{
|
"passive_health_check": map[string]interface{}{
|
||||||
|
@ -970,6 +978,7 @@ func Test_mergeServiceConfig_UpstreamOverrides(t *testing.T) {
|
||||||
Upstreams: structs.Upstreams{
|
Upstreams: structs.Upstreams{
|
||||||
structs.Upstream{
|
structs.Upstream{
|
||||||
DestinationNamespace: "default",
|
DestinationNamespace: "default",
|
||||||
|
DestinationPartition: "default",
|
||||||
DestinationName: "zip",
|
DestinationName: "zip",
|
||||||
LocalBindPort: 8080,
|
LocalBindPort: 8080,
|
||||||
Config: map[string]interface{}{
|
Config: map[string]interface{}{
|
||||||
|
@ -994,6 +1003,7 @@ func Test_mergeServiceConfig_UpstreamOverrides(t *testing.T) {
|
||||||
Upstreams: structs.Upstreams{
|
Upstreams: structs.Upstreams{
|
||||||
structs.Upstream{
|
structs.Upstream{
|
||||||
DestinationNamespace: "default",
|
DestinationNamespace: "default",
|
||||||
|
DestinationPartition: "default",
|
||||||
DestinationName: "zip",
|
DestinationName: "zip",
|
||||||
LocalBindPort: 8080,
|
LocalBindPort: 8080,
|
||||||
Config: map[string]interface{}{
|
Config: map[string]interface{}{
|
||||||
|
@ -1002,6 +1012,7 @@ func Test_mergeServiceConfig_UpstreamOverrides(t *testing.T) {
|
||||||
},
|
},
|
||||||
structs.Upstream{
|
structs.Upstream{
|
||||||
DestinationNamespace: "default",
|
DestinationNamespace: "default",
|
||||||
|
DestinationPartition: "default",
|
||||||
DestinationName: "zap",
|
DestinationName: "zap",
|
||||||
Config: map[string]interface{}{
|
Config: map[string]interface{}{
|
||||||
"protocol": "grpc",
|
"protocol": "grpc",
|
||||||
|
@ -1038,6 +1049,7 @@ func Test_mergeServiceConfig_UpstreamOverrides(t *testing.T) {
|
||||||
Upstreams: structs.Upstreams{
|
Upstreams: structs.Upstreams{
|
||||||
structs.Upstream{
|
structs.Upstream{
|
||||||
DestinationNamespace: "default",
|
DestinationNamespace: "default",
|
||||||
|
DestinationPartition: "default",
|
||||||
DestinationName: "zip",
|
DestinationName: "zip",
|
||||||
LocalBindPort: 8080,
|
LocalBindPort: 8080,
|
||||||
Config: map[string]interface{}{
|
Config: map[string]interface{}{
|
||||||
|
@ -1058,6 +1070,7 @@ func Test_mergeServiceConfig_UpstreamOverrides(t *testing.T) {
|
||||||
Upstreams: structs.Upstreams{
|
Upstreams: structs.Upstreams{
|
||||||
structs.Upstream{
|
structs.Upstream{
|
||||||
DestinationNamespace: "default",
|
DestinationNamespace: "default",
|
||||||
|
DestinationPartition: "default",
|
||||||
DestinationName: "zip",
|
DestinationName: "zip",
|
||||||
LocalBindPort: 8080,
|
LocalBindPort: 8080,
|
||||||
Config: map[string]interface{}{
|
Config: map[string]interface{}{
|
||||||
|
@ -1098,6 +1111,7 @@ func Test_mergeServiceConfig_UpstreamOverrides(t *testing.T) {
|
||||||
Upstreams: structs.Upstreams{
|
Upstreams: structs.Upstreams{
|
||||||
structs.Upstream{
|
structs.Upstream{
|
||||||
DestinationNamespace: "default",
|
DestinationNamespace: "default",
|
||||||
|
DestinationPartition: "default",
|
||||||
DestinationName: "zap",
|
DestinationName: "zap",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -1116,6 +1130,7 @@ func Test_mergeServiceConfig_UpstreamOverrides(t *testing.T) {
|
||||||
Upstreams: structs.Upstreams{
|
Upstreams: structs.Upstreams{
|
||||||
structs.Upstream{
|
structs.Upstream{
|
||||||
DestinationNamespace: "default",
|
DestinationNamespace: "default",
|
||||||
|
DestinationPartition: "default",
|
||||||
DestinationName: "zap",
|
DestinationName: "zap",
|
||||||
Config: map[string]interface{}{},
|
Config: map[string]interface{}{},
|
||||||
MeshGateway: structs.MeshGatewayConfig{
|
MeshGateway: structs.MeshGatewayConfig{
|
||||||
|
@ -1156,6 +1171,7 @@ func Test_mergeServiceConfig_UpstreamOverrides(t *testing.T) {
|
||||||
Upstreams: structs.Upstreams{
|
Upstreams: structs.Upstreams{
|
||||||
structs.Upstream{
|
structs.Upstream{
|
||||||
DestinationNamespace: "default",
|
DestinationNamespace: "default",
|
||||||
|
DestinationPartition: "default",
|
||||||
DestinationName: "zap",
|
DestinationName: "zap",
|
||||||
MeshGateway: structs.MeshGatewayConfig{
|
MeshGateway: structs.MeshGatewayConfig{
|
||||||
Mode: structs.MeshGatewayModeNone,
|
Mode: structs.MeshGatewayModeNone,
|
||||||
|
@ -1177,6 +1193,7 @@ func Test_mergeServiceConfig_UpstreamOverrides(t *testing.T) {
|
||||||
Upstreams: structs.Upstreams{
|
Upstreams: structs.Upstreams{
|
||||||
structs.Upstream{
|
structs.Upstream{
|
||||||
DestinationNamespace: "default",
|
DestinationNamespace: "default",
|
||||||
|
DestinationPartition: "default",
|
||||||
DestinationName: "zap",
|
DestinationName: "zap",
|
||||||
Config: map[string]interface{}{},
|
Config: map[string]interface{}{},
|
||||||
MeshGateway: structs.MeshGatewayConfig{
|
MeshGateway: structs.MeshGatewayConfig{
|
||||||
|
|
|
@ -1343,6 +1343,7 @@ type DiscoveryChainRequest struct {
|
||||||
Name string
|
Name string
|
||||||
EvaluateInDatacenter string
|
EvaluateInDatacenter string
|
||||||
EvaluateInNamespace string
|
EvaluateInNamespace string
|
||||||
|
EvaluateInPartition string
|
||||||
|
|
||||||
// NOTE: Partition is not represented here by design. Do not add it.
|
// NOTE: Partition is not represented here by design. Do not add it.
|
||||||
|
|
||||||
|
@ -1386,6 +1387,7 @@ func (r *DiscoveryChainRequest) CacheInfo() cache.RequestInfo {
|
||||||
Name string
|
Name string
|
||||||
EvaluateInDatacenter string
|
EvaluateInDatacenter string
|
||||||
EvaluateInNamespace string
|
EvaluateInNamespace string
|
||||||
|
EvaluateInPartition string
|
||||||
OverrideMeshGateway MeshGatewayConfig
|
OverrideMeshGateway MeshGatewayConfig
|
||||||
OverrideProtocol string
|
OverrideProtocol string
|
||||||
OverrideConnectTimeout time.Duration
|
OverrideConnectTimeout time.Duration
|
||||||
|
@ -1394,6 +1396,7 @@ func (r *DiscoveryChainRequest) CacheInfo() cache.RequestInfo {
|
||||||
Name: r.Name,
|
Name: r.Name,
|
||||||
EvaluateInDatacenter: r.EvaluateInDatacenter,
|
EvaluateInDatacenter: r.EvaluateInDatacenter,
|
||||||
EvaluateInNamespace: r.EvaluateInNamespace,
|
EvaluateInNamespace: r.EvaluateInNamespace,
|
||||||
|
EvaluateInPartition: r.EvaluateInPartition,
|
||||||
OverrideMeshGateway: r.OverrideMeshGateway,
|
OverrideMeshGateway: r.OverrideMeshGateway,
|
||||||
OverrideProtocol: r.OverrideProtocol,
|
OverrideProtocol: r.OverrideProtocol,
|
||||||
OverrideConnectTimeout: r.OverrideConnectTimeout,
|
OverrideConnectTimeout: r.OverrideConnectTimeout,
|
||||||
|
|
|
@ -246,7 +246,6 @@ func (t *ConnectProxyConfig) UnmarshalJSON(data []byte) (err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *ConnectProxyConfig) MarshalJSON() ([]byte, error) {
|
func (c *ConnectProxyConfig) MarshalJSON() ([]byte, error) {
|
||||||
|
@ -343,6 +342,7 @@ type Upstream struct {
|
||||||
// on service definitions in various places.
|
// on service definitions in various places.
|
||||||
DestinationType string `alias:"destination_type"`
|
DestinationType string `alias:"destination_type"`
|
||||||
DestinationNamespace string `json:",omitempty" alias:"destination_namespace"`
|
DestinationNamespace string `json:",omitempty" alias:"destination_namespace"`
|
||||||
|
DestinationPartition string `json:",omitempty" alias:"destination_partition"`
|
||||||
DestinationName string `alias:"destination_name"`
|
DestinationName string `alias:"destination_name"`
|
||||||
|
|
||||||
// Datacenter that the service discovery request should be run against. Note
|
// Datacenter that the service discovery request should be run against. Note
|
||||||
|
@ -385,6 +385,7 @@ func (t *Upstream) UnmarshalJSON(data []byte) (err error) {
|
||||||
type Alias Upstream
|
type Alias Upstream
|
||||||
aux := &struct {
|
aux := &struct {
|
||||||
DestinationTypeSnake string `json:"destination_type"`
|
DestinationTypeSnake string `json:"destination_type"`
|
||||||
|
DestinationPartitionSnake string `json:"destination_partition"`
|
||||||
DestinationNamespaceSnake string `json:"destination_namespace"`
|
DestinationNamespaceSnake string `json:"destination_namespace"`
|
||||||
DestinationNameSnake string `json:"destination_name"`
|
DestinationNameSnake string `json:"destination_name"`
|
||||||
|
|
||||||
|
@ -409,6 +410,9 @@ func (t *Upstream) UnmarshalJSON(data []byte) (err error) {
|
||||||
if t.DestinationNamespace == "" {
|
if t.DestinationNamespace == "" {
|
||||||
t.DestinationNamespace = aux.DestinationNamespaceSnake
|
t.DestinationNamespace = aux.DestinationNamespaceSnake
|
||||||
}
|
}
|
||||||
|
if t.DestinationPartition == "" {
|
||||||
|
t.DestinationPartition = aux.DestinationPartitionSnake
|
||||||
|
}
|
||||||
if t.DestinationName == "" {
|
if t.DestinationName == "" {
|
||||||
t.DestinationName = aux.DestinationNameSnake
|
t.DestinationName = aux.DestinationNameSnake
|
||||||
}
|
}
|
||||||
|
@ -465,6 +469,7 @@ func (u *Upstream) ToAPI() api.Upstream {
|
||||||
return api.Upstream{
|
return api.Upstream{
|
||||||
DestinationType: api.UpstreamDestType(u.DestinationType),
|
DestinationType: api.UpstreamDestType(u.DestinationType),
|
||||||
DestinationNamespace: u.DestinationNamespace,
|
DestinationNamespace: u.DestinationNamespace,
|
||||||
|
DestinationPartition: u.DestinationPartition,
|
||||||
DestinationName: u.DestinationName,
|
DestinationName: u.DestinationName,
|
||||||
Datacenter: u.Datacenter,
|
Datacenter: u.Datacenter,
|
||||||
LocalBindAddress: u.LocalBindAddress,
|
LocalBindAddress: u.LocalBindAddress,
|
||||||
|
@ -485,6 +490,7 @@ func (u *Upstream) ToAPI() api.Upstream {
|
||||||
func (u *Upstream) ToKey() UpstreamKey {
|
func (u *Upstream) ToKey() UpstreamKey {
|
||||||
return UpstreamKey{
|
return UpstreamKey{
|
||||||
DestinationType: u.DestinationType,
|
DestinationType: u.DestinationType,
|
||||||
|
DestinationPartition: u.DestinationPartition,
|
||||||
DestinationNamespace: u.DestinationNamespace,
|
DestinationNamespace: u.DestinationNamespace,
|
||||||
DestinationName: u.DestinationName,
|
DestinationName: u.DestinationName,
|
||||||
Datacenter: u.Datacenter,
|
Datacenter: u.Datacenter,
|
||||||
|
@ -514,15 +520,17 @@ func (u Upstream) UpstreamAddressToString() string {
|
||||||
type UpstreamKey struct {
|
type UpstreamKey struct {
|
||||||
DestinationType string
|
DestinationType string
|
||||||
DestinationName string
|
DestinationName string
|
||||||
|
DestinationPartition string
|
||||||
DestinationNamespace string
|
DestinationNamespace string
|
||||||
Datacenter string
|
Datacenter string
|
||||||
}
|
}
|
||||||
|
|
||||||
func (k UpstreamKey) String() string {
|
func (k UpstreamKey) String() string {
|
||||||
return fmt.Sprintf(
|
return fmt.Sprintf(
|
||||||
"[type=%q, name=%q, namespace=%q, datacenter=%q]",
|
"[type=%q, name=%q, partition=%q, namespace=%q, datacenter=%q]",
|
||||||
k.DestinationType,
|
k.DestinationType,
|
||||||
k.DestinationName,
|
k.DestinationName,
|
||||||
|
k.DestinationPartition,
|
||||||
k.DestinationNamespace,
|
k.DestinationNamespace,
|
||||||
k.Datacenter,
|
k.Datacenter,
|
||||||
)
|
)
|
||||||
|
@ -537,6 +545,7 @@ func (u *Upstream) String() string {
|
||||||
func UpstreamFromAPI(u api.Upstream) Upstream {
|
func UpstreamFromAPI(u api.Upstream) Upstream {
|
||||||
return Upstream{
|
return Upstream{
|
||||||
DestinationType: string(u.DestinationType),
|
DestinationType: string(u.DestinationType),
|
||||||
|
DestinationPartition: u.DestinationPartition,
|
||||||
DestinationNamespace: u.DestinationNamespace,
|
DestinationNamespace: u.DestinationNamespace,
|
||||||
DestinationName: u.DestinationName,
|
DestinationName: u.DestinationName,
|
||||||
Datacenter: u.Datacenter,
|
Datacenter: u.Datacenter,
|
||||||
|
|
|
@ -91,6 +91,9 @@ func (s *ServiceDefinition) NodeService() *NodeService {
|
||||||
if ns.Proxy.Upstreams[i].DestinationNamespace == "" {
|
if ns.Proxy.Upstreams[i].DestinationNamespace == "" {
|
||||||
ns.Proxy.Upstreams[i].DestinationNamespace = ns.EnterpriseMeta.NamespaceOrEmpty()
|
ns.Proxy.Upstreams[i].DestinationNamespace = ns.EnterpriseMeta.NamespaceOrEmpty()
|
||||||
}
|
}
|
||||||
|
if ns.Proxy.Upstreams[i].DestinationPartition == "" {
|
||||||
|
ns.Proxy.Upstreams[i].DestinationPartition = ns.EnterpriseMeta.PartitionOrEmpty()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ns.Proxy.Expose = s.Proxy.Expose
|
ns.Proxy.Expose = s.Proxy.Expose
|
||||||
}
|
}
|
||||||
|
|
|
@ -161,6 +161,11 @@ var expectedFieldConfigUpstreams bexpr.FieldConfigurations = bexpr.FieldConfigur
|
||||||
CoerceFn: bexpr.CoerceString,
|
CoerceFn: bexpr.CoerceString,
|
||||||
SupportedOperations: []bexpr.MatchOperator{bexpr.MatchEqual, bexpr.MatchNotEqual, bexpr.MatchIn, bexpr.MatchNotIn, bexpr.MatchMatches, bexpr.MatchNotMatches},
|
SupportedOperations: []bexpr.MatchOperator{bexpr.MatchEqual, bexpr.MatchNotEqual, bexpr.MatchIn, bexpr.MatchNotIn, bexpr.MatchMatches, bexpr.MatchNotMatches},
|
||||||
},
|
},
|
||||||
|
"DestinationPartition": &bexpr.FieldConfiguration{
|
||||||
|
StructFieldName: "DestinationPartition",
|
||||||
|
CoerceFn: bexpr.CoerceString,
|
||||||
|
SupportedOperations: []bexpr.MatchOperator{bexpr.MatchEqual, bexpr.MatchNotEqual, bexpr.MatchIn, bexpr.MatchNotIn, bexpr.MatchMatches, bexpr.MatchNotMatches},
|
||||||
|
},
|
||||||
"DestinationName": &bexpr.FieldConfiguration{
|
"DestinationName": &bexpr.FieldConfiguration{
|
||||||
StructFieldName: "DestinationName",
|
StructFieldName: "DestinationName",
|
||||||
CoerceFn: bexpr.CoerceString,
|
CoerceFn: bexpr.CoerceString,
|
||||||
|
|
|
@ -55,6 +55,9 @@ func TestAddDefaultsToUpstreams(t testing.T, upstreams []Upstream, entMeta Enter
|
||||||
if ups[i].DestinationNamespace == "" {
|
if ups[i].DestinationNamespace == "" {
|
||||||
ups[i].DestinationNamespace = entMeta.NamespaceOrEmpty()
|
ups[i].DestinationNamespace = entMeta.NamespaceOrEmpty()
|
||||||
}
|
}
|
||||||
|
if ups[i].DestinationPartition == "" {
|
||||||
|
ups[i].DestinationPartition = entMeta.PartitionOrEmpty()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return ups
|
return ups
|
||||||
}
|
}
|
||||||
|
|
|
@ -537,11 +537,10 @@ func (s *ResourceGenerator) makeUpstreamClusterForPreparedQuery(upstream structs
|
||||||
|
|
||||||
spiffeID := connect.SpiffeIDService{
|
spiffeID := connect.SpiffeIDService{
|
||||||
Host: cfgSnap.Roots.TrustDomain,
|
Host: cfgSnap.Roots.TrustDomain,
|
||||||
|
Partition: upstream.DestinationPartition,
|
||||||
Namespace: upstream.DestinationNamespace,
|
Namespace: upstream.DestinationNamespace,
|
||||||
Datacenter: dc,
|
Datacenter: dc,
|
||||||
Service: upstream.DestinationName,
|
Service: upstream.DestinationName,
|
||||||
|
|
||||||
// TODO(partitions) Store partition
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Enable TLS upstream with the configured client certificate.
|
// Enable TLS upstream with the configured client certificate.
|
||||||
|
|
|
@ -185,6 +185,7 @@ func (s *ResourceGenerator) listenersFromSnapshotConnectProxy(cfgSnap *proxycfg.
|
||||||
u := structs.Upstream{
|
u := structs.Upstream{
|
||||||
DestinationName: sn.Name,
|
DestinationName: sn.Name,
|
||||||
DestinationNamespace: sn.NamespaceOrDefault(),
|
DestinationNamespace: sn.NamespaceOrDefault(),
|
||||||
|
DestinationPartition: sn.PartitionOrDefault(),
|
||||||
}
|
}
|
||||||
|
|
||||||
filterChain, err := s.makeUpstreamFilterChainForDiscoveryChain(
|
filterChain, err := s.makeUpstreamFilterChainForDiscoveryChain(
|
||||||
|
@ -738,9 +739,7 @@ func injectHTTPFilterOnFilterChains(
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var hcm envoy_http_v3.HttpConnectionManager
|
||||||
hcm envoy_http_v3.HttpConnectionManager
|
|
||||||
)
|
|
||||||
tc, ok := hcmFilter.ConfigType.(*envoy_listener_v3.Filter_TypedConfig)
|
tc, ok := hcmFilter.ConfigType.(*envoy_listener_v3.Filter_TypedConfig)
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf(
|
return fmt.Errorf(
|
||||||
|
|
|
@ -410,7 +410,7 @@ type ConnectProxyConfig struct {
|
||||||
// Upstream is the response structure for a proxy upstream configuration.
|
// Upstream is the response structure for a proxy upstream configuration.
|
||||||
type Upstream struct {
|
type Upstream struct {
|
||||||
DestinationType UpstreamDestType `json:",omitempty"`
|
DestinationType UpstreamDestType `json:",omitempty"`
|
||||||
// DestinationPartition string `json:",omitempty"` // TODO(partitions)?
|
DestinationPartition string `json:",omitempty"`
|
||||||
DestinationNamespace string `json:",omitempty"`
|
DestinationNamespace string `json:",omitempty"`
|
||||||
DestinationName string
|
DestinationName string
|
||||||
Datacenter string `json:",omitempty"`
|
Datacenter string `json:",omitempty"`
|
||||||
|
@ -1112,6 +1112,7 @@ func (a *Agent) Monitor(loglevel string, stopCh <-chan struct{}, q *QueryOptions
|
||||||
func (a *Agent) MonitorJSON(loglevel string, stopCh <-chan struct{}, q *QueryOptions) (chan string, error) {
|
func (a *Agent) MonitorJSON(loglevel string, stopCh <-chan struct{}, q *QueryOptions) (chan string, error) {
|
||||||
return a.monitor(loglevel, true, stopCh, q)
|
return a.monitor(loglevel, true, stopCh, q)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *Agent) monitor(loglevel string, logJSON bool, stopCh <-chan struct{}, q *QueryOptions) (chan string, error) {
|
func (a *Agent) monitor(loglevel string, logJSON bool, stopCh <-chan struct{}, q *QueryOptions) (chan string, error) {
|
||||||
r := a.c.newRequest("GET", "/v1/agent/monitor")
|
r := a.c.newRequest("GET", "/v1/agent/monitor")
|
||||||
r.setQueryOptions(q)
|
r.setQueryOptions(q)
|
||||||
|
|
|
@ -106,6 +106,9 @@ func (uc *UpstreamConfig) applyDefaults() {
|
||||||
if uc.DestinationNamespace == "" {
|
if uc.DestinationNamespace == "" {
|
||||||
uc.DestinationNamespace = "default"
|
uc.DestinationNamespace = "default"
|
||||||
}
|
}
|
||||||
|
if uc.DestinationPartition == "" {
|
||||||
|
uc.DestinationPartition = "default"
|
||||||
|
}
|
||||||
if uc.LocalBindAddress == "" && uc.LocalBindSocketPath == "" {
|
if uc.LocalBindAddress == "" && uc.LocalBindSocketPath == "" {
|
||||||
uc.LocalBindAddress = "127.0.0.1"
|
uc.LocalBindAddress = "127.0.0.1"
|
||||||
}
|
}
|
||||||
|
@ -120,8 +123,8 @@ func (uc *UpstreamConfig) String() string {
|
||||||
"%s:%d",
|
"%s:%d",
|
||||||
uc.LocalBindAddress, uc.LocalBindPort)
|
uc.LocalBindAddress, uc.LocalBindPort)
|
||||||
}
|
}
|
||||||
return fmt.Sprintf("%s->%s:%s/%s", addr,
|
return fmt.Sprintf("%s->%s:%s/%s/%s", addr,
|
||||||
uc.DestinationType, uc.DestinationNamespace, uc.DestinationName)
|
uc.DestinationType, uc.DestinationPartition, uc.DestinationNamespace, uc.DestinationName)
|
||||||
}
|
}
|
||||||
|
|
||||||
// UpstreamResolverFuncFromClient returns a closure that captures a consul
|
// UpstreamResolverFuncFromClient returns a closure that captures a consul
|
||||||
|
@ -140,6 +143,7 @@ func UpstreamResolverFuncFromClient(client *api.Client) func(cfg UpstreamConfig)
|
||||||
return &connect.ConsulResolver{
|
return &connect.ConsulResolver{
|
||||||
Client: client,
|
Client: client,
|
||||||
Namespace: cfg.DestinationNamespace,
|
Namespace: cfg.DestinationNamespace,
|
||||||
|
Partition: cfg.DestinationPartition,
|
||||||
Name: cfg.DestinationName,
|
Name: cfg.DestinationName,
|
||||||
Type: typ,
|
Type: typ,
|
||||||
Datacenter: cfg.Datacenter,
|
Datacenter: cfg.Datacenter,
|
||||||
|
|
|
@ -23,12 +23,14 @@ func TestUpstreamResolverFuncFromClient(t *testing.T) {
|
||||||
name: "service",
|
name: "service",
|
||||||
cfg: UpstreamConfig{
|
cfg: UpstreamConfig{
|
||||||
DestinationNamespace: "foo",
|
DestinationNamespace: "foo",
|
||||||
|
DestinationPartition: "default",
|
||||||
DestinationName: "web",
|
DestinationName: "web",
|
||||||
Datacenter: "ny1",
|
Datacenter: "ny1",
|
||||||
DestinationType: "service",
|
DestinationType: "service",
|
||||||
},
|
},
|
||||||
want: &connect.ConsulResolver{
|
want: &connect.ConsulResolver{
|
||||||
Namespace: "foo",
|
Namespace: "foo",
|
||||||
|
Partition: "default",
|
||||||
Name: "web",
|
Name: "web",
|
||||||
Datacenter: "ny1",
|
Datacenter: "ny1",
|
||||||
Type: connect.ConsulResolverTypeService,
|
Type: connect.ConsulResolverTypeService,
|
||||||
|
@ -38,6 +40,7 @@ func TestUpstreamResolverFuncFromClient(t *testing.T) {
|
||||||
name: "prepared_query",
|
name: "prepared_query",
|
||||||
cfg: UpstreamConfig{
|
cfg: UpstreamConfig{
|
||||||
DestinationNamespace: "foo",
|
DestinationNamespace: "foo",
|
||||||
|
DestinationPartition: "default",
|
||||||
DestinationName: "web",
|
DestinationName: "web",
|
||||||
Datacenter: "ny1",
|
Datacenter: "ny1",
|
||||||
DestinationType: "prepared_query",
|
DestinationType: "prepared_query",
|
||||||
|
@ -45,6 +48,7 @@ func TestUpstreamResolverFuncFromClient(t *testing.T) {
|
||||||
want: &connect.ConsulResolver{
|
want: &connect.ConsulResolver{
|
||||||
Namespace: "foo",
|
Namespace: "foo",
|
||||||
Name: "web",
|
Name: "web",
|
||||||
|
Partition: "default",
|
||||||
Datacenter: "ny1",
|
Datacenter: "ny1",
|
||||||
Type: connect.ConsulResolverTypePreparedQuery,
|
Type: connect.ConsulResolverTypePreparedQuery,
|
||||||
},
|
},
|
||||||
|
@ -53,11 +57,13 @@ func TestUpstreamResolverFuncFromClient(t *testing.T) {
|
||||||
name: "unknown behaves like service",
|
name: "unknown behaves like service",
|
||||||
cfg: UpstreamConfig{
|
cfg: UpstreamConfig{
|
||||||
DestinationNamespace: "foo",
|
DestinationNamespace: "foo",
|
||||||
|
DestinationPartition: "default",
|
||||||
DestinationName: "web",
|
DestinationName: "web",
|
||||||
Datacenter: "ny1",
|
Datacenter: "ny1",
|
||||||
DestinationType: "junk",
|
DestinationType: "junk",
|
||||||
},
|
},
|
||||||
want: &connect.ConsulResolver{
|
want: &connect.ConsulResolver{
|
||||||
|
Partition: "default",
|
||||||
Namespace: "foo",
|
Namespace: "foo",
|
||||||
Name: "web",
|
Name: "web",
|
||||||
Datacenter: "ny1",
|
Datacenter: "ny1",
|
||||||
|
@ -130,6 +136,7 @@ func TestAgentConfigWatcherSidecarProxy(t *testing.T) {
|
||||||
{
|
{
|
||||||
DestinationName: "db",
|
DestinationName: "db",
|
||||||
DestinationNamespace: "default",
|
DestinationNamespace: "default",
|
||||||
|
DestinationPartition: "default",
|
||||||
DestinationType: "service",
|
DestinationType: "service",
|
||||||
LocalBindPort: 9191,
|
LocalBindPort: 9191,
|
||||||
LocalBindAddress: "127.0.0.1",
|
LocalBindAddress: "127.0.0.1",
|
||||||
|
@ -159,6 +166,7 @@ func TestAgentConfigWatcherSidecarProxy(t *testing.T) {
|
||||||
expectCfg.Upstreams = append(expectCfg.Upstreams, UpstreamConfig{
|
expectCfg.Upstreams = append(expectCfg.Upstreams, UpstreamConfig{
|
||||||
DestinationName: "cache",
|
DestinationName: "cache",
|
||||||
DestinationNamespace: "default",
|
DestinationNamespace: "default",
|
||||||
|
DestinationPartition: "default",
|
||||||
DestinationType: "service",
|
DestinationType: "service",
|
||||||
LocalBindPort: 9292,
|
LocalBindPort: 9292,
|
||||||
LocalBindAddress: "127.10.10.10",
|
LocalBindAddress: "127.10.10.10",
|
||||||
|
|
|
@ -66,6 +66,9 @@ type ConsulResolver struct {
|
||||||
// Namespace of the query target.
|
// Namespace of the query target.
|
||||||
Namespace string
|
Namespace string
|
||||||
|
|
||||||
|
// Partition of the query target.
|
||||||
|
Partition string
|
||||||
|
|
||||||
// Name of the query target.
|
// Name of the query target.
|
||||||
Name string
|
Name string
|
||||||
|
|
||||||
|
|
|
@ -144,6 +144,7 @@ func UpstreamToStructs(s Upstream) structs.Upstream {
|
||||||
var t structs.Upstream
|
var t structs.Upstream
|
||||||
t.DestinationType = s.DestinationType
|
t.DestinationType = s.DestinationType
|
||||||
t.DestinationNamespace = s.DestinationNamespace
|
t.DestinationNamespace = s.DestinationNamespace
|
||||||
|
t.DestinationPartition = s.DestinationPartition
|
||||||
t.DestinationName = s.DestinationName
|
t.DestinationName = s.DestinationName
|
||||||
t.Datacenter = s.Datacenter
|
t.Datacenter = s.Datacenter
|
||||||
t.LocalBindAddress = s.LocalBindAddress
|
t.LocalBindAddress = s.LocalBindAddress
|
||||||
|
@ -159,6 +160,7 @@ func NewUpstreamFromStructs(t structs.Upstream) Upstream {
|
||||||
var s Upstream
|
var s Upstream
|
||||||
s.DestinationType = t.DestinationType
|
s.DestinationType = t.DestinationType
|
||||||
s.DestinationNamespace = t.DestinationNamespace
|
s.DestinationNamespace = t.DestinationNamespace
|
||||||
|
s.DestinationPartition = t.DestinationPartition
|
||||||
s.DestinationName = t.DestinationName
|
s.DestinationName = t.DestinationName
|
||||||
s.Datacenter = t.Datacenter
|
s.Datacenter = t.Datacenter
|
||||||
s.LocalBindAddress = t.LocalBindAddress
|
s.LocalBindAddress = t.LocalBindAddress
|
||||||
|
|
|
@ -159,6 +159,7 @@ type Upstream struct {
|
||||||
// LocalBindSocketPath is the socket to create to connect to the upstream service
|
// LocalBindSocketPath is the socket to create to connect to the upstream service
|
||||||
LocalBindSocketPath string `protobuf:"bytes,10,opt,name=LocalBindSocketPath,proto3" json:"LocalBindSocketPath,omitempty"`
|
LocalBindSocketPath string `protobuf:"bytes,10,opt,name=LocalBindSocketPath,proto3" json:"LocalBindSocketPath,omitempty"`
|
||||||
LocalBindSocketMode string `protobuf:"bytes,11,opt,name=LocalBindSocketMode,proto3" json:"LocalBindSocketMode,omitempty"`
|
LocalBindSocketMode string `protobuf:"bytes,11,opt,name=LocalBindSocketMode,proto3" json:"LocalBindSocketMode,omitempty"`
|
||||||
|
DestinationPartition string `protobuf:"bytes,12,opt,name=DestinationPartition,proto3" json:"DestinationPartition,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Upstream) Reset() { *m = Upstream{} }
|
func (m *Upstream) Reset() { *m = Upstream{} }
|
||||||
|
@ -619,82 +620,83 @@ func init() {
|
||||||
func init() { proto.RegisterFile("proto/pbservice/service.proto", fileDescriptor_cbb99233b75fb80b) }
|
func init() { proto.RegisterFile("proto/pbservice/service.proto", fileDescriptor_cbb99233b75fb80b) }
|
||||||
|
|
||||||
var fileDescriptor_cbb99233b75fb80b = []byte{
|
var fileDescriptor_cbb99233b75fb80b = []byte{
|
||||||
// 1200 bytes of a gzipped FileDescriptorProto
|
// 1212 bytes of a gzipped FileDescriptorProto
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x96, 0xcf, 0x6e, 0x1b, 0xb7,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x96, 0xcd, 0x6e, 0x1b, 0x37,
|
||||||
0x13, 0xc7, 0xb5, 0xfa, 0x63, 0x49, 0xe3, 0xfc, 0x1c, 0x9b, 0xd1, 0xcf, 0xdd, 0xba, 0x89, 0xec,
|
0x10, 0xc7, 0xb5, 0xfa, 0xb0, 0x24, 0xda, 0xf5, 0x07, 0xad, 0xba, 0x5b, 0x37, 0x91, 0x1d, 0xa1,
|
||||||
0x08, 0x45, 0x60, 0xb4, 0x86, 0x94, 0xd8, 0x48, 0xdd, 0x04, 0x48, 0x81, 0xda, 0x72, 0x8b, 0x20,
|
0x08, 0x8c, 0xd6, 0x90, 0x12, 0x1b, 0xa9, 0x9b, 0x00, 0x29, 0x50, 0x5b, 0x6e, 0x11, 0x24, 0x4e,
|
||||||
0x71, 0xa2, 0xae, 0x55, 0x04, 0x2d, 0xd0, 0x03, 0xb5, 0xa2, 0x57, 0x0b, 0x4b, 0x4b, 0x61, 0x49,
|
0xd4, 0xb5, 0x8a, 0xa0, 0x05, 0x7a, 0xa0, 0x56, 0xf4, 0x6a, 0x61, 0x69, 0x29, 0x90, 0x94, 0x1b,
|
||||||
0xb9, 0xd1, 0x5b, 0xf4, 0xd6, 0x5e, 0x7b, 0xe8, 0xbd, 0x8f, 0xe1, 0x63, 0x8e, 0x3d, 0x19, 0xad,
|
0xbd, 0x45, 0x8f, 0xbd, 0xf6, 0xd0, 0x7b, 0x1f, 0xc3, 0x40, 0x2f, 0x39, 0xf6, 0x64, 0xb4, 0xf6,
|
||||||
0xfd, 0x16, 0x3e, 0x15, 0x1c, 0x72, 0xd7, 0xab, 0xd5, 0xd6, 0x48, 0x7b, 0x12, 0x39, 0xdf, 0x99,
|
0x5b, 0xf8, 0x54, 0x70, 0xc8, 0x5d, 0xaf, 0x76, 0xb7, 0x46, 0x9a, 0x93, 0xc8, 0xf9, 0xcf, 0x0c,
|
||||||
0x21, 0x97, 0xfc, 0xcc, 0x50, 0x70, 0x6f, 0x1c, 0x72, 0xc9, 0x5b, 0xe3, 0x9e, 0x60, 0xe1, 0xa9,
|
0xb9, 0x9c, 0x1f, 0x87, 0x42, 0x77, 0xc7, 0x9c, 0x49, 0xd6, 0x1a, 0xf7, 0x04, 0xe5, 0x67, 0xbe,
|
||||||
0xef, 0xb2, 0x96, 0xf9, 0x6d, 0xa2, 0x9d, 0x54, 0x63, 0x61, 0xed, 0xae, 0xc7, 0xb9, 0x37, 0x64,
|
0x4b, 0x5b, 0xe6, 0xb7, 0x09, 0x76, 0x5c, 0x8d, 0x84, 0xf5, 0x3b, 0x1e, 0x63, 0xde, 0x90, 0xb6,
|
||||||
0x2d, 0x14, 0x7a, 0x93, 0xe3, 0x96, 0x90, 0xe1, 0xc4, 0x95, 0xda, 0x71, 0xed, 0xa3, 0x28, 0x8f,
|
0x40, 0xe8, 0x4d, 0x4e, 0x5a, 0x42, 0xf2, 0x89, 0x2b, 0xb5, 0xe3, 0xfa, 0x27, 0x61, 0x1e, 0x97,
|
||||||
0xcb, 0x47, 0x23, 0x1e, 0xb4, 0xf4, 0x8f, 0x11, 0xef, 0xa7, 0x17, 0x19, 0x30, 0x3a, 0x94, 0x03,
|
0x8d, 0x46, 0x2c, 0x68, 0xe9, 0x1f, 0x23, 0xde, 0x4b, 0x2e, 0x32, 0xa0, 0x64, 0x28, 0x07, 0xee,
|
||||||
0x77, 0xc0, 0xdc, 0x13, 0xe3, 0x52, 0xf3, 0xb8, 0xc7, 0xb5, 0x9b, 0x1a, 0x69, 0x6b, 0xe3, 0xb7,
|
0x80, 0xba, 0xa7, 0xc6, 0xa5, 0xe6, 0x31, 0x8f, 0x69, 0x37, 0x35, 0xd2, 0xd6, 0xc6, 0xef, 0x25,
|
||||||
0x12, 0x90, 0x7d, 0x1e, 0x04, 0xcc, 0x95, 0x9d, 0x90, 0xbf, 0x9d, 0xee, 0xf3, 0xe0, 0xd8, 0xf7,
|
0x84, 0x0f, 0x58, 0x10, 0x50, 0x57, 0x76, 0x38, 0x7b, 0x33, 0x3d, 0x60, 0xc1, 0x89, 0xef, 0xe1,
|
||||||
0xc8, 0x67, 0xb0, 0xda, 0x66, 0x42, 0xfa, 0x01, 0x95, 0x3e, 0x0f, 0x8e, 0x74, 0xd2, 0x57, 0x74,
|
0x2f, 0xd0, 0x5a, 0x9b, 0x0a, 0xe9, 0x07, 0x44, 0xfa, 0x2c, 0x38, 0xd6, 0x49, 0x5f, 0x92, 0x11,
|
||||||
0xc4, 0x6c, 0x6b, 0xc3, 0xda, 0xac, 0x3a, 0xff, 0xa0, 0x92, 0x6d, 0xa8, 0xcd, 0x2b, 0xcf, 0xdb,
|
0xb5, 0xad, 0x4d, 0x6b, 0xab, 0xea, 0xfc, 0x87, 0x8a, 0x77, 0x50, 0x2d, 0xad, 0x3c, 0x6b, 0xdb,
|
||||||
0x76, 0x1e, 0xa3, 0x32, 0x35, 0xf2, 0x10, 0xee, 0xbc, 0xe4, 0x2e, 0x1d, 0x1a, 0xcb, 0x97, 0xfd,
|
0x79, 0x88, 0xca, 0xd4, 0xf0, 0x03, 0xb4, 0xfa, 0x82, 0xb9, 0x64, 0x68, 0x2c, 0x5f, 0xf7, 0xfb,
|
||||||
0x7e, 0xc8, 0x84, 0xb0, 0x0b, 0x18, 0x92, 0x25, 0x91, 0x4f, 0x60, 0x39, 0x69, 0xee, 0xf0, 0x50,
|
0x9c, 0x0a, 0x61, 0x17, 0x20, 0x24, 0x4b, 0xc2, 0x9f, 0xa1, 0xe5, 0xb8, 0xb9, 0xc3, 0xb8, 0xb4,
|
||||||
0xda, 0xc5, 0x0d, 0x6b, 0xb3, 0xe4, 0xcc, 0xd9, 0xc9, 0x63, 0x58, 0xd0, 0xdf, 0x64, 0x97, 0x36,
|
0x8b, 0x9b, 0xd6, 0x56, 0xc9, 0x49, 0xd9, 0xf1, 0x23, 0x34, 0xa7, 0xbf, 0xc9, 0x2e, 0x6d, 0x5a,
|
||||||
0xac, 0xcd, 0xc5, 0xed, 0x0f, 0x9a, 0xfa, 0x94, 0x9b, 0xd1, 0x29, 0x37, 0x8f, 0xf0, 0x94, 0xf7,
|
0x5b, 0xf3, 0x3b, 0x1f, 0x35, 0xf5, 0x29, 0x37, 0xc3, 0x53, 0x6e, 0x1e, 0xc3, 0x29, 0xef, 0x17,
|
||||||
0x8a, 0x67, 0xe7, 0xeb, 0x96, 0x63, 0x9c, 0xc9, 0x2e, 0x54, 0xbf, 0x1d, 0x0b, 0x19, 0x32, 0x3a,
|
0xcf, 0x2f, 0x36, 0x2c, 0xc7, 0x38, 0xe3, 0x3d, 0x54, 0xfd, 0x7e, 0x2c, 0x24, 0xa7, 0x64, 0x24,
|
||||||
0x12, 0xf6, 0xc2, 0x46, 0x61, 0x73, 0x71, 0xfb, 0x4e, 0x33, 0x3e, 0xde, 0x66, 0xa4, 0x61, 0x54,
|
0xec, 0xb9, 0xcd, 0xc2, 0xd6, 0xfc, 0xce, 0x6a, 0x33, 0x3a, 0xde, 0x66, 0xa8, 0x41, 0x54, 0xce,
|
||||||
0xce, 0xb9, 0xf6, 0x25, 0x6d, 0x58, 0x3c, 0x64, 0x62, 0xf0, 0x35, 0x95, 0xec, 0x47, 0x3a, 0xb5,
|
0xb9, 0xf1, 0xc5, 0x6d, 0x34, 0x7f, 0x44, 0xc5, 0xe0, 0x5b, 0x22, 0xe9, 0xcf, 0x64, 0x6a, 0x97,
|
||||||
0xcb, 0xb8, 0xe8, 0xdd, 0x44, 0x68, 0x42, 0xd5, 0x6b, 0x99, 0x1c, 0xc9, 0x30, 0xb5, 0xeb, 0x83,
|
0x61, 0xd1, 0x3b, 0xb1, 0xd0, 0x98, 0xaa, 0xd7, 0x32, 0x39, 0xe2, 0x61, 0x6a, 0xd7, 0x87, 0x6f,
|
||||||
0xb7, 0x63, 0x2e, 0x98, 0x5d, 0x31, 0xbb, 0xbe, 0x4e, 0xa0, 0x85, 0x99, 0x58, 0xe3, 0x4c, 0x5e,
|
0xc6, 0x4c, 0x50, 0xbb, 0x62, 0x76, 0x7d, 0x93, 0x40, 0x0b, 0x33, 0xb1, 0xc6, 0x19, 0x3f, 0x47,
|
||||||
0x40, 0xf1, 0x90, 0xf7, 0x99, 0x5d, 0x55, 0x67, 0xb7, 0xb7, 0x7b, 0x75, 0xbe, 0xbe, 0xe3, 0xf9,
|
0xc5, 0x23, 0xd6, 0xa7, 0x76, 0x55, 0x9d, 0xdd, 0xfe, 0xde, 0xf5, 0xc5, 0xc6, 0xae, 0xe7, 0xcb,
|
||||||
0x72, 0x30, 0xe9, 0x35, 0x5d, 0x3e, 0x6a, 0x0d, 0xa8, 0x18, 0xf8, 0x2e, 0x0f, 0xc7, 0x2d, 0x97,
|
0xc1, 0xa4, 0xd7, 0x74, 0xd9, 0xa8, 0x35, 0x20, 0x62, 0xe0, 0xbb, 0x8c, 0x8f, 0x5b, 0x2e, 0x0b,
|
||||||
0x07, 0x62, 0x32, 0x6c, 0x51, 0x8f, 0x05, 0xd2, 0x50, 0x26, 0x9a, 0x78, 0xff, 0x2a, 0xdc, 0xc1,
|
0xc4, 0x64, 0xd8, 0x22, 0x1e, 0x0d, 0xa4, 0xa1, 0x4c, 0x34, 0xa1, 0xfe, 0x2a, 0xdc, 0x81, 0x24,
|
||||||
0x24, 0xe4, 0x08, 0x96, 0xbb, 0x21, 0x0d, 0xc4, 0x98, 0x86, 0x2c, 0xd0, 0x74, 0xd8, 0x80, 0xbb,
|
0xf8, 0x18, 0x2d, 0x77, 0x39, 0x09, 0xc4, 0x98, 0x70, 0x1a, 0x68, 0x3a, 0x6c, 0x04, 0xbb, 0xb9,
|
||||||
0xb9, 0x9f, 0xd8, 0x4d, 0xda, 0x65, 0x66, 0x5f, 0x73, 0x09, 0x14, 0x58, 0xc9, 0x2b, 0x3a, 0xe2,
|
0x17, 0xdb, 0x4d, 0xd2, 0x65, 0x66, 0x5f, 0xa9, 0x04, 0x0a, 0xac, 0x78, 0x89, 0x8e, 0x99, 0x7b,
|
||||||
0xee, 0x09, 0x93, 0x1d, 0x2a, 0x07, 0xf6, 0xa2, 0x06, 0x2b, 0x5b, 0x6d, 0xfc, 0x5c, 0x84, 0x4a,
|
0x4a, 0x65, 0x87, 0xc8, 0x81, 0x3d, 0xaf, 0xc1, 0xca, 0x56, 0x1b, 0x7f, 0x16, 0x51, 0x25, 0x3c,
|
||||||
0x74, 0xc8, 0x64, 0x13, 0x6e, 0x27, 0x48, 0xea, 0x4e, 0xc7, 0x11, 0x96, 0x69, 0x73, 0x8a, 0x47,
|
0x64, 0xbc, 0x85, 0x96, 0x62, 0x24, 0x75, 0xa7, 0xe3, 0x10, 0xcb, 0xa4, 0x39, 0xc1, 0xa3, 0x42,
|
||||||
0x85, 0xa8, 0x18, 0x53, 0x97, 0x65, 0xf0, 0x18, 0x6b, 0xa9, 0xec, 0x08, 0x7d, 0x61, 0x2e, 0x3b,
|
0x54, 0x8c, 0x89, 0x4b, 0x33, 0x78, 0x8c, 0xb4, 0x44, 0x76, 0x80, 0xbe, 0x90, 0xca, 0x0e, 0xb4,
|
||||||
0xd2, 0x5e, 0x07, 0x68, 0x53, 0x49, 0x5d, 0x16, 0x48, 0x16, 0x22, 0x81, 0x55, 0x27, 0x61, 0x89,
|
0xd7, 0x11, 0x6a, 0x13, 0x49, 0x5c, 0x1a, 0x48, 0xca, 0x81, 0xc0, 0xaa, 0x13, 0xb3, 0x44, 0x9c,
|
||||||
0x39, 0xdd, 0xf3, 0x83, 0x7e, 0x84, 0x75, 0x09, 0xbd, 0xe6, 0xec, 0xe4, 0x63, 0xf8, 0x5f, 0x6c,
|
0xee, 0xfb, 0x41, 0x3f, 0xc4, 0xba, 0x04, 0x5e, 0x29, 0x3b, 0xfe, 0x14, 0x7d, 0x10, 0xd9, 0x00,
|
||||||
0x43, 0xa0, 0x17, 0x10, 0xe8, 0x59, 0x63, 0x82, 0xe6, 0xf2, 0xbf, 0xa1, 0x39, 0x05, 0x65, 0xe5,
|
0xe8, 0x39, 0x00, 0x7a, 0xd6, 0x18, 0xa3, 0xb9, 0xfc, 0x7f, 0x68, 0x4e, 0x40, 0x59, 0x79, 0x3f,
|
||||||
0xbf, 0x41, 0xf9, 0x10, 0xee, 0xec, 0xb3, 0x40, 0x86, 0x74, 0x38, 0x34, 0x5e, 0x93, 0x90, 0xf5,
|
0x28, 0x1f, 0xa0, 0xd5, 0x03, 0x1a, 0x48, 0x4e, 0x86, 0x43, 0xe3, 0x35, 0xe1, 0xb4, 0x0f, 0xb0,
|
||||||
0x11, 0xb6, 0x8a, 0x93, 0x25, 0xc5, 0xa5, 0xad, 0xf6, 0x9f, 0xb8, 0x6a, 0x48, 0x94, 0xf6, 0xac,
|
0x55, 0x9c, 0x2c, 0x29, 0xba, 0xda, 0x6a, 0xff, 0xb1, 0x52, 0xa3, 0xd8, 0xd5, 0x9e, 0x95, 0x32,
|
||||||
0x94, 0x11, 0x81, 0x40, 0x2f, 0x66, 0x46, 0x28, 0xa9, 0x11, 0xc0, 0x92, 0xc1, 0xc5, 0xf4, 0x31,
|
0x22, 0x00, 0xe8, 0xf9, 0xcc, 0x08, 0xc0, 0x74, 0xb6, 0xc4, 0x1d, 0xc2, 0xa5, 0xaf, 0x06, 0xf6,
|
||||||
0xb2, 0x0a, 0x0b, 0xaf, 0xa8, 0xf4, 0x4f, 0x35, 0x15, 0x15, 0xc7, 0xcc, 0x48, 0x1b, 0x96, 0x8e,
|
0x42, 0xaa, 0xc4, 0x91, 0xd6, 0x08, 0xd0, 0xa2, 0x41, 0xcc, 0xf4, 0x3e, 0xbc, 0x86, 0xe6, 0x5e,
|
||||||
0xfc, 0x3e, 0x73, 0x69, 0x68, 0x02, 0xf0, 0x5e, 0x67, 0x0f, 0xc2, 0x28, 0x6d, 0x76, 0xec, 0x07,
|
0x12, 0xe9, 0x9f, 0x69, 0x92, 0x2a, 0x8e, 0x99, 0xe1, 0x36, 0x5a, 0x3c, 0xf6, 0xfb, 0xd4, 0x25,
|
||||||
0xbe, 0xba, 0x68, 0x27, 0x15, 0xd3, 0xf8, 0x0e, 0x6e, 0x25, 0x2b, 0x50, 0xad, 0xb6, 0xaf, 0xda,
|
0xdc, 0x04, 0x00, 0x0b, 0xb3, 0x87, 0x67, 0x94, 0x36, 0x3d, 0xf1, 0x03, 0xc8, 0xef, 0x24, 0x62,
|
||||||
0xac, 0x88, 0x56, 0xd3, 0x33, 0xf2, 0x08, 0x4a, 0xea, 0x8b, 0x84, 0x9d, 0xc7, 0xee, 0xf1, 0xff,
|
0x1a, 0x3f, 0xa0, 0x85, 0xf8, 0xad, 0x55, 0xab, 0x1d, 0xa8, 0xd6, 0x2c, 0xc2, 0xd5, 0xf4, 0x0c,
|
||||||
0xb9, 0x0a, 0x56, 0xaa, 0x39, 0x66, 0xed, 0xd9, 0xf8, 0xdd, 0x02, 0xb8, 0xd6, 0x48, 0x03, 0x6e,
|
0x3f, 0x44, 0x25, 0x75, 0x0a, 0xc2, 0xce, 0x43, 0xc7, 0xf9, 0x30, 0x75, 0xeb, 0x95, 0x6a, 0x4a,
|
||||||
0xbd, 0xf4, 0x85, 0x64, 0x01, 0x0b, 0x91, 0x08, 0x0b, 0x89, 0x98, 0xb1, 0x11, 0x02, 0x45, 0x3c,
|
0xa3, 0x3d, 0x1b, 0x7f, 0x58, 0x08, 0xdd, 0x68, 0xb8, 0x81, 0x16, 0x5e, 0xf8, 0x42, 0xd2, 0x80,
|
||||||
0x52, 0x0d, 0x34, 0x8e, 0x63, 0x94, 0xd4, 0x04, 0x03, 0x0b, 0x09, 0x94, 0x22, 0x23, 0x59, 0x83,
|
0x72, 0xa0, 0xc8, 0x02, 0x8a, 0x66, 0x6c, 0x18, 0xa3, 0x22, 0x94, 0x41, 0x5f, 0x02, 0x18, 0x47,
|
||||||
0x4a, 0x47, 0x41, 0xe3, 0xf2, 0xa1, 0x41, 0x37, 0x9e, 0xab, 0x12, 0xe8, 0xd0, 0x50, 0xb0, 0xfe,
|
0xf8, 0xa9, 0x09, 0x04, 0x16, 0x62, 0xf8, 0x85, 0x46, 0xbc, 0x8e, 0x2a, 0x1d, 0x05, 0x9a, 0xcb,
|
||||||
0x57, 0x21, 0x1f, 0xe1, 0xf7, 0x20, 0xb7, 0x15, 0x27, 0x6d, 0x6e, 0x1c, 0xc3, 0xca, 0x1c, 0x3b,
|
0x86, 0x06, 0xf7, 0x68, 0xae, 0xae, 0x4d, 0x87, 0x70, 0x41, 0xfb, 0xdf, 0x70, 0x36, 0x82, 0xef,
|
||||||
0xe4, 0x1b, 0xd3, 0x86, 0xb0, 0x28, 0xf7, 0x9e, 0x5d, 0x9d, 0xaf, 0x3f, 0x79, 0xff, 0x36, 0x94,
|
0x01, 0xd6, 0x2b, 0x4e, 0xd2, 0xdc, 0x38, 0x41, 0x2b, 0x29, 0xde, 0xf0, 0x77, 0xa6, 0x75, 0xc1,
|
||||||
0x48, 0x77, 0xdd, 0x8c, 0x1a, 0x12, 0x56, 0xb3, 0x3b, 0x8d, 0x2a, 0xf1, 0xd7, 0x13, 0xd9, 0xe3,
|
0x45, 0xde, 0x7f, 0x7a, 0x7d, 0xb1, 0xf1, 0xf8, 0xdd, 0x5b, 0x57, 0x2c, 0xdd, 0x4d, 0x03, 0x6b,
|
||||||
0x93, 0xa0, 0x9f, 0x71, 0x5a, 0x99, 0x1a, 0x79, 0x00, 0x4b, 0x6d, 0x9f, 0x0e, 0x59, 0xbf, 0xed,
|
0x48, 0xb4, 0x96, 0xdd, 0x9d, 0x14, 0x33, 0xaf, 0x26, 0xb2, 0xc7, 0x26, 0x41, 0x3f, 0xe3, 0xb4,
|
||||||
0x87, 0xcc, 0x95, 0xc3, 0x29, 0x9e, 0x5f, 0xc5, 0x49, 0x59, 0x1b, 0xbf, 0x96, 0x61, 0x65, 0x8e,
|
0x32, 0x35, 0x7c, 0x1f, 0x2d, 0xb6, 0x7d, 0x32, 0xa4, 0xfd, 0xb6, 0xcf, 0xa9, 0x2b, 0x87, 0x53,
|
||||||
0x08, 0x72, 0x08, 0xc5, 0x17, 0x7e, 0xd0, 0x37, 0x9f, 0xf7, 0xe4, 0xea, 0x7c, 0xfd, 0xf1, 0xfb,
|
0x38, 0xbf, 0x8a, 0x93, 0xb0, 0x36, 0x7e, 0x2b, 0xa3, 0x95, 0x14, 0x11, 0xf8, 0x08, 0x15, 0x9f,
|
||||||
0x7f, 0x9e, 0x49, 0xa7, 0x12, 0x38, 0x98, 0x86, 0x2c, 0x41, 0x3e, 0x7e, 0x21, 0xf3, 0xcf, 0xdb,
|
0xfb, 0x41, 0xdf, 0x7c, 0xde, 0xe3, 0xeb, 0x8b, 0x8d, 0x47, 0xef, 0xfe, 0x79, 0x26, 0x9d, 0x4a,
|
||||||
0xea, 0x4a, 0x13, 0x4d, 0x07, 0xc7, 0xca, 0xd6, 0xa5, 0x9e, 0xb0, 0x8b, 0x1b, 0x05, 0x65, 0x53,
|
0xe0, 0x40, 0x1a, 0xbc, 0x88, 0xf2, 0xd1, 0xab, 0x9a, 0x7f, 0xd6, 0x56, 0x25, 0x8d, 0x35, 0x2a,
|
||||||
0x63, 0x62, 0x43, 0x79, 0xb6, 0xa9, 0x44, 0x53, 0x42, 0xe1, 0x76, 0x97, 0x7a, 0x1e, 0x8b, 0x9a,
|
0x18, 0x2b, 0x5b, 0x97, 0x78, 0xc2, 0x2e, 0x6e, 0x16, 0x94, 0x4d, 0x8d, 0xb1, 0x8d, 0xca, 0xb3,
|
||||||
0x0b, 0x13, 0xf6, 0x32, 0x42, 0xf8, 0xe8, 0x26, 0xd2, 0x9b, 0xa9, 0x98, 0x83, 0x40, 0x86, 0x53,
|
0x8d, 0x28, 0x9c, 0x62, 0x82, 0x96, 0xba, 0xc4, 0xf3, 0x68, 0xd8, 0x90, 0xa8, 0xb0, 0x97, 0x01,
|
||||||
0x03, 0x68, 0x3a, 0x1f, 0x79, 0x0a, 0xc5, 0x43, 0x26, 0xa9, 0x79, 0x1a, 0x1f, 0xdc, 0x98, 0x57,
|
0xc2, 0x87, 0xb7, 0x91, 0xde, 0x4c, 0xc4, 0x1c, 0x06, 0x92, 0x4f, 0x0d, 0xa0, 0xc9, 0x7c, 0xf8,
|
||||||
0x39, 0x62, 0x32, 0x07, 0x63, 0x90, 0x59, 0x75, 0x43, 0x65, 0xbc, 0x21, 0x1c, 0xab, 0x56, 0x9a,
|
0x09, 0x2a, 0x1e, 0x51, 0x49, 0xcc, 0x73, 0x7a, 0xff, 0xd6, 0xbc, 0xca, 0x11, 0x92, 0x39, 0x10,
|
||||||
0x68, 0x10, 0x44, 0xb7, 0xd2, 0x99, 0xbe, 0x50, 0xd2, 0x1c, 0xea, 0xde, 0x55, 0x4b, 0x2c, 0x88,
|
0x03, 0xcc, 0xaa, 0x0a, 0x95, 0xa1, 0x42, 0x30, 0x56, 0xed, 0x37, 0xd6, 0x54, 0xb0, 0x6e, 0xbf,
|
||||||
0x76, 0xd5, 0xed, 0xa3, 0x62, 0x42, 0x03, 0xd9, 0x8a, 0xeb, 0xb2, 0x8a, 0x7b, 0xcc, 0x0c, 0x89,
|
0x33, 0xbd, 0xa4, 0xa4, 0x39, 0xd4, 0xfd, 0xae, 0x16, 0x5b, 0x10, 0xec, 0xea, 0x85, 0x08, 0x2f,
|
||||||
0xab, 0x75, 0x0b, 0xca, 0x6f, 0x98, 0xef, 0x0d, 0xa4, 0x30, 0x6f, 0x1c, 0x49, 0xb8, 0x1b, 0xc5,
|
0x13, 0x18, 0xf0, 0x76, 0x74, 0x2f, 0xab, 0xb0, 0xc7, 0xcc, 0x90, 0xe8, 0xb6, 0x6e, 0xa3, 0xf2,
|
||||||
0x89, 0x5c, 0x48, 0x0d, 0x4a, 0x5d, 0x7e, 0xc2, 0x02, 0xd3, 0x97, 0xf4, 0x84, 0x6c, 0xc1, 0xca,
|
0x6b, 0xea, 0x7b, 0x03, 0x29, 0xcc, 0xbb, 0x88, 0x63, 0xee, 0x46, 0x71, 0x42, 0x17, 0x5c, 0x43,
|
||||||
0x41, 0x40, 0x7b, 0x43, 0xd6, 0xa5, 0xde, 0xeb, 0x53, 0x16, 0x86, 0x7e, 0x9f, 0xd9, 0xb7, 0x10,
|
0xa5, 0x2e, 0x3b, 0xa5, 0x81, 0xe9, 0x65, 0x7a, 0x82, 0xb7, 0xd1, 0xca, 0x61, 0x40, 0x7a, 0x43,
|
||||||
0xac, 0x79, 0x81, 0xec, 0x40, 0x49, 0xbf, 0xa9, 0x4b, 0xb8, 0xde, 0xbd, 0xe4, 0xf6, 0xe6, 0xfe,
|
0xda, 0x25, 0xde, 0xab, 0x33, 0xca, 0xb9, 0xdf, 0xa7, 0xd0, 0xba, 0x2a, 0x4e, 0x5a, 0xc0, 0xbb,
|
||||||
0x90, 0x39, 0xda, 0x57, 0xb5, 0xb0, 0x03, 0xf5, 0xb4, 0x8c, 0x43, 0x5f, 0x30, 0xbc, 0x80, 0x15,
|
0xa8, 0xa4, 0xdf, 0xe1, 0x45, 0x58, 0xef, 0x6e, 0x7c, 0x7b, 0xa9, 0x3f, 0x71, 0x8e, 0xf6, 0x55,
|
||||||
0x8c, 0x5e, 0x6d, 0x9a, 0xbf, 0x83, 0xb3, 0xaa, 0x39, 0x91, 0x54, 0x0c, 0xd9, 0x81, 0xb2, 0x59,
|
0x2d, 0xec, 0x50, 0x3d, 0x47, 0x63, 0xee, 0x0b, 0x0a, 0x05, 0x58, 0x81, 0xe8, 0xb5, 0xa6, 0xf9,
|
||||||
0xc2, 0xbe, 0x8d, 0xe1, 0x1f, 0xce, 0xdf, 0x9f, 0x71, 0x70, 0x22, 0xcf, 0xb5, 0x1f, 0xa0, 0x96,
|
0x0b, 0x39, 0xab, 0x9a, 0x13, 0x49, 0xc4, 0xe0, 0x5d, 0x54, 0x36, 0x4b, 0xd8, 0x4b, 0x10, 0xfe,
|
||||||
0x05, 0x08, 0x59, 0x86, 0xc2, 0x09, 0x9b, 0x9a, 0x07, 0x58, 0x0d, 0x49, 0x0b, 0x4a, 0xa7, 0x74,
|
0x71, 0xba, 0x7e, 0xc6, 0xc1, 0x09, 0x3d, 0xd7, 0x7f, 0x42, 0xb5, 0x2c, 0x40, 0xf0, 0x32, 0x2a,
|
||||||
0x38, 0xd1, 0xaf, 0x6c, 0x66, 0x72, 0x93, 0xc2, 0xd1, 0x7e, 0x4f, 0xf3, 0x9f, 0x5b, 0x6b, 0xbb,
|
0x9c, 0xd2, 0xa9, 0x79, 0xb4, 0xd5, 0x10, 0xb7, 0x50, 0xe9, 0x8c, 0x0c, 0x27, 0xfa, 0x65, 0xce,
|
||||||
0x50, 0x8d, 0x39, 0xc9, 0xc8, 0x59, 0x4b, 0xe6, 0xac, 0x26, 0x02, 0x1b, 0x5f, 0xc4, 0xfd, 0x3f,
|
0x4c, 0x6e, 0x52, 0x38, 0xda, 0xef, 0x49, 0xfe, 0x4b, 0x6b, 0x7d, 0x0f, 0x55, 0x23, 0x4e, 0x32,
|
||||||
0xc2, 0x3f, 0x51, 0x18, 0xd6, 0x6c, 0x61, 0x44, 0xe4, 0xe5, 0xaf, 0xc9, 0x6b, 0x3c, 0x8b, 0x6f,
|
0x72, 0xd6, 0xe2, 0x39, 0xab, 0xb1, 0xc0, 0xc6, 0x57, 0x51, 0xff, 0x0f, 0xf1, 0x8f, 0x5d, 0x0c,
|
||||||
0x5e, 0x05, 0x76, 0xa8, 0x10, 0x7e, 0xe0, 0x99, 0xee, 0x11, 0x4d, 0x95, 0xf2, 0x86, 0x86, 0x81,
|
0x6b, 0xf6, 0x62, 0x84, 0xe4, 0xe5, 0x6f, 0xc8, 0x6b, 0x3c, 0x8d, 0x2a, 0xaf, 0x02, 0x3b, 0x44,
|
||||||
0x52, 0x74, 0x6c, 0x34, 0xdd, 0x3b, 0x3c, 0xfb, 0xab, 0x9e, 0x3b, 0xbb, 0xa8, 0x5b, 0xef, 0x2e,
|
0x08, 0x3f, 0xf0, 0x4c, 0xf7, 0x08, 0xa7, 0x4a, 0x79, 0x4d, 0x78, 0xa0, 0x14, 0x1d, 0x1b, 0x4e,
|
||||||
0xea, 0xd6, 0x9f, 0x17, 0x75, 0xeb, 0xa7, 0xcb, 0x7a, 0xee, 0x97, 0xcb, 0x7a, 0xee, 0xdd, 0x65,
|
0xf7, 0x8f, 0xce, 0xff, 0xa9, 0xe7, 0xce, 0x2f, 0xeb, 0xd6, 0xdb, 0xcb, 0xba, 0xf5, 0xf7, 0x65,
|
||||||
0x3d, 0xf7, 0xc7, 0x65, 0x3d, 0xf7, 0xfd, 0xa7, 0x37, 0x35, 0x87, 0xd4, 0xff, 0xf6, 0xde, 0x02,
|
0xdd, 0xfa, 0xe5, 0xaa, 0x9e, 0xfb, 0xf5, 0xaa, 0x9e, 0x7b, 0x7b, 0x55, 0xcf, 0xfd, 0x75, 0x55,
|
||||||
0x1a, 0x76, 0xfe, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x70, 0xa5, 0x21, 0xd2, 0x36, 0x0c, 0x00, 0x00,
|
0xcf, 0xfd, 0xf8, 0xf9, 0x6d, 0xcd, 0x21, 0xf1, 0x5f, 0xbf, 0x37, 0x07, 0x86, 0xdd, 0x7f, 0x03,
|
||||||
|
0x00, 0x00, 0xff, 0xff, 0x93, 0xfb, 0xcc, 0xfb, 0x6a, 0x0c, 0x00, 0x00,
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ConnectProxyConfig) Marshal() (dAtA []byte, err error) {
|
func (m *ConnectProxyConfig) Marshal() (dAtA []byte, err error) {
|
||||||
|
@ -836,6 +838,13 @@ func (m *Upstream) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||||
_ = i
|
_ = i
|
||||||
var l int
|
var l int
|
||||||
_ = l
|
_ = l
|
||||||
|
if len(m.DestinationPartition) > 0 {
|
||||||
|
i -= len(m.DestinationPartition)
|
||||||
|
copy(dAtA[i:], m.DestinationPartition)
|
||||||
|
i = encodeVarintService(dAtA, i, uint64(len(m.DestinationPartition)))
|
||||||
|
i--
|
||||||
|
dAtA[i] = 0x62
|
||||||
|
}
|
||||||
if len(m.LocalBindSocketMode) > 0 {
|
if len(m.LocalBindSocketMode) > 0 {
|
||||||
i -= len(m.LocalBindSocketMode)
|
i -= len(m.LocalBindSocketMode)
|
||||||
copy(dAtA[i:], m.LocalBindSocketMode)
|
copy(dAtA[i:], m.LocalBindSocketMode)
|
||||||
|
@ -1523,6 +1532,10 @@ func (m *Upstream) Size() (n int) {
|
||||||
if l > 0 {
|
if l > 0 {
|
||||||
n += 1 + l + sovService(uint64(l))
|
n += 1 + l + sovService(uint64(l))
|
||||||
}
|
}
|
||||||
|
l = len(m.DestinationPartition)
|
||||||
|
if l > 0 {
|
||||||
|
n += 1 + l + sovService(uint64(l))
|
||||||
|
}
|
||||||
return n
|
return n
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2494,6 +2507,38 @@ func (m *Upstream) Unmarshal(dAtA []byte) error {
|
||||||
}
|
}
|
||||||
m.LocalBindSocketMode = string(dAtA[iNdEx:postIndex])
|
m.LocalBindSocketMode = string(dAtA[iNdEx:postIndex])
|
||||||
iNdEx = postIndex
|
iNdEx = postIndex
|
||||||
|
case 12:
|
||||||
|
if wireType != 2 {
|
||||||
|
return fmt.Errorf("proto: wrong wireType = %d for field DestinationPartition", wireType)
|
||||||
|
}
|
||||||
|
var stringLen uint64
|
||||||
|
for shift := uint(0); ; shift += 7 {
|
||||||
|
if shift >= 64 {
|
||||||
|
return ErrIntOverflowService
|
||||||
|
}
|
||||||
|
if iNdEx >= l {
|
||||||
|
return io.ErrUnexpectedEOF
|
||||||
|
}
|
||||||
|
b := dAtA[iNdEx]
|
||||||
|
iNdEx++
|
||||||
|
stringLen |= uint64(b&0x7F) << shift
|
||||||
|
if b < 0x80 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
intStringLen := int(stringLen)
|
||||||
|
if intStringLen < 0 {
|
||||||
|
return ErrInvalidLengthService
|
||||||
|
}
|
||||||
|
postIndex := iNdEx + intStringLen
|
||||||
|
if postIndex < 0 {
|
||||||
|
return ErrInvalidLengthService
|
||||||
|
}
|
||||||
|
if postIndex > l {
|
||||||
|
return io.ErrUnexpectedEOF
|
||||||
|
}
|
||||||
|
m.DestinationPartition = string(dAtA[iNdEx:postIndex])
|
||||||
|
iNdEx = postIndex
|
||||||
default:
|
default:
|
||||||
iNdEx = preIndex
|
iNdEx = preIndex
|
||||||
skippy, err := skipService(dAtA[iNdEx:])
|
skippy, err := skipService(dAtA[iNdEx:])
|
||||||
|
|
|
@ -134,6 +134,7 @@ message Upstream {
|
||||||
// LocalBindSocketPath is the socket to create to connect to the upstream service
|
// LocalBindSocketPath is the socket to create to connect to the upstream service
|
||||||
string LocalBindSocketPath = 10;
|
string LocalBindSocketPath = 10;
|
||||||
string LocalBindSocketMode = 11;
|
string LocalBindSocketMode = 11;
|
||||||
|
string DestinationPartition = 12;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ServiceConnect are the shared Connect settings between all service
|
// ServiceConnect are the shared Connect settings between all service
|
||||||
|
|
Loading…
Reference in New Issue