Maintenance mode
Adds support for maintenance mode to Kamal. There are two new commands: - `kamal app maintenance` - puts the app in maintenance mode - `kamal app live` - puts the app back in live mode In maintenance mode, the kamal proxy will respond to requests with a 503 status code. It will use an error page built into kamal proxy. You can use your own error page by setting `error_pages_path` in the configuration. This will copy any 4xx.html or 5xx.html files from that page to a volume mounted into the proxy container.
This commit is contained in:
@@ -58,9 +58,7 @@ class ActiveSupport::TestCase
|
||||
def setup_test_secrets(**files)
|
||||
@original_pwd = Dir.pwd
|
||||
@secrets_tmpdir = Dir.mktmpdir
|
||||
fixtures_dup = File.join(@secrets_tmpdir, "test")
|
||||
FileUtils.mkdir_p(fixtures_dup)
|
||||
FileUtils.cp_r("test/fixtures/", fixtures_dup)
|
||||
copy_fixtures(@secrets_tmpdir)
|
||||
|
||||
Dir.chdir(@secrets_tmpdir)
|
||||
FileUtils.mkdir_p(".kamal")
|
||||
@@ -75,6 +73,30 @@ class ActiveSupport::TestCase
|
||||
Dir.chdir(@original_pwd)
|
||||
FileUtils.rm_rf(@secrets_tmpdir)
|
||||
end
|
||||
|
||||
def with_error_pages(directory:)
|
||||
error_pages_tmpdir = Dir.mktmpdir
|
||||
|
||||
Dir.mktmpdir do |tmpdir|
|
||||
copy_fixtures(tmpdir)
|
||||
|
||||
Dir.chdir(tmpdir) do
|
||||
FileUtils.mkdir_p(directory)
|
||||
Dir.chdir(directory) do
|
||||
File.write("404.html", "404 page")
|
||||
File.write("503.html", "503 page")
|
||||
end
|
||||
|
||||
yield
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def copy_fixtures(to_dir)
|
||||
new_test_dir = File.join(to_dir, "test")
|
||||
FileUtils.mkdir_p(new_test_dir)
|
||||
FileUtils.cp_r("test/fixtures/", new_test_dir)
|
||||
end
|
||||
end
|
||||
|
||||
class SecretAdapterTestCase < ActiveSupport::TestCase
|
||||
|
||||
Reference in New Issue
Block a user