Dashboard example with swarm
This commit is contained in:
parent
e6e026f420
commit
e30ab07439
6 changed files with 78 additions and 117 deletions
|
@ -1,4 +1,5 @@
|
||||||
{
|
{
|
||||||
"extends": "../../.markdownlint.json",
|
"extends": "../../.markdownlint.json",
|
||||||
|
"MD041": false,
|
||||||
"MD046": false
|
"MD046": false
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,63 +43,7 @@ api: {}
|
||||||
And then define a routing configuration on Traefik itself with the
|
And then define a routing configuration on Traefik itself with the
|
||||||
[dynamic configuration](../getting-started/configuration-overview.md#the-dynamic-configuration):
|
[dynamic configuration](../getting-started/configuration-overview.md#the-dynamic-configuration):
|
||||||
|
|
||||||
```yaml tab="Docker"
|
--8<-- "content/operations/include-api-examples.md"
|
||||||
# Dynamic Configuration
|
|
||||||
labels:
|
|
||||||
- "traefik.http.routers.api.rule=Host(`traefik.domain.com`)"
|
|
||||||
- "traefik.http.routers.api.service=api@internal"
|
|
||||||
- "traefik.http.routers.api.middlewares=auth"
|
|
||||||
- "traefik.http.middlewares.auth.basicauth.users=test:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/,test2:$$apr1$$d9hr9HBB$$4HxwgUir3HP4EsggP/QNo0"
|
|
||||||
```
|
|
||||||
|
|
||||||
```json tab="Marathon"
|
|
||||||
"labels": {
|
|
||||||
"traefik.http.routers.api.rule": "Host(`traefik.domain.com`)",
|
|
||||||
"traefik.http.routers.api.service": "api@internal",
|
|
||||||
"traefik.http.routers.api.middlewares": "auth",
|
|
||||||
"traefik.http.middlewares.auth.basicauth.users": "test:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/,test2:$$apr1$$d9hr9HBB$$4HxwgUir3HP4EsggP/QNo0"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
```yaml tab="Rancher"
|
|
||||||
# Dynamic Configuration
|
|
||||||
labels:
|
|
||||||
- "traefik.http.routers.api.rule=Host(`traefik.domain.com`)"
|
|
||||||
- "traefik.http.routers.api.service=api@internal"
|
|
||||||
- "traefik.http.routers.api.middlewares=auth"
|
|
||||||
- "traefik.http.middlewares.auth.basicauth.users=test:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/,test2:$$apr1$$d9hr9HBB$$4HxwgUir3HP4EsggP/QNo0"
|
|
||||||
```
|
|
||||||
|
|
||||||
```toml tab="File (TOML)"
|
|
||||||
# Dynamic Configuration
|
|
||||||
[http.routers.my-api]
|
|
||||||
rule = "Host(`traefik.domain.com`)"
|
|
||||||
service = "api@internal"
|
|
||||||
middlewares = ["auth"]
|
|
||||||
|
|
||||||
[http.middlewares.auth.basicAuth]
|
|
||||||
users = [
|
|
||||||
"test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/",
|
|
||||||
"test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0",
|
|
||||||
]
|
|
||||||
```
|
|
||||||
|
|
||||||
```yaml tab="File (YAML)"
|
|
||||||
# Dynamic Configuration
|
|
||||||
http:
|
|
||||||
routers:
|
|
||||||
api:
|
|
||||||
rule: Host(`traefik.domain.com`)
|
|
||||||
service: api@internal
|
|
||||||
middlewares:
|
|
||||||
- auth
|
|
||||||
middlewares:
|
|
||||||
auth:
|
|
||||||
basicAuth:
|
|
||||||
users:
|
|
||||||
- "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/"
|
|
||||||
- "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0"
|
|
||||||
```
|
|
||||||
|
|
||||||
??? warning "The router's [rule](../../routing/routers#rule) must catch requests for the URI path `/api`"
|
??? warning "The router's [rule](../../routing/routers#rule) must catch requests for the URI path `/api`"
|
||||||
Using an "Host" rule is recommended, by catching all the incoming traffic on this host domain to the API.
|
Using an "Host" rule is recommended, by catching all the incoming traffic on this host domain to the API.
|
||||||
|
|
|
@ -73,64 +73,7 @@ to allow defining:
|
||||||
through Traefik itself (sometimes referred as "Traefik-ception").
|
through Traefik itself (sometimes referred as "Traefik-ception").
|
||||||
|
|
||||||
??? example "Dashboard Dynamic Configuration Examples"
|
??? example "Dashboard Dynamic Configuration Examples"
|
||||||
|
--8<-- "content/operations/include-api-examples.md"
|
||||||
```yaml tab="Docker"
|
|
||||||
# Dynamic Configuration
|
|
||||||
labels:
|
|
||||||
- "traefik.http.routers.api.rule=Host(`traefik.domain.com`)"
|
|
||||||
- "traefik.http.routers.api.service=api@internal"
|
|
||||||
- "traefik.http.routers.api.middlewares=auth"
|
|
||||||
- "traefik.http.middlewares.auth.basicauth.users=test:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/,test2:$$apr1$$d9hr9HBB$$4HxwgUir3HP4EsggP/QNo0"
|
|
||||||
```
|
|
||||||
|
|
||||||
```json tab="Marathon"
|
|
||||||
"labels": {
|
|
||||||
"traefik.http.routers.api.rule": "Host(`traefik.domain.com`)",
|
|
||||||
"traefik.http.routers.api.service": "api@internal",
|
|
||||||
"traefik.http.routers.api.middlewares": "auth",
|
|
||||||
"traefik.http.middlewares.auth.basicauth.users": "test:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/,test2:$$apr1$$d9hr9HBB$$4HxwgUir3HP4EsggP/QNo0"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
```yaml tab="Rancher"
|
|
||||||
# Dynamic Configuration
|
|
||||||
labels:
|
|
||||||
- "traefik.http.routers.api.rule=Host(`traefik.domain.com`)"
|
|
||||||
- "traefik.http.routers.api.service=api@internal"
|
|
||||||
- "traefik.http.routers.api.middlewares=auth"
|
|
||||||
- "traefik.http.middlewares.auth.basicauth.users=test:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/,test2:$$apr1$$d9hr9HBB$$4HxwgUir3HP4EsggP/QNo0"
|
|
||||||
```
|
|
||||||
|
|
||||||
```toml tab="File (TOML)"
|
|
||||||
# Dynamic Configuration
|
|
||||||
[http.routers.my-api]
|
|
||||||
rule = "Host(`traefik.domain.com`)"
|
|
||||||
service = "api@internal"
|
|
||||||
middlewares = ["auth"]
|
|
||||||
|
|
||||||
[http.middlewares.auth.basicAuth]
|
|
||||||
users = [
|
|
||||||
"test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/",
|
|
||||||
"test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0",
|
|
||||||
]
|
|
||||||
```
|
|
||||||
|
|
||||||
```yaml tab="File (YAML)"
|
|
||||||
# Dynamic Configuration
|
|
||||||
http:
|
|
||||||
routers:
|
|
||||||
api:
|
|
||||||
rule: Host(`traefik.domain.com`)
|
|
||||||
service: api@internal
|
|
||||||
middlewares:
|
|
||||||
- auth
|
|
||||||
middlewares:
|
|
||||||
auth:
|
|
||||||
basicAuth:
|
|
||||||
users:
|
|
||||||
- "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/"
|
|
||||||
- "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0"
|
|
||||||
```
|
|
||||||
|
|
||||||
### Dashboard Router Rule
|
### Dashboard Router Rule
|
||||||
|
|
||||||
|
|
69
docs/content/operations/include-api-examples.md
Normal file
69
docs/content/operations/include-api-examples.md
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
```yaml tab="Docker"
|
||||||
|
# Dynamic Configuration
|
||||||
|
labels:
|
||||||
|
- "traefik.http.routers.api.rule=Host(`traefik.domain.com`)"
|
||||||
|
- "traefik.http.routers.api.service=api@internal"
|
||||||
|
- "traefik.http.routers.api.middlewares=auth"
|
||||||
|
- "traefik.http.middlewares.auth.basicauth.users=test:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/,test2:$$apr1$$d9hr9HBB$$4HxwgUir3HP4EsggP/QNo0"
|
||||||
|
```
|
||||||
|
|
||||||
|
```yaml tab="Docker (Swarm)"
|
||||||
|
# Dynamic Configuration
|
||||||
|
deploy:
|
||||||
|
labels:
|
||||||
|
- "traefik.http.routers.api.rule=Host(`traefik.domain.com`)"
|
||||||
|
- "traefik.http.routers.api.service=api@internal"
|
||||||
|
- "traefik.http.routers.api.middlewares=auth"
|
||||||
|
- "traefik.http.middlewares.auth.basicauth.users=test:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/,test2:$$apr1$$d9hr9HBB$$4HxwgUir3HP4EsggP/QNo0"
|
||||||
|
# Dummy service for Swarm port detection. The port can be any valid integer value.
|
||||||
|
- "traefik.http.services.dummy-svc.loadbalancer.server.port=9999"
|
||||||
|
```
|
||||||
|
|
||||||
|
```json tab="Marathon"
|
||||||
|
"labels": {
|
||||||
|
"traefik.http.routers.api.rule": "Host(`traefik.domain.com`)",
|
||||||
|
"traefik.http.routers.api.service": "api@internal",
|
||||||
|
"traefik.http.routers.api.middlewares": "auth",
|
||||||
|
"traefik.http.middlewares.auth.basicauth.users": "test:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/,test2:$$apr1$$d9hr9HBB$$4HxwgUir3HP4EsggP/QNo0"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
```yaml tab="Rancher"
|
||||||
|
# Dynamic Configuration
|
||||||
|
labels:
|
||||||
|
- "traefik.http.routers.api.rule=Host(`traefik.domain.com`)"
|
||||||
|
- "traefik.http.routers.api.service=api@internal"
|
||||||
|
- "traefik.http.routers.api.middlewares=auth"
|
||||||
|
- "traefik.http.middlewares.auth.basicauth.users=test:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/,test2:$$apr1$$d9hr9HBB$$4HxwgUir3HP4EsggP/QNo0"
|
||||||
|
```
|
||||||
|
|
||||||
|
```toml tab="File (TOML)"
|
||||||
|
# Dynamic Configuration
|
||||||
|
[http.routers.my-api]
|
||||||
|
rule = "Host(`traefik.domain.com`)"
|
||||||
|
service = "api@internal"
|
||||||
|
middlewares = ["auth"]
|
||||||
|
|
||||||
|
[http.middlewares.auth.basicAuth]
|
||||||
|
users = [
|
||||||
|
"test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/",
|
||||||
|
"test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0",
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
```yaml tab="File (YAML)"
|
||||||
|
# Dynamic Configuration
|
||||||
|
http:
|
||||||
|
routers:
|
||||||
|
api:
|
||||||
|
rule: Host(`traefik.domain.com`)
|
||||||
|
service: api@internal
|
||||||
|
middlewares:
|
||||||
|
- auth
|
||||||
|
middlewares:
|
||||||
|
auth:
|
||||||
|
basicAuth:
|
||||||
|
users:
|
||||||
|
- "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/"
|
||||||
|
- "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0"
|
||||||
|
```
|
|
@ -42,6 +42,9 @@ extra_javascript:
|
||||||
|
|
||||||
plugins:
|
plugins:
|
||||||
- search
|
- search
|
||||||
|
- exclude:
|
||||||
|
glob:
|
||||||
|
- include-*.md
|
||||||
|
|
||||||
# https://squidfunk.github.io/mkdocs-material/extensions/admonition/
|
# https://squidfunk.github.io/mkdocs-material/extensions/admonition/
|
||||||
# https://facelessuser.github.io/pymdown-extensions/
|
# https://facelessuser.github.io/pymdown-extensions/
|
||||||
|
|
|
@ -3,3 +3,4 @@ pymdown-extensions==6.0
|
||||||
mkdocs-bootswatch==1.0
|
mkdocs-bootswatch==1.0
|
||||||
mkdocs-material==4.0.2
|
mkdocs-material==4.0.2
|
||||||
markdown-include==0.5.1
|
markdown-include==0.5.1
|
||||||
|
mkdocs-exclude==1.0.2
|
||||||
|
|
Loading…
Reference in a new issue