|
34 | 34 | ] |
35 | 35 | } |
36 | 36 | ], |
37 | | - 'routing_api' => {} |
| 37 | + 'routing_api' => {}, |
| 38 | + 'nats' => { |
| 39 | + 'fail_if_using_nats_without_tls' => false |
| 40 | + } |
38 | 41 | } |
39 | 42 | } |
40 | 43 | end |
|
215 | 218 |
|
216 | 219 | describe 'nats properties' do |
217 | 220 | it 'renders with the default' do |
| 221 | + merged_manifest_properties['nats'] = {'fail_if_using_nats_without_tls' => false } |
218 | 222 | rendered_hash = JSON.parse(template.render(merged_manifest_properties, consumes: links)) |
219 | 223 | expect(rendered_hash['message_bus_servers'][0]['host']).to eq('nats-host:8080') |
220 | 224 | expect(rendered_hash['message_bus_servers'][0]['user']).to eq('nats-user') |
|
260 | 264 | end |
261 | 265 |
|
262 | 266 | context 'when mTLS is not enabled for NATS' do |
263 | | - it 'renders with the default nat properties' do |
264 | | - rendered_hash = JSON.parse(template.render(merged_manifest_properties, consumes: links)) |
265 | | - expect(rendered_hash['nats_mtls_config']['enabled']).to be false |
266 | | - expect(rendered_hash['message_bus_servers'].length).to eq(1) |
267 | | - expect(rendered_hash['message_bus_servers'][0]['host']).to eq('nats-host:8080') |
268 | | - expect(rendered_hash['message_bus_servers'][0]['user']).to eq('nats-user') |
269 | | - expect(rendered_hash['message_bus_servers'][0]['password']).to eq('nats-password') |
| 267 | + context 'when nats.fail_if_using_nats_without_tls is false' do |
| 268 | + it 'renders with the default nat properties' do |
| 269 | + merged_manifest_properties['nats'] = {'fail_if_using_nats_without_tls' => false } |
| 270 | + rendered_hash = JSON.parse(template.render(merged_manifest_properties, consumes: links)) |
| 271 | + expect(rendered_hash['nats_mtls_config']['enabled']).to be false |
| 272 | + expect(rendered_hash['message_bus_servers'].length).to eq(1) |
| 273 | + expect(rendered_hash['message_bus_servers'][0]['host']).to eq('nats-host:8080') |
| 274 | + expect(rendered_hash['message_bus_servers'][0]['user']).to eq('nats-user') |
| 275 | + expect(rendered_hash['message_bus_servers'][0]['password']).to eq('nats-password') |
| 276 | + end |
| 277 | + end |
| 278 | + context 'when nats.fail_if_using_nats_without_tls is true' do |
| 279 | + it 'fails' do |
| 280 | + nats_err_msg = <<-TEXT |
| 281 | +Using nats (instead of nats-tls) is deprecated. The nats process will |
| 282 | +be removed soon. Please migrate to using nats-tls as soon as possible. |
| 283 | +If you must continue using nats for a short time you can set the |
| 284 | +nats.fail_if_using_nats_without_tls property on route_registrar to |
| 285 | +false. |
| 286 | +TEXT |
| 287 | + merged_manifest_properties['nats'] = {'fail_if_using_nats_without_tls' => true } |
| 288 | + expect { template.render(merged_manifest_properties, consumes: links) }.to raise_error( |
| 289 | + RuntimeError, nats_err_msg |
| 290 | + ) |
| 291 | + end |
270 | 292 | end |
271 | 293 | end |
272 | 294 | end |
|
313 | 335 | } |
314 | 336 | ), |
315 | 337 | Bosh::Template::Test::Link.new( |
316 | | - name: 'nats', |
| 338 | + name: 'nats-tls', |
317 | 339 | properties: { |
318 | 340 | 'nats' => { |
319 | | - 'hostname' => '', 'user' => '', 'password' => '', 'port' => 8080 |
| 341 | + 'hostname' => 'nats-tls-host', 'user' => 'nats-tls-user', 'password' => 'nats-tls-password', 'port' => 9090 |
320 | 342 | } |
321 | | - } |
| 343 | + }, |
| 344 | + instances: [Bosh::Template::Test::LinkInstance.new(address: 'my-nats-tls-ip')] |
322 | 345 | ) |
323 | 346 | ] |
324 | 347 | end |
| 348 | + before do |
| 349 | + merged_manifest_properties['nats'] = { 'tls' => { 'enabled' => true } } |
| 350 | + end |
325 | 351 | context 'when routing_api_url is not provided' do |
326 | 352 | it 'renders with the default' do |
327 | 353 | rendered_hash = JSON.parse(template.render(merged_manifest_properties, consumes: links)) |
|
360 | 386 |
|
361 | 387 | describe 'when given a valid set of properties' do |
362 | 388 | it 'renders the template' do |
| 389 | + merged_manifest_properties['nats'] = {'fail_if_using_nats_without_tls' => false } |
363 | 390 | rendered_hash = JSON.parse(template.render(merged_manifest_properties, consumes: links)) |
364 | 391 | expect(rendered_hash).to eq( |
365 | 392 | 'host' => '192.168.0.0', |
|
399 | 426 | describe 'when skip_ssl_validation is enabled' do |
400 | 427 | before do |
401 | 428 | merged_manifest_properties['route_registrar']['routing_api'] = { 'skip_ssl_validation' => true } |
| 429 | + merged_manifest_properties['nats'] = {'fail_if_using_nats_without_tls' => false } |
402 | 430 | end |
403 | 431 |
|
404 | 432 | it 'renders skip_ssl_validation as true' do |
|
410 | 438 | describe 'when tls is enabled and the san is not provided' do |
411 | 439 | before do |
412 | 440 | merged_manifest_properties['route_registrar']['routes'][0].delete('server_cert_domain_san') |
| 441 | + merged_manifest_properties['nats'] = {'fail_if_using_nats_without_tls' => false } |
413 | 442 | end |
414 | 443 | it 'should required san if tls_port is provided' do |
415 | 444 | expect { template.render(merged_manifest_properties, consumes: links) }.to raise_error( |
|
421 | 450 | describe 'when tls is enabled and the san is not provided' do |
422 | 451 | before do |
423 | 452 | merged_manifest_properties['route_registrar']['routes'][0]['server_cert_domain_san'] = '' |
| 453 | + merged_manifest_properties['nats'] = {'fail_if_using_nats_without_tls' => false } |
424 | 454 | end |
425 | 455 | it 'should required san if tls_port is provided' do |
426 | 456 | expect { template.render(merged_manifest_properties, consumes: links) }.to raise_error( |
|
433 | 463 | before do |
434 | 464 | merged_manifest_properties['route_registrar']['routes'][0].delete('tls_port') |
435 | 465 | merged_manifest_properties['route_registrar']['routes'][0].delete('server_cert_domain_san') |
| 466 | + merged_manifest_properties['nats'] = {'fail_if_using_nats_without_tls' => false } |
436 | 467 | end |
437 | 468 |
|
438 | 469 | it 'renders the template' do |
|
441 | 472 | end |
442 | 473 |
|
443 | 474 | describe 'when protocol is provided' do |
| 475 | + before do |
| 476 | + merged_manifest_properties['nats'] = {'fail_if_using_nats_without_tls' => false } |
| 477 | + end |
| 478 | + |
444 | 479 | it 'uses configured protocol http1' do |
445 | 480 | merged_manifest_properties['route_registrar']['routes'][0]['protocol'] = 'http1' |
446 | 481 | rendered_hash = JSON.parse(template.render(merged_manifest_properties, consumes: links)) |
|
0 commit comments