Merge pull request #11051 from hashicorp/partitions/fixes
This commit is contained in:
commit
88627700d0
|
@ -585,7 +585,7 @@ func (s *Intention) Match(args *structs.IntentionQueryRequest, reply *structs.In
|
|||
return err
|
||||
}
|
||||
|
||||
// Finish defaulting the namespace fields.
|
||||
// Finish defaulting the namespace and partition fields.
|
||||
for i := range args.Match.Entries {
|
||||
if args.Match.Entries[i].Namespace == "" {
|
||||
args.Match.Entries[i].Namespace = entMeta.NamespaceOrDefault()
|
||||
|
@ -594,6 +594,14 @@ func (s *Intention) Match(args *structs.IntentionQueryRequest, reply *structs.In
|
|||
return fmt.Errorf("Invalid match entry namespace %q: %v",
|
||||
args.Match.Entries[i].Namespace, err)
|
||||
}
|
||||
|
||||
if args.Match.Entries[i].Partition == "" {
|
||||
args.Match.Entries[i].Partition = entMeta.PartitionOrDefault()
|
||||
}
|
||||
if err := s.srv.validateEnterpriseIntentionPartition(args.Match.Entries[i].Partition); err != nil {
|
||||
return fmt.Errorf("Invalid match entry partition %q: %v",
|
||||
args.Match.Entries[i].Partition, err)
|
||||
}
|
||||
}
|
||||
|
||||
var authzContext acl.AuthorizerContext
|
||||
|
|
|
@ -911,6 +911,7 @@ func intentionMatchOneTxn(tx ReadTxn, ws memdb.WatchSet,
|
|||
return result, nil
|
||||
}
|
||||
|
||||
// TODO(partitions): Update for partitions
|
||||
// intentionMatchGetParams returns the tx.Get parameters to find all the
|
||||
// intentions for a certain entry.
|
||||
func intentionMatchGetParams(entry structs.IntentionMatchEntry) ([][]interface{}, error) {
|
||||
|
|
|
@ -59,6 +59,7 @@ func (s *handlerConnectProxy) initialize(ctx context.Context) (ConfigSnapshot, e
|
|||
Entries: []structs.IntentionMatchEntry{
|
||||
{
|
||||
Namespace: s.proxyID.NamespaceOrDefault(),
|
||||
Partition: s.proxyID.PartitionOrDefault(),
|
||||
Name: s.proxyCfg.DestinationServiceName,
|
||||
},
|
||||
},
|
||||
|
|
|
@ -139,6 +139,7 @@ func TestManager_BasicLifecycle(t *testing.T) {
|
|||
Entries: []structs.IntentionMatchEntry{
|
||||
{
|
||||
Namespace: structs.IntentionDefaultNamespace,
|
||||
Partition: structs.IntentionDefaultNamespace,
|
||||
Name: "web",
|
||||
},
|
||||
},
|
||||
|
|
|
@ -121,6 +121,7 @@ func (s *handlerTerminatingGateway) handleUpdate(ctx context.Context, u cache.Up
|
|||
Entries: []structs.IntentionMatchEntry{
|
||||
{
|
||||
Namespace: svc.Service.NamespaceOrDefault(),
|
||||
Partition: svc.Service.PartitionOrDefault(),
|
||||
Name: svc.Service.Name,
|
||||
},
|
||||
},
|
||||
|
|
|
@ -639,10 +639,9 @@ func (s *ResourceGenerator) makeUpstreamClustersForDiscoveryChain(
|
|||
targetSpiffeID := connect.SpiffeIDService{
|
||||
Host: cfgSnap.Roots.TrustDomain,
|
||||
Namespace: target.Namespace,
|
||||
Partition: target.Partition,
|
||||
Datacenter: target.Datacenter,
|
||||
Service: target.Service,
|
||||
|
||||
// TODO(partitions) Store partition
|
||||
}
|
||||
|
||||
if failoverThroughMeshGateway {
|
||||
|
@ -676,10 +675,9 @@ func (s *ResourceGenerator) makeUpstreamClustersForDiscoveryChain(
|
|||
id := connect.SpiffeIDService{
|
||||
Host: cfgSnap.Roots.TrustDomain,
|
||||
Namespace: target.Namespace,
|
||||
Partition: target.Partition,
|
||||
Datacenter: target.Datacenter,
|
||||
Service: target.Service,
|
||||
|
||||
// TODO(partitions) Store partition
|
||||
}
|
||||
|
||||
// Failover targets might be subsets of the same service, so these are deduplicated.
|
||||
|
|
12
api/api.go
12
api/api.go
|
@ -660,6 +660,14 @@ func NewClient(config *Config) (*Client, error) {
|
|||
}
|
||||
}
|
||||
|
||||
if config.Namespace == "" {
|
||||
config.Namespace = defConfig.Namespace
|
||||
}
|
||||
|
||||
if config.Partition == "" {
|
||||
config.Partition = defConfig.Partition
|
||||
}
|
||||
|
||||
parts := strings.SplitN(config.Address, "://", 2)
|
||||
if len(parts) == 2 {
|
||||
switch parts[0] {
|
||||
|
@ -1117,7 +1125,9 @@ func generateUnexpectedResponseCodeError(resp *http.Response) error {
|
|||
var buf bytes.Buffer
|
||||
io.Copy(&buf, resp.Body)
|
||||
closeResponseBody(resp)
|
||||
return fmt.Errorf("Unexpected response code: %d (%s)", resp.StatusCode, buf.Bytes())
|
||||
|
||||
trimmed := strings.TrimSpace(string(buf.Bytes()))
|
||||
return fmt.Errorf("Unexpected response code: %d (%s)", resp.StatusCode, trimmed)
|
||||
}
|
||||
|
||||
func requireNotFoundOrOK(d time.Duration, resp *http.Response, e error) (bool, time.Duration, *http.Response, error) {
|
||||
|
|
|
@ -513,12 +513,17 @@ func generateStatsTags(args *BootstrapTplArgs, initialTags []string, omitDepreca
|
|||
}
|
||||
tagJSONs = append(tagJSONs, tags...)
|
||||
|
||||
// Default the namespace here since it is also done for cluster SNI
|
||||
// Default the namespace and partition here since it is also done for cluster SNI
|
||||
ns := args.Namespace
|
||||
if ns == "" {
|
||||
ns = api.IntentionDefaultNamespace
|
||||
}
|
||||
|
||||
ap := args.Partition
|
||||
if ap == "" {
|
||||
ap = api.IntentionDefaultNamespace
|
||||
}
|
||||
|
||||
// Add some default tags if not already overridden. Note this is a slice not a
|
||||
// map since we need ordering to be deterministic.
|
||||
defaults := []struct {
|
||||
|
@ -540,6 +545,10 @@ func generateStatsTags(args *BootstrapTplArgs, initialTags []string, omitDepreca
|
|||
name: "consul.source.namespace",
|
||||
val: ns,
|
||||
},
|
||||
{
|
||||
name: "consul.source.partition",
|
||||
val: ap,
|
||||
},
|
||||
{
|
||||
name: "consul.source.datacenter",
|
||||
val: args.Datacenter,
|
||||
|
|
|
@ -89,6 +89,10 @@ type BootstrapTplArgs struct {
|
|||
// as registered with the Consul agent.
|
||||
Namespace string
|
||||
|
||||
// Partition is the Consul Enterprise Partition of the proxy service instance
|
||||
// as registered with the Consul agent.
|
||||
Partition string
|
||||
|
||||
// Datacenter is the datacenter where the proxy service instance is registered.
|
||||
Datacenter string
|
||||
|
||||
|
@ -141,6 +145,7 @@ const bootstrapTemplate = `{
|
|||
"id": "{{ .ProxyID }}",
|
||||
"metadata": {
|
||||
"namespace": "{{if ne .Namespace ""}}{{ .Namespace }}{{else}}default{{end}}",
|
||||
"partition": "{{if ne .Partition ""}}{{ .Partition }}{{else}}default{{end}}",
|
||||
"envoy_version": "{{ .EnvoyVersion }}"
|
||||
}
|
||||
},
|
||||
|
|
|
@ -482,6 +482,7 @@ func (c *cmd) templateArgs() (*BootstrapTplArgs, error) {
|
|||
Token: httpCfg.Token,
|
||||
LocalAgentClusterName: xds.LocalAgentClusterName,
|
||||
Namespace: httpCfg.Namespace,
|
||||
Partition: httpCfg.Partition,
|
||||
EnvoyVersion: c.envoyVersion,
|
||||
Datacenter: httpCfg.Datacenter,
|
||||
PrometheusBackendPort: c.prometheusBackendPort,
|
||||
|
@ -525,18 +526,20 @@ func (c *cmd) generateConfig() ([]byte, error) {
|
|||
// Set the source service name from the proxy's own registration
|
||||
args.ProxySourceService = svc.Service
|
||||
}
|
||||
|
||||
// In most cases where namespaces and partitions are enabled they will already be set
|
||||
// correctly because the http client that fetched this will provide them explicitly.
|
||||
// However, if these arguments were not provided, they will be empty even
|
||||
// though Namespaces and Partitions are actually being used.
|
||||
// Overriding them ensures that we always set the Namespace and Partition args
|
||||
// if the cluster is using them. This prevents us from defaulting to the "default"
|
||||
// when a non-default partition or namespace was inferred from the ACL token.
|
||||
if svc.Namespace != "" {
|
||||
// In most cases where namespaces are enabled this will already be set
|
||||
// correctly because the http client that fetched this will need to have
|
||||
// had the namespace set on it which is also how we initially populate
|
||||
// this. However in the case of "default" namespace being accessed because
|
||||
// there was no namespace argument, args.Namespace will be empty even
|
||||
// though Namespaces are actually being used and the namespace of the request was
|
||||
// inferred from the ACL token or defaulted to the "default" namespace.
|
||||
// Overriding it here ensures that we always set the Namespace arg if the
|
||||
// cluster is using namespaces regardless.
|
||||
args.Namespace = svc.Namespace
|
||||
}
|
||||
if svc.Partition != "" {
|
||||
args.Partition = svc.Partition
|
||||
}
|
||||
|
||||
if svc.Datacenter != "" {
|
||||
// The agent will definitely have the definitive answer here.
|
||||
|
|
|
@ -90,7 +90,7 @@ func testSetAndResetEnv(t *testing.T, env []string) func() {
|
|||
// save it as a nil so we know to remove again
|
||||
old[pair[0]] = nil
|
||||
}
|
||||
os.Setenv(pair[0], pair[1])
|
||||
require.NoError(t, os.Setenv(pair[0], pair[1]))
|
||||
}
|
||||
// Return a func that will reset to old values
|
||||
return func() {
|
||||
|
@ -106,6 +106,7 @@ func testSetAndResetEnv(t *testing.T, env []string) func() {
|
|||
|
||||
type generateConfigTestCase struct {
|
||||
Name string
|
||||
TLSServer bool
|
||||
Flags []string
|
||||
Env []string
|
||||
Files map[string]string
|
||||
|
@ -452,9 +453,10 @@ func TestGenerateConfig(t *testing.T) {
|
|||
WantErr: "Error loading CA File: open some/path: no such file or directory",
|
||||
},
|
||||
{
|
||||
Name: "existing-ca-file",
|
||||
Flags: []string{"-proxy-id", "test-proxy", "-ca-file", "../../../test/ca/root.cer"},
|
||||
Env: []string{"CONSUL_HTTP_SSL=1"},
|
||||
Name: "existing-ca-file",
|
||||
TLSServer: true,
|
||||
Flags: []string{"-proxy-id", "test-proxy", "-ca-file", "../../../test/ca/root.cer"},
|
||||
Env: []string{"CONSUL_HTTP_SSL=1"},
|
||||
WantArgs: BootstrapTplArgs{
|
||||
EnvoyVersion: defaultEnvoyVersion,
|
||||
ProxyCluster: "test-proxy",
|
||||
|
@ -499,9 +501,10 @@ func TestGenerateConfig(t *testing.T) {
|
|||
WantErr: "lstat some/path: no such file or directory",
|
||||
},
|
||||
{
|
||||
Name: "existing-ca-path",
|
||||
Flags: []string{"-proxy-id", "test-proxy", "-ca-path", "../../../test/ca_path/"},
|
||||
Env: []string{"CONSUL_HTTP_SSL=1"},
|
||||
Name: "existing-ca-path",
|
||||
TLSServer: true,
|
||||
Flags: []string{"-proxy-id", "test-proxy", "-ca-path", "../../../test/ca_path/"},
|
||||
Env: []string{"CONSUL_HTTP_SSL=1"},
|
||||
WantArgs: BootstrapTplArgs{
|
||||
EnvoyVersion: defaultEnvoyVersion,
|
||||
ProxyCluster: "test-proxy",
|
||||
|
@ -887,15 +890,21 @@ func TestGenerateConfig(t *testing.T) {
|
|||
|
||||
// Run a mock agent API that just always returns the proxy config in the
|
||||
// test.
|
||||
srv := httptest.NewServer(testMockAgent(tc))
|
||||
var srv *httptest.Server
|
||||
if tc.TLSServer {
|
||||
srv = httptest.NewTLSServer(testMockAgent(tc))
|
||||
} else {
|
||||
srv = httptest.NewServer(testMockAgent(tc))
|
||||
}
|
||||
defer srv.Close()
|
||||
client, err := api.NewClient(&api.Config{Address: srv.URL})
|
||||
require.NoError(err)
|
||||
|
||||
testDirPrefix := testDir + string(filepath.Separator)
|
||||
myEnv := copyAndReplaceAll(tc.Env, "@@TEMPDIR@@", testDirPrefix)
|
||||
defer testSetAndResetEnv(t, myEnv)()
|
||||
|
||||
client, err := api.NewClient(&api.Config{Address: srv.URL, TLSConfig: api.TLSConfig{InsecureSkipVerify: true}})
|
||||
require.NoError(err)
|
||||
|
||||
ui := cli.NewMockUi()
|
||||
c := New(ui)
|
||||
// explicitly set the client to one which can connect to the httptest.Server
|
||||
|
@ -1073,6 +1082,7 @@ func testMockAgentGatewayConfig(namespacesEnabled bool) http.HandlerFunc {
|
|||
|
||||
if namespacesEnabled {
|
||||
svc[string(kind)].Namespace = namespaceFromQuery(r)
|
||||
svc[string(kind)].Partition = partitionFromQuery(r)
|
||||
}
|
||||
|
||||
cfgJSON, err := json.Marshal(svc)
|
||||
|
@ -1094,6 +1104,15 @@ func namespaceFromQuery(r *http.Request) string {
|
|||
return "default"
|
||||
}
|
||||
|
||||
func partitionFromQuery(r *http.Request) string {
|
||||
// Use the partition in the request if there is one, otherwise
|
||||
// use-default.
|
||||
if queryAP := r.URL.Query().Get("partition"); queryAP != "" {
|
||||
return queryAP
|
||||
}
|
||||
return "default"
|
||||
}
|
||||
|
||||
func testMockAgentProxyConfig(cfg map[string]interface{}, namespacesEnabled bool) http.HandlerFunc {
|
||||
return func(w http.ResponseWriter, r *http.Request) {
|
||||
// Parse the proxy-id from the end of the URL (blindly assuming it's correct
|
||||
|
@ -1115,6 +1134,7 @@ func testMockAgentProxyConfig(cfg map[string]interface{}, namespacesEnabled bool
|
|||
|
||||
if namespacesEnabled {
|
||||
svc.Namespace = namespaceFromQuery(r)
|
||||
svc.Partition = partitionFromQuery(r)
|
||||
}
|
||||
|
||||
cfgJSON, err := json.Marshal(svc)
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
"id": "test-proxy",
|
||||
"metadata": {
|
||||
"namespace": "default",
|
||||
"partition": "default",
|
||||
"envoy_version": "1.18.4"
|
||||
}
|
||||
},
|
||||
|
@ -157,6 +158,10 @@
|
|||
"tag_name": "consul.source.namespace",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.partition",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.datacenter",
|
||||
"fixed_value": "dc1"
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
"id": "test-proxy",
|
||||
"metadata": {
|
||||
"namespace": "default",
|
||||
"partition": "default",
|
||||
"envoy_version": "1.18.4"
|
||||
}
|
||||
},
|
||||
|
@ -144,6 +145,10 @@
|
|||
"tag_name": "consul.source.namespace",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.partition",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.datacenter",
|
||||
"fixed_value": "dc1"
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
"id": "test-proxy",
|
||||
"metadata": {
|
||||
"namespace": "default",
|
||||
"partition": "default",
|
||||
"envoy_version": "1.18.4"
|
||||
}
|
||||
},
|
||||
|
@ -144,6 +145,10 @@
|
|||
"tag_name": "consul.source.namespace",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.partition",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.datacenter",
|
||||
"fixed_value": "dc1"
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
"id": "test-proxy",
|
||||
"metadata": {
|
||||
"namespace": "default",
|
||||
"partition": "default",
|
||||
"envoy_version": "1.18.4"
|
||||
}
|
||||
},
|
||||
|
@ -144,6 +145,10 @@
|
|||
"tag_name": "consul.source.namespace",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.partition",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.datacenter",
|
||||
"fixed_value": "dc1"
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
"id": "test-proxy",
|
||||
"metadata": {
|
||||
"namespace": "default",
|
||||
"partition": "default",
|
||||
"envoy_version": "1.18.4"
|
||||
}
|
||||
},
|
||||
|
@ -157,6 +158,10 @@
|
|||
"tag_name": "consul.source.namespace",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.partition",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.datacenter",
|
||||
"fixed_value": "dc1"
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
"id": "test-proxy",
|
||||
"metadata": {
|
||||
"namespace": "default",
|
||||
"partition": "default",
|
||||
"envoy_version": "1.18.4"
|
||||
}
|
||||
},
|
||||
|
@ -157,6 +158,10 @@
|
|||
"tag_name": "consul.source.namespace",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.partition",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.datacenter",
|
||||
"fixed_value": "dc1"
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
"id": "test-proxy",
|
||||
"metadata": {
|
||||
"namespace": "default",
|
||||
"partition": "default",
|
||||
"envoy_version": "1.18.4"
|
||||
}
|
||||
},
|
||||
|
@ -166,6 +167,10 @@
|
|||
"tag_name": "consul.source.namespace",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.partition",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.datacenter",
|
||||
"fixed_value": "dc1"
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
"id": "test-proxy",
|
||||
"metadata": {
|
||||
"namespace": "default",
|
||||
"partition": "default",
|
||||
"envoy_version": "1.18.4"
|
||||
}
|
||||
},
|
||||
|
@ -157,6 +158,10 @@
|
|||
"tag_name": "consul.source.namespace",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.partition",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.datacenter",
|
||||
"fixed_value": "dc1"
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
"id": "test-proxy",
|
||||
"metadata": {
|
||||
"namespace": "default",
|
||||
"partition": "default",
|
||||
"envoy_version": "1.18.4"
|
||||
}
|
||||
},
|
||||
|
@ -144,6 +145,10 @@
|
|||
"tag_name": "consul.source.namespace",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.partition",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.datacenter",
|
||||
"fixed_value": "dc1"
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
"id": "test-proxy",
|
||||
"metadata": {
|
||||
"namespace": "default",
|
||||
"partition": "default",
|
||||
"envoy_version": "1.18.4"
|
||||
}
|
||||
},
|
||||
|
@ -144,6 +145,10 @@
|
|||
"tag_name": "consul.source.namespace",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.partition",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.datacenter",
|
||||
"fixed_value": "dc1"
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
"id": "test-proxy",
|
||||
"metadata": {
|
||||
"namespace": "default",
|
||||
"partition": "default",
|
||||
"envoy_version": "1.18.4"
|
||||
}
|
||||
},
|
||||
|
@ -143,6 +144,10 @@
|
|||
"tag_name": "consul.source.namespace",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.partition",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.datacenter",
|
||||
"fixed_value": "dc1"
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
"id": "ingress-gateway",
|
||||
"metadata": {
|
||||
"namespace": "default",
|
||||
"partition": "default",
|
||||
"envoy_version": "1.18.4"
|
||||
}
|
||||
},
|
||||
|
@ -230,6 +231,10 @@
|
|||
"tag_name": "consul.source.namespace",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.partition",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.datacenter",
|
||||
"fixed_value": "dc1"
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
"id": "ingress-gateway",
|
||||
"metadata": {
|
||||
"namespace": "default",
|
||||
"partition": "default",
|
||||
"envoy_version": "1.18.4"
|
||||
}
|
||||
},
|
||||
|
@ -230,6 +231,10 @@
|
|||
"tag_name": "consul.source.namespace",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.partition",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.datacenter",
|
||||
"fixed_value": "dc1"
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
"id": "my-gateway-123",
|
||||
"metadata": {
|
||||
"namespace": "default",
|
||||
"partition": "default",
|
||||
"envoy_version": "1.18.4"
|
||||
}
|
||||
},
|
||||
|
@ -230,6 +231,10 @@
|
|||
"tag_name": "consul.source.namespace",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.partition",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.datacenter",
|
||||
"fixed_value": "dc1"
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
"id": "my-gateway",
|
||||
"metadata": {
|
||||
"namespace": "default",
|
||||
"partition": "default",
|
||||
"envoy_version": "1.18.4"
|
||||
}
|
||||
},
|
||||
|
@ -230,6 +231,10 @@
|
|||
"tag_name": "consul.source.namespace",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.partition",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.datacenter",
|
||||
"fixed_value": "dc1"
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
"id": "ingress-gateway-1",
|
||||
"metadata": {
|
||||
"namespace": "default",
|
||||
"partition": "default",
|
||||
"envoy_version": "1.18.4"
|
||||
}
|
||||
},
|
||||
|
@ -230,6 +231,10 @@
|
|||
"tag_name": "consul.source.namespace",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.partition",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.datacenter",
|
||||
"fixed_value": "dc1"
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
"id": "test-proxy",
|
||||
"metadata": {
|
||||
"namespace": "default",
|
||||
"partition": "default",
|
||||
"envoy_version": "1.18.4"
|
||||
}
|
||||
},
|
||||
|
@ -230,6 +231,10 @@
|
|||
"tag_name": "consul.source.namespace",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.partition",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.datacenter",
|
||||
"fixed_value": "dc1"
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
"id": "test-proxy",
|
||||
"metadata": {
|
||||
"namespace": "default",
|
||||
"partition": "default",
|
||||
"envoy_version": "1.18.4"
|
||||
}
|
||||
},
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
"id": "test-proxy",
|
||||
"metadata": {
|
||||
"namespace": "default",
|
||||
"partition": "default",
|
||||
"envoy_version": "1.18.4"
|
||||
}
|
||||
},
|
||||
|
@ -144,6 +145,10 @@
|
|||
"tag_name": "consul.source.namespace",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.partition",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.datacenter",
|
||||
"fixed_value": "dc1"
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
"id": "test-proxy",
|
||||
"metadata": {
|
||||
"namespace": "default",
|
||||
"partition": "default",
|
||||
"envoy_version": "1.18.4"
|
||||
}
|
||||
},
|
||||
|
@ -144,6 +145,10 @@
|
|||
"tag_name": "consul.source.namespace",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.partition",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.datacenter",
|
||||
"fixed_value": "dc1"
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
"id": "test-proxy",
|
||||
"metadata": {
|
||||
"namespace": "default",
|
||||
"partition": "default",
|
||||
"envoy_version": "1.18.4"
|
||||
}
|
||||
},
|
||||
|
@ -144,6 +145,10 @@
|
|||
"tag_name": "consul.source.namespace",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.partition",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.datacenter",
|
||||
"fixed_value": "dc1"
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
"id": "test-proxy",
|
||||
"metadata": {
|
||||
"namespace": "default",
|
||||
"partition": "default",
|
||||
"envoy_version": "1.18.4"
|
||||
}
|
||||
},
|
||||
|
@ -144,6 +145,10 @@
|
|||
"tag_name": "consul.source.namespace",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.partition",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.datacenter",
|
||||
"fixed_value": "dc1"
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
"id": "test-proxy",
|
||||
"metadata": {
|
||||
"namespace": "default",
|
||||
"partition": "default",
|
||||
"envoy_version": "1.18.4"
|
||||
}
|
||||
},
|
||||
|
@ -144,6 +145,10 @@
|
|||
"tag_name": "consul.source.namespace",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.partition",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.datacenter",
|
||||
"fixed_value": "dc1"
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
"id": "test-proxy",
|
||||
"metadata": {
|
||||
"namespace": "default",
|
||||
"partition": "default",
|
||||
"envoy_version": "1.18.4"
|
||||
}
|
||||
},
|
||||
|
@ -168,6 +169,10 @@
|
|||
"tag_name": "consul.source.namespace",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.partition",
|
||||
"fixed_value": "default"
|
||||
},
|
||||
{
|
||||
"tag_name": "consul.source.datacenter",
|
||||
"fixed_value": "dc1"
|
||||
|
|
Loading…
Reference in New Issue