Skip to content

Commit 4c50184

Browse files
committed
feat(argo-cd): Add AWS TargetGroupConfiguration support for Gateway API
Signed-off-by: arielev <[email protected]>
1 parent 7933ec2 commit 4c50184

File tree

3 files changed

+90
-0
lines changed

3 files changed

+90
-0
lines changed

charts/argo-cd/README.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,38 @@ server:
330330
wellKnownCACertificates: System
331331
```
332332

333+
#### AWS ALB Gateway API with HTTPS backend
334+
335+
AWS Load Balancer Controller does **NOT** support the standard Gateway API `BackendTLSPolicy`. Instead, use the AWS-specific `TargetGroupConfiguration` CRD for HTTPS backend communication.
336+
337+
> **Note:**
338+
> Reference: [AWS Load Balancer Controller Gateway API documentation](https://kubernetes-sigs.github.io/aws-load-balancer-controller/latest/guide/gateway/l7gateway/)
339+
340+
```yaml
341+
configs:
342+
params:
343+
server.insecure: false # HTTPS backend
344+
345+
server:
346+
httproute:
347+
enabled: true
348+
parentRefs:
349+
- name: example-gateway
350+
namespace: gateway-system
351+
352+
aws:
353+
targetGroupConfiguration:
354+
enabled: true
355+
defaultConfiguration:
356+
protocol: HTTPS
357+
protocolVersion: HTTP1
358+
healthCheck:
359+
protocol: HTTPS
360+
path: /healthz
361+
intervalSeconds: 15
362+
timeoutSeconds: 5
363+
```
364+
333365
## Setting the initial admin password via Argo CD Application CR
334366

335367
> **Note:** When deploying the `argo-cd` chart via an Argo CD `Application` CR, define your bcrypt-hashed admin password under `helm.values`—not `helm.parameters`—because Argo CD performs variable substitution on `parameters`, which will mangle any `$…` in your hash.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{{- if and (or .Values.server.httproute.enabled .Values.server.grpcroute.enabled) .Values.server.aws.targetGroupConfiguration.enabled -}}
2+
{{- $fullName := include "argo-cd.server.fullname" . -}}
3+
apiVersion: gateway.k8s.aws/v1beta1
4+
kind: TargetGroupConfiguration
5+
metadata:
6+
name: {{ $fullName }}
7+
namespace: {{ include "argo-cd.namespace" . }}
8+
labels:
9+
{{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
10+
{{- with .Values.server.aws.targetGroupConfiguration.labels }}
11+
{{- toYaml . | nindent 4 }}
12+
{{- end }}
13+
{{- with .Values.server.aws.targetGroupConfiguration.annotations }}
14+
annotations:
15+
{{- toYaml . | nindent 4 }}
16+
{{- end }}
17+
spec:
18+
targetGroupARN: {{ $fullName }}
19+
{{- with .Values.server.aws.targetGroupConfiguration.defaultConfiguration }}
20+
defaultConfiguration:
21+
{{- toYaml . | nindent 4 }}
22+
{{- end }}
23+
{{- with .Values.server.aws.targetGroupConfiguration.routeConfigurations }}
24+
routeConfigurations:
25+
{{- toYaml . | nindent 4 }}
26+
{{- end }}
27+
{{- end }}

charts/argo-cd/values.yaml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2687,6 +2687,7 @@ server:
26872687
# NOTE: BackendTLSPolicy support is in EXPERIMENTAL status
26882688
# Required for HTTPS backends when using Gateway API
26892689
# Not all Gateway controllers support this resource (e.g., Cilium does not support it yet)
2690+
# NOTE: AWS ALB Gateway does NOT support BackendTLSPolicy - use server.aws.targetGroupConfiguration instead
26902691
backendTLSPolicy:
26912692
# -- Enable BackendTLSPolicy resource for Argo CD server (Gateway API)
26922693
enabled: false
@@ -2711,6 +2712,36 @@ server:
27112712
# kind: ConfigMap
27122713
# wellKnownCACertificates: System
27132714

2715+
## AWS-specific Gateway API configuration
2716+
## Reference: https://kubernetes-sigs.github.io/aws-load-balancer-controller/latest/guide/gateway/l7gateway/
2717+
aws:
2718+
# TargetGroupConfiguration for AWS ALB Gateway API
2719+
# Required for HTTPS backends when using AWS Load Balancer Controller with Gateway API
2720+
# NOTE: AWS ALB Gateway does NOT support BackendTLSPolicy - use this instead
2721+
targetGroupConfiguration:
2722+
# -- Enable TargetGroupConfiguration resource for Argo CD server (AWS Gateway API)
2723+
enabled: false
2724+
# -- Additional TargetGroupConfiguration labels
2725+
labels: {}
2726+
# -- Additional TargetGroupConfiguration annotations
2727+
annotations: {}
2728+
# -- Default target group configuration
2729+
# @default -- `{}` (See [values.yaml])
2730+
defaultConfiguration: {}
2731+
# protocol: HTTPS
2732+
# protocolVersion: HTTP1
2733+
# healthCheck:
2734+
# protocol: HTTPS
2735+
# path: /healthz
2736+
# intervalSeconds: 15
2737+
# timeoutSeconds: 5
2738+
# -- Route-specific configurations
2739+
# @default -- `[]` (See [values.yaml])
2740+
routeConfigurations: []
2741+
# - name: argocd-server-route
2742+
# targetGroupConfiguration:
2743+
# protocol: HTTPS
2744+
27142745
## Enable this and set the rules: to whatever custom rules you want for the Cluster Role resource.
27152746
## Defaults to off
27162747
clusterRoleRules:

0 commit comments

Comments
 (0)