{ "Chain": { "ServiceName": "virtual-admin-1", "Partition": "default", "Namespace": "default", "Datacenter": "dc-gcp", "Protocol": "http", "StartNode": "router:virtual-admin-1", "Nodes": { "resolver:virtual-admin-1.default.default.dc-gcp": { "Type": "resolver", "Name": "virtual-admin-1.default.default.dc-gcp", "Resolver": { "ConnectTimeout": "5s", "Default": true, "Target": "virtual-admin-1.default.default.dc-gcp" } }, "resolver:web.default.default.dc-aws": { "Type": "resolver", "Name": "web.default.default.dc-aws", "Resolver": { "ConnectTimeout": "15s", "Target": "web.default.default.dc-aws", "Failover": { "Targets": [ "web.default.default.dc-gcp" ] } } }, "resolver:web.default.default.dc-gcp": { "Type": "resolver", "Name": "web.default.default.dc-gcp", "Resolver": { "ConnectTimeout": "15s", "Target": "web.default.default.dc-gcp", "Failover": { "Targets": [ "web.default.default.dc-aws" ] } } }, "router:virtual-admin-1": { "Type": "router", "Name": "virtual-admin-1", "Routes": [ { "Definition": { "Match": { "HTTP": { "PathPrefix": "/login" } }, "Destination": { "Service": "login", "PrefixRewrite": "/" } }, "NextNode": "splitter:login.default.default" }, { "Definition": { "Destination": { "Service": "global-admin" } }, "NextNode": "splitter:global-admin.default.default" }, { "Definition": { "Match": { "HTTP": { "PathPrefix": "/" } }, "Destination": { "Service": "virtual-admin-1" } }, "NextNode": "resolver:virtual-admin-1.default.default.dc-gcp" } ] }, "splitter:global-admin.default.default": { "Type": "splitter", "Name": "global-admin.default.default", "Splits": [ { "Weight": 50, "NextNode": "resolver:web.default.default.dc-aws" }, { "Weight": 50, "NextNode": "resolver:web.default.default.dc-gcp" } ] }, "splitter:login.default.default": { "Type": "splitter", "Name": "login.default.default", "Splits": [ { "Weight": 50, "NextNode": "resolver:web.default.default.dc-gcp" }, { "Weight": 50, "NextNode": "resolver:web.default.default.dc-aws" } ] } }, "Targets": { "virtual-admin-1.default.default.dc-gcp": { "ID": "virtual-admin-1.default.default.dc-gcp", "Service": "virtual-admin-1", "Partition": "default", "Namespace": "default", "Datacenter": "dc-gcp", "MeshGateway": {}, "Subset": {}, "SNI": "virtual-admin-1.default.default.dc-gcp.internal.ede9daf4-b641-3954-5a52-15f4fd666f6e.consul", "Name": "virtual-admin-1.default.default.dc-gcp.internal.ede9daf4-b641-3954-5a52-15f4fd666f6e.consul" }, "web.default.default.dc-aws": { "ID": "web.default.default.dc-aws", "Service": "web", "Partition": "default", "Namespace": "default", "Datacenter": "dc-aws", "MeshGateway": { "Mode": "local" }, "Subset": {}, "SNI": "web.default.default.dc-aws.internal.ede9daf4-b641-3954-5a52-15f4fd666f6e.consul", "Name": "web.default.default.dc-aws.internal.ede9daf4-b641-3954-5a52-15f4fd666f6e.consul" }, "web.default.default.dc-gcp": { "ID": "web.default.default.dc-gcp", "Service": "web", "Partition": "default", "Namespace": "default", "Datacenter": "dc-gcp", "MeshGateway": {}, "Subset": {}, "SNI": "web.default.default.dc-gcp.internal.ede9daf4-b641-3954-5a52-15f4fd666f6e.consul", "Name": "web.default.default.dc-gcp.internal.ede9daf4-b641-3954-5a52-15f4fd666f6e.consul" } } } }