From e44e9da8320df4f23c2b17cd211582290899664c Mon Sep 17 00:00:00 2001 From: Teck Meng Date: Thu, 25 Jul 2024 16:58:20 +0800 Subject: [PATCH] chore: Refactor Kubernetes configuration to use Traefik for dashboard routing --- kubernetes/gateway/values.yaml | 12 +++++ kubernetes/gateway/whoami.yaml | 80 ++++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 kubernetes/gateway/values.yaml create mode 100644 kubernetes/gateway/whoami.yaml diff --git a/kubernetes/gateway/values.yaml b/kubernetes/gateway/values.yaml new file mode 100644 index 0000000..3a3f42c --- /dev/null +++ b/kubernetes/gateway/values.yaml @@ -0,0 +1,12 @@ +## File values.yaml ## +providers: + # Disable the Ingress provider (optional) + # We do not want to use Ingress objects anymore! + kubernetesIngress: + enabled: false + # Enable the GatewayAPI provider + kubernetesGateway: + enabled: true +# Allow the Gateway to expose HTTPRoute from all namespaces +gateway: + namespacePolicy: All \ No newline at end of file diff --git a/kubernetes/gateway/whoami.yaml b/kubernetes/gateway/whoami.yaml new file mode 100644 index 0000000..72ba150 --- /dev/null +++ b/kubernetes/gateway/whoami.yaml @@ -0,0 +1,80 @@ +# Application to expose +kind: Deployment +apiVersion: apps/v1 +metadata: + name: whoami + namespace: whoami +spec: + replicas: 3 + selector: + matchLabels: + app: whoami + template: + metadata: + labels: + app: 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 +--- +# HTTPRoute +apiVersion: gateway.networking.k8s.io/v1 +kind: HTTPRoute +metadata: + name: whoami-httproute + namespace: whoami +spec: + parentRefs: + - name: traefik-gateway + namespace: traefik + hostnames: + - node03.local + 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