Skip to content

Commit

Permalink
docs: expose/fix Traefik docs (#2017)
Browse files Browse the repository at this point in the history
Signed-off-by: Kostis Kapelonis <[email protected]>
  • Loading branch information
kostis-codefresh authored May 6, 2022
1 parent 85878e6 commit 59f949c
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 7 deletions.
1 change: 1 addition & 0 deletions docs/features/traffic-management/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ Argo Rollouts enables traffic management by manipulating the Service Mesh resour
- [Istio](istio.md)
- [Nginx Ingress Controller](nginx.md)
- [Service Mesh Interface (SMI)](smi.md)
- [Traefik Proxy](traefik.md)
- [Multiple Providers](mixed.md)
- File a ticket [here](https://github.com/argoproj/argo-rollouts/issues) if you would like another implementation (or thumbs up it if that issue already exists)

Expand Down
16 changes: 9 additions & 7 deletions docs/features/traffic-management/traefik.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
# Traefik

The [TraefikService](https://doc.traefik.io/traefik/routing/providers/kubernetes-crd/#kind-traefikservice) is the object supports the ability for [weighted round robin load balancing](https://doc.traefik.io/traefik/routing/providers/kubernetes-crd/#weighted-round-robin) and (traffic mirroring)[https://doc.traefik.io/traefik/routing/providers/kubernetes-crd/#mirroring] when using Traefik as ingress.
You can use the [Traefik Proxy](https://traefik.io/traefik/) for traffic management with Argo Rollouts.

The [TraefikService](https://doc.traefik.io/traefik/routing/providers/kubernetes-crd/#kind-traefikservice) is the object that supports the ability for [weighted round robin load balancing](https://doc.traefik.io/traefik/routing/providers/kubernetes-crd/#weighted-round-robin) and [traffic mirroring](https://doc.traefik.io/traefik/routing/providers/kubernetes-crd/#mirroring) when using Traefik as ingress.

## How to integrate TraefikService with Argo Rollouts using it as weighted round robin load balancer

Firstly, we need to create the TraefikService object using its ability for weighted round robin load balancing.
First, we need to create the TraefikService object using its ability for weighted round robin load balancing.

```yaml
apiVersion: traefik.containo.us/v1alpha1
Expand All @@ -20,9 +22,9 @@ spec:
port: 80
```
Notice, we don't specify the `weight` field. It is necessary to be synced with ArgoCD. If we specify this field and Argo Rollouts controller will change it, ArgoCD controller will notice it and will show that this resource is out of sync.
Notice, we don't specify the `weight` field. It is necessary to be synced with ArgoCD. If we specify this field and Argo Rollouts controller changes it, then the ArgoCD controller will notice it and will show that this resource is out of sync (if you are using Argo CD to manage your Rollout).

Secondly, we need to create the Argo Rollouts controller.
Secondly, we need to create the Argo Rollouts object.

```yaml
apiVersion: argoproj.io/v1alpha1
Expand Down Expand Up @@ -52,7 +54,7 @@ spec:

## How to integrate TraefikService with Argo Rollouts using it as traffic mirror

Firstly, we also need to create the TraefikService object but using its ability for traffic mirroring.
First, we also need to create the TraefikService object but using its ability for traffic mirroring.

```yaml
apiVersion: traefik.containo.us/v1alpha1
Expand All @@ -70,9 +72,9 @@ spec:
port: 80
```

Notice, we don't specify the `percent` field. It is necessary to be synced with ArgoCD. If we specify this field and Argo Rollouts controller will change it, ArgoCD controller will notice it and will show that this resource is out of sync.
Notice, we don't specify the `percent` field. It is necessary to be synced with ArgoCD. If we specify this field and Argo Rollouts controller changes it, then the ArgoCD controller will notice it and will show that this resource is out of sync (if you are using Argo CD to manage your Rollout).

Secondly, we need to create the Argo Rollouts controller.
Secondly, we need to create the Argo Rollouts object.

```yaml
apiVersion: argoproj.io/v1alpha1
Expand Down
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ nav:
- Istio: features/traffic-management/istio.md
- NGINX: features/traffic-management/nginx.md
- SMI: features/traffic-management/smi.md
- Traefik: features/traffic-management/traefik.md
- Analysis:
- Overview: features/analysis.md
- Prometheus: analysis/prometheus.md
Expand Down

0 comments on commit 59f949c

Please sign in to comment.