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:
- ns.yaml
- tls-route.yaml
- http-route.yaml
- grpc-service.yaml
- grpc-route.yaml
- oidc.yaml
- service-monitors/argocd-application-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 ]
params:
controller.diff.server.side: true
server.insecure: false
server.insecure: true
rbac:
scopes: '[ argocd_claim ]'
policy.csv: |
@@ -92,18 +92,18 @@ server:
memory: 64Mi
limits:
memory: 1Gi
certificate:
enabled: true
domain: argocd.stonegarden.dev
issuer:
group: cert-manager.io
kind: ClusterIssuer
name: cloudflare-cluster-issuer
privateKey:
algorithm: ECDSA
size: 256
service:
servicePortHttpsAppProtocol: kubernetes.io/h2c
#certificate:
# enabled: false
# domain: argocd.stonegarden.dev
# issuer:
# group: cert-manager.io
# kind: ClusterIssuer
# name: cloudflare-cluster-issuer
# privateKey:
# algorithm: ECDSA
# size: 256
#service:
# servicePortHttpsAppProtocol: kubernetes.io/h2c
repoServer:
metrics:
+1 -1
View File
@@ -77,7 +77,7 @@ loadBalancer:
gatewayAPI:
enabled: true
enableAlpn: true
enableAppProtocol: true
# enableAppProtocol: true
envoy:
prometheus: