From ef3cdf6f620e8e750ae18198afa6532945536e9e Mon Sep 17 00:00:00 2001 From: Teck Meng Date: Mon, 5 Aug 2024 08:29:06 +0800 Subject: [PATCH] Refactor Docker and Kubernetes configurations to update Redis volume mapping and constraints for Docmost service --- ansible/rke2/readme.md | 2 + kubernetes/gateway/values.yaml | 19 +++-- kubernetes/ingress-demo/haproxy.cfg | 9 +++ .../ingress-demo/ingress-resource-1.yaml | 17 +++++ .../ingress-demo/ingress-resource-2.yaml | 37 ++++++++++ .../ingress-demo/ingress-resource-3.yaml | 33 +++++++++ .../ingress-demo/nginx-deploy-blue.yaml | 32 +++++++++ .../ingress-demo/nginx-deploy-green.yaml | 32 +++++++++ .../ingress-demo/nginx-deploy-main.yaml | 19 +++++ kubernetes/ingress-demo/readme.md | 70 +++++++++++++++++++ .../general/1-weighted-round-robin.yaml | 32 +++++++++ .../ingress-demo/traefik/general/values.yaml | 15 ++++ .../traefik/middlewares/1-add-prefix.yaml | 31 ++++++++ .../traefik/middlewares/2-strip-prefix.yaml | 40 +++++++++++ .../middlewares/3-redirect-scheme.yaml | 46 ++++++++++++ .../traefik/middlewares/4-basic-auth.yaml | 39 +++++++++++ .../simple-ingress-routes/1-ingressroute.yaml | 16 +++++ .../simple-ingress-routes/2-ingressroute.yaml | 15 ++++ .../simple-ingress-routes/3-ingressroute.yaml | 25 +++++++ .../simple-ingress-routes/4-ingressroute.yaml | 15 ++++ .../simple-ingress-routes/5-ingressroute.yaml | 15 ++++ .../simple-ingress-routes/6-ingressroute.yaml | 15 ++++ .../tls-ingress-routes/1-tlsroute.yaml | 17 +++++ .../tls-ingress-routes/2-tlsroute.yaml | 17 +++++ kubernetes/{talos => }/traefik.yaml | 0 25 files changed, 601 insertions(+), 7 deletions(-) create mode 100644 kubernetes/ingress-demo/haproxy.cfg create mode 100644 kubernetes/ingress-demo/ingress-resource-1.yaml create mode 100644 kubernetes/ingress-demo/ingress-resource-2.yaml create mode 100644 kubernetes/ingress-demo/ingress-resource-3.yaml create mode 100644 kubernetes/ingress-demo/nginx-deploy-blue.yaml create mode 100644 kubernetes/ingress-demo/nginx-deploy-green.yaml create mode 100644 kubernetes/ingress-demo/nginx-deploy-main.yaml create mode 100644 kubernetes/ingress-demo/readme.md create mode 100644 kubernetes/ingress-demo/traefik/general/1-weighted-round-robin.yaml create mode 100644 kubernetes/ingress-demo/traefik/general/values.yaml create mode 100644 kubernetes/ingress-demo/traefik/middlewares/1-add-prefix.yaml create mode 100644 kubernetes/ingress-demo/traefik/middlewares/2-strip-prefix.yaml create mode 100644 kubernetes/ingress-demo/traefik/middlewares/3-redirect-scheme.yaml create mode 100644 kubernetes/ingress-demo/traefik/middlewares/4-basic-auth.yaml create mode 100644 kubernetes/ingress-demo/traefik/simple-ingress-routes/1-ingressroute.yaml create mode 100644 kubernetes/ingress-demo/traefik/simple-ingress-routes/2-ingressroute.yaml create mode 100644 kubernetes/ingress-demo/traefik/simple-ingress-routes/3-ingressroute.yaml create mode 100644 kubernetes/ingress-demo/traefik/simple-ingress-routes/4-ingressroute.yaml create mode 100644 kubernetes/ingress-demo/traefik/simple-ingress-routes/5-ingressroute.yaml create mode 100644 kubernetes/ingress-demo/traefik/simple-ingress-routes/6-ingressroute.yaml create mode 100644 kubernetes/ingress-demo/traefik/tls-ingress-routes/1-tlsroute.yaml create mode 100644 kubernetes/ingress-demo/traefik/tls-ingress-routes/2-tlsroute.yaml rename kubernetes/{talos => }/traefik.yaml (100%) diff --git a/ansible/rke2/readme.md b/ansible/rke2/readme.md index ff2ff98..c5e40a5 100644 --- a/ansible/rke2/readme.md +++ b/ansible/rke2/readme.md @@ -101,6 +101,8 @@ kubectl get pods \ --watch kubectl -n longhorn-system get pod kubectl get svc +kubectl apply -f https://raw.githubusercontent.com/traefik/traefik/v3.1/docs/content/reference/dynamic-configuration/kubernetes-crd-definition-v1.yml +kubectl apply -f https://raw.githubusercontent.com/traefik/traefik/v3.1/docs/content/reference/dynamic-configuration/kubernetes-crd-rbac.yml helm repo add traefik https://traefik.github.io/charts helm install traefik traefik/traefik --create-namespace -n 'traefik' -f traefik.yaml helm list -n traefik diff --git a/kubernetes/gateway/values.yaml b/kubernetes/gateway/values.yaml index 940f278..2484e7f 100644 --- a/kubernetes/gateway/values.yaml +++ b/kubernetes/gateway/values.yaml @@ -8,13 +8,18 @@ providers: kubernetesGateway: enabled: true # Allow the Gateway to expose HTTPRoute from all namespaces +# Allow the Gateway to expose HTTPRoute from all namespaces gateway: - enabled: true - namespacePolicy: All - annotations: - cert-manager.io/issuer: selfsigned-issuer listeners: + web: + namespacePolicy: All websecure: - hostname: whoami.docker.localhost - certificateRefs: - - name: whoami-tls \ No newline at end of file + namespacePolicy: All + + # annotations: + # cert-manager.io/issuer: selfsigned-issuer + # listeners: + # websecure: + # hostname: whoami.localhost + # certificateRefs: + # - name: whoami-tls \ No newline at end of file diff --git a/kubernetes/ingress-demo/haproxy.cfg b/kubernetes/ingress-demo/haproxy.cfg new file mode 100644 index 0000000..0575056 --- /dev/null +++ b/kubernetes/ingress-demo/haproxy.cfg @@ -0,0 +1,9 @@ +frontend http_front + bind *:80 + stats uri /haproxy?stats + default_backend http_back + +backend http_back + balance roundrobin + server kube :80 + server kube :80 diff --git a/kubernetes/ingress-demo/ingress-resource-1.yaml b/kubernetes/ingress-demo/ingress-resource-1.yaml new file mode 100644 index 0000000..0c4fa18 --- /dev/null +++ b/kubernetes/ingress-demo/ingress-resource-1.yaml @@ -0,0 +1,17 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: ingress-resource-1 +spec: + ingressClassName: nginx + rules: + - host: nginx.example.com + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: nginx-deploy-main + port: + number: 80 diff --git a/kubernetes/ingress-demo/ingress-resource-2.yaml b/kubernetes/ingress-demo/ingress-resource-2.yaml new file mode 100644 index 0000000..31336b5 --- /dev/null +++ b/kubernetes/ingress-demo/ingress-resource-2.yaml @@ -0,0 +1,37 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: ingress-resource-2 +spec: + ingressClassName: nginx + rules: + - host: nginx.example.com + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: nginx-deploy-main + port: + number: 80 + - host: blue.nginx.example.com + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: nginx-deploy-blue + port: + number: 80 + - host: green.nginx.example.com + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: nginx-deploy-green + port: + number: 80 diff --git a/kubernetes/ingress-demo/ingress-resource-3.yaml b/kubernetes/ingress-demo/ingress-resource-3.yaml new file mode 100644 index 0000000..718a2e9 --- /dev/null +++ b/kubernetes/ingress-demo/ingress-resource-3.yaml @@ -0,0 +1,33 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + annotations: + nginx.ingress.kubernetes.io/rewrite-target: / + name: ingress-resource-3 +spec: + ingressClassName: nginx + rules: + - host: nginx.example.com + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: nginx-deploy-main + port: + number: 80 + - path: /blue + pathType: Prefix + backend: + service: + name: nginx-deploy-blue + port: + number: 80 + - path: /green + pathType: Prefix + backend: + service: + name: nginx-deploy-green + port: + number: 80 diff --git a/kubernetes/ingress-demo/nginx-deploy-blue.yaml b/kubernetes/ingress-demo/nginx-deploy-blue.yaml new file mode 100644 index 0000000..bbe0603 --- /dev/null +++ b/kubernetes/ingress-demo/nginx-deploy-blue.yaml @@ -0,0 +1,32 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + run: nginx + name: nginx-deploy-blue +spec: + replicas: 1 + selector: + matchLabels: + run: nginx-blue + template: + metadata: + labels: + run: nginx-blue + spec: + volumes: + - name: webdata + emptyDir: {} + initContainers: + - name: web-content + image: busybox + volumeMounts: + - name: webdata + mountPath: "/webdata" + command: ["/bin/sh", "-c", 'echo "

