Instead of using `kamal envify` to generate the .env file, we now assume that it will be in place for us. Options in place of `kamal envify`: 1. Pre-generate the .env file 2. Create the env file in the `.pre-init` hook 3. Log into a secret store/check you are logged in in the pre-init hook Then use .dotenv command and variable substitution to interpolate the secrets.
64 lines
1.8 KiB
Ruby
64 lines
1.8 KiB
Ruby
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
|
|
|
|
kamal :env, :delete
|
|
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
|