Use the --registry, --repository and --image_version options of `kamal proxy boot_config set` to change the kamal-proxy image used. We'll still insist that the image version is at least as high as the minimum.
75 lines
2.3 KiB
Ruby
75 lines
2.3 KiB
Ruby
require_relative "integration_test"
|
|
|
|
class ProxyTest < IntegrationTest
|
|
setup do
|
|
@app = "app_with_roles"
|
|
end
|
|
|
|
test "boot, reboot, stop, start, restart, logs, remove" do
|
|
kamal :proxy, :boot_config, :set, "--registry", "registry:4443"
|
|
|
|
kamal :proxy, :boot
|
|
assert_proxy_running
|
|
|
|
output = kamal :proxy, :reboot, "-y", "--verbose", capture: true
|
|
assert_proxy_running
|
|
assert_hooks_ran "pre-proxy-reboot", "post-proxy-reboot"
|
|
assert_match /Rebooting kamal-proxy on vm1,vm2.../, output
|
|
assert_match /Rebooted kamal-proxy on vm1,vm2/, output
|
|
|
|
output = kamal :proxy, :reboot, "--rolling", "-y", "--verbose", capture: true
|
|
assert_proxy_running
|
|
assert_hooks_ran "pre-proxy-reboot", "post-proxy-reboot"
|
|
assert_match /Rebooting kamal-proxy on vm1.../, output
|
|
assert_match /Rebooted kamal-proxy on vm1/, output
|
|
assert_match /Rebooting kamal-proxy on vm2.../, output
|
|
assert_match /Rebooted kamal-proxy on vm2/, output
|
|
|
|
kamal :proxy, :boot
|
|
assert_proxy_running
|
|
|
|
# Check booting when booted doesn't raise an error
|
|
kamal :proxy, :stop
|
|
assert_proxy_not_running
|
|
|
|
# Check booting when stopped works
|
|
kamal :proxy, :boot
|
|
assert_proxy_running
|
|
|
|
kamal :proxy, :stop
|
|
assert_proxy_not_running
|
|
|
|
kamal :proxy, :start
|
|
assert_proxy_running
|
|
|
|
kamal :proxy, :restart
|
|
assert_proxy_running
|
|
|
|
logs = kamal :proxy, :logs, capture: true
|
|
assert_match /No previous state to restore/, logs
|
|
|
|
kamal :proxy, :boot_config, :set, "--registry", "registry:4443", "--docker-options='sysctl net.ipv4.ip_local_port_range=\"10000 60999\"'"
|
|
assert_docker_options_in_file
|
|
|
|
kamal :proxy, :reboot, "-y"
|
|
assert_docker_options_in_container
|
|
|
|
kamal :proxy, :boot_config, :reset
|
|
|
|
kamal :proxy, :remove
|
|
assert_proxy_not_running
|
|
end
|
|
|
|
private
|
|
def assert_docker_options_in_file
|
|
boot_config = kamal :proxy, :boot_config, :get, capture: true
|
|
assert_match "Host vm1: --publish 80:80 --publish 443:443 --log-opt max-size=10m --sysctl net.ipv4.ip_local_port_range=\"10000 60999\"", boot_config
|
|
end
|
|
|
|
def assert_docker_options_in_container
|
|
assert_equal \
|
|
"{\"net.ipv4.ip_local_port_range\":\"10000 60999\"}",
|
|
docker_compose("exec vm1 docker inspect --format '{{ json .HostConfig.Sysctls }}' kamal-proxy", capture: true).strip
|
|
end
|
|
end
|