Rip out Traefik
This commit is contained in:
@@ -8,6 +8,7 @@ class AppTest < IntegrationTest
|
||||
|
||||
kamal :app, :stop
|
||||
|
||||
exit!
|
||||
assert_app_is_down
|
||||
|
||||
kamal :app, :start
|
||||
|
||||
3
test/integration/docker/deployer/app/.kamal/hooks/post-proxy-reboot
Executable file
3
test/integration/docker/deployer/app/.kamal/hooks/post-proxy-reboot
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
echo "Rebooted kamal-proxy on ${KAMAL_HOSTS}"
|
||||
mkdir -p /tmp/${TEST_ID} && touch /tmp/${TEST_ID}/post-proxy-reboot
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/sh
|
||||
echo "Rebooted Traefik on ${KAMAL_HOSTS}"
|
||||
mkdir -p /tmp/${TEST_ID} && touch /tmp/${TEST_ID}/post-traefik-reboot
|
||||
3
test/integration/docker/deployer/app/.kamal/hooks/pre-proxy-reboot
Executable file
3
test/integration/docker/deployer/app/.kamal/hooks/pre-proxy-reboot
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
echo "Rebooting Traefik on ${KAMAL_HOSTS}..."
|
||||
mkdir -p /tmp/${TEST_ID} && touch /tmp/${TEST_ID}/pre-proxy-reboot
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/sh
|
||||
echo "Rebooting Traefik on ${KAMAL_HOSTS}..."
|
||||
mkdir -p /tmp/${TEST_ID} && touch /tmp/${TEST_ID}/pre-traefik-reboot
|
||||
@@ -20,6 +20,8 @@ env:
|
||||
secret:
|
||||
- SECRET_TAG
|
||||
asset_path: /usr/share/nginx/html/versions
|
||||
proxy:
|
||||
deploy_timeout: 2s
|
||||
|
||||
registry:
|
||||
server: registry:4443
|
||||
@@ -30,14 +32,6 @@ builder:
|
||||
arch: <%= Kamal::Utils.docker_arch %>
|
||||
args:
|
||||
COMMIT_SHA: <%= `git rev-parse HEAD` %>
|
||||
healthcheck:
|
||||
cmd: wget -qO- http://localhost > /dev/null || exit 1
|
||||
max_attempts: 3
|
||||
traefik:
|
||||
args:
|
||||
accesslog: true
|
||||
accesslog.format: json
|
||||
image: registry:4443/traefik:v2.10
|
||||
accessories:
|
||||
busybox:
|
||||
service: custom-busybox
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
echo "Rebooted kamal-proxy on ${KAMAL_HOSTS}"
|
||||
mkdir -p /tmp/${TEST_ID} && touch /tmp/${TEST_ID}/post-proxy-reboot
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/sh
|
||||
echo "Rebooted Traefik on ${KAMAL_HOSTS}"
|
||||
mkdir -p /tmp/${TEST_ID} && touch /tmp/${TEST_ID}/post-traefik-reboot
|
||||
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
echo "Rebooting kamal-proxy on ${KAMAL_HOSTS}..."
|
||||
mkdir -p /tmp/${TEST_ID} && touch /tmp/${TEST_ID}/pre-proxy-reboot
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/sh
|
||||
echo "Rebooting Traefik on ${KAMAL_HOSTS}..."
|
||||
mkdir -p /tmp/${TEST_ID} && touch /tmp/${TEST_ID}/pre-traefik-reboot
|
||||
@@ -10,9 +10,6 @@ servers:
|
||||
- vm3
|
||||
cmd: sleep infinity
|
||||
proxy:
|
||||
enabled: true
|
||||
hosts:
|
||||
- vm2
|
||||
deploy_timeout: 2s
|
||||
|
||||
asset_path: /usr/share/nginx/html/versions
|
||||
@@ -26,14 +23,6 @@ builder:
|
||||
arch: <%= Kamal::Utils.docker_arch %>
|
||||
args:
|
||||
COMMIT_SHA: <%= `git rev-parse HEAD` %>
|
||||
healthcheck:
|
||||
cmd: wget -qO- http://localhost > /dev/null || exit 1
|
||||
max_attempts: 3
|
||||
traefik:
|
||||
args:
|
||||
accesslog: true
|
||||
accesslog.format: json
|
||||
image: registry:4443/traefik:v2.10
|
||||
accessories:
|
||||
busybox:
|
||||
service: custom-busybox
|
||||
|
||||
@@ -19,7 +19,6 @@ push_image_to_registry_4443() {
|
||||
|
||||
install_kamal
|
||||
push_image_to_registry_4443 nginx 1-alpine-slim
|
||||
push_image_to_registry_4443 traefik v2.10
|
||||
push_image_to_registry_4443 busybox 1.36.0
|
||||
|
||||
# .ssh is on a shared volume that persists between runs. Clean it up as the
|
||||
|
||||
@@ -101,8 +101,8 @@ class IntegrationTest < ActiveSupport::TestCase
|
||||
def assert_200(response)
|
||||
code = response.code
|
||||
if code != "200"
|
||||
puts "Got response code #{code}, here are the traefik logs:"
|
||||
kamal :traefik, :logs
|
||||
puts "Got response code #{code}, here are the proxy logs:"
|
||||
kamal :proxy, :logs
|
||||
puts "And here are the load balancer logs"
|
||||
docker_compose :logs, :load_balancer
|
||||
puts "Tried to get the response code again and got #{app_response.code}"
|
||||
@@ -129,8 +129,8 @@ class IntegrationTest < ActiveSupport::TestCase
|
||||
def debug_response_code(app_response, expected_code)
|
||||
code = app_response.code
|
||||
if code != expected_code
|
||||
puts "Got response code #{code}, here are the traefik logs:"
|
||||
kamal :traefik, :logs
|
||||
puts "Got response code #{code}, here are the proxy logs:"
|
||||
kamal :proxy, :logs
|
||||
puts "And here are the load balancer logs"
|
||||
docker_compose :logs, :load_balancer
|
||||
puts "Tried to get the response code again and got #{app_response.code}"
|
||||
|
||||
@@ -24,11 +24,11 @@ class MainTest < IntegrationTest
|
||||
assert_app_is_up version: first_version
|
||||
|
||||
details = kamal :details, capture: true
|
||||
assert_match /Traefik Host: vm1/, details
|
||||
assert_match /Traefik Host: vm2/, details
|
||||
assert_match /Proxy Host: vm1/, details
|
||||
assert_match /Proxy Host: vm2/, details
|
||||
assert_match /App Host: vm1/, details
|
||||
assert_match /App Host: vm2/, details
|
||||
assert_match /traefik:v2.10/, details
|
||||
assert_match /basecamp\/kamal-proxy:latest/, details
|
||||
assert_match /registry:4443\/app:#{first_version}/, details
|
||||
|
||||
audit = kamal :audit, capture: true
|
||||
@@ -70,7 +70,6 @@ class MainTest < IntegrationTest
|
||||
assert_equal({ user: "root", port: 22, keepalive: true, keepalive_interval: 30, log_level: :fatal }, config[:ssh_options])
|
||||
assert_equal({ "driver" => "docker", "arch" => "#{Kamal::Utils.docker_arch}", "args" => { "COMMIT_SHA" => version } }, config[:builder])
|
||||
assert_equal [ "--log-opt", "max-size=\"10m\"" ], config[:logging]
|
||||
assert_equal({ "cmd"=>"wget -qO- http://localhost > /dev/null || exit 1", "interval"=>"1s", "max_attempts"=>3, "port"=>3000, "path"=>"/up", "cord"=>"/tmp/kamal-cord", "log_lines"=>50 }, config[:healthcheck])
|
||||
end
|
||||
|
||||
test "aliases" do
|
||||
|
||||
@@ -11,50 +11,43 @@ class ProxyTest < IntegrationTest
|
||||
|
||||
output = kamal :proxy, :reboot, "-y", "--verbose", capture: true
|
||||
assert_proxy_running
|
||||
assert_hooks_ran "pre-traefik-reboot", "post-traefik-reboot"
|
||||
assert_match /Rebooting Traefik on vm1,vm2.../, output
|
||||
assert_match /Rebooted Traefik on vm1,vm2/, output
|
||||
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-traefik-reboot", "post-traefik-reboot"
|
||||
assert_match /Rebooting Traefik on vm1.../, output
|
||||
assert_match /Rebooted Traefik on vm1/, output
|
||||
assert_match /Rebooting Traefik on vm2.../, output
|
||||
assert_match /Rebooted Traefik on vm2/, output
|
||||
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
|
||||
assert_traefik_running
|
||||
|
||||
# Check booting when booted doesn't raise an error
|
||||
kamal :proxy, :stop
|
||||
assert_proxy_not_running
|
||||
assert_traefik_not_running
|
||||
|
||||
# Check booting when stopped works
|
||||
kamal :proxy, :boot
|
||||
assert_proxy_running
|
||||
assert_traefik_running
|
||||
|
||||
kamal :proxy, :stop
|
||||
assert_proxy_not_running
|
||||
assert_traefik_not_running
|
||||
|
||||
kamal :proxy, :start
|
||||
assert_proxy_running
|
||||
assert_traefik_running
|
||||
|
||||
kamal :proxy, :restart
|
||||
assert_proxy_running
|
||||
assert_traefik_running
|
||||
|
||||
logs = kamal :proxy, :logs, capture: true
|
||||
assert_match /Traefik version [\d.]+ built on/, logs
|
||||
assert_match /No previous state to restore/, logs
|
||||
|
||||
kamal :proxy, :remove
|
||||
assert_proxy_not_running
|
||||
assert_traefik_not_running
|
||||
|
||||
kamal :env, :delete
|
||||
end
|
||||
@@ -68,14 +61,6 @@ class ProxyTest < IntegrationTest
|
||||
assert_no_match /basecamp\/kamal-proxy:latest \"kamal-proxy run\"/, proxy_details
|
||||
end
|
||||
|
||||
def assert_traefik_running
|
||||
assert_match /traefik:v2.10 "\/entrypoint.sh/, proxy_details
|
||||
end
|
||||
|
||||
def assert_traefik_not_running
|
||||
assert_no_match /traefik:v2.10 "\/entrypoint.sh/, proxy_details
|
||||
end
|
||||
|
||||
def proxy_details
|
||||
kamal :proxy, :details, capture: true
|
||||
end
|
||||
|
||||
@@ -1,61 +0,0 @@
|
||||
require_relative "integration_test"
|
||||
|
||||
class TraefikTest < IntegrationTest
|
||||
test "boot, reboot, stop, start, restart, logs, remove" do
|
||||
kamal :traefik, :boot
|
||||
assert_traefik_running
|
||||
|
||||
output = kamal :traefik, :reboot, "-y", "--verbose", capture: true
|
||||
assert_traefik_running
|
||||
assert_hooks_ran "pre-traefik-reboot", "post-traefik-reboot"
|
||||
assert_match /Rebooting Traefik on vm1,vm2.../, output
|
||||
assert_match /Rebooted Traefik on vm1,vm2/, output
|
||||
|
||||
output = kamal :traefik, :reboot, "--rolling", "-y", "--verbose", capture: true
|
||||
assert_traefik_running
|
||||
assert_hooks_ran "pre-traefik-reboot", "post-traefik-reboot"
|
||||
assert_match /Rebooting Traefik on vm1.../, output
|
||||
assert_match /Rebooted Traefik on vm1/, output
|
||||
assert_match /Rebooting Traefik on vm2.../, output
|
||||
assert_match /Rebooted Traefik on vm2/, output
|
||||
|
||||
kamal :traefik, :boot
|
||||
assert_traefik_running
|
||||
|
||||
# Check booting when booted doesn't raise an error
|
||||
kamal :traefik, :stop
|
||||
assert_traefik_not_running
|
||||
|
||||
# Check booting when stopped works
|
||||
kamal :traefik, :boot
|
||||
assert_traefik_running
|
||||
|
||||
kamal :traefik, :stop
|
||||
assert_traefik_not_running
|
||||
|
||||
kamal :traefik, :start
|
||||
assert_traefik_running
|
||||
|
||||
kamal :traefik, :restart
|
||||
assert_traefik_running
|
||||
|
||||
logs = kamal :traefik, :logs, capture: true
|
||||
assert_match /Traefik version [\d.]+ built on/, logs
|
||||
|
||||
kamal :traefik, :remove
|
||||
assert_traefik_not_running
|
||||
end
|
||||
|
||||
private
|
||||
def assert_traefik_running
|
||||
assert_match /traefik:v2.10 "\/entrypoint.sh/, traefik_details
|
||||
end
|
||||
|
||||
def assert_traefik_not_running
|
||||
assert_no_match /traefik:v2.10 "\/entrypoint.sh/, traefik_details
|
||||
end
|
||||
|
||||
def traefik_details
|
||||
kamal :traefik, :details, capture: true
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user