fix(argocd): use http-route and grpc-route instead of a single tls-route

Also stop serving certificate from Argo CD

This fixes issues with GatewayAPI/Cilium/ALPN not playing together

Signed-off-by: Vegard Hagen <[email protected]>
This commit is contained in:
Vegard Hagen
2025-10-27 09:32:37 +01:00
parent 50dedbaee2
commit 5c14ae1682
7 changed files with 59 additions and 26 deletions
@@ -0,0 +1,13 @@
apiVersion: gateway.networking.k8s.io/v1
kind: GRPCRoute
metadata:
name: argocd-server
namespace: argocd
spec:
parentRefs:
- { name: internal, namespace: gateway }
hostnames: [ "argocd.stonegarden.dev" ]
rules:
- backendRefs: [ { name: argocd-server-grpc, port: 80 } ]
matches:
- headers: [ { name: Content-Type, value: application/grpc } ]
@@ -0,0 +1,16 @@
apiVersion: v1
kind: Service
metadata:
name: argocd-server-grpc
namespace: argocd
spec:
type: ClusterIP
selector:
app.kubernetes.io/instance: argocd
app.kubernetes.io/name: argocd-server
ports:
- name: grpc
port: 80
protocol: TCP
appProtocol: kubernetes.io/h2c
targetPort: 8080
@@ -0,0 +1,13 @@
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: argocd-server
namespace: argocd
spec:
parentRefs:
- { name: internal, namespace: gateway }
hostnames: [ "argocd.stonegarden.dev" ]
rules:
- backendRefs: [ { name: argocd-server, port: 80 } ]
matches:
- path: { type: PathPrefix, value: / }
@@ -8,7 +8,9 @@ kind: Kustomization
resources: resources:
- ns.yaml - ns.yaml
- tls-route.yaml - http-route.yaml
- grpc-service.yaml
- grpc-route.yaml
- oidc.yaml - oidc.yaml
- service-monitors/argocd-application-controller.yaml - service-monitors/argocd-application-controller.yaml
- service-monitors/argocd-applicationset-controller.yaml - service-monitors/argocd-applicationset-controller.yaml
@@ -1,11 +0,0 @@
apiVersion: gateway.networking.k8s.io/v1alpha2
kind: TLSRoute
metadata:
name: argocd
namespace: argocd
spec:
parentRefs:
- { name: internal, namespace: gateway }
hostnames: [ argocd.stonegarden.dev ]
rules:
- backendRefs: [ { name: argocd-server, port: 443 } ]
+13 -13
View File
@@ -32,7 +32,7 @@ configs:
args: [ kustomize build --enable-helm ] args: [ kustomize build --enable-helm ]
params: params:
controller.diff.server.side: true controller.diff.server.side: true
server.insecure: false server.insecure: true
rbac: rbac:
scopes: '[ argocd_claim ]' scopes: '[ argocd_claim ]'
policy.csv: | policy.csv: |
@@ -92,18 +92,18 @@ server:
memory: 64Mi memory: 64Mi
limits: limits:
memory: 1Gi memory: 1Gi
certificate: #certificate:
enabled: true # enabled: false
domain: argocd.stonegarden.dev # domain: argocd.stonegarden.dev
issuer: # issuer:
group: cert-manager.io # group: cert-manager.io
kind: ClusterIssuer # kind: ClusterIssuer
name: cloudflare-cluster-issuer # name: cloudflare-cluster-issuer
privateKey: # privateKey:
algorithm: ECDSA # algorithm: ECDSA
size: 256 # size: 256
service: #service:
servicePortHttpsAppProtocol: kubernetes.io/h2c # servicePortHttpsAppProtocol: kubernetes.io/h2c
repoServer: repoServer:
metrics: metrics:
+1 -1
View File
@@ -77,7 +77,7 @@ loadBalancer:
gatewayAPI: gatewayAPI:
enabled: true enabled: true
enableAlpn: true enableAlpn: true
enableAppProtocol: true # enableAppProtocol: true
envoy: envoy:
prometheus: prometheus: