Don't allow booleans for root proxy config
Setting it to a false or true doesn't affect the config so shouldn't be allowed. true/false are for role level configurations. Fixes: https://github.com/basecamp/kamal/issues/1120
This commit is contained in:
@@ -68,7 +68,7 @@ class Kamal::Configuration
|
|||||||
@env = Env.new(config: @raw_config.env || {}, secrets: secrets)
|
@env = Env.new(config: @raw_config.env || {}, secrets: secrets)
|
||||||
|
|
||||||
@logging = Logging.new(logging_config: @raw_config.logging)
|
@logging = Logging.new(logging_config: @raw_config.logging)
|
||||||
@proxy = Proxy.new(config: self, proxy_config: @raw_config.proxy || {})
|
@proxy = Proxy.new(config: self, proxy_config: @raw_config.key?(:proxy) ? @raw_config.proxy : {})
|
||||||
@ssh = Ssh.new(config: self)
|
@ssh = Ssh.new(config: self)
|
||||||
@sshkit = Sshkit.new(config: self)
|
@sshkit = Sshkit.new(config: self)
|
||||||
|
|
||||||
|
|||||||
@@ -192,6 +192,21 @@ class CliAppTest < CliTestCase
|
|||||||
Thread.report_on_exception = true
|
Thread.report_on_exception = true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "boot with only workers" do
|
||||||
|
Object.any_instance.stubs(:sleep)
|
||||||
|
|
||||||
|
SSHKit::Backend::Abstract.any_instance.stubs(:capture_with_info).returns("123") # old version
|
||||||
|
|
||||||
|
SSHKit::Backend::Abstract.any_instance.expects(:capture_with_info)
|
||||||
|
.with(:docker, :container, :ls, "--all", "--filter", "name=^app-workers-latest$", "--quiet", "|", :xargs, :docker, :inspect, "--format", "'{{if .State.Health}}{{.State.Health.Status}}{{else}}{{.State.Status}}{{end}}'")
|
||||||
|
.returns("running").at_least_once # workers health check
|
||||||
|
|
||||||
|
run_command("boot", config: :with_only_workers, host: nil).tap do |output|
|
||||||
|
assert_match /First workers container is healthy on 1.1.1.\d, booting any other roles/, output
|
||||||
|
assert_no_match "kamal-proxy", output
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
test "boot with error pages" do
|
test "boot with error pages" do
|
||||||
with_error_pages(directory: "public") do
|
with_error_pages(directory: "public") do
|
||||||
stub_running
|
stub_running
|
||||||
|
|||||||
@@ -38,6 +38,13 @@ class ConfigurationProxyTest < ActiveSupport::TestCase
|
|||||||
assert_not config.proxy.ssl?
|
assert_not config.proxy.ssl?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "false not allowed" do
|
||||||
|
@deploy[:proxy] = false
|
||||||
|
assert_raises(Kamal::ConfigurationError, "proxy: should be a hash") do
|
||||||
|
config.proxy
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
def config
|
def config
|
||||||
Kamal::Configuration.new(@deploy)
|
Kamal::Configuration.new(@deploy)
|
||||||
|
|||||||
Reference in New Issue
Block a user