I am BLUE

" > /webdata/index.html'] + containers: + - image: nginx + name: nginx + volumeMounts: + - name: webdata + mountPath: "/usr/share/nginx/html" diff --git a/kubernetes/ingress-demo/nginx-deploy-green.yaml b/kubernetes/ingress-demo/nginx-deploy-green.yaml new file mode 100644 index 0000000..10eda57 --- /dev/null +++ b/kubernetes/ingress-demo/nginx-deploy-green.yaml @@ -0,0 +1,32 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + run: nginx + name: nginx-deploy-green +spec: + replicas: 1 + selector: + matchLabels: + run: nginx-green + template: + metadata: + labels: + run: nginx-green + spec: + volumes: + - name: webdata + emptyDir: {} + initContainers: + - name: web-content + image: busybox + volumeMounts: + - name: webdata + mountPath: "/webdata" + command: ["/bin/sh", "-c", 'echo "

I am GREEN

" > /webdata/index.html'] + containers: + - image: nginx + name: nginx + volumeMounts: + - name: webdata + mountPath: "/usr/share/nginx/html" diff --git a/kubernetes/ingress-demo/nginx-deploy-main.yaml b/kubernetes/ingress-demo/nginx-deploy-main.yaml new file mode 100644 index 0000000..9d724a5 --- /dev/null +++ b/kubernetes/ingress-demo/nginx-deploy-main.yaml @@ -0,0 +1,19 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + run: nginx + name: nginx-deploy-main +spec: + replicas: 1 + selector: + matchLabels: + run: nginx-main + template: + metadata: + labels: + run: nginx-main + spec: + containers: + - image: nginx + name: nginx diff --git a/kubernetes/ingress-demo/readme.md b/kubernetes/ingress-demo/readme.md new file mode 100644 index 0000000..8f49d31 --- /dev/null +++ b/kubernetes/ingress-demo/readme.md @@ -0,0 +1,70 @@ +# ingress demo + +```bash +k create -f nginx-deploy-main.yaml -f nginx-deploy-blue.yaml -f nginx-deploy-green.yaml +k get all +``` +NAME READY STATUS RESTARTS AGE +pod/nginx-deploy-blue-5cf4dbd98b-kzxp7 1/1 Running 0 23s +pod/nginx-deploy-green-64879cd747-7lrkh 1/1 Running 0 23s +pod/nginx-deploy-main-59657668d9-4qgdh 1/1 Running 0 23s + +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +service/kubernetes ClusterIP 10.43.0.1 443/TCP 17h + +NAME READY UP-TO-DATE AVAILABLE AGE +deployment.apps/nginx-deploy-blue 1/1 1 1 23s +deployment.apps/nginx-deploy-green 1/1 1 1 23s +deployment.apps/nginx-deploy-main 1/1 1 1 23s + +NAME DESIRED CURRENT READY AGE +replicaset.apps/nginx-deploy-blue-5cf4dbd98b 1 1 1 23s +replicaset.apps/nginx-deploy-green-64879cd747 1 1 1 23s +replicaset.apps/nginx-deploy-main-59657668d9 1 1 1 23s + +```bash +k expose deploy nginx-deploy-green --port 80 +k expose deploy nginx-deploy-main --port 80 +``` + +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +kubernetes ClusterIP 10.43.0.1 443/TCP 17h +nginx-deploy-green ClusterIP 10.43.47.11 80/TCP 62s +nginx-deploy-main ClusterIP 10.43.148.11 80/TCP 46s + +hosts +``` +## +# Host Database +# +# localhost is used to configure the loopback interface +# when the system is booting. Do not change this entry. +## +127.0.0.1 localhost +255.255.255.255 broadcasthost +::1 localhost +# Added by Docker Desktop +# To allow the same kube context to work on the host and the container: +127.0.0.1 kubernetes.docker.internal +# End of section + +127.0.0.1 www.local.test +127.0.0.1 api.local.test + +192.168.50.190 rancher.local +192.168.50.191 traefik.local nginx.traefik.local +``` + +```bash +k get ingressroutes +k create -f 1-ingressroute.yaml +# http://traefik.local/ +k delete -f 1-ingressroute.yaml +k apply -f 2-ingressroute.yaml +# http://traefik.local/ +# http://nginx.traefik.local/ +k delete -f 2-ingressroute.yaml +k apply -f 3-ingressroute.yaml +# http://green.traefik.local/ +k delete -f 3-ingressroute.yaml +``` \ No newline at end of file diff --git a/kubernetes/ingress-demo/traefik/general/1-weighted-round-robin.yaml b/kubernetes/ingress-demo/traefik/general/1-weighted-round-robin.yaml new file mode 100644 index 0000000..a77656a --- /dev/null +++ b/kubernetes/ingress-demo/traefik/general/1-weighted-round-robin.yaml @@ -0,0 +1,32 @@ +apiVersion: traefik.containo.us/v1alpha1 +kind: TraefikService +metadata: + name: nginx-wrr + namespace: default +spec: + weighted: + services: + - name: nginx-deploy-main + port: 80 + weight: 1 + - name: nginx-deploy-blue + port: 80 + weight: 1 + - name: nginx-deploy-green + port: 80 + weight: 1 +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: IngressRoute +metadata: + name: nginx + namespace: default +spec: + entryPoints: + - web + routes: + - match: Host(`nginx.example.com`) + kind: Rule + services: + - name: nginx-wrr + kind: TraefikService diff --git a/kubernetes/ingress-demo/traefik/general/values.yaml b/kubernetes/ingress-demo/traefik/general/values.yaml new file mode 100644 index 0000000..75deba3 --- /dev/null +++ b/kubernetes/ingress-demo/traefik/general/values.yaml @@ -0,0 +1,15 @@ + +additionalArguments: + - --certificatesresolvers.letsencrypt.acme.tlschallenge=true + - --certificatesresolvers.letsencrypt.acme.email=test@hello.com + - --certificatesresolvers.letsencrypt.acme.storage=/data/acme.json + - --certificatesresolvers.letsencrypt.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory + + +# Lets Encrypt servers + +# Staging +# https://acme-staging-v02.api.letsencrypt.org/directory + +# Production Lets Encrypt +# https://acme-v02.api.letsencrypt.org/directory diff --git a/kubernetes/ingress-demo/traefik/middlewares/1-add-prefix.yaml b/kubernetes/ingress-demo/traefik/middlewares/1-add-prefix.yaml new file mode 100644 index 0000000..f0a3246 --- /dev/null +++ b/kubernetes/ingress-demo/traefik/middlewares/1-add-prefix.yaml @@ -0,0 +1,31 @@ +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: nginx-add-prefix +spec: + addPrefix: + prefix: /hello + +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: IngressRoute +metadata: + name: nginx + namespace: default +spec: + entryPoints: + - web + routes: + - match: Host(`nginx.example.com`) + kind: Rule + services: + - name: nginx-deploy-main + port: 80 + - match: Host(`nginx.example.org`) + kind: Rule + middlewares: + - name: nginx-add-prefix + services: + - name: nginx-deploy-main + port: 80 diff --git a/kubernetes/ingress-demo/traefik/middlewares/2-strip-prefix.yaml b/kubernetes/ingress-demo/traefik/middlewares/2-strip-prefix.yaml new file mode 100644 index 0000000..6061721 --- /dev/null +++ b/kubernetes/ingress-demo/traefik/middlewares/2-strip-prefix.yaml @@ -0,0 +1,40 @@ +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: nginx-strip-path-prefix +spec: + stripPrefix: + prefixes: + - /blue + - /green + +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: IngressRoute +metadata: + name: nginx + namespace: default +spec: + entryPoints: + - web + routes: + - match: Host(`nginx.example.com`) + kind: Rule + services: + - name: nginx-deploy-main + port: 80 + - match: Host(`nginx.example.com`) && Path(`/blue`) + kind: Rule + middlewares: + - name: nginx-strip-path-prefix + services: + - name: nginx-deploy-blue + port: 80 + - match: Host(`nginx.example.com`) && Path(`/green`) + kind: Rule + middlewares: + - name: nginx-strip-path-prefix + services: + - name: nginx-deploy-green + port: 80 diff --git a/kubernetes/ingress-demo/traefik/middlewares/3-redirect-scheme.yaml b/kubernetes/ingress-demo/traefik/middlewares/3-redirect-scheme.yaml new file mode 100644 index 0000000..e628f34 --- /dev/null +++ b/kubernetes/ingress-demo/traefik/middlewares/3-redirect-scheme.yaml @@ -0,0 +1,46 @@ +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: nginx-redirect-scheme +spec: + redirectScheme: + scheme: https + permanent: true + port: "443" + +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: IngressRoute +metadata: + name: nginx-http + namespace: default +spec: + entryPoints: + - web + routes: + - match: Host(`nginx.example.com`) + kind: Rule + middlewares: + - name: nginx-redirect-scheme + services: + - name: nginx-deploy-main + port: 80 + +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: IngressRoute +metadata: + name: nginx-https + namespace: default +spec: + entryPoints: + - websecure + routes: + - match: Host(`nginx.example.com`) + kind: Rule + services: + - name: nginx-deploy-main + port: 80 + tls: + certResolver: letsencrypt diff --git a/kubernetes/ingress-demo/traefik/middlewares/4-basic-auth.yaml b/kubernetes/ingress-demo/traefik/middlewares/4-basic-auth.yaml new file mode 100644 index 0000000..96c97b7 --- /dev/null +++ b/kubernetes/ingress-demo/traefik/middlewares/4-basic-auth.yaml @@ -0,0 +1,39 @@ +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: nginx-basic-auth +spec: + basicAuth: + secret: authsecret + +--- +# Example: +# htpasswd -nb venkat hello | base64 +# dmVua2F0OiRhcHIxJE52L0lPTDZlJDRqdFlwckpjUk1aWU5aeG45M0xCNi8KCg== + +apiVersion: v1 +kind: Secret +metadata: + name: authsecret + +data: + users: | + dmVua2F0OiRhcHIxJE52L0lPTDZlJDRqdFlwckpjUk1aWU5aeG45M0xCNi8KCg== + +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: IngressRoute +metadata: + name: nginx + namespace: default +spec: + entryPoints: + - web + routes: + - match: Host(`nginx.example.com`) + kind: Rule + middlewares: + - name: nginx-basic-auth + services: + - name: nginx-deploy-main + port: 80 diff --git a/kubernetes/ingress-demo/traefik/simple-ingress-routes/1-ingressroute.yaml b/kubernetes/ingress-demo/traefik/simple-ingress-routes/1-ingressroute.yaml new file mode 100644 index 0000000..e596679 --- /dev/null +++ b/kubernetes/ingress-demo/traefik/simple-ingress-routes/1-ingressroute.yaml @@ -0,0 +1,16 @@ +--- +apiVersion: traefik.io/v1alpha1 +kind: IngressRoute +metadata: + name: nginx + namespace: default +spec: + entryPoints: + - web + routes: + - match: Host(`nginx.traefik.local`) + kind: Rule + services: + - name: nginx-deploy-main + port: 80 + diff --git a/kubernetes/ingress-demo/traefik/simple-ingress-routes/2-ingressroute.yaml b/kubernetes/ingress-demo/traefik/simple-ingress-routes/2-ingressroute.yaml new file mode 100644 index 0000000..527721a --- /dev/null +++ b/kubernetes/ingress-demo/traefik/simple-ingress-routes/2-ingressroute.yaml @@ -0,0 +1,15 @@ +--- +apiVersion: traefik.io/v1alpha1 +kind: IngressRoute +metadata: + name: nginx + namespace: default +spec: + entryPoints: + - web + routes: + - match: Host(`nginx.traefik.local`) || Host(`traefik.local`) + kind: Rule + services: + - name: nginx-deploy-main + port: 80 diff --git a/kubernetes/ingress-demo/traefik/simple-ingress-routes/3-ingressroute.yaml b/kubernetes/ingress-demo/traefik/simple-ingress-routes/3-ingressroute.yaml new file mode 100644 index 0000000..6b78ecc --- /dev/null +++ b/kubernetes/ingress-demo/traefik/simple-ingress-routes/3-ingressroute.yaml @@ -0,0 +1,25 @@ +--- +apiVersion: traefik.io/v1alpha1 +kind: IngressRoute +metadata: + name: nginx + namespace: default +spec: + entryPoints: + - web + routes: + - match: Host(`nginx.traefik.local`) + kind: Rule + services: + - name: nginx-deploy-main + port: 80 + - match: Host(`blue.traefik.local`) + kind: Rule + services: + - name: nginx-deploy-blue + port: 80 + - match: Host(`green.traefik.local`) + kind: Rule + services: + - name: nginx-deploy-green + port: 80 diff --git a/kubernetes/ingress-demo/traefik/simple-ingress-routes/4-ingressroute.yaml b/kubernetes/ingress-demo/traefik/simple-ingress-routes/4-ingressroute.yaml new file mode 100644 index 0000000..c2aedae --- /dev/null +++ b/kubernetes/ingress-demo/traefik/simple-ingress-routes/4-ingressroute.yaml @@ -0,0 +1,15 @@ +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: IngressRoute +metadata: + name: nginx + namespace: default +spec: + entryPoints: + - web + routes: + - match: Host(`nginx.example.com`) && Headers(`From`, `test@example.com`) + kind: Rule + services: + - name: nginx-deploy-main + port: 80 diff --git a/kubernetes/ingress-demo/traefik/simple-ingress-routes/5-ingressroute.yaml b/kubernetes/ingress-demo/traefik/simple-ingress-routes/5-ingressroute.yaml new file mode 100644 index 0000000..1f8d045 --- /dev/null +++ b/kubernetes/ingress-demo/traefik/simple-ingress-routes/5-ingressroute.yaml @@ -0,0 +1,15 @@ +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: IngressRoute +metadata: + name: nginx + namespace: default +spec: + entryPoints: + - web + routes: + - match: Host(`nginx.example.com`) && HeadersRegexp(`From`, `.*example.*`) + kind: Rule + services: + - name: nginx-deploy-main + port: 80 diff --git a/kubernetes/ingress-demo/traefik/simple-ingress-routes/6-ingressroute.yaml b/kubernetes/ingress-demo/traefik/simple-ingress-routes/6-ingressroute.yaml new file mode 100644 index 0000000..29547c7 --- /dev/null +++ b/kubernetes/ingress-demo/traefik/simple-ingress-routes/6-ingressroute.yaml @@ -0,0 +1,15 @@ +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: IngressRoute +metadata: + name: nginx + namespace: default +spec: + entryPoints: + - web + routes: + - match: Host(`nginx.example.com`) || (Host(`nginx.example.org`) && Headers(`From`, `main@example.com`)) + kind: Rule + services: + - name: nginx-deploy-main + port: 80 diff --git a/kubernetes/ingress-demo/traefik/tls-ingress-routes/1-tlsroute.yaml b/kubernetes/ingress-demo/traefik/tls-ingress-routes/1-tlsroute.yaml new file mode 100644 index 0000000..9f26cef --- /dev/null +++ b/kubernetes/ingress-demo/traefik/tls-ingress-routes/1-tlsroute.yaml @@ -0,0 +1,17 @@ +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: IngressRoute +metadata: + name: nginx + namespace: default +spec: + entryPoints: + - websecure + routes: + - match: Host(`nginx.example.com`) + kind: Rule + services: + - name: nginx-deploy-main + port: 80 + tls: + certResolver: letsencrypt diff --git a/kubernetes/ingress-demo/traefik/tls-ingress-routes/2-tlsroute.yaml b/kubernetes/ingress-demo/traefik/tls-ingress-routes/2-tlsroute.yaml new file mode 100644 index 0000000..cf782a3 --- /dev/null +++ b/kubernetes/ingress-demo/traefik/tls-ingress-routes/2-tlsroute.yaml @@ -0,0 +1,17 @@ +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: IngressRoute +metadata: + name: nginx + namespace: default +spec: + entryPoints: + - websecure + routes: + - match: Host(`nginx.example.com`, `nginx.example.org`) + kind: Rule + services: + - name: nginx-deploy-main + port: 80 + tls: + certResolver: letsencrypt diff --git a/kubernetes/talos/traefik.yaml b/kubernetes/traefik.yaml similarity index 100% rename from kubernetes/talos/traefik.yaml rename to kubernetes/traefik.yaml