diff --git a/plugins/traefik-vhosts/templates/compose.yml.sigil b/plugins/traefik-vhosts/templates/compose.yml.sigil index 65f88dc43e7..f26d9b3a924 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 a7a1ec1dec3..a45725aef53 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"