Skip to content

Commit ad35743

Browse files
authored
remove include-xdstp-name-in-lds-experimental flag (#66)
1 parent 8510a04 commit ad35743

File tree

2 files changed

+56
-109
lines changed

2 files changed

+56
-109
lines changed

main.go

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,14 @@ var (
5151
gceVM = flag.String("gce-vm-experimental", "", "GCE VM name to use, instead of reading it from the metadata server. This flag is EXPERIMENTAL and may be changed or removed in a later release.")
5252
configMesh = flag.String("config-mesh", "", "Dictates which Mesh resource to use.")
5353
generateMeshId = flag.Bool("generate-mesh-id", false, "When enabled, the CSM MeshID is generated. If config-mesh flag is specified, this flag would be ignored. Location and Cluster Name would be retrieved from the metadata server unless specified via gke-location and gke-cluster-name flags respectively.")
54-
includeXDSTPNameInLDS = flag.Bool("include-xdstp-name-in-lds-experimental", true, "whether or not to use xdstp style name for listener resource name template. This flag is EXPERIMENTAL and may be changed or removed in a later release.")
5554
isTrustedXdsServer = flag.Bool("is-trusted-xds-server-experimental", false, "Whether to include the server feature trusted_xds_server for TD. This flag is EXPERIMENTAL and may be changed or removed in a later release.")
5655
)
5756

57+
const (
58+
tdAuthority = "traffic-director-global.xds.googleapis.com"
59+
c2pAuthority = "traffic-director-c2p.xds.googleapis.com"
60+
)
61+
5862
func main() {
5963
nodeMetadata := make(map[string]string)
6064
flag.Var(newStringMapVal(&nodeMetadata), "node-metadata",
@@ -200,7 +204,6 @@ func main() {
200204
deploymentInfo: deploymentInfo,
201205
configMesh: meshId,
202206
ipv6Capable: isIPv6Capable(),
203-
includeXDSTPNameInLDS: *includeXDSTPNameInLDS,
204207
gitCommitHash: gitCommitHash,
205208
isTrustedXdsServer: *isTrustedXdsServer,
206209
}
@@ -254,7 +257,6 @@ type configInput struct {
254257
deploymentInfo map[string]string
255258
configMesh string
256259
ipv6Capable bool
257-
includeXDSTPNameInLDS bool
258260
gitCommitHash string
259261
isTrustedXdsServer bool
260262
}
@@ -277,7 +279,7 @@ func generate(in configInput) ([]byte, error) {
277279
// Set xds_v3.
278280
xdsServer.ServerFeatures = append(xdsServer.ServerFeatures, "xds_v3")
279281
if in.isTrustedXdsServer {
280-
xdsServer.ServerFeatures = append(xdsServer.ServerFeatures, "trusted_xds_server")
282+
xdsServer.ServerFeatures = append(xdsServer.ServerFeatures, "trusted_xds_server")
281283
}
282284

283285
if in.ignoreResourceDeletion {
@@ -303,7 +305,24 @@ func generate(in configInput) ([]byte, error) {
303305
"TRAFFICDIRECTOR_GRPC_BOOTSTRAP_GENERATOR_SHA": in.gitCommitHash,
304306
},
305307
},
306-
Authorities: make(map[string]Authority),
308+
Authorities: map[string]Authority{
309+
tdAuthority: {
310+
// Listener Resource Name format for normal TD usecases looks like:
311+
// xdstp://<authority>/envoy.config.listener.v3.Listener/<project_number>/<(network)|(mesh:mesh_name)>/id
312+
ClientListenerResourceNameTemplate: fmt.Sprintf("xdstp://%s/envoy.config.listener.v3.Listener/%d/%s/%%s", tdAuthority, in.gcpProjectNumber, networkIdentifier),
313+
},
314+
c2pAuthority: {
315+
// In the case of DirectPath, it is safe to assume that the operator is notified of missing resources.
316+
// In other words, "ignore_resource_deletion" server_features is always set.
317+
XdsServers: []server{{
318+
ServerUri: "dns:///directpath-pa.googleapis.com",
319+
ChannelCreds: []creds{{Type: "google_default"}},
320+
ServerFeatures: []string{"xds_v3", "ignore_resource_deletion"},
321+
}},
322+
ClientListenerResourceNameTemplate: fmt.Sprintf("xdstp://%s/envoy.config.listener.v3.Listener/%%s", c2pAuthority),
323+
},
324+
},
325+
ClientDefaultListenerResourceNameTemplate: fmt.Sprintf("xdstp://%s/envoy.config.listener.v3.Listener/%d/%s/%%s", tdAuthority, in.gcpProjectNumber, networkIdentifier),
307326
}
308327

309328
for k, v := range in.metadataLabels {
@@ -330,27 +349,6 @@ func generate(in configInput) ([]byte, error) {
330349
c.Node.Metadata["TRAFFIC_DIRECTOR_CLIENT_ENVIRONMENT"] = in.deploymentInfo
331350
}
332351

333-
if in.includeXDSTPNameInLDS {
334-
tdAuthority := "traffic-director-global.xds.googleapis.com"
335-
c.Authorities[tdAuthority] = Authority{
336-
// Listener Resource Name format for normal TD usecases looks like:
337-
// xdstp://<authority>/envoy.config.listener.v3.Listener/<project_number>/<(network)|(mesh:mesh_name)>/id
338-
ClientListenerResourceNameTemplate: fmt.Sprintf("xdstp://%s/envoy.config.listener.v3.Listener/%d/%s/%%s", tdAuthority, in.gcpProjectNumber, networkIdentifier),
339-
}
340-
c.ClientDefaultListenerResourceNameTemplate = fmt.Sprintf("xdstp://%s/envoy.config.listener.v3.Listener/%d/%s/%%s", tdAuthority, in.gcpProjectNumber, networkIdentifier)
341-
}
342-
343-
c2pAuthority := "traffic-director-c2p.xds.googleapis.com"
344-
c.Authorities[c2pAuthority] = Authority{
345-
// In the case of DirectPath, it is safe to assume that the operator is notified of missing resources.
346-
// In other words, "ignore_resource_deletion" server_features is always set.
347-
XdsServers: []server{{
348-
ServerUri: "dns:///directpath-pa.googleapis.com",
349-
ChannelCreds: []creds{{Type: "google_default"}},
350-
ServerFeatures: []string{"xds_v3", "ignore_resource_deletion"},
351-
}},
352-
ClientListenerResourceNameTemplate: fmt.Sprintf("xdstp://%s/envoy.config.listener.v3.Listener/%%s", c2pAuthority),
353-
}
354352
if in.ipv6Capable {
355353
c.Node.Metadata["TRAFFICDIRECTOR_DIRECTPATH_C2P_IPV6_CAPABLE"] = true
356354
}

main_test.go

Lines changed: 32 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,9 @@ func TestGenerate(t *testing.T) {
145145
}
146146
],
147147
"client_listener_resource_name_template": "xdstp://traffic-director-c2p.xds.googleapis.com/envoy.config.listener.v3.Listener/%s"
148+
},
149+
"traffic-director-global.xds.googleapis.com": {
150+
"client_listener_resource_name_template": "xdstp://traffic-director-global.xds.googleapis.com/envoy.config.listener.v3.Listener/123456789012345/thedefault/%s"
148151
}
149152
},
150153
"node": {
@@ -171,19 +174,20 @@ func TestGenerate(t *testing.T) {
171174
}
172175
}
173176
},
174-
"server_listener_resource_name_template": "grpc/server?xds.resource.listening_address=%s"
177+
"server_listener_resource_name_template": "grpc/server?xds.resource.listening_address=%s",
178+
"client_default_listener_resource_name_template": "xdstp://traffic-director-global.xds.googleapis.com/envoy.config.listener.v3.Listener/123456789012345/thedefault/%s"
175179
}`,
176180
},
177181
{
178182
desc: "Server feature for Trusted xds server",
179183
input: configInput{
180-
xdsServerUri: "example.com:443",
181-
gcpProjectNumber: 123456789012345,
182-
vpcNetworkName: "thedefault",
183-
ip: "10.9.8.7",
184-
zone: "uscentral-5",
185-
metadataLabels: map[string]string{"k1": "v1", "k2": "v2"},
186-
gitCommitHash: "7202b7c611ebd6d382b7b0240f50e9824200bffd",
184+
xdsServerUri: "example.com:443",
185+
gcpProjectNumber: 123456789012345,
186+
vpcNetworkName: "thedefault",
187+
ip: "10.9.8.7",
188+
zone: "uscentral-5",
189+
metadataLabels: map[string]string{"k1": "v1", "k2": "v2"},
190+
gitCommitHash: "7202b7c611ebd6d382b7b0240f50e9824200bffd",
187191
isTrustedXdsServer: true,
188192
},
189193
wantOutput: `{
@@ -218,6 +222,9 @@ func TestGenerate(t *testing.T) {
218222
}
219223
],
220224
"client_listener_resource_name_template": "xdstp://traffic-director-c2p.xds.googleapis.com/envoy.config.listener.v3.Listener/%s"
225+
},
226+
"traffic-director-global.xds.googleapis.com": {
227+
"client_listener_resource_name_template": "xdstp://traffic-director-global.xds.googleapis.com/envoy.config.listener.v3.Listener/123456789012345/thedefault/%s"
221228
}
222229
},
223230
"node": {
@@ -244,7 +251,8 @@ func TestGenerate(t *testing.T) {
244251
}
245252
}
246253
},
247-
"server_listener_resource_name_template": "grpc/server?xds.resource.listening_address=%s"
254+
"server_listener_resource_name_template": "grpc/server?xds.resource.listening_address=%s",
255+
"client_default_listener_resource_name_template": "xdstp://traffic-director-global.xds.googleapis.com/envoy.config.listener.v3.Listener/123456789012345/thedefault/%s"
248256
}`,
249257
},
250258
{
@@ -289,6 +297,9 @@ func TestGenerate(t *testing.T) {
289297
}
290298
],
291299
"client_listener_resource_name_template": "xdstp://traffic-director-c2p.xds.googleapis.com/envoy.config.listener.v3.Listener/%s"
300+
},
301+
"traffic-director-global.xds.googleapis.com": {
302+
"client_listener_resource_name_template": "xdstp://traffic-director-global.xds.googleapis.com/envoy.config.listener.v3.Listener/123456789012345/thedefault/%s"
292303
}
293304
},
294305
"node": {
@@ -313,7 +324,8 @@ func TestGenerate(t *testing.T) {
313324
}
314325
}
315326
},
316-
"server_listener_resource_name_template": "grpc/server?xds.resource.listening_address=%s"
327+
"server_listener_resource_name_template": "grpc/server?xds.resource.listening_address=%s",
328+
"client_default_listener_resource_name_template": "xdstp://traffic-director-global.xds.googleapis.com/envoy.config.listener.v3.Listener/123456789012345/thedefault/%s"
317329
}`,
318330
},
319331
{
@@ -365,6 +377,9 @@ func TestGenerate(t *testing.T) {
365377
}
366378
],
367379
"client_listener_resource_name_template": "xdstp://traffic-director-c2p.xds.googleapis.com/envoy.config.listener.v3.Listener/%s"
380+
},
381+
"traffic-director-global.xds.googleapis.com": {
382+
"client_listener_resource_name_template": "xdstp://traffic-director-global.xds.googleapis.com/envoy.config.listener.v3.Listener/123456789012345/thedefault/%s"
368383
}
369384
},
370385
"node": {
@@ -397,7 +412,8 @@ func TestGenerate(t *testing.T) {
397412
}
398413
}
399414
},
400-
"server_listener_resource_name_template": "grpc/server?xds.resource.listening_address=%s"
415+
"server_listener_resource_name_template": "grpc/server?xds.resource.listening_address=%s",
416+
"client_default_listener_resource_name_template": "xdstp://traffic-director-global.xds.googleapis.com/envoy.config.listener.v3.Listener/123456789012345/thedefault/%s"
401417
}`,
402418
},
403419
{
@@ -450,6 +466,9 @@ func TestGenerate(t *testing.T) {
450466
}
451467
],
452468
"client_listener_resource_name_template": "xdstp://traffic-director-c2p.xds.googleapis.com/envoy.config.listener.v3.Listener/%s"
469+
},
470+
"traffic-director-global.xds.googleapis.com": {
471+
"client_listener_resource_name_template": "xdstp://traffic-director-global.xds.googleapis.com/envoy.config.listener.v3.Listener/123456789012345/mesh:testmesh/%s"
453472
}
454473
},
455474
"node": {
@@ -482,7 +501,8 @@ func TestGenerate(t *testing.T) {
482501
}
483502
}
484503
},
485-
"server_listener_resource_name_template": "grpc/server?xds.resource.listening_address=%s"
504+
"server_listener_resource_name_template": "grpc/server?xds.resource.listening_address=%s",
505+
"client_default_listener_resource_name_template": "xdstp://traffic-director-global.xds.googleapis.com/envoy.config.listener.v3.Listener/123456789012345/mesh:testmesh/%s"
486506
}`,
487507
},
488508
{
@@ -511,76 +531,6 @@ func TestGenerate(t *testing.T) {
511531
]
512532
}
513533
],
514-
"authorities": {
515-
"traffic-director-c2p.xds.googleapis.com": {
516-
"xds_servers": [
517-
{
518-
"server_uri": "dns:///directpath-pa.googleapis.com",
519-
"channel_creds": [
520-
{
521-
"type": "google_default"
522-
}
523-
],
524-
"server_features": [
525-
"xds_v3",
526-
"ignore_resource_deletion"
527-
]
528-
}
529-
],
530-
"client_listener_resource_name_template": "xdstp://traffic-director-c2p.xds.googleapis.com/envoy.config.listener.v3.Listener/%s"
531-
}
532-
},
533-
"node": {
534-
"id": "projects/123456789012345/networks/thedefault/nodes/52fdfc07-2182-454f-963f-5f0f9a621d72",
535-
"cluster": "cluster",
536-
"metadata": {
537-
"INSTANCE_IP": "10.9.8.7",
538-
"TRAFFICDIRECTOR_GRPC_BOOTSTRAP_GENERATOR_SHA": "7202b7c611ebd6d382b7b0240f50e9824200bffd"
539-
},
540-
"locality": {
541-
"zone": "uscentral-5"
542-
}
543-
},
544-
"certificate_providers": {
545-
"google_cloud_private_spiffe": {
546-
"plugin_name": "file_watcher",
547-
"config": {
548-
"certificate_file": "certificates.pem",
549-
"private_key_file": "private_key.pem",
550-
"ca_certificate_file": "ca_certificates.pem",
551-
"refresh_interval": "600s"
552-
}
553-
}
554-
},
555-
"server_listener_resource_name_template": "grpc/server?xds.resource.listening_address=%s"
556-
}`,
557-
},
558-
{
559-
desc: "happy case with federation support with TDOM using xdstp style name",
560-
input: configInput{
561-
xdsServerUri: "trafficdirector.googleapis.com:443",
562-
gcpProjectNumber: 123456789012345,
563-
vpcNetworkName: "thedefault",
564-
ip: "10.9.8.7",
565-
zone: "uscentral-5",
566-
ipv6Capable: true,
567-
includeXDSTPNameInLDS: true,
568-
gitCommitHash: "7202b7c611ebd6d382b7b0240f50e9824200bffd",
569-
},
570-
wantOutput: `{
571-
"xds_servers": [
572-
{
573-
"server_uri": "trafficdirector.googleapis.com:443",
574-
"channel_creds": [
575-
{
576-
"type": "google_default"
577-
}
578-
],
579-
"server_features": [
580-
"xds_v3"
581-
]
582-
}
583-
],
584534
"authorities": {
585535
"traffic-director-c2p.xds.googleapis.com": {
586536
"xds_servers": [
@@ -608,7 +558,6 @@ func TestGenerate(t *testing.T) {
608558
"cluster": "cluster",
609559
"metadata": {
610560
"INSTANCE_IP": "10.9.8.7",
611-
"TRAFFICDIRECTOR_DIRECTPATH_C2P_IPV6_CAPABLE": true,
612561
"TRAFFICDIRECTOR_GRPC_BOOTSTRAP_GENERATOR_SHA": "7202b7c611ebd6d382b7b0240f50e9824200bffd"
613562
},
614563
"locality": {

0 commit comments

Comments
 (0)