Skip to content

Commit

Permalink
docs: homepage content (#43)
Browse files Browse the repository at this point in the history
Signed-off-by: Kostis Kapelonis <[email protected]>
  • Loading branch information
kostis-codefresh authored Feb 28, 2024
1 parent e85e47c commit 7533a94
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 4 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
[Argo Rollouts](https://argoproj.github.io/rollouts/) is a progressive delivery controller for Kubernetes. It supports several advanced deployment methods such as blue/green and canaries.
For canary deployments Argo Rollouts can optionally use [a traffic provider](https://argoproj.github.io/argo-rollouts/features/traffic-management/) to split traffic between pods with full control and in a gradual way.

![Gateway API with traffic providers](public/images/gateway-api.png)
![Gateway API with traffic providers](docs/images/gateway-api.png)

Until recently adding a new traffic provider to Argo Rollouts needed ad-hoc support code. With the adoption of the [Gateway API](https://gateway-api.sigs.k8s.io/), the integration becomes much easier as any traffic provider that implements the API will automatically be supported by Argo Rollouts.

Expand Down
File renamed without changes
49 changes: 48 additions & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,50 @@
# Progressive Delivery with the Kubernetes Gateway API

To be written
[Argo Rollouts](https://argoproj.github.io/rollouts/) is a progressive delivery controller for Kubernetes. It supports several advanced deployment methods such as [blue/green](https://argo-rollouts.readthedocs.io/en/stable/features/bluegreen/) and [canaries](https://argo-rollouts.readthedocs.io/en/stable/features/canary/).

For canary deployments Argo Rollouts can optionally use [a traffic provider](https://argoproj.github.io/argo-rollouts/features/traffic-management/) to split traffic between pods with full control and in a gradual way.

![Gateway API with traffic providers](images/gateway-api.png)

Until recently adding a new traffic provider to Argo Rollouts needed ad-hoc support code. With the adoption of the [Gateway API](https://gateway-api.sigs.k8s.io/), the integration becomes much easier as any traffic provider that implements the API will automatically be supported by Argo Rollouts.

## The Kubernetes Gateway API

The Gateway API is an open source project managed by the [SIG-NETWORK](https://github.com/kubernetes/community/tree/master/sig-network) community. It is a collection of resources that model service networking in Kubernetes.

See a [list of current projects](https://gateway-api.sigs.k8s.io/implementations/) that support the API.

## Prerequisites

You need the following

1. A Kubernetes cluster
2. An [installation](https://argoproj.github.io/argo-rollouts/installation/) of the Argo Rollouts controller
3. A traffic provider that [supports the Gateway API](https://gateway-api.sigs.k8s.io/implementations/)
4. An [installation of the Gateway plugin](installation.md)

Once everything is ready you need to create [a Rollout resource](https://argoproj.github.io/argo-rollouts/features/specification/) for all workloads that will use the integration.

## How to use the Gateway API with Argo Rollouts

This is the installation process.

1. Enable Gateway Provider and create Gateway entrypoint
1. Create GatewayClass and Gateway resources
1. Create cluster entrypoint and map it with our Gateway entrypoint
1. Install Argo Rollouts in your cluster along with the Gateway API plugin
1. Create an HTTPRoute
1. Create canary and stable services
1. Create your Rollout resources
1. Start a deployment

The first 3 steps are specific to your provider/implementation of the Gateway API inside the Kubernetes cluster. The rest of the steps are the same regardless of the specific implementation you chose.

See end-to-end examples for several other implementations
at the [provider status page](provider-status.md).






2 changes: 1 addition & 1 deletion docs/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ First get the core Argo Rollouts controller in your cluster.

Follow the [official instructions](https://argo-rollouts.readthedocs.io/en/stable/installation/) to install Argo Rollouts.

Optionally instal the [Argo Rollouts CLI](https://argoproj.github.io/argo-rollouts/features/kubectl-plugin/) in order to control Rollouts from your terminal.
Optionally install the [Argo Rollouts CLI](https://argoproj.github.io/argo-rollouts/features/kubectl-plugin/) in order to control Rollouts from your terminal.

## Installing the plugin

Expand Down
3 changes: 2 additions & 1 deletion docs/provider-status.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ For convenience we are including here a list of those actually tested with the p
| [NGINX Gateway](https://github.com/nginxinc/nginx-gateway-fabric) | yes | [Example](https://github.com/argoproj-labs/rollouts-plugin-trafficrouter-gatewayapi/tree/main/examples/nginx) |
| [Traefik](https://doc.traefik.io/traefik/providers/kubernetes-gateway/) | yes | [Example](https://github.com/argoproj-labs/rollouts-plugin-trafficrouter-gatewayapi/tree/main/examples/traefik) |


Note that these examples are included just for completeness. You should be able
to use any solution that implements the Gateway API.

!!! note
We are always looking for more tested implementations. If you have tried the plugin with a provider not listed above please [open a Pull Request](https://github.com/argoproj-labs/rollouts-plugin-trafficrouter-gatewayapi/pulls) to add it to the list.

0 comments on commit 7533a94

Please sign in to comment.