First changes for unix domain sockets upstreams

Start making structure changes to support unix domain socket address for upstreams

	upstreams = [
	  {
	    destination_name = "echo-service"
	    local_bind_socket_path = "/tmp/upstream.sock"
	    config {
	      passive_health_check {
		interval = "10s"
		max_failures = 42
	      }
	    }
	  }

Signed-off-by: Mark Anderson <manderson@hashicorp.com>
This commit is contained in:
Mark Anderson 2021-03-26 12:43:57 -07:00
parent 981fb5322a
commit 8b1217417a
7 changed files with 221 additions and 76 deletions

View File

@ -1706,6 +1706,8 @@ func (b *builder) upstreamsVal(v []Upstream) structs.Upstreams {
Datacenter: stringVal(u.Datacenter), Datacenter: stringVal(u.Datacenter),
LocalBindAddress: stringVal(u.LocalBindAddress), LocalBindAddress: stringVal(u.LocalBindAddress),
LocalBindPort: intVal(u.LocalBindPort), LocalBindPort: intVal(u.LocalBindPort),
LocalBindSocketPath: stringVal(u.LocalBindSocketPath),
LocalBindSocketMode: uint32Val(u.LocalBindSocketMode),
Config: u.Config, Config: u.Config,
MeshGateway: b.meshGatewayConfVal(u.MeshGateway), MeshGateway: b.meshGatewayConfVal(u.MeshGateway),
} }

View File

@ -503,14 +503,21 @@ type Upstream struct {
// datacenter. // datacenter.
Datacenter *string `mapstructure:"datacenter"` Datacenter *string `mapstructure:"datacenter"`
// It would be worth thinking about a separate structure for these four items,
// unifying under address as something like "unix:/tmp/foo", "tcp:localhost:80" could make sense
// LocalBindAddress is the ip address a side-car proxy should listen on for // LocalBindAddress is the ip address a side-car proxy should listen on for
// traffic destined for this upstream service. Default if empty is 127.0.0.1. // traffic destined for this upstream service. Default if empty and local bind socket
// is not present is 127.0.0.1.
LocalBindAddress *string `mapstructure:"local_bind_address"` LocalBindAddress *string `mapstructure:"local_bind_address"`
// LocalBindPort is the ip address a side-car proxy should listen on for traffic // LocalBindPort is the ip address a side-car proxy should listen on for traffic
// destined for this upstream service. Required. // destined for this upstream service. Required.
LocalBindPort *int `mapstructure:"local_bind_port"` LocalBindPort *int `mapstructure:"local_bind_port"`
// These are exclusive with LocalBindAddress/LocalBindPort
LocalBindSocketPath *string `mapstructure:"local_bind_socket_path"`
LocalBindSocketMode *uint32 `mapstructure:"local_bind_socket_mode"`
// Config is an opaque config that is specific to the proxy process being run. // Config is an opaque config that is specific to the proxy process being run.
// It can be used to pass arbitrary configuration for this specific upstream // It can be used to pass arbitrary configuration for this specific upstream
// to the proxy. // to the proxy.

View File

@ -3,6 +3,7 @@ package structs
import ( import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"net"
"github.com/hashicorp/consul/api" "github.com/hashicorp/consul/api"
"github.com/hashicorp/consul/lib" "github.com/hashicorp/consul/lib"
@ -319,7 +320,11 @@ type Upstream struct {
// LocalBindPort is the ip address a side-car proxy should listen on for traffic // LocalBindPort is the ip address a side-car proxy should listen on for traffic
// destined for this upstream service. Required. // destined for this upstream service. Required.
LocalBindPort int `alias:"local_bind_port"` LocalBindPort int `json:",omitempty" alias:"local_bind_port"`
// These are exclusive with LocalBindAddress/LocalBindPort
LocalBindSocketPath string `json:",omitempty" alias:"local_bind_socket_path"`
LocalBindSocketMode uint32 `json:",omitempty" alias:"local_bind_socket_mode"`
// Config is an opaque config that is specific to the proxy process being run. // Config is an opaque config that is specific to the proxy process being run.
// It can be used to pass arbitrary configuration for this specific upstream // It can be used to pass arbitrary configuration for this specific upstream
@ -349,6 +354,9 @@ func (t *Upstream) UnmarshalJSON(data []byte) (err error) {
LocalBindAddressSnake string `json:"local_bind_address"` LocalBindAddressSnake string `json:"local_bind_address"`
LocalBindPortSnake int `json:"local_bind_port"` LocalBindPortSnake int `json:"local_bind_port"`
LocalBindSocketPathSnake string `json:"local_bind_socket_path"`
LocalBindSocketModeSnake uint32 `json:"local_bind_socket_mode"`
MeshGatewaySnake MeshGatewayConfig `json:"mesh_gateway"` MeshGatewaySnake MeshGatewayConfig `json:"mesh_gateway"`
*Alias *Alias
@ -373,6 +381,12 @@ func (t *Upstream) UnmarshalJSON(data []byte) (err error) {
if t.LocalBindPort == 0 { if t.LocalBindPort == 0 {
t.LocalBindPort = aux.LocalBindPortSnake t.LocalBindPort = aux.LocalBindPortSnake
} }
if t.LocalBindSocketPath == "" {
t.LocalBindSocketPath = aux.LocalBindSocketPathSnake
}
if t.LocalBindSocketMode == 0 {
t.LocalBindSocketMode = aux.LocalBindSocketModeSnake
}
if t.MeshGateway.Mode == "" { if t.MeshGateway.Mode == "" {
t.MeshGateway.Mode = aux.MeshGatewaySnake.Mode t.MeshGateway.Mode = aux.MeshGatewaySnake.Mode
} }
@ -415,6 +429,8 @@ func (u *Upstream) ToAPI() api.Upstream {
Datacenter: u.Datacenter, Datacenter: u.Datacenter,
LocalBindAddress: u.LocalBindAddress, LocalBindAddress: u.LocalBindAddress,
LocalBindPort: u.LocalBindPort, LocalBindPort: u.LocalBindPort,
LocalBindSocketPath: u.LocalBindSocketPath,
LocalBindSocketMode: u.LocalBindSocketMode,
Config: u.Config, Config: u.Config,
MeshGateway: u.MeshGateway.ToAPI(), MeshGateway: u.MeshGateway.ToAPI(),
} }
@ -435,6 +451,26 @@ func (u *Upstream) ToKey() UpstreamKey {
} }
} }
func (u Upstream) HasLocalPortOrSocket() bool {
return (u.LocalBindPort != 0 || u.LocalBindSocketPath != "")
}
func (u Upstream) UpstreamIsUnixSocket() bool {
return (u.LocalBindPort == 0 && u.LocalBindAddress == "" && u.LocalBindSocketPath != "")
}
func (u Upstream) UpstreamAddressToString() string {
if u.UpstreamIsUnixSocket() {
return u.LocalBindSocketPath
}
addr := u.LocalBindAddress
if addr == "" {
addr = "127.0.0.1"
}
return net.JoinHostPort(addr, fmt.Sprintf("%d", u.LocalBindPort))
}
type UpstreamKey struct { type UpstreamKey struct {
DestinationType string DestinationType string
DestinationName string DestinationName string
@ -466,6 +502,8 @@ func UpstreamFromAPI(u api.Upstream) Upstream {
Datacenter: u.Datacenter, Datacenter: u.Datacenter,
LocalBindAddress: u.LocalBindAddress, LocalBindAddress: u.LocalBindAddress,
LocalBindPort: u.LocalBindPort, LocalBindPort: u.LocalBindPort,
LocalBindSocketPath: u.LocalBindSocketPath,
LocalBindSocketMode: u.LocalBindSocketMode,
Config: u.Config, Config: u.Config,
} }
} }

