`runner traefik`
CLI para inspecionar e editar a configuracao do Traefik que o Runner gerencia. E o maior grupo do binario — 30 subcomandos.
A regra que vale para o grupo inteiro
Tudo e dry-run por padrao. Os 16 subcomandos que mutam so escrevem com --apply;
sem ela mostram o diff e nao tocam na configuracao.
runner traefik domain-add meu-router novo.dominio.com # mostra o diff
runner traefik domain-add meu-router novo.dominio.com --apply # escreveIsso torna seguro explorar qualquer comando de edicao antes de decidir.
Inspecao (read-only)
| Subcomando | O que faz |
|---|---|
info |
Instancia de Traefik descoberta + config resolvida |
scan |
Snapshot de todos os providers ativos (file + api + docker labels) |
schema |
JSON Schema de um recurso de saida |
routers-list |
Lista routers, de arquivo e de label de container (provider docker; campo container no JSON). Desde a v2.174.0 |
services-list |
Lista services |
middlewares-list |
Lista middlewares |
domains-list |
Lista os dominios unicos. Desde a v2.174.0 inclui os de label; o campo providers (paralelo a routers) aparece so quando ha router de label |
inspect |
Inspeciona um domain, router, service ou file. inspect domain lista os routers de arquivo e de label (nome@provider, com priority e container no JSON) |
api |
Debug cru da API do Traefik (ping, overview, routers, services, certs) |
diff |
Diff pendente entre o HEAD do journal e o disco |
`scan` cobre os tres providers
Um sintoma comum — "o dominio responde mas nao esta no meu arquivo" — vem de a rota
existir em outro provider. O scan olha os tres de uma vez: arquivo, API e labels
de container.
Routers de label (v2.174.0+)
Quando o provider docker esta ativo na configuracao estatica, scan, inspect domain, routers-list e domains-list leem tambem os labels
traefik.http.routers.* dos containers. O scan ganha o campo
label_router_count. Sem docker, o comando segue so com o arquivo e avisa
traefik_labels_indisponivel no stderr.
Limitacao: provider docker ligado por flag ou variavel de ambiente do Traefik, e nao pela estatica, nao e detectado.
Diagnostico
| Subcomando | O que faz |
|---|---|
doctor |
Roda as checagens padrao, incluindo traefik_regra_duplicada (v2.174.0+) |
history |
Inspeciona o historico (list, show, snapshot-show) |
validate |
Valida um conjunto de ops e roda o preflight — com --apply, aplica |
O check traefik_regra_duplicada acusa o mesmo Host() em router de arquivo e em
router de label cujos entrypoints se cruzam e cuja priority efetiva empata
(a explicita ou, sem ela, o tamanho da regra). A remediacao e dar uma
--priority distinta a um dos dois, por exemplo no router-create:
runner traefik router-create meu-router --rule 'Host(`app.exemplo.com`)' \
--service meu-service --file app.yml --priority 2000 --applyrunner traefik doctor
runner traefik doctor --check <nome> # uma checagem soEdicao de dominios
| Subcomando | O que faz |
|---|---|
domain-add |
Acrescenta um dominio a regra de um router |
domain-remove |
Remove um dominio da regra |
domain-replace |
Troca um host literal por outro (--scope, --router) |
Edicao de routers e services
| Subcomando | O que faz |
|---|---|
router-create |
Cria um router via flags (--rule, --service, --file, --priority) |
router-delete |
Remove um router |
router-edit-rule |
Edita a regra de um router |
service-target |
Aponta o service de um router para uma URL de backend |
service-weight |
Define pesos explicitos num service ponderado |
service-bluegreen-init |
Inicializa um service ponderado blue/green |
service-promote |
Promove um slot blue/green a 100% |
middleware-attach |
Anexa um middleware a um router |
middleware-detach |
Remove um middleware de um router |
Configuracao estatica e recuperacao
| Subcomando | O que faz |
|---|---|
static |
Editor da config estatica (get, set-api, set-log-level, set-access-log, set-entry-point) |
adopt |
Adota um arquivo nao gerenciado sob um id logico |
rollback |
Volta para um snapshot anterior |
failover-switch |
Chave de failover manual |
`adopt` traz um arquivo para o controle do runner
Configuracao escrita a mao antes do Runner existir fica fora do journal — e portanto
fora do diff, do history e do rollback. O adopt a registra sob um id logico, e a
partir dai ela participa dos mesmos mecanismos.
Flags comuns
| Flag | Descricao |
|---|---|
--apply |
Escreve a mudanca. Sem ela, dry-run: mostra o diff e nao toca na config |
--json |
Output em JSON |
-o, --output |
human | json | yaml |
Ver tambem
- `runner doctor` — saude do servidor, nao do Traefik
- `runner health`
- instances — pesos de trafego pela via do Runner