@@ -4,7 +4,7 @@ class CliProxyTest < CliTestCase
4
4
test "boot" do
5
5
run_command ( "boot" ) . tap do |output |
6
6
assert_match "docker login" , output
7
- assert_match "echo $(cat .kamal/proxy/options 2> /dev/null || echo \" --publish 80:80 --publish 443:443 --log-opt max-size=10m\" ) $(cat .kamal/proxy/image 2> /dev/null || echo \" basecamp/kamal-proxy\" ):$(cat .kamal/proxy/image_version 2> /dev/null || echo \" #{ Kamal ::Configuration ::PROXY_MINIMUM_VERSION } \" ) | xargs docker run --name kamal-proxy --network kamal --detach --restart unless-stopped --volume kamal-proxy-config:/home/kamal-proxy/.config/kamal-proxy" , output
7
+ assert_match "echo $(cat .kamal/proxy/options 2> /dev/null || echo \" --publish 80:80 --publish 443:443 --log-opt max-size=10m\" ) $(cat .kamal/proxy/image 2> /dev/null || echo \" basecamp/kamal-proxy\" ):$(cat .kamal/proxy/image_version 2> /dev/null || echo \" #{ Kamal ::Configuration ::PROXY_MINIMUM_VERSION } \" ) $(cat .kamal/proxy/run_command 2> /dev/null || echo \" \" ) | xargs docker run --name kamal-proxy --network kamal --detach --restart unless-stopped --volume kamal-proxy-config:/home/kamal-proxy/.config/kamal-proxy" , output
8
8
end
9
9
end
10
10
@@ -18,7 +18,7 @@ class CliProxyTest < CliTestCase
18
18
exception = assert_raises do
19
19
run_command ( "boot" ) . tap do |output |
20
20
assert_match "docker login" , output
21
- assert_match "echo $(cat .kamal/proxy/options 2> /dev/null || echo \" --publish 80:80 --publish 443:443 --log-opt max-size=10m\" ) $(cat .kamal/proxy/image 2> /dev/null || echo \" basecamp/kamal-proxy\" ):$(cat .kamal/proxy/image_version 2> /dev/null || echo \" #{ Kamal ::Configuration ::PROXY_MINIMUM_VERSION } \" ) | xargs docker run --name kamal-proxy --network kamal --detach --restart unless-stopped --volume kamal-proxy-config:/home/kamal-proxy/.config/kamal-proxy" , output
21
+ assert_match "echo $(cat .kamal/proxy/options 2> /dev/null || echo \" --publish 80:80 --publish 443:443 --log-opt max-size=10m\" ) $(cat .kamal/proxy/image 2> /dev/null || echo \" basecamp/kamal-proxy\" ):$(cat .kamal/proxy/image_version 2> /dev/null || echo \" #{ Kamal ::Configuration ::PROXY_MINIMUM_VERSION } \" ) $(cat .kamal/proxy/run_command 2> /dev/null || echo \" \" ) | xargs docker run --name kamal-proxy --network kamal --detach --restart unless-stopped --volume kamal-proxy-config:/home/kamal-proxy/.config/kamal-proxy" , output
22
22
end
23
23
end
24
24
@@ -36,7 +36,7 @@ class CliProxyTest < CliTestCase
36
36
37
37
run_command ( "boot" ) . tap do |output |
38
38
assert_match "docker login" , output
39
- assert_match "docker container start kamal-proxy || echo $(cat .kamal/proxy/options 2> /dev/null || echo \" --publish 80:80 --publish 443:443 --log-opt max-size=10m\" ) $(cat .kamal/proxy/image 2> /dev/null || echo \" basecamp/kamal-proxy\" ):$(cat .kamal/proxy/image_version 2> /dev/null || echo \" #{ Kamal ::Configuration ::PROXY_MINIMUM_VERSION } \" ) | xargs docker run --name kamal-proxy --network kamal --detach --restart unless-stopped --volume kamal-proxy-config:/home/kamal-proxy/.config/kamal-proxy" , output
39
+ assert_match "docker container start kamal-proxy || echo $(cat .kamal/proxy/options 2> /dev/null || echo \" --publish 80:80 --publish 443:443 --log-opt max-size=10m\" ) $(cat .kamal/proxy/image 2> /dev/null || echo \" basecamp/kamal-proxy\" ):$(cat .kamal/proxy/image_version 2> /dev/null || echo \" #{ Kamal ::Configuration ::PROXY_MINIMUM_VERSION } \" ) $(cat .kamal/proxy/run_command 2> /dev/null || echo \" \" ) | xargs docker run --name kamal-proxy --network kamal --detach --restart unless-stopped --volume kamal-proxy-config:/home/kamal-proxy/.config/kamal-proxy" , output
40
40
end
41
41
ensure
42
42
Thread . report_on_exception = false
@@ -56,12 +56,12 @@ class CliProxyTest < CliTestCase
56
56
run_command ( "reboot" , "-y" ) . tap do |output |
57
57
assert_match "docker container stop kamal-proxy on 1.1.1.1" , output
58
58
assert_match "docker container prune --force --filter label=org.opencontainers.image.title=kamal-proxy on 1.1.1.1" , output
59
- assert_match "echo $(cat .kamal/proxy/options 2> /dev/null || echo \" --publish 80:80 --publish 443:443 --log-opt max-size=10m\" ) $(cat .kamal/proxy/image 2> /dev/null || echo \" basecamp/kamal-proxy\" ):$(cat .kamal/proxy/image_version 2> /dev/null || echo \" #{ Kamal ::Configuration ::PROXY_MINIMUM_VERSION } \" ) | xargs docker run --name kamal-proxy --network kamal --detach --restart unless-stopped --volume kamal-proxy-config:/home/kamal-proxy/.config/kamal-proxy --volume $(pwd)/.kamal/proxy/apps-config:/home/kamal-proxy/.apps-config on 1.1.1.1" , output
59
+ assert_match "echo $(cat .kamal/proxy/options 2> /dev/null || echo \" --publish 80:80 --publish 443:443 --log-opt max-size=10m\" ) $(cat .kamal/proxy/image 2> /dev/null || echo \" basecamp/kamal-proxy\" ):$(cat .kamal/proxy/image_version 2> /dev/null || echo \" #{ Kamal ::Configuration ::PROXY_MINIMUM_VERSION } \" ) $(cat .kamal/proxy/run_command 2> /dev/null || echo \" \" ) | xargs docker run --name kamal-proxy --network kamal --detach --restart unless-stopped --volume kamal-proxy-config:/home/kamal-proxy/.config/kamal-proxy --volume $(pwd)/.kamal/proxy/apps-config:/home/kamal-proxy/.apps-config on 1.1.1.1" , output
60
60
assert_match "docker exec kamal-proxy kamal-proxy deploy app-web --target=\" abcdefabcdef:80\" --deploy-timeout=\" 6s\" --drain-timeout=\" 30s\" --buffer-requests --buffer-responses --log-request-header=\" Cache-Control\" --log-request-header=\" Last-Modified\" --log-request-header=\" User-Agent\" on 1.1.1.1" , output
61
61
62
62
assert_match "docker container stop kamal-proxy on 1.1.1.2" , output
63
63
assert_match "docker container prune --force --filter label=org.opencontainers.image.title=kamal-proxy on 1.1.1.2" , output
64
- assert_match "echo $(cat .kamal/proxy/options 2> /dev/null || echo \" --publish 80:80 --publish 443:443 --log-opt max-size=10m\" ) $(cat .kamal/proxy/image 2> /dev/null || echo \" basecamp/kamal-proxy\" ):$(cat .kamal/proxy/image_version 2> /dev/null || echo \" #{ Kamal ::Configuration ::PROXY_MINIMUM_VERSION } \" ) | xargs docker run --name kamal-proxy --network kamal --detach --restart unless-stopped --volume kamal-proxy-config:/home/kamal-proxy/.config/kamal-proxy --volume $(pwd)/.kamal/proxy/apps-config:/home/kamal-proxy/.apps-config on 1.1.1.2" , output
64
+ assert_match "echo $(cat .kamal/proxy/options 2> /dev/null || echo \" --publish 80:80 --publish 443:443 --log-opt max-size=10m\" ) $(cat .kamal/proxy/image 2> /dev/null || echo \" basecamp/kamal-proxy\" ):$(cat .kamal/proxy/image_version 2> /dev/null || echo \" #{ Kamal ::Configuration ::PROXY_MINIMUM_VERSION } \" ) $(cat .kamal/proxy/run_command 2> /dev/null || echo \" \" ) | xargs docker run --name kamal-proxy --network kamal --detach --restart unless-stopped --volume kamal-proxy-config:/home/kamal-proxy/.config/kamal-proxy --volume $(pwd)/.kamal/proxy/apps-config:/home/kamal-proxy/.apps-config on 1.1.1.2" , output
65
65
assert_match "docker exec kamal-proxy kamal-proxy deploy app-web --target=\" abcdefabcdef:80\" --deploy-timeout=\" 6s\" --drain-timeout=\" 30s\" --buffer-requests --buffer-responses --log-request-header=\" Cache-Control\" --log-request-header=\" Last-Modified\" --log-request-header=\" User-Agent\" on 1.1.1.2" , output
66
66
end
67
67
end
@@ -196,7 +196,7 @@ class CliProxyTest < CliTestCase
196
196
assert_match "/usr/bin/env mkdir -p .kamal" , output
197
197
assert_match "docker network create kamal" , output
198
198
assert_match "docker login -u [REDACTED] -p [REDACTED]" , output
199
- assert_match "docker container start kamal-proxy || echo $(cat .kamal/proxy/options 2> /dev/null || echo \" --publish 80:80 --publish 443:443 --log-opt max-size=10m\" ) $(cat .kamal/proxy/image 2> /dev/null || echo \" basecamp/kamal-proxy\" ):$(cat .kamal/proxy/image_version 2> /dev/null || echo \" #{ Kamal ::Configuration ::PROXY_MINIMUM_VERSION } \" ) | xargs docker run --name kamal-proxy --network kamal --detach --restart unless-stopped --volume kamal-proxy-config:/home/kamal-proxy/.config/kamal-proxy" , output
199
+ assert_match "docker container start kamal-proxy || echo $(cat .kamal/proxy/options 2> /dev/null || echo \" --publish 80:80 --publish 443:443 --log-opt max-size=10m\" ) $(cat .kamal/proxy/image 2> /dev/null || echo \" basecamp/kamal-proxy\" ):$(cat .kamal/proxy/image_version 2> /dev/null || echo \" #{ Kamal ::Configuration ::PROXY_MINIMUM_VERSION } \" ) $(cat .kamal/proxy/run_command 2> /dev/null || echo \" \" ) | xargs docker run --name kamal-proxy --network kamal --detach --restart unless-stopped --volume kamal-proxy-config:/home/kamal-proxy/.config/kamal-proxy" , output
200
200
assert_match "/usr/bin/env mkdir -p .kamal" , output
201
201
assert_match %r{docker rename app-web-latest app-web-latest_replaced_.*} , output
202
202
assert_match "/usr/bin/env mkdir -p .kamal/apps/app/env/roles" , output
@@ -240,7 +240,9 @@ class CliProxyTest < CliTestCase
240
240
assert_match "Running /usr/bin/env mkdir -p .kamal/proxy on #{ host } " , output
241
241
assert_match "Running /usr/bin/env rm .kamal/proxy/options on #{ host } " , output
242
242
assert_match "Running /usr/bin/env rm .kamal/proxy/image on #{ host } " , output
243
- assert_match "Running /usr/bin/env rm .kamal/proxy/image_version on #{ host } " , output end
243
+ assert_match "Running /usr/bin/env rm .kamal/proxy/image_version on #{ host } " , output
244
+ assert_match "Running /usr/bin/env rm .kamal/proxy/run_command on #{ host } " , output
245
+ end
244
246
end
245
247
end
246
248
@@ -251,6 +253,7 @@ class CliProxyTest < CliTestCase
251
253
assert_match "Uploading \" --log-opt max-size=10m\" to .kamal/proxy/options on #{ host } " , output
252
254
assert_match "Running /usr/bin/env rm .kamal/proxy/image on #{ host } " , output
253
255
assert_match "Running /usr/bin/env rm .kamal/proxy/image_version on #{ host } " , output
256
+ assert_match "Running /usr/bin/env rm .kamal/proxy/run_command on #{ host } " , output
254
257
end
255
258
end
256
259
end
@@ -262,6 +265,7 @@ class CliProxyTest < CliTestCase
262
265
assert_match "Uploading \" --publish 80:80 --publish 443:443 --log-opt max-size=100m\" to .kamal/proxy/options on #{ host } " , output
263
266
assert_match "Running /usr/bin/env rm .kamal/proxy/image on #{ host } " , output
264
267
assert_match "Running /usr/bin/env rm .kamal/proxy/image_version on #{ host } " , output
268
+ assert_match "Running /usr/bin/env rm .kamal/proxy/run_command on #{ host } " , output
265
269
end
266
270
end
267
271
end
@@ -273,6 +277,7 @@ class CliProxyTest < CliTestCase
273
277
assert_match "Uploading \" --publish 80:80 --publish 443:443\" to .kamal/proxy/options on #{ host } " , output
274
278
assert_match "Running /usr/bin/env rm .kamal/proxy/image on #{ host } " , output
275
279
assert_match "Running /usr/bin/env rm .kamal/proxy/image_version on #{ host } " , output
280
+ assert_match "Running /usr/bin/env rm .kamal/proxy/run_command on #{ host } " , output
276
281
end
277
282
end
278
283
end
@@ -319,6 +324,7 @@ class CliProxyTest < CliTestCase
319
324
assert_match "Uploading \" --publish 80:80 --publish 443:443 --log-opt max-size=10m --label=foo=bar --add_host=thishost:thathost\" to .kamal/proxy/options on #{ host } " , output
320
325
assert_match "Running /usr/bin/env rm .kamal/proxy/image on #{ host } " , output
321
326
assert_match "Running /usr/bin/env rm .kamal/proxy/image_version on #{ host } " , output
327
+ assert_match "Running /usr/bin/env rm .kamal/proxy/run_command on #{ host } " , output
322
328
end
323
329
end
324
330
end
@@ -330,6 +336,7 @@ class CliProxyTest < CliTestCase
330
336
assert_match "Running /usr/bin/env rm .kamal/proxy/options on #{ host } " , output
331
337
assert_match "Uploading \" myreg/basecamp/kamal-proxy\" to .kamal/proxy/image on #{ host } " , output
332
338
assert_match "Running /usr/bin/env rm .kamal/proxy/image_version on #{ host } " , output
339
+ assert_match "Running /usr/bin/env rm .kamal/proxy/run_command on #{ host } " , output
333
340
end
334
341
end
335
342
end
@@ -341,6 +348,7 @@ class CliProxyTest < CliTestCase
341
348
assert_match "Running /usr/bin/env rm .kamal/proxy/options on #{ host } " , output
342
349
assert_match "Uploading \" myrepo/kamal-proxy\" to .kamal/proxy/image on #{ host } " , output
343
350
assert_match "Running /usr/bin/env rm .kamal/proxy/image_version on #{ host } " , output
351
+ assert_match "Running /usr/bin/env rm .kamal/proxy/run_command on #{ host } " , output
344
352
end
345
353
end
346
354
end
@@ -352,23 +360,37 @@ class CliProxyTest < CliTestCase
352
360
assert_match "Running /usr/bin/env rm .kamal/proxy/options on #{ host } " , output
353
361
assert_match "Running /usr/bin/env rm .kamal/proxy/image on #{ host } " , output
354
362
assert_match "Uploading \" 0.9.9\" to .kamal/proxy/image_version on #{ host } " , output
363
+ assert_match "Running /usr/bin/env rm .kamal/proxy/run_command on #{ host } " , output
364
+ end
365
+ end
366
+ end
367
+
368
+ test "boot_config set run_command" do
369
+ run_command ( "boot_config" , "set" , "--metrics_port" , "9000" , "--debug" , "true" ) . tap do |output |
370
+ %w[ 1.1.1.1 1.1.1.2 ] . each do |host |
371
+ assert_match "Running /usr/bin/env mkdir -p .kamal/proxy on #{ host } " , output
372
+ assert_match "Running /usr/bin/env rm .kamal/proxy/options on #{ host } " , output
373
+ assert_match "Running /usr/bin/env rm .kamal/proxy/image on #{ host } " , output
374
+ assert_match "Running /usr/bin/env rm .kamal/proxy/image_version on #{ host } " , output
375
+ assert_match "Uploading \" kamal-proxy run --debug --metrics-port \\ \" 9000\\ \" \" to .kamal/proxy/run_command on #{ host } " , output
355
376
end
356
377
end
357
378
end
358
379
359
380
test "boot_config set all" do
360
- run_command ( "boot_config" , "set" , "--docker_options" , "label=foo=bar" , "--registry" , "myreg" , "--repository" , "myrepo" , "--image_version" , "0.9.9" ) . tap do |output |
381
+ run_command ( "boot_config" , "set" , "--docker_options" , "label=foo=bar" , "--registry" , "myreg" , "--repository" , "myrepo" , "--image_version" , "0.9.9" , "--metrics_port" , "9000" , "--debug" , "true" ) . tap do |output |
361
382
%w[ 1.1.1.1 1.1.1.2 ] . each do |host |
362
383
assert_match "Uploading \" --publish 80:80 --publish 443:443 --log-opt max-size=10m --label=foo=bar\" to .kamal/proxy/options on #{ host } " , output
363
384
assert_match "Uploading \" myreg/myrepo/kamal-proxy\" to .kamal/proxy/image on #{ host } " , output
364
385
assert_match "Uploading \" 0.9.9\" to .kamal/proxy/image_version on #{ host } " , output
386
+ assert_match "Uploading \" kamal-proxy run --debug --metrics-port \\ \" 9000\\ \" \" to .kamal/proxy/run_command on #{ host } " , output
365
387
end
366
388
end
367
389
end
368
390
369
391
test "boot_config get" do
370
392
SSHKit ::Backend ::Abstract . any_instance . expects ( :capture_with_info )
371
- . with ( :echo , "$(cat .kamal/proxy/options 2> /dev/null || echo \" --publish 80:80 --publish 443:443 --log-opt max-size=10m\" ) $(cat .kamal/proxy/image 2> /dev/null || echo \" basecamp/kamal-proxy\" ):$(cat .kamal/proxy/image_version 2> /dev/null || echo \" v0.8.7 \" )" )
393
+ . with ( :echo , "$(cat .kamal/proxy/options 2> /dev/null || echo \" --publish 80:80 --publish 443:443 --log-opt max-size=10m\" ) $(cat .kamal/proxy/image 2> /dev/null || echo \" basecamp/kamal-proxy\" ):$(cat .kamal/proxy/image_version 2> /dev/null || echo \" #{ Kamal :: Configuration :: PROXY_MINIMUM_VERSION } \" ) $(cat .kamal/proxy/run_command 2> /dev/null || echo \" \" )" )
372
394
. returns ( "--publish 80:80 --publish 8443:443 --label=foo=bar basecamp/kamal-proxy:v1.0.0" )
373
395
. twice
374
396
0 commit comments