Skip to content

Commit eb915f8

Browse files
authored
Merge pull request #1522 from basecamp/create-directories-before-mapping
Create the .kamal/proxy/apps-config directory
2 parents 8789a1b + d26b3f1 commit eb915f8

File tree

4 files changed

+15
-0
lines changed

4 files changed

+15
-0
lines changed

lib/kamal/cli/proxy.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ def boot
1616
if version && Kamal::Utils.older_version?(version, Kamal::Configuration::PROXY_MINIMUM_VERSION)
1717
raise "kamal-proxy version #{version} is too old, run `kamal proxy reboot` in order to update to at least #{Kamal::Configuration::PROXY_MINIMUM_VERSION}"
1818
end
19+
execute *KAMAL.proxy.ensure_apps_config_directory
1920
execute *KAMAL.proxy.start_or_run
2021
end
2122
end
@@ -101,6 +102,7 @@ def reboot
101102
"Stopping and removing kamal-proxy on #{host}, if running..."
102103
execute *KAMAL.proxy.stop, raise_on_non_zero_exit: false
103104
execute *KAMAL.proxy.remove_container
105+
execute *KAMAL.proxy.ensure_apps_config_directory
104106

105107
execute *KAMAL.proxy.run
106108

lib/kamal/commands/proxy.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,10 @@ def remove_proxy_directory
6565
remove_directory config.proxy_directory
6666
end
6767

68+
def ensure_apps_config_directory
69+
make_directory config.proxy_apps_directory
70+
end
71+
6872
def boot_config
6973
[ :echo, "#{substitute(read_boot_options)} #{substitute(read_image)}:#{substitute(read_image_version)}" ]
7074
end

test/cli/proxy_test.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ class CliProxyTest < CliTestCase
44
test "boot" do
55
run_command("boot").tap do |output|
66
assert_match "docker login", output
7+
assert_match "mkdir -p .kamal/proxy/apps-config", output
78
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
89
end
910
end
@@ -56,11 +57,13 @@ class CliProxyTest < CliTestCase
5657
run_command("reboot", "-y").tap do |output|
5758
assert_match "docker container stop kamal-proxy on 1.1.1.1", output
5859
assert_match "docker container prune --force --filter label=org.opencontainers.image.title=kamal-proxy on 1.1.1.1", output
60+
assert_match "mkdir -p .kamal/proxy/apps-config on 1.1.1.1", output
5961
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
6062
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
6163

6264
assert_match "docker container stop kamal-proxy on 1.1.1.2", output
6365
assert_match "docker container prune --force --filter label=org.opencontainers.image.title=kamal-proxy on 1.1.1.2", output
66+
assert_match "mkdir -p .kamal/proxy/apps-config on 1.1.1.1", output
6467
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
6568
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
6669
end

test/commands/proxy_test.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,12 @@ class CommandsProxyTest < ActiveSupport::TestCase
147147
new_command.reset_image_version.join(" ")
148148
end
149149

150+
test "ensure_apps_config_directory" do
151+
assert_equal \
152+
"mkdir -p .kamal/proxy/apps-config",
153+
new_command.ensure_apps_config_directory.join(" ")
154+
end
155+
150156
private
151157
def new_command
152158
Kamal::Commands::Proxy.new(Kamal::Configuration.new(@config, version: "123"))

0 commit comments

Comments
 (0)