From e9a145fc917488880d576cfc68675471e1d944c0 Mon Sep 17 00:00:00 2001 From: Glenn Date: Tue, 21 Mar 2023 17:50:27 +0100 Subject: [PATCH] Add content --- README.md | 48 +++++++++++++++++++++ helm/dokuwiki.yaml | 2 + helm/wordpress.yaml | 7 +++ helmfile.yaml | 21 +++++++++ k3d/k3d-cluster.yaml | 25 +++++++++++ kubernetes/_base/ingress-route.yaml | 28 ++++++++++++ kubernetes/_base/ingress.yaml | 25 +++++++++++ kubernetes/_base/kustomization.yaml | 8 ++++ kubernetes/ingress-route/kustomization.yaml | 17 ++++++++ kubernetes/ingress/kustomization.yaml | 16 +++++++ 10 files changed, 197 insertions(+) create mode 100644 README.md create mode 100644 helm/dokuwiki.yaml create mode 100644 helm/wordpress.yaml create mode 100644 helmfile.yaml create mode 100644 k3d/k3d-cluster.yaml create mode 100644 kubernetes/_base/ingress-route.yaml create mode 100644 kubernetes/_base/ingress.yaml create mode 100644 kubernetes/_base/kustomization.yaml create mode 100644 kubernetes/ingress-route/kustomization.yaml create mode 100644 kubernetes/ingress/kustomization.yaml diff --git a/README.md b/README.md new file mode 100644 index 0000000..2ac696c --- /dev/null +++ b/README.md @@ -0,0 +1,48 @@ +# Projet demo + +## Prerequis + +* k3d +* kubectl +* helm +* helm-diff +* helmfile + +## Créer le cluster + + k3d cluster create -c k3d/k3d-cluster.yaml + +## Installer les charts helm (avec helmfile) + + helmfile apply + +## Intaller les différents services (avec kustomize) + +### Option 1 : configuration basée sur Ingress (standard kubernetes) + + kubectl delete -f kubernetes/ingress-route/ + kubectl apply -f kubernetes/ingress/ + +### Option 2 : configuration basée sur IngressRoute (traefik) + + kubectl delete -f kubernetes/ingress/ + kubectl apply -f kubernetes/ingress-route/ + +## Vérifier les objets + +### Option 1 : configuration basée sur Ingress (standard kubernetes) + + k9s -n web -c ingress + +### Option 2 : configuration basée sur IngressRoute (traefik) + + k9s -n web -c ingress-route + +## Tester le fonctionnement + + w3m http://localhost/dokuwiki + w3m http://localhost/wordpress + + + + diff --git a/helm/dokuwiki.yaml b/helm/dokuwiki.yaml new file mode 100644 index 0000000..b738e2a --- /dev/null +++ b/helm/dokuwiki.yaml @@ -0,0 +1,2 @@ +service: + type: ClusterIP diff --git a/helm/wordpress.yaml b/helm/wordpress.yaml new file mode 100644 index 0000000..caf3c10 --- /dev/null +++ b/helm/wordpress.yaml @@ -0,0 +1,7 @@ +# --set memcached.enabled=true --set memcached.auth.enabled=false +memcached: + enabled: true + auth: + enabled: false +service: + type: ClusterIP diff --git a/helmfile.yaml b/helmfile.yaml new file mode 100644 index 0000000..5539453 --- /dev/null +++ b/helmfile.yaml @@ -0,0 +1,21 @@ +--- +# Les repositories que je veux pour Helm +repositories: + - name: bitnami + url: https://charts.bitnami.com/bitnami + +releases: + - name: demo-wordpress + namespace: web + chart: bitnami/wordpress + # version: 0.26.0 + values: + - ./helm/wordpress.yaml + + - name: demo-dokuwiki + namespace: web + chart: bitnami/dokuwiki + # version: 0.26.0 + values: + - ./helm/dokuwiki.yaml +# diff --git a/k3d/k3d-cluster.yaml b/k3d/k3d-cluster.yaml new file mode 100644 index 0000000..319ee50 --- /dev/null +++ b/k3d/k3d-cluster.yaml @@ -0,0 +1,25 @@ +--- +apiVersion: k3d.io/v1alpha4 +kind: Simple +metadata: + name: k3d-cluster +servers: 1 +agents: 2 +image: docker.io/rancher/k3s:v1.25.7-k3s1 +registries: + create: + name: registry.local + host: "0.0.0.0" + hostPort: "5000" +options: + # options passed on to K3s itself + k3s: + extraArgs: + - arg: "--kubelet-arg=eviction-hard=imagefs.available<1%,nodefs.available<1%" + nodeFilters: + - server:* + - agent:* + - arg: "--kubelet-arg=eviction-minimum-reclaim=imagefs.available=1%,nodefs.available=1%" + nodeFilters: + - server:* + - agent:* diff --git a/kubernetes/_base/ingress-route.yaml b/kubernetes/_base/ingress-route.yaml new file mode 100644 index 0000000..8010e3f --- /dev/null +++ b/kubernetes/_base/ingress-route.yaml @@ -0,0 +1,28 @@ +apiVersion: traefik.containo.us/v1alpha1 +kind: IngressRoute +metadata: + name: demo-ingress-route + namespace: web +spec: + entryPoints: + - web + routes: + - kind: Rule + match: PathPrefix(`/dokuwiki`) + services: + - kind: Service + name: demo-dokuwiki # OK + namespace: web + passHostHeader: true + port: 80 # OK + scheme: http + - kind: Rule + match: PathPrefix(`/wordpress`) + services: + - kind: Service + name: demo-wordpress # OK + namespace: web + passHostHeader: true + port: 80 # OK + scheme: http + diff --git a/kubernetes/_base/ingress.yaml b/kubernetes/_base/ingress.yaml new file mode 100644 index 0000000..2964700 --- /dev/null +++ b/kubernetes/_base/ingress.yaml @@ -0,0 +1,25 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: demo-ingress + namespace: web + annotations: + ingress.kubernetes.io/ssl-redirect: "false" +spec: + rules: + - http: + paths: + - path: /dokuwiki + pathType: Prefix + backend: + service: + name: demo-dokuwiki + port: + number: 80 + - path: /wordpress + pathType: Prefix + backend: + service: + name: demo-wordpress + port: + number: 80 diff --git a/kubernetes/_base/kustomization.yaml b/kubernetes/_base/kustomization.yaml new file mode 100644 index 0000000..a96b358 --- /dev/null +++ b/kubernetes/_base/kustomization.yaml @@ -0,0 +1,8 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - ingress.yaml + - ingress-route.yaml + diff --git a/kubernetes/ingress-route/kustomization.yaml b/kubernetes/ingress-route/kustomization.yaml new file mode 100644 index 0000000..7a0fe4e --- /dev/null +++ b/kubernetes/ingress-route/kustomization.yaml @@ -0,0 +1,17 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +# bases: +resources: + - ../_base + +patchesStrategicMerge: +- |- + apiVersion: networking.k8s.io/v1 + kind: Ingress + metadata: + name: demo-ingress + namespace: web + $patch: delete + + diff --git a/kubernetes/ingress/kustomization.yaml b/kubernetes/ingress/kustomization.yaml new file mode 100644 index 0000000..3cdaf06 --- /dev/null +++ b/kubernetes/ingress/kustomization.yaml @@ -0,0 +1,16 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - ../_base + +patchesStrategicMerge: +- |- + apiVersion: traefik.containo.us/v1alpha1 + kind: IngressRoute + metadata: + name: demo-ingress-route + namespace: web + $patch: delete + +