Skip to content

feat(argo-workflows): Add Gateway API HTTPRoute support#3567

Merged
yu-croco merged 6 commits intoargoproj:mainfrom
lexfrei:feat/argo-workflows-add-httproute-support
Jan 13, 2026
Merged

feat(argo-workflows): Add Gateway API HTTPRoute support#3567
yu-croco merged 6 commits intoargoproj:mainfrom
lexfrei:feat/argo-workflows-add-httproute-support

Conversation

@lexfrei
Copy link
Copy Markdown
Contributor

@lexfrei lexfrei commented Nov 4, 2025

Summary

This PR adds Gateway API support to the Argo Workflows Helm chart, providing a modern alternative to traditional Ingress resources.

Added resources

  • HTTPRoute (Gateway API v1) - for HTTP(S) traffic routing
  • BackendTLSPolicy (v1alpha3, experimental) - for HTTPS backend support
  • Comprehensive documentation with examples for Gateway API usage

Motivation

Gateway API is the successor to Ingress and is becoming the standard for traffic management in Kubernetes. This addition provides users with a modern, vendor-neutral way to expose Argo Workflows, aligning with the evolving Kubernetes ecosystem.

Key differences from Argo CD implementation

  • No GRPCRoute support (Argo Workflows uses HTTP/HTTPS only, not gRPC)
  • Simplified port logic (single service port)

Testing

  • helm lint - passing
  • helm template - both resources render correctly with enabled flags
  • Backwards compatible (disabled by default)
  • Experimental disclaimers added in values.yaml

Notes

Experimental Status: Gateway API support is marked as EXPERIMENTAL. Support depends on your Gateway controller implementation. Some controllers may require additional configuration (e.g., BackendTLSPolicy for HTTPS backends). Not all Gateway controllers support BackendTLSPolicy (e.g., Cilium does not yet support it).


Checklist:

  • I have bumped the chart version according to versioning
  • I have updated the documentation according to documentation
  • I have updated the chart changelog with all the changes that come with this pull request according to changelog.
  • Any new values are backwards compatible and/or have sensible default.
  • I have signed off all my commits as required by DCO.
  • I have created a separate pull request for each chart according to pull requests
  • My build is green (troubleshooting builds)

@lexfrei lexfrei force-pushed the feat/argo-workflows-add-httproute-support branch from 4e0165c to 8013792 Compare November 4, 2025 15:12
@github-actions github-actions Bot added the size/L label Nov 4, 2025
Add support for Gateway API HTTPRoute and BackendTLSPolicy resources
as an alternative to traditional Kubernetes Ingress for Argo Workflows server.

Changes:
- Add server-httproute.yaml template for Gateway API v1 HTTPRoute
- Add server-backendtlspolicy.yaml template for v1alpha3 BackendTLSPolicy
- Add httproute and backendTLSPolicy configuration sections to values.yaml
- Add documentation for Gateway API usage in README.md.gotmpl
- Bump chart version to 0.46.0

Key differences from Argo CD implementation:
- No GRPCRoute support (Argo Workflows uses HTTP/HTTPS only, not gRPC)
- Simplified port logic (single service port)

All features are disabled by default for backward compatibility.
Gateway API support is marked as EXPERIMENTAL.

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Aleksei Sviridkin <f@lex.la>
@lexfrei lexfrei force-pushed the feat/argo-workflows-add-httproute-support branch from 8013792 to 9fa1639 Compare November 4, 2025 15:22
Copy link
Copy Markdown
Member

@mkilchhofer mkilchhofer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rest looks good to me :)

@@ -0,0 +1,26 @@
{{- if and .Values.server.enabled .Values.server.backendTLSPolicy.enabled -}}
{{- $fullName := include "argo-workflows.server.fullname" . -}}
apiVersion: gateway.networking.k8s.io/v1alpha3
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can directly go with v1 now

Xref on argo-cd chart:

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

Merge upstream/main and update Gateway API BackendTLSPolicy from
v1alpha3 to stable v1, matching the argo-cd chart update.

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Aleksei Sviridkin <f@lex.la>
@lexfrei lexfrei requested a review from mkilchhofer December 23, 2025 07:43
jmeridth
jmeridth previously approved these changes Jan 5, 2026
Signed-off-by: Marco Maurer (-Kilchhofer) <mkilchhofer@users.noreply.github.com>
@yu-croco yu-croco enabled auto-merge (squash) January 13, 2026 14:36
@yu-croco yu-croco merged commit 6af2068 into argoproj:main Jan 13, 2026
6 checks passed
alexlebens pushed a commit to alexlebens/infrastructure that referenced this pull request Jan 14, 2026
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [argo-workflows](https://github.com/argoproj/argo-helm) | minor | `0.46.4` → `0.47.0` |

---

> ⚠️ **Warning**
>
> Some dependencies could not be looked up. Check the Dependency Dashboard for more information.

---

### Release Notes

<details>
<summary>argoproj/argo-helm (argo-workflows)</summary>

### [`v0.47.0`](https://github.com/argoproj/argo-helm/releases/tag/argo-workflows-0.47.0)

[Compare Source](argoproj/argo-helm@argo-workflows-0.46.4...argo-workflows-0.47.0)

A Helm chart for Argo Workflows

#### What's Changed

- feat(argo-workflows): Add Gateway API HTTPRoute support by [@&#8203;lexfrei](https://github.com/lexfrei) in [#&#8203;3567](argoproj/argo-helm#3567)

**Full Changelog**: <argoproj/argo-helm@argo-cd-9.3.1...argo-workflows-0.47.0>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiY2hhcnQiXX0=-->

Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/3175
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants