Using Kubernetes API Gateway with Argo Rollouts
Categories:
Context
Step | Name | Namespace | Once Per | Kind | Purpose |
---|---|---|---|---|---|
2 | eg | default | Cluster | GatewayClass | Create a gateway |
2 | eg | default | Cluster | Gateway | |
3 | gateway-controller-role | argo-rollouts | Cluster | ClusterRole | Allow Argo Rollouts to edit Http Routes |
3 | gateway-admin | ? | Cluster | ClusterRoleBinding | |
4 | argo-rollouts-http-route | default | Application | HTTPRoute | Create an HTTP route |
5 | argo-rollouts-stable-service | default | Application | Service | Create a Rollout |
5 | argo-rollouts-canary-service | default | Application | Service | |
5 | rollouts-demo | default | Application | Rollout |
Review
export POD_ID="$(k get pod -n argo-rollouts | grep argo-rollouts | awk '{ print $1}')"
k logs -f -n argo-rollouts $POD_ID
Show me
time="2025-01-30T06:16:01Z" level=info msg="Downloading plugin argoproj-labs/gatewayAPI from: https://github.com/argoproj-labs/rollouts-plugin-trafficrouter-gatewayapi/releases/download/v0.4.0/gatewayapi-plugin-linux-amd64"
time="2025-01-30T06:16:07Z" level=info msg="Download complete, it took 6.021917129s"
The logs should of the Argo Rollouts Controller pod should show the downloading
of the plugin. Note that Argo Rollouts is configured to download, install and
use this plugin using a ConfigMap
with the name argo-rollouts-config
. Note
that you have to restart the Argo Rollouts deployment for this ConfigMap
to be
used, this restart is performed by Ansible as part of the first part of this tutorial1.
Additional Information
- Argo Rollouts Gateway API plugin
- GitHub Project Argo Rollouts Gateway API plugin
- Envoy Gateway
- Gateway Resources
- Kubernetes Gateway API
You can perform this restart manuallyyourself by using the following command:
kubectl rollout restart deployment -n argo-rollouts argo-rollouts
We van have Ansible perform the restart for us using the
kubernetes_resources
variable, which is configured in the filegroup_vars/argocd/argo_rollouts_gateway_api.yml
:↩︎- name: Restart Argo Rollouts type: shell cmd: | kubectl rollout restart deployment -n {{ c2_argocd_rollouts_namespace }} argo-rollouts touch /etc/argo-rollouts-restart creates: /etc/argo-rollouts-restart
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.