From 996c713510ce1d9b012614b183a26f3afece3d9b Mon Sep 17 00:00:00 2001 From: Teck Meng Date: Thu, 25 Jul 2024 19:33:00 +0800 Subject: [PATCH] Refactor Kubernetes configuration to enable Traefik for gateway routing --- kubernetes/gateway/values.yaml | 10 +++- kubernetes/gateway/whoami.yaml | 85 +++++++++++++--------------------- 2 files changed, 41 insertions(+), 54 deletions(-) diff --git a/kubernetes/gateway/values.yaml b/kubernetes/gateway/values.yaml index 3a3f42c..940f278 100644 --- a/kubernetes/gateway/values.yaml +++ b/kubernetes/gateway/values.yaml @@ -9,4 +9,12 @@ providers: enabled: true # Allow the Gateway to expose HTTPRoute from all namespaces gateway: - namespacePolicy: All \ No newline at end of file + enabled: true + namespacePolicy: All + annotations: + cert-manager.io/issuer: selfsigned-issuer + listeners: + websecure: + hostname: whoami.docker.localhost + certificateRefs: + - name: whoami-tls \ No newline at end of file diff --git a/kubernetes/gateway/whoami.yaml b/kubernetes/gateway/whoami.yaml index 72ba150..8be8ee4 100644 --- a/kubernetes/gateway/whoami.yaml +++ b/kubernetes/gateway/whoami.yaml @@ -1,11 +1,10 @@ -# Application to expose -kind: Deployment +--- apiVersion: apps/v1 +kind: Deployment metadata: name: whoami - namespace: whoami spec: - replicas: 3 + replicas: 2 selector: matchLabels: app: whoami @@ -13,68 +12,48 @@ spec: metadata: labels: app: whoami - spec: - containers: - - name: whoami - image: traefik/whoami + spec: + containers: + - name: whoami + image: traefik/whoami + --- -# Service to reach the application on the cluster apiVersion: v1 kind: Service metadata: name: whoami - namespace: whoami - labels: - app: whoami spec: - type: ClusterIP - ports: - - port: 80 - name: whoami selector: app: whoami + ports: + - protocol: TCP + port: 80 + --- -# HTTPRoute apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: - name: whoami-httproute - namespace: whoami + name: whoami spec: parentRefs: - - name: traefik-gateway - namespace: traefik + - name: traefik-gateway hostnames: - - node03.local + - whoami.docker.localhost rules: - - matches: - - path: - type: PathPrefix - value: / - backendRefs: - - name: whoami - namespace: whoami - port: 80 -# filters: -# # Core filter which adds a header -# - type: RequestHeaderModifier -# requestHeaderModifier: -# add: -# - name: x-post-topic -# value: GatewayAPI -# # ExtensionRef filter to use the Traefik Middleware AddPrefix -# - type: ExtensionRef -# extensionRef: -# group: traefik.io -# kind: Middleware -# name: addprefix -# --- -# # Traefik Middleware AddPrefix -# apiVersion: traefik.io/v1alpha1 -# kind: Middleware -# metadata: -# name: addprefix -# namespace: whoami -# spec: -# addPrefix: -# prefix: /gatewayapi \ No newline at end of file + - matches: + - path: + type: Exact + value: / + + backendRefs: + - name: whoami + port: 80 + weight: 1 + +--- +apiVersion: cert-manager.io/v1 +kind: Issuer +metadata: + name: selfsigned-issuer +spec: + selfSigned: {} \ No newline at end of file