1{ 2 "node": { 3 "id": "{{ .EnvoyConfigOpt.NodeID }}", 4 "cluster": "mycluster", 5 "locality": { 6 "zone": "testzone" 7 }, 8 "metadata": { 9 {{ .EnvoyConfigOpt.meta_json_str }} 10 } 11 }, 12 "stats_config": { 13 "use_all_default_tags": false 14 }, 15 "admin": { 16 "access_log_path": "{{.AccessLogPath}}", 17 "address": { 18 "socket_address": { 19 "address": "0.0.0.0", 20 "port_value": {{.Ports.AdminPort}} 21 } 22 } 23 }, 24 "dynamic_resources": { 25 "lds_config": { 26 "ads": {} 27 }, 28 "cds_config": { 29 "ads": {} 30 }, 31 "ads_config": { 32 "api_type": "GRPC", 33 "grpc_services": { 34 "envoy_grpc": { 35 "cluster_name": "xds-grpc" 36 } 37 }, 38 "refresh_delay": { 39 "seconds": 30, 40 "nanos": 0 41 } 42 } 43 }, 44 "static_resources": { 45 "listeners": [ 46 { 47 "name": "http_0.0.0.0_{{.Ports.ServerProxyPort}}", 48 "address": { 49 "socket_address": { 50 "address": "0.0.0.0", 51 "port_value": {{.Ports.ServerProxyPort}} 52 } 53 }, 54 "filter_chains": [ 55 { 56 "filters": [ 57 { 58 "name": "envoy.http_connection_manager", 59 "config": { 60 "stat_prefix": "http", 61 "route_config": { 62 "name": "default", 63 "virtual_hosts": [ 64 { 65 "name": "backend", 66 "domains": [ 67 "*" 68 ], 69 "routes": [ 70 { 71 "match": { 72 "prefix": "/" 73 }, 74 "route": { 75 "cluster": "service1" 76 } 77 } 78 ] 79 } 80 81 ] 82 }, 83 "http_filters": [ 84 { 85 "name": "envoy.cors" 86 }, 87 { 88 "name": "envoy.router" 89 } 90 ] 91 } 92 } 93 ] 94 } 95 ] 96 }, 97 { 98 "name": "http_0.0.0.0_{{.Ports.ClientProxyPort}}", 99 "address": { 100 "socket_address": { 101 "address": "0.0.0.0", 102 "port_value": {{.Ports.ClientProxyPort}} 103 } 104 }, 105 "filter_chains": [ 106 { 107 "filters": [ 108 { 109 "name": "envoy.http_connection_manager", 110 "config": { 111 "stat_prefix": "http", 112 "route_config": { 113 "name": "default", 114 "virtual_hosts": [ 115 { 116 "name": "backend", 117 "domains": [ 118 "*" 119 ], 120 "routes": [ 121 { 122 "match": { 123 "prefix": "/" 124 }, 125 "route": { 126 "cluster": "service2" 127 } 128 } 129 ] 130 } 131 132 ] 133 }, 134 "http_filters": [ 135 { 136 "name": "envoy.cors" 137 }, 138 { 139 "name": "envoy.router" 140 } 141 ] 142 143 144 } 145 } 146 ] 147 } 148 ] 149 }, 150 { 151 "name": "mixertcpproxy", 152 "address": { 153 "socket_address": { 154 "address": "0.0.0.0", 155 "port_value": {{.Ports.TCPProxyPort}} 156 } 157 }, 158 "filter_chains": [ 159 { 160 "filters": [ 161 { 162 "name": "envoy.tcp_proxy", 163 "typed_config": { 164 "@type": "type.googleapis.com/envoy.config.filter.network.tcp_proxy.v2.TcpProxy", 165 "stat_prefix": "mixertcpproxy", 166 "cluster": "service1" 167 } 168 } 169 ] 170 } 171 ] 172 }, 173 { 174 "name": "http_proxy_80", 175 "address": { 176 "socket_address": { 177 "address": "0.0.0.0", 178 "port_value": 17002 179 } 180 }, 181 182 "filter_chains": [ 183 { 184 "filters": [ 185 { 186 "name": "envoy.http_connection_manager", 187 "config": { 188 "codec_type": "AUTO", 189 "stat_prefix": "http_proxy", 190 "http_filters": [ 191 {"name": "envoy.router" 192 } 193 ], 194 "rds": { 195 "route_config_name": "80", 196 "config_source": {"ads": {}} 197 }, 198 "http_protocol_options": { 199 "allow_absolute_url": true 200 }, 201 "access_log": [ 202 { 203 "name": "envoy.file_access_log", 204 "config": { 205 "path": "{{.AccessLogPath}}" 206 } 207 } 208 ] 209 210 } 211 } 212 ] 213 } 214 ] 215 }, 216 { 217 "name": "http_proxy_all", 218 "address": { 219 "socket_address": { 220 "address": "0.0.0.0", 221 "port_value": 17003 222 } 223 }, 224 225 "filter_chains": [ 226 { 227 "filters": [ 228 { 229 "name": "envoy.http_connection_manager", 230 "config": { 231 "codec_type": "AUTO", 232 "stat_prefix": "http_proxy", 233 "http_filters": [ 234 {"name": "envoy.router" 235 } 236 ], 237 "rds": { 238 "route_config_name": "http_proxy", 239 "config_source": {"ads": {}} 240 }, 241 "http_protocol_options": { 242 "allow_absolute_url": true 243 }, 244 "access_log": [ 245 { 246 "name": "envoy.file_access_log", 247 "config": { 248 "path": "{{.AccessLogPath}}" 249 } 250 } 251 ] 252 253 } 254 } 255 ] 256 } 257 ] 258 }, 259 { 260 "name": "grpc15011", 261 "address": { 262 "socket_address": { 263 "address": "0.0.0.0", 264 "port_value": 17011 265 } 266 }, 267 "filter_chains": [ 268 { 269 "tls_context": { 270 "common_tls_context": { 271 "tls_certificates": [ 272 { 273 "certificate_chain": { 274 "inline_string": "-----BEGIN CERTIFICATE-----\nMIIDTzCCAjegAwIBAgIQZX1drhMeXBTU+dhaKckP5TANBgkqhkiG9w0BAQsFADBZ\nMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTESMBAGA1UEBxMJU3Vu\nbnl2YWxlMQ4wDAYDVQQKEwVJc3RpbzERMA8GA1UEAxMISXN0aW8gQ0EwHhcNMTgw\nMzEwMDUwMDE2WhcNMTkwMzEwMDUwMDE2WjATMREwDwYDVQQKEwhKdWp1IG9yZzCC\nASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMIuHhv/cBdge+gH0VXJDgCF\n7NE8byK/0DlrWn5leewWBFDF7PsVOcEzXUd7qsGKcJ8qrK4o2Qy+myL8TEFjL/8c\nfCimVCcjxNa1nc0A+oA9fQBS8AHhKS1aCbQJIhpkoYKqeLlP+qXDhGU8R/EsYPKM\n/obist4bn6MTIPsVDO4eb1bGLdCpSswFppFvT0Yn6In0CH/srCqpJBd2Vp7I5KhD\n65MSHfE27zcb3fiGNIgzX74izZeBx9JRuGvTY3j7VyjA4ncfneG1m7DwriNtfFWq\n48HWolXcQVO2O0s2TzKkDtxZ3pNUvmidMK5ar/Q/7KHl7bEQMhVjpYiZoWTAQcsC\nAwEAAaNZMFcwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMCMAwG\nA1UdEwEB/wQCMAAwIgYDVR0RBBswGYYXc3BpZmZlOi8vY29zdGluLmZvby5jb20w\nDQYJKoZIhvcNAQELBQADggEBAH1mjBRJBZrYktL+75ezbup5N9l32btscJ95iHfi\nsiA84ehrcmcc8kIbX6jCvsu73Ye8iGpfRZobDxo+ZqXXABhyuKO1SwvM2seovW3E\nE6UDk01IAXiZENR2jj2a53rDPWH6OzxCAfISGHaz4dBqdEMzsiEPsf12wewNxGpR\nY5uS2dnDkUQw0bZlAN2mtAGaFc/vaXejZlBFBreTF9+oT/zi0FWqPXf6ST0vuBVC\nMkMQA/m0Haq2Zhfo0Zr2pwtRPhMYHnhrrhRdwFjyb/9kygsgMmFHgD9f+bk6XMMq\nWk0TvcghAZWBVHOSFR6rTKCSFoU7Oop9Pac3BNtYTMSwJ8o=\n-----END CERTIFICATE-----\n" 275 }, 276 "private_key": { 277 "inline_string": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAwi4eG/9wF2B76AfRVckOAIXs0TxvIr/QOWtafmV57BYEUMXs\n+xU5wTNdR3uqwYpwnyqsrijZDL6bIvxMQWMv/xx8KKZUJyPE1rWdzQD6gD19AFLw\nAeEpLVoJtAkiGmShgqp4uU/6pcOEZTxH8Sxg8oz+huKy3hufoxMg+xUM7h5vVsYt\n0KlKzAWmkW9PRifoifQIf+ysKqkkF3ZWnsjkqEPrkxId8TbvNxvd+IY0iDNfviLN\nl4HH0lG4a9NjePtXKMDidx+d4bWbsPCuI218VarjwdaiVdxBU7Y7SzZPMqQO3Fne\nk1S+aJ0wrlqv9D/soeXtsRAyFWOliJmhZMBBywIDAQABAoIBAF5znEW2HEnirqKQ\nmuyFXYA3pJeqM8zNTHWBmIT+yy1hEDxR6hG/o1Ysq+THbKmzs1BYq6ITUHB4jnGY\nE2eC3afTrTkAntJi/a4KrXU4UqDqR9FOhlwDr8nVj/64qpP3+u/aB9rr4lmbHt03\nUy8mjQmuN2hZAPQ0r5PdDB/Vf3KbFXNBIUccQUGOpfCFwPpBLF4blDRSloGGcHsA\nwe8cRYN/cBmjYjvYjoS25qD1lP4az9AYB5UXznii1QdaR93PFlli0ZWZC+dGeBnn\n9uSufeO8i4zDumHXKo1FMXx7diJQBGsDDM8ZG1DIPNz9DbVvK9kVQsL21sbsd/FS\ntl3JyCECgYEAy4Y2k92kpUn5XlNFzcuL0ezJIMbcPDFmEfhs8qmFf9RM34yPFu5O\nQ4BnZjWWFoOfKRbGXaEuWm8ch5sSttTMbI+wPQ2mzf9WhGp9La4DP0TdedxtUCCD\noycfFUhZGVxVnLYc3vjc8mPKokJkcFD3lSGw2QB/XB+s1wahEQvQ/sMCgYEA9D8j\nS9NVRV3xbo42ump7p9yHk3NNzPu+b+QlcSEb2Jll67/xYplEjdyZGtD1LUttN6yl\ngKQMkZHnQ6deTjuRnIU8b/T1a0pI3f9xpfj2IJZU/gS0WZmaoFrhhaBWPiieeSCz\nkFyydx67m5DnRh9lkB1Xb+IyvC72Xr0/aZZukFkCgYB63/HtfgBcZnfukdnv8Hbe\n69VWO5lVogFc0h58twpJbdRnlwYAsyl/KXPDypBt0VNzTDPA7YH9yV1xJZe72Gf/\nFxUxFx/g+Mq0MVKYFJoTRbFtVD6PBMJU61ah08cvP4bUkUKG/7rtgIAjTHA1Ozzu\nxaNusBU0ek8wlukBUKACXwKBgQDwK2GOvwk7Q4wTNR5Voj1jq3NZJ2laZjU1mzbC\nDlduXjCdZ8l5NdL2V/PpLY3Y8zE7LLY1T5rYTYsFuH8AGI0vRshOIqZs0MfkG7nq\nBWwoUQrUGVYqQOOOSK84EZicWJ6z5tcK3kvS3FKIPy1bg6X/1wpShy9yYg96y0ae\nkgC4SQKBgFoH6n+WPFUDpFJGAQ7NNQu1iZX/l8AFUltSGfdzPwzsJAlHxJpkeRWV\n4uFYyklRVIelhv+f5O6MhTyadYYyBvTgvSG/cK5D80eC3BVcUJSM7PWD63SAoytd\nvddliXeyrXMUTSTO/E8XUnRbsfDrTtO4o8NecEwSrZ9Ayr7g/e/z\n-----END RSA PRIVATE KEY-----\n" 278 } 279 } 280 ], 281 "validation_context": { 282 "trusted_ca": { 283 "filename": "{{.IstioSrc}}/security/samples/plugin_ca_certs/cert-chain.pem" 284 } 285 } 286 }, 287 "require_client_certificate": true 288 }, 289 "filters": [ 290 { 291 "name": "envoy.tcp_proxy", 292 "typed_config": { 293 "@type": "type.googleapis.com/envoy.config.filter.network.tcp_proxy.v2.TcpProxy", 294 "stat_prefix": "grpc15011", 295 "cluster": "xds_grpc" 296 } 297 } 298 ] 299 } 300 ] 301 } 302 303 ], 304 "clusters": [ 305 { 306 "name": "xds-grpc", 307 "type": "STRICT_DNS", 308 "connect_timeout": { 309 "seconds": 5, 310 "nanos": 0 311 }, 312 "lb_policy": "ROUND_ROBIN", 313 "hosts": [ 314 { 315 "socket_address": { 316 "address": "127.0.0.1", 317 "port_value": {{.Ports.PilotGrpcPort}} 318 } 319 } 320 ], 321 "http2_protocol_options": {} 322 }, 323 { 324 "name": "service1", 325 "type": "STRICT_DNS", 326 "connect_timeout": { 327 "seconds": 5, 328 "nanos": 0 329 }, 330 "lb_policy": "ROUND_ROBIN", 331 "hosts": [ 332 { 333 "socket_address": { 334 "address": "127.0.0.1", 335 "port_value": {{.Ports.BackendPort}} 336 } 337 } 338 ], 339 "http2_protocol_options": {} 340 }, 341 { 342 "name": "service2", 343 "type": "STRICT_DNS", 344 "connect_timeout": { 345 "seconds": 5, 346 "nanos": 0 347 }, 348 "lb_policy": "ROUND_ROBIN", 349 "hosts": [ 350 { 351 "socket_address": { 352 "address": "127.0.0.1", 353 "port_value": {{.Ports.ServerProxyPort}} 354 } 355 } 356 ], 357 "http2_protocol_options": {} 358 }, 359 { 360 "name": "mixer_server", 361 "type": "STRICT_DNS", 362 "connect_timeout": { 363 "seconds": 5, 364 "nanos": 0 365 }, 366 "lb_policy": "ROUND_ROBIN", 367 "hosts": [ 368 { 369 "socket_address": { 370 "address": "127.0.0.1", 371 "port_value": {{.Ports.MixerPort}} 372 } 373 } 374 ], 375 "http2_protocol_options": {} 376 } 377 378 ] 379 } 380} 381