View File

@ -6,7 +6,6 @@ import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"math/rand" "math/rand"
"net"
"reflect" "reflect"
"regexp" "regexp"
"sort" "sort"
@ -811,7 +810,7 @@ type Services map[string][]string
type ServiceNode struct { type ServiceNode struct {
ID types.NodeID ID types.NodeID
Node string Node string
Address string Address string // TODO markan; this is slippery when we have sockets; the addr:path pattern falls apart.
Datacenter string Datacenter string
TaggedAddresses map[string]string TaggedAddresses map[string]string
NodeMeta map[string]string NodeMeta map[string]string
@ -974,11 +973,13 @@ const (
) )
// Type to hold a address and port of a service // Type to hold a address and port of a service
// TODO markan, think about this around sockets
type ServiceAddress struct { type ServiceAddress struct {
Address string Address string
Port int Port int
} }
// TODO markan, think about this around sockets
func (a ServiceAddress) ToAPIServiceAddress() api.ServiceAddress { func (a ServiceAddress) ToAPIServiceAddress() api.ServiceAddress {
return api.ServiceAddress{Address: a.Address, Port: a.Port} return api.ServiceAddress{Address: a.Address, Port: a.Port}
} }

View File

@ -407,6 +407,8 @@ type Upstream struct {
Datacenter string `json:",omitempty"` Datacenter string `json:",omitempty"`
LocalBindAddress string `json:",omitempty"` LocalBindAddress string `json:",omitempty"`
LocalBindPort int `json:",omitempty"` LocalBindPort int `json:",omitempty"`
LocalBindSocketPath string `json:",omitempty"`
LocalBindSocketMode uint32 `json:",omitempty"`
Config map[string]interface{} `json:",omitempty" bexpr:"-"` Config map[string]interface{} `json:",omitempty" bexpr:"-"`
MeshGateway MeshGatewayConfig `json:",omitempty"` MeshGateway MeshGatewayConfig `json:",omitempty"`
CentrallyConfigured bool `json:",omitempty" bexpr:"-"` CentrallyConfigured bool `json:",omitempty" bexpr:"-"`

View File

@ -154,6 +154,9 @@ type Upstream struct {
// CentrallyConfigured indicates whether the upstream was defined in a proxy // CentrallyConfigured indicates whether the upstream was defined in a proxy
// instance registration or whether it was generated from a config entry. // instance registration or whether it was generated from a config entry.
CentrallyConfigured bool `protobuf:"varint,9,opt,name=CentrallyConfigured,proto3" json:"CentrallyConfigured,omitempty"` CentrallyConfigured bool `protobuf:"varint,9,opt,name=CentrallyConfigured,proto3" json:"CentrallyConfigured,omitempty"`
// LocalBindSocketPath is the socket to create to connect to the upstream service
LocalBindSocketPath string `protobuf:"bytes,10,opt,name=LocalBindSocketPath,proto3" json:"LocalBindSocketPath,omitempty"`
LocalBindSocketMode string `protobuf:"bytes,11,opt,name=LocalBindSocketMode,proto3" json:"LocalBindSocketMode,omitempty"`
} }
func (m *Upstream) Reset() { *m = Upstream{} } func (m *Upstream) Reset() { *m = Upstream{} }
@ -608,78 +611,80 @@ 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{
// 1135 bytes of a gzipped FileDescriptorProto // 1161 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0x4f, 0x6f, 0x1b, 0x45, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x96, 0xcf, 0x6f, 0x1b, 0x45,
0x14, 0xf7, 0xfa, 0x4f, 0x6c, 0xbf, 0x94, 0x34, 0x99, 0x9a, 0xb0, 0x84, 0xd6, 0x49, 0x2d, 0x84, 0x14, 0xc7, 0xbd, 0xfe, 0x11, 0xdb, 0x2f, 0x25, 0x4d, 0xa6, 0x26, 0x2c, 0xa1, 0x75, 0x52, 0x0b,
0x22, 0x88, 0xec, 0x34, 0x51, 0x09, 0xad, 0x54, 0x24, 0x12, 0x07, 0x54, 0x35, 0x69, 0xcd, 0xc6, 0xa1, 0x08, 0x22, 0x3b, 0x4d, 0x54, 0x42, 0x2b, 0x15, 0x89, 0xc4, 0x01, 0x55, 0x4d, 0x5a, 0xb3,
0xa8, 0x02, 0x89, 0xc3, 0x78, 0x3d, 0x59, 0xaf, 0x62, 0xcf, 0x58, 0x3b, 0xe3, 0xd0, 0x1c, 0xf9, 0x31, 0xaa, 0x40, 0xe2, 0x30, 0x5e, 0x4f, 0xd6, 0xab, 0xd8, 0x33, 0xd6, 0xce, 0x38, 0x34, 0x47,
0x06, 0x1c, 0xf9, 0x18, 0x48, 0x7c, 0x89, 0x1c, 0x7b, 0xe4, 0x14, 0x41, 0x72, 0xe6, 0x0b, 0xe4, 0xfe, 0x03, 0x6e, 0xf0, 0x67, 0xf0, 0x67, 0xe4, 0xd8, 0x23, 0xa7, 0x08, 0x92, 0x33, 0xff, 0x40,
0x84, 0xe6, 0xed, 0xec, 0x66, 0xbd, 0x5e, 0xa2, 0xc2, 0xc9, 0x33, 0xef, 0xf7, 0xde, 0x6f, 0x9e, 0x4e, 0x68, 0xde, 0xce, 0x6e, 0xd6, 0xeb, 0x25, 0x2a, 0x9c, 0xbc, 0xf3, 0xbe, 0xef, 0xbd, 0x1d,
0xdf, 0xfb, 0xbd, 0x99, 0x85, 0x07, 0xe3, 0x40, 0x28, 0xd1, 0x1a, 0xf7, 0x24, 0x0b, 0x4e, 0x7d, 0xbf, 0xf9, 0xbc, 0x37, 0x0b, 0x0f, 0xc6, 0x81, 0x50, 0xa2, 0x35, 0xee, 0x49, 0x16, 0x9c, 0xfa,
0x97, 0xb5, 0xcc, 0x6f, 0x13, 0xed, 0xa4, 0x1a, 0x03, 0x2b, 0xf7, 0x3d, 0x21, 0xbc, 0x21, 0x6b, 0x2e, 0x6b, 0x99, 0xdf, 0x26, 0xda, 0x49, 0x35, 0x16, 0x56, 0xee, 0x7b, 0x42, 0x78, 0x43, 0xd6,
0x21, 0xd0, 0x9b, 0x1c, 0xb7, 0xa4, 0x0a, 0x26, 0xae, 0x0a, 0x1d, 0x57, 0x3e, 0x8a, 0x78, 0x5c, 0x42, 0xa1, 0x37, 0x39, 0x6e, 0x49, 0x15, 0x4c, 0x5c, 0x15, 0x3a, 0xae, 0x7c, 0x14, 0xe5, 0x71,
0x31, 0x1a, 0x09, 0xde, 0x0a, 0x7f, 0x0c, 0xf8, 0x30, 0x7d, 0xc8, 0x80, 0xd1, 0xa1, 0x1a, 0xb8, 0xc5, 0x68, 0x24, 0x78, 0x2b, 0xfc, 0x31, 0xe2, 0xc3, 0xf4, 0x4b, 0x06, 0x8c, 0x0e, 0xd5, 0xc0,
0x03, 0xe6, 0x9e, 0x18, 0x97, 0x9a, 0x27, 0x3c, 0x11, 0xba, 0xe9, 0x55, 0x68, 0x6d, 0xfc, 0x5d, 0x1d, 0x30, 0xf7, 0xc4, 0xb8, 0xd4, 0x3c, 0xe1, 0x89, 0xd0, 0x4d, 0x3f, 0x85, 0xd6, 0xc6, 0xdf,
0x04, 0xb2, 0x27, 0x38, 0x67, 0xae, 0xea, 0x04, 0xe2, 0xcd, 0xd9, 0x9e, 0xe0, 0xc7, 0xbe, 0x47, 0x45, 0x20, 0x7b, 0x82, 0x73, 0xe6, 0xaa, 0x4e, 0x20, 0xde, 0x9c, 0xed, 0x09, 0x7e, 0xec, 0x7b,
0x3e, 0x87, 0xe5, 0x36, 0x93, 0xca, 0xe7, 0x54, 0xf9, 0x82, 0x1f, 0x85, 0xa4, 0x2f, 0xe9, 0x88, 0xe4, 0x73, 0x58, 0x6e, 0x33, 0xa9, 0x7c, 0x4e, 0x95, 0x2f, 0xf8, 0x51, 0x98, 0xf4, 0x25, 0x1d,
0xd9, 0xd6, 0x9a, 0xb5, 0x5e, 0x75, 0xfe, 0x05, 0x25, 0x5b, 0x50, 0x9b, 0x45, 0x9e, 0xb7, 0xed, 0x31, 0xdb, 0x5a, 0xb3, 0xd6, 0xab, 0xce, 0xbf, 0xa8, 0x64, 0x0b, 0x6a, 0xb3, 0xca, 0xf3, 0xb6,
0x3c, 0x46, 0x65, 0x62, 0x64, 0x13, 0xee, 0x1d, 0x08, 0x97, 0x0e, 0x8d, 0xe5, 0xab, 0x7e, 0x3f, 0x9d, 0xc7, 0xa8, 0x4c, 0x8d, 0x6c, 0xc2, 0xbd, 0x03, 0xe1, 0xd2, 0xa1, 0xb1, 0x7c, 0xd5, 0xef,
0x60, 0x52, 0xda, 0x05, 0x0c, 0xc9, 0x82, 0xc8, 0xa7, 0xb0, 0x98, 0x34, 0x77, 0x44, 0xa0, 0xec, 0x07, 0x4c, 0x4a, 0xbb, 0x80, 0x21, 0x59, 0x12, 0xf9, 0x14, 0x16, 0x93, 0xe6, 0x8e, 0x08, 0x94,
0xe2, 0x9a, 0xb5, 0x5e, 0x72, 0x66, 0xec, 0xe4, 0x31, 0xcc, 0x85, 0xff, 0xc9, 0x2e, 0xad, 0x59, 0x5d, 0x5c, 0xb3, 0xd6, 0x4b, 0xce, 0x8c, 0x9d, 0x3c, 0x86, 0xb9, 0xf0, 0x3f, 0xd9, 0xa5, 0x35,
0xeb, 0xf3, 0x5b, 0x1f, 0x34, 0xc3, 0x2a, 0x37, 0xa3, 0x2a, 0x37, 0x8f, 0xb0, 0xca, 0xbb, 0xc5, 0x6b, 0x7d, 0x7e, 0xeb, 0x83, 0x66, 0x58, 0xe5, 0x66, 0x54, 0xe5, 0xe6, 0x11, 0x56, 0x79, 0xb7,
0xf3, 0x8b, 0x55, 0xcb, 0x31, 0xce, 0x64, 0x07, 0xaa, 0xdf, 0x8d, 0xa5, 0x0a, 0x18, 0x1d, 0x49, 0x78, 0x7e, 0xb1, 0x6a, 0x39, 0xc6, 0x99, 0xec, 0x40, 0xf5, 0xbb, 0xb1, 0x54, 0x01, 0xa3, 0x23,
0x7b, 0x6e, 0xad, 0xb0, 0x3e, 0xbf, 0x75, 0xaf, 0x19, 0x97, 0xb7, 0x19, 0x61, 0x18, 0x95, 0x73, 0x69, 0xcf, 0xad, 0x15, 0xd6, 0xe7, 0xb7, 0xee, 0x35, 0xe3, 0xf2, 0x36, 0x23, 0x0d, 0xa3, 0x72,
0x6e, 0x7c, 0x49, 0x1b, 0xe6, 0x0f, 0x99, 0x1c, 0x7c, 0x43, 0x15, 0xfb, 0x89, 0x9e, 0xd9, 0x65, 0xce, 0x8d, 0x2f, 0x69, 0xc3, 0xfc, 0x21, 0x93, 0x83, 0x6f, 0xa8, 0x62, 0x3f, 0xd1, 0x33, 0xbb,
0x3c, 0xf4, 0x7e, 0x22, 0x34, 0x81, 0x86, 0x67, 0x19, 0x8e, 0x64, 0x98, 0xce, 0x7a, 0xff, 0xcd, 0x8c, 0x2f, 0xbd, 0x9f, 0x08, 0x4d, 0xa8, 0xe1, 0xbb, 0x4c, 0x8e, 0x64, 0x98, 0xde, 0xf5, 0xfe,
0x58, 0x48, 0x66, 0x57, 0x4c, 0xd6, 0x37, 0x04, 0x21, 0x30, 0x15, 0x6b, 0x9c, 0xc9, 0x0b, 0x28, 0x9b, 0xb1, 0x90, 0xcc, 0xae, 0x98, 0x5d, 0xdf, 0x24, 0x08, 0x85, 0xa9, 0x58, 0xe3, 0x4c, 0x5e,
0x1e, 0x8a, 0x3e, 0xb3, 0xab, 0xba, 0x76, 0xbb, 0x3b, 0xd7, 0x17, 0xab, 0xdb, 0x9e, 0xaf, 0x06, 0x40, 0xf1, 0x50, 0xf4, 0x99, 0x5d, 0xd5, 0xb5, 0xdb, 0xdd, 0xb9, 0xbe, 0x58, 0xdd, 0xf6, 0x7c,
0x93, 0x5e, 0xd3, 0x15, 0xa3, 0xd6, 0x80, 0xca, 0x81, 0xef, 0x8a, 0x60, 0xdc, 0x72, 0x05, 0x97, 0x35, 0x98, 0xf4, 0x9a, 0xae, 0x18, 0xb5, 0x06, 0x54, 0x0e, 0x7c, 0x57, 0x04, 0xe3, 0x96, 0x2b,
0x93, 0x61, 0x8b, 0x7a, 0x8c, 0x2b, 0xa3, 0x32, 0xd9, 0xc4, 0xfe, 0xeb, 0x70, 0x07, 0x49, 0xc8, 0xb8, 0x9c, 0x0c, 0x5b, 0xd4, 0x63, 0x5c, 0x19, 0xca, 0x64, 0x13, 0xcf, 0x5f, 0x87, 0x3b, 0x98,
0x11, 0x2c, 0x76, 0x03, 0xca, 0xe5, 0x98, 0x06, 0x8c, 0x87, 0xea, 0xb0, 0x01, 0xb3, 0x79, 0x98, 0x84, 0x1c, 0xc1, 0x62, 0x37, 0xa0, 0x5c, 0x8e, 0x69, 0xc0, 0x78, 0x48, 0x87, 0x0d, 0xb8, 0x9b,
0xc8, 0x26, 0xed, 0x32, 0x95, 0xd7, 0x0c, 0x41, 0xe3, 0xf7, 0x02, 0x54, 0xa2, 0x62, 0x91, 0x75, 0x87, 0x89, 0xdd, 0xa4, 0x5d, 0xa6, 0xf6, 0x35, 0x93, 0xa0, 0xf1, 0x6b, 0x11, 0x2a, 0x51, 0xb1,
0xb8, 0x9b, 0x50, 0x44, 0xf7, 0x6c, 0x1c, 0xc9, 0x2b, 0x6d, 0x4e, 0xe9, 0x4a, 0x4b, 0x4d, 0x8e, 0xc8, 0x3a, 0xdc, 0x4d, 0x10, 0xd1, 0x3d, 0x1b, 0x47, 0x78, 0xa5, 0xcd, 0x29, 0xae, 0x34, 0x6a,
0xa9, 0xcb, 0x32, 0x74, 0x15, 0x63, 0x29, 0x76, 0x14, 0x6f, 0x61, 0x86, 0x1d, 0x55, 0x5b, 0x07, 0x72, 0x4c, 0x5d, 0x96, 0xc1, 0x55, 0xac, 0xa5, 0xb2, 0x23, 0xbc, 0x85, 0x99, 0xec, 0x48, 0x6d,
0x68, 0x53, 0x45, 0x5d, 0xc6, 0x15, 0x0b, 0x50, 0x49, 0x55, 0x27, 0x61, 0x89, 0xf5, 0xb6, 0xeb, 0x1d, 0xa0, 0x4d, 0x15, 0x75, 0x19, 0x57, 0x2c, 0x40, 0x92, 0xaa, 0x4e, 0xc2, 0x12, 0xf3, 0xb6,
0xf3, 0x7e, 0x24, 0xcf, 0x12, 0x7a, 0xcd, 0xd8, 0xc9, 0xc7, 0xf0, 0x5e, 0x6c, 0x43, 0x61, 0xce, 0xeb, 0xf3, 0x7e, 0x84, 0x67, 0x09, 0xbd, 0x66, 0xec, 0xe4, 0x63, 0x78, 0x2f, 0xb6, 0x21, 0x98,
0xa1, 0x30, 0xa7, 0x8d, 0x09, 0x55, 0x96, 0xff, 0x8b, 0x2a, 0x53, 0xe2, 0xaa, 0xfc, 0x3f, 0x71, 0x73, 0x08, 0xe6, 0xb4, 0x31, 0x41, 0x65, 0xf9, 0xbf, 0x50, 0x99, 0x82, 0xab, 0xf2, 0xff, 0xe0,
0x6d, 0xc2, 0xbd, 0x3d, 0xc6, 0x55, 0x40, 0x87, 0x43, 0xe3, 0x35, 0x09, 0x58, 0x1f, 0x45, 0x53, 0xda, 0x84, 0x7b, 0x7b, 0x8c, 0xab, 0x80, 0x0e, 0x87, 0xc6, 0x6b, 0x12, 0xb0, 0x3e, 0x42, 0x53,
0x71, 0xb2, 0xa0, 0x06, 0x87, 0x05, 0x33, 0x53, 0xe6, 0xae, 0x20, 0xcb, 0x30, 0xf7, 0x92, 0x2a, 0x71, 0xb2, 0xa4, 0xb8, 0x45, 0xf5, 0xfe, 0x8f, 0x84, 0x7b, 0xc2, 0x54, 0x87, 0xaa, 0x01, 0xd2,
0xff, 0x34, 0xec, 0x58, 0xc5, 0x31, 0x3b, 0xd2, 0x86, 0x85, 0x23, 0xbf, 0xcf, 0x5c, 0x1a, 0x98, 0x10, 0xb5, 0xe8, 0xb4, 0x94, 0x11, 0x81, 0x60, 0xce, 0x67, 0x46, 0x68, 0xa9, 0xc1, 0x61, 0xc1,
0x00, 0xac, 0xf9, 0x74, 0x92, 0x06, 0x69, 0xb3, 0x63, 0x9f, 0xfb, 0xba, 0x09, 0x4e, 0x2a, 0xa6, 0xf4, 0xad, 0x99, 0x47, 0x64, 0x19, 0xe6, 0x5e, 0x52, 0xe5, 0x9f, 0x86, 0x54, 0x54, 0x1c, 0xb3,
0xf1, 0x3d, 0xdc, 0x49, 0xaa, 0x5c, 0x9f, 0xb6, 0xa7, 0xaf, 0x32, 0x19, 0x9d, 0x16, 0xee, 0xc8, 0x22, 0x6d, 0x58, 0x38, 0xf2, 0xfb, 0xcc, 0xa5, 0x81, 0x09, 0xc0, 0x73, 0x9d, 0x2e, 0x84, 0x51,
0x23, 0x28, 0x75, 0xa8, 0x1a, 0x48, 0x3b, 0x8f, 0x13, 0xfa, 0xfe, 0xcc, 0x94, 0x68, 0xd4, 0x94, 0xda, 0xec, 0xd8, 0xe7, 0xbe, 0x3e, 0x68, 0x27, 0x15, 0xd3, 0xf8, 0x1e, 0xee, 0x24, 0x3b, 0x49,
0x20, 0xf4, 0x6c, 0xfc, 0x66, 0x01, 0xdc, 0x60, 0xa4, 0x01, 0x77, 0x0e, 0x7c, 0xa9, 0x18, 0x67, 0xbf, 0x6d, 0x4f, 0x8f, 0x4b, 0x19, 0xbd, 0x2d, 0x5c, 0x91, 0x47, 0x50, 0xd2, 0xff, 0x48, 0xda,
0x01, 0x76, 0xcb, 0xc2, 0x6e, 0x4d, 0xd9, 0x08, 0x81, 0xa2, 0xf6, 0x35, 0x62, 0xc3, 0x75, 0xdc, 0x79, 0x9c, 0x02, 0xef, 0xcf, 0x74, 0xa2, 0x56, 0x4d, 0x99, 0x43, 0xcf, 0xc6, 0xef, 0x16, 0xc0,
0x66, 0xbd, 0xc1, 0xc0, 0x42, 0xa2, 0xcd, 0x91, 0x91, 0xac, 0x40, 0xa5, 0xa3, 0x1b, 0xea, 0x8a, 0x8d, 0x46, 0x1a, 0x70, 0xe7, 0xc0, 0x97, 0x8a, 0x71, 0x16, 0x20, 0x11, 0x16, 0x12, 0x31, 0x65,
0xa1, 0x91, 0x55, 0xbc, 0xd7, 0xf2, 0xec, 0xd0, 0x40, 0xb2, 0xfe, 0xd7, 0x81, 0x18, 0xe1, 0xff, 0x23, 0x04, 0x8a, 0x58, 0xd2, 0x10, 0x68, 0x7c, 0x8e, 0x51, 0xd2, 0x0b, 0x0c, 0x2c, 0x24, 0x50,
0x41, 0x4d, 0x55, 0x9c, 0xb4, 0xb9, 0x71, 0x0c, 0x4b, 0x33, 0x7d, 0x25, 0xdf, 0x9a, 0x51, 0xc7, 0x8a, 0x8c, 0x64, 0x05, 0x2a, 0x1d, 0x0d, 0x8d, 0x2b, 0x86, 0x06, 0xdd, 0x78, 0xad, 0x5b, 0xa0,
0x81, 0xd9, 0x7d, 0x76, 0x7d, 0xb1, 0xfa, 0xe4, 0xdd, 0x47, 0x3d, 0x41, 0x77, 0x33, 0xf0, 0x8d, 0x43, 0x03, 0xc9, 0xfa, 0x5f, 0x07, 0x62, 0x84, 0xff, 0x07, 0xb9, 0xad, 0x38, 0x69, 0x73, 0xe3,
0x03, 0x58, 0xce, 0x9e, 0x66, 0x3d, 0x7e, 0xaf, 0x26, 0xaa, 0x27, 0x26, 0xbc, 0x9f, 0x51, 0xad, 0x18, 0x96, 0x66, 0xd8, 0x21, 0xdf, 0x9a, 0x71, 0x82, 0x4d, 0xb9, 0xfb, 0xec, 0xfa, 0x62, 0xf5,
0x4c, 0xac, 0xf1, 0x73, 0x19, 0x96, 0x66, 0x3a, 0x4d, 0x0e, 0xa1, 0xf8, 0xc2, 0xe7, 0x7d, 0x93, 0xc9, 0xbb, 0x8f, 0x93, 0x44, 0xba, 0x9b, 0xa1, 0xd2, 0x38, 0x80, 0xe5, 0xec, 0x89, 0xa1, 0x5b,
0xf6, 0x93, 0xeb, 0x8b, 0xd5, 0xc7, 0xef, 0x9e, 0xb6, 0xa1, 0xd3, 0x04, 0x0e, 0xd2, 0x90, 0x05, 0xfc, 0xd5, 0x44, 0xf5, 0xc4, 0x84, 0xf7, 0x33, 0xaa, 0x95, 0xa9, 0x35, 0x7e, 0x2e, 0xc3, 0xd2,
0xc8, 0xc7, 0xaf, 0x4b, 0xfe, 0x79, 0x5b, 0xb7, 0x2a, 0x31, 0xe8, 0xb8, 0xd6, 0xb6, 0x2e, 0xf5, 0xcc, 0x49, 0x93, 0x43, 0x28, 0xbe, 0xf0, 0x79, 0xdf, 0x6c, 0xfb, 0xc9, 0xf5, 0xc5, 0xea, 0xe3,
0xa4, 0x5d, 0x5c, 0x2b, 0x68, 0x9b, 0x5e, 0x13, 0x1b, 0xca, 0xd3, 0x83, 0x1c, 0x6d, 0x09, 0x85, 0x77, 0xdf, 0xb6, 0x49, 0xa7, 0x13, 0x38, 0x98, 0x86, 0x2c, 0x40, 0x3e, 0xbe, 0xc1, 0xf2, 0xcf,
0xbb, 0x5d, 0xea, 0x79, 0x2c, 0x1a, 0x68, 0x26, 0xed, 0x45, 0x14, 0xd7, 0xa3, 0xdb, 0x14, 0xdc, 0xdb, 0xfa, 0xa8, 0x12, 0xc3, 0x04, 0x9f, 0xb5, 0xad, 0x4b, 0x3d, 0x69, 0x17, 0xd7, 0x0a, 0xda,
0x4c, 0xc5, 0xec, 0x73, 0x15, 0x9c, 0x19, 0xe1, 0xa5, 0xf9, 0xc8, 0x53, 0x28, 0x1e, 0x32, 0x45, 0xa6, 0x9f, 0x89, 0x0d, 0xe5, 0xe9, 0x61, 0x11, 0x2d, 0x09, 0x85, 0xbb, 0x5d, 0xea, 0x79, 0x2c,
0xcd, 0xb3, 0xf2, 0xc9, 0xad, 0xbc, 0xda, 0x11, 0xc9, 0x1c, 0x8c, 0x41, 0x2d, 0xea, 0xca, 0x97, 0x1a, 0x1a, 0x4c, 0xda, 0x8b, 0x08, 0xd7, 0xa3, 0xdb, 0x08, 0x6e, 0xa6, 0x62, 0xf6, 0xb9, 0x0a,
0xb1, 0xf2, 0xb8, 0x26, 0x9b, 0x50, 0x0a, 0xf5, 0x13, 0xde, 0x07, 0xb5, 0x04, 0x21, 0xda, 0xf5, 0xce, 0x0c, 0x78, 0xe9, 0x7c, 0xe4, 0x29, 0x14, 0x0f, 0x99, 0xa2, 0xe6, 0xea, 0xfa, 0xe4, 0xd6,
0x0d, 0x1a, 0x0d, 0x01, 0x1a, 0xc8, 0x46, 0x3c, 0x4f, 0x55, 0xcc, 0x21, 0x33, 0x24, 0x9e, 0xb2, 0xbc, 0xda, 0x11, 0x93, 0x39, 0x18, 0x83, 0x2c, 0xea, 0xca, 0x97, 0xb1, 0xf2, 0xf8, 0x4c, 0x36,
0x0d, 0x28, 0xbf, 0x66, 0xbe, 0x37, 0x50, 0xd2, 0xdc, 0xff, 0x24, 0xe1, 0x6e, 0x10, 0x27, 0x72, 0xa1, 0x14, 0xf2, 0x13, 0xce, 0x9c, 0x5a, 0x22, 0x21, 0xda, 0xf5, 0x94, 0x8e, 0x9a, 0x00, 0x0d,
0x21, 0x35, 0x28, 0x75, 0xc5, 0x09, 0xe3, 0xf6, 0x3c, 0x16, 0x36, 0xdc, 0x90, 0x0d, 0x58, 0xda, 0x64, 0x23, 0xee, 0xa7, 0x2a, 0xee, 0x21, 0x33, 0x24, 0xee, 0xb2, 0x0d, 0x28, 0xbf, 0x66, 0xbe,
0xe7, 0xb4, 0x37, 0x64, 0x5d, 0xea, 0xbd, 0x3a, 0x65, 0x41, 0xe0, 0xf7, 0x99, 0x7d, 0x07, 0xf5, 0x37, 0x50, 0xd2, 0xdc, 0x31, 0x24, 0xe1, 0x6e, 0x14, 0x27, 0x72, 0x21, 0x35, 0x28, 0x75, 0xc5,
0x3e, 0x0b, 0x90, 0x6d, 0x28, 0x85, 0xef, 0xcd, 0x02, 0x9e, 0xf7, 0x20, 0x99, 0xde, 0xcc, 0xc7, 0x09, 0xe3, 0x66, 0x9e, 0x84, 0x0b, 0xb2, 0x01, 0x4b, 0xfb, 0x9c, 0xf6, 0x86, 0xac, 0x4b, 0xbd,
0x8a, 0x13, 0xfa, 0xea, 0xab, 0x67, 0x5f, 0x5f, 0xd7, 0xe3, 0xc0, 0x97, 0x0c, 0x0b, 0xbc, 0x84, 0x57, 0xa7, 0x2c, 0x08, 0xfc, 0x3e, 0xb3, 0xef, 0x20, 0xef, 0xb3, 0x02, 0xd9, 0x86, 0x52, 0x78,
0xd1, 0xcb, 0x4d, 0xf3, 0xa9, 0x34, 0x8d, 0x9a, 0x8a, 0xa4, 0x62, 0xc8, 0x36, 0x94, 0xcd, 0x11, 0xa7, 0x2d, 0xe0, 0xfb, 0x1e, 0x24, 0xb7, 0x37, 0xf3, 0x41, 0xe4, 0x84, 0xbe, 0x7a, 0xf4, 0xec,
0xf6, 0x5d, 0x0c, 0xff, 0x70, 0xb6, 0x3f, 0xc6, 0xc1, 0x89, 0x3c, 0x57, 0x7e, 0x84, 0x5a, 0x96, 0xeb, 0x2b, 0x61, 0x1c, 0xf8, 0x92, 0x61, 0x81, 0x97, 0x30, 0x7a, 0xb9, 0x69, 0x3e, 0xc7, 0xa6,
0x00, 0xc8, 0x22, 0x14, 0x4e, 0xd8, 0x99, 0x79, 0xd4, 0xf4, 0x92, 0xb4, 0xa0, 0x74, 0x4a, 0x87, 0x55, 0x53, 0x91, 0x54, 0x0c, 0xd9, 0x86, 0xb2, 0x79, 0x85, 0x7d, 0x17, 0xc3, 0x3f, 0x9c, 0x3d,
0x93, 0xf0, 0xe5, 0xca, 0x24, 0x37, 0x14, 0x4e, 0xe8, 0xf7, 0x34, 0xff, 0x85, 0xb5, 0xb2, 0x03, 0x1f, 0xe3, 0xe0, 0x44, 0x9e, 0x2b, 0x3f, 0x42, 0x2d, 0x0b, 0x00, 0xb2, 0x08, 0x85, 0x13, 0x76,
0xd5, 0x58, 0x07, 0x19, 0x9c, 0xb5, 0x24, 0x67, 0x35, 0x11, 0xd8, 0xf8, 0x32, 0xbe, 0xb7, 0x23, 0x66, 0x2e, 0x4e, 0xfd, 0x48, 0x5a, 0x50, 0x3a, 0xa5, 0xc3, 0x49, 0x78, 0x3b, 0x66, 0x26, 0x37,
0x79, 0x27, 0x84, 0x6f, 0x4d, 0x0b, 0x3f, 0x52, 0x56, 0xfe, 0x46, 0x59, 0x8d, 0x67, 0x71, 0xe7, 0x29, 0x9c, 0xd0, 0xef, 0x69, 0xfe, 0x0b, 0x6b, 0x65, 0x07, 0xaa, 0x31, 0x07, 0x19, 0x39, 0x6b,
0x75, 0x60, 0x87, 0x4a, 0xe9, 0x73, 0xcf, 0x4c, 0x7d, 0xb4, 0xd5, 0xc8, 0x6b, 0x1a, 0x70, 0x8d, 0xc9, 0x9c, 0xd5, 0x44, 0x60, 0xe3, 0xcb, 0x78, 0x6e, 0x47, 0x78, 0x27, 0xc0, 0xb7, 0xa6, 0xc1,
0x84, 0xb1, 0xd1, 0x76, 0xf7, 0xf0, 0xfc, 0xaf, 0x7a, 0xee, 0xfc, 0xb2, 0x6e, 0xbd, 0xbd, 0xac, 0x8f, 0xc8, 0xca, 0xdf, 0x90, 0xd5, 0x78, 0x16, 0x9f, 0xbc, 0x0e, 0xec, 0x50, 0x29, 0x7d, 0xee,
0x5b, 0x7f, 0x5e, 0xd6, 0xad, 0x5f, 0xae, 0xea, 0xb9, 0x5f, 0xaf, 0xea, 0xb9, 0xb7, 0x57, 0xf5, 0x99, 0xae, 0x8f, 0x96, 0x5a, 0x79, 0x4d, 0x03, 0xae, 0x95, 0x30, 0x36, 0x5a, 0xee, 0x1e, 0x9e,
0xdc, 0x1f, 0x57, 0xf5, 0xdc, 0x0f, 0x9f, 0xdd, 0x36, 0xfc, 0xa9, 0x6f, 0xda, 0xde, 0x1c, 0x1a, 0xff, 0x55, 0xcf, 0x9d, 0x5f, 0xd6, 0xad, 0xb7, 0x97, 0x75, 0xeb, 0xcf, 0xcb, 0xba, 0xf5, 0xcb,
0xb6, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0x1f, 0xf1, 0x41, 0x33, 0x52, 0x0b, 0x00, 0x00, 0x55, 0x3d, 0xf7, 0xdb, 0x55, 0x3d, 0xf7, 0xf6, 0xaa, 0x9e, 0xfb, 0xe3, 0xaa, 0x9e, 0xfb, 0xe1,
0xb3, 0xdb, 0x9a, 0x3f, 0xf5, 0xdd, 0xdc, 0x9b, 0x43, 0xc3, 0xf6, 0x3f, 0x01, 0x00, 0x00, 0xff,
0xff, 0x0f, 0xd3, 0xfd, 0x57, 0xb6, 0x0b, 0x00, 0x00,
} }
func (m *ConnectProxyConfig) Marshal() (dAtA []byte, err error) { func (m *ConnectProxyConfig) Marshal() (dAtA []byte, err error) {
@ -814,6 +819,20 @@ func (m *Upstream) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i _ = i
var l int var l int
_ = l _ = l
if len(m.LocalBindSocketMode) > 0 {
i -= len(m.LocalBindSocketMode)
copy(dAtA[i:], m.LocalBindSocketMode)
i = encodeVarintService(dAtA, i, uint64(len(m.LocalBindSocketMode)))
i--
dAtA[i] = 0x5a
}
if len(m.LocalBindSocketPath) > 0 {
i -= len(m.LocalBindSocketPath)
copy(dAtA[i:], m.LocalBindSocketPath)
i = encodeVarintService(dAtA, i, uint64(len(m.LocalBindSocketPath)))
i--
dAtA[i] = 0x52
}
if m.CentrallyConfigured { if m.CentrallyConfigured {
i-- i--
if m.CentrallyConfigured { if m.CentrallyConfigured {
@ -1456,6 +1475,14 @@ func (m *Upstream) Size() (n int) {
if m.CentrallyConfigured { if m.CentrallyConfigured {
n += 2 n += 2
} }
l = len(m.LocalBindSocketPath)
if l > 0 {
n += 1 + l + sovService(uint64(l))
}
l = len(m.LocalBindSocketMode)
if l > 0 {
n += 1 + l + sovService(uint64(l))
}
return n return n
} }
@ -2327,6 +2354,70 @@ func (m *Upstream) Unmarshal(dAtA []byte) error {
} }
} }
m.CentrallyConfigured = bool(v != 0) m.CentrallyConfigured = bool(v != 0)
case 10:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field LocalBindSocketPath", 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.LocalBindSocketPath = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 11:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field LocalBindSocketMode", 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.LocalBindSocketMode = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
default: default:
iNdEx = preIndex iNdEx = preIndex
skippy, err := skipService(dAtA[iNdEx:]) skippy, err := skipService(dAtA[iNdEx:])

View File

@ -127,6 +127,10 @@ message Upstream {
// CentrallyConfigured indicates whether the upstream was defined in a proxy // CentrallyConfigured indicates whether the upstream was defined in a proxy
// instance registration or whether it was generated from a config entry. // instance registration or whether it was generated from a config entry.
bool CentrallyConfigured = 9; bool CentrallyConfigured = 9;
// LocalBindSocketPath is the socket to create to connect to the upstream service
string LocalBindSocketPath = 10;
string LocalBindSocketMode = 11;
} }
// ServiceConnect are the shared Connect settings between all service // ServiceConnect are the shared Connect settings between all service