From 792aa1dbdfd0e5e5edf6a9c765dcfcee77fc8a12 Mon Sep 17 00:00:00 2001 From: Leon Date: Sun, 1 Oct 2023 13:59:48 +0200 Subject: [PATCH] Add SSH port option --- lib/kamal/configuration/ssh.rb | 6 +++++- test/configuration/ssh_test.rb | 3 +++ test/configuration_test.rb | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/kamal/configuration/ssh.rb b/lib/kamal/configuration/ssh.rb index 57a740b7..b9630102 100644 --- a/lib/kamal/configuration/ssh.rb +++ b/lib/kamal/configuration/ssh.rb @@ -9,6 +9,10 @@ class Kamal::Configuration::Ssh config.fetch("user", "root") end + def port + config.fetch("port", 22) + end + def proxy if (proxy = config["proxy"]) Net::SSH::Proxy::Jump.new(proxy.include?("@") ? proxy : "root@#{proxy}") @@ -18,7 +22,7 @@ class Kamal::Configuration::Ssh end def options - { user: user, proxy: proxy, logger: logger, keepalive: true, keepalive_interval: 30 }.compact + { user: user, port: port, proxy: proxy, logger: logger, keepalive: true, keepalive_interval: 30 }.compact end def to_h diff --git a/test/configuration/ssh_test.rb b/test/configuration/ssh_test.rb index cb3d5f5c..438a0f45 100644 --- a/test/configuration/ssh_test.rb +++ b/test/configuration/ssh_test.rb @@ -22,6 +22,9 @@ class ConfigurationSshTest < ActiveSupport::TestCase config = Kamal::Configuration.new(@deploy.tap { |c| c.merge!(ssh: { "log_level" => "debug" }) }) assert_equal 0, config.ssh.options[:logger].level + + config = Kamal::Configuration.new(@deploy.tap { |c| c.merge!(ssh: { "port" => 2222 }) }) + assert_equal 2222, config.ssh.options[:port] end test "ssh options with proxy host" do diff --git a/test/configuration_test.rb b/test/configuration_test.rb index 5b9f4cc9..e48659ed 100644 --- a/test/configuration_test.rb +++ b/test/configuration_test.rb @@ -227,7 +227,7 @@ class ConfigurationTest < ActiveSupport::TestCase :repository=>"dhh/app", :absolute_image=>"dhh/app:missing", :service_with_version=>"app-missing", - :ssh_options=>{ :user=>"root", log_level: :fatal, keepalive: true, keepalive_interval: 30 }, + :ssh_options=>{ :user=>"root", port: 22, log_level: :fatal, keepalive: true, keepalive_interval: 30 }, :sshkit=>{}, :volume_args=>["--volume", "/local/path:/container/path"], :builder=>{},