From 02a89d01f9337c9ab6e4aeaf0edc9519f6ef25c7 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sun, 28 May 2023 15:01:01 -0400 Subject: [PATCH] fix: respect dashboard disabling properties in traefik Closes #5855 --- .../templates/compose.yml.sigil | 2 +- tests/unit/traefik.bats | 56 +++++++++++++++++++ 2 files changed, 57 insertions(+), 1 deletion(-) diff --git a/plugins/traefik-vhosts/templates/compose.yml.sigil b/plugins/traefik-vhosts/templates/compose.yml.sigil index 65f88dc43..f26d9b3a9 100644 --- a/plugins/traefik-vhosts/templates/compose.yml.sigil +++ b/plugins/traefik-vhosts/templates/compose.yml.sigil @@ -24,7 +24,7 @@ services: {{ end }} labels: - {{ if $.TRAEFIK_API_ENABLED }} + {{ if eq $.TRAEFIK_API_ENABLED "true" }} # Dashboard - "traefik.http.routers.api.rule=Host(`{{ $.TRAEFIK_API_VHOST }}`)" - "traefik.http.routers.api.service=api@internal" diff --git a/tests/unit/traefik.bats b/tests/unit/traefik.bats index a7a1ec1de..a45725aef 100644 --- a/tests/unit/traefik.bats +++ b/tests/unit/traefik.bats @@ -7,6 +7,7 @@ setup() { dokku nginx:stop dokku traefik:set --global letsencrypt-server https://acme-staging-v02.api.letsencrypt.org/directory dokku traefik:set --global letsencrypt-email + dokku traefik:set --global api-enabled dokku traefik:start create_app } @@ -84,6 +85,61 @@ teardown() { assert_output "python/http.server" } +@test "(traefik) traefik:set api" { + run /bin/bash -c "dokku proxy:set $TEST_APP traefik" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "docker inspect traefik-traefik-1 --format '{{ index .Config.Labels \"traefik.http.routers.api.rule\" }}'" + echo "output: $output" + echo "status: $status" + assert_output_not_exists + assert_success + + run /bin/bash -c "dokku traefik:set --global api-enabled false" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "dokku traefik:stop" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "dokku traefik:start" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "docker inspect traefik-traefik-1 --format '{{ index .Config.Labels \"traefik.http.routers.api.rule\" }}'" + echo "output: $output" + echo "status: $status" + assert_output_not_exists + assert_success + + run /bin/bash -c "dokku traefik:set --global api-enabled true" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "dokku traefik:stop" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "dokku traefik:start" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "docker inspect traefik-traefik-1 --format '{{ index .Config.Labels \"traefik.http.routers.api.rule\" }}'" + echo "output: $output" + echo "status: $status" + assert_output "Host(\`traefik.dokku.me\`)" + assert_success +} + @test "(traefik) traefik:set priority" { run /bin/bash -c "dokku proxy:set $TEST_APP traefik" echo "output: $output"